Ich habe einen Wallet-Vertrag erstellt, Ether dorthin gesendet und kann jetzt nicht an ein anderes Konto senden

Beim Experimentieren. Ich erstelle einen Wallet-Vertrag. Hier ist die Adresse: https://etherscan.io/address/0xC23501aB1E8E5C5EDB0fFA83C5A4DcFb9c31a355 Ich habe etwas Ether dorthin geschickt. Jetzt möchte ich den Ether aus dem Wallet Vertrag auf ein anderes Konto senden. Ich gehe zum Senden, gebe den Betrag ein, überprüfe das Gas, wenn ich auf Senden drücke. Der Betrag zeigt 0 an. Ich glaube, ich habe bei der Erstellung des Wallet-Vertrags in Mist etwas falsch gemacht.

Sie müssen sich auf den Vertrag berufen. Der Betrag 0ist vollkommen in Ordnung, machen Sie weiter und erstellen Sie diese Transaktion.
Wenn ich Sie wäre, würde ich meine Experimente lieber im Testnetz machen, das wäre weniger teuer. Aber wenn Sie Geld zum Ausgeben haben, machen Sie weiter, wir verdienen mehr Mining-Gebühren ;)
@Gianni D'Alerta – hast du dieses Problem gelöst? Wenn ja, posten Sie bitte, was es gelöst hat, und wählen Sie es als Antwort für andere aus, die später möglicherweise dasselbe Problem haben.

Antworten (1)

Ich verwende lieber Geth als Mist, um mit Verträgen zu interagieren. Mit der Befehlszeile können Sie genau das tun, was Sie beabsichtigen, anstatt über eine GUI zu arbeiten.

Als erstes benötigen Sie den Vertrag ABI. Dies ist ein Stück JavaScript (oder JSON), das definiert, wie Sie mit dem Vertrag interagieren können. Jeder Vertrag auf der Blockchain hat einen – einen einfachen Greeter-Vertrag , Etheria , das DAO … alle.

Um das abi zu erhalten, fügen Sie Ihren Vertragscode in einen Compiler ein, z. B. https://ethereum.github.io/browser-solidity/ .

Dieser "Endowment Retriever"-Vertrag könnte dem ähneln, was Sie zu tun versuchen. Wenn es kompiliert ist, wird sein abi als:

[{"constant":false,"inputs":[],"name":"kill","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"getContractCreationValue","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"sendOneEtherHome","outputs":[],"type":"function"},{"inputs":[],"type":"constructor"}]

Stellen Sie Ihren Vertrag zusammen und Sie erhalten etwas, das ähnlich aussieht. (Der obige Code funktioniert nicht für Ihren Vertrag.)

Nachdem Sie nun die ABI und die Vertragsadresse haben, können Sie mit Geth interaktiv auf den Vertrag zugreifen.

var abi = <cut and paste the contract abi here>;
var contract = web3.eth.contract(abi).at(<contract address>);
contract.functionname();
contract.functionname.sendTransaction(...);

Hoffentlich enthält der Vertrag, aus dem Sie versuchen, Geld abzurufen, eine Methode zum Abrufen des Ethers, und Sie haben die Erlaubnis dazu. In meinem Beispiel "Endowment Retriever" würden Sie Folgendes tun:

var tx = endowmentretriever.sendOneEtherHome.sendTransaction({from:eth.coinbase});

Wenn Sie den gesamten Vertrag veröffentlichen (verwenden Sie wahrscheinlich einen Kern), kann ich möglicherweise weiter helfen und/oder feststellen, ob ein Abruf überhaupt möglich ist.

Viel Glück!