Refactor executeTransaction to show notification after confirmation
This commit is contained in:
parent
7e9f988160
commit
83d8c190df
|
@ -1,4 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import GnosisSafeSol from '@gnosis.pm/safe-contracts/build/contracts/GnosisSafe.json'
|
||||||
import { getWeb3 } from '~/logic/wallets/getWeb3'
|
import { getWeb3 } from '~/logic/wallets/getWeb3'
|
||||||
import { getStandardTokenContract } from '~/logic/tokens/store/actions/fetchTokens'
|
import { getStandardTokenContract } from '~/logic/tokens/store/actions/fetchTokens'
|
||||||
import { EMPTY_DATA } from '~/logic/wallets/ethTransactions'
|
import { EMPTY_DATA } from '~/logic/wallets/ethTransactions'
|
||||||
|
@ -55,6 +56,7 @@ export const approveTransaction = async (
|
||||||
}
|
}
|
||||||
|
|
||||||
export const executeTransaction = async (
|
export const executeTransaction = async (
|
||||||
|
showNotification: Function,
|
||||||
safeInstance: any,
|
safeInstance: any,
|
||||||
to: string,
|
to: string,
|
||||||
valueInWei: number | string,
|
valueInWei: number | string,
|
||||||
|
@ -75,20 +77,21 @@ export const executeTransaction = async (
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const receipt = await safeInstance.execTransaction(
|
const web3 = getWeb3()
|
||||||
to,
|
const contract = new web3.eth.Contract(GnosisSafeSol.abi, safeInstance.address)
|
||||||
valueInWei,
|
|
||||||
data,
|
|
||||||
operation,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
ZERO_ADDRESS,
|
|
||||||
ZERO_ADDRESS,
|
|
||||||
sigs,
|
|
||||||
{ from: sender },
|
|
||||||
)
|
|
||||||
|
|
||||||
|
const transactionHash = await contract.methods
|
||||||
|
.execTransaction(to, valueInWei, data, operation, 0, 0, 0, ZERO_ADDRESS, ZERO_ADDRESS, sigs)
|
||||||
|
.send({
|
||||||
|
from: sender,
|
||||||
|
})
|
||||||
|
.once('transactionHash', (transactionHash) => {
|
||||||
|
showNotification()
|
||||||
|
})
|
||||||
|
.on('error', (error) => {
|
||||||
|
console.log('Tx error:', error)
|
||||||
|
})
|
||||||
|
.then(async (receipt) => {
|
||||||
await saveTxToHistory(
|
await saveTxToHistory(
|
||||||
safeInstance,
|
safeInstance,
|
||||||
to,
|
to,
|
||||||
|
@ -96,12 +99,15 @@ export const executeTransaction = async (
|
||||||
data,
|
data,
|
||||||
operation,
|
operation,
|
||||||
nonce,
|
nonce,
|
||||||
receipt.tx, // tx hash,
|
receipt.transactionHash,
|
||||||
sender,
|
sender,
|
||||||
TX_TYPE_EXECUTION,
|
TX_TYPE_EXECUTION,
|
||||||
)
|
)
|
||||||
|
|
||||||
return receipt
|
return receipt.transactionHash
|
||||||
|
})
|
||||||
|
|
||||||
|
return transactionHash
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
const executeDataUsedSignatures = safeInstance.contract.methods
|
const executeDataUsedSignatures = safeInstance.contract.methods
|
||||||
|
|
|
@ -33,8 +33,8 @@ const createTransaction = (
|
||||||
let txHash
|
let txHash
|
||||||
try {
|
try {
|
||||||
if (isExecution) {
|
if (isExecution) {
|
||||||
openSnackbar(notifications.BEFORE_EXECUTION_OR_CREATION, 'success')
|
const showNotification = () => openSnackbar(notifications.BEFORE_EXECUTION_OR_CREATION, 'success')
|
||||||
txHash = await executeTransaction(safeInstance, to, valueInWei, txData, CALL, nonce, from)
|
txHash = await executeTransaction(showNotification, safeInstance, to, valueInWei, txData, CALL, nonce, from)
|
||||||
openSnackbar(notifications.AFTER_EXECUTION, 'success')
|
openSnackbar(notifications.AFTER_EXECUTION, 'success')
|
||||||
} else {
|
} else {
|
||||||
openSnackbar(notifications.BEFORE_EXECUTION_OR_CREATION, 'success')
|
openSnackbar(notifications.BEFORE_EXECUTION_OR_CREATION, 'success')
|
||||||
|
|
Loading…
Reference in New Issue