I am planning to implement a
Proxy pattern for my smart-contracts. And I want to make sure I understood it's use-case right.
In short: User only needs to know about
Proxy contract address, and by sending calls to it, he will be able to use the functionality written in the
Implementation contract. That way, whenever I release a new version of
Implementation and I set its new address inside the
Proxy the user will automatically have access to the latest version of
This saves me from the trouble of having to inform the user of the new
Implementation address. And also, (and this is crucial). If the user is relying on web3 frameworks that require contract ABI's to know how to communicate with the said contracts, the user doesn't actually need a new
Implementation contract ABI. As he is only ever using the old
Proxy contract ABI no matter my
Implementation updates ??
In essence, I save myself from the trouble of updating ABI's too, right?