From 7567971c09900f138121afcc87c51014ab5a8bbc Mon Sep 17 00:00:00 2001 From: oisupov Date: Tue, 23 Aug 2022 21:10:42 +0700 Subject: [PATCH] Warmup Filecoin Ledger account before transaction Fixes https://github.com/brave/brave-browser/issues/24824 --- .../hardware/ledgerjs/filecoin_ledger_keyring.ts | 4 ++++ .../connect-hardware-wallet-panel/index.tsx | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/components/brave_wallet_ui/common/hardware/ledgerjs/filecoin_ledger_keyring.ts b/components/brave_wallet_ui/common/hardware/ledgerjs/filecoin_ledger_keyring.ts index 91adbf2605d..010f395fb4b 100644 --- a/components/brave_wallet_ui/common/hardware/ledgerjs/filecoin_ledger_keyring.ts +++ b/components/brave_wallet_ui/common/hardware/ledgerjs/filecoin_ledger_keyring.ts @@ -122,6 +122,10 @@ export default class FilecoinLedgerKeyring implements LedgerFilecoinKeyring { Method: parsed.Method, Params: parsed.Params } + + // Accounts must be warmed up before signing. + await this.provider?.getAccounts() + const signed: SignedLotusMessage = await this.provider?.sign(parsed.From, lotusMessage) return { success: true, payload: signed } } catch (e) { diff --git a/components/brave_wallet_ui/components/extension/connect-hardware-wallet-panel/index.tsx b/components/brave_wallet_ui/components/extension/connect-hardware-wallet-panel/index.tsx index 24a886ba7c0..5eadceec3ce 100644 --- a/components/brave_wallet_ui/components/extension/connect-hardware-wallet-panel/index.tsx +++ b/components/brave_wallet_ui/components/extension/connect-hardware-wallet-panel/index.tsx @@ -40,6 +40,17 @@ export interface Props { onClickInstructions: () => void } +function getAppName (coinType: BraveWallet.CoinType): string { + switch (coinType) { + case BraveWallet.CoinType.SOL: + return 'Solana' + case BraveWallet.CoinType.FIL: + return 'Filecoin' + default: + return 'Ethereum' + } +} + export const ConnectHardwareWalletPanel = ({ onCancel, walletName, @@ -60,7 +71,7 @@ export const ConnectHardwareWalletPanel = ({ } if (hardwareWalletCode === 'openLedgerApp') { - let network = (coinType === BraveWallet.CoinType.SOL) ? 'Solana' : 'Ethereum' + let network = getAppName(coinType) return getLocale('braveWalletConnectHardwarePanelOpenApp') .replace('$1', network) .replace('$2', walletName)