Angular App中的“ smartContract.at不是函数”

问题描述 投票:0回答:1

在我的Angular Dapp中,第一个代码中的错误是“ smartContract.at不是函数”。

  settingMap(hashRoot : string) {
 var smartContract = new window.web3.eth.Contract([contractAbi])
 var contract = smartContract.at(contractAddress)
 var owner = smartContract.owner
 console.log(owner)

但是如果我以这种方式编写代码:

 settingMap(hashRoot : string) {
var smartContract = new window.web3.eth.Contract([contractAbi],contractAddress)
var owner = smartContract.owner
console.log(owner)

console.log打印未定义。我该如何解决这个问题?我已经尝试了很多方法,甚至更改了代码行]

"var smartContract = window.web3.eth.contract([contractAbi])"

输入

 "var smartContract = new window.web3.eth.Contract([contractAbi])"
javascript angular ethereum web3 web3js
1个回答
0
投票

如果使用的是web3版本1.x.x,则合同实例的机制将如下所示更改:

var smartContract = new web3.eth.Contract(contractAbi, contractAddress);

并且如果不需要挖掘公共方法/变量,则可以调用它们,如下所示:

await smartContract.methods.owner().call();
© www.soinside.com 2019 - 2024. All rights reserved.