Попытка сделать массив с переменным размером в солидности - PullRequest
0 голосов
/ 20 мая 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...