我正在连接我的
Solidity
通过合同
nodejs
和
web3
. 我可以读取信息,但是当试图向数组添加元素时,它不会被添加。
这是我的密码。
这个
solidity
方法:
bytes32[20] bytesArray;
function add(uint8 id, bytes32 s) public {
bytesArray[id] = s;
}
我的电话
诺迪斯
文件:
var myContractABI = <the_abi>;
var contractAddress = '0x...';
var myContract = new web3.eth.Contract(myContractABI, contractAddress);
myContract.setProvider(web3.currentProvider);
添加值:
myContract.methods.add(0, web3.utils.asciiToHex("some string")).call()
.then(receipt => {
console.log(" added? " + receipt); // returns [object Object]
});
然后,要获得该值:
myContract.methods.getArray().call()
.then(receipt => {
console.log("full array " + receipt);
});
数组返回,但其所有值仍为空,
0x0000000000000000000000000000000000000000000000000000000000000000
。
我用
Remix
它工作得很好,增加了值,我可以看到它们。但我需要从
诺迪斯
到目前为止它还不起作用。