Smart Contract, der ETH auf andere ETH Wallet übertragen kann (Eigentümer des Smart Contract)

Ich habe tatsächlich einen Smart Contract erstellt, der in der Lage ist, einen neuen Smart Contract zu erstellen und den Erlös zu senden. Ich bin ziemlich neu bei Solidity und kann keinen Weg finden, den Smart Contract zu ändern, um ETH vom Absender zu akzeptieren, zu speichern oder direkt an den Eigentümer des Smart Contract zu senden. Hier ist der Code, Hilfe wird geschätzt!

    pragma solidity ^0.4.0;

    contract EtherTransferTo {
    function () public payable {
    }

    function getBalance() public returns (uint) {
    return address(this).balance;
    }
}

    contract EtherTransferFrom {

    EtherTransferTo private _instance;

    function EtherTransferFrom() public {
    // _instance = EtherTransferTo(address(this));
    _instance = new EtherTransferTo();
   }

    function getBalance() public returns (uint) {
    return address(this).balance;
    }

    function getBalanceOfInstance() public returns (uint) {
    //return address(_instance).balance;
    return _instance.getBalance();
    }

    function () public payable {
    //msg.sender.send(msg.value);
    address(_instance).send(msg.value);
    }
}

Antworten (1)

Wenn Sie einen Vertrag abschließen möchten, der einfach jede ETH an den Vertragsinhaber weiterleitet, müssen Sie:

  • Definieren Sie einen Eigentümer des Vertrags bei der Vertragserstellung
  • Erstellen Sie eine zahlbare Funktion für den Vertrag
  • Lassen Sie diese Zahlungsfunktion die Gelder an diesen Eigentümer weiterleiten

Hier ist ein wirklich einfaches Beispiel für den Einstieg (ungetestet und nicht produktionsreif):

pragma solidity 0.4.24;

contract EthForward {
    address _owner;

    constructor() public {
        _owner = msg.sender;
    }

    function() public payable {
        _owner.transfer(msg.value);
    }
}

Dieser Vertrag nutzt zwei Schlüsselkonzepte:

  1. Die Konstruktorfunktion
  2. Die Fallback-Funktion

Sie sollten Zeit damit verbringen, mehr über Solidität durch offizielle Dokumentation und Tutorials wie Cryptozombies zu lernen

Ich habe den Code getestet und er funktioniert einwandfrei. Danke für den Vorschlag. Kann ein Smart Contract ETH akzeptieren und die gleiche Anzahl von Token wie von ETH gesendet plus die ETH an den Eigentümer senden?
Sicher, dafür müssen Sie nur eine Token-Schnittstelle (höchstwahrscheinlich erc-20) verwenden und eine Funktion schreiben, um einem Benutzer Token hinzuzufügen, wenn er eine Zahlung leistet. Auch hier empfehle ich Ihnen, eher theoretisch zu beginnen und Solidität als Sprache zu lernen, und dann Ihr Wissen zu nehmen und es auf ein bestimmtes Problem anzuwenden, das Sie lösen möchten.