Brauchen Sie diese Architektur
{
address1 => [struct1, struct2],
address2 => [struct1, struct2, struct3,],
address3 => [struct1, struct2, struct3, struct4, struct5],
...
}
Mein Versuch
contract Gallery{
uint public emojiCount;
struct Token {
uint token;
string ipfsHash;
}
mapping (address => Token[]) public emoji;
function addEmoji (uint _token, string _ipfsHash) public {
emojiCount ++;
emoji[msg.sender].push(Token(_token, _ipfsHash));
}
}
Wie gebe ich ein Struct-Array zurück, damit ich Bilder IPFS
String
gemäß der Benutzerkontoadresse speichern kann [msg.sender]
.
Wie ist dies in Solidität möglich
Vielen Dank im Voraus
Ihr Code sollte wie beabsichtigt funktionieren und Ihnen eine Gesamtzahl von "Emojis" geben, aber Sie möchten diese Informationen möglicherweise pro Adresse, um dies zu tun, könnten Sie eine zweite Zuordnung hinzufügen, um immer die letzte Position für die eingefügte Adresse zu halten :
mapping (address => uint256) addressToLastUsedPosition;
Wenn Sie dann auf das Array drücken, die Position zurückerhalten und die Zuordnung festlegen.
uint256 newMaxPositionForAddress = emoji[msg.sender].push(Token(_token, _ipfsHash));
addressToLastUsedPostion[msg.sender] = newMaxPositionForAddress;
Auf diese Weise können Sie immer wissen, wie viele "Emojis" pro Adresse vorhanden sind.
Syed Zain Ali
solidity
Code erklären, ist viel einfacher zu verstehen, wobei ähnliche Fragen wie oben erwähnt nicht selbsterklärend sind @shaddowCaptPython