1

我正在将 angular 与 walletconnectprovider 和 web3 一起使用,我在调用合同中的任何方法时遇到了这个问题,其中 web3 没有返回任何响应。

这就是我初始化提供程序的方式

this.provider = new WalletConnectProvider({
  // infuraId: "27e484dcd9e3efcfd25a83a78777cdf1",
  rpc: {
    56: "https://bsc-dataseed.binance.org/"
  },
  chainId: 56
});

初始化 web3 和合约

const web3 = await new Web3(this.provider as any);

const contract = new web3.eth.Contract(JSON.parse(this.smartContract.abi),this.smartContract.contractAddress,{
  from: this.provider.wc.accounts[0]
});

每次我调用这个方法时,它下面的所有代码都不会执行。我还检查了我的网络选项卡,似乎根本没有运行 Http 请求。

await contract.methods.balanceOf(this.toAddress).call()
// codes here is not called
4

1 回答 1

1

在函数中,在合约迭代之前添加以下语句:

provider.enable();

对我来说,它工作正常。如果我之前不包含这句话,则不会执行任何操作。

于 2021-12-23T15:14:38.190 回答