Übertrage ERC20-Token von meinem Wallet auf ein anderes Wallet

Bevor ich anfange, wollte ich nur sagen, dass ich vor ein paar Jahren mit Solidity angefangen habe und immer noch ein Noob bin, aber ich habe darüber gelesen und recherchiert und kann es nicht zum Laufen bringen.

Ich verwende Ethereum Wallet mit Ropsten-Netzwerk.

Nehmen wir an, ich habe X-Token von einem bereits bereitgestellten Standard-ERC20-Token, ich kenne seine Vertragsadresse. Ich möchte einen Vertrag erstellen, um das auf ein anderes Konto zu übertragen. Ich möchte dies tun, damit ich in Zukunft an mehrere Konten gleichzeitig senden kann, aber ich wollte Schritt für Schritt vorgehen.

Sollte so etwas funktionieren?

    pragma solidity ^0.4.18;

contract Token {
    function totalSupply() constant public returns (uint256 supply);
    function balanceOf(address _owner) constant public returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success) ;
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) ;
    function approve(address _spender, uint256 _value) public returns (bool success) ;
    function allowance(address _owner, address _spender) constant public returns (uint256 remaining) ;
}

contract Envio{

    function Envio() public{
         Token miToken = Token(0x87458903eB3A37775A9CC097f80eb703D1cd0231); //Contract address
         uint8   decimals = 18;
         uint256   decimalFactor = 10 ** uint256(decimals);
        miToken.transfer(0xD49E71da9b64088BA1Ea1535c97f2985F9D3B1Bb,5000*decimalFactor); 
    } 
}

Das Ergebnis, das ich nach Abschluss der Transaktion erhalte, lautet: Es werden keine Token übertragen, und es heißt, dass verbrauchtes Gas = 0 ist. Auch versucht, TransferFrom zu verwenden, dieselben Ergebnisse.

Ich weiß, dass das, was ich tue, möglicherweise völlig falsch ist, ich suche nur nach einer Anleitung.

Antworten (1)

Der Vertrag kann nicht erfolgreich aufgerufen werden, transferda er keine Token besitzt. Es kann vermutlich nicht erfolgreich aufgerufen werden, transferFromda es nicht approvevom Token-Eigentümer (Sie) aufgefordert wurde, Ihre Token zu übertragen.

Sie müssen zuerst den Vertrag bereitstellen (ohne zu versuchen, eine Übertragung im Konstruktor durchzuführen) und dann entweder:

  1. Rufen Sie approveden Tokenvertrag auf, damit Ihr neuer Vertrag transferFrom, oder verwenden kann
  2. Rufen Sie transferden Token-Vertrag auf, um Token auf den neuen Vertrag zu übertragen.

Dann können Sie eine Funktion in Ihrem neuen Vertrag aufrufen, die diese Token an einen anderen Ort überträgt.

Könnten Sie ein Code-Snippet hinzufügen? Wie gesagt, ich lerne noch und will es nicht vermasseln. Danke