我正在使用solidity 0.5.1
向web3
方法发送值,并不断收到invalid Tuple value
错误。
这是相关的合同代码:
struct mystruct {
bytes32 id;
string str;
}
mapping (bytes32 => mystruct) structs;
function creatMyStruct(bytes32 id, string memory str) public {
mystruct memory newStruct = mystruct(id, str);
structs[id] = newStruct;
}
我从node.js
开始称呼此人
contract.methods.creatMyStruct(someId, someString).send({from: fromAccount, gas: gasEstimate})
.then(receipt => {
var txhash = receipt.transactionHash;
resolve(txhash);
},
(error) => {
reject(error);
}).catch((err) => {
reject(err);
});
我尝试发送string
和number
,并将字符串转换为hex
。相同的错误:invalid tuple value
。我想念什么?
答案 0 :(得分:0)
编辑:您实例化新结构错误。问题是合同。查看正确的方法
function creatMyStruct(bytes32 _id, string memory _str) public
{
mystruct storage newStruct = mystruct({id: _id, str: _str});
structs[id] = newStruct;
}