Logs
是否可以獲取智能合約的日誌數據?
我想知道是否可以獲取智能合約的日誌數據。問題是我需要獲取地址、tokenId 和更多變數,但是一旦部署了合約,我不知道如何獲取這些資訊。先感謝您!
在通過對該函式的簡單 web3 呼叫獲取變數數據後,您可以將變數聲明為公共變數。
正如 Akshay 所說,您可以簡單地將變數公開以便以後從合約中讀取,但您也可以從交易收據中讀取事件。
使用 ethersjs 的範例:Test.sol
//SPDX-License-Identifier: MIT pragma solidity ^0.8.11; contract Test { event TestEvent(uint256 data); constructor() { emit TestEvent(123); } }
部署.js
const Test = await ethers.getContractFactory('Test'); let test = await Test.deploy(); test = await test.deployed(); let receipt = await test.deployTransaction.wait(); let events = receipt.events; let testEvent = events.filter(({event}) => event == 'TestEvent')[0]; console.log(testEvent.args.data);
>> BigNumber { value: "123" }