Go to file
2022-04-15 16:29:13 +05:30
contracts/infiniteProxy minor code linting 2022-04-15 16:29:13 +05:30
scripts basic hardhat setup 2022-04-15 16:10:03 +05:30
test basic hardhat setup 2022-04-15 16:10:03 +05:30
.env.example basic hardhat setup 2022-04-15 16:10:03 +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 basic hardhat setup 2022-04-15 16:10:03 +05:30
package-lock.json basic hardhat setup 2022-04-15 16:10:03 +05:30
package.json basic hardhat setup 2022-04-15 16:10:03 +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.