Go-Ethereum

如何訪問每個交易事件的合約狀態?

  • October 26, 2018

我有一份具有價格屬性的契約。價格隨著每筆交易而上漲。

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 的評論,這並沒有真正為您提供每個交易的視圖,而只是一個每個塊的視圖。

引用自:https://ethereum.stackexchange.com/questions/35649