For most DeFi protocols, it's hard to read out their internal data directly from their smart contracts. In order to comprehensively audit a DeFi protocol, the first step is to precisely replicate its internal state off-chain. This could be either via smart contract events or reading methods. However, neither approach can provide a complete view of a smart contract's internal data due to Ethereum's API limitation.