Ich möchte ein Array von Mappings, ist das möglich?
mapping (address >= value) sentValue;
sentValue[] public sentValues;
Ich möchte Beträge aufzeichnen, die nach Adresse gesendet werden, und ich möchte, dass jedes Sendeereignis einzigartig ist, mit der Möglichkeit, dass eine Adresse mehrere verschiedene Beträge senden kann und jeder einzeln im Array verfolgt wird? Das Endergebnis wäre die Möglichkeit, dieses Array zu durchlaufen und vom Benutzer gesendete Bestellmengen anzuzeigen.
Wie definiere ich jedes Mal eine neue Zuordnung, wenn ein Benutzer einen bestimmten Betrag sendet, und wie lautet der Code, um diese neue Zuordnung am Ende des Arrays zu verschieben?
Was Sie suchen, ist eine Abbildung der Abbildung. Ich habe den folgenden intelligenten Vertrag erstellt, der meiner Meinung nach das erreicht, was Sie beschrieben haben.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.5.0 <0.8.0;
contract myContract {
mapping (address => mapping (uint => uint)) public payments;
mapping (address => uint) public lastPayment;
function sendMoney() public payable {
require(msg.value > 0);
payments[msg.sender][lastPayment[msg.sender]] = msg.value;
lastPayment[msg.sender]++;
}
}
Bitte beachten Sie, dass die Verwendung von public
for payments
und lastPayment
-Variablen den Compiler anweist, zwei intelligente Vertragsfunktionen zu erstellen, um diese Werte zu lesen.
Hier das Wesentliche , und hier der Link , um es selbst mit Remix zu versuchen .
SkyTemple
SkyTemple
hrkrshnn