Web3JS 以太坊合约存储历史

Web3JS Ethereum Contract Storage History

我有以下问题,假设交易调用了智能合约的函数,它 更改合约在以太坊主网上的状态。例如。计数器变量设置为 0 到 1。 有没有一种简单的方法可以通过 Web3JS 访问以前的状态?

提前致谢!

是的,您可以在智能合约功能中使用事件来保存与智能合约的每次交互,然后使用 web3 并获取智能合约上发生的所有事件,就像您获取先前状态的所有记录一样。

是的,只要您知道要查找的存储位置即可。 JSON-RPC 方法 eth_getStorageAt 允许您在任意块的给定位置检索存储。 web3.js 将此公开为 web3.eth.getStorageAt().