gpt4 book ai didi

web3 - 如何使用 tron-web 调用合约方法

转载 作者:行者123 更新时间:2023-12-03 23:13:52 66 4
gpt4 key购买 nike

我正在尝试调用一个只返回一串数据的简单契约(Contract)方法。我的代码基于可以在文档中找到的示例 => https://developers.tron.network/reference#methodcall

tronWeb.trx.getContract("TFWbGYFVjUMKrHALdU4MnFWNYY9Uc5W9SZ").then(async contract => {
console.log(contract);
let abi = contract.abi;
console.log(abi);
let c = await tronWeb.contract({
abi
});
let result = await c.getBadgeOwner('something is up').call();
console.log(result);
});

与可以在文档中找到的内容不同的是,我是从我加载的契约(Contract)中加载 abi,​​而不是像示例中那样对其进行硬编码。

我得到的错误是 index.js:105 Uncaught (in promise) TypeError: e.forEach is not a function 这似乎以某种方式引用了 abi:

enter image description here

最佳答案

对于任何被同样的初学者错误绊倒的人,这里是解决方法:

使用 contract().at() 而不是 getContract()

let contract = await tronWeb
.contract()
.at("TFWbGYFVjUMKrHALdU4MnFWNYY9Uc5W9SZ")

在那之后,你就可以调用你的合约方法了

let currentValue = await contract.getBadgeOwner('something is up').call();

关于web3 - 如何使用 tron-web 调用合约方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54436587/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com