Fixes: notifications when creating threshold > 1
This commit is contained in:
parent
6e55d897ef
commit
8239cb608f
|
@ -100,7 +100,7 @@ export const NOTIFICATIONS: Notifications = {
|
|||
// Regular/Custom Transactions
|
||||
SIGN_TX_MSG: {
|
||||
message: 'Please sign the transaction',
|
||||
options: { variant: SUCCESS, persist: true },
|
||||
options: { variant: INFO, persist: true },
|
||||
},
|
||||
TX_PENDING_MSG: {
|
||||
message: 'Transaction pending',
|
||||
|
@ -126,7 +126,7 @@ export const NOTIFICATIONS: Notifications = {
|
|||
// Approval Transactions
|
||||
TX_CONFIRMATION_PENDING_MSG: {
|
||||
message: 'Confirmation transaction pending',
|
||||
options: { variant: SUCCESS, persist: true },
|
||||
options: { variant: INFO, persist: true },
|
||||
},
|
||||
TX_CONFIRMATION_EXECUTED_MSG: {
|
||||
message: 'Confirmation transaction succesful',
|
||||
|
@ -152,7 +152,7 @@ export const NOTIFICATIONS: Notifications = {
|
|||
// Settings
|
||||
SIGN_SETTINGS_CHANGE_MSG: {
|
||||
message: 'Please sign the settings change',
|
||||
options: { variant: SUCCESS, persist: true },
|
||||
options: { variant: INFO, persist: true },
|
||||
},
|
||||
SETTINGS_CHANGE_PENDING_MSG: {
|
||||
message: 'Settings change pending',
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
// @flow
|
||||
import { List } from 'immutable'
|
||||
import { type Transaction } from '~/routes/safe/store/models/transaction'
|
||||
import { executeTransaction, approveTransaction } from '~/logic/safe/transactions'
|
||||
import { EMPTY_DATA } from '~/logic/wallets/ethTransactions'
|
||||
import { getWeb3 } from '~/logic/wallets/getWeb3'
|
||||
import { type Safe } from '~/routes/safe/store/models/safe'
|
||||
import { storeSubject } from '~/utils/storage/transactions'
|
||||
|
||||
export const TX_NAME_PARAM = 'txName'
|
||||
export const TX_DESTINATION_PARAM = 'txDestination'
|
||||
export const TX_VALUE_PARAM = 'txValue'
|
||||
|
||||
export const EXECUTED_CONFIRMATION_HASH = 'EXECUTED'
|
||||
|
||||
const hasOneOwner = (safe: Safe) => {
|
||||
const owners = safe.get('owners')
|
||||
if (!owners) {
|
||||
throw new Error('Received a Safe without owners when creating a tx')
|
||||
}
|
||||
|
||||
return owners.count() === 1
|
||||
}
|
||||
|
||||
export const createTransaction = async (
|
||||
safe: Safe,
|
||||
name: string,
|
||||
to: string,
|
||||
value: string,
|
||||
nonce: number,
|
||||
sender: string,
|
||||
data: string = EMPTY_DATA,
|
||||
) => {
|
||||
const web3 = getWeb3()
|
||||
const safeAddress = safe.get('address')
|
||||
const threshold = safe.get('threshold')
|
||||
const valueInWei = web3.utils.toWei(value, 'ether')
|
||||
const CALL = 0
|
||||
|
||||
const isExecution = hasOneOwner(safe) || threshold === 1
|
||||
|
||||
const txHash = isExecution
|
||||
? await executeTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender, List([]))
|
||||
: await approveTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender)
|
||||
|
||||
storeSubject(safeAddress, nonce, name)
|
||||
|
||||
return txHash
|
||||
}
|
||||
|
||||
export const processTransaction = async (
|
||||
safeAddress: string,
|
||||
tx: Transaction,
|
||||
alreadyConfirmed: number,
|
||||
sender: string,
|
||||
threshold: number,
|
||||
usersConfirmed: List<string>,
|
||||
) => {
|
||||
const nonce = tx.get('nonce')
|
||||
const valueInWei = tx.get('value')
|
||||
const to = tx.get('destination')
|
||||
const data = tx.get('data')
|
||||
const CALL = 0
|
||||
|
||||
const thresholdReached = threshold === alreadyConfirmed + 1
|
||||
const txHash = thresholdReached
|
||||
? await executeTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender, usersConfirmed)
|
||||
: await approveTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender)
|
||||
|
||||
return txHash
|
||||
}
|
|
@ -15,11 +15,7 @@ import {
|
|||
TX_TYPE_EXECUTION,
|
||||
saveTxToHistory,
|
||||
} from '~/logic/safe/transactions'
|
||||
import {
|
||||
type NotificationsQueue,
|
||||
getNotificationsFromTxType,
|
||||
showSnackbar,
|
||||
} from '~/logic/notifications'
|
||||
import { type NotificationsQueue, getNotificationsFromTxType, showSnackbar } from '~/logic/notifications'
|
||||
import { getErrorMessage } from '~/test/utils/ethereumErrors'
|
||||
import { ZERO_ADDRESS } from '~/logic/wallets/ethAddresses'
|
||||
import { SAFELIST_ADDRESS } from '~/routes/routes'
|
||||
|
@ -99,15 +95,14 @@ const createTransaction = (
|
|||
.then((receipt) => {
|
||||
closeSnackbar(pendingExecutionKey)
|
||||
|
||||
if (isExecution) {
|
||||
showSnackbar(
|
||||
isExecution
|
||||
? notificationsQueue.afterExecution.noMoreConfirmationsNeeded
|
||||
: notificationsQueue.afterExecution.moreConfirmationsNeeded,
|
||||
enqueueSnackbar,
|
||||
closeSnackbar,
|
||||
)
|
||||
}
|
||||
showSnackbar(
|
||||
isExecution
|
||||
? notificationsQueue.afterExecution.noMoreConfirmationsNeeded
|
||||
: notificationsQueue.afterExecution.moreConfirmationsNeeded,
|
||||
enqueueSnackbar,
|
||||
closeSnackbar,
|
||||
)
|
||||
|
||||
dispatch(fetchTransactions(safeAddress))
|
||||
|
||||
return receipt.transactionHash
|
||||
|
|
Loading…
Reference in New Issue