Bug: if we don't use multisend, ethereum value is not passed (#1857)

* calculate eth value from array of txs

* use 0 incase of multisend

Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
This commit is contained in:
Mikhail Mikheev 2021-02-08 20:44:59 +04:00 committed by GitHub
parent 63cd88d845
commit d17da5489b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 10 deletions

View File

@ -18,7 +18,7 @@ import { SafeApp } from 'src/routes/safe/components/Apps/types.d'
import { fromTokenUnit } from 'src/logic/tokens/utils/humanReadableValue' import { fromTokenUnit } from 'src/logic/tokens/utils/humanReadableValue'
import createTransaction from 'src/logic/safe/store/actions/createTransaction' import createTransaction from 'src/logic/safe/store/actions/createTransaction'
import { MULTI_SEND_ADDRESS } from 'src/logic/contracts/safeContracts' import { MULTI_SEND_ADDRESS } from 'src/logic/contracts/safeContracts'
import { DELEGATE_CALL, TX_NOTIFICATION_TYPES } from 'src/logic/safe/transactions' import { DELEGATE_CALL, TX_NOTIFICATION_TYPES, CALL } from 'src/logic/safe/transactions'
import { encodeMultiSendCall } from 'src/logic/safe/transactions/multisend' import { encodeMultiSendCall } from 'src/logic/safe/transactions/multisend'
import GasEstimationInfo from './GasEstimationInfo' import GasEstimationInfo from './GasEstimationInfo'
@ -118,14 +118,11 @@ export const ConfirmTransactionModal = ({
}: OwnProps): React.ReactElement | null => { }: OwnProps): React.ReactElement | null => {
const [estimatedSafeTxGas, setEstimatedSafeTxGas] = useState(0) const [estimatedSafeTxGas, setEstimatedSafeTxGas] = useState(0)
const threshold = useSelector(safeThresholdSelector) || 1 const threshold = useSelector(safeThresholdSelector) || 1
// FIXME #issue-1848 check why this generates bugs with WalletConnect Safe app and some interactions
// const txRecipient: string | undefined = useMemo(() => (txs.length > 1 ? MULTI_SEND_ADDRESS : txs[0]?.to), [txs]) const txRecipient: string | undefined = useMemo(() => (txs.length > 1 ? MULTI_SEND_ADDRESS : txs[0]?.to), [txs])
// const txData: string | undefined = useMemo(() => (txs.length > 1 ? encodeMultiSendCall(txs) : txs[0]?.data), [txs]) const txData: string | undefined = useMemo(() => (txs.length > 1 ? encodeMultiSendCall(txs) : txs[0]?.data), [txs])
// const operation = useMemo(() => (txs.length > 1 ? DELEGATE_CALL : CALL), [txs]) const txValue: string | undefined = useMemo(() => (txs.length > 1 ? '0' : txs[0]?.value), [txs])
// #issue-1848 Remove this when non multisend transactions are checked const operation = useMemo(() => (txs.length > 1 ? DELEGATE_CALL : CALL), [txs])
const txRecipient: string | undefined = MULTI_SEND_ADDRESS
const txData: string | undefined = useMemo(() => encodeMultiSendCall(txs), [txs])
const operation = DELEGATE_CALL
const { const {
gasLimit, gasLimit,
@ -140,6 +137,7 @@ export const ConfirmTransactionModal = ({
txData: txData || '', txData: txData || '',
txRecipient, txRecipient,
operation, operation,
txAmount: txValue,
}) })
useEffect(() => { useEffect(() => {
@ -171,7 +169,7 @@ export const ConfirmTransactionModal = ({
{ {
safeAddress, safeAddress,
to: txRecipient, to: txRecipient,
valueInWei: '0', valueInWei: txValue,
txData, txData,
operation, operation,
notifiedTransaction: TX_NOTIFICATION_TYPES.STANDARD_TX, notifiedTransaction: TX_NOTIFICATION_TYPES.STANDARD_TX,