It allows us to upgrade previously deployed contracts for timely updates. Comparetively cheaper than TransparentUpgradeable Proxy pattern.
In simple words, it works as follows :
upgradeProxy()is applied to deployERC1967 Proxywhich delegates all calls to the implementation as well the functionality to upgrade to a newer implementation.- Unlike
TransparentUpgradeable ProxyIt doesn't haveProxyAdminfor upgrade functionality due to which it's cheaper for deployments.
For detailed difference between proxy patterns, feel free to check out this repository README file.