@swapkit/wallet-hardware 4.11.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-egtwbe6q.js +4 -0
- package/dist/{chunk-gwx23jdp.js.map → chunk-egtwbe6q.js.map} +3 -3
- package/dist/keepkey/index.cjs +2 -2
- package/dist/keepkey/index.cjs.map +3 -3
- package/dist/keepkey/index.js +2 -2
- package/dist/keepkey/index.js.map +3 -3
- package/dist/ledger/index.cjs +2 -2
- package/dist/ledger/index.cjs.map +4 -4
- package/dist/ledger/index.js +2 -2
- package/dist/ledger/index.js.map +3 -3
- package/dist/trezor/index.cjs +2 -2
- package/dist/trezor/index.cjs.map +3 -3
- package/dist/trezor/index.js +2 -2
- package/dist/trezor/index.js.map +3 -3
- package/dist/types/keepkey/chains/utxo.d.ts.map +1 -1
- package/dist/types/ledger/clients/utxo-psbt.d.ts +2 -0
- package/dist/types/ledger/clients/utxo-psbt.d.ts.map +1 -1
- package/dist/types/ledger/index.d.ts.map +1 -1
- package/dist/types/trezor/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/keepkey/chains/utxo.ts +5 -2
- package/src/ledger/clients/utxo-psbt.ts +1 -0
- package/src/ledger/index.ts +14 -4
- package/src/trezor/index.ts +9 -6
- package/dist/chunk-gwx23jdp.js +0 -4
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/ledger/helpers/getLedgerTransport.ts", "../src/ledger/clients/utxo-psbt.ts", "../src/ledger/clients/utxo-legacy-adapter.ts", "../src/ledger/index.ts", "../src/ledger/helpers/getLedgerAddress.ts", "../src/ledger/helpers/getLedgerClient.ts", "../src/ledger/clients/cosmos.ts", "../src/ledger/interfaces/CosmosLedgerInterface.ts", "../src/ledger/clients/thorchain/lib.ts", "../src/ledger/clients/thorchain/common.ts", "../src/ledger/clients/thorchain/helpers.ts", "../src/ledger/clients/evm.ts", "../src/ledger/helpers/ledgerNetworkInfo.ts", "../src/ledger/clients/near.ts", "../src/ledger/clients/sui.ts", "../src/ledger/clients/thorchain/index.ts", "../src/ledger/clients/thorchain/utils.ts", "../src/ledger/clients/tron.ts", "../src/ledger/clients/utxo.ts", "../src/ledger/clients/xrp.ts", "../src/ledger/helpers/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type Transport from \"@ledgerhq/hw-transport\";\nimport { SwapKitError } from \"@swapkit/helpers\";\n\nconst getNavigatorUsb = () =>\n navigator?.usb as unknown as {\n getDevices: () => Promise<any[]>;\n requestDevice: (requestObject: any) => Promise<any>;\n removeEventListener: (event: string, callback: (e: any) => void) => void;\n addEventListener: (event: string, callback: (e: any) => void) => void;\n };\n\nconst getLedgerDevices = async (): Promise<USBDevice> => {\n const navigatorUsb = getNavigatorUsb();\n\n if (typeof navigatorUsb?.getDevices !== \"function\") return {} as USBDevice;\n const { ledgerUSBVendorId } = await import(\"@ledgerhq/devices\");\n\n const devices = await navigatorUsb?.getDevices();\n const existingDevices = devices.filter((d) => d.vendorId === ledgerUSBVendorId);\n if (existingDevices.length > 0) return existingDevices[0];\n\n return navigatorUsb?.requestDevice({ filters: [{ vendorId: ledgerUSBVendorId }] });\n};\n\nexport const getLedgerTransport = async (): Promise<Transport> => {\n const device = await getLedgerDevices();\n\n if (!device) {\n throw new SwapKitError(\"wallet_ledger_device_not_found\");\n }\n\n device.opened || (await device.open());\n if (device.configuration === null) await device.selectConfiguration(1);\n\n try {\n await device.reset();\n } catch {\n // reset fails on devices that are already open\n }\n\n const configuration = device.configuration ?? device.configurations?.[0];\n\n const iface =\n configuration?.interfaces.find(({ alternates }: { alternates: { interfaceClass: number }[] }) =>\n alternates.some(({ interfaceClass }) => interfaceClass === 0xff),\n ) ||\n configuration?.interfaces.find(({ alternates }: { alternates: { interfaceClass: number }[] }) =>\n alternates.some(({ interfaceClass }) => interfaceClass === 0x03),\n );\n\n if (!iface) {\n await device.close();\n throw new SwapKitError(\"wallet_ledger_connection_error\");\n }\n\n const klass0x03 = (iface.alternates as any[])?.find(\n ({ interfaceClass }: { interfaceClass: number }) => interfaceClass === 0x03,\n )?.interfaceClass as number;\n\n const klass0xff = (iface.alternates as any[])?.find(\n ({ interfaceClass }: { interfaceClass: number }) => interfaceClass === 0xff,\n )?.interfaceClass as number;\n\n if (klass0x03 && !klass0xff) {\n // -------- HID class (NEAR, ETH, SOL, etc.) -> WebHID transport --------\n const TransportWebHID = (await import(\"@ledgerhq/hw-transport-webhid\")).default;\n const supported = await TransportWebHID.isSupported();\n if (!supported) {\n await device.close();\n throw new SwapKitError(\"wallet_ledger_webhid_not_supported\");\n }\n const transport = await TransportWebHID.create();\n return transport;\n }\n\n try {\n await device.claimInterface(iface.interfaceNumber);\n } catch (error: unknown) {\n await device.close();\n\n throw new SwapKitError(\"wallet_ledger_connection_claimed\", error);\n }\n\n const Transport = (await import(\"@ledgerhq/hw-transport-webusb\")).default;\n const isSupported = await Transport.isSupported();\n if (!isSupported) throw new SwapKitError(\"wallet_ledger_webusb_not_supported\");\n\n const { DisconnectedDevice } = await import(\"@ledgerhq/errors\");\n\n const transport = new Transport(device, iface.interfaceNumber);\n\n const onDisconnect = (e: any) => {\n if (device === e.device) {\n getNavigatorUsb()?.removeEventListener(\"disconnect\", onDisconnect);\n\n transport._emitDisconnect(new DisconnectedDevice());\n }\n };\n getNavigatorUsb()?.addEventListener(\"disconnect\", onDisconnect);\n\n return transport as Transport;\n};\n",
|
|
6
|
-
"import type Transport from \"@ledgerhq/hw-transport\";\nimport { base64 } from \"@scure/base\";\nimport { HDKey } from \"@scure/bip32\";\nimport { type DerivationPathArray, derivationPathToString, getWalletFormatFor, SwapKitError } from \"@swapkit/helpers\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\ntype SupportedCoin = \"bitcoin\" | \"litecoin\";\n\ntype DefaultDescriptorTemplate = \"wpkh(@0/**)\" | \"tr(@0/**)\" | \"sh(wpkh(@0/**))\" | \"pkh(@0/**)\";\n\nfunction templateForFormat(format: ReturnType<typeof getWalletFormatFor>): DefaultDescriptorTemplate {\n switch (format) {\n case \"bech32\":\n return \"wpkh(@0/**)\";\n case \"p2sh\":\n return \"sh(wpkh(@0/**))\";\n case \"legacy\":\n return \"pkh(@0/**)\";\n default:\n return \"wpkh(@0/**)\";\n }\n}\n\nfunction pathToString(path: DerivationPathArray | string): string {\n return typeof path === \"string\" ? path : derivationPathToString(path);\n}\n\nfunction normalizeLedgerPath(path: string): string {\n return path.replace(/^m\\//, \"\").replace(/^\\/+/, \"\");\n}\n\nfunction pathToNumberArray(path: string): number[] {\n return path\n .replace(/^m\\//, \"\")\n .split(\"/\")\n .filter(Boolean)\n .map((p) => {\n const hardened = p.endsWith(\"'\");\n const num = Number.parseInt(hardened ? p.slice(0, -1) : p, 10);\n return hardened ? (num | 0x80000000) >>> 0 : num;\n });\n}\n\nfunction hasBip32Derivation(tx: Transaction, inputIndex: number) {\n const input = tx.getInput(inputIndex) as { bip32Derivation?: Array<unknown> };\n\n return Boolean(input.bip32Derivation?.length);\n}\n\nconst BaseLedgerPsbtUTXO = ({ chain }: { chain: SupportedCoin }) => {\n return (derivationPathArray?: DerivationPathArray | string, injectedTransport?: Transport) => {\n // Per-call state — each BitcoinPsbtLedger/LitecoinPsbtLedger invocation has its own\n // AppClient and master fingerprint so different consumers (e.g. concurrent MCP\n // sessions on different devices) cannot inherit each other's ledger bindings or xpub.\n let appClient: import(\"ledger-bitcoin\").AppClient | undefined;\n let masterFingerprint: string | undefined;\n\n async function getAppClient() {\n if (!appClient) {\n const transport = injectedTransport ?? (await getLedgerTransport());\n const { AppClient } = await import(\"ledger-bitcoin\");\n appClient = new AppClient(transport);\n }\n return appClient;\n }\n\n async function getFingerprint() {\n if (!masterFingerprint) {\n const app = await getAppClient();\n masterFingerprint = await app.getMasterFingerprint();\n }\n return masterFingerprint;\n }\n\n // Single-address account: change == index == 0 by default.\n const derivationPath = normalizeLedgerPath(\n derivationPathArray ? pathToString(derivationPathArray) : \"84'/0'/0'/0/0\",\n );\n const pathSegments = derivationPath.split(\"/\").filter(Boolean);\n const accountPath = pathSegments.slice(0, 3).join(\"/\");\n const leafSegments = pathSegments.slice(3);\n const change = Number(leafSegments[0] ?? 0);\n const addressIndex = Number(leafSegments[1] ?? 0);\n // getWalletFormatFor expects an m/-prefixed path (it reads the purpose\n // from the second segment); derivationPath is normalized without it.\n const format = getWalletFormatFor(`m/${derivationPath}`);\n const template = templateForFormat(format);\n\n let cachedAccountXpub: string | undefined;\n let cachedLeafPubkey: Uint8Array | undefined;\n\n async function buildPolicy() {\n const app = await getAppClient();\n const fpr = await getFingerprint();\n if (!cachedAccountXpub) {\n cachedAccountXpub = await app.getExtendedPubkey(`m/${accountPath}`);\n }\n const { DefaultWalletPolicy } = await import(\"ledger-bitcoin\");\n const policy = new DefaultWalletPolicy(template, `[${fpr}/${accountPath}]${cachedAccountXpub}`);\n return { app, fpr, policy, xpub: cachedAccountXpub };\n }\n\n async function getLeafPubkey() {\n if (!cachedLeafPubkey) {\n const { xpub } = await buildPolicy();\n const accountKey = HDKey.fromExtendedKey(xpub);\n const leaf = accountKey.derive(`m/${change}/${addressIndex}`);\n if (!leaf.publicKey) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot derive leaf pubkey for ${chain}`,\n });\n }\n cachedLeafPubkey = leaf.publicKey;\n }\n return cachedLeafPubkey;\n }\n\n return {\n connect: async () => {\n await getAppClient();\n },\n getAddress: async () => {\n const { app, policy } = await buildPolicy();\n const address = await app.getWalletAddress(policy, null, change, addressIndex, false);\n if (!address) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot get ${chain} address from ledger derivation path: ${derivationPath}`,\n });\n }\n return address;\n },\n getExtendedPublicKey: async (path = `m/${accountPath}`) => {\n const app = await getAppClient();\n return app.getExtendedPubkey(`m/${normalizeLedgerPath(path)}`);\n },\n signTransaction: async (tx: Transaction): Promise<Transaction> => {\n const { app, policy, fpr } = await buildPolicy();\n const fingerprintBE = Number.parseInt(fpr, 16) >>> 0;\n const pathNumbers = pathToNumberArray(derivationPath);\n const missingDerivationIndexes = Array.from({ length: tx.inputsLength }, (_, inputIndex) => inputIndex).filter(\n (inputIndex) => !hasBip32Derivation(tx, inputIndex),\n );\n\n if (missingDerivationIndexes.length > 0) {\n const leafPubkey = await getLeafPubkey();\n\n // Fallback for PSBTs that do not include per-input HD key origins.\n for (const inputIndex of missingDerivationIndexes) {\n tx.updateInput(inputIndex, {\n bip32Derivation: [[leafPubkey, { fingerprint: fingerprintBE, path: pathNumbers }]],\n });\n }\n }\n\n const psbtB64 = base64.encode(tx.toPSBT(0));\n const sigs = await app.signPsbt(psbtB64, policy, null);\n\n for (const [idx, partial] of sigs) {\n tx.updateInput(idx, { partialSig: [[new Uint8Array(partial.pubkey), new Uint8Array(partial.signature)]] });\n }\n\n return tx;\n },\n };\n };\n};\n\nexport const BitcoinPsbtLedger = BaseLedgerPsbtUTXO({ chain: \"bitcoin\" });\nexport const LitecoinPsbtLedger = BaseLedgerPsbtUTXO({ chain: \"litecoin\" });\n",
|
|
6
|
+
"import type Transport from \"@ledgerhq/hw-transport\";\nimport { base64 } from \"@scure/base\";\nimport { HDKey } from \"@scure/bip32\";\nimport { type DerivationPathArray, derivationPathToString, getWalletFormatFor, SwapKitError } from \"@swapkit/helpers\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\ntype SupportedCoin = \"bitcoin\" | \"litecoin\";\n\ntype DefaultDescriptorTemplate = \"wpkh(@0/**)\" | \"tr(@0/**)\" | \"sh(wpkh(@0/**))\" | \"pkh(@0/**)\";\n\nfunction templateForFormat(format: ReturnType<typeof getWalletFormatFor>): DefaultDescriptorTemplate {\n switch (format) {\n case \"bech32\":\n return \"wpkh(@0/**)\";\n case \"p2sh\":\n return \"sh(wpkh(@0/**))\";\n case \"legacy\":\n return \"pkh(@0/**)\";\n default:\n return \"wpkh(@0/**)\";\n }\n}\n\nfunction pathToString(path: DerivationPathArray | string): string {\n return typeof path === \"string\" ? path : derivationPathToString(path);\n}\n\nfunction normalizeLedgerPath(path: string): string {\n return path.replace(/^m\\//, \"\").replace(/^\\/+/, \"\");\n}\n\nfunction pathToNumberArray(path: string): number[] {\n return path\n .replace(/^m\\//, \"\")\n .split(\"/\")\n .filter(Boolean)\n .map((p) => {\n const hardened = p.endsWith(\"'\");\n const num = Number.parseInt(hardened ? p.slice(0, -1) : p, 10);\n return hardened ? (num | 0x80000000) >>> 0 : num;\n });\n}\n\nfunction hasBip32Derivation(tx: Transaction, inputIndex: number) {\n const input = tx.getInput(inputIndex) as { bip32Derivation?: Array<unknown> };\n\n return Boolean(input.bip32Derivation?.length);\n}\n\nconst BaseLedgerPsbtUTXO = ({ chain }: { chain: SupportedCoin }) => {\n return (derivationPathArray?: DerivationPathArray | string, injectedTransport?: Transport) => {\n // Per-call state — each BitcoinPsbtLedger/LitecoinPsbtLedger invocation has its own\n // AppClient and master fingerprint so different consumers (e.g. concurrent MCP\n // sessions on different devices) cannot inherit each other's ledger bindings or xpub.\n let appClient: import(\"ledger-bitcoin\").AppClient | undefined;\n let masterFingerprint: string | undefined;\n\n async function getAppClient() {\n if (!appClient) {\n const transport = injectedTransport ?? (await getLedgerTransport());\n const { AppClient } = await import(\"ledger-bitcoin\");\n appClient = new AppClient(transport);\n }\n return appClient;\n }\n\n async function getFingerprint() {\n if (!masterFingerprint) {\n const app = await getAppClient();\n masterFingerprint = await app.getMasterFingerprint();\n }\n return masterFingerprint;\n }\n\n // Single-address account: change == index == 0 by default.\n const derivationPath = normalizeLedgerPath(\n derivationPathArray ? pathToString(derivationPathArray) : \"84'/0'/0'/0/0\",\n );\n const pathSegments = derivationPath.split(\"/\").filter(Boolean);\n const accountPath = pathSegments.slice(0, 3).join(\"/\");\n const leafSegments = pathSegments.slice(3);\n const change = Number(leafSegments[0] ?? 0);\n const addressIndex = Number(leafSegments[1] ?? 0);\n // getWalletFormatFor expects an m/-prefixed path (it reads the purpose\n // from the second segment); derivationPath is normalized without it.\n const format = getWalletFormatFor(`m/${derivationPath}`);\n const template = templateForFormat(format);\n\n let cachedAccountXpub: string | undefined;\n let cachedLeafPubkey: Uint8Array | undefined;\n\n async function buildPolicy() {\n const app = await getAppClient();\n const fpr = await getFingerprint();\n if (!cachedAccountXpub) {\n cachedAccountXpub = await app.getExtendedPubkey(`m/${accountPath}`);\n }\n const { DefaultWalletPolicy } = await import(\"ledger-bitcoin\");\n const policy = new DefaultWalletPolicy(template, `[${fpr}/${accountPath}]${cachedAccountXpub}`);\n return { app, fpr, policy, xpub: cachedAccountXpub };\n }\n\n async function getLeafPubkey() {\n if (!cachedLeafPubkey) {\n const { xpub } = await buildPolicy();\n const accountKey = HDKey.fromExtendedKey(xpub);\n const leaf = accountKey.derive(`m/${change}/${addressIndex}`);\n if (!leaf.publicKey) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot derive leaf pubkey for ${chain}`,\n });\n }\n cachedLeafPubkey = leaf.publicKey;\n }\n return cachedLeafPubkey;\n }\n\n return {\n connect: async () => {\n await getAppClient();\n },\n getAddress: async () => {\n const { app, policy } = await buildPolicy();\n const address = await app.getWalletAddress(policy, null, change, addressIndex, false);\n if (!address) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot get ${chain} address from ledger derivation path: ${derivationPath}`,\n });\n }\n return address;\n },\n getExtendedPublicKey: async (path = `m/${accountPath}`) => {\n const app = await getAppClient();\n return app.getExtendedPubkey(`m/${normalizeLedgerPath(path)}`);\n },\n getPublicKey: getLeafPubkey,\n signTransaction: async (tx: Transaction): Promise<Transaction> => {\n const { app, policy, fpr } = await buildPolicy();\n const fingerprintBE = Number.parseInt(fpr, 16) >>> 0;\n const pathNumbers = pathToNumberArray(derivationPath);\n const missingDerivationIndexes = Array.from({ length: tx.inputsLength }, (_, inputIndex) => inputIndex).filter(\n (inputIndex) => !hasBip32Derivation(tx, inputIndex),\n );\n\n if (missingDerivationIndexes.length > 0) {\n const leafPubkey = await getLeafPubkey();\n\n // Fallback for PSBTs that do not include per-input HD key origins.\n for (const inputIndex of missingDerivationIndexes) {\n tx.updateInput(inputIndex, {\n bip32Derivation: [[leafPubkey, { fingerprint: fingerprintBE, path: pathNumbers }]],\n });\n }\n }\n\n const psbtB64 = base64.encode(tx.toPSBT(0));\n const sigs = await app.signPsbt(psbtB64, policy, null);\n\n for (const [idx, partial] of sigs) {\n tx.updateInput(idx, { partialSig: [[new Uint8Array(partial.pubkey), new Uint8Array(partial.signature)]] });\n }\n\n return tx;\n },\n };\n };\n};\n\nexport const BitcoinPsbtLedger = BaseLedgerPsbtUTXO({ chain: \"bitcoin\" });\nexport const LitecoinPsbtLedger = BaseLedgerPsbtUTXO({ chain: \"litecoin\" });\n",
|
|
7
7
|
"import { hex } from \"@scure/base\";\nimport { SwapKitError, type UTXOChain } from \"@swapkit/helpers\";\nimport type { UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\n\n/**\n * Extract per-input metadata from a V3 PSBT in the shape the legacy\n * `@ledgerhq/hw-app-btc.createPaymentTransaction` adapter expects.\n *\n * The legacy Ledger signer still needs the full previous tx hex for\n * `btcApp.splitTransaction(hex)`. Some V3 PSBTs only include `witnessUtxo`,\n * so we fetch the previous raw tx when `nonWitnessUtxo` is absent.\n *\n * Single-address account assumption: all inputs share our derivation path.\n */\nexport async function extractInputsFromPsbt(tx: Transaction, chain: UTXOChain): Promise<UTXOType[]> {\n const { RawTx } = await import(\"@swapkit/utxo-signer\");\n const { getUtxoApi } = await import(\"@swapkit/toolboxes/utxo\");\n const inputs: UTXOType[] = [];\n\n for (let i = 0; i < tx.inputsLength; i++) {\n const input = tx.getInput(i);\n\n if (!input.txid || input.index === undefined) {\n throw new Error(`PSBT input ${i} is missing txid/index`);\n }\n\n const txid = hex.encode(input.txid);\n const txHex = input.nonWitnessUtxo\n ? hex.encode(RawTx.encode(input.nonWitnessUtxo))\n : await getUtxoApi(chain).getRawTx(txid);\n if (!txHex) {\n throw new SwapKitError(\"wallet_ledger_invalid_params\", {\n chain,\n inputIndex: i,\n reason: \"Unable to resolve previous transaction hex for Ledger signing\",\n txid,\n });\n }\n const witnessUtxo = input.witnessUtxo\n ? { script: input.witnessUtxo.script, value: Number(input.witnessUtxo.amount) }\n : undefined;\n const nonWitnessPrevout = input.index !== undefined ? input.nonWitnessUtxo?.outputs?.[input.index] : undefined;\n const value = witnessUtxo?.value ?? (nonWitnessPrevout ? Number(nonWitnessPrevout.amount) : 0);\n\n inputs.push({ hash: txid, index: input.index, txHex, value, witnessUtxo } as UTXOType);\n }\n\n return inputs;\n}\n\nexport async function signLegacyPsbtTransaction({\n legacyClient,\n chain,\n tx,\n}: {\n legacyClient: { signTransaction: (tx: Transaction, inputUtxos: UTXOType[]) => Promise<string> };\n chain: UTXOChain;\n tx: Transaction;\n}): Promise<string> {\n const inputUtxos = await extractInputsFromPsbt(tx, chain);\n return legacyClient.signTransaction(tx, inputUtxos);\n}\n\n/**\n * Build a toolbox-compatible signer from the existing legacy Ledger UTXO\n * client. Callers that need sign-and-broadcast should broadcast the raw hex\n * from `signLegacyPsbtTransaction` directly; the legacy Ledger app returns an\n * already-finalized transaction that should not be passed back to toolbox\n * finalization.\n */\nexport function createLegacyPsbtSigner({\n legacyClient,\n chain,\n address,\n}: {\n legacyClient: { signTransaction: (tx: Transaction, inputUtxos: UTXOType[]) => Promise<string> };\n chain: UTXOChain;\n address: string;\n}) {\n return {\n getAddress: async () => address,\n signTransaction: async (tx: Transaction): Promise<Transaction> => {\n const signedTxHex = await signLegacyPsbtTransaction({ chain, legacyClient, tx });\n\n const { Transaction: TxClass } = await import(\"@swapkit/utxo-signer\");\n // `Transaction.fromRaw` parses a serialised tx (no PSBT envelope) — exactly\n // what `createPaymentTransaction` returns.\n return TxClass.fromRaw(hex.decode(signedTxHex));\n },\n };\n}\n",
|
|
8
|
-
"import type Transport from \"@ledgerhq/hw-transport\";\nimport {\n type AssetValue,\n Chain,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n filterSupportedChains,\n type GenericTransferParams,\n getRPCUrl,\n NetworkDerivationPath,\n SwapKitError,\n type UTXOChain,\n WalletOption,\n} from \"@swapkit/helpers\";\nimport {\n addInputsAndOutputs,\n assertDerivationIndex,\n compileMemo,\n createHDWalletHelpers,\n getNetworkForChain,\n getUTXOAccountIndexFromPath,\n getUTXOAccountPath,\n getUTXOAddressPath,\n getUtxoApi,\n type UTXOBuildTxParams,\n type UTXOForMultiAddressTransfer,\n} from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\nimport { createWallet, getWalletSupportedChains, type HardwareExtendedPublicKeyInfo } from \"@swapkit/wallet-core\";\nimport { getLedgerAddress, getLedgerClient } from \"./helpers\";\n\n/**\n * Options passed to `connectLedger` at call time.\n *\n * When `transport` is supplied, the consumer opens and owns its lifecycle —\n * wallet-hardware will use that exact instance for every per-chain Ledger\n * client and will NOT recreate it on `forceReconnect`. When omitted, the\n * default browser flow (WebHID / WebUSB via `navigator.usb`) is used.\n */\nexport type ConnectLedgerOptions = { address?: string; transport?: Transport };\n\nexport const ledgerWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectLedger(\n chains: Chain[],\n derivationPath?: DerivationPathArray,\n { address, transport }: ConnectLedgerOptions = {},\n ) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (!chain) return false;\n\n const resolvedPath = derivationPath ?? (NetworkDerivationPath[chain] as DerivationPathArray | undefined);\n const walletMethods = await getWalletMethods({ address, chain, derivationPath: resolvedPath, transport });\n\n addChain({ ...walletMethods, chain, walletType: WalletOption.LEDGER });\n\n return true;\n },\n directSigningSupport: {\n [Chain.Arbitrum]: true,\n [Chain.Arc]: true,\n [Chain.Aurora]: true,\n [Chain.Avalanche]: true,\n [Chain.Base]: true,\n [Chain.Berachain]: true,\n [Chain.BinanceSmartChain]: true,\n [Chain.Ethereum]: true,\n [Chain.Gnosis]: true,\n [Chain.Monad]: true,\n [Chain.Bitcoin]: true,\n [Chain.BitcoinCash]: true,\n [Chain.Cosmos]: true,\n [Chain.Dash]: true,\n [Chain.Dogecoin]: true,\n [Chain.Litecoin]: true,\n [Chain.Near]: true,\n [Chain.Optimism]: true,\n [Chain.Polygon]: true,\n [Chain.Ripple]: true,\n [Chain.Sui]: true,\n [Chain.THORChain]: true,\n [Chain.Tron]: true,\n [Chain.XLayer]: true,\n // ZEC: still on bespoke signPCZT path\n },\n getExtendedPublicKey: getLedgerExtendedPublicKey,\n name: \"connectLedger\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Arc,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Litecoin,\n Chain.Monad,\n Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Ripple,\n Chain.Sui,\n Chain.THORChain,\n Chain.XLayer,\n Chain.Tron,\n Chain.Zcash,\n ],\n walletType: WalletOption.LEDGER,\n});\n\nexport const LEDGER_SUPPORTED_CHAINS = getWalletSupportedChains(ledgerWallet);\n\n// reduce memo length by removing trade limit\nfunction reduceMemo(memo?: string, affiliateAddress = \"t\") {\n if (!memo?.includes(\"=:\")) return memo;\n\n const removedAffiliate = memo.includes(`:${affiliateAddress}:`) ? memo.split(`:${affiliateAddress}:`)[0] : memo;\n\n return removedAffiliate?.substring(0, removedAffiliate.lastIndexOf(\":\"));\n}\n\nexport async function getLedgerExtendedPublicKey(\n chain: Chain,\n derivationPath?: DerivationPathArray,\n { accountIndex }: { accountIndex?: number } = {},\n): Promise<HardwareExtendedPublicKeyInfo | undefined> {\n if (![Chain.BitcoinCash, Chain.Bitcoin, Chain.Dash, Chain.Dogecoin, Chain.Litecoin, Chain.Zcash].includes(chain)) {\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain, wallet: WalletOption.LEDGER });\n }\n\n const utxoChain = chain as UTXOChain;\n const signer = await getLedgerClient({ chain: utxoChain, derivationPath });\n if (!signer.getExtendedPublicKey) return undefined;\n\n const accountPath = getUTXOAccountPath({ accountIndex, chain: utxoChain, derivationPath });\n const path = derivationPathToString(accountPath);\n const ledgerPath = chain === Chain.Bitcoin || chain === Chain.Litecoin ? path : path.replace(/^m\\//, \"\");\n const xpubVersion = getNetworkForChain(utxoChain).bip32.public;\n try {\n const xpub = await signer.getExtendedPublicKey(ledgerPath, xpubVersion);\n return { accountIndex: getUTXOAccountIndexFromPath(accountPath), path, xpub };\n } finally {\n await (signer as { disconnect?: () => Promise<void> }).disconnect?.();\n }\n}\n\nasync function getWalletMethods({\n address: providedAddress,\n chain,\n derivationPath,\n transport,\n}: ConnectLedgerOptions & { chain: Chain; derivationPath?: DerivationPathArray }) {\n switch (chain) {\n case Chain.BitcoinCash:\n case Chain.Bitcoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin:\n case Chain.Zcash: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const utxoChain = chain as UTXOChain;\n\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n\n const address = providedAddress ?? (await getLedgerAddress({ chain, ledgerClient: signer }));\n\n // V3 toolbox signer:\n // - BTC uses the modern `ledger-bitcoin` AppClient with native PSBT signing.\n // - LTC/BCH/DOGE/DASH use the legacy `hw-app-btc` adapter that pulls\n // `nonWitnessUtxo` (full prev-tx hex) out of the API PSBT.\n // The Litecoin Ledger app does not support the `ledger-bitcoin`\n // policy APDUs and returns CLA_NOT_SUPPORTED.\n // - ZEC stays on the bespoke `signPCZT` flow for now.\n let toolboxSigner:\n | { getAddress: () => Promise<string>; signTransaction: (tx: Transaction) => Promise<Transaction> }\n | undefined;\n let signAndBroadcastLegacyPsbtTransaction: ((tx: Transaction) => Promise<string>) | undefined;\n if (chain === Chain.Bitcoin) {\n const { BitcoinPsbtLedger } = await import(\"./clients/utxo-psbt\");\n const psbtClient = BitcoinPsbtLedger(derivationPath, transport);\n toolboxSigner = { getAddress: psbtClient.getAddress, signTransaction: psbtClient.signTransaction };\n } else if (\n chain === Chain.BitcoinCash ||\n chain === Chain.Dogecoin ||\n chain === Chain.Dash ||\n chain === Chain.Litecoin\n ) {\n const { createLegacyPsbtSigner, signLegacyPsbtTransaction } = await import(\"./clients/utxo-legacy-adapter\");\n toolboxSigner = createLegacyPsbtSigner({ address, chain: utxoChain, legacyClient: signer });\n signAndBroadcastLegacyPsbtTransaction = async (tx) => {\n const signedTxHex = await signLegacyPsbtTransaction({ chain: utxoChain, legacyClient: signer, tx });\n return toolbox.broadcastTx(signedTxHex);\n };\n }\n\n const toolbox = toolboxSigner\n ? await getUtxoToolbox(utxoChain, { signer: toolboxSigner })\n : getUtxoToolbox(utxoChain);\n const signAndBroadcastTransaction = signAndBroadcastLegacyPsbtTransaction ?? toolbox.signAndBroadcastTransaction;\n\n const transfer = async (params: UTXOBuildTxParams) => {\n const feeRate = params.feeRate || (await toolbox.getFeeRates())[FeeOption.Average];\n const memo = [Chain.Bitcoin].includes(chain as typeof Chain.Bitcoin) ? params.memo : reduceMemo(params.memo);\n\n const { tx, inputs } = await toolbox.createTransaction({\n ...params,\n feeRate,\n fetchTxHex: true,\n memo,\n sender: address,\n });\n\n // Legacy Ledger UTXO signing returns finalized raw tx hex, so transfer\n // broadcasts directly instead of routing through toolbox finalization.\n const txHex = await signer.signTransaction(tx as Transaction, inputs);\n const txHash = await toolbox.broadcastTx(txHex);\n\n return txHash;\n };\n\n async function getExtendedPublicKeyInfo({ accountIndex }: { accountIndex?: number } = {}) {\n if (!signer.getExtendedPublicKey) return undefined;\n\n const accountPath = getUTXOAccountPath({ accountIndex, chain: utxoChain, derivationPath });\n const path = derivationPathToString(accountPath);\n const ledgerPath = chain === Chain.Bitcoin || chain === Chain.Litecoin ? path : path.replace(/^m\\//, \"\");\n const xpubVersion = getNetworkForChain(utxoChain).bip32.public;\n const xpub = await signer.getExtendedPublicKey(ledgerPath, xpubVersion);\n\n return { accountIndex: getUTXOAccountIndexFromPath(accountPath), path, xpub };\n }\n\n function getExtendedPublicKey(params: { accountIndex?: number } = {}) {\n return getExtendedPublicKeyInfo(params);\n }\n\n async function deriveAddressAtIndex({\n accountIndex,\n index,\n change = false,\n }: {\n accountIndex?: number;\n index: number;\n change?: boolean;\n }) {\n try {\n const fullPath = getUTXOAddressPath({ accountIndex, chain: utxoChain, change, derivationPath, index });\n\n const indexedSigner = await getLedgerClient({ chain: utxoChain, derivationPath: fullPath, transport });\n const derivedAddress = await getLedgerAddress({ chain: utxoChain, ledgerClient: indexedSigner });\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(fullPath),\n address: derivedAddress,\n change,\n index,\n path: derivationPathToString(fullPath),\n pubkey: \"\",\n };\n } catch {\n return undefined;\n }\n }\n\n async function deriveAddresses({\n accountIndex,\n count,\n startIndex = 0,\n change = false,\n }: {\n accountIndex?: number;\n count: number;\n startIndex?: number;\n change?: boolean;\n }) {\n assertDerivationIndex(\"count\", count);\n assertDerivationIndex(\"startIndex\", startIndex);\n\n const addresses = await Promise.all(\n Array.from({ length: count }, (_, i) =>\n deriveAddressAtIndex({ accountIndex, change, index: startIndex + i }),\n ),\n );\n\n return addresses.filter((address) => !!address);\n }\n\n const hdHelpers = createHDWalletHelpers({\n chain: utxoChain,\n deriveAddress: deriveAddressAtIndex,\n getBalance: toolbox.getBalance,\n getUtxos: (addr: string) => getUtxoApi(utxoChain).getUtxos({ address: addr, fetchTxHex: true }),\n });\n\n async function transferFromMultipleAddresses({\n utxos,\n recipient,\n assetValue,\n memo,\n feeRate,\n feeOptionKey,\n changeAddress,\n }: {\n utxos: UTXOForMultiAddressTransfer[];\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n feeOptionKey?: FeeOption;\n changeAddress?: string;\n }) {\n if (!utxos.length) {\n throw new SwapKitError(\"wallet_ledger_invalid_params\", {\n message: \"No UTXOs provided for multi-address transfer\",\n });\n }\n\n const txFeeRate = feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n const memoScript = memo ? compileMemo(memo) : null;\n\n const targetOutputs: Array<{ address: string; value: number } | { script: Uint8Array; value: number }> = [\n { address: recipient, value: assetValue.getBaseValue(\"number\") },\n ];\n if (memoScript) {\n targetOutputs.push({ script: memoScript, value: 0 });\n }\n\n const basicUtxos = utxos.map(({ hash, index, value, txHex, witnessUtxo }) => ({\n hash,\n index,\n txHex,\n value,\n witnessUtxo,\n }));\n\n const { inputs: selectedInputs, outputs } = toolbox.accumulative({\n chain: utxoChain,\n feeRate: txFeeRate,\n inputs: basicUtxos,\n outputs: targetOutputs,\n });\n\n if (!(selectedInputs && outputs)) {\n throw new SwapKitError(\"wallet_ledger_connection_error\", {\n message: \"Insufficient balance for multi-address transfer\",\n });\n }\n\n const { Transaction } = await import(\"@swapkit/utxo-signer\");\n const tx = new Transaction({ allowLegacyWitnessUtxo: true, version: 1 });\n const senderAddress = changeAddress || utxos[0]?.address || recipient;\n\n addInputsAndOutputs({\n chain: utxoChain,\n compiledMemo: memoScript,\n inputs: selectedInputs,\n outputs,\n sender: senderAddress,\n tx,\n });\n\n const basePath = getUTXOAccountPath({ chain: utxoChain, derivationPath });\n const inputDerivationPaths = selectedInputs.map((input: { hash: string; index: number }) => {\n const utxoInfo = utxos.find((u) => u.hash === input.hash && u.index === input.index);\n const derivationIndex = utxoInfo?.derivationIndex ?? 0;\n const isChange = utxoInfo?.isChange ?? false;\n const fullPath = [...basePath, Number(isChange), derivationIndex] as unknown as DerivationPathArray;\n return derivationPathToString(fullPath);\n });\n\n if (!signer.signTransactionWithMultiplePaths) {\n throw new SwapKitError(\"wallet_ledger_method_not_supported\", { method: \"signTransactionWithMultiplePaths\" });\n }\n\n const txHex = await signer.signTransactionWithMultiplePaths(tx, selectedInputs, inputDerivationPaths);\n return toolbox.broadcastTx(txHex);\n }\n\n return {\n ...toolbox,\n ...hdHelpers,\n address,\n deriveAddressAtIndex,\n deriveAddresses,\n getExtendedPublicKey,\n getExtendedPublicKeyInfo,\n signAndBroadcastTransaction,\n transfer,\n transferFromMultipleAddresses,\n };\n }\n\n case Chain.Ethereum:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Arc:\n case Chain.Berachain:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Aurora:\n case Chain.Gnosis:\n case Chain.Monad:\n case Chain.XLayer: {\n const { getEvmToolboxAsync } = await import(\"@swapkit/toolboxes/evm\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await getEvmToolboxAsync(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Cosmos: {\n const { createSigningStargateClient, getDefaultChainFee, getMsgSendDenom, getCosmosToolbox } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await getCosmosToolbox(Chain.Cosmos, { signer });\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n if (!assetValue) throw new SwapKitError(\"wallet_ledger_invalid_asset\");\n\n const sendCoinsMessage = {\n amount: [\n {\n amount: assetValue.getBaseValue(\"string\"),\n denom: getMsgSendDenom(`u${assetValue.symbol}`).toLowerCase(),\n },\n ],\n fromAddress: address,\n toAddress: recipient,\n };\n\n const rpcUrl = await getRPCUrl(chain);\n const signingClient = await createSigningStargateClient(rpcUrl, signer, \"0.007uatom\");\n\n const { transactionHash } = await signingClient.signAndBroadcast(\n address,\n [{ typeUrl: \"/cosmos.bank.v1beta1.MsgSend\", value: sendCoinsMessage }],\n getDefaultChainFee(Chain.Cosmos),\n memo,\n );\n\n return transactionHash;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n case Chain.THORChain: {\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = getCosmosToolbox(chain, { signer });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const { sign: signMessage } = signer;\n\n return { ...toolbox, address, signMessage };\n }\n\n case Chain.Near: {\n const { getNearToolbox } = await import(\"@swapkit/toolboxes/near\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const accountId = await signer.getAddress();\n const toolbox = getNearToolbox({ signer });\n\n return { ...toolbox, address: accountId };\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = signer.getAddress();\n const toolbox = getRippleToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Tron: {\n const { getTronToolbox } = await import(\"@swapkit/toolboxes/tron\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = getTronToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Sui: {\n const { getSuiToolbox } = await import(\"@swapkit/toolboxes/sui\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = getSuiToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError(\"wallet_ledger_chain_not_supported\", { chain });\n }\n}\n",
|
|
8
|
+
"import type Transport from \"@ledgerhq/hw-transport\";\nimport {\n type AssetValue,\n Chain,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n filterSupportedChains,\n type GenericTransferParams,\n getRPCUrl,\n NetworkDerivationPath,\n SwapKitError,\n type UTXOChain,\n UTXOScriptType,\n WalletOption,\n} from \"@swapkit/helpers\";\nimport {\n addInputsAndOutputs,\n assertDerivationIndex,\n compileMemo,\n createHDWalletHelpers,\n getNetworkForChain,\n getScriptTypeForAddress,\n getUTXOAccountIndexFromPath,\n getUTXOAccountPath,\n getUTXOAddressPath,\n getUtxoApi,\n type UTXOBuildTxParams,\n type UTXOForMultiAddressTransfer,\n} from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\nimport { createWallet, getWalletSupportedChains, type HardwareExtendedPublicKeyInfo } from \"@swapkit/wallet-core\";\nimport { getLedgerAddress, getLedgerClient } from \"./helpers\";\n\n/**\n * Options passed to `connectLedger` at call time.\n *\n * When `transport` is supplied, the consumer opens and owns its lifecycle —\n * wallet-hardware will use that exact instance for every per-chain Ledger\n * client and will NOT recreate it on `forceReconnect`. When omitted, the\n * default browser flow (WebHID / WebUSB via `navigator.usb`) is used.\n */\nexport type ConnectLedgerOptions = { address?: string; transport?: Transport };\n\nexport const ledgerWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectLedger(\n chains: Chain[],\n derivationPath?: DerivationPathArray,\n { address, transport }: ConnectLedgerOptions = {},\n ) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (!chain) return false;\n\n const resolvedPath = derivationPath ?? (NetworkDerivationPath[chain] as DerivationPathArray | undefined);\n const walletMethods = await getWalletMethods({ address, chain, derivationPath: resolvedPath, transport });\n\n addChain({ ...walletMethods, chain, walletType: WalletOption.LEDGER });\n\n return true;\n },\n directSigningSupport: {\n [Chain.Arbitrum]: true,\n [Chain.Arc]: true,\n [Chain.Aurora]: true,\n [Chain.Avalanche]: true,\n [Chain.Base]: true,\n [Chain.Berachain]: true,\n [Chain.BinanceSmartChain]: true,\n [Chain.Ethereum]: true,\n [Chain.Gnosis]: true,\n [Chain.Monad]: true,\n [Chain.Bitcoin]: true,\n [Chain.BitcoinCash]: true,\n [Chain.Cosmos]: true,\n [Chain.Dash]: true,\n [Chain.Dogecoin]: true,\n [Chain.Litecoin]: true,\n [Chain.Near]: true,\n [Chain.Optimism]: true,\n [Chain.Polygon]: true,\n [Chain.Ripple]: true,\n [Chain.Sui]: true,\n [Chain.THORChain]: true,\n [Chain.Tron]: true,\n [Chain.XLayer]: true,\n // ZEC: still on bespoke signPCZT path\n },\n getExtendedPublicKey: getLedgerExtendedPublicKey,\n name: \"connectLedger\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Arc,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Litecoin,\n Chain.Monad,\n Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Ripple,\n Chain.Sui,\n Chain.THORChain,\n Chain.XLayer,\n Chain.Tron,\n Chain.Zcash,\n ],\n walletType: WalletOption.LEDGER,\n});\n\nexport const LEDGER_SUPPORTED_CHAINS = getWalletSupportedChains(ledgerWallet);\n\n// reduce memo length by removing trade limit\nfunction reduceMemo(memo?: string, affiliateAddress = \"t\") {\n if (!memo?.includes(\"=:\")) return memo;\n\n const removedAffiliate = memo.includes(`:${affiliateAddress}:`) ? memo.split(`:${affiliateAddress}:`)[0] : memo;\n\n return removedAffiliate?.substring(0, removedAffiliate.lastIndexOf(\":\"));\n}\n\nexport async function getLedgerExtendedPublicKey(\n chain: Chain,\n derivationPath?: DerivationPathArray,\n { accountIndex }: { accountIndex?: number } = {},\n): Promise<HardwareExtendedPublicKeyInfo | undefined> {\n if (![Chain.BitcoinCash, Chain.Bitcoin, Chain.Dash, Chain.Dogecoin, Chain.Litecoin, Chain.Zcash].includes(chain)) {\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain, wallet: WalletOption.LEDGER });\n }\n\n const utxoChain = chain as UTXOChain;\n const signer = await getLedgerClient({ chain: utxoChain, derivationPath });\n if (!signer.getExtendedPublicKey) return undefined;\n\n const accountPath = getUTXOAccountPath({ accountIndex, chain: utxoChain, derivationPath });\n const path = derivationPathToString(accountPath);\n const ledgerPath = chain === Chain.Bitcoin || chain === Chain.Litecoin ? path : path.replace(/^m\\//, \"\");\n const xpubVersion = getNetworkForChain(utxoChain).bip32.public;\n try {\n const xpub = await signer.getExtendedPublicKey(ledgerPath, xpubVersion);\n return { accountIndex: getUTXOAccountIndexFromPath(accountPath), path, xpub };\n } finally {\n await (signer as { disconnect?: () => Promise<void> }).disconnect?.();\n }\n}\n\nasync function getWalletMethods({\n address: providedAddress,\n chain,\n derivationPath,\n transport,\n}: ConnectLedgerOptions & { chain: Chain; derivationPath?: DerivationPathArray }) {\n switch (chain) {\n case Chain.BitcoinCash:\n case Chain.Bitcoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin:\n case Chain.Zcash: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const utxoChain = chain as UTXOChain;\n\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n\n const address = providedAddress ?? (await getLedgerAddress({ chain, ledgerClient: signer }));\n const scriptType = getScriptTypeForAddress(address, utxoChain);\n\n // V3 toolbox signer:\n // - BTC uses the modern `ledger-bitcoin` AppClient with native PSBT signing.\n // - LTC/BCH/DOGE/DASH use the legacy `hw-app-btc` adapter that pulls\n // `nonWitnessUtxo` (full prev-tx hex) out of the API PSBT.\n // The Litecoin Ledger app does not support the `ledger-bitcoin`\n // policy APDUs and returns CLA_NOT_SUPPORTED.\n // - ZEC stays on the bespoke `signPCZT` flow for now.\n let toolboxSigner:\n | {\n getAddress: () => Promise<string>;\n publicKey?: Uint8Array;\n signTransaction: (tx: Transaction) => Promise<Transaction>;\n }\n | undefined;\n let publicKey: Uint8Array | undefined;\n let signAndBroadcastLegacyPsbtTransaction: ((tx: Transaction) => Promise<string>) | undefined;\n if (chain === Chain.Bitcoin) {\n const { BitcoinPsbtLedger } = await import(\"./clients/utxo-psbt\");\n const psbtClient = BitcoinPsbtLedger(derivationPath, transport);\n publicKey = scriptType === UTXOScriptType.P2SH_P2WPKH ? await psbtClient.getPublicKey() : undefined;\n toolboxSigner = { getAddress: psbtClient.getAddress, publicKey, signTransaction: psbtClient.signTransaction };\n } else if (\n chain === Chain.BitcoinCash ||\n chain === Chain.Dogecoin ||\n chain === Chain.Dash ||\n chain === Chain.Litecoin\n ) {\n const { createLegacyPsbtSigner, signLegacyPsbtTransaction } = await import(\"./clients/utxo-legacy-adapter\");\n toolboxSigner = createLegacyPsbtSigner({ address, chain: utxoChain, legacyClient: signer });\n signAndBroadcastLegacyPsbtTransaction = async (tx) => {\n const signedTxHex = await signLegacyPsbtTransaction({ chain: utxoChain, legacyClient: signer, tx });\n return toolbox.broadcastTx(signedTxHex);\n };\n }\n\n const toolbox = toolboxSigner\n ? await getUtxoToolbox(utxoChain, { scriptType, signer: toolboxSigner })\n : getUtxoToolbox(utxoChain, { scriptType });\n const signAndBroadcastTransaction = signAndBroadcastLegacyPsbtTransaction ?? toolbox.signAndBroadcastTransaction;\n\n const transfer = async (params: UTXOBuildTxParams) => {\n const feeRate = params.feeRate || (await toolbox.getFeeRates())[FeeOption.Average];\n const memo = [Chain.Bitcoin].includes(chain as typeof Chain.Bitcoin) ? params.memo : reduceMemo(params.memo);\n\n const { tx, inputs } = await toolbox.createTransaction({\n ...params,\n feeRate,\n fetchTxHex: true,\n memo,\n publicKey: params.publicKey ?? publicKey,\n sender: address,\n });\n\n // Legacy Ledger UTXO signing returns finalized raw tx hex, so transfer\n // broadcasts directly instead of routing through toolbox finalization.\n const txHex = await signer.signTransaction(tx as Transaction, inputs);\n const txHash = await toolbox.broadcastTx(txHex);\n\n return txHash;\n };\n\n async function getExtendedPublicKeyInfo({ accountIndex }: { accountIndex?: number } = {}) {\n if (!signer.getExtendedPublicKey) return undefined;\n\n const accountPath = getUTXOAccountPath({ accountIndex, chain: utxoChain, derivationPath });\n const path = derivationPathToString(accountPath);\n const ledgerPath = chain === Chain.Bitcoin || chain === Chain.Litecoin ? path : path.replace(/^m\\//, \"\");\n const xpubVersion = getNetworkForChain(utxoChain).bip32.public;\n const xpub = await signer.getExtendedPublicKey(ledgerPath, xpubVersion);\n\n return { accountIndex: getUTXOAccountIndexFromPath(accountPath), path, xpub };\n }\n\n function getExtendedPublicKey(params: { accountIndex?: number } = {}) {\n return getExtendedPublicKeyInfo(params);\n }\n\n async function deriveAddressAtIndex({\n accountIndex,\n index,\n change = false,\n }: {\n accountIndex?: number;\n index: number;\n change?: boolean;\n }) {\n try {\n const fullPath = getUTXOAddressPath({ accountIndex, chain: utxoChain, change, derivationPath, index });\n\n const indexedSigner = await getLedgerClient({ chain: utxoChain, derivationPath: fullPath, transport });\n const derivedAddress = await getLedgerAddress({ chain: utxoChain, ledgerClient: indexedSigner });\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(fullPath),\n address: derivedAddress,\n change,\n index,\n path: derivationPathToString(fullPath),\n pubkey: \"\",\n };\n } catch {\n return undefined;\n }\n }\n\n async function deriveAddresses({\n accountIndex,\n count,\n startIndex = 0,\n change = false,\n }: {\n accountIndex?: number;\n count: number;\n startIndex?: number;\n change?: boolean;\n }) {\n assertDerivationIndex(\"count\", count);\n assertDerivationIndex(\"startIndex\", startIndex);\n\n const addresses = await Promise.all(\n Array.from({ length: count }, (_, i) =>\n deriveAddressAtIndex({ accountIndex, change, index: startIndex + i }),\n ),\n );\n\n return addresses.filter((address) => !!address);\n }\n\n const hdHelpers = createHDWalletHelpers({\n chain: utxoChain,\n deriveAddress: deriveAddressAtIndex,\n getBalance: toolbox.getBalance,\n getUtxos: (addr: string) => getUtxoApi(utxoChain).getUtxos({ address: addr, fetchTxHex: true }),\n });\n\n async function transferFromMultipleAddresses({\n utxos,\n recipient,\n assetValue,\n memo,\n feeRate,\n feeOptionKey,\n changeAddress,\n }: {\n utxos: UTXOForMultiAddressTransfer[];\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n feeOptionKey?: FeeOption;\n changeAddress?: string;\n }) {\n if (!utxos.length) {\n throw new SwapKitError(\"wallet_ledger_invalid_params\", {\n message: \"No UTXOs provided for multi-address transfer\",\n });\n }\n\n const txFeeRate = feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n const memoScript = memo ? compileMemo(memo) : null;\n\n const targetOutputs: Array<{ address: string; value: number } | { script: Uint8Array; value: number }> = [\n { address: recipient, value: assetValue.getBaseValue(\"number\") },\n ];\n if (memoScript) {\n targetOutputs.push({ script: memoScript, value: 0 });\n }\n\n const basicUtxos = utxos.map(({ hash, index, value, txHex, witnessUtxo }) => ({\n hash,\n index,\n txHex,\n value,\n witnessUtxo,\n }));\n\n const { inputs: selectedInputs, outputs } = toolbox.accumulative({\n chain: utxoChain,\n feeRate: txFeeRate,\n inputs: basicUtxos,\n outputs: targetOutputs,\n });\n\n if (!(selectedInputs && outputs)) {\n throw new SwapKitError(\"wallet_ledger_connection_error\", {\n message: \"Insufficient balance for multi-address transfer\",\n });\n }\n\n const { Transaction } = await import(\"@swapkit/utxo-signer\");\n const tx = new Transaction({ allowLegacyWitnessUtxo: true, version: 1 });\n const senderAddress = changeAddress || utxos[0]?.address || recipient;\n\n addInputsAndOutputs({\n chain: utxoChain,\n compiledMemo: memoScript,\n inputs: selectedInputs,\n outputs,\n sender: senderAddress,\n tx,\n });\n\n const basePath = getUTXOAccountPath({ chain: utxoChain, derivationPath });\n const inputDerivationPaths = selectedInputs.map((input: { hash: string; index: number }) => {\n const utxoInfo = utxos.find((u) => u.hash === input.hash && u.index === input.index);\n const derivationIndex = utxoInfo?.derivationIndex ?? 0;\n const isChange = utxoInfo?.isChange ?? false;\n const fullPath = [...basePath, Number(isChange), derivationIndex] as unknown as DerivationPathArray;\n return derivationPathToString(fullPath);\n });\n\n if (!signer.signTransactionWithMultiplePaths) {\n throw new SwapKitError(\"wallet_ledger_method_not_supported\", { method: \"signTransactionWithMultiplePaths\" });\n }\n\n const txHex = await signer.signTransactionWithMultiplePaths(tx, selectedInputs, inputDerivationPaths);\n return toolbox.broadcastTx(txHex);\n }\n\n return {\n ...toolbox,\n ...hdHelpers,\n address,\n deriveAddressAtIndex,\n deriveAddresses,\n getExtendedPublicKey,\n getExtendedPublicKeyInfo,\n signAndBroadcastTransaction,\n transfer,\n transferFromMultipleAddresses,\n };\n }\n\n case Chain.Ethereum:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Arc:\n case Chain.Berachain:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Aurora:\n case Chain.Gnosis:\n case Chain.Monad:\n case Chain.XLayer: {\n const { getEvmToolboxAsync } = await import(\"@swapkit/toolboxes/evm\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await getEvmToolboxAsync(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Cosmos: {\n const { createSigningStargateClient, getDefaultChainFee, getMsgSendDenom, getCosmosToolbox } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await getCosmosToolbox(Chain.Cosmos, { signer });\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n if (!assetValue) throw new SwapKitError(\"wallet_ledger_invalid_asset\");\n\n const sendCoinsMessage = {\n amount: [\n {\n amount: assetValue.getBaseValue(\"string\"),\n denom: getMsgSendDenom(`u${assetValue.symbol}`).toLowerCase(),\n },\n ],\n fromAddress: address,\n toAddress: recipient,\n };\n\n const rpcUrl = await getRPCUrl(chain);\n const signingClient = await createSigningStargateClient(rpcUrl, signer, \"0.007uatom\");\n\n const { transactionHash } = await signingClient.signAndBroadcast(\n address,\n [{ typeUrl: \"/cosmos.bank.v1beta1.MsgSend\", value: sendCoinsMessage }],\n getDefaultChainFee(Chain.Cosmos),\n memo,\n );\n\n return transactionHash;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n case Chain.THORChain: {\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = getCosmosToolbox(chain, { signer });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const { sign: signMessage } = signer;\n\n return { ...toolbox, address, signMessage };\n }\n\n case Chain.Near: {\n const { getNearToolbox } = await import(\"@swapkit/toolboxes/near\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const accountId = await signer.getAddress();\n const toolbox = getNearToolbox({ signer });\n\n return { ...toolbox, address: accountId };\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = signer.getAddress();\n const toolbox = getRippleToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Tron: {\n const { getTronToolbox } = await import(\"@swapkit/toolboxes/tron\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = getTronToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Sui: {\n const { getSuiToolbox } = await import(\"@swapkit/toolboxes/sui\");\n const signer = await getLedgerClient({ chain, derivationPath, transport });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = getSuiToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError(\"wallet_ledger_chain_not_supported\", { chain });\n }\n}\n",
|
|
9
9
|
"import { Chain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\n\nimport type { getNearLedgerClient } from \"../clients/near\";\nimport type { SuiLedger } from \"../clients/sui\";\nimport type { TronLedger } from \"../clients/tron\";\nimport type { XRPLedger } from \"../clients/xrp\";\nimport type { LEDGER_SUPPORTED_CHAINS } from \"../index\";\nimport type { CosmosLedgerClients, EVMLedgerClients, UTXOLedgerClients } from \"../types\";\nimport type { getLedgerClient } from \"./getLedgerClient\";\n\nexport const getLedgerAddress = async <\n T extends (typeof LEDGER_SUPPORTED_CHAINS)[number],\n L extends Awaited<ReturnType<typeof getLedgerClient<T>>>,\n>({\n chain,\n ledgerClient,\n}: {\n chain: T;\n ledgerClient: L;\n}) => {\n if (!ledgerClient) return \"\";\n\n switch (chain) {\n case Chain.Cosmos:\n case Chain.THORChain: {\n return (ledgerClient as CosmosLedgerClients).connect();\n }\n\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Polygon:\n case Chain.Arbitrum:\n case Chain.Arc:\n case Chain.Berachain:\n case Chain.Optimism:\n case Chain.Base:\n case Chain.Aurora:\n case Chain.Gnosis:\n case Chain.Monad:\n case Chain.XLayer: {\n return (ledgerClient as EVMLedgerClients).getAddress();\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin:\n case Chain.Zcash: {\n const ledger = ledgerClient as UTXOLedgerClients;\n await ledger.connect();\n const address = await ledger.getAddress();\n\n return chain === Chain.BitcoinCash ? address.replace(\"bitcoincash:\", \"\") : address;\n }\n\n case Chain.Near: {\n return await (ledgerClient as Awaited<ReturnType<typeof getNearLedgerClient>>).getAddress();\n }\n\n case Chain.Ripple: {\n return (ledgerClient as Awaited<ReturnType<typeof XRPLedger>>).getAddress();\n }\n\n case Chain.Tron: {\n return (ledgerClient as Awaited<ReturnType<typeof TronLedger>>).getAddress();\n }\n\n case Chain.Sui: {\n return (ledgerClient as Awaited<ReturnType<typeof SuiLedger>>).connect();\n }\n\n default:\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain, wallet: WalletOption.LEDGER });\n }\n};\n",
|
|
10
10
|
"import type Transport from \"@ledgerhq/hw-transport\";\nimport { Chain, type DerivationPathArray, type EVMChain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\n\nimport { CosmosLedger } from \"../clients/cosmos\";\nimport {\n ArbitrumLedger,\n ArcLedger,\n AuroraLedger,\n AvalancheLedger,\n BaseLedger,\n BerachainLedger,\n BinanceSmartChainLedger,\n EthereumLedger,\n GnosisLedger,\n MonadLedger,\n OptimismLedger,\n PolygonLedger,\n XLayerLedger,\n} from \"../clients/evm\";\nimport { getNearLedgerClient } from \"../clients/near\";\nimport { SuiLedger } from \"../clients/sui\";\nimport { THORChainLedger } from \"../clients/thorchain\";\nimport { TronLedger } from \"../clients/tron\";\nimport {\n BitcoinCashLedger,\n BitcoinLedger,\n DashLedger,\n DogecoinLedger,\n LitecoinLedger,\n ZcashLedger,\n} from \"../clients/utxo\";\nimport { XRPLedger } from \"../clients/xrp\";\n\ntype LedgerSignerMap = {\n [Chain.Arbitrum]: ReturnType<typeof ArbitrumLedger>;\n [Chain.Arc]: ReturnType<typeof ArcLedger>;\n [Chain.Aurora]: ReturnType<typeof AuroraLedger>;\n [Chain.Avalanche]: ReturnType<typeof AvalancheLedger>;\n [Chain.Base]: ReturnType<typeof BaseLedger>;\n [Chain.Berachain]: ReturnType<typeof BerachainLedger>;\n [Chain.BinanceSmartChain]: ReturnType<typeof BinanceSmartChainLedger>;\n [Chain.BitcoinCash]: ReturnType<typeof BitcoinCashLedger>;\n [Chain.Bitcoin]: ReturnType<typeof BitcoinLedger>;\n [Chain.Cosmos]: CosmosLedger;\n [Chain.Dash]: ReturnType<typeof DashLedger>;\n [Chain.Dogecoin]: ReturnType<typeof DogecoinLedger>;\n [Chain.Ethereum]: ReturnType<typeof EthereumLedger>;\n [Chain.Gnosis]: ReturnType<typeof GnosisLedger>;\n [Chain.Litecoin]: ReturnType<typeof LitecoinLedger>;\n [Chain.Monad]: ReturnType<typeof MonadLedger>;\n [Chain.Near]: ReturnType<typeof getNearLedgerClient>;\n [Chain.Optimism]: ReturnType<typeof OptimismLedger>;\n [Chain.Polygon]: ReturnType<typeof PolygonLedger>;\n [Chain.Ripple]: ReturnType<typeof XRPLedger>;\n [Chain.Sui]: ReturnType<typeof SuiLedger>;\n [Chain.THORChain]: THORChainLedger;\n [Chain.Tron]: ReturnType<typeof TronLedger>;\n [Chain.XLayer]: ReturnType<typeof XLayerLedger>;\n [Chain.Zcash]: ReturnType<typeof ZcashLedger>;\n};\n\ntype LedgerSupportedChain = keyof LedgerSignerMap;\n\nexport const getLedgerClient = async <T extends LedgerSupportedChain>({\n chain,\n derivationPath,\n transport,\n}: {\n chain: T;\n derivationPath?: DerivationPathArray;\n transport?: Transport;\n}): Promise<LedgerSignerMap[T]> => {\n const { match } = await import(\"ts-pattern\");\n\n return (\n match(chain as LedgerSupportedChain)\n .returnType<Promise<LedgerSignerMap[T]>>()\n .with(Chain.THORChain, () =>\n Promise.resolve(new THORChainLedger(derivationPath, transport) as LedgerSignerMap[T]),\n )\n .with(Chain.Cosmos, () => Promise.resolve(new CosmosLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Bitcoin, () => Promise.resolve(BitcoinLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.BitcoinCash, () =>\n Promise.resolve(BitcoinCashLedger(derivationPath, transport) as LedgerSignerMap[T]),\n )\n .with(Chain.Dash, () => Promise.resolve(DashLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Dogecoin, () => Promise.resolve(DogecoinLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Litecoin, () => Promise.resolve(LitecoinLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Zcash, () => Promise.resolve(ZcashLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Ripple, () => Promise.resolve(XRPLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Tron, () => Promise.resolve(TronLedger(derivationPath, transport) as LedgerSignerMap[T]))\n .with(Chain.Sui, () => Promise.resolve(SuiLedger(derivationPath, transport) as LedgerSignerMap[T]))\n // @ts-expect-error\n .with(Chain.Near, () => {\n return Promise.resolve(getNearLedgerClient(derivationPath, transport));\n })\n .with(\n Chain.Arbitrum,\n Chain.Arc,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Monad,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Base,\n Chain.XLayer,\n async () => {\n const { getProvider } = await import(\"@swapkit/toolboxes/evm\");\n const params = { derivationPath, provider: await getProvider(chain as EVMChain), transport };\n\n return match(chain as Chain)\n .with(Chain.BinanceSmartChain, () => BinanceSmartChainLedger(params) as LedgerSignerMap[T])\n .with(Chain.Avalanche, () => AvalancheLedger(params) as LedgerSignerMap[T])\n .with(Chain.Arbitrum, () => ArbitrumLedger(params) as LedgerSignerMap[T])\n .with(Chain.Arc, () => ArcLedger(params) as LedgerSignerMap[T])\n .with(Chain.Berachain, () => BerachainLedger(params) as LedgerSignerMap[T])\n .with(Chain.Optimism, () => OptimismLedger(params) as LedgerSignerMap[T])\n .with(Chain.Polygon, () => PolygonLedger(params) as LedgerSignerMap[T])\n .with(Chain.Base, () => BaseLedger(params) as LedgerSignerMap[T])\n .with(Chain.Aurora, () => AuroraLedger(params) as LedgerSignerMap[T])\n .with(Chain.Gnosis, () => GnosisLedger(params) as LedgerSignerMap[T])\n .with(Chain.Monad, () => MonadLedger(params) as LedgerSignerMap[T])\n .with(Chain.XLayer, () => XLayerLedger(params) as LedgerSignerMap[T])\n .otherwise(() => EthereumLedger(params) as LedgerSignerMap[T]);\n },\n )\n .otherwise(() => {\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain, wallet: WalletOption.LEDGER });\n })\n );\n};\n",
|
|
11
11
|
"import type Transport from \"@ledgerhq/hw-transport\";\nimport {\n type DerivationPathArray,\n derivationPathToString,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport { CosmosLedgerInterface } from \"../interfaces/CosmosLedgerInterface\";\n\nexport class CosmosLedger extends CosmosLedgerInterface {\n private pubKey: string | null = null;\n\n derivationPath: string;\n\n constructor(derivationPath: DerivationPathArray = NetworkDerivationPath.GAIA, transport?: Transport) {\n super(transport);\n this.chain = \"cosmos\";\n this.derivationPath = derivationPathToString(derivationPath);\n }\n\n connect = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n const { publicKey, address } = await this.getAddressAndPubKey();\n\n this.pubKey = Buffer.from(publicKey, \"hex\").toString(\"base64\");\n\n return address;\n };\n\n getAddressAndPubKey = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const response = await this.ledgerApp.getAddress(this.derivationPath, this.chain);\n\n return response;\n };\n\n signTransaction = async (rawTx: string, sequence = \"0\") => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const { return_code, error_message, signature } = await this.ledgerApp.sign(this.derivationPath, rawTx);\n\n if (!this.pubKey) throw new SwapKitError(\"wallet_ledger_pubkey_not_found\");\n\n this.validateResponse(return_code, error_message);\n\n return [{ pub_key: { type: \"tendermint/PubKeySecp256k1\", value: this.pubKey }, sequence, signature }];\n };\n\n signAmino = async (signerAddress: string, signDoc: any): Promise<any> => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const accounts = await this.getAccounts();\n const accountIndex = accounts.findIndex((account) => account.address === signerAddress);\n\n if (accountIndex === -1) {\n throw new SwapKitError(\"wallet_ledger_address_not_found\", { address: signerAddress });\n }\n\n const importedAmino = await import(\"@cosmjs/amino\");\n const encodeSecp256k1Signature =\n importedAmino.encodeSecp256k1Signature ?? importedAmino.default?.encodeSecp256k1Signature;\n const serializeSignDoc = importedAmino.serializeSignDoc ?? importedAmino.default?.serializeSignDoc;\n const importedCrypto = await import(\"@cosmjs/crypto\");\n const Secp256k1Signature = importedCrypto.Secp256k1Signature ?? importedCrypto.default?.Secp256k1Signature;\n\n const message = serializeSignDoc(signDoc);\n const signature = await this.ledgerApp.sign(this.derivationPath, message);\n\n this.validateResponse(signature.return_code, signature.error_message);\n\n const secpSignature = Secp256k1Signature.fromDer(signature.signature).toFixedLength();\n\n return { signature: encodeSecp256k1Signature(accounts[0].pubkey, secpSignature), signed: signDoc };\n };\n\n getAccounts = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const addressAndPubKey = await this.getAddressAndPubKey();\n return [\n { address: addressAndPubKey.address, algo: \"secp256k1\", pubkey: Buffer.from(addressAndPubKey.publicKey, \"hex\") },\n ] as any[];\n };\n}\n",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"import Xrp from \"@ledgerhq/hw-app-xrp\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport { Chain, type DerivationPathArray, derivationPathToString, NetworkDerivationPath } from \"@swapkit/helpers\";\nimport type { RippleTransaction } from \"@swapkit/toolboxes/ripple\";\nimport { encode } from \"ripple-binary-codec\";\nimport type { Payment } from \"xrpl\";\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\nconst TF_FULLY_CANONICAL_SIG = 2147483648;\n\nfunction cleanTransactionObject(obj: Record<string, any>) {\n const cleaned: Record<string, any> = {};\n for (const key in obj) {\n if (obj[key] !== null && obj[key] !== undefined) {\n cleaned[key] = obj[key];\n }\n }\n return cleaned;\n}\n\nfunction establishConnection(transport: Transport) {\n return new Xrp(transport);\n}\n\nexport const XRPLedger = async (derivationPath?: DerivationPathArray, injectedTransport?: Transport) => {\n const path = derivationPathToString(derivationPath || NetworkDerivationPath[Chain.Ripple]);\n const transport = injectedTransport ?? (await getLedgerTransport());\n const xrpInstance = establishConnection(transport);\n\n const { address, publicKey } = await xrpInstance.getAddress(path);\n\n async function signTransaction(transaction: Payment | RippleTransaction) {\n const { hashes } = await import(\"xrpl\");\n const cleanedTxWithPubKey = cleanTransactionObject(transaction);\n const transactionJSON = {\n ...cleanedTxWithPubKey,\n Flags: transaction.Flags || TF_FULLY_CANONICAL_SIG,\n SigningPubKey: publicKey.toUpperCase(),\n };\n\n const transactionToSignOnLedger = encode(transactionJSON);\n const txnSignature = await xrpInstance.signTransaction(path, transactionToSignOnLedger);\n const tx_blob = encode({ ...transactionJSON, TxnSignature: txnSignature });\n const hash = hashes.hashSignedTx(tx_blob);\n\n return { hash, tx_blob };\n }\n\n return { getAddress: () => address, signTransaction };\n};\n",
|
|
25
25
|
"export { getLedgerAddress } from \"./getLedgerAddress\";\nexport { getLedgerClient } from \"./getLedgerClient\";\nexport { getLedgerTransport } from \"./getLedgerTransport\";\n"
|
|
26
26
|
],
|
|
27
|
-
"mappings": "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",
|
|
28
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "E7B784760A0A98F864756E2164756E21",
|
|
29
29
|
"names": []
|
|
30
30
|
}
|