@swapkit/wallet-hardware 4.11.0 → 5.0.1

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.
Files changed (41) hide show
  1. package/dist/{chunk-n05bv2n5.js → chunk-1jpcb30j.js} +3 -3
  2. package/dist/{chunk-n05bv2n5.js.map → chunk-1jpcb30j.js.map} +1 -1
  3. package/dist/{chunk-9gy0xve4.js → chunk-20wx60bn.js} +3 -3
  4. package/dist/{chunk-9gy0xve4.js.map → chunk-20wx60bn.js.map} +1 -1
  5. package/dist/chunk-4tbtxdxa.js +5 -0
  6. package/dist/chunk-4tbtxdxa.js.map +10 -0
  7. package/dist/chunk-7v7cgm69.js +4 -0
  8. package/dist/chunk-7v7cgm69.js.map +10 -0
  9. package/dist/{chunk-3yr76n9s.js → chunk-83g13ck6.js} +3 -3
  10. package/dist/{chunk-3yr76n9s.js.map → chunk-83g13ck6.js.map} +1 -1
  11. package/dist/{chunk-bwf31zxr.js → chunk-h2r568rz.js} +3 -3
  12. package/dist/{chunk-bwf31zxr.js.map → chunk-h2r568rz.js.map} +1 -1
  13. package/dist/{chunk-vwv6z2mk.js → chunk-xkh15edk.js} +2 -2
  14. package/dist/keepkey/index.cjs +2 -2
  15. package/dist/keepkey/index.cjs.map +3 -3
  16. package/dist/keepkey/index.js +2 -2
  17. package/dist/keepkey/index.js.map +3 -3
  18. package/dist/ledger/index.cjs +2 -2
  19. package/dist/ledger/index.cjs.map +6 -5
  20. package/dist/ledger/index.js +2 -2
  21. package/dist/ledger/index.js.map +3 -3
  22. package/dist/trezor/index.cjs +2 -2
  23. package/dist/trezor/index.cjs.map +5 -4
  24. package/dist/trezor/index.js +2 -2
  25. package/dist/trezor/index.js.map +3 -3
  26. package/dist/types/helpers/psbt.d.ts +9 -0
  27. package/dist/types/helpers/psbt.d.ts.map +1 -0
  28. package/dist/types/keepkey/chains/utxo.d.ts.map +1 -1
  29. package/dist/types/ledger/clients/utxo-psbt.d.ts +2 -0
  30. package/dist/types/ledger/clients/utxo-psbt.d.ts.map +1 -1
  31. package/dist/types/ledger/index.d.ts.map +1 -1
  32. package/dist/types/trezor/index.d.ts.map +1 -1
  33. package/package.json +4 -4
  34. package/src/helpers/psbt.ts +26 -0
  35. package/src/keepkey/chains/utxo.ts +5 -2
  36. package/src/ledger/clients/utxo-psbt.ts +34 -1
  37. package/src/ledger/index.ts +14 -4
  38. package/src/trezor/index.ts +13 -6
  39. package/dist/chunk-gwx23jdp.js +0 -4
  40. package/dist/chunk-gwx23jdp.js.map +0 -10
  41. /package/dist/{chunk-vwv6z2mk.js.map → chunk-xkh15edk.js.map} +0 -0
