Contract-Development
一個合約可以監聽另一個合約的事件嗎?
我讀了那個來收聽你需要使用 web3.js 的事件。還有其他方法嗎?一個合約甚至可以以某種方式監聽另一個合約的事件嗎?謝謝!
一個合約不能監聽另一個合約的事件。來自Solidity 文件:
無法從合約中訪問日誌和事件數據(甚至無法從創建日誌的合約中訪問)。
web3.js 是 JSON-RPC 的包裝器,因此訪問事件數據的另一種方法是通過 JSON-RPC 中的“過濾器”,例如eth_newFilter。
請注意合約無法訪問事件和需要 web3.js 的二分法,但 web3.js 無法訪問合約呼叫的返回值。因此,可能需要這樣一種同時使用事件和返回值的模式:
event FooEvent(uint256 n); function foo() returns (uint256) { FooEvent(1337); return 1337; }