This is a proof-of-concept app that stores the Ethereum contract ABIs on IPFS, and shows how to use them to decode NFTX DAO votes. It deals properly with different kind of proxies, such as Transparent Proxy and Beacon Proxy.
DAO frameworks do not do a good job describing the transactions a DAO is doing. Decoding transaction data is hard, especially when proxies are involved. Hopefully our proof-of-concept pushes the technology in this area a bit forward, storing the ABI of the contracts using the bytecode hash as an identifier, so other contracts deployed with the same code can reuse the function descriptions.
How it's made
We store the ABIs of the functions on IPFS and link them on an ethereum contract that hosts a list of curated definitions. We can access this list, so we can describe the functions NFTX DAO is performing, even if the contracts it is calling are using proxies. We support transparent proxies, beacon proxies, and probably UUPS proxies.