Ho una struttura Acquisto in cui sto inserendo una serie di pagamenti. Tuttavia, quando provo ad aggiungere il nuovo array di pagamenti nel mio metodo makePayment
ottengo un errore dal compilatore di solidità: "Errore interno del compilatore: copia di tipo struct Memoria di pagamento [] memoria in memoria non ancora supportata." Quando cambio l'array mayment da storage
o memory
, ottengo lo stesso errore. Ho aggiunto il codice pertinente qui sotto.Come inizializzare una matrice in una struttura
È possibile fare ciò che cerco di fare in solidità? Non vedo nulla che affermi esplicitamente che non è possibile nella documentazione, ma non vedo nemmeno esempi che facciano quello che sto cercando di fare. : |
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);
}
È possibile che ciò stia accadendo perché non stavo usando abbastanza gas per la transazione. – unflores
Hai visto che c'è una [Ethereum SE beta] (http://ethereum.stackexchange.com/)? – default