我有一个可靠的脚本:
pragma solidity ^0.4.18;
contract EthProj {
string fName;
string age;
event Message(string name, string age);
function setMessage(string _fName, string _age) public {
fName = _fName;
age = _age;
emit Message(_fName, _age);
}
function getName() public constant returns (string) {
return (fName);
}
function getMessage() public constant returns (string) {
return (age);
}
}
这是我的ABI https://pastebin.com/QLBntb59
我在我的JS脚本中设置合同:
var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
var address = new String();
var EthProjContract = web3.eth.contract(my abi);
var EthProj = EthProjContract.at('0x1D056b1e9764D3C79ca55B68049FC906373044d8');
我正在使用我的功能:
EthProj.setMessage($("#mes").val(), $("#name").val());
我使用两个参数调用此函数,该函数有两个参数。我试过重新上传我的合同,以确保它是最新的合同,它肯定是。我的ABI肯定也是最新的。怎么会有这个错误,它是相同数量的参数。
答案 0 :(得分:0)
嗯,解决方案实际上非常简单。我只是在$("#mes").val()
中有错误的标签,所以它返回未定义。