Skip to content

Commit

Permalink
remove duplicated methods
Browse files Browse the repository at this point in the history
  • Loading branch information
iurimatias committed Jan 24, 2020
1 parent 1f29cc0 commit fd2bd33
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 88 deletions.
2 changes: 1 addition & 1 deletion src/app/tabs/runTab/model/recorder.js
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ class Recorder {
logCallBack(`(${index}) data: ${data.data}`)
record.data = { dataHex: data.data, funArgs: tx.record.parameters, funAbi: fnABI, contractBytecode: tx.record.bytecode, contractName: tx.record.contractName, timestamp: tx.timestamp }

self.blockchain.runTransaction(record, continueCb, promptCb, confirmationCb,
self.blockchain.runTx(record, confirmationCb, continueCb, promptCb,
function (err, txResult) {
if (err) {
console.error(err)
Expand Down
2 changes: 1 addition & 1 deletion src/app/tabs/runTab/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class SettingsUI {
if (!this.el) return
var accounts = $(this.el.querySelector('#txorigin')).children('option')
accounts.each((index, account) => {
this.blockchain.getAccountBalanceForAddress(account.value, (err, balance) => {
this.blockchain.getBalanceInEther(account.value, (err, balance) => {
if (err) return
account.innerText = helper.shortenAddress(account.value, balance)
})
Expand Down
126 changes: 40 additions & 86 deletions src/blockchain/blockchain.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ class Blockchain {
statusCb(`creation of ${selectedContract.name} pending...`)
this.createContract(selectedContract, data, continueCb, promptCb, confirmationCb, finalCb)
}, statusCb, (data, runTxCallback) => {
// called for libraries deployment
this.runTransaction(data, continueCb, promptCb, confirmationCb, runTxCallback)
// called for libraries deployment
this.runTx(data, confirmationCb, continueCb, promptCb, runTxCallback)
})
}
if (Object.keys(selectedContract.bytecodeLinkReferences).length) statusCb(`linking ${JSON.stringify(selectedContract.bytecodeLinkReferences, null, '\t')} using ${JSON.stringify(contractMetadata.linkReferences, null, '\t')}`)
Expand All @@ -81,40 +81,36 @@ class Blockchain {
})
}

runTransaction (data, continueCb, promptCb, confirmationCb, finalCb) {
this.runTx(data, confirmationCb, continueCb, promptCb, finalCb)
}

createContract (selectedContract, data, continueCb, promptCb, confirmationCb, finalCb) {
if (data) {
data.contractName = selectedContract.name
data.linkReferences = selectedContract.bytecodeLinkReferences
data.contractABI = selectedContract.abi
}

this._createContract(data, confirmationCb, continueCb, promptCb,
(error, txResult) => {
if (error) {
return finalCb(`creation of ${selectedContract.name} errored: ${error}`)
}
const isVM = this.executionContext.isVM()
if (isVM) {
const vmError = txExecution.checkVMError(txResult)
if (vmError.error) {
return finalCb(vmError.message)
}
}
if (txResult.result.status === false || txResult.result.status === '0x0') {
return finalCb(`creation of ${selectedContract.name} errored: transaction execution failed`)
}
const address = isVM ? txResult.result.createdAddress : txResult.result.contractAddress
finalCb(null, selectedContract, address)
}
)
this.runTx({ data: data, useCall: false }, confirmationCb, continueCb, promptCb,
(error, txResult) => {
if (error) {
return finalCb(`creation of ${selectedContract.name} errored: ${error}`)
}
const isVM = this.executionContext.isVM()
if (isVM) {
const vmError = txExecution.checkVMError(txResult)
if (vmError.error) {
return finalCb(vmError.message)
}
}
if (txResult.result.status && txResult.result.status === '0x0') {
return finalCb(`creation of ${selectedContract.name} errored: transaction execution failed`)
}
const address = isVM ? txResult.result.createdAddress : txResult.result.contractAddress
finalCb(null, selectedContract, address)
}
)
}

determineGasPrice (cb) {
this.getGasPrice((error, gasPrice) => {
this.executionContext.web3().eth.getGasPrice((error, gasPrice) => {
const warnMessage = ' Please fix this issue before sending any transaction. '
if (error) {
return cb('Unable to retrieve the current network gas price.' + warnMessage + error)
Expand All @@ -128,10 +124,6 @@ class Blockchain {
})
}

getGasPrice (cb) {
return this.executionContext.web3().eth.getGasPrice(cb)
}

fromWei (value, doTypeConversion, unit) {
if (doTypeConversion) {
return Web3.utils.fromWei(typeConversion.toInt(value), unit || 'ether')
Expand Down Expand Up @@ -182,10 +174,6 @@ class Blockchain {
return this.executionContext.getProvider()
}

getAccountBalanceForAddress (address, cb) {
return this.getBalanceInEther(address, cb)
}

updateNetwork (cb) {
this.networkcallid++
((callid) => {
Expand Down Expand Up @@ -458,16 +446,16 @@ class Blockchain {
})
}

/** Get the balance of an address */
getBalance (address, cb) {
/** Get the balance of an address, and convert wei to ether */
getBalanceInEther (address, cb) {
address = stripHexPrefix(address)

if (!this.executionContext.isVM()) {
return this.executionContext.web3().eth.getBalance(address, (err, res) => {
if (err) {
return cb(err)
}
cb(null, res.toString(10))
cb(null, Web3.utils.fromWei(res.toString(10), 'ether'))
})
}
if (!this.accounts) {
Expand All @@ -478,38 +466,14 @@ class Blockchain {
if (err) {
return cb('Account not found')
}
cb(null, new BN(res.balance).toString(10))
})
}

/** Get the balance of an address, and convert wei to ether */
getBalanceInEther (address, callback) {
this.getBalance(address, (error, balance) => {
if (error) {
return callback(error)
}
// callback(null, this.executionContext.web3().fromWei(balance, 'ether'))
callback(null, Web3.utils.fromWei(balance.toString(10), 'ether'))
cb(null, Web3.utils.fromWei(new BN(res.balance).toString(10), 'ether'))
})
}

pendingTransactionsCount () {
return Object.keys(this.txRunner.pendingTxs).length
}

/**
* deploy the given contract
*
* @param {String} data - data to send with the transaction ( return of txFormat.buildData(...) ).
* @param {Function} callback - callback.
*/
_createContract (data, confirmationCb, continueCb, promptCb, callback) {
this.runTx({data: data, useCall: false}, confirmationCb, continueCb, promptCb, (error, txResult) => {
// see universaldapp.js line 660 => 700 to check possible values of txResult (error case)
callback(error, txResult)
})
}

/**
* call the current given contract
*
Expand Down Expand Up @@ -543,35 +507,25 @@ class Blockchain {
if (network.name === 'Main' && network.id === '1') {
return reject(new Error('It is not allowed to make this action against mainnet'))
}
this.silentRunTx(tx, (error, result) => {
if (error) return reject(error)
try {
resolve(resultToRemixTx(result))
} catch (e) {
reject(e)

this.txRunner.rawRun(
tx,
(network, tx, gasEstimation, continueTxExecution, cancelCb) => { continueTxExecution() },
(error, continueTxExecution, cancelCb) => { if (error) { reject(error) } else { continueTxExecution() } },
(okCb, cancelCb) => { okCb() },
(error, result) => {
if (error) return reject(error)
try {
resolve(resultToRemixTx(result))
} catch (e) {
reject(e)
}
}
})
)
})
})
}

/**
* This function send a tx without alerting the user (if mainnet or if gas estimation too high).
* SHOULD BE TAKEN CAREFULLY!
*
* @param {Object} tx - transaction.
* @param {Function} callback - callback.
*/
silentRunTx (tx, cb) {
this.txRunner.rawRun(
tx,
(network, tx, gasEstimation, continueTxExecution, cancelCb) => { continueTxExecution() },
(error, continueTxExecution, cancelCb) => { if (error) { cb(error) } else { continueTxExecution() } },
(okCb, cancelCb) => { okCb() },
cb
)
}

runTx (args, confirmationCb, continueCb, promptCb, cb) {
const self = this
async.waterfall([
Expand Down

0 comments on commit fd2bd33

Please sign in to comment.