diff --git a/src/screens/staking/components/networks/components/network_grid/components/network_card/popover.tsx b/src/screens/staking/components/networks/components/network_grid/components/network_card/popover.tsx index e592d2fb..27dc900a 100644 --- a/src/screens/staking/components/networks/components/network_grid/components/network_card/popover.tsx +++ b/src/screens/staking/components/networks/components/network_grid/components/network_card/popover.tsx @@ -37,6 +37,7 @@ import type { StakingNetworkInfo, } from "@src/screens/staking/lib/staking_sdk/core"; import { WalletId } from "@src/screens/staking/lib/staking_sdk/core/base"; +import { unsupportedLedgerNetworks } from "@src/screens/staking/lib/staking_sdk/core/cosmos"; import { formatCoin } from "@src/screens/staking/lib/staking_sdk/formatters"; import { accountHasDelegations, @@ -290,6 +291,10 @@ const PopOver = ({ { if (!hasNetworkSupportedWallet) { setSelectedAccount( diff --git a/src/screens/staking/lib/staking_sdk/core/cosmos.ts b/src/screens/staking/lib/staking_sdk/core/cosmos.ts index ef52b5b3..bb052b53 100644 --- a/src/screens/staking/lib/staking_sdk/core/cosmos.ts +++ b/src/screens/staking/lib/staking_sdk/core/cosmos.ts @@ -13,21 +13,21 @@ export const ethermintNetworks = new Set([ export const keplrNetworks = new Set( [ - // StakingNetworkId.Akash, - // StakingNetworkId.Celestia, - // StakingNetworkId.CelestiaTestnet, - // StakingNetworkId.ComposableFinance, - // StakingNetworkId.CosmosHub, - // StakingNetworkId.CosmosHubTestnet, - // StakingNetworkId.DyDx, + StakingNetworkId.Akash, + StakingNetworkId.Celestia, + StakingNetworkId.CelestiaTestnet, + StakingNetworkId.ComposableFinance, + StakingNetworkId.CosmosHub, + StakingNetworkId.CosmosHubTestnet, + StakingNetworkId.DyDx, StakingNetworkId.Dymension, StakingNetworkId.IslamicCoin, StakingNetworkId.Injective, - // StakingNetworkId.Kava, - // StakingNetworkId.KavaTestnet, - // StakingNetworkId.Osmosis, - // StakingNetworkId.Stargaze, - // StakingNetworkId.StargazeTestnet, + StakingNetworkId.Kava, + StakingNetworkId.KavaTestnet, + StakingNetworkId.Osmosis, + StakingNetworkId.Stargaze, + StakingNetworkId.StargazeTestnet, ].filter( ENABLE_TESTNETS ? () => true : (network) => !testnetNetworks.has(network), ), @@ -54,3 +54,5 @@ export const cosmosStakingNetworks = new Set([ ...Array.from(cosmosWallets.has(WalletId.Keplr) ? keplrNetworks : []), ...Array.from(cosmosWallets.has(WalletId.Leap) ? leapNetworks : []), ]); + +export const unsupportedLedgerNetworks = new Set([]); diff --git a/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos.ts b/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos.ts index f2274533..4f2c05bd 100644 --- a/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos.ts +++ b/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos.ts @@ -30,6 +30,7 @@ import { keplrNetworks, keplrNonNativeChains, leapNetworks, + unsupportedLedgerNetworks, } from "../core/cosmos"; import { stakingClient } from "../staking_client"; import { addToConnectedWallets, getConnectedWallets } from "../utils/storage"; @@ -453,6 +454,14 @@ export const tryToConnectKeplr = async ( // eslint-disable-next-line no-console console.log("debug: index.tsx: err", network, err); + if ( + (err as any)?.message?.includes( + "Ledger is unsupported for this chain", + ) + ) { + unsupportedLedgerNetworks.add(network); + } + return [] as Account[]; }; diff --git a/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos/ethermint_utils.ts b/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos/ethermint_utils.ts index 22b7f507..0d5dc3be 100644 --- a/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos/ethermint_utils.ts +++ b/src/screens/staking/lib/staking_sdk/wallet_operations/cosmos/ethermint_utils.ts @@ -150,18 +150,6 @@ const getEIP712DataStructure = ( verifyingContract: "cosmos", version: "1.0.0", }; - } else if (signDoc.chain_id === StakingNetworkId.IslamicCoin) { - domain = { - // Got chain id from: - // https://github.com/haqq-network/haqq/blob/03bba90ecacd8ecf49921be4196a2805f35f1ce8/app/app.go#L195C25-L195C30 - chainId: `0x${(11235).toString(16)}`, - // Got the other domain info from: - // https://github.com/haqq-network/haqq/blob/master/ethereum/eip712/domain.go - name: "Cosmos Web3", - salt: "0", - verifyingContract: "cosmos", - version: "1.0.0", - }; } else { throw new Error(`Unsupported chain id: ${signDoc.chain_id}`); } @@ -499,6 +487,10 @@ export const signAndBroadcastEthermint = async ( const { isNanoLedger } = (await walletProvider?.getKey(account.networkId)) ?? {}; + if (isNanoLedger && account.wallet !== WalletId.Keplr) { + throw new Error("Ledger is only supported in Keplr"); + } + const tx = isNanoLedger ? await getTxForEthermintLedger( account,