Ich habe ein Guthaben wie folgt, so dass ich nach dem Ändern seines Wertes die Historie früherer Transaktionen behalten möchte, zum Beispiel zum ersten Mal der Wert von Energy_Balance
ist 5
und zum zweiten Mal 2
Einheiten hinzugefügt werden, Energy_Balance
so dass der Gesamtwert wird sein 7
. Jetzt möchte ich den Verlauf aller Transaktionen aufbewahren, damit wir wissen, was der erste Wert war (dh 5
) und was der zweite Transaktionswert war (dh 2
). Wenn ich dafür ein definieren muss event
, wie definiere ich es und wie rufe ich event auf ?
mapping(address => uint256) Energy_Balance
Im Falle der Verwendung eines Arrays, wie von Benutzer Eli Drion vorgeschlagen , wie folgt:
mapping (address => uint[]) Energy_Balance
Wie kann ich den neuen Wert von Energy_Balance einstellen? Zum Beispiel,
First Transaction: balances[owner][0] = balances[owner][0] + value;
Second Transaction: balances[owner][1] = balances[owner][1] + value;
ist richtig ?
Jetzt möchte ich den Verlauf aller Transaktionen behalten
Sie müssen dann ein Array verwenden, da es hier auf die Reihenfolge ankommt. Wenn Sie keine weiteren Informationen über den Benutzer benötigen, müssen Sie keine Struktur verwenden, sondern können dies direkt tun.
mapping (address => uint[]) txs_history;
Wenn ich dafür ein Ereignis definieren muss, wie definiere ich es und wie rufe ich event auf?
Definieren eines Ereignisses
event MyEvent(address _sender, uint _amount);
Aufrufen eines Ereignisses
function myFunction(uint _amount) {
//we do alot of things here
MyEvent(msg.sender, _amount);
}
Badr Bellaj