我正在尝试使用事件将字符串写入区块链。这将经常花费大量的气体,所以我试图压缩我的弦。它们被压缩成js中的uint8array
。这是我的可靠性脚本:
pragma solidity ^0.4.18;
contract EthProj {
event Message(uint8[] message, address add, uint256 cost);
event Username(uint8[] name, address add, uint256 cost);
function setMessage(uint8[] _fMessage) public {
uint8[] memory output = new uint8[](_fMessage.length);
output = _fMessage;
emit Message(output, msg.sender, gasleft());
}
function setUsername(uint8[] _userName) public {
emit Username(_userName, msg.sender, gasleft());
}
}
我的目标是让数组的大小取决于压缩文本的大小,但是在使用它调用它时我得到无效的参数数量错误:
message = document.getElementById("MessageBox").value;
compressed = shoco.compress(message);
EthProj.setMessage.sendTransaction(compressed, {from: document.getElementById("add").value});`
你能不能制作一个大小可变的阵列,如果我不能,那么我该如何实现我的目标呢?错误是:Invalid number of arguments to solidity function