Minimum Viable Proxy

Arbitrum hackathon project comparing Open Zeppelin ERC1967 UUPS Proxy implementation with Huff.

Example Deployment

0xdEdbD1395c615e15AFDd14585271BE41C132787E

Gas Benchmarks Against ERC20Upgradeable

Huff Proxy Open Zeppelin Proxy function
1617 1752 name
1615 1750 symbol
587 728 decimals
736 877 totalSupply
953 1091 balanceOf
1225 1360 allowance
3527 3659 transfer
6266 6398 transferFrom
3053 3185 approve
- - -
19579 20800 TOTAL

Total Gas Diff:

Oz:   20,800
Huff: 19,579
------------
Diff:  1,221

Runtime Bytecode Size Diff:

Oz:   699
Huff:  62
------------
Diff: 637

Runtime Bytecode:

Huff Proxy:

363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc3735
a920a3ca505d382bbc545af43d6000803e610039573d6000fd5b3d6000f3

OZ Proxy:

60806040523661001357610011610017565b005b6100115b6100276100226100
67565b61009f565b565b606061004e8383604051806060016040528060278152
60200161025f602791396100c3565b9392505050565b6001600160a01b03163b
151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e
2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b
3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d
6000fd5b6060600080856001600160a01b0316856040516100e0919061020f56
5b600060405180830381855af49150503d806000811461011b57604051915060
1f19603f3d011682016040523d82523d6000602084013e610120565b60609150
5b50915091506101318683838761013b565b9695505050505050565b60608315
6101af5782516000036101a8576001600160a01b0385163b6101a85760405162
461bcd60e51b815260206004820152601d60248201527f416464726573733a20
63616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b
60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050
565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260
040161019f919061022b565b60005b8381101561020657818101518382015260
20016101ee565b50506000910152565b600082516102218184602087016101eb
565b9190910192915050565b602081526000825180602084015261024a816040
8501602087016101eb565b601f01601f1916919091016040019291505056fe41
6464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c20
6661696c6564a264697066735822122077a8973d907f53194c7809d7aaf9e3a0
89f162b31a6db09151edbb1cc1d9caa964736f6c63430008110033