Skip to content

Problem with current proxy

Ref - https://blog.openzeppelin.com/the-transparent-proxy-pattern

Problem with the current proxy implementation

You have to specify all functions upfront when the Proxy contract is being deployed.

contract StorageProxy is Ownable {
uint public num;
address implementation;
constructor(address _implementation) Ownable(msg.sender) {
num = 0;
implementation = _implementation;
}
function setNum(uint _num) public {
(bool success, ) = implementation.delegatecall(
abi.encodeWithSignature("setNum(uint256)", _num)
);
require(success, "Error while delegating call");
}
function setImplementation(address _implementation) public onlyOwner {
implementation = _implementation;
}
}

Once this contract is deployed, there is no way for me to add a new getNum function in there.