У меня есть структура Покупка, в которую я помещаю массив платежей. Однако, когда я пытаюсь добавить новый массив платежей в свой метод makePayment
, я получаю сообщение об ошибке от компилятора целостности: «Внутренняя ошибка компилятора: копирование типа struct Память платежной памяти [] на память еще не поддерживается». Когда я меняю массив мерцания на storage
или memory
, я получаю ту же ошибку. Я добавил соответствующий код ниже.Как инициализировать массив в структуре
Можно ли сделать то, что я пытаюсь сделать в прочности? Я не вижу ничего явно, говоря, что это невозможно в документации, но я также не вижу примеров, которые делают то, что я пытаюсь сделать. : |
struct Payment {
address maker;
uint amount;
}
struct Purchase {
uint product_id;
bool complete;
Payment[] payments;
}
Purchase[] purchases;
function makePayment(uint product_id, uint amt, uint purchase_id) returns (bool) {
Payment[] payments;
payments[0] = Payment(address, amt);
purchases[purchase_id] = Purchase(product_id, false, payments);
}
Возможно, это происходило, потому что я не использовал достаточное количество газа для транзакции. – unflores
Вы видели, что есть [Ethereum SE beta] (http://ethereum.stackexchange.com/)? – default