refactor processTransaction like createTrasnaction, so we reuse code for executing/approval txs

This commit is contained in:
mmv 2019-09-26 16:30:20 +04:00
parent 6702056709
commit 4dad9ce197
1 changed files with 35 additions and 69 deletions

View File

@ -52,48 +52,12 @@ const processTransaction = (
const sigs = generateSignaturesFromTxConfirmations(tx, approveAndExecute && userAddress) const sigs = generateSignaturesFromTxConfirmations(tx, approveAndExecute && userAddress)
let txHash let txHash
let transaction
if (shouldExecute) { if (shouldExecute) {
const transaction = await getExecutionTransaction( transaction = await getExecutionTransaction(safeInstance, tx.recipient, tx.value, tx.data, CALL, nonce, from, sigs)
safeInstance,
tx.recipient,
tx.value,
tx.data,
CALL,
nonce,
from,
sigs,
)
await transaction
.send({
from,
})
.once('transactionHash', (hash: string) => {
txHash = hash
openSnackbar('Transaction has been submitted', 'success')
})
.on('error', (error) => {
console.error('Tx error: ', error)
})
.then(async (receipt) => {
await saveTxToHistory(
safeInstance,
tx.recipient,
tx.value,
tx.data,
CALL,
nonce,
receipt.transactionHash,
from,
TX_TYPE_EXECUTION,
)
return receipt.transactionHash
})
openSnackbar('Transaction has been confirmed', 'success')
} else { } else {
const transaction = await getApprovalTransaction(safeInstance, tx.recipient, tx.value, tx.data, CALL, nonce, from) transaction = await getApprovalTransaction(safeInstance, tx.recipient, tx.value, tx.data, CALL, nonce, from)
}
await transaction await transaction
.send({ .send({
@ -101,10 +65,13 @@ const processTransaction = (
}) })
.once('transactionHash', (hash) => { .once('transactionHash', (hash) => {
txHash = hash txHash = hash
openSnackbar('Approval transaction has been submitted', 'success') openSnackbar(
shouldExecute ? 'Transaction has been submitted' : 'Approval transaction has been submitted',
'success',
)
}) })
.on('error', (error) => { .on('error', (error) => {
console.error('Tx error: ', error) console.error('Processing transaction error: ', error)
}) })
.then(async (receipt) => { .then(async (receipt) => {
await saveTxToHistory( await saveTxToHistory(
@ -116,14 +83,13 @@ const processTransaction = (
nonce, nonce,
receipt.transactionHash, receipt.transactionHash,
from, from,
TX_TYPE_CONFIRMATION, shouldExecute ? TX_TYPE_EXECUTION : TX_TYPE_CONFIRMATION,
) )
return receipt.transactionHash return receipt.transactionHash
}) })
openSnackbar('Approval transaction has been confirmed', 'success') openSnackbar(shouldExecute ? 'Transaction has been confirmed' : 'Approval transaction has been confirmed', 'success')
}
dispatch(fetchTransactions(safeAddress)) dispatch(fetchTransactions(safeAddress))