Airdrop-Token-Code funktioniert nicht

Ich habe diesen Code, um eine Multi-Transaktion von Token in einem kurzen Airdrop 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]);
  }
 }
}

Ich habe den Vertrag bereitgestellt, aber obwohl er erfolgreich war, hat der Empfänger kein Token erhalten. Sehen Sie hier irgendwelche Fehler?

Nach der Bereitstellung des Vertrags müssen Sie die Funktion dropmit den Parametern aufrufen, damit die Tokes gelöscht werden. Hast du das gemacht? Stellen Sie txn-Hash bereit, damit die Leute es überprüfen und sich bei Ihnen melden können
@Rajesh Ich rufe die Funktion auf, dropdies ist der txn 0x993e9ad6fa4fb142c21ea1b6a010ff214ee09470c6dc8f80fe7c664cc8c47ff5 Erfolg, aber es werden keine Token an die von mir angegebene Adresse gesendet erhalten
Können Sie auch erklären, wie Sie die Funktion ausgeführt/aufgerufen haben? Hast du Remix verwendet? Können Sie auch angeben, wie Sie die Parameter übergeben haben? Wenn es sich um einen Remix handelt, schließen Sie die Empfänger und Werte in eckige Klammern ein, Elemente, die durch das Komma getrennt und von doppelten Anführungszeichen umgeben sind.
Ich erstelle dafür einen neuen Vertrag. Muss ich diese Airdrop-Funktion in demselben Vertrag bereitstellen, in dem ich das Token erstelle? @ Rajesh
Nicht benötigt. Dies kann auch in einem separaten Vertrag erfolgen. Wenn Sie die Parameter falsch übergeben, erhalten Sie nichts. Sie müssen also die übergebenen Parameter erneut überprüfen.

Antworten (1)

Das mag dumm klingen ... Aber hast du die Tokens an den Luftabwurfvertrag geschickt?

Der Airdrop-Vertrag kann nur die Token senden, die er (die Vertragsadresse) besitzt.

ja ich löse es jetzt