Web3js

從 web3 呼叫合約視圖方法

  • December 25, 2020

我正在嘗試使用 web3 和 web3-eth-contract 呼叫智能合約上的函式,但出現錯誤Provider does not have a request or send method to use.

這是我正在嘗試的一般程式碼:

const provider = new Web3.providers.HttpProvider(infuraEndpoint);
const web3 = new Web3(provider);
const contract = new Contract(tokenAbi.abi, tokenContractAddress);
contract.methods.someFun().call()
       .on('receipt', (res) => {.....

我顯然遺漏了一些關於它是如何工作的東西,但我不知道它是什麼。有沒有人有從節點呼叫乙太坊合約上的函式的例子?

我將粘貼web3 文件中的範例供您查看

myContract.methods.myMethod(123)
.call({from:'0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})
.then(function(result){
   console.log(result)
});

我也認為如果您使用的是目前版本的 web3 ,則需要更改new Contract為。new web3.eth.Contract

引用自:https://ethereum.stackexchange.com/questions/91510