From 7c84bccbb90911083750164f96877a61343b4795 Mon Sep 17 00:00:00 2001 From: Jaco Date: Tue, 29 Jun 2021 17:23:00 +0300 Subject: [PATCH] Adjust Ledger lookups via hash/apps only (#5618) * Adjust Ledger lookups via hash/apps only * Lookup on all genesis hashes * Lookup against all hashes * Adjust ledger lookups --- packages/react-hooks/src/useLedger.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/react-hooks/src/useLedger.ts b/packages/react-hooks/src/useLedger.ts index 999dad80a5..e6ef4cf8c5 100644 --- a/packages/react-hooks/src/useLedger.ts +++ b/packages/react-hooks/src/useLedger.ts @@ -7,7 +7,7 @@ import type { LedgerTypes } from '@polkadot/hw-ledger/types'; import { useCallback, useMemo } from 'react'; import { Ledger } from '@polkadot/hw-ledger'; -import networks from '@polkadot/networks'; +import { knownGenesis, knownLedger } from '@polkadot/networks/defaults'; import uiSettings from '@polkadot/ui-settings'; import { assert } from '@polkadot/util'; @@ -28,7 +28,10 @@ const EMPTY_STATE: StateBase = { }; const hasWebUsb = !!(window as unknown as { USB?: unknown }).USB; -const ledgerChains = networks.filter((n) => !!n.hasLedgerSupport); +const ledgerChains = Object + .keys(knownGenesis) + .filter((n) => knownLedger[n]); +const ledgerHashes = ledgerChains.reduce((all, n) => [...all, ...knownGenesis[n]], []); let ledger: Ledger | null = null; let ledgerType: LedgerTypes | null = null; @@ -37,11 +40,11 @@ function retrieveLedger (api: ApiPromise): Ledger { if (!ledger || ledgerType !== currType) { const genesisHex = api.genesisHash.toHex(); - const def = ledgerChains.find(({ genesisHash }) => genesisHash[0] === genesisHex); + const network = ledgerChains.find((network) => knownGenesis[network].includes(genesisHex)); - assert(def, `Unable to find supported chain for ${genesisHex}`); + assert(network, `Unable to find a known Ledger config for genesisHash ${genesisHex}`); - ledger = new Ledger(currType, def.network); + ledger = new Ledger(currType, network); ledgerType = currType; } @@ -49,7 +52,7 @@ function retrieveLedger (api: ApiPromise): Ledger { } function getState (api: ApiPromise): StateBase { - const isLedgerCapable = hasWebUsb && ledgerChains.map(({ genesisHash }) => genesisHash[0]).includes(api.genesisHash.toHex()); + const isLedgerCapable = hasWebUsb && ledgerHashes.includes(api.genesisHash.toHex()); return { isLedgerCapable,