繁体   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