Go-Ethereum
如何訪問每個交易事件的合約狀態?
我有一份具有價格屬性的契約。價格隨著每筆交易而上漲。
contract MyContract{ uint256 public price; .... other methods }
對於事務,我在回調中收到以下事件數據:
{ address: '0xa6....................', blockNumber: 15655, transactionHash: '0xb..........................', transactionIndex: 1, blockHash: '0xca........................', logIndex: 0, removed: false, event: 'Transfer', args: { from: '0x3dc..................', to: '0x64b...................', amount: 1 }
}
有沒有辦法在使用上述事件數據(已經發生)的特定交易中獲得契約的價格?
如果您知道價格在儲存中的位置(例如 0,如果它是第一個狀態變數),那麼您可以使用
web3.eth.getStorageAt
:web3.eth.getStorageAt(address, 0, blockNumber);
編輯
根據下面@carver 的評論,這並沒有真正為您提供每個交易的視圖,而只是一個每個塊的視圖。