mirror of
https://github.com/Instadapp/infinite-proxy.git
synced 2024-07-29 21:47:49 +00:00
contracts | ||
scripts | ||
.env.example | ||
.eslintignore | ||
.eslintrc.js | ||
.gitignore | ||
.npmignore | ||
.prettierignore | ||
.prettierrc | ||
.solhint.json | ||
.solhintignore | ||
hardhat.config.ts | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
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.