Web3js
我應該怎樣稱呼從 Truffle 合約函式呼叫返回的對象
當我通過 Truffle 執行合約函式呼叫,然後解析返回的 Promise 時,我得到如下資訊:
{ "tx": "0x...", "receipt": { "transactionHash": "0x...", "transactionIndex": 0, "blockHash": "0x...", "blockNumber": 24, "gasUsed": 42860, "cumulativeGasUsed": 42860, "contractAddress": null, "logs": [ { "logIndex": 0, "transactionIndex": 0, "transactionHash": "0x...", "blockHash": "0x...", "blockNumber": 24, "address": "0x...", "data": "0x...", "topics": [ "0x...", "0x...", "0x..." ], "type": "mined" } ], "status": "0x1", "logsBloom": "0x..." }, "logs": [ { "logIndex": 0, "transactionIndex": 0, "transactionHash": "0x...", "blockHash": "0x...", "blockNumber": 24, "address": "0x...", "type": "mined", "event": "Transfer", "args": { "from": "0x...", "to": "0x...", "value": "0" } } ] }
我不太確定 Truffle 究竟是如何包裝 web3.js 以呼叫合約函式的,所以我不確定在哪裡可以查看 web3.js 文件。但我使用的是依賴於 web3.js v0.18.4 的 Truffle v4.1.14,而 web3.js v0.x的文件有點難以閱讀,所以我在文件中搜尋了 web3.js v1.x。
現在,我想我應該研究web3.eth.sendSignedTransaction,它返回:
一個 Promise 組合事件發射器。將在交易收據可用時解決。
因此,Truffle 似乎接受了此收據,並將其嵌入到包含以下附加欄位的 JSON 對像中:
tx
,這是交易雜湊,我想logs
, 其中包含部分或全部receipt.logs
, 但已解碼那麼這裡到底發生了什麼?
這個新對象肯定不是文件中描述的收據。
是否有官方術語,或者它只是一個“松露黑客”,旨在讓我的生活更輕鬆地解碼事件?
謝謝你。
顯然松露返回它自己的對象。它肯定會包含原始的 web3 收據,
receipt
因為 truffle 使用你提到的 web3 0.x。所以添加的屬性無非是松露試圖使其框架更好並保持web3之上的層的一種方式。我認為該對像沒有特定的術語,或者至少它總是會被
transactionReceipt
Web3 所掩蓋,因此兩者的名稱相同。