diff --git a/public/config.json b/public/config.json index 1c9021c48c..85c5bbcccd 100644 --- a/public/config.json +++ b/public/config.json @@ -1,12 +1,12 @@ { "api-gateway": "https://safe-api.dev.aura.network", - "chain_id": "aura-testnet-2", + "chain_id": "auradev_1235-3", "chain_info": [ { "features": [ "ibc-transfer" ], - "chainId": "aura-testnet-2", + "chainId": "auradev_1235-3", "chainName": "aura testnet", "rpc": "https://rpc.dev.aura.network", "rest": "https://lcd.dev.aura.network", diff --git a/src/config/cache/chains.ts b/src/config/cache/chains.ts index c8dd5dd3d4..e39e41cd36 100644 --- a/src/config/cache/chains.ts +++ b/src/config/cache/chains.ts @@ -21,7 +21,7 @@ export const loadChains = async () => { environment: 'serenity', } } - if (chain.chainId.includes('aura-testnet')) { + if (chain.chainId.includes('auradev')) { return { ...chain, environment: 'auratestnet', diff --git a/src/logic/safe/store/selectors/index.ts b/src/logic/safe/store/selectors/index.ts index d1c59f9ab1..42c5def3cc 100644 --- a/src/logic/safe/store/selectors/index.ts +++ b/src/logic/safe/store/selectors/index.ts @@ -16,8 +16,7 @@ export const safesAsMap = (state: AppReduxState): SafesMap => safesState(state). export const safesAsList = createSelector(safesAsMap, (safes): List => safes.toList()) -export const currentSafe = createSelector([safesAsMap], (safes: SafesMap) => { - const address = extractSafeAddress() +export const currentSafe = createSelector([safesAsMap, extractSafeAddress], (safes: SafesMap, address: string) => { return safes.get(address, baseSafe(address)) }) export const safeByAddressSelector = createSelector( diff --git a/src/pages/Transactions/TxActionModal/Send/index.tsx b/src/pages/Transactions/TxActionModal/Send/index.tsx index 6319b29ce5..ae1fbe2156 100644 --- a/src/pages/Transactions/TxActionModal/Send/index.tsx +++ b/src/pages/Transactions/TxActionModal/Send/index.tsx @@ -6,31 +6,47 @@ import AddressInfo from 'src/components/AddressInfo' import { FilledButton, OutlinedNeutralButton } from 'src/components/Button' import Divider from 'src/components/Divider' import Gap from 'src/components/Gap' +import TxMemo from 'src/components/Input/TxMemo' import { Popup } from 'src/components/Popup' import Footer from 'src/components/Popup/Footer' import Header from 'src/components/Popup/Header' import Amount from 'src/components/TxComponents/Amount' -import { getCoinMinimalDenom } from 'src/config' +import { getChainDefaultGasPrice, getCoinDecimal, getCoinMinimalDenom } from 'src/config' import { currentSafeWithNames } from 'src/logic/safe/store/selectors' -import { formatNativeCurrency, formatNativeToken } from 'src/utils' +import { convertAmount, formatNativeCurrency, formatNativeToken, formatWithComma } from 'src/utils' import { signAndChangeTransactionSequence, signAndConfirmTransaction } from 'src/utils/signer' import { getNotice, getTitle } from '..' import { TxSignModalContext } from '../../Queue' import { ReviewTxPopupWrapper } from '../../styled' import EditSequence from '../EditSequence' -import TxMemo from 'src/components/Input/TxMemo' import { DeleteButton, TxContent } from '../styles' +import calculateGasFee from '../../../../logic/providers/utils/fee' export default function Execute({ open, onClose, data, sendTx, rejectTx, disabled, setDisabled, deleteTx }) { const { action } = useContext(TxSignModalContext) - const { nativeBalance: balance, sequence: currentSequence } = useSelector(currentSafeWithNames) + const { nativeBalance: balance, sequence: currentSequence, coinConfig } = useSelector(currentSafeWithNames) + const chainDefaultGasPrice = getChainDefaultGasPrice() + const decimal = getCoinDecimal() + const gasFee = chainDefaultGasPrice ? calculateGasFee(400000, +chainDefaultGasPrice, decimal) : chainDefaultGasPrice const dispatch = useDispatch() const [sequence, setSequence] = useState(data?.txSequence) const [txMemo, setTxMemo] = useState(data?.txDetails?.txMemo) - const totalAllocationAmount = formatNativeToken( - new BigNumber(+data?.txDetails?.txMessage[0]?.amount || 0).plus(+data.txDetails?.fee || 0).toString(), - ) + const isNativeToken = data?.txDetails?.txMessage[0]?.denom === coinConfig?.find((e) => e?.type === 'native')?.denom + const otherToken = coinConfig?.find((e) => e?.denom ?? e?.cosmosDenom === data?.txDetails?.txMessage[0]?.denom) + + const amount = isNativeToken + ? formatNativeToken(data?.txDetails?.txMessage[0]?.amount) + : `${convertAmount(data?.txDetails?.txMessage[0]?.amount, false, otherToken?.decimals)} ${otherToken?.coinDenom}` + + const totalAllocationAmount = isNativeToken + ? formatNativeToken( + new BigNumber(+data?.txDetails?.txMessage[0]?.amount || 0).plus(+data.txDetails?.fee || 0).toString(), + ) + : `${convertAmount(data?.txDetails?.txMessage[0]?.amount, false, otherToken?.decimals)} ${ + otherToken?.coinDenom + } + ${formatNativeCurrency(new BigNumber(+gasFee).toString())}` + const txHandler = async (type) => { if (type == 'confirm') { dispatch( @@ -80,6 +96,7 @@ export default function Execute({ open, onClose, data, sendTx, rejectTx, disable ) } } + return ( <> @@ -97,7 +114,7 @@ export default function Execute({ open, onClose, data, sendTx, rejectTx, disable
Amount
-
{formatNativeToken(data?.txDetails?.txMessage[0]?.amount)}
+
{amount}
Transaction fee
@@ -115,7 +132,7 @@ export default function Execute({ open, onClose, data, sendTx, rejectTx, disable ) : ( <> - + {action == 'change-sequence' && ( <>