So implementieren Sie Smart Contracts

Ich studiere Smart Contract mit Solidität. Ich verstehe etwas nicht, deshalb möchte ich fachmännischen Rat einholen.

Ich habe mich bei der Upbit-Börse angemeldet, um mit dem Token des Golems zu handeln. Die Upbit-Börse gab mir eine Token-Einzahlungsadresse. Diese Adresse war eine Vertragsadresse ( 0x27c6769A0549fa03DafEd89d555C7E71B21Dd35E )

Nachdem ich den Token des Golems hinterlegt hatte, geschah etwas, das ich nicht verstehen konnte. Es gibt keinen Äther, um das Gas an der Depotadresse zu bezahlen, aber der Token des Golems wurde an eine andere Adresse übertragen.

Q1] Um Token ohne Ether zu übertragen, wie implementiert man einen Smart Contract?

F2] Wenn Sie wissen, wo Sie den Beispielcode finden können, auf den verwiesen werden soll, würde ich gerne die URL wissen

Antworten (1)

Q1

Es gibt keine Möglichkeit, etwas ohne Gas (Ether) zu übertragen. Auch da Verträge nichts "von alleine" tun können, sondern jemand jede Aktion initialisieren muss, ist höchstwahrscheinlich Folgendes passiert:

1) Sie übertragen Token auf den Vertrag

2) Der Vertrag überträgt sie irgendwo weiter

3) Sie zahlen für beide Überweisungen

Q2

Für den Code habe ich keine bereitgestellte Version, die ich Ihnen zeigen könnte, aber es könnte so aussehen:

pragma solidity ^0.4.22;

contract GolemToken {
    function transfer(address to, uint tokens) public returns (bool success);
}

// 0x27c6769a0549fa03dafed89d555c7e71b21dd35e
contract ExchangeContract {

    function transfer(address to, uint tokens) public returns (bool success) {
        address golemTokenContract = 0x00;
        address forwardAddress = 0x01;
        GolemToken gt = GolemToken(golemTokenContract);
        // Instead of transferring to 'to', transfer elsewhere
        gt.transfer(forwardAddress, tokens);
    }
}
Kennen Sie die Antwort auf das verlinkte Problem? ethereum.stackexchange.com/questions/49830/token-transfer-fails
Ich habe meinen Fehler gefunden. Die Bereitstellung des Tokenvertrags war falsch. Es funktioniert gut. Vielen Dank.