0
let contract = await window.tronWeb.contract().at(config.contract);
let result = await contract.methods.depositTron()
 .send({callValue:amount*1000000})
 .then(output=>transaction = output);
console.log("result", result);

我试图获取 depositTron 方法的结果,但返回了哈希值。我应该怎么做?请帮我。

4

1 回答 1

0

交易调用的函数仅在 EVM 内返回值(通常在从另一个合约调用时)。

send()JS函数返回的hash ,就是交易hash。

您可以通过在合同中发出事件日志来解决此问题。然后您可以从交易收据中获取值或读取发出的日志(在交易被挖掘后在 JS 中发出)。

坚固性:

contract MyContract {
    event Deposit(uint256 indexed amount);

    function depositTron() external payable {
        emit Deposit(msg.value);
    }
}

JS:

contract.methods.depositTron().send({callValue:amount*1000000})
.on('receipt', (receipt) => {
    console.log(receipt.logs);
})
于 2022-02-05T09:28:19.080 回答