diff --git a/packages/hdwallet-keepkey/package.json b/packages/hdwallet-keepkey/package.json index a4667a91660..f8b48e370f5 100644 --- a/packages/hdwallet-keepkey/package.json +++ b/packages/hdwallet-keepkey/package.json @@ -1,6 +1,6 @@ { "name": "@shapeshiftoss/hdwallet-keepkey", - "version": "1.62.41", + "version": "1.62.42", "repository": "https://github.com/shapeshift/web", "license": "MIT", "type": "module", diff --git a/packages/hdwallet-keepkey/src/thorchain.ts b/packages/hdwallet-keepkey/src/thorchain.ts index 5a63f983acb..e7a914aefdd 100644 --- a/packages/hdwallet-keepkey/src/thorchain.ts +++ b/packages/hdwallet-keepkey/src/thorchain.ts @@ -118,7 +118,7 @@ export async function thorchainSignTx( } const coinAsset = m.value.coins[0].asset - if (coinAsset !== 'THOR.RUNE' && coinAsset !== 'THOR.TCY') { + if (!['THOR.RUNE', 'THOR.TCY', 'THOR.RUJI'].includes(coinAsset)) { throw new Error('THORChain: Unsupported coin asset: ' + coinAsset) } diff --git a/src/assets/translations/en/main.json b/src/assets/translations/en/main.json index 749069c1785..b646aa15ce6 100644 --- a/src/assets/translations/en/main.json +++ b/src/assets/translations/en/main.json @@ -1302,6 +1302,7 @@ "broadcastingTransaction": "Broadcasting Transaction", "youHaveSent": "You have successfully sent %{amount} %{symbol}", "sendFailed": "Send failed", + "assetNotSupportedByWallet": "Sending %{asset} is not supported by %{wallet}.", "toAddress": "To Address", "toAddressOrEns": "To Address or ENS", "scanQrCode": "Scan QR Code", diff --git a/src/components/Modals/Send/views/Address.tsx b/src/components/Modals/Send/views/Address.tsx index 1250b5f4d7e..94d344f53ee 100644 --- a/src/components/Modals/Send/views/Address.tsx +++ b/src/components/Modals/Send/views/Address.tsx @@ -1,4 +1,6 @@ import { + Alert, + AlertIcon, Button, Flex, FormControl, @@ -29,9 +31,12 @@ import { DialogTitle } from '@/components/Modal/components/DialogTitle' import { SelectAssetRoutes } from '@/components/SelectAssets/SelectAssetCommon' import { SlideTransition } from '@/components/SlideTransition' import { Text } from '@/components/Text' +import type { TextPropTypes } from '@/components/Text/Text' import { useFeatureFlag } from '@/hooks/useFeatureFlag/useFeatureFlag' import { useModal } from '@/hooks/useModal/useModal' +import { useWallet } from '@/hooks/useWallet/useWallet' import { parseAddressInputWithChainId } from '@/lib/address/address' +import { walletSupportsSendingAsset } from '@/lib/utils' import { selectInternalAccountIdByAddress, selectIsAddressInAddressBook, @@ -85,6 +90,23 @@ export const Address = () => { const asset = useAppSelector(state => selectAssetById(state, assetId)) + const { + state: { wallet, walletInfo }, + } = useWallet() + + const isSendSupported = useMemo( + () => !wallet || !assetId || walletSupportsSendingAsset(assetId, wallet), + [assetId, wallet], + ) + + const notSupportedTranslation: TextPropTypes['translation'] = useMemo( + () => [ + 'modals.send.assetNotSupportedByWallet', + { asset: asset?.symbol ?? '', wallet: walletInfo?.name ?? '' }, + ], + [asset?.symbol, walletInfo?.name], + ) + const isInAddressBookFilter = useMemo( () => ({ accountAddress: address, chainId: asset?.chainId }), [address, asset?.chainId], @@ -247,9 +269,15 @@ export const Address = () => { + {!isSendSupported && ( + + + + + )}