Go to file
2022-04-15 18:34:56 +05:30
contracts added proxy contract and deployment script 2022-04-15 18:09:20 +05:30
scripts added proxy contract and deployment script 2022-04-15 18:09:20 +05:30
.env.example hardhat config updates 2022-04-15 18:34:56 +05:30
.eslintignore basic hardhat setup 2022-04-15 16:10:03 +05:30
.eslintrc.js basic hardhat setup 2022-04-15 16:10:03 +05:30
.gitignore basic hardhat setup 2022-04-15 16:10:03 +05:30
.npmignore basic hardhat setup 2022-04-15 16:10:03 +05:30
.prettierignore basic hardhat setup 2022-04-15 16:10:03 +05:30
.prettierrc basic hardhat setup 2022-04-15 16:10:03 +05:30
.solhint.json basic hardhat setup 2022-04-15 16:10:03 +05:30
.solhintignore basic hardhat setup 2022-04-15 16:10:03 +05:30
hardhat.config.ts hardhat config updates 2022-04-15 18:34:56 +05:30
package-lock.json added example 2022-04-15 17:16:15 +05:30
package.json added example 2022-04-15 17:16:15 +05:30
README.md intial commit 🚀 2022-04-14 18:11:37 +05:30
tsconfig.json basic hardhat setup 2022-04-15 16:10:03 +05:30

infinite-proxy (Infinite Extendable Proxy)

Upgradable proxy with infinite implementations enabled at once.

Read about general upgradable contacts with 1 implementation contract here.

Details

  • Creates a mapping from bytes4 sig to implementation's address
  • Stores mapping from implementation's address to bytes4[] sigs. All the external functions we want to be callable from our contract.
  • Every call (other than addition & removal of implementation & sigs) goes through fallback.
  • In fallback it fetches the msg.sig, fetches the implementation from it and run the code logic on that.