Ich erhalte heute eine Fehlermeldung, wenn ich versuche, einen Vertrag mit Ethereum Testnet zu minen. Selbst nachdem die Transaktion erfolgreich abgebaut wurde (ich kann das im Testnet überprüfen), führt der Rückruf den Code innerhalb des Fehlers aus.
Die Callback-Funktion in meinem Java-Skript wie folgt:
function mine_pContract(byteCode, abi, estimatedGas) {
console.log(abi);
var MyContract = web3.eth.contract(JSON.parse(abi));
var myContractReturned = MyContract.new({
from: web3.eth.accounts[0],
data: byteCode,
gas:estimatedGas}, function(err, myContract) {
if (err) {
console.log("Error while mining the contract" + err)
}
else {
if (!myContract) {
console.log("Contract transaction sent. Transaction Hash" + myContract.transactionHash + "waiting to be mined");
}
else {
if (myContract.address === undefined) {
console.log("still mining. Transaction Hash= " + myContract.transactionHash)
}
else {
console.log("Contract mined. Address" + myContract.address);
}
}
}
});
}
Die Ausgabe ist: still mining. Transaktions-Hash = 0x859cbff73bf7da136f1b5402f1d9a7948608d6ef82c9e5f956db3e576fa5d720 main.js:262
Fehler beim Schürfen des VertragsError: Der Vertragscode konnte nicht gespeichert werden, bitte überprüfen Sie Ihre Gasmenge.
Aber es sollte die folgende Meldung Contract Mined anzeigen. Adresse: 0xxxxxxxx.
Jeder kann darauf hinweisen, wo das Problem ist?
contract = this.web3.eth.contract(abi);
contract.new(Params.toString(), {
from: this.web3.eth.defaultAccount,
data: code,
gas: estimatedGas
}, (error, contractInst) => {
if(error) {
console.log(error);
} else if(contractInst.address){
console.log(contractInst);
}
});
So verwende ich den abgebauten Vertrag in meinem Dapp. Versuchen Sie, die Korrektur anhand meines Beispiels vorzunehmen, und hoffen Sie, dass es funktioniert.
Weitere Informationen finden Sie unter https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethcontract
Edmund Edgar
Arghya Kusum Das
Aniket
Arghya Kusum Das