Ich möchte einen neuen Vertrag mit cpp-ethereum (aus der Quelle erstellt) und ethconsole erstellen. Ich bin dieser Anleitung gefolgt: https://www.ethereum.org/greeter .
Ich habe den Vertrag so geändert, dass er nur eine Klasse ohne Funktionen enthält, um die Gaskosten zu minimieren:
contract greeter{
}
Ich mache das im Testnetzwerk und habe 5 Ether auf meinem Konto.
Hier ist der js-Code, den ich nach der Verwendung des Online-Solidity-Compilers erhalten habe:
web3.eth.getAccounts(function(err, accounts){
var account = accounts[3];
console.log("Using account: " + account);
var greeterContract = web3.eth.contract([]);
var greeter = greeterContract.new(
{
from: account,
data: '6060604052600a8060106000396000f360606040526008565b00',
gas: 3000000
}, function(e, contract){
console.log(e);
console.log(contract.address);
if (typeof contract.address != 'undefined') {
console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
}
})
})
Dies ist die Ausgabe, die ich bekomme:
null
undefined
Aus irgendeinem Grund wird der Vertrag nicht bereitgestellt, die Funktion gibt keinen Fehler zurück und die Datei contract.address ist nicht definiert.
Übersehe ich etwas?
Der Guide hat eine andere Funktion:
wenn(!e) { if(!vertrag.adresse) { console.log("Vertragstransaktion senden: TransactionHash: " + contract.transactionHash + " wartet darauf, abgebaut zu werden ..."); } anders { console.log("Vertrag abgeschlossen! Adresse: " + vertrag.adresse); console.log (Vertrag); } }
Tatsächlich wird diese Funktion zweimal aufgerufen .
console.log(contract);
Überzeugen Sie sich selbst .
Ren