Solidity - So sende ich ETH von meiner Brieftasche an eine andere Adresse

Ich möchte meine ETH mit Solidity programmgesteuert an eine andere Wallet-Adresse senden. Können Sie mir bitte sagen, dass dies möglich ist? Wenn ja, nennen Sie mir bitte einige Beispiele. Ich habe die Dokumentation gelesen und es hat nur für erstellte Token.

Danke

Antworten (2)

Ich würde gerne falsch liegen, aber es ist noch nicht möglich, Ether von einer Wallet-Adresse zu einer anderen Wallet-Adresse nur mit Solidity zu senden .

Aber dennoch, wenn Sie möchten, können Sie Ihren Vertrag mit einer Methode schreiben:

pragma solidity ^0.4.18;

contract Example {
    function sendEther(address _addr) public payable {
        _addr.transfer(msg.value);
    }
}

und dann mit dieser Methode etwas Ether an die gewünschte Adresse senden:

await instance.sendEther.sendTransaction(accounts[1], { from: accounts[0], value: 10**18 });

Aber es ist nicht praktisch, wenn Sie einfach verwenden können:

await web3.eth.sendTransaction({ from: accounts[0], to: accounts[1], value: 10**18 });
Danke für deine Antwort. Wenn ich web3 verwende, kann ich dann über web3 eine Verbindung zu meinem Konto herstellen und meine eth von dort senden? Wenn ja, können Sie mir bitte sagen, wie?
Sie können MetaMask verwenden . Sie werden automatisch aufgefordert, die Transaktion zu „signieren“, wenn Sie auslösen web3.eth.sendTransaction. Eine andere Möglichkeit ist die Verwendung von web3.eth.sendRawTransaction. Ich schlage vor, dass Sie diese Funktionalität im Testnet ausprobieren, bevor Sie sie im Mainnet verwenden.
@RomanFrolov können wir den obigen Vertrag verwenden, um eth von einer anderen Brieftasche zu senden?
es gibt Uncaught Error: sender account not recognized, wenn ich das tue
@ZeeshanAhmadKhalil verwendest du ein entsperrtes Konto? Es scheint, dass das Absenderkonto nicht erkannt wird.

Dies ist nur von einem Smart Contract zu einer anderen Adresse möglich. Dazu benötigen Sie lediglich Folgendes:

sender_address.send(value)

Einige Beispiele finden Sie hier (ctrl + f => '.send(' )

Natürlich muss der Smart Contract Ether besitzen.