From ae61d5a3d18e6c2edffdd988d34b6ac82745525a Mon Sep 17 00:00:00 2001 From: Thibaut Sardan Date: Fri, 21 Feb 2025 14:35:48 +0000 Subject: [PATCH 1/2] fix wc --- packages/ui/src/contexts/AccountsContext.tsx | 6 +++--- .../ui/src/hooks/useWalletConnectNamespace.tsx | 7 +++++-- .../ui/src/utils/getAllNetworkWalletConnectIds.ts | 10 ---------- .../utils/getAllNetworkWalletConnectNameSpaces.ts | 14 ++++++++++++++ packages/ui/src/utils/getWalletConnectNameSpace.ts | 1 + packages/ui/src/walletConfigs.ts | 4 ++-- 6 files changed, 25 insertions(+), 17 deletions(-) delete mode 100644 packages/ui/src/utils/getAllNetworkWalletConnectIds.ts create mode 100644 packages/ui/src/utils/getAllNetworkWalletConnectNameSpaces.ts create mode 100644 packages/ui/src/utils/getWalletConnectNameSpace.ts diff --git a/packages/ui/src/contexts/AccountsContext.tsx b/packages/ui/src/contexts/AccountsContext.tsx index 5a793dc7..69c965ac 100644 --- a/packages/ui/src/contexts/AccountsContext.tsx +++ b/packages/ui/src/contexts/AccountsContext.tsx @@ -36,7 +36,7 @@ export interface IAccountContext { const AccountContext = createContext(undefined) const AccountContextProvider = ({ children }: AccountContextProps) => { - const { currentNamespace } = useGetWalletConnectNamespace() + const { walletConnectId } = useGetWalletConnectNamespace() const redotAccountList = useRedotAccounts() const { chainInfo } = useApi() const ownAccountList = useMemo(() => { @@ -45,10 +45,10 @@ const AccountContextProvider = ({ children }: AccountContextProps) => { // for this reason, we need to filter out the accounts that are not for the current network // this only applies to wallet-connect accounts const filteredAccounts = redotAccountList.filter((account) => { - return account.wallet.id !== 'wallet-connect' || account.genesisHash === currentNamespace + return account.wallet.id !== 'wallet-connect' || account.genesisHash === walletConnectId }) return encodeAccounts(filteredAccounts, chainInfo.ss58Format) - }, [chainInfo, currentNamespace, redotAccountList]) + }, [chainInfo, walletConnectId, redotAccountList]) const [selectedAccount, setSelected] = useState( ownAccountList?.[0] diff --git a/packages/ui/src/hooks/useWalletConnectNamespace.tsx b/packages/ui/src/hooks/useWalletConnectNamespace.tsx index 6a888a6a..66e06f10 100644 --- a/packages/ui/src/hooks/useWalletConnectNamespace.tsx +++ b/packages/ui/src/hooks/useWalletConnectNamespace.tsx @@ -1,6 +1,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react' import { useApi } from '../contexts/ApiContext' import { getWalletConnectId } from '../utils/getWalletConnectId' +import { getWalletConnectNameSpace } from '../utils/getWalletConnectNameSpace' export const useGetWalletConnectNamespace = () => { const { client } = useApi() @@ -17,7 +18,9 @@ export const useGetWalletConnectNamespace = () => { .finally(() => setIsLoading(false)) }, [client]) - const namespace = useMemo(() => getWalletConnectId(genesisHash), [genesisHash]) + const walletConnectId = useMemo(() => getWalletConnectId(genesisHash), [genesisHash]) + + const namespace = useMemo(() => getWalletConnectNameSpace(walletConnectId), [walletConnectId]) const getAccountsWithNamespace = useCallback( (accounts: string[]) => { @@ -26,5 +29,5 @@ export const useGetWalletConnectNamespace = () => { [namespace] ) - return { currentNamespace: namespace, getAccountsWithNamespace, isLoading } + return { walletConnectId, currentNamespace: namespace, getAccountsWithNamespace, isLoading } } diff --git a/packages/ui/src/utils/getAllNetworkWalletConnectIds.ts b/packages/ui/src/utils/getAllNetworkWalletConnectIds.ts deleted file mode 100644 index 66cdcce9..00000000 --- a/packages/ui/src/utils/getAllNetworkWalletConnectIds.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { networkList } from '../constants' -import { getWalletConnectId } from './getWalletConnectId' - -export const getAllNetworkWalletConnectIds = (): string[] => { - return ( - Object.values(networkList) - .map((network) => network.genesisHash) - .filter(Boolean) as string[] - ).map((genesisHash) => `polkadot:${getWalletConnectId(genesisHash)}`) -} diff --git a/packages/ui/src/utils/getAllNetworkWalletConnectNameSpaces.ts b/packages/ui/src/utils/getAllNetworkWalletConnectNameSpaces.ts new file mode 100644 index 00000000..92a3bae2 --- /dev/null +++ b/packages/ui/src/utils/getAllNetworkWalletConnectNameSpaces.ts @@ -0,0 +1,14 @@ +import { networkList } from '../constants' +import { getWalletConnectId } from './getWalletConnectId' +import { getWalletConnectNameSpace } from './getWalletConnectNameSpace' + +export const getAllNetworkWalletConnectNameSpaces = (): string[] => { + return ( + Object.values(networkList) + .map((network) => network.genesisHash) + .filter(Boolean) as string[] + ).map((genesisHash) => { + const id = getWalletConnectId(genesisHash) + return getWalletConnectNameSpace(id) + }) +} diff --git a/packages/ui/src/utils/getWalletConnectNameSpace.ts b/packages/ui/src/utils/getWalletConnectNameSpace.ts new file mode 100644 index 00000000..37661c67 --- /dev/null +++ b/packages/ui/src/utils/getWalletConnectNameSpace.ts @@ -0,0 +1 @@ +export const getWalletConnectNameSpace = (id: string) => `polkadot:${id}` diff --git a/packages/ui/src/walletConfigs.ts b/packages/ui/src/walletConfigs.ts index 2bf85532..4503ff7f 100644 --- a/packages/ui/src/walletConfigs.ts +++ b/packages/ui/src/walletConfigs.ts @@ -3,7 +3,7 @@ import { registerDotConnect } from 'dot-connect' import { DAPP_NAME, WALLETCONNECT_PROJECT_ID } from './constants' import { WalletConnect } from '@reactive-dot/wallet-walletconnect' import { defineConfig } from '@reactive-dot/core' -import { getAllNetworkWalletConnectIds } from './utils/getAllNetworkWalletConnectIds' +import { getAllNetworkWalletConnectNameSpaces } from './utils/getAllNetworkWalletConnectNameSpaces' export const config = defineConfig({ chains: {}, @@ -19,7 +19,7 @@ export const config = defineConfig({ icons: ['https://multix.chainsafe.io/android-chrome-192x192.png?raw=true'] } }, - optionalChainIds: getAllNetworkWalletConnectIds() + optionalChainIds: getAllNetworkWalletConnectNameSpaces() }) ] }) From 1332f197a8d24aef15ebc7ddf90d5d6da9c0cbe5 Mon Sep 17 00:00:00 2001 From: Thibaut Sardan Date: Fri, 21 Feb 2025 15:08:48 +0000 Subject: [PATCH 2/2] fix translation --- packages/ui/src/hooks/useSigningCallback.tsx | 2 +- packages/ui/src/utils/translateError.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/hooks/useSigningCallback.tsx b/packages/ui/src/hooks/useSigningCallback.tsx index e927998c..c958dc70 100644 --- a/packages/ui/src/hooks/useSigningCallback.tsx +++ b/packages/ui/src/hooks/useSigningCallback.tsx @@ -86,7 +86,7 @@ export const useSigningCallback = ({ onSubmitting, onSuccess, onFinalized, onErr error: (e: Error) => { console.error(e) const error = translateError(e) - addToast({ title: error.message ?? error.toString(), type: 'error' }) + addToast({ title: error, type: 'error' }) onError && onError() } } diff --git a/packages/ui/src/utils/translateError.ts b/packages/ui/src/utils/translateError.ts index 657b1bfa..c38d9f99 100644 --- a/packages/ui/src/utils/translateError.ts +++ b/packages/ui/src/utils/translateError.ts @@ -4,7 +4,7 @@ export const translateError = (error: any) => { return 'Not enough funds to pay for the tx' } - return error.toString() + return error.message || error.toString() } export const translateErrorInfo = (errorInfo: string) => {