我正在尝试调用solidity 函数并收到错误消息。这就是我创建合同的方式:
var EthProjContract = web3.eth.contract(my abi);
var EthProj = EthProjContract.at('0xcce478FDeF9F1DF933e31B1eeA48561e0095628A');
我这样调用我的函数:
EthProj.setMessage.sendTransaction(shoco.compress(document.getElementById("MessageBox").value), {from: document.getElementById("add").value})
并得到这个错误:
Uncaught Error: Invalid number of arguments to Solidity function
如果您想知道 shoco.compress 是什么,它会将我的字符串压缩成 uint8arrays。例如,
shoco.compress("Hello")
返回Uint8Array(3) [72, 193, 77]
如果我Hello
在我的MessageBox
盒子里打电话
EthProj.setMessage.sendTransaction(shoco.compress(document.getElementById("MessageBox").value), {from: document.getElementById("add").value})
我得到了错误。但是,当我打电话
EthProj.setMessage.sendTransaction([72, 193, 77], {from: document.getElementById("add").value})
它完美地工作。这意味着获取我的文本不会有任何问题。那会是什么?我所能想到的可能是Uint8Array(3)
在里面可能会把事情搞砸。如果是这样,我该如何解决?