我已经通过 remix 将具有以下推送功能的合约部署到我的本地私有链。
struct TestComplex{
address testValue;
address delegate;
uint testInt;
}
TestComplex[] testArray;
function setTestArrayByPush( address _delegate, address _testAddr, uint _testInt) public {
testArray.push(TestComplex( {
testValue:_testAddr,
delegate: _delegate,
testInt: _testInt
} ));
}
如果我通过 web3Provider@remix 调用它,它可以正常工作,但是当我通过 geth 控制台或 JS 脚本调用它时contractInstance.setTestArrayByPush(<Add1>, <Add2>,<Int>)
,它不会将任何东西推送到数组中。当我从 TestComplex 结构中删除一个属性并且函数更改如下。它适用于 geth 和 remix。
function setTestArrayByPush(address _testAddr, uint _testInt) public {
testArray.push(TestComplex( {
testValue:_testAddr,
testInt: _testInt
}));
{
}
所以我想知道 remix 函数调用和 geth 控制台有什么区别?我怎样才能将两个以上的参数传递到我的 Dapp 中的 stuct 数组中?