Динамический массив в Солидности - PullRequest
0 голосов
/ 31 декабря 2018

Я очень новичок в разработке Ethereum и Solidity.

Я просто хочу объявить простой массив (динамический список), одну функцию set для добавления строки в нее и одну функцию, которая возвращает все строкисохранено в динамическом массиве.

Я много ищу, но не могу найти этот простой материал.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Если, наконец, вы хотите взаимодействовать со своим умным контрактом с помощью таких инструментов, как web3j (для java) или web3js (javascript) в приложении, работа с динамическими массивами не будет работать из-за некоторых ошибок вэти библиотеки.
В этом случае вы должны сериализовать ваш выходной массив.То же самое относится, если у вас есть входной массив.

0 голосов
/ 31 декабря 2018

Вот мое решение, вам нужно experimental ABIEncoderV2, чтобы вернуть массив строк.

pragma solidity ^0.5.2;
pragma experimental ABIEncoderV2;

contract Test {

    string[] array;

    function push(string calldata _text) external {
        array.push(_text);
    }

    function get() external view returns(string[] memory) {
        return array;
    }
}
...