尝试制作具有可变大小的数组

时间:2018-05-20 19:53:16

标签: solidity web3

我正在尝试使用事件将字符串写入区块链。这将经常花费大量的气体,所以我试图压缩我的弦。它们被压缩成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

0 个答案:

没有答案