Can you deploy non-upgradeable smart contracts with zos?

Hi @PaulRBerg

I deployed a simple Counter contract to test out the overhead of calling a minimal proxy and an upgradeable proxy. The overhead appears relatively small for my example (775 gas for a minimal proxy).

My results are in the same ballpark as what @ylv-io found using a previous version of ZeppelinOS. Gas overhead for proxied function call

You may want to test on one of your contracts.


Vanilla contract (deployed via Truffle)
https://ropsten.etherscan.io/address/0x5cab3e4448e7a8bfd1f74a93cc0a0201a35bd41d
First: 41,653; Subsequent: 26,653

Upgradeable Proxy (deployed via OpenZeppelin SDK)
https://ropsten.etherscan.io/address/0x7e5c2893ba6be6cefa42538738a99bac740eb628
First: 43,239; Subsequent: 28,239

Minimal Proxy (deployed via OpenZeppelin SDK)
https://ropsten.etherscan.io/address/0xbdcd373c6dd40ec92efcac8b1a2e09c3cb0f2feb
First: 42,428; Subsequent: 27,428


Counter.sol (simple contract example)

pragma solidity ^0.5.0;

contract Counter {
  uint256 public value;
  
  function increase() public {
    value++;
  }
}
1 Like