Ich habe eine Solidity-Datei erstellt, die alle Details in der Blockchain (Ganachi-Desktop-Anwendung) speichert. Details wurden mit „ id “ zugeordnet, was eine alphanumerische Zahl ist (z. B.: US644563496). Jetzt muss ich alle „ID“ aus der Blockchain anzeigen. Aber während der Kompilierung erhalte ich den Fehler ' UnimplementedFeatureError: Nested dynamic arrays not installed here .'
pragma solidity ^0.4.4;
contract Register{
struct Details{
bytes id;
string name;
string age;
string country;
}
mapping (bytes => Details) DetailsTable;
bytes[] uid;
function saveBondToBC(bytes id,string name,string age,string country) payable returns(bool success){
DetailsTable[id].id = id;
DetailsTable[id].name = name;
DetailsTable[id].age = age;
DetailsTable[id].country = country;
return true;
}
function insertID(bytes id) payable returns(bool success){
uid.push(id);
return true;
}
function getAllID() public returns(bytes[]){
return uid;
}
}
Als ich die Funktion getAllID() entfernte , wurde sie kompiliert und 'id' wurde in das Array geschoben. Wie rufe ich alle Daten von byte[] uid ab?
UnimplementedFeatureError: Verschachtelte dynamische Arrays sind hier nicht implementiert
Dieser Fehler sagt Ihnen, dass Solidity nicht mit dynamischen 2D-Arrays umgehen kann. Die Funktion wurde noch nicht implementiert.
Details wurden mit „id“ zugeordnet, was eine alphanumerische Zahl ist (z. B.: US644563496)
Wenn Sie bereits wissen, wie viele Zeichen Ihre IDs haben werden oder wie ihre maximale Länge sein wird, können Sie die Länge des Bytes-Objekts definieren. Siehe auch die Dokumentation .
Eine Problemumgehung für Sie könnte daher darin bestehen, einfach zum Beispiel bytes
durch zu ersetzen. bytes32
Wenn ich dies in Remix teste , wird kein Fehler ausgegeben.
Hoffe es hilft.
angelmaria