簡體   English   中英

無法使用 web3.js 從智能合約調用 function

[英]Unable to call function from smart contract using web3.js

我正在嘗試使用 web3 從我的智能合約中調用 function 並做出反應。 這是我的代碼。

app.js
    const project=new web3.eth.Contract(Mycontractabi.abi,networkData.address);
    const retailer=await project.getretailer.call();
    console.log(retailer);

contract:
    address public  retailer
    function getretailer() public view returns (address)
    {
        return retailer;
    }

請指出問題所在,因為我無法獲得代碼所需的零售商地址

我發現使用 web3.js 從智能合約訪問變量有一個簡單的方法:

contract.methods.variable_name.call().call();

所以在我的例子中,修改后的代碼將是:

const project=new web3.eth.Contract(Mycontractabi.abi,networkData.address);     
const retailer=await project.methods.retailer.call().call();

無需調用任何 function 即可訪問單個變量。 我們可以使用上述方法直接訪問任何變量。

您可以像下面這樣撥打 function。

const retailer = await project.methods.retailer().call();

如果一個方法有一些參數,你可以使用:

const response = await project.methods.myAnotherMethod(param1, param2).send({from: address});

address是當前連接的錢包地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM