Could Function Signatures in cUSDCv3 Change with Future Upgrades?

Hello Compound community,

I hope this message finds you well. I am fairly new to the world of DeFi and smart contract development, and I apologize in advance if my question seems naive. I’ve been learning a lot and truly appreciate all the guidance I’ve found here.

I’m currently working on a smart contract that interacts with Compound v3, specifically the cUSDCv3 market. I’m using the following function:
comet.withdraw(usdcContract, amount);

Since Compound v3 uses a TransparentUpgradeableProxy, which allows the protocol to be upgraded while keeping the same address, I was wondering if there’s any risk that the function signatures (like the one I’m using) could change in future upgrades?

If the signature of withdraw() or similar functions were to change, it might break my integration and cause issues. Is this something I should be worried about? Or are there mechanisms in place to ensure backward compatibility of function signatures during upgrades?

Again, I apologize if this question is too basic. I’m just trying to understand how these upgrades are handled to avoid future problems in my project.

Thank you so much for your time and any insights you can provide!

The contracts are upgradable. So it is possible to change the function signatures of the implementation contract. I don’t know why the community would choose to change the function names in the future through Governance. A change like this is discouraged by the design patterns implemented by Comet namely that the Factory deploys the implementation. But Governance can still change it.

In my opinion, it’s unlikely that they would be change although they can be changed.

1 Like