Я пытаюсь записать строку в цепочку блоков, используя события.Это будет регулярно стоить много газа, поэтому я пытаюсь сжать свои струны.Они сжимаются в uint8array
в js.Вот мой сценарий солидности:
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