create separate function for secure send

This commit is contained in:
Jonathan Rainville 2018-08-13 13:04:42 -04:00 committed by Iuri Matias
parent a7b0cea09b
commit 083c936351
1 changed files with 27 additions and 18 deletions

View File

@ -230,7 +230,7 @@ class BlockchainConnector {
}).catch(cb); }).catch(cb);
} }
deployContractFromObject(deployContractObject, params, cb) { secureSend(toSend, params, cb) {
const self = this; const self = this;
let hash; let hash;
let calledBacked = false; let calledBacked = false;
@ -263,28 +263,37 @@ class BlockchainConnector {
}); });
}, 500); }, 500);
deployContractObject.send({ toSend.estimateGas()
.then(gasEstimated => {
params.gas = gasEstimated + 1000;
params.from = params.from || self.defaultAccount();
return toSend.send(params, function(err, transactionHash) {
if (err) {
return callback(err);
}
hash = transactionHash;
}).on('receipt', function(receipt) {
if (receipt.contractAddress !== undefined) {
callback(null, receipt);
}
}).then(function(_contract) {
if (!hash) {
return; // Somehow we didn't get the receipt yet... Interval will catch it
}
self.web3.eth.getTransactionReceipt(hash, callback);
}).catch(callback);
});
}
deployContractFromObject(deployContractObject, params, cb) {
this.secureSend(deployContractObject, {
from: params.from, gas: params.gas, gasPrice: params.gasPrice from: params.from, gas: params.gas, gasPrice: params.gasPrice
}, function (err, transactionHash) { }, cb);
if (err) {
return callback(err);
}
hash = transactionHash;
}).on('receipt', function (receipt) {
if (receipt.contractAddress !== undefined) {
callback(null, receipt);
}
}).then(function (_contract) {
if (!hash) {
return; // Somehow we didn't get the receipt yet... Interval will catch it
}
self.web3.eth.getTransactionReceipt(hash, callback);
}).catch(callback);
} }
determineDefaultAccount(cb) { determineDefaultAccount(cb) {
const self = this; const self = this;
self.getAccounts(function (err, accounts) { self.getAccounts(function(err, accounts) {
if (err) { if (err) {
self.logger.error(err); self.logger.error(err);
return cb(new Error(err)); return cb(new Error(err));