【问题标题】:Call Web3 contract send function node调用 Web3 合约发送功能节点
【发布时间】:2019-01-05 15:35:33
【问题描述】:

所以我想让一个节点服务器在调用我的合约的应付函数时代表一个 ETH 地址。一些网站已经讨论过类似的概念,但只是在发送 ETH 的范围内,而不是调用合约函数。我该怎么做?

【问题讨论】:

    标签: node.js web3


    【解决方案1】:

    要与您的合约交互,您需要在节点服务器中创建一个合约实例。

    部署合约后,您将获得contract abicontract address

    var Web3 = require('web3');
    var web3 = new Web3('http://localhost:8545');
    
    var abi = [{"constant":true,"inputs":[],"name":"txcount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}];
    
    var contractaddress = "0xf217e1fe69d.........";
    var contractinstance =new web3.eth.Contract(abi, contadd);
    
    contractinstance.methods.nameFunction(param1, param2).send({from:"0xfc312ab....", gas: 100000}, function(error, txHash){
      console.log(txHash);
    });

    您还可以从用solidity编写的函数中检索值:

    contractinstance.methods.retrieveValue(param1, param2).call({from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'}, function(error, result){
      console.log(result);
    });

    更多信息请阅读文档here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 2019-01-24
      • 2018-12-28
      • 2018-07-18
      • 2022-09-28
      • 2018-09-23
      • 2022-01-17
      • 2021-03-10
      相关资源
      最近更新 更多