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
This commit is contained in:
parent
8c33c602e8
commit
7c84bccbb9
@ -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<string[]>((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,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user