From 32aa2a4600d1c4f6e8676e5b50611da36cbd04fa Mon Sep 17 00:00:00 2001 From: Samyak Jain <34437877+KaymasJain@users.noreply.github.com> Date: Fri, 15 Apr 2022 20:12:46 +0530 Subject: [PATCH] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 775ba13..a144a20 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,7 @@ So whats the solution? Normal proxies have the implementation address stored (in ## Dummy Implementation One issue with infinite proxies is that etherscan isn't able to detect that the contract is a proxy and hence isn't able to link it to the implementations. This makes it not usable via etherscan, also users can't see the list of all the read/write functions they can call. An innovative solution for the problem is using a dummy implemenatation. A dummy implementation is nothing but a contract containing all external functions which are callable by the users. The dummy implementation doesn't contain any logics of the functions (analogous to contract interfaces). The dummy implementation's address is stored at the implementation slot which etherscan detects in order to link proxies to their implementations, hence all the external functions can then be seen/called directly via etherscan. Through dummy impelementations, etherscan gets the functions sigs, generates the calldata, but the actual call is delegated to the respective implementation. + +## Live contracts using Infinite Proxy. +- iUSDC vault of [Instadapp Lite](https://lite.instadapp.io/). [here](https://etherscan.io/address/0xc8871267e07408b89aA5aEcc58AdCA5E574557F8) +- DSA v2 contracts [here](https://github.com/Instadapp/dsa-contracts/tree/master/contracts/v2). It been live for more than a year now uses an older version of infinite proxy.