Ich habe diesen intelligenten Vertrag, um Token an mehrere Adressen zu senden:
pragma solidity ^0.4.18;
contract ERC20 {
function transfer(address _recipient, uint256 _value) public returns (bool success);
}
contract Airdrop {
function drop(ERC20 token, address[] recipients, uint256[] values) public {
for (uint256 i = 0; i < recipients.length; i++) {
token.transfer(recipients[i], values[i]);
}
}
}
Wenn ich über MyEtherWallet auf die Funktion „Drop“ zugreife, weiß ich nicht, wie ich die Adressen in das Feld „recipients“ einfügen soll.
Ich habe das versucht, aber keiner von ihnen funktioniert:
0x0000000000000000000000000000000000001, 0x00000000000000000000000000000000000002, 0x000000000000000000000000000000000
0x0000000000000000000000000000000000001 0x00000000000000000000000000000000000002 0x000000000000000000000000000000030
['0x0000000000000000000000000000000000001', '0x00000000000000000000000000000000000002', '0x0000000000000000000000000000'000
["0x0x0000000000000000000000000000000000001", "0x00000000000000000000000000000000000002", "0x0000000000000000000000000000000000"0]
Ich kann nur die erste ausführen, aber es heißt "Bad Instruction" oder "Fail". In den anderen Optionen drücke ich die Schaltfläche "Schreiben", aber es passiert nichts
Sowohl Empfänger als auch Werte müssen Arrays gleicher Größe sein. Versuchen Sie Empfänger = 0x1234.., 0x1234.., 0x1234.., Werte = 667, 668, 669. Danke an Ismael für die Antwort
Dies ist keine Antwort auf Ihre Frage, sondern nur ein Hinweis. Es wird nicht empfohlen, Überweisungen zu wiederholen, sondern eine Auszahlungsmethode zu erstellen. Ich empfehle, dass Sie sich auch Re-Entrancy-Angriffe ansehen, wenn Sie gerade dabei sind, und vielleicht einige Modifikatoren zur Sicherheit implementieren.
Ismael
["0x1234..", "0x1234..", "0x1234.."]
,values = [667, 668, 669]
Bildungsinvestor