@@ -7,9 +7,9 @@
7
7
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n derivationPathToString,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest, TypedDataDomain, TypedDataField } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ninterface KeepKeyEVMSignerParams {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n}\n\nexport class KeepKeySigner extends AbstractSigner {\n private sdk: KeepKeySdk;\n private chain: Chain;\n private derivationPath: DerivationPathArray;\n private address: string;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ sdk, chain, derivationPath, provider }: KeepKeyEVMSignerParams) {\n super();\n this.sdk = sdk;\n this.chain = chain;\n this.derivationPath = derivationPath || NetworkDerivationPath.ETH;\n this.address = \"\";\n this.provider = provider;\n }\n\n signTypedData = async (\n domain: TypedDataDomain,\n types: Record<string, TypedDataField[]>,\n value: Record<string, unknown>,\n explicitPrimaryType?: string,\n ) => {\n const { buildEIP712DomainType } = await import(\"@swapkit/toolboxes/evm\");\n const { TypedDataEncoder } = await import(\"ethers\");\n\n const { EIP712Domain: _, ...filteredTypes } = types;\n const primaryType = explicitPrimaryType ?? TypedDataEncoder.from(filteredTypes).primaryType;\n const domainTypes = buildEIP712DomainType(domain);\n\n const address = await this.getAddress();\n const result = await this.sdk.eth.ethSignTypedData({\n address,\n typedData: {\n domain: domain as Record<string, unknown>,\n message: value,\n primaryType,\n types: { EIP712Domain: domainTypes, ...filteredTypes },\n },\n });\n\n if (typeof result !== \"string\") {\n throw new SwapKitError(\"wallet_keepkey_method_not_supported\", { method: \"signTypedData\" });\n }\n\n return result.startsWith(\"0x\") ? result : `0x${result}`;\n };\n\n getAddress = async () => {\n if (this.address) return this.address;\n const { address } = await this.sdk.address.ethereumGetAddress({\n address_n: bip32ToAddressNList(derivationPathToString(this.derivationPath)),\n });\n\n this.address = address;\n return address;\n };\n\n signMessage = (message: string) => this.sdk.eth.ethSign({ address: this.address, message }) as Promise<string>;\n\n signTransaction = async ({\n to,\n value,\n gasLimit,\n nonce,\n data,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n }: TransactionRequest) => {\n if (!to) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing to address\" });\n if (!gasLimit) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing gasLimit\" });\n if (!data) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing data\" });\n\n const isEIP1559 = !!((maxFeePerGas || maxPriorityFeePerGas) && !gasPrice);\n if (isEIP1559 && !maxFeePerGas)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing maxFeePerGas\" });\n if (isEIP1559 && !maxPriorityFeePerGas)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing maxPriorityFeePerGas\" });\n if (!(isEIP1559 || gasPrice))\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing gasPrice\" });\n\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const nonceValue = nonce\n ? BigInt(nonce)\n : BigInt(await this.provider.getTransactionCount(await this.getAddress(), \"pending\"));\n\n const input = {\n addressNList: [2147483692, 2147483708, 2147483648, 0, 0],\n chainId: toHexString(BigInt(ChainToChainId[this.chain])),\n data,\n from: this.address,\n gas: toHexString(BigInt(gasLimit)),\n nonce: toHexString(nonceValue),\n to: to.toString(),\n value: toHexString(BigInt(value || 0)),\n ...(isEIP1559 && {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || \"0\")),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || \"0\")),\n }),\n ...(!isEIP1559 && {\n // Fixed syntax error and structure here\n gasPrice: toHexString(BigInt(gasPrice?.toString() || \"0\")),\n }),\n };\n const responseSign = await this.sdk.eth.ethSignTransaction(input);\n return responseSign.serialized;\n };\n\n sendTransaction = async (tx: TransactionRequest): Promise<any> => {\n if (!this.provider) throw new SwapKitError(\"wallet_keepkey_no_provider\");\n\n const signedTxHex = await this.signTransaction(tx);\n\n return await this.provider.broadcastTransaction(signedTxHex);\n };\n\n connect = (provider: Provider) =>\n new KeepKeySigner({ chain: this.chain, derivationPath: this.derivationPath, provider, sdk: this.sdk });\n}\n",
8
8
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n type AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericTransferParams,\n getRPCUrl,\n MAYAConfig,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/toolboxes/cosmos\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ntype SignTransactionParams = { assetValue: AssetValue; recipient?: string; sender: string; memo: string | undefined };\n\nexport async function mayachainWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const { createStargateClient, getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const toolbox = await getCosmosToolbox(Chain.Maya);\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.MAYA}/0`;\n\n const { address: fromAddress } = (await sdk.address.mayachainGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const signTransaction = async ({ assetValue, recipient, sender, memo }: SignTransactionParams) => {\n const importedAmino = await import(\"@cosmjs/amino\");\n const makeSignDoc = importedAmino.makeSignDoc ?? importedAmino.default?.makeSignDoc;\n const { getDenomWithChain } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const account = await toolbox.getAccount(sender);\n if (!account) throw new SwapKitError(\"wallet_keepkey_account_not_found\");\n const { accountNumber, sequence = 0 } = account;\n const amount = assetValue.getBaseValue(\"string\");\n\n const isTransfer = recipient && recipient !== \"\";\n\n // TODO check if we can move to toolbox created msg\n const msg = isTransfer\n ? {\n type: \"mayachain/MsgSend\",\n value: {\n amount: [{ amount, denom: assetValue.symbol.toLowerCase() }],\n from_address: sender,\n to_address: recipient,\n },\n }\n : {\n type: \"mayachain/MsgDeposit\",\n value: { coins: [{ amount, asset: getDenomWithChain(assetValue) }], memo, signer: sender },\n };\n\n const signDoc = makeSignDoc(\n [msg],\n { amount: [], gas: \"500000000\" },\n MAYAConfig.chainId,\n memo,\n accountNumber?.toString(),\n sequence,\n );\n\n const sdkMethod = isTransfer ? sdk.mayachain.mayachainSignAminoTransfer : sdk.mayachain.mayachainSignAminoDeposit;\n\n // @ts-expect-error TC\n const signedTx = await sdkMethod({ signDoc, signerAddress: sender });\n const decodedBytes = atob(signedTx.serialized);\n return new Uint8Array(decodedBytes.length).map((_, i) => decodedBytes.charCodeAt(i));\n };\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n const rpcUrl = await getRPCUrl(Chain.Maya);\n const stargateClient = await createStargateClient(rpcUrl);\n const signedTransaction = await signTransaction({ assetValue, memo, recipient, sender: fromAddress });\n const { transactionHash } = await stargateClient.broadcastTx(signedTransaction);\n\n return transactionHash;\n };\n\n const deposit = async ({ assetValue, memo }: ThorchainDepositParams) => {\n const rpcUrl = await getRPCUrl(Chain.Maya);\n const stargateClient = await createStargateClient(rpcUrl);\n const signedTransaction = await signTransaction({ assetValue, memo, sender: fromAddress });\n const { transactionHash } = await stargateClient.broadcastTx(signedTransaction);\n\n return transactionHash;\n };\n\n return { ...toolbox, address: fromAddress, deposit, transfer };\n}\n",
9
9
  "import type { KeepKeySdk, TypesThorchainSignDocDeposit, TypesThorchainSignDocTransfer } from \"@keepkey/keepkey-sdk\";\nimport {\n type AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericTransferParams,\n getRPCUrl,\n SwapKitError,\n THORConfig,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/toolboxes/cosmos\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ntype SignTransactionParams = { assetValue: AssetValue; recipient?: string; sender: string; memo: string | undefined };\n\nexport async function thorchainWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const importedAmino = await import(\"@cosmjs/amino\");\n const makeSignDoc = importedAmino.makeSignDoc ?? importedAmino.default?.makeSignDoc;\n const { buildAminoMsg, getDefaultChainFee, createStargateClient, getCosmosToolbox } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.THOR}/0`;\n\n const { address: fromAddress } = (await sdk.address.thorchainGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const signTransaction = async ({ assetValue, recipient, sender, memo }: SignTransactionParams) => {\n const account = await toolbox.getAccount(sender);\n if (!account) throw new SwapKitError(\"wallet_keepkey_account_not_found\");\n const { accountNumber, sequence = 0 } = account;\n\n const isTransfer = recipient && recipient !== \"\";\n const msg = buildAminoMsg({ assetValue, memo, recipient, sender });\n\n const signDoc = makeSignDoc(\n [msg],\n getDefaultChainFee(Chain.THORChain),\n THORConfig.chainId,\n memo,\n accountNumber?.toString(),\n sequence,\n );\n\n const signedTx = isTransfer\n ? await sdk.thorchain.thorchainSignAminoTransfer({\n signDoc: signDoc as TypesThorchainSignDocTransfer,\n signerAddress: sender,\n })\n : await sdk.thorchain.thorchainSignAminoDeposit({\n signDoc: signDoc as TypesThorchainSignDocDeposit,\n signerAddress: sender,\n });\n const decodedBytes = atob(signedTx.serialized);\n return new Uint8Array(decodedBytes.length).map((_, i) => decodedBytes.charCodeAt(i));\n };\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n const rpcUrl = await getRPCUrl(Chain.THORChain);\n const stargateClient = await createStargateClient(rpcUrl);\n const signedTransaction = await signTransaction({ assetValue, memo, recipient, sender: fromAddress });\n const { transactionHash } = await stargateClient.broadcastTx(signedTransaction);\n\n return transactionHash;\n };\n\n const deposit = async ({ assetValue, memo }: ThorchainDepositParams) => {\n const rpcUrl = await getRPCUrl(Chain.THORChain);\n const stargateClient = await createStargateClient(rpcUrl);\n const signedTransaction = await signTransaction({ assetValue, memo, sender: fromAddress });\n const { transactionHash } = await stargateClient.broadcastTx(signedTransaction);\n\n return transactionHash;\n };\n\n // const signMessage = async (message: string) => {\n // const stargateClient = await createStargateClient(RPCUrl.THORChain);\n // // return signedTx;\n // };\n\n return { ...toolbox, address: fromAddress, deposit, transfer };\n}\n",
10
- "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n type GenericTransferParams,\n SwapKitError,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport {\n assertDerivationIndex,\n createHDWalletHelpers,\n getNetworkForChain,\n getUTXOAccountIndexFromPath,\n getUTXOAccountPath,\n getUTXOAddressPath,\n getUtxoApi,\n stripToCashAddress,\n type UTXOToolboxes,\n} from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\nimport { bip32ToAddressNList, ChainToKeepKeyName } from \"../coins\";\n\ninterface KeepKeyInputObject {\n addressNList: number[];\n scriptType: string;\n amount: string;\n vout: number;\n txid: string;\n hex: string;\n}\n\ntype KeepKeyUTXOWalletMethods = Record<string, unknown> & { address: string };\n\nexport async function utxoWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Exclude<UTXOChain, typeof Chain.Zcash>;\n derivationPath?: DerivationPathArray;\n}): Promise<KeepKeyUTXOWalletMethods> {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n // This might not work for BCH\n const toolbox = await getUtxoToolbox(chain);\n const scriptType = [Chain.Bitcoin, Chain.Litecoin].includes(chain as typeof Chain.Bitcoin)\n ? (\"p2wpkh\" as const)\n : (\"p2pkh\" as const);\n\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath[chain]}/0`;\n\n const addressInfo = {\n address_n: bip32ToAddressNList(derivationPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n };\n\n const walletAddress: string = (await sdk.address.utxoGetAddress(addressInfo)).address;\n const network = getNetworkForChain(chain);\n\n const signTransaction = async (tx: Transaction, inputs: KeepKeyInputObject[], memo = \"\") => {\n const outputs: any[] = [];\n\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const address = tx.getOutputAddress(i, network);\n const value = Number(output.amount);\n\n if (address === walletAddress) {\n outputs.push({\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n });\n } else if (address) {\n const outputAddress = chain === Chain.BitcoinCash ? stripToCashAddress(address) : address;\n\n if (outputAddress) {\n outputs.push({ address: outputAddress, addressType: \"spend\", amount: value });\n }\n }\n }\n\n const removeNullAndEmptyObjectsFromArray = (arr: any[]) => {\n return arr.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0);\n };\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs,\n opReturnData: memo,\n outputs: removeNullAndEmptyObjectsFromArray(outputs),\n });\n\n return responseSign.serializedTx?.toString();\n };\n\n const transfer = async ({ recipient, feeOptionKey, feeRate, memo, ...rest }: GenericTransferParams) => {\n if (!walletAddress)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"From address must be provided\" });\n if (!recipient)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Recipient address must be provided\" });\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { tx, inputs: rawInputs } = await createTxMethod({\n ...rest,\n feeRate: feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast],\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputs = rawInputs.map(({ value, index, hash, txHex }) => ({\n //@TODO don't hardcode master, lookup on blockbook what input this is for and what path that address is!\n addressNList: addressInfo.address_n,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: index,\n }));\n\n const txHex = await signTransaction(tx, inputs, memo);\n return toolbox.broadcastTx(txHex);\n };\n\n const signTransactionWithMultipleInputs = async (\n tx: Transaction,\n inputs: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n }>,\n memo = \"\",\n ) => {\n const accountAddressN = bip32ToAddressNList(\n derivationPath\n ? derivationPathToString(derivationPath.slice(0, 3) as unknown as DerivationPathArray)\n : DerivationPath[chain],\n );\n\n type KeepKeyOutput =\n | { addressNList: number[]; addressType: \"change\"; amount: number; isChange: true; scriptType: string }\n | { address: string; addressType: \"spend\"; amount: number };\n\n const outputs: KeepKeyOutput[] = [];\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const outputAddress = tx.getOutputAddress(i, network);\n const value = Number(output.amount);\n\n if (outputAddress === walletAddress) {\n outputs.push({\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n });\n } else if (outputAddress) {\n const finalAddress = chain === Chain.BitcoinCash ? stripToCashAddress(outputAddress) : outputAddress;\n if (finalAddress) {\n outputs.push({ address: finalAddress, addressType: \"spend\", amount: value });\n }\n }\n }\n\n const keepKeyInputs = inputs.map(({ hash, index: inputIndex, value, txHex, derivationIndex, isChange }) => {\n const changePath = isChange ? 1 : 0;\n const inputAddressN = [...accountAddressN, changePath, derivationIndex];\n return {\n addressNList: inputAddressN,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: inputIndex,\n };\n });\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs: keepKeyInputs,\n opReturnData: memo,\n outputs: outputs.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0),\n });\n\n return responseSign.serializedTx?.toString() || \"\";\n };\n\n const transferFromMultipleAddresses = async ({\n utxos,\n recipient,\n assetValue,\n memo,\n feeRate,\n feeOptionKey,\n }: {\n utxos: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n address: string;\n }>;\n recipient: string;\n assetValue: { getBaseValue: (unit: string) => number; chain: string };\n memo?: string;\n feeRate?: number;\n feeOptionKey?: (typeof FeeOption)[keyof typeof FeeOption];\n }) => {\n const txFeeRate = feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { tx, inputs: selectedInputs } = await createTxMethod({\n assetValue: assetValue as any,\n feeRate: txFeeRate,\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputsWithDerivation = selectedInputs.map(\n (input: { hash: string; index: number; value: number; txHex?: string }) => {\n const utxoInfo = utxos.find((u) => u.hash === input.hash && u.index === input.index);\n return { ...input, derivationIndex: utxoInfo?.derivationIndex ?? 0, isChange: utxoInfo?.isChange ?? false };\n },\n );\n\n const signedTxHex = await signTransactionWithMultipleInputs(tx, inputsWithDerivation, memo);\n return toolbox.broadcastTx(signedTxHex);\n };\n\n async function getExtendedPublicKeyInfo({ accountIndex }: { accountIndex?: number } = {}) {\n try {\n const resolvedAccountPath = getUTXOAccountPath({ accountIndex, chain, derivationPath });\n const resolvedAccountPathString = derivationPathToString(resolvedAccountPath);\n const path = {\n address_n: bip32ToAddressNList(resolvedAccountPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n showDisplay: false,\n symbol: chain.toUpperCase(),\n };\n\n const responsePubkey = await sdk.system.info.getPublicKey(path);\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(resolvedAccountPath),\n path: resolvedAccountPathString,\n xpub: responsePubkey.xpub,\n };\n } catch (error) {\n throw new SwapKitError(\"wallet_keepkey_failed_to_get_public_key\", {\n chain,\n error: error instanceof Error ? error.message : \"Unknown error\",\n });\n }\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 assertDerivationIndex(\"index\", index);\n const fullPath = getUTXOAddressPath({ accountIndex, chain, change, derivationPath, index });\n const fullPathString = derivationPathToString(fullPath);\n\n const result = await sdk.address.utxoGetAddress({\n address_n: bip32ToAddressNList(fullPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n });\n\n let finalAddress = result.address;\n if (chain === Chain.BitcoinCash) {\n finalAddress = stripToCashAddress(result.address);\n }\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(fullPath),\n address: finalAddress,\n change,\n index,\n path: fullPathString,\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) => deriveAddressAtIndex({ accountIndex, change, index: startIndex + i })),\n );\n\n return addresses.filter((address) => !!address);\n }\n\n const hdHelpers = createHDWalletHelpers({\n chain,\n deriveAddress: deriveAddressAtIndex,\n getBalance: toolbox.getBalance,\n getUtxos: (address: string) => getUtxoApi(chain).getUtxos({ address, fetchTxHex: true }),\n });\n\n return {\n ...toolbox,\n ...hdHelpers,\n address: walletAddress,\n deriveAddressAtIndex,\n deriveAddresses,\n getExtendedPublicKey,\n getExtendedPublicKeyInfo,\n signTransaction,\n signTransactionWithMultipleInputs,\n transfer,\n transferFromMultipleAddresses,\n };\n}\n"
10
+ "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n type GenericTransferParams,\n SwapKitError,\n type UTXOChain,\n UTXOScriptType,\n} from \"@swapkit/helpers\";\nimport {\n assertDerivationIndex,\n createHDWalletHelpers,\n getNetworkForChain,\n getUTXOAccountIndexFromPath,\n getUTXOAccountPath,\n getUTXOAddressPath,\n getUtxoApi,\n stripToCashAddress,\n type UTXOToolboxes,\n} from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\nimport { bip32ToAddressNList, ChainToKeepKeyName } from \"../coins\";\n\ninterface KeepKeyInputObject {\n addressNList: number[];\n scriptType: string;\n amount: string;\n vout: number;\n txid: string;\n hex: string;\n}\n\ntype KeepKeyUTXOWalletMethods = Record<string, unknown> & { address: string };\n\nexport async function utxoWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Exclude<UTXOChain, typeof Chain.Zcash>;\n derivationPath?: DerivationPathArray;\n}): Promise<KeepKeyUTXOWalletMethods> {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = [Chain.Bitcoin, Chain.Litecoin].includes(chain as typeof Chain.Bitcoin)\n ? (\"p2wpkh\" as const)\n : (\"p2pkh\" as const);\n // This might not work for BCH\n const toolbox = await getUtxoToolbox(chain, {\n scriptType: scriptType === \"p2wpkh\" ? UTXOScriptType.P2WPKH : UTXOScriptType.P2PKH,\n });\n\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath[chain]}/0`;\n\n const addressInfo = {\n address_n: bip32ToAddressNList(derivationPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n };\n\n const walletAddress: string = (await sdk.address.utxoGetAddress(addressInfo)).address;\n const network = getNetworkForChain(chain);\n\n const signTransaction = async (tx: Transaction, inputs: KeepKeyInputObject[], memo = \"\") => {\n const outputs: any[] = [];\n\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const address = tx.getOutputAddress(i, network);\n const value = Number(output.amount);\n\n if (address === walletAddress) {\n outputs.push({\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n });\n } else if (address) {\n const outputAddress = chain === Chain.BitcoinCash ? stripToCashAddress(address) : address;\n\n if (outputAddress) {\n outputs.push({ address: outputAddress, addressType: \"spend\", amount: value });\n }\n }\n }\n\n const removeNullAndEmptyObjectsFromArray = (arr: any[]) => {\n return arr.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0);\n };\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs,\n opReturnData: memo,\n outputs: removeNullAndEmptyObjectsFromArray(outputs),\n });\n\n return responseSign.serializedTx?.toString();\n };\n\n const transfer = async ({ recipient, feeOptionKey, feeRate, memo, ...rest }: GenericTransferParams) => {\n if (!walletAddress)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"From address must be provided\" });\n if (!recipient)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Recipient address must be provided\" });\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { tx, inputs: rawInputs } = await createTxMethod({\n ...rest,\n feeRate: feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast],\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputs = rawInputs.map(({ value, index, hash, txHex }) => ({\n //@TODO don't hardcode master, lookup on blockbook what input this is for and what path that address is!\n addressNList: addressInfo.address_n,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: index,\n }));\n\n const txHex = await signTransaction(tx, inputs, memo);\n return toolbox.broadcastTx(txHex);\n };\n\n const signTransactionWithMultipleInputs = async (\n tx: Transaction,\n inputs: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n }>,\n memo = \"\",\n ) => {\n const accountAddressN = bip32ToAddressNList(\n derivationPath\n ? derivationPathToString(derivationPath.slice(0, 3) as unknown as DerivationPathArray)\n : DerivationPath[chain],\n );\n\n type KeepKeyOutput =\n | { addressNList: number[]; addressType: \"change\"; amount: number; isChange: true; scriptType: string }\n | { address: string; addressType: \"spend\"; amount: number };\n\n const outputs: KeepKeyOutput[] = [];\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const outputAddress = tx.getOutputAddress(i, network);\n const value = Number(output.amount);\n\n if (outputAddress === walletAddress) {\n outputs.push({\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n });\n } else if (outputAddress) {\n const finalAddress = chain === Chain.BitcoinCash ? stripToCashAddress(outputAddress) : outputAddress;\n if (finalAddress) {\n outputs.push({ address: finalAddress, addressType: \"spend\", amount: value });\n }\n }\n }\n\n const keepKeyInputs = inputs.map(({ hash, index: inputIndex, value, txHex, derivationIndex, isChange }) => {\n const changePath = isChange ? 1 : 0;\n const inputAddressN = [...accountAddressN, changePath, derivationIndex];\n return {\n addressNList: inputAddressN,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: inputIndex,\n };\n });\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs: keepKeyInputs,\n opReturnData: memo,\n outputs: outputs.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0),\n });\n\n return responseSign.serializedTx?.toString() || \"\";\n };\n\n const transferFromMultipleAddresses = async ({\n utxos,\n recipient,\n assetValue,\n memo,\n feeRate,\n feeOptionKey,\n }: {\n utxos: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n address: string;\n }>;\n recipient: string;\n assetValue: { getBaseValue: (unit: string) => number; chain: string };\n memo?: string;\n feeRate?: number;\n feeOptionKey?: (typeof FeeOption)[keyof typeof FeeOption];\n }) => {\n const txFeeRate = feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { tx, inputs: selectedInputs } = await createTxMethod({\n assetValue: assetValue as any,\n feeRate: txFeeRate,\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputsWithDerivation = selectedInputs.map(\n (input: { hash: string; index: number; value: number; txHex?: string }) => {\n const utxoInfo = utxos.find((u) => u.hash === input.hash && u.index === input.index);\n return { ...input, derivationIndex: utxoInfo?.derivationIndex ?? 0, isChange: utxoInfo?.isChange ?? false };\n },\n );\n\n const signedTxHex = await signTransactionWithMultipleInputs(tx, inputsWithDerivation, memo);\n return toolbox.broadcastTx(signedTxHex);\n };\n\n async function getExtendedPublicKeyInfo({ accountIndex }: { accountIndex?: number } = {}) {\n try {\n const resolvedAccountPath = getUTXOAccountPath({ accountIndex, chain, derivationPath });\n const resolvedAccountPathString = derivationPathToString(resolvedAccountPath);\n const path = {\n address_n: bip32ToAddressNList(resolvedAccountPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n showDisplay: false,\n symbol: chain.toUpperCase(),\n };\n\n const responsePubkey = await sdk.system.info.getPublicKey(path);\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(resolvedAccountPath),\n path: resolvedAccountPathString,\n xpub: responsePubkey.xpub,\n };\n } catch (error) {\n throw new SwapKitError(\"wallet_keepkey_failed_to_get_public_key\", {\n chain,\n error: error instanceof Error ? error.message : \"Unknown error\",\n });\n }\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 assertDerivationIndex(\"index\", index);\n const fullPath = getUTXOAddressPath({ accountIndex, chain, change, derivationPath, index });\n const fullPathString = derivationPathToString(fullPath);\n\n const result = await sdk.address.utxoGetAddress({\n address_n: bip32ToAddressNList(fullPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n });\n\n let finalAddress = result.address;\n if (chain === Chain.BitcoinCash) {\n finalAddress = stripToCashAddress(result.address);\n }\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(fullPath),\n address: finalAddress,\n change,\n index,\n path: fullPathString,\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) => deriveAddressAtIndex({ accountIndex, change, index: startIndex + i })),\n );\n\n return addresses.filter((address) => !!address);\n }\n\n const hdHelpers = createHDWalletHelpers({\n chain,\n deriveAddress: deriveAddressAtIndex,\n getBalance: toolbox.getBalance,\n getUtxos: (address: string) => getUtxoApi(chain).getUtxos({ address, fetchTxHex: true }),\n });\n\n return {\n ...toolbox,\n ...hdHelpers,\n address: walletAddress,\n deriveAddressAtIndex,\n deriveAddresses,\n getExtendedPublicKey,\n getExtendedPublicKeyInfo,\n signTransaction,\n signTransactionWithMultipleInputs,\n transfer,\n transferFromMultipleAddresses,\n };\n}\n"
11
11
  ],
12
- "mappings": "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",
13
- "debugId": "D12D3B84F8B33D2564756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "47BC21A98959A40064756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,4 +1,4 @@
1
- var o0=Object.create;var{getPrototypeOf:n0,defineProperty:R_,getOwnPropertyNames:I_,getOwnPropertyDescriptor:i0}=Object,v_=Object.prototype.hasOwnProperty;function b_(_){return this[_]}var p0,s0,t0=(_,L,R)=>{var N=_!=null&&typeof _==="object";if(N){var G=L?p0??=new WeakMap:s0??=new WeakMap,O=G.get(_);if(O)return O}R=_!=null?o0(n0(_)):{};let B=L||!_||!_.__esModule?R_(R,"default",{value:_,enumerable:!0}):R;for(let T of I_(_))if(!v_.call(B,T))R_(B,T,{get:b_.bind(_,T),enumerable:!0});if(N)G.set(_,B);return B},r0=(_)=>{var L=(P_??=new WeakMap).get(_),R;if(L)return L;if(L=R_({},"__esModule",{value:!0}),_&&typeof _==="object"||typeof _==="function"){for(var N of I_(_))if(!v_.call(L,N))R_(L,N,{get:b_.bind(_,N),enumerable:!(R=i0(_,N))||R.enumerable})}return P_.set(_,L),L},P_;var a0=(_)=>_;function e0(_,L){this[_]=a0.bind(null,L)}var Y_=(_,L)=>{for(var R in L)R_(_,R,{get:L[R],enumerable:!0,configurable:!0,set:e0.bind(L,R)})};var j_=(_,L)=>()=>(_&&(L=_(_=0)),L);var r,A_=()=>navigator?.usb,RL=async()=>{let _=A_();if(typeof _?.getDevices!=="function")return{};let{ledgerUSBVendorId:L}=await import("@ledgerhq/devices"),N=(await _?.getDevices()).filter((G)=>G.vendorId===L);if(N.length>0)return N[0];return _?.requestDevice({filters:[{vendorId:L}]})},H=async()=>{let _=await RL();if(!_)throw new r.SwapKitError("wallet_ledger_device_not_found");if(_.opened||await _.open(),_.configuration===null)await _.selectConfiguration(1);try{await _.reset()}catch{}let L=_.configuration??_.configurations?.[0],R=L?.interfaces.find(({alternates:$})=>$.some(({interfaceClass:U})=>U===255))||L?.interfaces.find(({alternates:$})=>$.some(({interfaceClass:U})=>U===3));if(!R)throw await _.close(),new r.SwapKitError("wallet_ledger_connection_error");let N=R.alternates?.find(({interfaceClass:$})=>$===3)?.interfaceClass,G=R.alternates?.find(({interfaceClass:$})=>$===255)?.interfaceClass;if(N&&!G){let $=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await $.isSupported())throw await _.close(),new r.SwapKitError("wallet_ledger_webhid_not_supported");return await $.create()}try{await _.claimInterface(R.interfaceNumber)}catch($){throw await _.close(),new r.SwapKitError("wallet_ledger_connection_claimed",$)}let O=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await O.isSupported())throw new r.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:T}=await import("@ledgerhq/errors"),w=new O(_,R.interfaceNumber),D=($)=>{if(_===$.device)A_()?.removeEventListener("disconnect",D),w._emitDisconnect(new T)};return A_()?.addEventListener("disconnect",D),w};var I=j_(()=>{r=require("@swapkit/helpers")});var S0={};Y_(S0,{LitecoinPsbtLedger:()=>FL,BitcoinPsbtLedger:()=>jL});function ML(_){switch(_){case"bech32":return"wpkh(@0/**)";case"p2sh":return"sh(wpkh(@0/**))";case"legacy":return"pkh(@0/**)";default:return"wpkh(@0/**)"}}function WL(_){return typeof _==="string"?_:p.derivationPathToString(_)}function z0(_){return _.replace(/^m\//,"").replace(/^\/+/,"")}function JL(_){return _.replace(/^m\//,"").split("/").filter(Boolean).map((L)=>{let R=L.endsWith("'"),N=Number.parseInt(R?L.slice(0,-1):L,10);return R?(N|2147483648)>>>0:N})}function YL(_,L){let R=_.getInput(L);return Boolean(R.bip32Derivation?.length)}var E0,K0,p,k0=({chain:_})=>{return(L,R)=>{let N,G;async function O(){if(!N){let f=R??await H(),{AppClient:Y}=await import("ledger-bitcoin");N=new Y(f)}return N}async function B(){if(!G)G=await(await O()).getMasterFingerprint();return G}let T=z0(L?WL(L):"84'/0'/0'/0/0"),w=T.split("/").filter(Boolean),D=w.slice(0,3).join("/"),$=w.slice(3),U=Number($[0]??0),M=Number($[1]??0),J=p.getWalletFormatFor(`m/${T}`),C=ML(J),Q,E;async function k(){let f=await O(),Y=await B();if(!Q)Q=await f.getExtendedPubkey(`m/${D}`);let{DefaultWalletPolicy:Z}=await import("ledger-bitcoin"),W=new Z(C,`[${Y}/${D}]${Q}`);return{app:f,fpr:Y,policy:W,xpub:Q}}async function d(){if(!E){let{xpub:f}=await k(),Z=K0.HDKey.fromExtendedKey(f).derive(`m/${U}/${M}`);if(!Z.publicKey)throw new p.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot derive leaf pubkey for ${_}`});E=Z.publicKey}return E}return{connect:async()=>{await O()},getAddress:async()=>{let{app:f,policy:Y}=await k(),Z=await f.getWalletAddress(Y,null,U,M,!1);if(!Z)throw new p.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${_} address from ledger derivation path: ${T}`});return Z},getExtendedPublicKey:async(f=`m/${D}`)=>{return(await O()).getExtendedPubkey(`m/${z0(f)}`)},signTransaction:async(f)=>{let{app:Y,policy:Z,fpr:W}=await k(),K=Number.parseInt(W,16)>>>0,S=JL(T),o=Array.from({length:f.inputsLength},(g,u)=>u).filter((g)=>!YL(f,g));if(o.length>0){let g=await d();for(let u of o)f.updateInput(u,{bip32Derivation:[[g,{fingerprint:K,path:S}]]})}let Z_=E0.base64.encode(f.toPSBT(0)),L_=await Y.signPsbt(Z_,Z,null);for(let[g,u]of L_)f.updateInput(g,{partialSig:[[new Uint8Array(u.pubkey),new Uint8Array(u.signature)]]});return f}}}},jL,FL;var V0=j_(()=>{I();E0=require("@scure/base"),K0=require("@scure/bip32"),p=require("@swapkit/helpers");jL=k0({chain:"bitcoin"}),FL=k0({chain:"litecoin"})});var v0={};Y_(v0,{signLegacyPsbtTransaction:()=>I0,extractInputsFromPsbt:()=>P0,createLegacyPsbtSigner:()=>QL});async function P0(_,L){let{RawTx:R}=await import("@swapkit/utxo-signer"),{getUtxoApi:N}=await import("@swapkit/toolboxes/utxo"),G=[];for(let O=0;O<_.inputsLength;O++){let B=_.getInput(O);if(!B.txid||B.index===void 0)throw Error(`PSBT input ${O} is missing txid/index`);let T=f_.hex.encode(B.txid),w=B.nonWitnessUtxo?f_.hex.encode(R.encode(B.nonWitnessUtxo)):await N(L).getRawTx(T);if(!w)throw new m0.SwapKitError("wallet_ledger_invalid_params",{chain:L,inputIndex:O,reason:"Unable to resolve previous transaction hex for Ledger signing",txid:T});let D=B.witnessUtxo?{script:B.witnessUtxo.script,value:Number(B.witnessUtxo.amount)}:void 0,$=B.index!==void 0?B.nonWitnessUtxo?.outputs?.[B.index]:void 0,U=D?.value??($?Number($.amount):0);G.push({hash:T,index:B.index,txHex:w,value:U,witnessUtxo:D})}return G}async function I0({legacyClient:_,chain:L,tx:R}){let N=await P0(R,L);return _.signTransaction(R,N)}function QL({legacyClient:_,chain:L,address:R}){return{getAddress:async()=>R,signTransaction:async(N)=>{let G=await I0({chain:L,legacyClient:_,tx:N}),{Transaction:O}=await import("@swapkit/utxo-signer");return O.fromRaw(f_.hex.decode(G))}}}var f_,m0;var b0=j_(()=>{f_=require("@scure/base"),m0=require("@swapkit/helpers")});var AL={};Y_(AL,{ledgerWallet:()=>c0,getLedgerExtendedPublicKey:()=>l0,LEDGER_SUPPORTED_CHAINS:()=>qL});module.exports=r0(AL);var y=require("@swapkit/helpers"),q=require("@swapkit/toolboxes/utxo"),X_=require("@swapkit/wallet-core");var j=require("@swapkit/helpers"),x=async({chain:_,ledgerClient:L})=>{if(!L)return"";switch(_){case j.Chain.Cosmos:case j.Chain.THORChain:return L.connect();case j.Chain.Ethereum:case j.Chain.BinanceSmartChain:case j.Chain.Avalanche:case j.Chain.Polygon:case j.Chain.Arbitrum:case j.Chain.Arc:case j.Chain.Berachain:case j.Chain.Optimism:case j.Chain.Base:case j.Chain.Aurora:case j.Chain.Gnosis:case j.Chain.Monad:case j.Chain.XLayer:return L.getAddress();case j.Chain.Bitcoin:case j.Chain.BitcoinCash:case j.Chain.Dash:case j.Chain.Dogecoin:case j.Chain.Litecoin:case j.Chain.Zcash:{let R=L;await R.connect();let N=await R.getAddress();return _===j.Chain.BitcoinCash?N.replace("bitcoincash:",""):N}case j.Chain.Near:return await L.getAddress();case j.Chain.Ripple:return L.getAddress();case j.Chain.Tron:return L.getAddress();case j.Chain.Sui:return L.connect();default:throw new j.SwapKitError("wallet_chain_not_supported",{chain:_,wallet:j.WalletOption.LEDGER})}};var X=require("@swapkit/helpers");var i=require("@swapkit/helpers");var v=require("@swapkit/helpers");var H_=require("@swapkit/helpers");var s=85,F_=250;var n={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},$_={ADD:1,INIT:0,LAST:2},Q_={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},t={JSON:0},h={NoError:36864},c_={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error",36864:"No errors",36865:"Device is busy"};function P(_){if(_ in c_)return c_[_];return`Unknown Status Code: ${_}`}function _L(_){return typeof _==="object"&&_!==null&&!Array.isArray(_)&&!(_ instanceof Date)}function V(_){if(_){if(_L(_)){if(Object.hasOwn(_,"statusCode"))return{error_message:P(_.statusCode),return_code:_.statusCode};if(Object.hasOwn(_,"return_code")&&Object.hasOwn(_,"error_message"))return _}return{error_message:_.toString(),return_code:65535}}return{error_message:_.toString(),return_code:65535}}function q_(_){return _.send(85,n.GET_VERSION,0,0).then((L)=>{let R=L.slice(-2),N=R[0]*256+R[1],G=0;if(L.length>=9)G=(L[5]<<24)+(L[6]<<16)+(L[7]<<8)+(L[8]<<0);return{device_locked:L[4]===1,error_message:P(N),major:L[1],minor:L[2],patch:L[3],return_code:N,target_id:G.toString(16),test_mode:L[0]!==0}},V)}var N_=require("@swapkit/helpers");function l_(_){if(_==null||_.length<3)throw new N_.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too short"});if(_.length>10)throw new N_.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too long"});let L=Buffer.alloc(1+4*_.length);L.writeUInt8(_.length,0);for(let R=0;R<_.length;R+=1){let N=_[R]||0;if(R<3)N|=2147483648;L.writeInt32LE(N,1+R*4)}return L}function C_(_,L,R,N,G=t.JSON){return _.transport.send(s,n.SIGN_SECP256K1,L,G,N,[h.NoError,27012,27264]).then((O)=>{let B=O.slice(-2),T=B[0]*256+B[1],w=P(T);if(T===27264||T===27012)w=`${w} : ${O.slice(0,O.length-2).toString("ascii")}`;let D=null;if(O.length>2)D=O.slice(0,O.length-2);return{error_message:w,return_code:T,signature:D}},V)}function LL(_){if(_.length!==65)throw new N_.SwapKitError("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let L=_.slice(33,65),R=Buffer.from([2+(L[L.length-1]&1)]);return Buffer.concat([R,_.slice(1,33)])}function g_(_,L){return _.transport.send(s,n.INS_PUBLIC_KEY_SECP256K1,0,0,L,[h.NoError]).then((R)=>{let N=R.slice(-2),G=N[0]*256+N[1],O=Buffer.from(R.slice(0,65));return{compressed_pk:LL(O),error_message:P(G),pk:O,return_code:G}},V)}function x_(_){if(!_||_.length!==5)throw new N_.SwapKitError("wallet_ledger_invalid_params",{reason:"Path must be exactly 5 elements"});let L=Buffer.alloc(20);return L.writeUInt32LE(2147483648+_[0],0),L.writeUInt32LE(2147483648+_[1],4),L.writeUInt32LE(2147483648+_[2],8),L.writeUInt32LE(_[3],12),L.writeUInt32LE(_[4],16),L}function h_(_,L,R,N,G=t.JSON){let O=$_.ADD;if(L===1)O=$_.INIT;if(L===R)O=$_.LAST;return C_(_,O,0,N,G)}function u_(_,L){return _.transport.send(s,n.GET_ADDR_SECP256K1,0,0,L,[h.NoError]).then((R)=>{let N=R.slice(-2),G=N[0]*256+N[1];return{compressed_pk:Buffer.from(R.slice(0,33)),error_message:P(G),pk:"OBSOLETE PROPERTY",return_code:G}},V)}class G_{transport;versionResponse;constructor(_){if(!_)throw new H_.SwapKitError("wallet_ledger_transport_not_defined");this.transport=_}static serializeHRP(_){if(_==null||_.length<3||_.length>83)throw new H_.SwapKitError("wallet_ledger_invalid_params",{reason:"Invalid HRP"});let L=Buffer.alloc(1+_.length);return L.writeUInt8(_.length,0),L.write(_,1),L}async serializePath(_){if(this.versionResponse=await q_(this.transport),this.versionResponse.return_code!==h.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return l_(_);case 2:return x_(_);default:return Buffer.alloc(0)}}async signGetChunks(_,L){let R=await this.serializePath(_),N=[];N.push(R);for(let G=0;G<L.length;G+=F_){let O=G+F_;if(G>L.length)O=L.length;N.push(L.slice(G,O))}return N}async getVersion(){try{return this.versionResponse=await q_(this.transport),this.versionResponse}catch(_){return V(_)}}appInfo(){return this.transport.send(176,1,0,0).then((_)=>{let L=_.readUInt16BE(_.length-2),R="",N="",G=0,O=0;if(_[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let B=_[1];R=_.slice(2,2+B).toString("ascii");let T=2+B,w=_[T];T+=1,N=_.slice(T,T+w).toString("ascii"),T+=w;let D=_[T];return T+=1,G=D,O=_[T],{appName:R,appVersion:N,error_message:P(L),flag_onboarded:(O&4)!==0,flag_pin_validated:(O&128)!==0,flag_recovery:(O&1)!==0,flag_signed_mcu_code:(O&2)!==0,flagLen:G,flagsValue:O,return_code:L}},V)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[h.NoError,28160]).then((_)=>{let L=_.slice(-2),R=L[0]*256+L[1];if(R===28160)return{error_message:"This command is only available in the Dashboard",return_code:R};let N=_.slice(0,4).toString("hex"),G=4,O=_[G];G+=1;let B=_.slice(G,G+O).toString();G+=O;let T=_[G];G+=1;let w=_.slice(G,G+T).toString("hex");G+=T;let D=_[G];G+=1;let $=_.slice(G,G+D);if($[D-1]===0)$=_.slice(G,G+D-1);let U=$.toString();return{error_message:P(R),flag:w,mcuVersion:U,return_code:R,seVersion:B,targetId:N}},V)}async publicKey(_){try{let L=await this.serializePath(_);switch(this.versionResponse.major){case 1:return g_(this,L);case 2:{let R=Buffer.concat([G_.serializeHRP("thor"),L]);return u_(this,R)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(L){return V(L)}}async getAddressAndPubKey(_,L,R=!1){try{let N=await this.serializePath(_),G=Buffer.concat([G_.serializeHRP(L),N]),O=await this.transport.send(s,n.GET_ADDR_SECP256K1,R?Q_.SHOW_ADDRESS_IN_DEVICE:Q_.ONLY_RETRIEVE,0,G,[h.NoError]),B=Buffer.from(O.slice(0,33)),T=Buffer.from(O.slice(33,-2)).toString(),w=O.readUInt16BE(O.length-2);return{bech32_address:T,compressed_pk:B,error_message:P(w),return_code:w}}catch(N){return V(N)}}showAddressAndPubKey(_,L){return this.getAddressAndPubKey(_,L,!0)}signSendChunk(_,L,R,N=t.JSON){switch(this.versionResponse.major){case 1:return C_(this,_,L,R,N);case 2:return h_(this,_,L,R,N);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(_,L,R=t.JSON){let N=Buffer.from(L),G=[],O;try{G=await this.signGetChunks(_,N),O=await this.signSendChunk(1,G.length,G[0],R)}catch(T){V(T)}let B={error_message:O.error_message,return_code:O.return_code,signature:null};for(let T=1;T<G.length;T+=1)if(B=await this.signSendChunk(1+T,G.length,G[T],R),B.return_code!==h.NoError)break;return{error_message:B.error_message,return_code:B.return_code,signature:B.signature}}}I();class O_{ledgerTimeout=50000;derivationPath=v.NetworkDerivationPath.GAIA;transport;ledgerApp;chain="thor";injectedTransport;constructor(_){if(this.injectedTransport=_,_)this.transport=_}checkOrCreateTransportAndLedger=async(_=!1)=>{if(!_&&this.transport&&this.ledgerApp)return;try{if(!this.transport||_&&!this.injectedTransport)this.transport=this.injectedTransport??await H();switch(this.chain){case"thor":{this.ledgerApp=_||!this.ledgerApp?new G_(this.transport):this.ledgerApp;break}case"cosmos":{let R=(await import("@ledgerhq/hw-app-cosmos")).default;this.ledgerApp=_||!this.ledgerApp?new R(this.transport):this.ledgerApp}}return this.ledgerApp}catch(L){throw new v.SwapKitError("wallet_ledger_connection_error",L)}};validateResponse=(_,L)=>{switch(_){case v.LedgerErrorCode.NoError:return;case v.LedgerErrorCode.LockedDevice:throw new v.SwapKitError("wallet_ledger_device_locked",{message:`Ledger is locked: ${L}`});case v.LedgerErrorCode.TC_NotFound:throw new v.SwapKitError("wallet_ledger_device_not_found");default:break}}}class z_ extends O_{pubKey=null;derivationPath;constructor(_=i.NetworkDerivationPath.GAIA,L){super(L);this.chain="cosmos",this.derivationPath=i.derivationPathToString(_)}connect=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{publicKey:_,address:L}=await this.getAddressAndPubKey();return this.pubKey=Buffer.from(_,"hex").toString("base64"),L};getAddressAndPubKey=async()=>{return await this.checkOrCreateTransportAndLedger(!0),await this.ledgerApp.getAddress(this.derivationPath,this.chain)};signTransaction=async(_,L="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:R,error_message:N,signature:G}=await this.ledgerApp.sign(this.derivationPath,_);if(!this.pubKey)throw new i.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(R,N),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:L,signature:G}]};signAmino=async(_,L)=>{await this.checkOrCreateTransportAndLedger(!0);let R=await this.getAccounts();if(R.findIndex((M)=>M.address===_)===-1)throw new i.SwapKitError("wallet_ledger_address_not_found",{address:_});let G=await import("@cosmjs/amino"),O=G.encodeSecp256k1Signature??G.default?.encodeSecp256k1Signature,B=G.serializeSignDoc??G.default?.serializeSignDoc,T=await import("@cosmjs/crypto"),w=T.Secp256k1Signature??T.default?.Secp256k1Signature,D=B(L),$=await this.ledgerApp.sign(this.derivationPath,D);this.validateResponse($.return_code,$.error_message);let U=w.fromDer($.signature).toFixedLength();return{signature:O(R[0].pubkey,U),signed:L}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAddressAndPubKey();return[{address:_.address,algo:"secp256k1",pubkey:Buffer.from(_.publicKey,"hex")}]}}I();var F=require("@swapkit/helpers"),r_=require("ethers");var d_={apex:"apexp",europa:"flex",nanoS:"nanos",nanoSP:"nanosp",nanoX:"nanox",stax:"stax"};async function o_(_,L=fetch){let R=d_[_];if(!R)return null;let N=`https://crypto-assets-service.api.ledger.com/v1/certificates?output=descriptor&public_key_usage=network&target_device=${R}`,G=await L(N);if(!G.ok)return null;let B=(await G.json())[0]?.descriptor,T=B?.signatures?.prod;if(!(B?.data&&T))return null;return`${B.data}${NL(T)}`}async function n_(_,L){await _.send(176,6,12,0,Buffer.from(L,"hex"))}async function i_(_,L,R=fetch){let N=d_[L];if(!N)return null;let G=`https://crypto-assets-service.api.ledger.com/v1/networks?chain_id=${_}&output=chain_id,descriptors,icons`,O=await R(G);if(!O.ok)return null;let T=(await O.json()).find(($)=>$.chain_id===_),w=T?.descriptors?.[N],D=w?.signatures?.prod;if(!(w?.data&&D))return null;return{data:w.data,icon:T?.icons?.[N],signature:D}}function NL(_){return p_(21,Buffer.from(_,"hex")).toString("hex")}function p_(_,L){return Buffer.concat([Buffer.from([_,L.length]),L])}function GL({data:_,signature:L}){let R=Buffer.concat([Buffer.from(_,"hex"),p_(21,Buffer.from(L,"hex"))]),N=Buffer.alloc(2);return N.writeUInt16BE(R.length,0),Buffer.concat([N,R])}async function E_(_,L,R){for(let N=0;N<R.length;N+=255){let G=N===0?1:0,O=R.subarray(N,N+255);await _.send(224,48,G,L,O)}}async function s_(_,L){let R=GL(L);if(await E_(_,0,R),!L.icon)return{iconAccepted:!1};try{return await E_(_,1,Buffer.from(L.icon,"hex")),{iconAccepted:!0}}catch{return await E_(_,0,R),{iconAccepted:!1}}}var OL=27264,t_=Number(F.ChainId.Arc);function yL(_){return _ instanceof Error&&"statusCode"in _&&_.statusCode===OL}function BL(_){return Object.values(_??{}).some((L)=>Array.isArray(L)&&L.length)}function TL(_){if(typeof _==="number")return _;let L=_.startsWith("0x")?_.slice(2):_;return Number.parseInt(L||"0",16)}class A extends r_.AbstractSigner{chainId=F.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;transport;injectedTransport;arcNetworkRegistered=!1;constructor({provider:_,derivationPath:L=F.NetworkDerivationPath.OP,chainId:R=F.ChainId.Optimism,transport:N}){super(_);this.chainId=R||F.ChainId.Ethereum,this.derivationPath=typeof L==="string"?L:F.derivationPathToString(L),this.injectedTransport=N,Object.defineProperty(this,"provider",{enumerable:!0,value:_||null,writable:!1})}connect=(_)=>new A({chainId:this.chainId,derivationPath:this.derivationPath,provider:_,transport:this.transport??this.injectedTransport});checkOrCreateTransportAndLedger=async()=>{await this.createTransportAndLedger()};createTransportAndLedger=async()=>{if(this.ledgerApp)return;this.transport||=this.injectedTransport??await H();let _=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new _(this.transport)};getAddress=async()=>{let _=await this.getAddressAndPubKey();if(!_)throw new F.SwapKitError("wallet_ledger_failed_to_get_address");return _.address};getAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath)};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signMessage=async(_)=>{let{Signature:L}=await import("ethers");await this.createTransportAndLedger();let R=await this.ledgerApp?.signPersonalMessage(this.derivationPath,_);if(!R)throw new F.SwapKitError("wallet_ledger_signing_error");return R.r=`0x${R.r}`,R.s=`0x${R.s}`,L.from(R).serialized};sendTransaction=async(_)=>{if(!this.provider)throw new F.SwapKitError("wallet_ledger_no_provider");let L=await this.signTransaction(_);return await this.provider.broadcastTransaction(L)};signTypedData=async(_,L,R,N)=>{let{buildEIP712DomainType:G}=await import("@swapkit/toolboxes/evm"),{Signature:O,TypedDataEncoder:B}=await import("ethers");await this.createTransportAndLedger();let{EIP712Domain:T,...w}=L,D=N??B.from(w).primaryType,$;try{$=await this.ledgerApp?.signEIP712Message(this.derivationPath,{domain:_,message:R,primaryType:D,types:{EIP712Domain:G(_),...w}})}catch(U){let M=U instanceof Error&&"statusCode"in U;if(!M||M&&U.statusCode===27013)throw U;let J=B.hashDomain(_).slice(2),C=B.from(w).hash(R).slice(2);$=await this.ledgerApp?.signEIP712HashedMessage(this.derivationPath,J,C)}if(!$)throw new F.SwapKitError("wallet_ledger_signing_error");return $.r=`0x${$.r}`,$.s=`0x${$.s}`,O.from($).serialized};signTransaction=async(_)=>{let{Transaction:L}=await import("ethers");await this.createTransportAndLedger();let R=_.nonce??void 0,N=R===void 0?await this.provider?.getTransactionCount(_.from||await this.getAddress()):void 0,G={chainId:_.chainId||this.chainId,data:_.data,gasLimit:_.gasLimit,..._.gasPrice&&{gasPrice:_.gasPrice},...!_.gasPrice&&_.maxFeePerGas&&{maxFeePerGas:_.maxFeePerGas,maxPriorityFeePerGas:_.maxPriorityFeePerGas},nonce:R!==void 0?Number(R.toString()):N,to:_.to?.toString(),type:_.type&&!Number.isNaN(_.type)?_.type:_.maxFeePerGas?2:0,value:_.value},O=L.from(G).unsignedSerialized.slice(2),{ledgerService:B}=await import("@ledgerhq/hw-app-eth"),T=Number(G.chainId),w=T===t_,D=await B.resolveTransaction(O,{},{erc20:!0,externalPlugins:!0}).catch((C)=>{if(!w)throw C;return console.warn("Ledger: could not fetch clear-signing metadata for Arc, signing blind"),null});if(w&&!this.arcNetworkRegistered)await this.registerNetworkOnDevice(T);let $=await this.signWithLedgerApp(O,D,T);if(!$)throw new F.SwapKitError("wallet_ledger_signing_error");let{r:U,s:M,v:J}=$;return L.from({...G,signature:{r:`0x${U}`,s:`0x${M}`,v:TL(J)}}).serialized};signWithLedgerApp=async(_,L,R)=>{try{return await this.ledgerApp?.signTransaction(this.derivationPath,_,L)}catch(N){if(!(R===t_&&yL(N)&&BL(L)))throw N;return console.warn("Ledger: the app rejected the Arc metadata, signing blind"),await this.ledgerApp?.signTransaction(this.derivationPath,_,null)}};registerNetworkOnDevice=async(_)=>{let L=this.transport?.deviceModel?.id;if(!(this.transport&&L))return;try{let[R,N]=await Promise.all([i_(_,L),o_(L)]);if(!R)return;if(N)await n_(this.transport,N);await s_(this.transport,R),this.arcNetworkRegistered=!0}catch{}}}var a_=(_)=>new A({..._,chainId:F.ChainId.Arbitrum}),e_=(_)=>new A({..._,chainId:F.ChainId.Arc}),_0=(_)=>new A({..._,chainId:F.ChainId.Aurora}),L0=(_)=>new A({..._,chainId:F.ChainId.Avalanche}),R0=(_)=>new A({..._,chainId:F.ChainId.Base}),N0=(_)=>new A({..._,chainId:F.ChainId.Ethereum}),G0=(_)=>new A({..._,chainId:F.ChainId.Gnosis}),O0=(_)=>new A({..._,chainId:F.ChainId.Optimism}),y0=(_)=>new A({..._,chainId:F.ChainId.Polygon}),B0=(_)=>new A({..._,chainId:F.ChainId.BinanceSmartChain}),T0=(_)=>new A({..._,chainId:F.ChainId.Monad}),w0=(_)=>new A({..._,chainId:F.ChainId.XLayer}),$0=(_)=>new A({..._,chainId:F.ChainId.Berachain});I();async function D0(_,L){let R=(await import("@ledgerhq/hw-app-near")).default,{Chain:N,NetworkDerivationPath:G,SwapKitError:O}=await import("@swapkit/helpers"),B=L??await H(),T=new R(B),w=(_||G[N.Near]).join("'/").concat("'"),{address:D,publicKey:$}=await T.getAddress(w);return{getAddress(){return Promise.resolve(D)},async getPublicKey(){let{PublicKey:M}=await import("@near-js/crypto");return M.fromString(`ed25519:${$}`)},signDelegateAction(M){return Promise.reject(new O("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(M,J,C,Q,E){return Promise.reject(new O("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(M){let{Signature:J,SignedTransaction:C}=await import("@near-js/transactions");try{let Q=await T.signTransaction(M.encode(),w);if(!Q)throw Error("Signature undefined");let E=new J({data:Q,keyType:0}),k=new C({signature:E,transaction:M});return[Q,k]}catch(Q){throw new O("wallet_ledger_signing_error",{error:Q})}}}}I();var z=require("@swapkit/helpers");class U0{derivationPath;ledgerApp=null;address=null;publicKey=null;injectedTransport;constructor(_,L){this.derivationPath=typeof _==="string"?_:z.derivationPathToString(_||z.NetworkDerivationPath[z.Chain.Sui]),this.injectedTransport=L}getLedgerPath(){return this.derivationPath.replace(/^m\//,"").replace(/\/(\d+)\/(\d+)$/,"/$1'/$2'")}async createTransportAndLedger(){if(this.ledgerApp)return;let _=this.injectedTransport??await H(),L=(await import("@ledgerhq/hw-app-sui")).default;this.ledgerApp=new L(_)}async connect(){if(await this.createTransportAndLedger(),!this.ledgerApp)throw new z.SwapKitError("wallet_ledger_transport_error");let _=this.getLedgerPath(),L=await this.ledgerApp.getPublicKey(_);if(!L?.publicKey)throw new z.SwapKitError("wallet_ledger_failed_to_get_address");return this.publicKey=L.publicKey,this.address=`0x${Buffer.from(L.address).toString("hex")}`,this.address}toSuiAddress(){if(!this.address)throw new z.SwapKitError("wallet_ledger_failed_to_get_address");return this.address}async getAddress(){if(this.address)return this.address;return await this.connect()}async signTransaction(_){let L=_ instanceof Uint8Array?_:_.transaction;if(await this.createTransportAndLedger(),!this.ledgerApp)throw new z.SwapKitError("wallet_ledger_transport_error");if(!this.publicKey)throw new z.SwapKitError("wallet_ledger_failed_to_get_address");try{let R=this.getLedgerPath(),N=new Uint8Array(3+L.length);N[0]=0,N[1]=0,N[2]=0,N.set(L,3);let G=await this.ledgerApp.signTransaction(R,N);if(!G?.signature)throw new z.SwapKitError("wallet_ledger_signing_error");let O=this.publicKey.length===33?this.publicKey.slice(1):this.publicKey;if(O.length!==32)throw new z.SwapKitError("wallet_ledger_signing_error",{error:"Invalid public key length"});let B=new Uint8Array(97);B[0]=0,B.set(G.signature,1),B.set(O,65);let T=Buffer.from(B).toString("base64");return{bytes:Buffer.from(L).toString("base64"),signature:T}}catch(R){throw new z.SwapKitError("wallet_ledger_signing_error",{error:R})}}}var f0=(_,L)=>new U0(_,L);var U_=require("@scure/base"),a=require("@swapkit/helpers");var X0=require("@scure/base"),b=require("@swapkit/helpers"),D_=(_)=>{if(_.length<64)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"Too short"});if(_[0]!==48)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(_[1]+2!==_.length)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(_[2]!==2)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let L=_[3],R=_.slice(4,L+4);if(R.length===33&&R[0]===0)R=R.slice(1,33);else if(R.length===33)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"r too long"});while(R.length<32)R.unshift(0);if(_[L+4]!==2)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let N=_[L+5];if(4+L+2+N!==_.length)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let G=_.slice(L+6,_.length);if(G.length===33&&G[0]===0)G=G.slice(1,33);else if(G.length===33)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"s too long"});while(G.length<32)G.unshift(0);if(R.length!==32||G.length!==32)throw new b.SwapKitError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return X0.base64.encode(Buffer.concat([R,G]))};function wL(_){if(typeof _==="string")return _;let L=_.chain?.toUpperCase(),R=(_.symbol||_.ticker||"").toUpperCase();if(!(L&&R))return R||L||"";if(_.synth)return`${L}/${R}`;return`${L}.${R}`}function $L(_){return{..._,msgs:_.msgs.map((L)=>{if(!L.type.includes("MsgDeposit"))return L;let R=L.value.coins;if(!Array.isArray(R))return L;return{...L,value:{...L.value,coins:R.map((N)=>({...N,asset:wL(N.asset)}))}}})}}class K_ extends O_{pubKey=null;derivationPath;constructor(_=a.NetworkDerivationPath.THOR,L){super(L);this.chain="thor",this.derivationPath=_}get pubkey(){return this.pubKey}connect=async()=>{await this.checkOrCreateTransportAndLedger();let{compressed_pk:_,bech32_address:L}=await this.getAddressAndPubKey();return this.pubKey=U_.base64.encode(_),L};getAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.ledgerApp.getAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(_.return_code,_.error_message),_};showAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.ledgerApp.showAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(_.return_code,_.error_message),_};signTransaction=async(_,L="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:R,error_message:N,signature:G}=await this.ledgerApp.sign(this.derivationPath,_);if(!this.pubKey)throw new a.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(R,N),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:L,signature:D_(G)}]};signAmino=async(_,L)=>{await this.checkOrCreateTransportAndLedger(!0);let R=(await this.getAccounts()).find(($)=>$.address===_);if(!R)throw new a.SwapKitError("wallet_ledger_address_not_found",{address:_});let N=await import("@cosmjs/amino"),G=N.encodeSecp256k1Signature??N.default?.encodeSecp256k1Signature,O=N.serializeSignDoc??N.default?.serializeSignDoc,B=$L(L),{return_code:T,error_message:w,signature:D}=await this.ledgerApp.sign(this.derivationPath,O(B));return this.validateResponse(T,w),{signature:G(R.pubkey,U_.base64.decode(D_(D))),signed:L}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{bech32_address:_,compressed_pk:L}=await this.getAddressAndPubKey();return this.pubKey=U_.base64.encode(L),[{address:_,algo:"secp256k1",pubkey:L}]};sign=async(_)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:L,error_message:R,signature:N}=await this.ledgerApp.sign(this.derivationPath,_);if(!this.pubKey)throw new a.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(L,R),D_(N)}}I();var c=require("@swapkit/helpers");class Z0{derivationPath;ledgerApp=null;ledgerTimeout=50000;injectedTransport;constructor(_,L){this.derivationPath=typeof _==="string"?_:c.derivationPathToString(_||c.NetworkDerivationPath.TRON),this.injectedTransport=L}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let _=this.injectedTransport??await H(),L=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new L(_)};getAddress=async()=>{let _=await this.getAddressAndPubKey();if(!_)throw new c.SwapKitError("wallet_ledger_failed_to_get_address");return _.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let _=await this.ledgerApp?.getAddress(this.derivationPath);if(!_)throw new c.SwapKitError("wallet_ledger_failed_to_get_address");return{address:_.address,publicKey:_.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(_)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new c.SwapKitError("wallet_ledger_transport_error");try{let L=await this.ledgerApp.signTransaction(this.derivationPath,_.raw_data_hex,[]);if(!L)throw new c.SwapKitError("wallet_ledger_signing_error");return{..._,signature:[L]}}catch(L){throw new c.SwapKitError("wallet_ledger_signing_error",{error:L})}}}var M0=(_,L)=>new Z0(_,L);I();var y_=require("@scure/base"),l=require("@swapkit/helpers"),J0=["bitcoin-cash","dash","dogecoin","zcash"],W0=({tx:_,inputUtxos:L,btcApp:R,derivationPath:N,chain:G},O)=>{let B=L.map((J)=>{return[R.splitTransaction(J.txHex||"",!J0.includes(G),G==="zcash"),J.index,void 0,void 0]}),T=y_.hex.encode(_.unsignedTx),w=R.splitTransaction(T,!0),D=R.serializeTransactionOutputs(w).toString("hex"),$=l.getWalletFormatFor(N),U=$!=="legacy",M={additionals:$==="bech32"?["bech32"]:[],associatedKeysets:B.map(()=>N),inputs:B,outputScriptHex:D,segwit:U,useTrustedInputForSegwit:U};return R.createPaymentTransaction({...M,...O})},DL=({tx:_,inputUtxos:L,btcApp:R,derivationPaths:N,chain:G},O)=>{if(N.length!==L.length)throw new l.SwapKitError("wallet_ledger_invalid_params",{message:`Derivation paths count (${N.length}) must match inputs count (${L.length})`});let B=L.map((J)=>{return[R.splitTransaction(J.txHex||"",!J0.includes(G),G==="zcash"),J.index,void 0,void 0]}),T=y_.hex.encode(_.unsignedTx),w=R.splitTransaction(T,!0),D=R.serializeTransactionOutputs(w).toString("hex"),$=l.getWalletFormatFor(N[0]??""),U=$!=="legacy",M={additionals:$==="bech32"?["bech32"]:[],associatedKeysets:N,inputs:B,outputScriptHex:D,segwit:U,useTrustedInputForSegwit:U};return R.createPaymentTransaction({...M,...O})},e=({chain:_,additionalSignParams:L})=>{return(R,N)=>{let G,O=null;async function B(){O||=N??await H();let U=(await import("@ledgerhq/hw-app-btc")).default;return G||=new U({currency:_,transport:O}),G}async function T(){return G||await B()}async function w(){if(!N)await O?.close?.();G=void 0,O=null}let D=typeof R==="string"?R:l.derivationPathToString(R),$=l.getWalletFormatFor(D);return{connect:async()=>{await T()},disconnect:w,getAddress:async()=>{let{toCashAddress:U}=await import("@swapkit/toolboxes/utxo"),M=await T(),{bitcoinAddress:J}=await M.getWalletPublicKey(D,{format:$});if(!J)throw new l.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${_} address from ledger derivation path: ${D}`});return _==="bitcoin-cash"&&$==="legacy"?U(J).replace(/(bchtest:|bitcoincash:)/,""):J},getExtendedPublicKey:async(U="84'/0'/0'",M=76067358)=>{return(await T()).getWalletXpub({path:U,xpubVersion:M})},signPCZT:async(U)=>{if(_!=="zcash")throw new l.SwapKitError("wallet_ledger_chain_not_supported",{message:"PCZT signing is only supported for Zcash"});let M=await T(),{ZcashTransaction:J,Script:C}=await import("@swapkit/utxo-signer"),Q=U.getGlobal(),E=new J({consensusBranchId:Q.consensusBranchId,expiryHeight:Q.expiryHeight,lockTime:Q.lockTime,version:Q.txVersion,versionGroupId:Q.versionGroupId}),k=[];for(let Z=0;Z<U.inputsLength;Z++){let W=U.getInput(Z);E.addInput({index:W.index,script:new Uint8Array,sequence:W.sequence??4294967295,txid:W.txid,value:W.value}),k.push({hash:y_.hex.encode(new Uint8Array([...W.txid].reverse())),index:W.index,txHex:UL(W,Q),value:Number(W.value),witnessUtxo:{script:W.scriptPubkey,value:Number(W.value)}})}for(let Z=0;Z<U.outputsLength;Z++){let W=U.getOutput(Z);E.addOutput({amount:W.value,script:W.scriptPubkey})}let d=await W0({btcApp:M,chain:_,derivationPath:D,inputUtxos:k,tx:E},{...L,expiryHeight:(()=>{let Z=Buffer.alloc(4);return Z.writeUInt32LE(Q.expiryHeight),Z})(),lockTime:Q.lockTime}),f=J.fromHex(d,{allowUnknownOutputs:!0}),Y=U.clone();for(let Z=0;Z<f.inputsLength;Z++){let W=f.getInput(Z);if(W.script&&W.script.length>0){let K=C.decode(W.script);if(K.length>=2)Y.addSignature(Z,K[1],K[0])}}return Y},signTransaction:async(U,M)=>{let J=await T();return W0({btcApp:J,chain:_,derivationPath:D,inputUtxos:M,tx:U},L)},signTransactionWithMultiplePaths:async(U,M,J)=>{let C=await T();return DL({btcApp:C,chain:_,derivationPaths:J,inputUtxos:M,tx:U},L)}}}};function UL(_,L){let R=[],N=(L.txVersion|2147483648)>>>0;R.push(N&255,N>>8&255,N>>16&255,N>>24&255);let G=L.versionGroupId;R.push(G&255,G>>8&255,G>>16&255,G>>24&255),R.push(0);let O=_.index+1;if(O<253)R.push(O);else R.push(253,O&255,O>>8&255);for(let w=0;w<_.index;w++)R.push(0,0,0,0,0,0,0,0),R.push(0);let B=_.value;R.push(Number(B&0xffn),Number(B>>8n&0xffn),Number(B>>16n&0xffn),Number(B>>24n&0xffn),Number(B>>32n&0xffn),Number(B>>40n&0xffn),Number(B>>48n&0xffn),Number(B>>56n&0xffn));let T=_.scriptPubkey;if(T.length<253)R.push(T.length);else R.push(253,T.length&255,T.length>>8&255);for(let w of T)R.push(w);return R.push(L.lockTime&255,L.lockTime>>8&255,L.lockTime>>16&255,L.lockTime>>24&255),R.push(L.expiryHeight&255,L.expiryHeight>>8&255,L.expiryHeight>>16&255,L.expiryHeight>>24&255),R.push(0,0,0,0,0,0,0,0),R.push(0),R.push(0),R.push(0),y_.hex.encode(new Uint8Array(R))}var Y0=e({chain:"bitcoin"}),j0=e({chain:"litecoin"}),F0=e({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),Q0=e({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),q0=e({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),C0=e({additionalSignParams:{additionals:["zcash","sapling"],expiryHeight:(()=>{let _=Buffer.alloc(4);return _.writeUInt32LE(0),_})(),lockTime:0,segwit:!1,useTrustedInputForSegwit:!1},chain:"zcash"});I();var H0=t0(require("@ledgerhq/hw-app-xrp")),__=require("@swapkit/helpers"),k_=require("ripple-binary-codec"),fL=2147483648;function XL(_){let L={};for(let R in _)if(_[R]!==null&&_[R]!==void 0)L[R]=_[R];return L}function ZL(_){return new H0.default(_)}var A0=async(_,L)=>{let R=__.derivationPathToString(_||__.NetworkDerivationPath[__.Chain.Ripple]),N=L??await H(),G=ZL(N),{address:O,publicKey:B}=await G.getAddress(R);async function T(w){let{hashes:D}=await import("xrpl"),U={...XL(w),Flags:w.Flags||fL,SigningPubKey:B.toUpperCase()},M=k_.encode(U),J=await G.signTransaction(R,M),C=k_.encode({...U,TxnSignature:J});return{hash:D.hashSignedTx(C),tx_blob:C}}return{getAddress:()=>O,signTransaction:T}};var m=async({chain:_,derivationPath:L,transport:R})=>{let{match:N}=await import("ts-pattern");return N(_).returnType().with(X.Chain.THORChain,()=>Promise.resolve(new K_(L,R))).with(X.Chain.Cosmos,()=>Promise.resolve(new z_(L,R))).with(X.Chain.Bitcoin,()=>Promise.resolve(Y0(L,R))).with(X.Chain.BitcoinCash,()=>Promise.resolve(F0(L,R))).with(X.Chain.Dash,()=>Promise.resolve(q0(L,R))).with(X.Chain.Dogecoin,()=>Promise.resolve(Q0(L,R))).with(X.Chain.Litecoin,()=>Promise.resolve(j0(L,R))).with(X.Chain.Zcash,()=>Promise.resolve(C0(L,R))).with(X.Chain.Ripple,()=>Promise.resolve(A0(L,R))).with(X.Chain.Tron,()=>Promise.resolve(M0(L,R))).with(X.Chain.Sui,()=>Promise.resolve(f0(L,R))).with(X.Chain.Near,()=>{return Promise.resolve(D0(L,R))}).with(X.Chain.Arbitrum,X.Chain.Arc,X.Chain.Aurora,X.Chain.Avalanche,X.Chain.Berachain,X.Chain.BinanceSmartChain,X.Chain.Ethereum,X.Chain.Gnosis,X.Chain.Monad,X.Chain.Optimism,X.Chain.Polygon,X.Chain.Base,X.Chain.XLayer,async()=>{let{getProvider:G}=await import("@swapkit/toolboxes/evm"),O={derivationPath:L,provider:await G(_),transport:R};return N(_).with(X.Chain.BinanceSmartChain,()=>B0(O)).with(X.Chain.Avalanche,()=>L0(O)).with(X.Chain.Arbitrum,()=>a_(O)).with(X.Chain.Arc,()=>e_(O)).with(X.Chain.Berachain,()=>$0(O)).with(X.Chain.Optimism,()=>O0(O)).with(X.Chain.Polygon,()=>y0(O)).with(X.Chain.Base,()=>R0(O)).with(X.Chain.Aurora,()=>_0(O)).with(X.Chain.Gnosis,()=>G0(O)).with(X.Chain.Monad,()=>T0(O)).with(X.Chain.XLayer,()=>w0(O)).otherwise(()=>N0(O))}).otherwise(()=>{throw new X.SwapKitError("wallet_chain_not_supported",{chain:_,wallet:X.WalletOption.LEDGER})})};I();var c0=X_.createWallet({connect:({addChain:_,supportedChains:L,walletType:R})=>async function(G,O,{address:B,transport:T}={}){let[w]=y.filterSupportedChains({chains:G,supportedChains:L,walletType:R});if(!w)return!1;let D=O??y.NetworkDerivationPath[w],$=await HL({address:B,chain:w,derivationPath:D,transport:T});return _({...$,chain:w,walletType:y.WalletOption.LEDGER}),!0},directSigningSupport:{[y.Chain.Arbitrum]:!0,[y.Chain.Arc]:!0,[y.Chain.Aurora]:!0,[y.Chain.Avalanche]:!0,[y.Chain.Base]:!0,[y.Chain.Berachain]:!0,[y.Chain.BinanceSmartChain]:!0,[y.Chain.Ethereum]:!0,[y.Chain.Gnosis]:!0,[y.Chain.Monad]:!0,[y.Chain.Bitcoin]:!0,[y.Chain.BitcoinCash]:!0,[y.Chain.Cosmos]:!0,[y.Chain.Dash]:!0,[y.Chain.Dogecoin]:!0,[y.Chain.Litecoin]:!0,[y.Chain.Near]:!0,[y.Chain.Optimism]:!0,[y.Chain.Polygon]:!0,[y.Chain.Ripple]:!0,[y.Chain.Sui]:!0,[y.Chain.THORChain]:!0,[y.Chain.Tron]:!0,[y.Chain.XLayer]:!0},getExtendedPublicKey:l0,name:"connectLedger",supportedChains:[y.Chain.Arbitrum,y.Chain.Arc,y.Chain.Aurora,y.Chain.Avalanche,y.Chain.Base,y.Chain.Berachain,y.Chain.BinanceSmartChain,y.Chain.Bitcoin,y.Chain.BitcoinCash,y.Chain.Cosmos,y.Chain.Dash,y.Chain.Dogecoin,y.Chain.Ethereum,y.Chain.Gnosis,y.Chain.Litecoin,y.Chain.Monad,y.Chain.Near,y.Chain.Optimism,y.Chain.Polygon,y.Chain.Ripple,y.Chain.Sui,y.Chain.THORChain,y.Chain.XLayer,y.Chain.Tron,y.Chain.Zcash],walletType:y.WalletOption.LEDGER}),qL=X_.getWalletSupportedChains(c0);function CL(_,L="t"){if(!_?.includes("=:"))return _;let R=_.includes(`:${L}:`)?_.split(`:${L}:`)[0]:_;return R?.substring(0,R.lastIndexOf(":"))}async function l0(_,L,{accountIndex:R}={}){if(![y.Chain.BitcoinCash,y.Chain.Bitcoin,y.Chain.Dash,y.Chain.Dogecoin,y.Chain.Litecoin,y.Chain.Zcash].includes(_))throw new y.SwapKitError("wallet_chain_not_supported",{chain:_,wallet:y.WalletOption.LEDGER});let N=_,G=await m({chain:N,derivationPath:L});if(!G.getExtendedPublicKey)return;let O=q.getUTXOAccountPath({accountIndex:R,chain:N,derivationPath:L}),B=y.derivationPathToString(O),T=_===y.Chain.Bitcoin||_===y.Chain.Litecoin?B:B.replace(/^m\//,""),w=q.getNetworkForChain(N).bip32.public;try{let D=await G.getExtendedPublicKey(T,w);return{accountIndex:q.getUTXOAccountIndexFromPath(O),path:B,xpub:D}}finally{await G.disconnect?.()}}async function HL({address:_,chain:L,derivationPath:R,transport:N}){switch(L){case y.Chain.BitcoinCash:case y.Chain.Bitcoin:case y.Chain.Dash:case y.Chain.Dogecoin:case y.Chain.Litecoin:case y.Chain.Zcash:{let C=function(f={}){return J(f)},{getUtxoToolbox:G}=await import("@swapkit/toolboxes/utxo"),O=L,B=await m({chain:L,derivationPath:R,transport:N}),T=_??await x({chain:L,ledgerClient:B}),w,D;if(L===y.Chain.Bitcoin){let{BitcoinPsbtLedger:f}=await Promise.resolve().then(() => (V0(),S0)),Y=f(R,N);w={getAddress:Y.getAddress,signTransaction:Y.signTransaction}}else if(L===y.Chain.BitcoinCash||L===y.Chain.Dogecoin||L===y.Chain.Dash||L===y.Chain.Litecoin){let{createLegacyPsbtSigner:f,signLegacyPsbtTransaction:Y}=await Promise.resolve().then(() => (b0(),v0));w=f({address:T,chain:O,legacyClient:B}),D=async(Z)=>{let W=await Y({chain:O,legacyClient:B,tx:Z});return $.broadcastTx(W)}}let $=w?await G(O,{signer:w}):G(O),U=D??$.signAndBroadcastTransaction,M=async(f)=>{let Y=f.feeRate||(await $.getFeeRates())[y.FeeOption.Average],Z=[y.Chain.Bitcoin].includes(L)?f.memo:CL(f.memo),{tx:W,inputs:K}=await $.createTransaction({...f,feeRate:Y,fetchTxHex:!0,memo:Z,sender:T}),S=await B.signTransaction(W,K);return await $.broadcastTx(S)};async function J({accountIndex:f}={}){if(!B.getExtendedPublicKey)return;let Y=q.getUTXOAccountPath({accountIndex:f,chain:O,derivationPath:R}),Z=y.derivationPathToString(Y),W=L===y.Chain.Bitcoin||L===y.Chain.Litecoin?Z:Z.replace(/^m\//,""),K=q.getNetworkForChain(O).bip32.public,S=await B.getExtendedPublicKey(W,K);return{accountIndex:q.getUTXOAccountIndexFromPath(Y),path:Z,xpub:S}}async function Q({accountIndex:f,index:Y,change:Z=!1}){try{let W=q.getUTXOAddressPath({accountIndex:f,chain:O,change:Z,derivationPath:R,index:Y}),K=await m({chain:O,derivationPath:W,transport:N}),S=await x({chain:O,ledgerClient:K});return{accountIndex:q.getUTXOAccountIndexFromPath(W),address:S,change:Z,index:Y,path:y.derivationPathToString(W),pubkey:""}}catch{return}}async function E({accountIndex:f,count:Y,startIndex:Z=0,change:W=!1}){return q.assertDerivationIndex("count",Y),q.assertDerivationIndex("startIndex",Z),(await Promise.all(Array.from({length:Y},(S,o)=>Q({accountIndex:f,change:W,index:Z+o})))).filter((S)=>!!S)}let k=q.createHDWalletHelpers({chain:O,deriveAddress:Q,getBalance:$.getBalance,getUtxos:(f)=>q.getUtxoApi(O).getUtxos({address:f,fetchTxHex:!0})});async function d({utxos:f,recipient:Y,assetValue:Z,memo:W,feeRate:K,feeOptionKey:S,changeAddress:o}){if(!f.length)throw new y.SwapKitError("wallet_ledger_invalid_params",{message:"No UTXOs provided for multi-address transfer"});let Z_=K||(await $.getFeeRates())[S||y.FeeOption.Fast],L_=W?q.compileMemo(W):null,g=[{address:Y,value:Z.getBaseValue("number")}];if(L_)g.push({script:L_,value:0});let u=f.map(({hash:T_,index:w_,value:M_,txHex:W_,witnessUtxo:J_})=>({hash:T_,index:w_,txHex:W_,value:M_,witnessUtxo:J_})),{inputs:B_,outputs:S_}=$.accumulative({chain:O,feeRate:Z_,inputs:u,outputs:g});if(!(B_&&S_))throw new y.SwapKitError("wallet_ledger_connection_error",{message:"Insufficient balance for multi-address transfer"});let{Transaction:g0}=await import("@swapkit/utxo-signer"),V_=new g0({allowLegacyWitnessUtxo:!0,version:1}),x0=o||f[0]?.address||Y;q.addInputsAndOutputs({chain:O,compiledMemo:L_,inputs:B_,outputs:S_,sender:x0,tx:V_});let h0=q.getUTXOAccountPath({chain:O,derivationPath:R}),u0=B_.map((T_)=>{let w_=f.find((m_)=>m_.hash===T_.hash&&m_.index===T_.index),M_=w_?.derivationIndex??0,W_=w_?.isChange??!1,J_=[...h0,Number(W_),M_];return y.derivationPathToString(J_)});if(!B.signTransactionWithMultiplePaths)throw new y.SwapKitError("wallet_ledger_method_not_supported",{method:"signTransactionWithMultiplePaths"});let d0=await B.signTransactionWithMultiplePaths(V_,B_,u0);return $.broadcastTx(d0)}return{...$,...k,address:T,deriveAddressAtIndex:Q,deriveAddresses:E,getExtendedPublicKey:C,getExtendedPublicKeyInfo:J,signAndBroadcastTransaction:U,transfer:M,transferFromMultipleAddresses:d}}case y.Chain.Ethereum:case y.Chain.Avalanche:case y.Chain.Arbitrum:case y.Chain.Arc:case y.Chain.Berachain:case y.Chain.Optimism:case y.Chain.Polygon:case y.Chain.BinanceSmartChain:case y.Chain.Base:case y.Chain.Aurora:case y.Chain.Gnosis:case y.Chain.Monad:case y.Chain.XLayer:{let{getEvmToolboxAsync:G}=await import("@swapkit/toolboxes/evm"),O=await m({chain:L,derivationPath:R,transport:N}),B=await x({chain:L,ledgerClient:O});return{...await G(L,{signer:O}),address:B}}case y.Chain.Cosmos:{let{createSigningStargateClient:G,getDefaultChainFee:O,getMsgSendDenom:B,getCosmosToolbox:T}=await import("@swapkit/toolboxes/cosmos"),w=await m({chain:L,derivationPath:R,transport:N}),D=await x({chain:L,ledgerClient:w});return{...await T(y.Chain.Cosmos,{signer:w}),address:D,transfer:async({assetValue:M,recipient:J,memo:C})=>{if(!M)throw new y.SwapKitError("wallet_ledger_invalid_asset");let Q={amount:[{amount:M.getBaseValue("string"),denom:B(`u${M.symbol}`).toLowerCase()}],fromAddress:D,toAddress:J},E=await y.getRPCUrl(L),k=await G(E,w,"0.007uatom"),{transactionHash:d}=await k.signAndBroadcast(D,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:Q}],O(y.Chain.Cosmos),C);return d}}}case y.Chain.THORChain:{let G=await m({chain:L,derivationPath:R,transport:N}),{getCosmosToolbox:O}=await import("@swapkit/toolboxes/cosmos"),B=O(L,{signer:G}),T=await x({chain:L,ledgerClient:G}),{sign:w}=G;return{...B,address:T,signMessage:w}}case y.Chain.Near:{let{getNearToolbox:G}=await import("@swapkit/toolboxes/near"),O=await m({chain:L,derivationPath:R,transport:N}),B=await O.getAddress();return{...G({signer:O}),address:B}}case y.Chain.Ripple:{let{getRippleToolbox:G}=await import("@swapkit/toolboxes/ripple"),O=await m({chain:L,derivationPath:R,transport:N}),B=O.getAddress();return{...G({signer:O}),address:B}}case y.Chain.Tron:{let{getTronToolbox:G}=await import("@swapkit/toolboxes/tron"),O=await m({chain:L,derivationPath:R,transport:N}),B=await x({chain:L,ledgerClient:O});return{...G({signer:O}),address:B}}case y.Chain.Sui:{let{getSuiToolbox:G}=await import("@swapkit/toolboxes/sui"),O=await m({chain:L,derivationPath:R,transport:N}),B=await x({chain:L,ledgerClient:O});return{...G({signer:O}),address:B}}default:throw new y.SwapKitError("wallet_ledger_chain_not_supported",{chain:L})}}
1
+ var p0=Object.create;var{getPrototypeOf:s0,defineProperty:N_,getOwnPropertyNames:v_,getOwnPropertyDescriptor:r0}=Object,b_=Object.prototype.hasOwnProperty;function c_(_){return this[_]}var t0,a0,e0=(_,L,R)=>{var N=_!=null&&typeof _==="object";if(N){var G=L?t0??=new WeakMap:a0??=new WeakMap,O=G.get(_);if(O)return O}R=_!=null?p0(s0(_)):{};let B=L||!_||!_.__esModule?N_(R,"default",{value:_,enumerable:!0}):R;for(let w of v_(_))if(!b_.call(B,w))N_(B,w,{get:c_.bind(_,w),enumerable:!0});if(N)G.set(_,B);return B},_L=(_)=>{var L=(I_??=new WeakMap).get(_),R;if(L)return L;if(L=N_({},"__esModule",{value:!0}),_&&typeof _==="object"||typeof _==="function"){for(var N of v_(_))if(!b_.call(L,N))N_(L,N,{get:c_.bind(_,N),enumerable:!(R=r0(_,N))||R.enumerable})}return I_.set(_,L),L},I_;var LL=(_)=>_;function RL(_,L){this[_]=LL.bind(null,L)}var Y_=(_,L)=>{for(var R in L)N_(_,R,{get:L[R],enumerable:!0,configurable:!0,set:RL.bind(L,R)})};var j_=(_,L)=>()=>(_&&(L=_(_=0)),L);var e,A_=()=>navigator?.usb,OL=async()=>{let _=A_();if(typeof _?.getDevices!=="function")return{};let{ledgerUSBVendorId:L}=await import("@ledgerhq/devices"),N=(await _?.getDevices()).filter((G)=>G.vendorId===L);if(N.length>0)return N[0];return _?.requestDevice({filters:[{vendorId:L}]})},H=async()=>{let _=await OL();if(!_)throw new e.SwapKitError("wallet_ledger_device_not_found");if(_.opened||await _.open(),_.configuration===null)await _.selectConfiguration(1);try{await _.reset()}catch{}let L=_.configuration??_.configurations?.[0],R=L?.interfaces.find(({alternates:$})=>$.some(({interfaceClass:f})=>f===255))||L?.interfaces.find(({alternates:$})=>$.some(({interfaceClass:f})=>f===3));if(!R)throw await _.close(),new e.SwapKitError("wallet_ledger_connection_error");let N=R.alternates?.find(({interfaceClass:$})=>$===3)?.interfaceClass,G=R.alternates?.find(({interfaceClass:$})=>$===255)?.interfaceClass;if(N&&!G){let $=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await $.isSupported())throw await _.close(),new e.SwapKitError("wallet_ledger_webhid_not_supported");return await $.create()}try{await _.claimInterface(R.interfaceNumber)}catch($){throw await _.close(),new e.SwapKitError("wallet_ledger_connection_claimed",$)}let O=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await O.isSupported())throw new e.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:w}=await import("@ledgerhq/errors"),T=new O(_,R.interfaceNumber),U=($)=>{if(_===$.device)A_()?.removeEventListener("disconnect",U),T._emitDisconnect(new w)};return A_()?.addEventListener("disconnect",U),T};var c=j_(()=>{e=require("@swapkit/helpers")});async function E0({chain:_,indexes:L,publicKey:R,tx:N}){let{getMissingSpendingMetadata:G,getNetworkForChain:O}=await import("@swapkit/toolboxes/utxo");for(let{index:B,...w}of G({chain:_,indexes:L,network:O(_),publicKey:R,tx:N}))N.updateInput(B,w)}var m0={};Y_(m0,{LitecoinPsbtLedger:()=>zL,BitcoinPsbtLedger:()=>AL});function QL(_){switch(_){case"bech32":return"wpkh(@0/**)";case"p2sh":return"sh(wpkh(@0/**))";case"legacy":return"pkh(@0/**)";default:return"wpkh(@0/**)"}}function FL(_){return typeof _==="string"?_:u.derivationPathToString(_)}function K0(_){return _.replace(/^m\//,"").replace(/^\/+/,"")}function qL(_){return _.replace(/^m\//,"").split("/").filter(Boolean).map((L)=>{let R=L.endsWith("'"),N=Number.parseInt(R?L.slice(0,-1):L,10);return R?(N|2147483648)>>>0:N})}function CL(_){for(let L=0;L<_.inputsLength;L++){let R=_.getInput(L);if(R.nonWitnessUtxo&&R.witnessUtxo)_.updateInput(L,{witnessUtxo:void 0})}}function HL(_,L){let R=_.getInput(L);return Boolean(R.bip32Derivation?.length)}var k0,S0,u,jL,V0=({chain:_})=>{return(L,R)=>{let N,G;async function O(){if(!N){let F=R??await H(),{AppClient:z}=await import("ledger-bitcoin");N=new z(F)}return N}async function B(){if(!G)G=await(await O()).getMasterFingerprint();return G}let w=K0(L?FL(L):"84'/0'/0'/0/0"),T=w.split("/").filter(Boolean),U=T.slice(0,3).join("/"),$=T.slice(3),f=Number($[0]??0),M=Number($[1]??0),W=u.getWalletFormatFor(`m/${w}`),q=QL(W),j,k;async function S(){let F=await O(),z=await B();if(!j)j=await F.getExtendedPubkey(`m/${U}`);let{DefaultWalletPolicy:D}=await import("ledger-bitcoin"),Z=new D(q,`[${z}/${U}]${j}`);return{app:F,fpr:z,policy:Z,xpub:j}}async function d(){if(!k){let{xpub:F}=await S(),D=S0.HDKey.fromExtendedKey(F).derive(`m/${f}/${M}`);if(!D.publicKey)throw new u.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot derive leaf pubkey for ${_}`});k=D.publicKey}return k}return{connect:async()=>{await O()},getAddress:async()=>{let{app:F,policy:z}=await S(),D=await F.getWalletAddress(z,null,f,M,!1);if(!D)throw new u.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${_} address from ledger derivation path: ${w}`});return D},getExtendedPublicKey:async(F=`m/${U}`)=>{return(await O()).getExtendedPubkey(`m/${K0(F)}`)},getPublicKey:d,signTransaction:async(F)=>{let{app:z,policy:D,fpr:Z}=await S(),C=Number.parseInt(Z,16)>>>0,A=qL(w),I=Array.from({length:F.inputsLength},(i,v)=>v).filter((i)=>!HL(F,i));if(I.length>0){let i=await d();for(let v of I)F.updateInput(v,{bip32Derivation:[[i,{fingerprint:C,path:A}]]})}if(W==="legacy")CL(F);if(W==="p2sh")await E0({chain:jL[_],publicKey:await d(),tx:F});let V=k0.base64.encode(F.toPSBT(0)),r=await z.signPsbt(V,D,null);for(let[i,v]of r)F.updateInput(i,{partialSig:[[new Uint8Array(v.pubkey),new Uint8Array(v.signature)]]});return F}}}},AL,zL;var P0=j_(()=>{c();k0=require("@scure/base"),S0=require("@scure/bip32"),u=require("@swapkit/helpers"),jL={bitcoin:u.Chain.Bitcoin,litecoin:u.Chain.Litecoin};AL=V0({chain:"bitcoin"}),zL=V0({chain:"litecoin"})});var c0={};Y_(c0,{signLegacyPsbtTransaction:()=>b0,extractInputsFromPsbt:()=>v0,createLegacyPsbtSigner:()=>EL});async function v0(_,L){let{RawTx:R}=await import("@swapkit/utxo-signer"),{getUtxoApi:N}=await import("@swapkit/toolboxes/utxo"),G=[];for(let O=0;O<_.inputsLength;O++){let B=_.getInput(O);if(!B.txid||B.index===void 0)throw Error(`PSBT input ${O} is missing txid/index`);let w=M_.hex.encode(B.txid),T=B.nonWitnessUtxo?M_.hex.encode(R.encode(B.nonWitnessUtxo)):await N(L).getRawTx(w);if(!T)throw new I0.SwapKitError("wallet_ledger_invalid_params",{chain:L,inputIndex:O,reason:"Unable to resolve previous transaction hex for Ledger signing",txid:w});let U=B.witnessUtxo?{script:B.witnessUtxo.script,value:Number(B.witnessUtxo.amount)}:void 0,$=B.index!==void 0?B.nonWitnessUtxo?.outputs?.[B.index]:void 0,f=U?.value??($?Number($.amount):0);G.push({hash:w,index:B.index,txHex:T,value:f,witnessUtxo:U})}return G}async function b0({legacyClient:_,chain:L,tx:R}){let N=await v0(R,L);return _.signTransaction(R,N)}function EL({legacyClient:_,chain:L,address:R}){return{getAddress:async()=>R,signTransaction:async(N)=>{let G=await b0({chain:L,legacyClient:_,tx:N}),{Transaction:O}=await import("@swapkit/utxo-signer");return O.fromRaw(M_.hex.decode(G))}}}var M_,I0;var l0=j_(()=>{M_=require("@scure/base"),I0=require("@swapkit/helpers")});var VL={};Y_(VL,{ledgerWallet:()=>g0,getLedgerExtendedPublicKey:()=>x0,LEDGER_SUPPORTED_CHAINS:()=>KL});module.exports=_L(VL);var y=require("@swapkit/helpers"),Q=require("@swapkit/toolboxes/utxo"),X_=require("@swapkit/wallet-core");var J=require("@swapkit/helpers"),o=async({chain:_,ledgerClient:L})=>{if(!L)return"";switch(_){case J.Chain.Cosmos:case J.Chain.THORChain:return L.connect();case J.Chain.Ethereum:case J.Chain.BinanceSmartChain:case J.Chain.Avalanche:case J.Chain.Polygon:case J.Chain.Arbitrum:case J.Chain.Arc:case J.Chain.Berachain:case J.Chain.Optimism:case J.Chain.Base:case J.Chain.Aurora:case J.Chain.Gnosis:case J.Chain.Monad:case J.Chain.XLayer:return L.getAddress();case J.Chain.Bitcoin:case J.Chain.BitcoinCash:case J.Chain.Dash:case J.Chain.Dogecoin:case J.Chain.Litecoin:case J.Chain.Zcash:{let R=L;await R.connect();let N=await R.getAddress();return _===J.Chain.BitcoinCash?N.replace("bitcoincash:",""):N}case J.Chain.Near:return await L.getAddress();case J.Chain.Ripple:return L.getAddress();case J.Chain.Tron:return L.getAddress();case J.Chain.Sui:return L.connect();default:throw new J.SwapKitError("wallet_chain_not_supported",{chain:_,wallet:J.WalletOption.LEDGER})}};var X=require("@swapkit/helpers");var s=require("@swapkit/helpers");var l=require("@swapkit/helpers");var H_=require("@swapkit/helpers");var t=85,Q_=250;var p={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},U_={ADD:1,INIT:0,LAST:2},F_={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},a={JSON:0},n={NoError:36864},l_={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error",36864:"No errors",36865:"Device is busy"};function b(_){if(_ in l_)return l_[_];return`Unknown Status Code: ${_}`}function NL(_){return typeof _==="object"&&_!==null&&!Array.isArray(_)&&!(_ instanceof Date)}function m(_){if(_){if(NL(_)){if(Object.hasOwn(_,"statusCode"))return{error_message:b(_.statusCode),return_code:_.statusCode};if(Object.hasOwn(_,"return_code")&&Object.hasOwn(_,"error_message"))return _}return{error_message:_.toString(),return_code:65535}}return{error_message:_.toString(),return_code:65535}}function q_(_){return _.send(85,p.GET_VERSION,0,0).then((L)=>{let R=L.slice(-2),N=R[0]*256+R[1],G=0;if(L.length>=9)G=(L[5]<<24)+(L[6]<<16)+(L[7]<<8)+(L[8]<<0);return{device_locked:L[4]===1,error_message:b(N),major:L[1],minor:L[2],patch:L[3],return_code:N,target_id:G.toString(16),test_mode:L[0]!==0}},m)}var G_=require("@swapkit/helpers");function g_(_){if(_==null||_.length<3)throw new G_.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too short"});if(_.length>10)throw new G_.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too long"});let L=Buffer.alloc(1+4*_.length);L.writeUInt8(_.length,0);for(let R=0;R<_.length;R+=1){let N=_[R]||0;if(R<3)N|=2147483648;L.writeInt32LE(N,1+R*4)}return L}function C_(_,L,R,N,G=a.JSON){return _.transport.send(t,p.SIGN_SECP256K1,L,G,N,[n.NoError,27012,27264]).then((O)=>{let B=O.slice(-2),w=B[0]*256+B[1],T=b(w);if(w===27264||w===27012)T=`${T} : ${O.slice(0,O.length-2).toString("ascii")}`;let U=null;if(O.length>2)U=O.slice(0,O.length-2);return{error_message:T,return_code:w,signature:U}},m)}function GL(_){if(_.length!==65)throw new G_.SwapKitError("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let L=_.slice(33,65),R=Buffer.from([2+(L[L.length-1]&1)]);return Buffer.concat([R,_.slice(1,33)])}function x_(_,L){return _.transport.send(t,p.INS_PUBLIC_KEY_SECP256K1,0,0,L,[n.NoError]).then((R)=>{let N=R.slice(-2),G=N[0]*256+N[1],O=Buffer.from(R.slice(0,65));return{compressed_pk:GL(O),error_message:b(G),pk:O,return_code:G}},m)}function h_(_){if(!_||_.length!==5)throw new G_.SwapKitError("wallet_ledger_invalid_params",{reason:"Path must be exactly 5 elements"});let L=Buffer.alloc(20);return L.writeUInt32LE(2147483648+_[0],0),L.writeUInt32LE(2147483648+_[1],4),L.writeUInt32LE(2147483648+_[2],8),L.writeUInt32LE(_[3],12),L.writeUInt32LE(_[4],16),L}function u_(_,L,R,N,G=a.JSON){let O=U_.ADD;if(L===1)O=U_.INIT;if(L===R)O=U_.LAST;return C_(_,O,0,N,G)}function d_(_,L){return _.transport.send(t,p.GET_ADDR_SECP256K1,0,0,L,[n.NoError]).then((R)=>{let N=R.slice(-2),G=N[0]*256+N[1];return{compressed_pk:Buffer.from(R.slice(0,33)),error_message:b(G),pk:"OBSOLETE PROPERTY",return_code:G}},m)}class O_{transport;versionResponse;constructor(_){if(!_)throw new H_.SwapKitError("wallet_ledger_transport_not_defined");this.transport=_}static serializeHRP(_){if(_==null||_.length<3||_.length>83)throw new H_.SwapKitError("wallet_ledger_invalid_params",{reason:"Invalid HRP"});let L=Buffer.alloc(1+_.length);return L.writeUInt8(_.length,0),L.write(_,1),L}async serializePath(_){if(this.versionResponse=await q_(this.transport),this.versionResponse.return_code!==n.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return g_(_);case 2:return h_(_);default:return Buffer.alloc(0)}}async signGetChunks(_,L){let R=await this.serializePath(_),N=[];N.push(R);for(let G=0;G<L.length;G+=Q_){let O=G+Q_;if(G>L.length)O=L.length;N.push(L.slice(G,O))}return N}async getVersion(){try{return this.versionResponse=await q_(this.transport),this.versionResponse}catch(_){return m(_)}}appInfo(){return this.transport.send(176,1,0,0).then((_)=>{let L=_.readUInt16BE(_.length-2),R="",N="",G=0,O=0;if(_[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let B=_[1];R=_.slice(2,2+B).toString("ascii");let w=2+B,T=_[w];w+=1,N=_.slice(w,w+T).toString("ascii"),w+=T;let U=_[w];return w+=1,G=U,O=_[w],{appName:R,appVersion:N,error_message:b(L),flag_onboarded:(O&4)!==0,flag_pin_validated:(O&128)!==0,flag_recovery:(O&1)!==0,flag_signed_mcu_code:(O&2)!==0,flagLen:G,flagsValue:O,return_code:L}},m)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[n.NoError,28160]).then((_)=>{let L=_.slice(-2),R=L[0]*256+L[1];if(R===28160)return{error_message:"This command is only available in the Dashboard",return_code:R};let N=_.slice(0,4).toString("hex"),G=4,O=_[G];G+=1;let B=_.slice(G,G+O).toString();G+=O;let w=_[G];G+=1;let T=_.slice(G,G+w).toString("hex");G+=w;let U=_[G];G+=1;let $=_.slice(G,G+U);if($[U-1]===0)$=_.slice(G,G+U-1);let f=$.toString();return{error_message:b(R),flag:T,mcuVersion:f,return_code:R,seVersion:B,targetId:N}},m)}async publicKey(_){try{let L=await this.serializePath(_);switch(this.versionResponse.major){case 1:return x_(this,L);case 2:{let R=Buffer.concat([O_.serializeHRP("thor"),L]);return d_(this,R)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(L){return m(L)}}async getAddressAndPubKey(_,L,R=!1){try{let N=await this.serializePath(_),G=Buffer.concat([O_.serializeHRP(L),N]),O=await this.transport.send(t,p.GET_ADDR_SECP256K1,R?F_.SHOW_ADDRESS_IN_DEVICE:F_.ONLY_RETRIEVE,0,G,[n.NoError]),B=Buffer.from(O.slice(0,33)),w=Buffer.from(O.slice(33,-2)).toString(),T=O.readUInt16BE(O.length-2);return{bech32_address:w,compressed_pk:B,error_message:b(T),return_code:T}}catch(N){return m(N)}}showAddressAndPubKey(_,L){return this.getAddressAndPubKey(_,L,!0)}signSendChunk(_,L,R,N=a.JSON){switch(this.versionResponse.major){case 1:return C_(this,_,L,R,N);case 2:return u_(this,_,L,R,N);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(_,L,R=a.JSON){let N=Buffer.from(L),G=[],O;try{G=await this.signGetChunks(_,N),O=await this.signSendChunk(1,G.length,G[0],R)}catch(w){m(w)}let B={error_message:O.error_message,return_code:O.return_code,signature:null};for(let w=1;w<G.length;w+=1)if(B=await this.signSendChunk(1+w,G.length,G[w],R),B.return_code!==n.NoError)break;return{error_message:B.error_message,return_code:B.return_code,signature:B.signature}}}c();class y_{ledgerTimeout=50000;derivationPath=l.NetworkDerivationPath.GAIA;transport;ledgerApp;chain="thor";injectedTransport;constructor(_){if(this.injectedTransport=_,_)this.transport=_}checkOrCreateTransportAndLedger=async(_=!1)=>{if(!_&&this.transport&&this.ledgerApp)return;try{if(!this.transport||_&&!this.injectedTransport)this.transport=this.injectedTransport??await H();switch(this.chain){case"thor":{this.ledgerApp=_||!this.ledgerApp?new O_(this.transport):this.ledgerApp;break}case"cosmos":{let R=(await import("@ledgerhq/hw-app-cosmos")).default;this.ledgerApp=_||!this.ledgerApp?new R(this.transport):this.ledgerApp}}return this.ledgerApp}catch(L){throw new l.SwapKitError("wallet_ledger_connection_error",L)}};validateResponse=(_,L)=>{switch(_){case l.LedgerErrorCode.NoError:return;case l.LedgerErrorCode.LockedDevice:throw new l.SwapKitError("wallet_ledger_device_locked",{message:`Ledger is locked: ${L}`});case l.LedgerErrorCode.TC_NotFound:throw new l.SwapKitError("wallet_ledger_device_not_found");default:break}}}class z_ extends y_{pubKey=null;derivationPath;constructor(_=s.NetworkDerivationPath.GAIA,L){super(L);this.chain="cosmos",this.derivationPath=s.derivationPathToString(_)}connect=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{publicKey:_,address:L}=await this.getAddressAndPubKey();return this.pubKey=Buffer.from(_,"hex").toString("base64"),L};getAddressAndPubKey=async()=>{return await this.checkOrCreateTransportAndLedger(!0),await this.ledgerApp.getAddress(this.derivationPath,this.chain)};signTransaction=async(_,L="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:R,error_message:N,signature:G}=await this.ledgerApp.sign(this.derivationPath,_);if(!this.pubKey)throw new s.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(R,N),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:L,signature:G}]};signAmino=async(_,L)=>{await this.checkOrCreateTransportAndLedger(!0);let R=await this.getAccounts();if(R.findIndex((M)=>M.address===_)===-1)throw new s.SwapKitError("wallet_ledger_address_not_found",{address:_});let G=await import("@cosmjs/amino"),O=G.encodeSecp256k1Signature??G.default?.encodeSecp256k1Signature,B=G.serializeSignDoc??G.default?.serializeSignDoc,w=await import("@cosmjs/crypto"),T=w.Secp256k1Signature??w.default?.Secp256k1Signature,U=B(L),$=await this.ledgerApp.sign(this.derivationPath,U);this.validateResponse($.return_code,$.error_message);let f=T.fromDer($.signature).toFixedLength();return{signature:O(R[0].pubkey,f),signed:L}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAddressAndPubKey();return[{address:_.address,algo:"secp256k1",pubkey:Buffer.from(_.publicKey,"hex")}]}}c();var Y=require("@swapkit/helpers"),a_=require("ethers");var o_={apex:"apexp",europa:"flex",nanoS:"nanos",nanoSP:"nanosp",nanoX:"nanox",stax:"stax"};async function n_(_,L=fetch){let R=o_[_];if(!R)return null;let N=`https://crypto-assets-service.api.ledger.com/v1/certificates?output=descriptor&public_key_usage=network&target_device=${R}`,G=await L(N);if(!G.ok)return null;let B=(await G.json())[0]?.descriptor,w=B?.signatures?.prod;if(!(B?.data&&w))return null;return`${B.data}${yL(w)}`}async function i_(_,L){await _.send(176,6,12,0,Buffer.from(L,"hex"))}async function p_(_,L,R=fetch){let N=o_[L];if(!N)return null;let G=`https://crypto-assets-service.api.ledger.com/v1/networks?chain_id=${_}&output=chain_id,descriptors,icons`,O=await R(G);if(!O.ok)return null;let w=(await O.json()).find(($)=>$.chain_id===_),T=w?.descriptors?.[N],U=T?.signatures?.prod;if(!(T?.data&&U))return null;return{data:T.data,icon:w?.icons?.[N],signature:U}}function yL(_){return s_(21,Buffer.from(_,"hex")).toString("hex")}function s_(_,L){return Buffer.concat([Buffer.from([_,L.length]),L])}function BL({data:_,signature:L}){let R=Buffer.concat([Buffer.from(_,"hex"),s_(21,Buffer.from(L,"hex"))]),N=Buffer.alloc(2);return N.writeUInt16BE(R.length,0),Buffer.concat([N,R])}async function E_(_,L,R){for(let N=0;N<R.length;N+=255){let G=N===0?1:0,O=R.subarray(N,N+255);await _.send(224,48,G,L,O)}}async function r_(_,L){let R=BL(L);if(await E_(_,0,R),!L.icon)return{iconAccepted:!1};try{return await E_(_,1,Buffer.from(L.icon,"hex")),{iconAccepted:!0}}catch{return await E_(_,0,R),{iconAccepted:!1}}}var wL=27264,t_=Number(Y.ChainId.Arc);function TL(_){return _ instanceof Error&&"statusCode"in _&&_.statusCode===wL}function $L(_){return Object.values(_??{}).some((L)=>Array.isArray(L)&&L.length)}function UL(_){if(typeof _==="number")return _;let L=_.startsWith("0x")?_.slice(2):_;return Number.parseInt(L||"0",16)}class E extends a_.AbstractSigner{chainId=Y.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;transport;injectedTransport;arcNetworkRegistered=!1;constructor({provider:_,derivationPath:L=Y.NetworkDerivationPath.OP,chainId:R=Y.ChainId.Optimism,transport:N}){super(_);this.chainId=R||Y.ChainId.Ethereum,this.derivationPath=typeof L==="string"?L:Y.derivationPathToString(L),this.injectedTransport=N,Object.defineProperty(this,"provider",{enumerable:!0,value:_||null,writable:!1})}connect=(_)=>new E({chainId:this.chainId,derivationPath:this.derivationPath,provider:_,transport:this.transport??this.injectedTransport});checkOrCreateTransportAndLedger=async()=>{await this.createTransportAndLedger()};createTransportAndLedger=async()=>{if(this.ledgerApp)return;this.transport||=this.injectedTransport??await H();let _=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new _(this.transport)};getAddress=async()=>{let _=await this.getAddressAndPubKey();if(!_)throw new Y.SwapKitError("wallet_ledger_failed_to_get_address");return _.address};getAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath)};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signMessage=async(_)=>{let{Signature:L}=await import("ethers");await this.createTransportAndLedger();let R=await this.ledgerApp?.signPersonalMessage(this.derivationPath,_);if(!R)throw new Y.SwapKitError("wallet_ledger_signing_error");return R.r=`0x${R.r}`,R.s=`0x${R.s}`,L.from(R).serialized};sendTransaction=async(_)=>{if(!this.provider)throw new Y.SwapKitError("wallet_ledger_no_provider");let L=await this.signTransaction(_);return await this.provider.broadcastTransaction(L)};signTypedData=async(_,L,R,N)=>{let{buildEIP712DomainType:G}=await import("@swapkit/toolboxes/evm"),{Signature:O,TypedDataEncoder:B}=await import("ethers");await this.createTransportAndLedger();let{EIP712Domain:w,...T}=L,U=N??B.from(T).primaryType,$;try{$=await this.ledgerApp?.signEIP712Message(this.derivationPath,{domain:_,message:R,primaryType:U,types:{EIP712Domain:G(_),...T}})}catch(f){let M=f instanceof Error&&"statusCode"in f;if(!M||M&&f.statusCode===27013)throw f;let W=B.hashDomain(_).slice(2),q=B.from(T).hash(R).slice(2);$=await this.ledgerApp?.signEIP712HashedMessage(this.derivationPath,W,q)}if(!$)throw new Y.SwapKitError("wallet_ledger_signing_error");return $.r=`0x${$.r}`,$.s=`0x${$.s}`,O.from($).serialized};signTransaction=async(_)=>{let{Transaction:L}=await import("ethers");await this.createTransportAndLedger();let R=_.nonce??void 0,N=R===void 0?await this.provider?.getTransactionCount(_.from||await this.getAddress()):void 0,G={chainId:_.chainId||this.chainId,data:_.data,gasLimit:_.gasLimit,..._.gasPrice&&{gasPrice:_.gasPrice},...!_.gasPrice&&_.maxFeePerGas&&{maxFeePerGas:_.maxFeePerGas,maxPriorityFeePerGas:_.maxPriorityFeePerGas},nonce:R!==void 0?Number(R.toString()):N,to:_.to?.toString(),type:_.type&&!Number.isNaN(_.type)?_.type:_.maxFeePerGas?2:0,value:_.value},O=L.from(G).unsignedSerialized.slice(2),{ledgerService:B}=await import("@ledgerhq/hw-app-eth"),w=Number(G.chainId),T=w===t_,U=await B.resolveTransaction(O,{},{erc20:!0,externalPlugins:!0}).catch((q)=>{if(!T)throw q;return console.warn("Ledger: could not fetch clear-signing metadata for Arc, signing blind"),null});if(T&&!this.arcNetworkRegistered)await this.registerNetworkOnDevice(w);let $=await this.signWithLedgerApp(O,U,w);if(!$)throw new Y.SwapKitError("wallet_ledger_signing_error");let{r:f,s:M,v:W}=$;return L.from({...G,signature:{r:`0x${f}`,s:`0x${M}`,v:UL(W)}}).serialized};signWithLedgerApp=async(_,L,R)=>{try{return await this.ledgerApp?.signTransaction(this.derivationPath,_,L)}catch(N){if(!(R===t_&&TL(N)&&$L(L)))throw N;return console.warn("Ledger: the app rejected the Arc metadata, signing blind"),await this.ledgerApp?.signTransaction(this.derivationPath,_,null)}};registerNetworkOnDevice=async(_)=>{let L=this.transport?.deviceModel?.id;if(!(this.transport&&L))return;try{let[R,N]=await Promise.all([p_(_,L),n_(L)]);if(!R)return;if(N)await i_(this.transport,N);await r_(this.transport,R),this.arcNetworkRegistered=!0}catch{}}}var e_=(_)=>new E({..._,chainId:Y.ChainId.Arbitrum}),_0=(_)=>new E({..._,chainId:Y.ChainId.Arc}),L0=(_)=>new E({..._,chainId:Y.ChainId.Aurora}),R0=(_)=>new E({..._,chainId:Y.ChainId.Avalanche}),N0=(_)=>new E({..._,chainId:Y.ChainId.Base}),G0=(_)=>new E({..._,chainId:Y.ChainId.Ethereum}),O0=(_)=>new E({..._,chainId:Y.ChainId.Gnosis}),y0=(_)=>new E({..._,chainId:Y.ChainId.Optimism}),B0=(_)=>new E({..._,chainId:Y.ChainId.Polygon}),w0=(_)=>new E({..._,chainId:Y.ChainId.BinanceSmartChain}),T0=(_)=>new E({..._,chainId:Y.ChainId.Monad}),$0=(_)=>new E({..._,chainId:Y.ChainId.XLayer}),U0=(_)=>new E({..._,chainId:Y.ChainId.Berachain});c();async function f0(_,L){let R=(await import("@ledgerhq/hw-app-near")).default,{Chain:N,NetworkDerivationPath:G,SwapKitError:O}=await import("@swapkit/helpers"),B=L??await H(),w=new R(B),T=(_||G[N.Near]).join("'/").concat("'"),{address:U,publicKey:$}=await w.getAddress(T);return{getAddress(){return Promise.resolve(U)},async getPublicKey(){let{PublicKey:M}=await import("@near-js/crypto");return M.fromString(`ed25519:${$}`)},signDelegateAction(M){return Promise.reject(new O("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(M,W,q,j,k){return Promise.reject(new O("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(M){let{Signature:W,SignedTransaction:q}=await import("@near-js/transactions");try{let j=await w.signTransaction(M.encode(),T);if(!j)throw Error("Signature undefined");let k=new W({data:j,keyType:0}),S=new q({signature:k,transaction:M});return[j,S]}catch(j){throw new O("wallet_ledger_signing_error",{error:j})}}}}c();var K=require("@swapkit/helpers");class D0{derivationPath;ledgerApp=null;address=null;publicKey=null;injectedTransport;constructor(_,L){this.derivationPath=typeof _==="string"?_:K.derivationPathToString(_||K.NetworkDerivationPath[K.Chain.Sui]),this.injectedTransport=L}getLedgerPath(){return this.derivationPath.replace(/^m\//,"").replace(/\/(\d+)\/(\d+)$/,"/$1'/$2'")}async createTransportAndLedger(){if(this.ledgerApp)return;let _=this.injectedTransport??await H(),L=(await import("@ledgerhq/hw-app-sui")).default;this.ledgerApp=new L(_)}async connect(){if(await this.createTransportAndLedger(),!this.ledgerApp)throw new K.SwapKitError("wallet_ledger_transport_error");let _=this.getLedgerPath(),L=await this.ledgerApp.getPublicKey(_);if(!L?.publicKey)throw new K.SwapKitError("wallet_ledger_failed_to_get_address");return this.publicKey=L.publicKey,this.address=`0x${Buffer.from(L.address).toString("hex")}`,this.address}toSuiAddress(){if(!this.address)throw new K.SwapKitError("wallet_ledger_failed_to_get_address");return this.address}async getAddress(){if(this.address)return this.address;return await this.connect()}async signTransaction(_){let L=_ instanceof Uint8Array?_:_.transaction;if(await this.createTransportAndLedger(),!this.ledgerApp)throw new K.SwapKitError("wallet_ledger_transport_error");if(!this.publicKey)throw new K.SwapKitError("wallet_ledger_failed_to_get_address");try{let R=this.getLedgerPath(),N=new Uint8Array(3+L.length);N[0]=0,N[1]=0,N[2]=0,N.set(L,3);let G=await this.ledgerApp.signTransaction(R,N);if(!G?.signature)throw new K.SwapKitError("wallet_ledger_signing_error");let O=this.publicKey.length===33?this.publicKey.slice(1):this.publicKey;if(O.length!==32)throw new K.SwapKitError("wallet_ledger_signing_error",{error:"Invalid public key length"});let B=new Uint8Array(97);B[0]=0,B.set(G.signature,1),B.set(O,65);let w=Buffer.from(B).toString("base64");return{bytes:Buffer.from(L).toString("base64"),signature:w}}catch(R){throw new K.SwapKitError("wallet_ledger_signing_error",{error:R})}}}var M0=(_,L)=>new D0(_,L);var D_=require("@scure/base"),__=require("@swapkit/helpers");var X0=require("@scure/base"),g=require("@swapkit/helpers"),f_=(_)=>{if(_.length<64)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"Too short"});if(_[0]!==48)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(_[1]+2!==_.length)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(_[2]!==2)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let L=_[3],R=_.slice(4,L+4);if(R.length===33&&R[0]===0)R=R.slice(1,33);else if(R.length===33)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"r too long"});while(R.length<32)R.unshift(0);if(_[L+4]!==2)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let N=_[L+5];if(4+L+2+N!==_.length)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let G=_.slice(L+6,_.length);if(G.length===33&&G[0]===0)G=G.slice(1,33);else if(G.length===33)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"s too long"});while(G.length<32)G.unshift(0);if(R.length!==32||G.length!==32)throw new g.SwapKitError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return X0.base64.encode(Buffer.concat([R,G]))};function fL(_){if(typeof _==="string")return _;let L=_.chain?.toUpperCase(),R=(_.symbol||_.ticker||"").toUpperCase();if(!(L&&R))return R||L||"";if(_.synth)return`${L}/${R}`;return`${L}.${R}`}function DL(_){return{..._,msgs:_.msgs.map((L)=>{if(!L.type.includes("MsgDeposit"))return L;let R=L.value.coins;if(!Array.isArray(R))return L;return{...L,value:{...L.value,coins:R.map((N)=>({...N,asset:fL(N.asset)}))}}})}}class K_ extends y_{pubKey=null;derivationPath;constructor(_=__.NetworkDerivationPath.THOR,L){super(L);this.chain="thor",this.derivationPath=_}get pubkey(){return this.pubKey}connect=async()=>{await this.checkOrCreateTransportAndLedger();let{compressed_pk:_,bech32_address:L}=await this.getAddressAndPubKey();return this.pubKey=D_.base64.encode(_),L};getAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.ledgerApp.getAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(_.return_code,_.error_message),_};showAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.ledgerApp.showAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(_.return_code,_.error_message),_};signTransaction=async(_,L="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:R,error_message:N,signature:G}=await this.ledgerApp.sign(this.derivationPath,_);if(!this.pubKey)throw new __.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(R,N),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:L,signature:f_(G)}]};signAmino=async(_,L)=>{await this.checkOrCreateTransportAndLedger(!0);let R=(await this.getAccounts()).find(($)=>$.address===_);if(!R)throw new __.SwapKitError("wallet_ledger_address_not_found",{address:_});let N=await import("@cosmjs/amino"),G=N.encodeSecp256k1Signature??N.default?.encodeSecp256k1Signature,O=N.serializeSignDoc??N.default?.serializeSignDoc,B=DL(L),{return_code:w,error_message:T,signature:U}=await this.ledgerApp.sign(this.derivationPath,O(B));return this.validateResponse(w,T),{signature:G(R.pubkey,D_.base64.decode(f_(U))),signed:L}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{bech32_address:_,compressed_pk:L}=await this.getAddressAndPubKey();return this.pubKey=D_.base64.encode(L),[{address:_,algo:"secp256k1",pubkey:L}]};sign=async(_)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:L,error_message:R,signature:N}=await this.ledgerApp.sign(this.derivationPath,_);if(!this.pubKey)throw new __.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(L,R),f_(N)}}c();var x=require("@swapkit/helpers");class Z0{derivationPath;ledgerApp=null;ledgerTimeout=50000;injectedTransport;constructor(_,L){this.derivationPath=typeof _==="string"?_:x.derivationPathToString(_||x.NetworkDerivationPath.TRON),this.injectedTransport=L}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let _=this.injectedTransport??await H(),L=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new L(_)};getAddress=async()=>{let _=await this.getAddressAndPubKey();if(!_)throw new x.SwapKitError("wallet_ledger_failed_to_get_address");return _.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let _=await this.ledgerApp?.getAddress(this.derivationPath);if(!_)throw new x.SwapKitError("wallet_ledger_failed_to_get_address");return{address:_.address,publicKey:_.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(_)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new x.SwapKitError("wallet_ledger_transport_error");try{let L=await this.ledgerApp.signTransaction(this.derivationPath,_.raw_data_hex,[]);if(!L)throw new x.SwapKitError("wallet_ledger_signing_error");return{..._,signature:[L]}}catch(L){throw new x.SwapKitError("wallet_ledger_signing_error",{error:L})}}}var W0=(_,L)=>new Z0(_,L);c();var B_=require("@scure/base"),h=require("@swapkit/helpers"),Y0=["bitcoin-cash","dash","dogecoin","zcash"],J0=({tx:_,inputUtxos:L,btcApp:R,derivationPath:N,chain:G},O)=>{let B=L.map((W)=>{return[R.splitTransaction(W.txHex||"",!Y0.includes(G),G==="zcash"),W.index,void 0,void 0]}),w=B_.hex.encode(_.unsignedTx),T=R.splitTransaction(w,!0),U=R.serializeTransactionOutputs(T).toString("hex"),$=h.getWalletFormatFor(N),f=$!=="legacy",M={additionals:$==="bech32"?["bech32"]:[],associatedKeysets:B.map(()=>N),inputs:B,outputScriptHex:U,segwit:f,useTrustedInputForSegwit:f};return R.createPaymentTransaction({...M,...O})},ML=({tx:_,inputUtxos:L,btcApp:R,derivationPaths:N,chain:G},O)=>{if(N.length!==L.length)throw new h.SwapKitError("wallet_ledger_invalid_params",{message:`Derivation paths count (${N.length}) must match inputs count (${L.length})`});let B=L.map((W)=>{return[R.splitTransaction(W.txHex||"",!Y0.includes(G),G==="zcash"),W.index,void 0,void 0]}),w=B_.hex.encode(_.unsignedTx),T=R.splitTransaction(w,!0),U=R.serializeTransactionOutputs(T).toString("hex"),$=h.getWalletFormatFor(N[0]??""),f=$!=="legacy",M={additionals:$==="bech32"?["bech32"]:[],associatedKeysets:N,inputs:B,outputScriptHex:U,segwit:f,useTrustedInputForSegwit:f};return R.createPaymentTransaction({...M,...O})},L_=({chain:_,additionalSignParams:L})=>{return(R,N)=>{let G,O=null;async function B(){O||=N??await H();let f=(await import("@ledgerhq/hw-app-btc")).default;return G||=new f({currency:_,transport:O}),G}async function w(){return G||await B()}async function T(){if(!N)await O?.close?.();G=void 0,O=null}let U=typeof R==="string"?R:h.derivationPathToString(R),$=h.getWalletFormatFor(U);return{connect:async()=>{await w()},disconnect:T,getAddress:async()=>{let{toCashAddress:f}=await import("@swapkit/toolboxes/utxo"),M=await w(),{bitcoinAddress:W}=await M.getWalletPublicKey(U,{format:$});if(!W)throw new h.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${_} address from ledger derivation path: ${U}`});return _==="bitcoin-cash"&&$==="legacy"?f(W).replace(/(bchtest:|bitcoincash:)/,""):W},getExtendedPublicKey:async(f="84'/0'/0'",M=76067358)=>{return(await w()).getWalletXpub({path:f,xpubVersion:M})},signPCZT:async(f)=>{if(_!=="zcash")throw new h.SwapKitError("wallet_ledger_chain_not_supported",{message:"PCZT signing is only supported for Zcash"});let M=await w(),{ZcashTransaction:W,Script:q}=await import("@swapkit/utxo-signer"),j=f.getGlobal(),k=new W({consensusBranchId:j.consensusBranchId,expiryHeight:j.expiryHeight,lockTime:j.lockTime,version:j.txVersion,versionGroupId:j.versionGroupId}),S=[];for(let D=0;D<f.inputsLength;D++){let Z=f.getInput(D);k.addInput({index:Z.index,script:new Uint8Array,sequence:Z.sequence??4294967295,txid:Z.txid,value:Z.value}),S.push({hash:B_.hex.encode(new Uint8Array([...Z.txid].reverse())),index:Z.index,txHex:XL(Z,j),value:Number(Z.value),witnessUtxo:{script:Z.scriptPubkey,value:Number(Z.value)}})}for(let D=0;D<f.outputsLength;D++){let Z=f.getOutput(D);k.addOutput({amount:Z.value,script:Z.scriptPubkey})}let d=await J0({btcApp:M,chain:_,derivationPath:U,inputUtxos:S,tx:k},{...L,expiryHeight:(()=>{let D=Buffer.alloc(4);return D.writeUInt32LE(j.expiryHeight),D})(),lockTime:j.lockTime}),F=W.fromHex(d,{allowUnknownOutputs:!0}),z=f.clone();for(let D=0;D<F.inputsLength;D++){let Z=F.getInput(D);if(Z.script&&Z.script.length>0){let C=q.decode(Z.script);if(C.length>=2)z.addSignature(D,C[1],C[0])}}return z},signTransaction:async(f,M)=>{let W=await w();return J0({btcApp:W,chain:_,derivationPath:U,inputUtxos:M,tx:f},L)},signTransactionWithMultiplePaths:async(f,M,W)=>{let q=await w();return ML({btcApp:q,chain:_,derivationPaths:W,inputUtxos:M,tx:f},L)}}}};function XL(_,L){let R=[],N=(L.txVersion|2147483648)>>>0;R.push(N&255,N>>8&255,N>>16&255,N>>24&255);let G=L.versionGroupId;R.push(G&255,G>>8&255,G>>16&255,G>>24&255),R.push(0);let O=_.index+1;if(O<253)R.push(O);else R.push(253,O&255,O>>8&255);for(let T=0;T<_.index;T++)R.push(0,0,0,0,0,0,0,0),R.push(0);let B=_.value;R.push(Number(B&0xffn),Number(B>>8n&0xffn),Number(B>>16n&0xffn),Number(B>>24n&0xffn),Number(B>>32n&0xffn),Number(B>>40n&0xffn),Number(B>>48n&0xffn),Number(B>>56n&0xffn));let w=_.scriptPubkey;if(w.length<253)R.push(w.length);else R.push(253,w.length&255,w.length>>8&255);for(let T of w)R.push(T);return R.push(L.lockTime&255,L.lockTime>>8&255,L.lockTime>>16&255,L.lockTime>>24&255),R.push(L.expiryHeight&255,L.expiryHeight>>8&255,L.expiryHeight>>16&255,L.expiryHeight>>24&255),R.push(0,0,0,0,0,0,0,0),R.push(0),R.push(0),R.push(0),B_.hex.encode(new Uint8Array(R))}var j0=L_({chain:"bitcoin"}),Q0=L_({chain:"litecoin"}),F0=L_({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),q0=L_({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),C0=L_({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),H0=L_({additionalSignParams:{additionals:["zcash","sapling"],expiryHeight:(()=>{let _=Buffer.alloc(4);return _.writeUInt32LE(0),_})(),lockTime:0,segwit:!1,useTrustedInputForSegwit:!1},chain:"zcash"});c();var A0=e0(require("@ledgerhq/hw-app-xrp")),R_=require("@swapkit/helpers"),k_=require("ripple-binary-codec"),ZL=2147483648;function WL(_){let L={};for(let R in _)if(_[R]!==null&&_[R]!==void 0)L[R]=_[R];return L}function JL(_){return new A0.default(_)}var z0=async(_,L)=>{let R=R_.derivationPathToString(_||R_.NetworkDerivationPath[R_.Chain.Ripple]),N=L??await H(),G=JL(N),{address:O,publicKey:B}=await G.getAddress(R);async function w(T){let{hashes:U}=await import("xrpl"),f={...WL(T),Flags:T.Flags||ZL,SigningPubKey:B.toUpperCase()},M=k_.encode(f),W=await G.signTransaction(R,M),q=k_.encode({...f,TxnSignature:W});return{hash:U.hashSignedTx(q),tx_blob:q}}return{getAddress:()=>O,signTransaction:w}};var P=async({chain:_,derivationPath:L,transport:R})=>{let{match:N}=await import("ts-pattern");return N(_).returnType().with(X.Chain.THORChain,()=>Promise.resolve(new K_(L,R))).with(X.Chain.Cosmos,()=>Promise.resolve(new z_(L,R))).with(X.Chain.Bitcoin,()=>Promise.resolve(j0(L,R))).with(X.Chain.BitcoinCash,()=>Promise.resolve(F0(L,R))).with(X.Chain.Dash,()=>Promise.resolve(C0(L,R))).with(X.Chain.Dogecoin,()=>Promise.resolve(q0(L,R))).with(X.Chain.Litecoin,()=>Promise.resolve(Q0(L,R))).with(X.Chain.Zcash,()=>Promise.resolve(H0(L,R))).with(X.Chain.Ripple,()=>Promise.resolve(z0(L,R))).with(X.Chain.Tron,()=>Promise.resolve(W0(L,R))).with(X.Chain.Sui,()=>Promise.resolve(M0(L,R))).with(X.Chain.Near,()=>{return Promise.resolve(f0(L,R))}).with(X.Chain.Arbitrum,X.Chain.Arc,X.Chain.Aurora,X.Chain.Avalanche,X.Chain.Berachain,X.Chain.BinanceSmartChain,X.Chain.Ethereum,X.Chain.Gnosis,X.Chain.Monad,X.Chain.Optimism,X.Chain.Polygon,X.Chain.Base,X.Chain.XLayer,async()=>{let{getProvider:G}=await import("@swapkit/toolboxes/evm"),O={derivationPath:L,provider:await G(_),transport:R};return N(_).with(X.Chain.BinanceSmartChain,()=>w0(O)).with(X.Chain.Avalanche,()=>R0(O)).with(X.Chain.Arbitrum,()=>e_(O)).with(X.Chain.Arc,()=>_0(O)).with(X.Chain.Berachain,()=>U0(O)).with(X.Chain.Optimism,()=>y0(O)).with(X.Chain.Polygon,()=>B0(O)).with(X.Chain.Base,()=>N0(O)).with(X.Chain.Aurora,()=>L0(O)).with(X.Chain.Gnosis,()=>O0(O)).with(X.Chain.Monad,()=>T0(O)).with(X.Chain.XLayer,()=>$0(O)).otherwise(()=>G0(O))}).otherwise(()=>{throw new X.SwapKitError("wallet_chain_not_supported",{chain:_,wallet:X.WalletOption.LEDGER})})};c();var g0=X_.createWallet({connect:({addChain:_,supportedChains:L,walletType:R})=>async function(G,O,{address:B,transport:w}={}){let[T]=y.filterSupportedChains({chains:G,supportedChains:L,walletType:R});if(!T)return!1;let U=O??y.NetworkDerivationPath[T],$=await SL({address:B,chain:T,derivationPath:U,transport:w});return _({...$,chain:T,walletType:y.WalletOption.LEDGER}),!0},directSigningSupport:{[y.Chain.Arbitrum]:!0,[y.Chain.Arc]:!0,[y.Chain.Aurora]:!0,[y.Chain.Avalanche]:!0,[y.Chain.Base]:!0,[y.Chain.Berachain]:!0,[y.Chain.BinanceSmartChain]:!0,[y.Chain.Ethereum]:!0,[y.Chain.Gnosis]:!0,[y.Chain.Monad]:!0,[y.Chain.Bitcoin]:!0,[y.Chain.BitcoinCash]:!0,[y.Chain.Cosmos]:!0,[y.Chain.Dash]:!0,[y.Chain.Dogecoin]:!0,[y.Chain.Litecoin]:!0,[y.Chain.Near]:!0,[y.Chain.Optimism]:!0,[y.Chain.Polygon]:!0,[y.Chain.Ripple]:!0,[y.Chain.Sui]:!0,[y.Chain.THORChain]:!0,[y.Chain.Tron]:!0,[y.Chain.XLayer]:!0},getExtendedPublicKey:x0,name:"connectLedger",supportedChains:[y.Chain.Arbitrum,y.Chain.Arc,y.Chain.Aurora,y.Chain.Avalanche,y.Chain.Base,y.Chain.Berachain,y.Chain.BinanceSmartChain,y.Chain.Bitcoin,y.Chain.BitcoinCash,y.Chain.Cosmos,y.Chain.Dash,y.Chain.Dogecoin,y.Chain.Ethereum,y.Chain.Gnosis,y.Chain.Litecoin,y.Chain.Monad,y.Chain.Near,y.Chain.Optimism,y.Chain.Polygon,y.Chain.Ripple,y.Chain.Sui,y.Chain.THORChain,y.Chain.XLayer,y.Chain.Tron,y.Chain.Zcash],walletType:y.WalletOption.LEDGER}),KL=X_.getWalletSupportedChains(g0);function kL(_,L="t"){if(!_?.includes("=:"))return _;let R=_.includes(`:${L}:`)?_.split(`:${L}:`)[0]:_;return R?.substring(0,R.lastIndexOf(":"))}async function x0(_,L,{accountIndex:R}={}){if(![y.Chain.BitcoinCash,y.Chain.Bitcoin,y.Chain.Dash,y.Chain.Dogecoin,y.Chain.Litecoin,y.Chain.Zcash].includes(_))throw new y.SwapKitError("wallet_chain_not_supported",{chain:_,wallet:y.WalletOption.LEDGER});let N=_,G=await P({chain:N,derivationPath:L});if(!G.getExtendedPublicKey)return;let O=Q.getUTXOAccountPath({accountIndex:R,chain:N,derivationPath:L}),B=y.derivationPathToString(O),w=_===y.Chain.Bitcoin||_===y.Chain.Litecoin?B:B.replace(/^m\//,""),T=Q.getNetworkForChain(N).bip32.public;try{let U=await G.getExtendedPublicKey(w,T);return{accountIndex:Q.getUTXOAccountIndexFromPath(O),path:B,xpub:U}}finally{await G.disconnect?.()}}async function SL({address:_,chain:L,derivationPath:R,transport:N}){switch(L){case y.Chain.BitcoinCash:case y.Chain.Bitcoin:case y.Chain.Dash:case y.Chain.Dogecoin:case y.Chain.Litecoin:case y.Chain.Zcash:{let k=function(D={}){return j(D)},{getUtxoToolbox:G}=await import("@swapkit/toolboxes/utxo"),O=L,B=await P({chain:L,derivationPath:R,transport:N}),w=_??await o({chain:L,ledgerClient:B}),T=Q.getScriptTypeForAddress(w,O),U,$,f;if(L===y.Chain.Bitcoin){let{BitcoinPsbtLedger:D}=await Promise.resolve().then(() => (P0(),m0)),Z=D(R,N);$=T===y.UTXOScriptType.P2SH_P2WPKH?await Z.getPublicKey():void 0,U={getAddress:Z.getAddress,publicKey:$,signTransaction:Z.signTransaction}}else if(L===y.Chain.BitcoinCash||L===y.Chain.Dogecoin||L===y.Chain.Dash||L===y.Chain.Litecoin){let{createLegacyPsbtSigner:D,signLegacyPsbtTransaction:Z}=await Promise.resolve().then(() => (l0(),c0));U=D({address:w,chain:O,legacyClient:B}),f=async(C)=>{let A=await Z({chain:O,legacyClient:B,tx:C});return M.broadcastTx(A)}}let M=U?await G(O,{scriptType:T,signer:U}):G(O,{scriptType:T}),W=f??M.signAndBroadcastTransaction,q=async(D)=>{let Z=D.feeRate||(await M.getFeeRates())[y.FeeOption.Average],C=[y.Chain.Bitcoin].includes(L)?D.memo:kL(D.memo),{tx:A,inputs:I}=await M.createTransaction({...D,feeRate:Z,fetchTxHex:!0,memo:C,publicKey:D.publicKey??$,sender:w}),V=await B.signTransaction(A,I);return await M.broadcastTx(V)};async function j({accountIndex:D}={}){if(!B.getExtendedPublicKey)return;let Z=Q.getUTXOAccountPath({accountIndex:D,chain:O,derivationPath:R}),C=y.derivationPathToString(Z),A=L===y.Chain.Bitcoin||L===y.Chain.Litecoin?C:C.replace(/^m\//,""),I=Q.getNetworkForChain(O).bip32.public,V=await B.getExtendedPublicKey(A,I);return{accountIndex:Q.getUTXOAccountIndexFromPath(Z),path:C,xpub:V}}async function S({accountIndex:D,index:Z,change:C=!1}){try{let A=Q.getUTXOAddressPath({accountIndex:D,chain:O,change:C,derivationPath:R,index:Z}),I=await P({chain:O,derivationPath:A,transport:N}),V=await o({chain:O,ledgerClient:I});return{accountIndex:Q.getUTXOAccountIndexFromPath(A),address:V,change:C,index:Z,path:y.derivationPathToString(A),pubkey:""}}catch{return}}async function d({accountIndex:D,count:Z,startIndex:C=0,change:A=!1}){return Q.assertDerivationIndex("count",Z),Q.assertDerivationIndex("startIndex",C),(await Promise.all(Array.from({length:Z},(V,r)=>S({accountIndex:D,change:A,index:C+r})))).filter((V)=>!!V)}let F=Q.createHDWalletHelpers({chain:O,deriveAddress:S,getBalance:M.getBalance,getUtxos:(D)=>Q.getUtxoApi(O).getUtxos({address:D,fetchTxHex:!0})});async function z({utxos:D,recipient:Z,assetValue:C,memo:A,feeRate:I,feeOptionKey:V,changeAddress:r}){if(!D.length)throw new y.SwapKitError("wallet_ledger_invalid_params",{message:"No UTXOs provided for multi-address transfer"});let i=I||(await M.getFeeRates())[V||y.FeeOption.Fast],v=A?Q.compileMemo(A):null,S_=[{address:Z,value:C.getBaseValue("number")}];if(v)S_.push({script:v,value:0});let h0=D.map(({hash:T_,index:$_,value:Z_,txHex:W_,witnessUtxo:J_})=>({hash:T_,index:$_,txHex:W_,value:Z_,witnessUtxo:J_})),{inputs:w_,outputs:V_}=M.accumulative({chain:O,feeRate:i,inputs:h0,outputs:S_});if(!(w_&&V_))throw new y.SwapKitError("wallet_ledger_connection_error",{message:"Insufficient balance for multi-address transfer"});let{Transaction:u0}=await import("@swapkit/utxo-signer"),m_=new u0({allowLegacyWitnessUtxo:!0,version:1}),d0=r||D[0]?.address||Z;Q.addInputsAndOutputs({chain:O,compiledMemo:v,inputs:w_,outputs:V_,sender:d0,tx:m_});let o0=Q.getUTXOAccountPath({chain:O,derivationPath:R}),n0=w_.map((T_)=>{let $_=D.find((P_)=>P_.hash===T_.hash&&P_.index===T_.index),Z_=$_?.derivationIndex??0,W_=$_?.isChange??!1,J_=[...o0,Number(W_),Z_];return y.derivationPathToString(J_)});if(!B.signTransactionWithMultiplePaths)throw new y.SwapKitError("wallet_ledger_method_not_supported",{method:"signTransactionWithMultiplePaths"});let i0=await B.signTransactionWithMultiplePaths(m_,w_,n0);return M.broadcastTx(i0)}return{...M,...F,address:w,deriveAddressAtIndex:S,deriveAddresses:d,getExtendedPublicKey:k,getExtendedPublicKeyInfo:j,signAndBroadcastTransaction:W,transfer:q,transferFromMultipleAddresses:z}}case y.Chain.Ethereum:case y.Chain.Avalanche:case y.Chain.Arbitrum:case y.Chain.Arc:case y.Chain.Berachain:case y.Chain.Optimism:case y.Chain.Polygon:case y.Chain.BinanceSmartChain:case y.Chain.Base:case y.Chain.Aurora:case y.Chain.Gnosis:case y.Chain.Monad:case y.Chain.XLayer:{let{getEvmToolboxAsync:G}=await import("@swapkit/toolboxes/evm"),O=await P({chain:L,derivationPath:R,transport:N}),B=await o({chain:L,ledgerClient:O});return{...await G(L,{signer:O}),address:B}}case y.Chain.Cosmos:{let{createSigningStargateClient:G,getDefaultChainFee:O,getMsgSendDenom:B,getCosmosToolbox:w}=await import("@swapkit/toolboxes/cosmos"),T=await P({chain:L,derivationPath:R,transport:N}),U=await o({chain:L,ledgerClient:T});return{...await w(y.Chain.Cosmos,{signer:T}),address:U,transfer:async({assetValue:M,recipient:W,memo:q})=>{if(!M)throw new y.SwapKitError("wallet_ledger_invalid_asset");let j={amount:[{amount:M.getBaseValue("string"),denom:B(`u${M.symbol}`).toLowerCase()}],fromAddress:U,toAddress:W},k=await y.getRPCUrl(L),S=await G(k,T,"0.007uatom"),{transactionHash:d}=await S.signAndBroadcast(U,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:j}],O(y.Chain.Cosmos),q);return d}}}case y.Chain.THORChain:{let G=await P({chain:L,derivationPath:R,transport:N}),{getCosmosToolbox:O}=await import("@swapkit/toolboxes/cosmos"),B=O(L,{signer:G}),w=await o({chain:L,ledgerClient:G}),{sign:T}=G;return{...B,address:w,signMessage:T}}case y.Chain.Near:{let{getNearToolbox:G}=await import("@swapkit/toolboxes/near"),O=await P({chain:L,derivationPath:R,transport:N}),B=await O.getAddress();return{...G({signer:O}),address:B}}case y.Chain.Ripple:{let{getRippleToolbox:G}=await import("@swapkit/toolboxes/ripple"),O=await P({chain:L,derivationPath:R,transport:N}),B=O.getAddress();return{...G({signer:O}),address:B}}case y.Chain.Tron:{let{getTronToolbox:G}=await import("@swapkit/toolboxes/tron"),O=await P({chain:L,derivationPath:R,transport:N}),B=await o({chain:L,ledgerClient:O});return{...G({signer:O}),address:B}}case y.Chain.Sui:{let{getSuiToolbox:G}=await import("@swapkit/toolboxes/sui"),O=await P({chain:L,derivationPath:R,transport:N}),B=await o({chain:L,ledgerClient:O});return{...G({signer:O}),address:B}}default:throw new y.SwapKitError("wallet_ledger_chain_not_supported",{chain:L})}}
2
2
 
3
- //# debugId=6AF47412139B800564756E2164756E21
3
+ //# debugId=72D9CFBCBCF54A5F64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map