mirror of
https://github.com/Instadapp/infinite-proxy.git
synced 2024-07-29 21:47:49 +00:00
Update README.md
This commit is contained in:
parent
8095a31935
commit
bb3909d749
|
@ -8,6 +8,12 @@ Read about general upgradeable contacts with 1 implementation contract [here](ht
|
|||
Upgradeable proxies are a big part of ethereum development, they allow smart contracts to be upgradable add/remove code and almost all protocol now uses it one way or another. Still there are some problems which aren't solved via these proxies. Eg:- Ethereum code-limit issue, deployment of full contract again for updates in small part of the code, unability to easily disable/enable some functions.
|
||||
So whats the solution? Normal proxies have the implementation address stored (in the implementaion slot) to which they delegate call for every external call. What if there could be multiple implementations for a single proxy, the proxy able to decide which implementation to delegate call to for a particular external call. This solves the ethereum-code limit issue as the code can be separated out into different implementations, for smaller updates to the code only that particular implementation has to be redeployed, lastly functions can be easily disabled/enabled by removing/adding implementations.
|
||||
|
||||
## Comparision
|
||||
Proxy | Infinite Proxy
|
||||
:-------------------------:|:-------------------------:
|
||||
![image](https://user-images.githubusercontent.com/34437877/163826330-3c67a894-1f6b-4833-8d3d-7ad947407b3d.png) | ![image](https://user-images.githubusercontent.com/34437877/163826362-4bf95d26-3914-4cc5-900b-4ab610ff1959.png)
|
||||
|
||||
|
||||
## How it works?
|
||||
- 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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user