【发布时间】:2019-01-05 15:35:33
【问题描述】:
所以我想让一个节点服务器在调用我的合约的应付函数时代表一个 ETH 地址。一些网站已经讨论过类似的概念,但只是在发送 ETH 的范围内,而不是调用合约函数。我该怎么做?
【问题讨论】:
所以我想让一个节点服务器在调用我的合约的应付函数时代表一个 ETH 地址。一些网站已经讨论过类似的概念,但只是在发送 ETH 的范围内,而不是调用合约函数。我该怎么做?
【问题讨论】:
要与您的合约交互,您需要在节点服务器中创建一个合约实例。
部署合约后,您将获得contract abi 和contract 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
【讨论】: