@swapkit/wallets 4.0.0-beta.51 → 4.0.0-beta.52

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 (53) hide show
  1. package/dist/chunk-bk58smyr.js +4 -0
  2. package/dist/chunk-bk58smyr.js.map +10 -0
  3. package/dist/chunk-htvthkj1.js +5 -0
  4. package/dist/chunk-htvthkj1.js.map +10 -0
  5. package/dist/src/bitget/index.js +1 -1
  6. package/dist/src/coinbase/index.js +1 -1
  7. package/dist/src/ctrl/index.js +1 -1
  8. package/dist/src/evm-extensions/index.js +1 -1
  9. package/dist/src/exodus/index.js +1 -1
  10. package/dist/src/index.cjs +2 -2
  11. package/dist/src/index.cjs.map +1 -1
  12. package/dist/src/index.js +2 -2
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/keepkey/index.cjs +2 -2
  15. package/dist/src/keepkey/index.cjs.map +4 -4
  16. package/dist/src/keepkey/index.js +2 -2
  17. package/dist/src/keepkey/index.js.map +4 -4
  18. package/dist/src/keepkey-bex/index.js +1 -1
  19. package/dist/src/keystore/index.js +1 -1
  20. package/dist/src/ledger/index.cjs +3 -3
  21. package/dist/src/ledger/index.cjs.map +4 -4
  22. package/dist/src/ledger/index.js +3 -3
  23. package/dist/src/ledger/index.js.map +4 -4
  24. package/dist/src/okx/index.js +1 -1
  25. package/dist/src/onekey/index.js +1 -1
  26. package/dist/src/phantom/index.js +1 -1
  27. package/dist/src/polkadotjs/index.js +1 -1
  28. package/dist/src/radix/index.js +1 -1
  29. package/dist/src/talisman/index.js +1 -1
  30. package/dist/src/trezor/index.js +1 -1
  31. package/dist/src/vultisig/index.cjs +4 -0
  32. package/dist/src/vultisig/index.cjs.map +11 -0
  33. package/dist/src/vultisig/index.js +4 -0
  34. package/dist/src/vultisig/index.js.map +11 -0
  35. package/dist/src/walletconnect/index.cjs +2 -2
  36. package/dist/src/walletconnect/index.cjs.map +3 -3
  37. package/dist/src/walletconnect/index.js +2 -2
  38. package/dist/src/walletconnect/index.js.map +3 -3
  39. package/dist/src/xaman/index.js +1 -1
  40. package/package.json +8 -3
  41. package/src/keepkey/chains/mayachain.ts +2 -1
  42. package/src/keepkey/chains/thorchain.ts +2 -1
  43. package/src/ledger/clients/cosmos.ts +8 -2
  44. package/src/ledger/index.ts +4 -1
  45. package/src/types.ts +32 -0
  46. package/src/utils.ts +1 -0
  47. package/src/vultisig/index.ts +199 -0
  48. package/src/vultisig/walletHelpers.ts +359 -0
  49. package/src/walletconnect/index.ts +8 -2
  50. package/dist/chunk-f0qkch7f.js +0 -4
  51. package/dist/chunk-f0qkch7f.js.map +0 -10
  52. package/dist/chunk-v7ytzdp4.js +0 -5
  53. package/dist/chunk-v7ytzdp4.js.map +0 -10
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/ledger/index.ts", "../src/ledger/helpers/getLedgerAddress.ts", "../src/ledger/helpers/getLedgerClient.ts", "../src/ledger/clients/cosmos.ts", "../src/ledger/interfaces/CosmosLedgerInterface.ts", "../src/ledger/clients/thorchain/lib.ts", "../src/ledger/clients/thorchain/common.ts", "../src/ledger/clients/thorchain/helpers.ts", "../src/ledger/helpers/getLedgerTransport.ts", "../src/ledger/clients/evm.ts", "../src/ledger/clients/near.ts", "../src/ledger/clients/thorchain/index.ts", "../src/ledger/clients/thorchain/utils.ts", "../src/ledger/clients/tron.ts", "../src/ledger/clients/utxo.ts", "../src/ledger/clients/xrp.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n ChainId,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n StagenetChain,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/toolboxes/cosmos\";\nimport type { UTXOBuildTxParams } from \"@swapkit/toolboxes/utxo\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport { getLedgerAddress, getLedgerClient } from \"./helpers\";\n\nexport const ledgerWallet = createWallet({\n name: \"connectLedger\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Litecoin,\n Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Ripple,\n Chain.THORChain,\n Chain.Tron,\n ],\n walletType: WalletOption.LEDGER,\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectLedger(chains: Chain[], derivationPath?: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (!chain) return false;\n\n const walletMethods = await getWalletMethods({ chain, derivationPath });\n\n addChain({ ...walletMethods, chain, walletType: WalletOption.LEDGER });\n\n return true;\n },\n});\n\nexport const LEDGER_SUPPORTED_CHAINS = getWalletSupportedChains(ledgerWallet);\n\n// reduce memo length by removing trade limit\nfunction reduceMemo(memo?: string, affiliateAddress = \"t\") {\n if (!memo?.includes(\"=:\")) return memo;\n\n const removedAffiliate = memo.includes(`:${affiliateAddress}:`)\n ? memo.split(`:${affiliateAddress}:`)[0]\n : memo;\n\n return removedAffiliate?.substring(0, removedAffiliate.lastIndexOf(\":\"));\n}\n\nfunction recursivelyOrderKeys(unordered: any) {\n // If it's an array - recursively order any\n // dictionary items within the array\n if (Array.isArray(unordered)) {\n unordered.forEach((item, index) => {\n unordered[index] = recursivelyOrderKeys(item);\n });\n return unordered;\n }\n\n // If it's an object - let's order the keys\n if (typeof unordered !== \"object\") return unordered;\n const ordered: any = {};\n const sortedKeys = Object.keys(unordered).sort();\n\n for (const key of sortedKeys) {\n ordered[key] = recursivelyOrderKeys(unordered[key]);\n }\n\n return ordered;\n}\n\nfunction stringifyKeysInOrder(data: any) {\n return JSON.stringify(recursivelyOrderKeys(data));\n}\n\nasync function getWalletMethods({\n chain,\n derivationPath,\n}: { chain: Chain; derivationPath?: DerivationPathArray }) {\n switch (chain) {\n case Chain.BitcoinCash:\n case Chain.Bitcoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const toolbox = await getUtxoToolbox(chain as Chain.Bitcoin);\n\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n\n const transfer = async (params: UTXOBuildTxParams) => {\n const feeRate = params.feeRate || (await toolbox.getFeeRates())[FeeOption.Average];\n const memo = [Chain.Bitcoin].includes(chain) ? params.memo : reduceMemo(params.memo);\n\n const { psbt, inputs } = await toolbox.createTransaction({\n ...params,\n feeRate,\n memo,\n sender: address,\n fetchTxHex: true,\n });\n const txHex = await signer.signTransaction(psbt, inputs);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n case Chain.Ethereum:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Aurora:\n case Chain.Gnosis: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await getEvmToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Cosmos: {\n const { createSigningStargateClient, getMsgSendDenom, getCosmosToolbox } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const toolbox = await getCosmosToolbox(Chain.Cosmos);\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n if (!assetValue) throw new SwapKitError(\"wallet_ledger_invalid_asset\");\n\n const sendCoinsMessage = {\n amount: [\n {\n amount: assetValue.getBaseValue(\"string\"),\n denom: getMsgSendDenom(`u${assetValue.symbol}`).toLowerCase(),\n },\n ],\n fromAddress: address,\n toAddress: recipient,\n };\n\n const signingClient = await createSigningStargateClient(\n SKConfig.get(\"rpcUrls\")[chain],\n signer,\n \"0.007uatom\",\n );\n\n const { transactionHash } = await signingClient.signAndBroadcast(\n address,\n [{ typeUrl: \"/cosmos.bank.v1beta1.MsgSend\", value: sendCoinsMessage }],\n 2,\n memo,\n );\n\n return transactionHash;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const { encodePubkey, makeAuthInfoBytes } = (await import(\"@cosmjs/proto-signing\")).default;\n const {\n createStargateClient,\n buildEncodedTxBody,\n getCosmosToolbox,\n buildAminoMsg,\n getDefaultChainFee,\n fromBase64,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(chain);\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n\n const fee = getDefaultChainFee(chain);\n const { pubkey: value, signTransaction, sign: signMessage } = signer;\n\n // ANCHOR (@Chillios): Same parts in methods + can extract StargateClient init to toolbox\n const thorchainTransfer = async ({\n memo = \"\",\n assetValue,\n ...rest\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Refactor to reduce complexity\n }: GenericTransferParams | ThorchainDepositParams) => {\n const account = await toolbox.getAccount(address);\n if (!account) throw new SwapKitError(\"wallet_ledger_invalid_account\");\n if (!assetValue) throw new SwapKitError(\"wallet_ledger_invalid_asset\");\n if (!value) throw new SwapKitError(\"wallet_ledger_pubkey_not_found\");\n\n const { accountNumber, sequence: sequenceNumber } = account;\n const sequence = (sequenceNumber || 0).toString();\n\n const orderedMessages = recursivelyOrderKeys([\n buildAminoMsg({ sender: address, assetValue, memo, ...rest }),\n ]);\n\n // get tx signing msg\n const rawSendTx = stringifyKeysInOrder({\n account_number: accountNumber?.toString(),\n chain_id: ChainId.THORChain,\n fee,\n memo,\n msgs: orderedMessages,\n sequence,\n });\n\n const signatures = await signTransaction(rawSendTx, sequence);\n if (!signatures) throw new SwapKitError(\"wallet_ledger_signing_error\");\n\n const pubkey = encodePubkey({ type: \"tendermint/PubKeySecp256k1\", value });\n const msgs = orderedMessages.map(parseAminoMessageForDirectSigning);\n const bodyBytes = await buildEncodedTxBody({ msgs, chain, memo });\n\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence: Number(sequence) }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const signature = signatures?.[0]?.signature\n ? fromBase64(signatures[0].signature)\n : Uint8Array.from([]);\n\n const txRaw = TxRaw.fromPartial({ bodyBytes, authInfoBytes, signatures: [signature] });\n const txBytes = TxRaw.encode(txRaw).finish();\n const { isStagenet } = SKConfig.get(\"envs\");\n\n const broadcaster = await createStargateClient(\n SKConfig.get(\"rpcUrls\")[isStagenet ? StagenetChain.THORChain : Chain.THORChain],\n );\n const { transactionHash } = await broadcaster.broadcastTx(txBytes);\n\n return transactionHash;\n };\n\n const transfer = (params: GenericTransferParams) => thorchainTransfer(params);\n const deposit = (params: ThorchainDepositParams) => thorchainTransfer(params);\n\n return { ...toolbox, address, deposit, transfer, signMessage };\n }\n\n case Chain.Near: {\n const { getNearToolbox } = await import(\"@swapkit/toolboxes/near\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const accountId = await signer.getAddress();\n const toolbox = await getNearToolbox({ signer });\n\n return { ...toolbox, address: accountId };\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = signer.address;\n const toolbox = await getRippleToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Tron: {\n const { createTronToolbox } = await import(\"@swapkit/toolboxes/tron\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await createTronToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError(\"wallet_ledger_chain_not_supported\", { chain });\n }\n}\n",
5
+ "import {\n Chain,\n ChainId,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n StagenetChain,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/toolboxes/cosmos\";\nimport type { UTXOBuildTxParams } from \"@swapkit/toolboxes/utxo\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport { getLedgerAddress, getLedgerClient } from \"./helpers\";\n\nexport const ledgerWallet = createWallet({\n name: \"connectLedger\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Litecoin,\n Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Ripple,\n Chain.THORChain,\n Chain.Tron,\n ],\n walletType: WalletOption.LEDGER,\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectLedger(chains: Chain[], derivationPath?: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (!chain) return false;\n\n const walletMethods = await getWalletMethods({ chain, derivationPath });\n\n addChain({ ...walletMethods, chain, walletType: WalletOption.LEDGER });\n\n return true;\n },\n});\n\nexport const LEDGER_SUPPORTED_CHAINS = getWalletSupportedChains(ledgerWallet);\n\n// reduce memo length by removing trade limit\nfunction reduceMemo(memo?: string, affiliateAddress = \"t\") {\n if (!memo?.includes(\"=:\")) return memo;\n\n const removedAffiliate = memo.includes(`:${affiliateAddress}:`)\n ? memo.split(`:${affiliateAddress}:`)[0]\n : memo;\n\n return removedAffiliate?.substring(0, removedAffiliate.lastIndexOf(\":\"));\n}\n\nfunction recursivelyOrderKeys(unordered: any) {\n // If it's an array - recursively order any\n // dictionary items within the array\n if (Array.isArray(unordered)) {\n unordered.forEach((item, index) => {\n unordered[index] = recursivelyOrderKeys(item);\n });\n return unordered;\n }\n\n // If it's an object - let's order the keys\n if (typeof unordered !== \"object\") return unordered;\n const ordered: any = {};\n const sortedKeys = Object.keys(unordered).sort();\n\n for (const key of sortedKeys) {\n ordered[key] = recursivelyOrderKeys(unordered[key]);\n }\n\n return ordered;\n}\n\nfunction stringifyKeysInOrder(data: any) {\n return JSON.stringify(recursivelyOrderKeys(data));\n}\n\nasync function getWalletMethods({\n chain,\n derivationPath,\n}: { chain: Chain; derivationPath?: DerivationPathArray }) {\n switch (chain) {\n case Chain.BitcoinCash:\n case Chain.Bitcoin:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const toolbox = await getUtxoToolbox(chain as Chain.Bitcoin);\n\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n\n const transfer = async (params: UTXOBuildTxParams) => {\n const feeRate = params.feeRate || (await toolbox.getFeeRates())[FeeOption.Average];\n const memo = [Chain.Bitcoin].includes(chain) ? params.memo : reduceMemo(params.memo);\n\n const { psbt, inputs } = await toolbox.createTransaction({\n ...params,\n feeRate,\n memo,\n sender: address,\n fetchTxHex: true,\n });\n const txHex = await signer.signTransaction(psbt, inputs);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n case Chain.Ethereum:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Aurora:\n case Chain.Gnosis: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await getEvmToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Cosmos: {\n const { createSigningStargateClient, getMsgSendDenom, getCosmosToolbox } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const toolbox = await getCosmosToolbox(Chain.Cosmos);\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n if (!assetValue) throw new SwapKitError(\"wallet_ledger_invalid_asset\");\n\n const sendCoinsMessage = {\n amount: [\n {\n amount: assetValue.getBaseValue(\"string\"),\n denom: getMsgSendDenom(`u${assetValue.symbol}`).toLowerCase(),\n },\n ],\n fromAddress: address,\n toAddress: recipient,\n };\n\n const signingClient = await createSigningStargateClient(\n SKConfig.get(\"rpcUrls\")[chain],\n signer,\n \"0.007uatom\",\n );\n\n const { transactionHash } = await signingClient.signAndBroadcast(\n address,\n [{ typeUrl: \"/cosmos.bank.v1beta1.MsgSend\", value: sendCoinsMessage }],\n 2,\n memo,\n );\n\n return transactionHash;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const importedSigning = await import(\"@cosmjs/proto-signing\");\n const encodePubkey = importedSigning.encodePubkey ?? importedSigning.default?.encodePubkey;\n const makeAuthInfoBytes =\n importedSigning.makeAuthInfoBytes ?? importedSigning.default?.makeAuthInfoBytes;\n const {\n createStargateClient,\n buildEncodedTxBody,\n getCosmosToolbox,\n buildAminoMsg,\n getDefaultChainFee,\n fromBase64,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(chain);\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n\n const fee = getDefaultChainFee(chain);\n const { pubkey: value, signTransaction, sign: signMessage } = signer;\n\n // ANCHOR (@Chillios): Same parts in methods + can extract StargateClient init to toolbox\n const thorchainTransfer = async ({\n memo = \"\",\n assetValue,\n ...rest\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Refactor to reduce complexity\n }: GenericTransferParams | ThorchainDepositParams) => {\n const account = await toolbox.getAccount(address);\n if (!account) throw new SwapKitError(\"wallet_ledger_invalid_account\");\n if (!assetValue) throw new SwapKitError(\"wallet_ledger_invalid_asset\");\n if (!value) throw new SwapKitError(\"wallet_ledger_pubkey_not_found\");\n\n const { accountNumber, sequence: sequenceNumber } = account;\n const sequence = (sequenceNumber || 0).toString();\n\n const orderedMessages = recursivelyOrderKeys([\n buildAminoMsg({ sender: address, assetValue, memo, ...rest }),\n ]);\n\n // get tx signing msg\n const rawSendTx = stringifyKeysInOrder({\n account_number: accountNumber?.toString(),\n chain_id: ChainId.THORChain,\n fee,\n memo,\n msgs: orderedMessages,\n sequence,\n });\n\n const signatures = await signTransaction(rawSendTx, sequence);\n if (!signatures) throw new SwapKitError(\"wallet_ledger_signing_error\");\n\n const pubkey = encodePubkey({ type: \"tendermint/PubKeySecp256k1\", value });\n const msgs = orderedMessages.map(parseAminoMessageForDirectSigning);\n const bodyBytes = await buildEncodedTxBody({ msgs, chain, memo });\n\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence: Number(sequence) }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const signature = signatures?.[0]?.signature\n ? fromBase64(signatures[0].signature)\n : Uint8Array.from([]);\n\n const txRaw = TxRaw.fromPartial({ bodyBytes, authInfoBytes, signatures: [signature] });\n const txBytes = TxRaw.encode(txRaw).finish();\n const { isStagenet } = SKConfig.get(\"envs\");\n\n const broadcaster = await createStargateClient(\n SKConfig.get(\"rpcUrls\")[isStagenet ? StagenetChain.THORChain : Chain.THORChain],\n );\n const { transactionHash } = await broadcaster.broadcastTx(txBytes);\n\n return transactionHash;\n };\n\n const transfer = (params: GenericTransferParams) => thorchainTransfer(params);\n const deposit = (params: ThorchainDepositParams) => thorchainTransfer(params);\n\n return { ...toolbox, address, deposit, transfer, signMessage };\n }\n\n case Chain.Near: {\n const { getNearToolbox } = await import(\"@swapkit/toolboxes/near\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const accountId = await signer.getAddress();\n const toolbox = await getNearToolbox({ signer });\n\n return { ...toolbox, address: accountId };\n }\n\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = signer.address;\n const toolbox = await getRippleToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Tron: {\n const { createTronToolbox } = await import(\"@swapkit/toolboxes/tron\");\n const signer = await getLedgerClient({ chain, derivationPath });\n const address = await getLedgerAddress({ chain, ledgerClient: signer });\n const toolbox = await createTronToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError(\"wallet_ledger_chain_not_supported\", { chain });\n }\n}\n",
6
6
  "import { Chain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\n\nimport type { getNearLedgerClient } from \"../clients/near\";\nimport type { TronLedger } from \"../clients/tron\";\nimport type { XRPLedger } from \"../clients/xrp\";\nimport type { LEDGER_SUPPORTED_CHAINS } from \"../index\";\nimport type { CosmosLedgerClients, EVMLedgerClients, UTXOLedgerClients } from \"../types\";\nimport type { getLedgerClient } from \"./getLedgerClient\";\n\nexport const getLedgerAddress = async <\n T extends (typeof LEDGER_SUPPORTED_CHAINS)[number],\n L extends Awaited<ReturnType<typeof getLedgerClient<T>>>,\n>({\n chain,\n ledgerClient,\n}: {\n chain: T;\n ledgerClient: L;\n}) => {\n if (!ledgerClient) return \"\";\n\n switch (chain) {\n case Chain.Cosmos:\n case Chain.THORChain: {\n return (ledgerClient as CosmosLedgerClients).connect();\n }\n\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Polygon:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Base:\n case Chain.Aurora:\n case Chain.Gnosis: {\n return (ledgerClient as EVMLedgerClients).getAddress();\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const ledger = ledgerClient as UTXOLedgerClients;\n await ledger.connect();\n const address = await ledger.getAddress();\n\n return chain === Chain.BitcoinCash ? address.replace(\"bitcoincash:\", \"\") : address;\n }\n\n case Chain.Near: {\n return await (ledgerClient as Awaited<ReturnType<typeof getNearLedgerClient>>).getAddress();\n }\n\n case Chain.Ripple: {\n return (ledgerClient as Awaited<ReturnType<typeof XRPLedger>>).address;\n }\n\n case Chain.Tron: {\n return (ledgerClient as Awaited<ReturnType<typeof TronLedger>>).getAddress();\n }\n\n default:\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: WalletOption.LEDGER, chain });\n }\n};\n",
7
7
  "import {\n Chain,\n type DerivationPathArray,\n type EVMChain,\n SwapKitError,\n WalletOption,\n} from \"@swapkit/helpers\";\n\nimport { CosmosLedger } from \"../clients/cosmos\";\nimport {\n ArbitrumLedger,\n AuroraLedger,\n AvalancheLedger,\n BaseLedger,\n BinanceSmartChainLedger,\n EthereumLedger,\n GnosisLedger,\n OptimismLedger,\n PolygonLedger,\n} from \"../clients/evm\";\nimport { getNearLedgerClient } from \"../clients/near\";\nimport { THORChainLedger } from \"../clients/thorchain\";\nimport { TronLedger } from \"../clients/tron\";\nimport {\n BitcoinCashLedger,\n BitcoinLedger,\n DashLedger,\n DogecoinLedger,\n LitecoinLedger,\n} from \"../clients/utxo\";\nimport { XRPLedger } from \"../clients/xrp\";\nimport { getLedgerTransport } from \"./getLedgerTransport\";\n\ntype LedgerSignerMap = {\n [Chain.Arbitrum]: ReturnType<typeof ArbitrumLedger>;\n [Chain.Aurora]: ReturnType<typeof AuroraLedger>;\n [Chain.Avalanche]: ReturnType<typeof AvalancheLedger>;\n [Chain.Base]: ReturnType<typeof BaseLedger>;\n [Chain.BinanceSmartChain]: ReturnType<typeof BinanceSmartChainLedger>;\n [Chain.BitcoinCash]: ReturnType<typeof BitcoinCashLedger>;\n [Chain.Bitcoin]: ReturnType<typeof BitcoinLedger>;\n [Chain.Cosmos]: CosmosLedger;\n [Chain.Dash]: ReturnType<typeof DashLedger>;\n [Chain.Dogecoin]: ReturnType<typeof DogecoinLedger>;\n [Chain.Ethereum]: ReturnType<typeof EthereumLedger>;\n [Chain.Gnosis]: ReturnType<typeof GnosisLedger>;\n [Chain.Litecoin]: ReturnType<typeof LitecoinLedger>;\n [Chain.Near]: Awaited<ReturnType<typeof getNearLedgerClient>>;\n [Chain.Optimism]: ReturnType<typeof OptimismLedger>;\n [Chain.Polygon]: ReturnType<typeof PolygonLedger>;\n [Chain.Ripple]: ReturnType<typeof XRPLedger>;\n [Chain.THORChain]: THORChainLedger;\n [Chain.Tron]: ReturnType<typeof TronLedger>;\n};\n\ntype LedgerSupportedChain = keyof LedgerSignerMap;\n\nexport const getLedgerClient = async <T extends LedgerSupportedChain>({\n chain,\n derivationPath,\n}: {\n chain: T;\n derivationPath?: DerivationPathArray;\n}): Promise<LedgerSignerMap[T]> => {\n const { match } = await import(\"ts-pattern\");\n\n return match(chain as LedgerSupportedChain)\n .returnType<Promise<LedgerSignerMap[T]>>()\n .with(Chain.THORChain, () =>\n Promise.resolve(new THORChainLedger(derivationPath) as LedgerSignerMap[T]),\n )\n .with(Chain.Cosmos, () =>\n Promise.resolve(new CosmosLedger(derivationPath) as LedgerSignerMap[T]),\n )\n .with(Chain.Bitcoin, () => Promise.resolve(BitcoinLedger(derivationPath) as LedgerSignerMap[T]))\n .with(Chain.BitcoinCash, () =>\n Promise.resolve(BitcoinCashLedger(derivationPath) as LedgerSignerMap[T]),\n )\n .with(Chain.Dash, () => Promise.resolve(DashLedger(derivationPath) as LedgerSignerMap[T]))\n .with(Chain.Dogecoin, () =>\n Promise.resolve(DogecoinLedger(derivationPath) as LedgerSignerMap[T]),\n )\n .with(Chain.Litecoin, () =>\n Promise.resolve(LitecoinLedger(derivationPath) as LedgerSignerMap[T]),\n )\n .with(Chain.Ripple, () => Promise.resolve(XRPLedger(derivationPath) as LedgerSignerMap[T]))\n .with(Chain.Tron, () => Promise.resolve(TronLedger(derivationPath) as LedgerSignerMap[T]))\n .with(Chain.Near, async () => {\n const transport = await getLedgerTransport();\n return getNearLedgerClient(transport, derivationPath) as unknown as LedgerSignerMap[T];\n })\n .with(\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Base,\n async () => {\n const { getProvider } = await import(\"@swapkit/toolboxes/evm\");\n const params = { provider: await getProvider(chain as EVMChain), derivationPath };\n\n return match(chain as Chain)\n .with(\n Chain.BinanceSmartChain,\n () => BinanceSmartChainLedger(params) as LedgerSignerMap[T],\n )\n .with(Chain.Avalanche, () => AvalancheLedger(params) as LedgerSignerMap[T])\n .with(Chain.Arbitrum, () => ArbitrumLedger(params) as LedgerSignerMap[T])\n .with(Chain.Optimism, () => OptimismLedger(params) as LedgerSignerMap[T])\n .with(Chain.Polygon, () => PolygonLedger(params) as LedgerSignerMap[T])\n .with(Chain.Base, () => BaseLedger(params) as LedgerSignerMap[T])\n .with(Chain.Aurora, () => AuroraLedger(params) as LedgerSignerMap[T])\n .with(Chain.Gnosis, () => GnosisLedger(params) as LedgerSignerMap[T])\n .otherwise(() => EthereumLedger(params) as LedgerSignerMap[T]);\n },\n )\n .otherwise(() => {\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: WalletOption.LEDGER, chain });\n });\n};\n",
8
- "import {\n type DerivationPathArray,\n NetworkDerivationPath,\n SwapKitError,\n derivationPathToString,\n} from \"@swapkit/helpers\";\nimport { CosmosLedgerInterface } from \"../interfaces/CosmosLedgerInterface\";\n\nexport class CosmosLedger extends CosmosLedgerInterface {\n private pubKey: string | null = null;\n\n derivationPath: string;\n\n constructor(derivationPath: DerivationPathArray = NetworkDerivationPath.GAIA) {\n super();\n this.chain = \"cosmos\";\n this.derivationPath = derivationPathToString(derivationPath);\n }\n\n connect = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n const { publicKey, address } = await this.getAddressAndPubKey();\n\n this.pubKey = Buffer.from(publicKey, \"hex\").toString(\"base64\");\n\n return address;\n };\n\n getAddressAndPubKey = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const response = await this.ledgerApp.getAddress(this.derivationPath, this.chain);\n\n return response;\n };\n\n signTransaction = async (rawTx: string, sequence = \"0\") => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const { return_code, error_message, signature } = await this.ledgerApp.sign(\n this.derivationPath,\n rawTx,\n );\n\n if (!this.pubKey) throw new SwapKitError(\"wallet_ledger_pubkey_not_found\");\n\n this.validateResponse(return_code, error_message);\n\n return [\n {\n pub_key: { type: \"tendermint/PubKeySecp256k1\", value: this.pubKey },\n sequence,\n signature,\n },\n ];\n };\n\n signAmino = async (signerAddress: string, signDoc: any): Promise<any> => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const accounts = await this.getAccounts();\n const accountIndex = accounts.findIndex((account) => account.address === signerAddress);\n\n if (accountIndex === -1) {\n throw new SwapKitError(\"wallet_ledger_address_not_found\", { address: signerAddress });\n }\n\n const { encodeSecp256k1Signature, serializeSignDoc } = (await import(\"@cosmjs/amino\")).default;\n const { Secp256k1Signature } = (await import(\"@cosmjs/crypto\")).default;\n\n const message = serializeSignDoc(signDoc);\n const signature = await this.ledgerApp.sign(this.derivationPath, message);\n\n this.validateResponse(signature.return_code, signature.error_message);\n\n const secpSignature = Secp256k1Signature.fromDer(signature.signature).toFixedLength();\n\n return {\n signed: signDoc,\n signature: encodeSecp256k1Signature(accounts[0].pubkey, secpSignature),\n };\n };\n\n getAccounts = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const addressAndPubKey = await this.getAddressAndPubKey();\n return [\n {\n address: addressAndPubKey.address,\n algo: \"secp256k1\",\n pubkey: Buffer.from(addressAndPubKey.publicKey, \"hex\"),\n },\n ] as any[];\n };\n}\n",
8
+ "import {\n type DerivationPathArray,\n NetworkDerivationPath,\n SwapKitError,\n derivationPathToString,\n} from \"@swapkit/helpers\";\nimport { CosmosLedgerInterface } from \"../interfaces/CosmosLedgerInterface\";\n\nexport class CosmosLedger extends CosmosLedgerInterface {\n private pubKey: string | null = null;\n\n derivationPath: string;\n\n constructor(derivationPath: DerivationPathArray = NetworkDerivationPath.GAIA) {\n super();\n this.chain = \"cosmos\";\n this.derivationPath = derivationPathToString(derivationPath);\n }\n\n connect = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n const { publicKey, address } = await this.getAddressAndPubKey();\n\n this.pubKey = Buffer.from(publicKey, \"hex\").toString(\"base64\");\n\n return address;\n };\n\n getAddressAndPubKey = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const response = await this.ledgerApp.getAddress(this.derivationPath, this.chain);\n\n return response;\n };\n\n signTransaction = async (rawTx: string, sequence = \"0\") => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const { return_code, error_message, signature } = await this.ledgerApp.sign(\n this.derivationPath,\n rawTx,\n );\n\n if (!this.pubKey) throw new SwapKitError(\"wallet_ledger_pubkey_not_found\");\n\n this.validateResponse(return_code, error_message);\n\n return [\n {\n pub_key: { type: \"tendermint/PubKeySecp256k1\", value: this.pubKey },\n sequence,\n signature,\n },\n ];\n };\n\n signAmino = async (signerAddress: string, signDoc: any): Promise<any> => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const accounts = await this.getAccounts();\n const accountIndex = accounts.findIndex((account) => account.address === signerAddress);\n\n if (accountIndex === -1) {\n throw new SwapKitError(\"wallet_ledger_address_not_found\", { address: signerAddress });\n }\n\n const importedAmino = await import(\"@cosmjs/amino\");\n const encodeSecp256k1Signature =\n importedAmino.encodeSecp256k1Signature ?? importedAmino.default?.encodeSecp256k1Signature;\n const serializeSignDoc =\n importedAmino.serializeSignDoc ?? importedAmino.default?.serializeSignDoc;\n const importedCrypto = await import(\"@cosmjs/crypto\");\n const Secp256k1Signature =\n importedCrypto.Secp256k1Signature ?? importedCrypto.default?.Secp256k1Signature;\n\n const message = serializeSignDoc(signDoc);\n const signature = await this.ledgerApp.sign(this.derivationPath, message);\n\n this.validateResponse(signature.return_code, signature.error_message);\n\n const secpSignature = Secp256k1Signature.fromDer(signature.signature).toFixedLength();\n\n return {\n signed: signDoc,\n signature: encodeSecp256k1Signature(accounts[0].pubkey, secpSignature),\n };\n };\n\n getAccounts = async () => {\n await this.checkOrCreateTransportAndLedger(true);\n\n const addressAndPubKey = await this.getAddressAndPubKey();\n return [\n {\n address: addressAndPubKey.address,\n algo: \"secp256k1\",\n pubkey: Buffer.from(addressAndPubKey.publicKey, \"hex\"),\n },\n ] as any[];\n };\n}\n",
9
9
  "import {\n type DerivationPathArray,\n LedgerErrorCode,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\n\nimport { THORChainApp } from \"../clients/thorchain/lib\";\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\nexport abstract class CosmosLedgerInterface {\n ledgerTimeout = 50000;\n derivationPath: DerivationPathArray | string = NetworkDerivationPath.GAIA;\n transport: any;\n ledgerApp: any;\n chain: \"thor\" | \"cosmos\" = \"thor\";\n\n checkOrCreateTransportAndLedger = async (forceReconnect = false) => {\n if (!forceReconnect && this.transport && this.ledgerApp) return;\n\n try {\n this.transport =\n forceReconnect || !this.transport ? await getLedgerTransport() : this.transport;\n\n // biome-ignore lint/style/useDefaultSwitchClause: default will never be hit\n switch (this.chain) {\n case \"thor\": {\n this.ledgerApp =\n forceReconnect || !this.ledgerApp ? new THORChainApp(this.transport) : this.ledgerApp;\n\n break;\n }\n\n case \"cosmos\": {\n const CosmosApp = (await import(\"@ledgerhq/hw-app-cosmos\")).default;\n this.ledgerApp =\n forceReconnect || !this.ledgerApp ? new CosmosApp(this.transport) : this.ledgerApp;\n }\n }\n\n return this.ledgerApp;\n } catch (error: unknown) {\n throw new SwapKitError(\"wallet_ledger_connection_error\", error);\n }\n };\n\n validateResponse = (errorCode: LedgerErrorCode, message?: string) => {\n switch (errorCode) {\n case LedgerErrorCode.NoError:\n return;\n\n case LedgerErrorCode.LockedDevice:\n throw new SwapKitError(\"wallet_ledger_device_locked\", {\n message: `Ledger is locked: ${message}`,\n });\n\n case LedgerErrorCode.TC_NotFound:\n throw new SwapKitError(\"wallet_ledger_device_not_found\");\n\n default: {\n break;\n }\n }\n };\n}\n",
10
10
  "import type Transport from \"@ledgerhq/hw-transport\";\nimport { SwapKitError } from \"@swapkit/helpers\";\n/** ******************************************************************************\n * (c) 2019 ZondaX GmbH\n * (c) 2016-2017 Ledger\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ******************************************************************************* */\n\nimport {\n CHUNK_SIZE,\n CLA,\n ERROR_CODE,\n INS,\n P1_VALUES,\n P2_VALUES,\n errorCodeToString,\n getVersion,\n processErrorResponse,\n} from \"./common\";\nimport {\n publicKeyv1,\n publicKeyv2,\n serializePathv1,\n serializePathv2,\n signSendChunkv1,\n signSendChunkv2,\n} from \"./helpers\";\n\nexport class THORChainApp {\n transport: Transport;\n versionResponse: any;\n\n constructor(transport: any) {\n if (!transport) {\n throw new SwapKitError(\"wallet_ledger_transport_not_defined\");\n }\n\n this.transport = transport;\n }\n\n static serializeHRP(hrp: string) {\n if (hrp == null || hrp.length < 3 || hrp.length > 83) {\n throw new SwapKitError(\"wallet_ledger_invalid_params\", { reason: \"Invalid HRP\" });\n }\n const buf = Buffer.alloc(1 + hrp.length);\n buf.writeUInt8(hrp.length, 0);\n buf.write(hrp, 1);\n return buf;\n }\n\n async serializePath(path: number[]) {\n this.versionResponse = await getVersion(this.transport);\n\n if (this.versionResponse.return_code !== ERROR_CODE.NoError) {\n throw this.versionResponse;\n }\n\n switch (this.versionResponse.major) {\n case 1:\n return serializePathv1(path);\n case 2:\n return serializePathv2(path);\n default:\n return Buffer.alloc(0);\n }\n }\n\n async signGetChunks(path: number[], buffer: Buffer) {\n const serializedPath = await this.serializePath(path);\n\n const chunks = [];\n chunks.push(serializedPath);\n\n for (let i = 0; i < buffer.length; i += CHUNK_SIZE) {\n let end = i + CHUNK_SIZE;\n if (i > buffer.length) {\n end = buffer.length;\n }\n chunks.push(buffer.slice(i, end));\n }\n\n return chunks;\n }\n\n async getVersion() {\n try {\n this.versionResponse = await getVersion(this.transport);\n return this.versionResponse;\n } catch (e) {\n return processErrorResponse(e);\n }\n }\n\n async appInfo() {\n return this.transport.send(0xb0, 0x01, 0, 0).then((response: any) => {\n const errorCodeData = response.slice(-2);\n const returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n\n let appName = \"\";\n let appVersion = \"\";\n let flagLen = 0;\n let flagsValue = 0;\n\n if (response[0] !== 1) {\n // Ledger responds with format ID 1. There is no spec for any format != 1\n return {\n return_code: 0x9001,\n error_message: \"response format ID not recognized\",\n };\n }\n\n const appNameLen = response[1];\n appName = response.slice(2, 2 + appNameLen).toString(\"ascii\");\n let idx = 2 + appNameLen;\n const appVersionLen = response[idx];\n idx += 1;\n appVersion = response.slice(idx, idx + appVersionLen).toString(\"ascii\");\n idx += appVersionLen;\n const appFlagsLen = response[idx];\n idx += 1;\n flagLen = appFlagsLen;\n flagsValue = response[idx];\n\n return {\n return_code: returnCode,\n error_message: errorCodeToString(returnCode),\n appName,\n appVersion,\n flagLen,\n flagsValue,\n flag_recovery: (flagsValue & 1) !== 0,\n flag_signed_mcu_code: (flagsValue & 2) !== 0,\n flag_onboarded: (flagsValue & 4) !== 0,\n flag_pin_validated: (flagsValue & 128) !== 0,\n };\n }, processErrorResponse);\n }\n\n async deviceInfo() {\n return this.transport\n .send(0xe0, 0x01, 0, 0, Buffer.from([]), [ERROR_CODE.NoError, 0x6e00])\n .then((response: any) => {\n const errorCodeData = response.slice(-2);\n const returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n\n if (returnCode === 0x6e00) {\n return {\n return_code: returnCode,\n error_message: \"This command is only available in the Dashboard\",\n };\n }\n\n const targetId = response.slice(0, 4).toString(\"hex\");\n\n let pos = 4;\n const secureElementVersionLen = response[pos];\n pos += 1;\n const seVersion = response.slice(pos, pos + secureElementVersionLen).toString();\n pos += secureElementVersionLen;\n\n const flagsLen = response[pos];\n pos += 1;\n const flag = response.slice(pos, pos + flagsLen).toString(\"hex\");\n pos += flagsLen;\n\n const mcuVersionLen = response[pos];\n pos += 1;\n // Patch issue in mcu version\n let tmp = response.slice(pos, pos + mcuVersionLen);\n if (tmp[mcuVersionLen - 1] === 0) {\n tmp = response.slice(pos, pos + mcuVersionLen - 1);\n }\n const mcuVersion = tmp.toString();\n\n return {\n return_code: returnCode,\n error_message: errorCodeToString(returnCode),\n // //\n targetId,\n seVersion,\n flag,\n mcuVersion,\n };\n }, processErrorResponse);\n }\n\n async publicKey(path: number[]) {\n try {\n const serializedPath = await this.serializePath(path);\n\n switch (this.versionResponse.major) {\n case 1:\n return publicKeyv1(this, serializedPath);\n case 2: {\n // @ts-ignore\n const data = Buffer.concat([THORChainApp.serializeHRP(\"thor\"), serializedPath]);\n return publicKeyv2(this, data);\n }\n default:\n return {\n return_code: 0x6400,\n error_message: \"App Version is not supported\",\n };\n }\n } catch (e) {\n return processErrorResponse(e);\n }\n }\n\n async getAddressAndPubKey(path: number[], hrp: string, showInDevice = false) {\n return this.serializePath(path)\n .then((serializedPath: Buffer) => {\n // @ts-ignore\n const data = Buffer.concat([THORChainApp.serializeHRP(hrp), serializedPath]);\n return this.transport\n .send(\n CLA,\n INS.GET_ADDR_SECP256K1,\n showInDevice ? P1_VALUES.SHOW_ADDRESS_IN_DEVICE : P1_VALUES.ONLY_RETRIEVE,\n 0,\n data,\n [ERROR_CODE.NoError],\n )\n .then((response: any) => {\n const errorCodeData = response.slice(-2);\n const returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n\n const compressedPk = Buffer.from(response.slice(0, 33));\n const bech32Address = Buffer.from(response.slice(33, -2)).toString();\n\n return {\n bech32_address: bech32Address,\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: errorCodeToString(returnCode),\n };\n }, processErrorResponse);\n })\n .catch((err) => processErrorResponse(err));\n }\n\n showAddressAndPubKey(path: number[], hrp: string) {\n return this.getAddressAndPubKey(path, hrp, true);\n }\n\n signSendChunk(chunkIdx: number, chunkNum: number, chunk: Buffer, txType = P2_VALUES.JSON) {\n switch (this.versionResponse.major) {\n case 1:\n return signSendChunkv1(this, chunkIdx, chunkNum, chunk, txType);\n case 2:\n return signSendChunkv2(this, chunkIdx, chunkNum, chunk, txType);\n default:\n return {\n return_code: 0x6400,\n error_message: \"App Version is not supported\",\n };\n }\n }\n\n async sign(path: number[], message: string, txType = P2_VALUES.JSON) {\n const buffer = Buffer.from(message);\n let chunks: Buffer[] = [];\n let response: any;\n try {\n chunks = await this.signGetChunks(path, buffer);\n response = await this.signSendChunk(1, chunks.length, chunks[0] as Buffer, txType);\n } catch (error) {\n processErrorResponse(error);\n }\n let result = {\n return_code: response.return_code,\n error_message: response.error_message,\n signature: null,\n };\n\n for (let i = 1; i < chunks.length; i += 1) {\n result = await this.signSendChunk(1 + i, chunks.length, chunks[i] as Buffer, txType);\n if (result.return_code !== ERROR_CODE.NoError) {\n break;\n }\n }\n\n return {\n return_code: result.return_code,\n error_message: result.error_message,\n signature: result.signature,\n };\n }\n}\n",
11
11
  "export const CLA = 0x55;\nexport const CHUNK_SIZE = 250;\nexport const APP_KEY = \"CSM\";\n\nexport const INS = {\n GET_VERSION: 0x00,\n INS_PUBLIC_KEY_SECP256K1: 0x01, // Obsolete\n SIGN_SECP256K1: 0x02,\n GET_ADDR_SECP256K1: 0x04,\n};\n\nexport const PAYLOAD_TYPE = {\n INIT: 0x00,\n ADD: 0x01,\n LAST: 0x02,\n};\n\nexport const P1_VALUES = {\n ONLY_RETRIEVE: 0x00,\n SHOW_ADDRESS_IN_DEVICE: 0x01,\n};\n\nexport const P2_VALUES = {\n JSON: 0x0,\n};\n\nexport const ERROR_CODE = {\n NoError: 0x9000,\n};\n\nconst ERROR_DESCRIPTION: any = {\n 1: \"U2F: Unknown\",\n 2: \"U2F: Bad request\",\n 3: \"U2F: Configuration unsupported\",\n 4: \"U2F: Device Ineligible\",\n 5: \"U2F: Timeout\",\n 14: \"Timeout\",\n 36864: \"No errors\",\n 36865: \"Device is busy\",\n 26626: \"Error deriving keys\",\n 25600: \"Execution Error\",\n 26368: \"Wrong Length\",\n 27010: \"Empty Buffer\",\n 27011: \"Output buffer too small\",\n 27012: \"Data is invalid\",\n 27013: \"Conditions not satisfied\",\n 27014: \"Transaction rejected\",\n 27264: \"Bad key handle\",\n 27392: \"Invalid P1/P2\",\n 27904: \"Instruction not supported\",\n 28160: \"App does not seem to be open\",\n 28416: \"Unknown error\",\n 28417: \"Sign/verify error\",\n};\n\nexport function errorCodeToString(statusCode: number) {\n if (statusCode in ERROR_DESCRIPTION) return ERROR_DESCRIPTION[statusCode];\n return `Unknown Status Code: ${statusCode}`;\n}\n\nfunction isDict(v: any) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v) && !(v instanceof Date);\n}\n\nexport function processErrorResponse(response: any) {\n if (response) {\n if (isDict(response)) {\n if (Object.prototype.hasOwnProperty.call(response, \"statusCode\")) {\n return {\n return_code: response.statusCode,\n error_message: errorCodeToString(response.statusCode),\n };\n }\n\n if (\n Object.prototype.hasOwnProperty.call(response, \"return_code\") &&\n Object.prototype.hasOwnProperty.call(response, \"error_message\")\n ) {\n return response;\n }\n }\n return {\n return_code: 0xffff,\n error_message: response.toString(),\n };\n }\n\n return {\n return_code: 0xffff,\n error_message: response.toString(),\n };\n}\n\nexport async function getVersion(transport: any) {\n return transport.send(CLA, INS.GET_VERSION, 0, 0).then((response: any) => {\n const errorCodeData = response.slice(-2);\n const returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n\n let targetId = 0;\n if (response.length >= 9) {\n targetId =\n (response[5] << 24) + (response[6] << 16) + (response[7] << 8) + (response[8] << 0);\n }\n\n return {\n return_code: returnCode,\n error_message: errorCodeToString(returnCode),\n // ///\n test_mode: response[0] !== 0,\n major: response[1],\n minor: response[2],\n patch: response[3],\n device_locked: response[4] === 1,\n target_id: targetId.toString(16),\n };\n }, processErrorResponse);\n}\n",
@@ -19,7 +19,7 @@
19
19
  "import type BitcoinApp from \"@ledgerhq/hw-app-btc\";\nimport type { CreateTransactionArg } from \"@ledgerhq/hw-app-btc/lib-es/createTransaction\";\nimport {\n type DerivationPathArray,\n SwapKitError,\n derivationPathToString,\n getWalletFormatFor,\n} from \"@swapkit/helpers\";\nimport type { UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport { type Psbt, Transaction } from \"bitcoinjs-lib\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\ntype Params = {\n psbt: Psbt;\n inputUtxos: UTXOType[];\n btcApp: any;\n derivationPath: string;\n};\n\nconst signUTXOTransaction = async (\n { psbt, inputUtxos, btcApp, derivationPath }: Params,\n options?: Partial<CreateTransactionArg>,\n) => {\n const inputs = inputUtxos.map((item) => {\n const utxoTx = Transaction.fromHex(item.txHex || \"\");\n const splitTx = btcApp.splitTransaction(utxoTx.toHex(), utxoTx.hasWitnesses());\n\n return [\n splitTx,\n item.index,\n undefined as string | null | undefined,\n undefined as number | null | undefined,\n ] as any;\n });\n\n const newTxHex = psbt.data.globalMap.unsignedTx.toBuffer().toString(\"hex\");\n\n const splitNewTx = btcApp.splitTransaction(newTxHex, true);\n const outputScriptHex = btcApp.serializeTransactionOutputs(splitNewTx).toString(\"hex\");\n\n const params: CreateTransactionArg = {\n additionals: [\"bech32\"],\n associatedKeysets: inputs.map(() => derivationPath),\n inputs,\n outputScriptHex,\n segwit: true,\n useTrustedInputForSegwit: true,\n };\n\n return btcApp.createPaymentTransaction({ ...params, ...options });\n};\n\nconst BaseLedgerUTXO = ({\n chain,\n additionalSignParams,\n}: {\n chain: \"bitcoin-cash\" | \"bitcoin\" | \"litecoin\" | \"dogecoin\" | \"dash\";\n additionalSignParams?: Partial<CreateTransactionArg>;\n}) => {\n let btcApp: InstanceType<typeof BitcoinApp>;\n let transport: any = null;\n\n async function checkBtcAppAndCreateTransportWebUSB(checkBtcApp = true) {\n if (checkBtcApp && !btcApp) {\n new SwapKitError(\"wallet_ledger_connection_error\", {\n message: `Ledger connection failed:\\n${JSON.stringify({ checkBtcApp, btcApp })}`,\n });\n }\n\n transport ||= await getLedgerTransport();\n }\n\n async function createTransportWebUSB() {\n transport = await getLedgerTransport();\n const BitcoinApp = (await import(\"@ledgerhq/hw-app-btc\")).default;\n\n btcApp = new BitcoinApp({ transport, currency: chain });\n }\n\n return (derivationPathArray?: DerivationPathArray | string) => {\n const derivationPath =\n typeof derivationPathArray === \"string\"\n ? derivationPathArray\n : derivationPathToString(derivationPathArray as DerivationPathArray);\n\n const format = getWalletFormatFor(derivationPath);\n\n return {\n connect: async () => {\n await checkBtcAppAndCreateTransportWebUSB(false);\n const BitcoinApp = (await import(\"@ledgerhq/hw-app-btc\")).default;\n\n btcApp = new BitcoinApp({ transport, currency: chain });\n },\n getExtendedPublicKey: async (path = \"84'/0'/0'\", xpubVersion = 76067358) => {\n await checkBtcAppAndCreateTransportWebUSB(false);\n\n return btcApp.getWalletXpub({ path, xpubVersion });\n },\n signTransaction: async (psbt: Psbt, inputUtxos: UTXOType[]) => {\n await createTransportWebUSB();\n\n return signUTXOTransaction(\n { psbt, derivationPath, btcApp, inputUtxos },\n additionalSignParams,\n );\n },\n getAddress: async () => {\n const { toCashAddress } = await import(\"@swapkit/toolboxes/utxo\");\n\n await checkBtcAppAndCreateTransportWebUSB(false);\n\n const { bitcoinAddress: address } = await btcApp.getWalletPublicKey(derivationPath, {\n format,\n });\n\n if (!address) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot get ${chain} address from ledger derivation path: ${derivationPath}`,\n });\n }\n\n return chain === \"bitcoin-cash\" && format === \"legacy\"\n ? toCashAddress(address).replace(/(bchtest:|bitcoincash:)/, \"\")\n : address;\n },\n };\n };\n};\n\nexport const BitcoinLedger = BaseLedgerUTXO({ chain: \"bitcoin\" });\nexport const LitecoinLedger = BaseLedgerUTXO({ chain: \"litecoin\" });\n\nexport const BitcoinCashLedger = BaseLedgerUTXO({\n chain: \"bitcoin-cash\",\n additionalSignParams: { segwit: false, additionals: [\"abc\"], sigHashType: 0x41 },\n});\n\nexport const DogecoinLedger = BaseLedgerUTXO({\n chain: \"dogecoin\",\n additionalSignParams: { additionals: [], segwit: false, useTrustedInputForSegwit: false },\n});\n\nexport const DashLedger = BaseLedgerUTXO({\n chain: \"dash\",\n additionalSignParams: { additionals: [], segwit: false, useTrustedInputForSegwit: false },\n});\n",
20
20
  "import type Xrp from \"@ledgerhq/hw-app-xrp\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport {\n Chain,\n type DerivationPathArray,\n NetworkDerivationPath,\n derivationPathToString,\n} from \"@swapkit/helpers\";\nimport type { Transaction } from \"@swapkit/toolboxes/ripple\";\nimport { encode } from \"ripple-binary-codec\";\nimport type { Payment } from \"xrpl\";\nimport { getLedgerTransport } from \"../helpers\";\n\nconst TF_FULLY_CANONICAL_SIG = 2147483648;\n\nfunction cleanTransactionObject(obj: Record<string, any>) {\n const cleaned: Record<string, any> = {};\n for (const key in obj) {\n if (obj[key] !== null && obj[key] !== undefined) {\n cleaned[key] = obj[key];\n }\n }\n return cleaned;\n}\n\nasync function establishConnection(transport: Transport) {\n const { default: Xrp } = await import(\"@ledgerhq/hw-app-xrp\");\n return new Xrp(transport);\n}\n\nfunction fetchAddressAndPublicKey({\n instance,\n derivationPath,\n}: { instance: Xrp; derivationPath: string }) {\n return instance.getAddress(derivationPath);\n}\n\nexport const XRPLedger = async (derivationPath?: DerivationPathArray) => {\n const path = derivationPathToString(derivationPath || NetworkDerivationPath[Chain.Ripple]);\n const transport = await getLedgerTransport();\n const xrpInstance = await establishConnection(transport);\n\n const { address, publicKey } = await fetchAddressAndPublicKey({\n instance: xrpInstance,\n derivationPath: path,\n });\n\n async function sign(transaction: Payment | Transaction) {\n const { hashes } = await import(\"@swapkit/toolboxes/ripple\");\n const cleanedTxWithPubKey = cleanTransactionObject(transaction);\n const transactionJSON = {\n ...cleanedTxWithPubKey,\n Flags: transaction.Flags || TF_FULLY_CANONICAL_SIG,\n SigningPubKey: publicKey.toUpperCase(),\n };\n\n const transactionToSignOnLedger = encode(transactionJSON);\n const txnSignature = await xrpInstance.signTransaction(path, transactionToSignOnLedger);\n const tx_blob = encode({ ...transactionJSON, TxnSignature: txnSignature });\n const hash = hashes.hashSignedTx(tx_blob);\n\n return { tx_blob, hash };\n }\n\n return { address, sign };\n};\n"
21
21
  ],
22
- "mappings": "kGAAA,cACE,aACA,gBAEA,eAEA,oBACA,mBACA,kBACA,mBACA,4BACA,0BCXF,gBAAS,kBAAO,mBAAc,0BASvB,IAAM,EAAmB,OAI9B,QACA,kBAII,CACJ,IAAK,EAAc,MAAO,GAE1B,OAAQ,QACD,EAAM,YACN,EAAM,UACT,OAAQ,EAAqC,QAAQ,OAGlD,EAAM,cACN,EAAM,uBACN,EAAM,eACN,EAAM,aACN,EAAM,cACN,EAAM,cACN,EAAM,UACN,EAAM,YACN,EAAM,OACT,OAAQ,EAAkC,WAAW,OAGlD,EAAM,aACN,EAAM,iBACN,EAAM,UACN,EAAM,cACN,EAAM,SAAU,CACnB,IAAM,EAAS,EACf,MAAM,EAAO,QAAQ,EACrB,IAAM,EAAU,MAAM,EAAO,WAAW,EAExC,OAAO,IAAU,EAAM,YAAc,EAAQ,QAAQ,eAAgB,EAAE,EAAI,CAC7E,MAEK,EAAM,KACT,OAAO,MAAO,EAAiE,WAAW,OAGvF,EAAM,OACT,OAAQ,EAAuD,aAG5D,EAAM,KACT,OAAQ,EAAwD,WAAW,UAI3E,MAAM,IAAI,GAAa,6BAA8B,CAAE,OAAQ,GAAa,OAAQ,OAAM,CAAC,IChEjG,gBACE,kBAGA,mBACA,0BCLF,gCAEE,mBACA,6BACA,0BCJF,0BAEE,2BACA,mBACA,0BCHF,uBAAS,0BCDF,IAAM,EAAM,GACN,EAAa,IAGnB,IAAM,EAAM,CACjB,YAAa,EACb,yBAA0B,EAC1B,eAAgB,EAChB,mBAAoB,CACtB,EAEa,EAAe,CAC1B,KAAM,EACN,IAAK,EACL,KAAM,CACR,EAEa,EAAY,CACvB,cAAe,EACf,uBAAwB,CAC1B,EAEa,EAAY,CACvB,KAAM,CACR,EAEa,EAAa,CACxB,QAAS,KACX,EAEM,GAAyB,CAC7B,EAAG,eACH,EAAG,mBACH,EAAG,iCACH,EAAG,yBACH,EAAG,eACH,GAAI,UACJ,MAAO,YACP,MAAO,iBACP,MAAO,sBACP,MAAO,kBACP,MAAO,eACP,MAAO,eACP,MAAO,0BACP,MAAO,kBACP,MAAO,2BACP,MAAO,uBACP,MAAO,iBACP,MAAO,gBACP,MAAO,4BACP,MAAO,+BACP,MAAO,gBACP,MAAO,mBACT,EAEO,SAAS,CAAiB,CAAC,EAAoB,CACpD,GAAI,KAAc,GAAmB,OAAO,GAAkB,GAC9D,MAAO,wBAAwB,IAGjC,SAAS,EAAM,CAAC,EAAQ,CACtB,OAAO,OAAO,IAAM,UAAY,IAAM,OAAS,MAAM,QAAQ,CAAC,KAAO,aAAa,MAG7E,SAAS,CAAoB,CAAC,EAAe,CAClD,GAAI,EAAU,CACZ,GAAI,GAAO,CAAQ,EAAG,CACpB,GAAI,OAAO,UAAU,eAAe,KAAK,EAAU,YAAY,EAC7D,MAAO,CACL,YAAa,EAAS,WACtB,cAAe,EAAkB,EAAS,UAAU,CACtD,EAGF,GACE,OAAO,UAAU,eAAe,KAAK,EAAU,aAAa,GAC5D,OAAO,UAAU,eAAe,KAAK,EAAU,eAAe,EAE9D,OAAO,EAGX,MAAO,CACL,YAAa,MACb,cAAe,EAAS,SAAS,CACnC,EAGF,MAAO,CACL,YAAa,MACb,cAAe,EAAS,SAAS,CACnC,EAGF,eAAsB,CAAU,CAAC,EAAgB,CAC/C,OAAO,EAAU,KA9FA,GA8FU,EAAI,YAAa,EAAG,CAAC,EAAE,KAAK,CAAC,IAAkB,CACxE,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEtD,EAAW,EACf,GAAI,EAAS,QAAU,EACrB,GACG,EAAS,IAAM,KAAO,EAAS,IAAM,KAAO,EAAS,IAAM,IAAM,EAAS,IAAM,GAGrF,MAAO,CACL,YAAa,EACb,cAAe,EAAkB,CAAU,EAE3C,UAAW,EAAS,KAAO,EAC3B,MAAO,EAAS,GAChB,MAAO,EAAS,GAChB,MAAO,EAAS,GAChB,cAAe,EAAS,KAAO,EAC/B,UAAW,EAAS,SAAS,EAAE,CACjC,GACC,CAAoB,ECnHzB,uBAAS,yBAWF,SAAS,EAAe,CAAC,EAAgB,CAC9C,GAAI,GAAQ,MAAQ,EAAK,OAAS,EAChC,MAAM,IAAI,EAAa,+BAAgC,CAAE,OAAQ,gBAAiB,CAAC,EAErF,GAAI,EAAK,OAAS,GAChB,MAAM,IAAI,EAAa,+BAAgC,CAAE,OAAQ,eAAgB,CAAC,EAEpF,IAAM,EAAM,OAAO,MAAM,EAAI,EAAI,EAAK,MAAM,EAC5C,EAAI,WAAW,EAAK,OAAQ,CAAC,EAC7B,QAAS,EAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EAAG,CACvC,IAAI,EAAI,EAAK,IAAM,EACnB,GAAI,EAAI,EAEN,GAAK,WAEP,EAAI,aAAa,EAAG,EAAI,EAAI,CAAC,EAE/B,OAAO,EAGT,eAAsB,CAAe,CACnC,EACA,EACA,EACA,EACA,EAAS,EAAU,KACnB,CACA,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,eAAgB,EAAU,EAAQ,EAAO,CAAC,EAAW,QAAS,MAAQ,KAAM,CAAC,EAC3F,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GACtD,EAAe,EAAkB,CAAU,EAE/C,GAAI,IAAe,OAAU,IAAe,MAC1C,EAAe,GAAG,OAAkB,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EAAE,SAAS,OAAO,IAG7F,IAAI,EAAiB,KACrB,GAAI,EAAS,OAAS,EACpB,EAAY,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EAGnD,MAAO,CACL,YACA,YAAa,EACb,cAAe,CACjB,GACC,CAAoB,EAG3B,SAAS,EAAiB,CAAC,EAAmB,CAC5C,GAAI,EAAU,SAAW,GACvB,MAAM,IAAI,EAAa,+BAAgC,CACrD,OAAQ,mDACV,CAAC,EAEH,IAAM,EAAI,EAAU,MAAM,GAAI,EAAE,EAG1B,EAAI,OAAO,KAAK,CAAC,GAAK,EAAE,EAAE,OAAS,GAAK,EAAE,CAAC,EAEjD,OAAO,OAAO,OAAO,CAAC,EAAG,EAAU,MAAM,EAAG,EAAE,CAAC,CAAC,EAGlD,eAAsB,EAAW,CAAC,EAAU,EAAc,CACxD,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,yBAA0B,EAAG,EAAG,EAAM,CAAC,EAAW,OAAO,CAAC,EACxE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GACpD,EAAK,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAE5C,MAAO,CACL,KACA,cAAe,GAAkB,CAAE,EACnC,YAAa,EACb,cAAe,EAAkB,CAAU,CAC7C,GACC,CAAoB,EAGpB,SAAS,EAAe,CAAC,EAAgB,CAC9C,IAAK,GAAQ,EAAK,SAAW,EAC3B,MAAM,IAAI,EAAa,+BAAgC,CACrD,OAAQ,iCACV,CAAC,EAGH,IAAM,EAAM,OAAO,MAAM,EAAE,EAY3B,OAVA,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,EAAK,GAAI,EAAE,EAE7B,EAAI,cAAc,EAAK,GAAI,EAAE,EAEtB,EAGF,SAAS,EAAe,CAC7B,EACA,EACA,EACA,EACA,EAAS,EAAU,KACnB,CACA,IAAI,EAAc,EAAa,IAC/B,GAAI,IAAa,EACf,EAAc,EAAa,KAE7B,GAAI,IAAa,EACf,EAAc,EAAa,KAG7B,OAAO,EAAgB,EAAK,EAAa,EAAG,EAAO,CAAM,EAG3D,eAAsB,EAAW,CAAC,EAAU,EAAc,CACxD,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,mBAAoB,EAAG,EAAG,EAAM,CAAC,EAAW,OAAO,CAAC,EAClE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAG1D,MAAO,CACL,GAAI,oBACJ,cAJmB,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAKpD,YAAa,EACb,cAAe,EAAkB,CAAU,CAC7C,GACC,CAAoB,EF5GpB,MAAM,CAAa,CACxB,UACA,gBAEA,WAAW,CAAC,EAAgB,CAC1B,IAAK,EACH,MAAM,IAAI,GAAa,qCAAqC,EAG9D,KAAK,UAAY,QAGZ,aAAY,CAAC,EAAa,CAC/B,GAAI,GAAO,MAAQ,EAAI,OAAS,GAAK,EAAI,OAAS,GAChD,MAAM,IAAI,GAAa,+BAAgC,CAAE,OAAQ,aAAc,CAAC,EAElF,IAAM,EAAM,OAAO,MAAM,EAAI,EAAI,MAAM,EAGvC,OAFA,EAAI,WAAW,EAAI,OAAQ,CAAC,EAC5B,EAAI,MAAM,EAAK,CAAC,EACT,OAGH,cAAa,CAAC,EAAgB,CAGlC,GAFA,KAAK,gBAAkB,MAAM,EAAW,KAAK,SAAS,EAElD,KAAK,gBAAgB,cAAgB,EAAW,QAClD,MAAM,KAAK,gBAGb,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAgB,CAAI,MACxB,GACH,OAAO,GAAgB,CAAI,UAE3B,OAAO,OAAO,MAAM,CAAC,QAIrB,cAAa,CAAC,EAAgB,EAAgB,CAClD,IAAM,EAAiB,MAAM,KAAK,cAAc,CAAI,EAE9C,EAAS,CAAC,EAChB,EAAO,KAAK,CAAc,EAE1B,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAAY,CAClD,IAAI,EAAM,EAAI,EACd,GAAI,EAAI,EAAO,OACb,EAAM,EAAO,OAEf,EAAO,KAAK,EAAO,MAAM,EAAG,CAAG,CAAC,EAGlC,OAAO,OAGH,WAAU,EAAG,CACjB,GAAI,CAEF,OADA,KAAK,gBAAkB,MAAM,EAAW,KAAK,SAAS,EAC/C,KAAK,gBACZ,MAAO,EAAG,CACV,OAAO,EAAqB,CAAC,QAI3B,QAAO,EAAG,CACd,OAAO,KAAK,UAAU,KAAK,IAAM,EAAM,EAAG,CAAC,EAAE,KAAK,CAAC,IAAkB,CACnE,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEtD,EAAU,GACV,EAAa,GACb,EAAU,EACV,EAAa,EAEjB,GAAI,EAAS,KAAO,EAElB,MAAO,CACL,YAAa,MACb,cAAe,mCACjB,EAGF,IAAM,EAAa,EAAS,GAC5B,EAAU,EAAS,MAAM,EAAG,EAAI,CAAU,EAAE,SAAS,OAAO,EAC5D,IAAI,EAAM,EAAI,EACR,EAAgB,EAAS,GAC/B,GAAO,EACP,EAAa,EAAS,MAAM,EAAK,EAAM,CAAa,EAAE,SAAS,OAAO,EACtE,GAAO,EACP,IAAM,EAAc,EAAS,GAK7B,OAJA,GAAO,EACP,EAAU,EACV,EAAa,EAAS,GAEf,CACL,YAAa,EACb,cAAe,EAAkB,CAAU,EAC3C,UACA,aACA,UACA,aACA,eAAgB,EAAa,KAAO,EACpC,sBAAuB,EAAa,KAAO,EAC3C,gBAAiB,EAAa,KAAO,EACrC,oBAAqB,EAAa,OAAS,CAC7C,GACC,CAAoB,OAGnB,WAAU,EAAG,CACjB,OAAO,KAAK,UACT,KAAK,IAAM,EAAM,EAAG,EAAG,OAAO,KAAK,CAAC,CAAC,EAAG,CAAC,EAAW,QAAS,KAAM,CAAC,EACpE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAE1D,GAAI,IAAe,MACjB,MAAO,CACL,YAAa,EACb,cAAe,iDACjB,EAGF,IAAM,EAAW,EAAS,MAAM,EAAG,CAAC,EAAE,SAAS,KAAK,EAEhD,EAAM,EACJ,EAA0B,EAAS,GACzC,GAAO,EACP,IAAM,EAAY,EAAS,MAAM,EAAK,EAAM,CAAuB,EAAE,SAAS,EAC9E,GAAO,EAEP,IAAM,EAAW,EAAS,GAC1B,GAAO,EACP,IAAM,EAAO,EAAS,MAAM,EAAK,EAAM,CAAQ,EAAE,SAAS,KAAK,EAC/D,GAAO,EAEP,IAAM,EAAgB,EAAS,GAC/B,GAAO,EAEP,IAAI,EAAM,EAAS,MAAM,EAAK,EAAM,CAAa,EACjD,GAAI,EAAI,EAAgB,KAAO,EAC7B,EAAM,EAAS,MAAM,EAAK,EAAM,EAAgB,CAAC,EAEnD,IAAM,EAAa,EAAI,SAAS,EAEhC,MAAO,CACL,YAAa,EACb,cAAe,EAAkB,CAAU,EAE3C,WACA,YACA,OACA,YACF,GACC,CAAoB,OAGrB,UAAS,CAAC,EAAgB,CAC9B,GAAI,CACF,IAAM,EAAiB,MAAM,KAAK,cAAc,CAAI,EAEpD,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAY,KAAM,CAAc,MACpC,GAAG,CAEN,IAAM,EAAO,OAAO,OAAO,CAAC,EAAa,aAAa,MAAM,EAAG,CAAc,CAAC,EAC9E,OAAO,GAAY,KAAM,CAAI,CAC/B,SAEE,MAAO,CACL,YAAa,MACb,cAAe,8BACjB,GAEJ,MAAO,EAAG,CACV,OAAO,EAAqB,CAAC,QAI3B,oBAAmB,CAAC,EAAgB,EAAa,EAAe,GAAO,CAC3E,OAAO,KAAK,cAAc,CAAI,EAC3B,KAAK,CAAC,IAA2B,CAEhC,IAAM,EAAO,OAAO,OAAO,CAAC,EAAa,aAAa,CAAG,EAAG,CAAc,CAAC,EAC3E,OAAO,KAAK,UACT,KACC,EACA,EAAI,mBACJ,EAAe,EAAU,uBAAyB,EAAU,cAC5D,EACA,EACA,CAAC,EAAW,OAAO,CACrB,EACC,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEpD,EAAe,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAGtD,MAAO,CACL,eAHoB,OAAO,KAAK,EAAS,MAAM,GAAI,EAAE,CAAC,EAAE,SAAS,EAIjE,cAAe,EACf,YAAa,EACb,cAAe,EAAkB,CAAU,CAC7C,GACC,CAAoB,EAC1B,EACA,MAAM,CAAC,IAAQ,EAAqB,CAAG,CAAC,EAG7C,oBAAoB,CAAC,EAAgB,EAAa,CAChD,OAAO,KAAK,oBAAoB,EAAM,EAAK,EAAI,EAGjD,aAAa,CAAC,EAAkB,EAAkB,EAAe,EAAS,EAAU,KAAM,CACxF,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,EAAgB,KAAM,EAAU,EAAU,EAAO,CAAM,MAC3D,GACH,OAAO,GAAgB,KAAM,EAAU,EAAU,EAAO,CAAM,UAE9D,MAAO,CACL,YAAa,MACb,cAAe,8BACjB,QAIA,KAAI,CAAC,EAAgB,EAAiB,EAAS,EAAU,KAAM,CACnE,IAAM,EAAS,OAAO,KAAK,CAAO,EAC9B,EAAmB,CAAC,EACpB,EACJ,GAAI,CACF,EAAS,MAAM,KAAK,cAAc,EAAM,CAAM,EAC9C,EAAW,MAAM,KAAK,cAAc,EAAG,EAAO,OAAQ,EAAO,GAAc,CAAM,EACjF,MAAO,EAAO,CACd,EAAqB,CAAK,EAE5B,IAAI,EAAS,CACX,YAAa,EAAS,YACtB,cAAe,EAAS,cACxB,UAAW,IACb,EAEA,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAEtC,GADA,EAAS,MAAM,KAAK,cAAc,EAAI,EAAG,EAAO,OAAQ,EAAO,GAAc,CAAM,EAC/E,EAAO,cAAgB,EAAW,QACpC,MAIJ,MAAO,CACL,YAAa,EAAO,YACpB,cAAe,EAAO,cACtB,UAAW,EAAO,SACpB,EAEJ,CG1SA,uBAAS,yBAET,IAAM,EAAkB,IAEtB,WAAW,IAOP,GAAmB,SAAY,CACnC,IAAM,EAAe,EAAgB,EAErC,GAAI,OAAO,GAAc,aAAe,WAAY,MAAO,CAAC,EAC5D,IAAQ,qBAAsB,KAAa,6BAGrC,GADU,MAAM,GAAc,WAAW,GACf,OAAO,CAAC,IAAM,EAAE,WAAa,CAAiB,EAC9E,GAAI,EAAgB,OAAS,EAAG,OAAO,EAAgB,GAEvD,OAAO,GAAc,cAAc,CACjC,QAAS,CAAC,CAAE,SAAU,CAAkB,CAAC,CAC3C,CAAC,GAGU,EAAqB,SAAY,CAC5C,IAAM,EAAS,MAAM,GAAiB,EAEtC,IAAK,EACH,MAAM,IAAI,EAAa,gCAAgC,EAIzD,GADA,MAAM,EAAO,KAAK,EACd,EAAO,gBAAkB,KAAM,MAAM,EAAO,oBAAoB,CAAC,EAErE,GAAI,CACF,MAAM,EAAO,MAAM,EACnB,KAAM,EAIR,IAAM,EAAQ,EAAO,eAAe,GAAG,WAAW,KAChD,EAAG,gBACD,EAAW,KAAK,EAAG,oBAAqB,IAAmB,GAAG,CAClE,EAEA,IAAK,EAEH,MADA,MAAM,EAAO,MAAM,EACb,IAAI,EAAa,gCAAgC,EAGzD,GAAI,CACF,MAAM,EAAO,eAAe,EAAM,eAAe,EACjD,MAAO,EAAgB,CAGvB,MAFA,MAAM,EAAO,MAAM,EAEb,IAAI,EAAa,mCAAoC,CAAK,EAGlE,IAAM,GAAa,KAAa,0CAAkC,QAElE,IADoB,MAAM,EAAU,YAAY,EAC9B,MAAM,IAAI,EAAa,oCAAoC,EAE7E,IAAQ,sBAAuB,KAAa,4BAEtC,EAAY,IAAI,EAAU,EAAQ,EAAM,eAAe,EAEvD,EAAe,CAAC,IAAW,CAC/B,GAAI,IAAW,EAAE,OACf,EAAgB,GAAG,oBAAoB,aAAc,CAAY,EAEjE,EAAU,gBAAgB,IAAI,CAAoB,GAKtD,OAFA,EAAgB,GAAG,iBAAiB,aAAc,CAAY,EAEvD,GJpEF,MAAe,CAAsB,CAC1C,cAAgB,MAChB,eAA+C,GAAsB,KACrE,UACA,UACA,MAA2B,OAE3B,gCAAkC,MAAO,EAAiB,KAAU,CAClE,IAAK,GAAkB,KAAK,WAAa,KAAK,UAAW,OAEzD,GAAI,CAKF,OAJA,KAAK,UACH,IAAmB,KAAK,UAAY,MAAM,EAAmB,EAAI,KAAK,UAGhE,KAAK,WACN,OAAQ,CACX,KAAK,UACH,IAAmB,KAAK,UAAY,IAAI,EAAa,KAAK,SAAS,EAAI,KAAK,UAE9E,KACF,KAEK,SAAU,CACb,IAAM,GAAa,KAAa,oCAA4B,QAC5D,KAAK,UACH,IAAmB,KAAK,UAAY,IAAI,EAAU,KAAK,SAAS,EAAI,KAAK,SAC7E,EAGF,OAAO,KAAK,UACZ,MAAO,EAAgB,CACvB,MAAM,IAAI,GAAa,iCAAkC,CAAK,IAIlE,iBAAmB,CAAC,EAA4B,IAAqB,CACnE,OAAQ,QACD,EAAgB,QACnB,YAEG,EAAgB,aACnB,MAAM,IAAI,GAAa,8BAA+B,CACpD,QAAS,qBAAqB,GAChC,CAAC,OAEE,EAAgB,YACnB,MAAM,IAAI,GAAa,gCAAgC,UAGvD,OAIR,CDxDO,MAAM,WAAqB,CAAsB,CAC9C,OAAwB,KAEhC,eAEA,WAAW,CAAC,EAAsC,GAAsB,KAAM,CAC5E,MAAM,EACN,KAAK,MAAQ,SACb,KAAK,eAAiB,GAAuB,CAAc,EAG7D,QAAU,SAAY,CACpB,MAAM,KAAK,gCAAgC,EAAI,EAC/C,IAAQ,YAAW,WAAY,MAAM,KAAK,oBAAoB,EAI9D,OAFA,KAAK,OAAS,OAAO,KAAK,EAAW,KAAK,EAAE,SAAS,QAAQ,EAEtD,GAGT,oBAAsB,SAAY,CAKhC,OAJA,MAAM,KAAK,gCAAgC,EAAI,EAE9B,MAAM,KAAK,UAAU,WAAW,KAAK,eAAgB,KAAK,KAAK,GAKlF,gBAAkB,MAAO,EAAe,EAAW,MAAQ,CACzD,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KACrE,KAAK,eACL,CACF,EAEA,IAAK,KAAK,OAAQ,MAAM,IAAI,GAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,CACL,CACE,QAAS,CAAE,KAAM,6BAA8B,MAAO,KAAK,MAAO,EAClE,WACA,WACF,CACF,GAGF,UAAY,MAAO,EAAuB,IAA+B,CACvE,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAW,MAAM,KAAK,YAAY,EAGxC,GAFqB,EAAS,UAAU,CAAC,IAAY,EAAQ,UAAY,CAAa,IAEjE,GACnB,MAAM,IAAI,GAAa,kCAAmC,CAAE,QAAS,CAAc,CAAC,EAGtF,IAAQ,2BAA0B,qBAAsB,KAAa,0BAAkB,SAC/E,uBAAwB,KAAa,2BAAmB,QAE1D,EAAU,EAAiB,CAAO,EAClC,EAAY,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAO,EAExE,KAAK,iBAAiB,EAAU,YAAa,EAAU,aAAa,EAEpE,IAAM,EAAgB,EAAmB,QAAQ,EAAU,SAAS,EAAE,cAAc,EAEpF,MAAO,CACL,OAAQ,EACR,UAAW,EAAyB,EAAS,GAAG,OAAQ,CAAa,CACvE,GAGF,YAAc,SAAY,CACxB,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAmB,MAAM,KAAK,oBAAoB,EACxD,MAAO,CACL,CACE,QAAS,EAAiB,QAC1B,KAAM,YACN,OAAQ,OAAO,KAAK,EAAiB,UAAW,KAAK,CACvD,CACF,EAEJ,CM9FA,kBACE,2BAEA,mBACA,4BACA,0BAEF,yBAAS,gBAIT,MAAM,UAA2B,EAAe,CAC9C,QAAmB,EAAQ,SAC3B,eAAiB,GACjB,UAAqD,KACrD,cAAgB,MAEhB,WAAW,EACT,WACA,iBAAiB,GAAsB,GACvC,UAAU,EAAQ,UAKjB,CACD,MAAM,CAAQ,EAEd,KAAK,QAAU,GAAW,EAAQ,SAClC,KAAK,eACH,OAAO,IAAmB,SAAW,EAAiB,GAAuB,CAAc,EAE7F,OAAO,eAAe,KAAM,WAAY,CACtC,WAAY,GACZ,MAAO,GAAY,KACnB,SAAU,EACZ,CAAC,EAGH,QAAU,CAAC,IACT,IAAI,EAAmB,CACrB,WACA,eAAgB,KAAK,eACrB,QAAS,KAAK,OAChB,CAAC,EAEH,gCAAkC,SAAY,CAC5C,GAAI,KAAK,UAAW,OACpB,MAAM,KAAK,yBAAyB,GAGtC,yBAA2B,SAAY,CACrC,IAAM,EAAY,MAAM,EAAmB,EACrC,GAAe,KAAa,iCAAyB,QAE3D,KAAK,UAAY,IAAI,EAAY,CAAS,GAG5C,WAAa,SAAY,CACvB,IAAM,EAAW,MAAM,KAAK,oBAAoB,EAChD,IAAK,EAAU,MAAM,IAAI,EAAa,qCAAqC,EAC3E,OAAO,EAAS,SAGlB,oBAAsB,SAAY,CAEhC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,cAAc,GAGvD,qBAAuB,SAAY,CAEjC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,eAAgB,EAAI,GAG7D,YAAc,MAAO,IAAuB,CAC1C,IAAQ,aAAc,KAAa,kBACnC,MAAM,KAAK,yBAAyB,EAEpC,IAAM,EAAM,MAAM,KAAK,WAAW,oBAAoB,KAAK,eAAgB,CAAU,EAErF,IAAK,EAAK,MAAM,IAAI,EAAa,6BAA6B,EAI9D,OAFA,EAAI,EAAI,KAAK,EAAI,IACjB,EAAI,EAAI,KAAK,EAAI,IACV,EAAU,KAAK,CAAG,EAAE,YAG7B,gBAAkB,MAAO,IAAyC,CAChE,IAAK,KAAK,SAAU,MAAM,IAAI,EAAa,2BAA2B,EAEtE,IAAM,EAAc,MAAM,KAAK,gBAAgB,CAAE,EAEjD,OAAO,MAAM,KAAK,SAAS,qBAAqB,CAAW,GAG7D,aAAa,EAAoB,CAC/B,MAAM,IAAI,EAAa,qCAAsC,CAAE,OAAQ,eAAgB,CAAC,EAG1F,gBAAkB,MAAO,IAA2B,CAClD,IAAQ,eAAgB,KAAa,kBACrC,MAAM,KAAK,yBAAyB,EAEpC,IAAM,EAAmB,MAAM,KAAK,UAAU,oBAC5C,EAAG,MAAS,MAAM,KAAK,WAAW,CACpC,EAEM,EAAS,CACb,QAAS,EAAG,SAAW,KAAK,QAC5B,KAAM,EAAG,KACT,SAAU,EAAG,YACT,EAAG,UAAY,CAAE,SAAU,EAAG,QAAS,MACtC,EAAG,UACN,EAAG,cAAgB,CACjB,aAAc,EAAG,aACjB,qBAAsB,EAAG,oBAC3B,EACF,MACE,EAAG,QAAU,OACT,QAAQ,EAAG,OAAS,GAAoB,GAAG,SAAS,CAAC,EACrD,EACN,GAAI,EAAG,IAAI,SAAS,EACpB,MAAO,EAAG,MACV,KAAM,EAAG,OAAS,OAAO,MAAM,EAAG,IAAI,EAAI,EAAG,KAAO,EAAG,aAAe,EAAI,CAC5E,EAGM,EAAa,EAAY,KAAK,CAAM,EAAE,mBAAmB,MAAM,CAAC,GAE9D,iBAAkB,KAAa,gCAEjC,EAAa,MAAM,EAAc,mBACrC,EACA,CAAC,EACD,CAAE,gBAAiB,GAAM,MAAO,EAAK,CACvC,EAEM,EAAY,MAAM,KAAK,WAAW,gBACtC,KAAK,eACL,EACA,CACF,EAEA,IAAK,EAAW,MAAM,IAAI,EAAa,6BAA6B,EAEpE,IAAQ,IAAG,IAAG,KAAM,EAEpB,OAAO,EAAY,KAAK,IACnB,EACH,UAAW,CAAE,EAAG,OAAO,OAAO,CAAC,CAAC,EAAG,EAAG,KAAK,IAAK,EAAG,KAAK,GAAI,CAC9D,CAAC,EAAE,WAEP,CAIO,IAAM,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,EAAQ,SAAU,WAAU,gBAAe,CAAC,EAEnE,GAAkB,EAAG,WAAU,oBAC1C,IAAI,EAAmB,CAAE,QAAS,EAAQ,UAAW,WAAU,gBAAe,CAAC,EAEpE,GAA0B,EAAG,WAAU,oBAClD,IAAI,EAAmB,CAAE,QAAS,EAAQ,kBAAmB,WAAU,gBAAe,CAAC,EAE5E,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,EAAQ,SAAU,WAAU,gBAAe,CAAC,EAEnE,GAAgB,EAAG,WAAU,oBACxC,IAAI,EAAmB,CAAE,QAAS,EAAQ,QAAS,WAAU,gBAAe,CAAC,EAElE,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,EAAQ,SAAU,WAAU,gBAAe,CAAC,EAEnE,GAAa,EAAG,WAAU,oBACrC,IAAI,EAAmB,CAAE,QAAS,EAAQ,KAAM,WAAU,gBAAe,CAAC,EAE/D,GAAe,EAAG,WAAU,oBACvC,IAAI,EAAmB,CAAE,QAAS,EAAQ,OAAQ,WAAU,gBAAe,CAAC,EAEjE,GAAe,EAAG,WAAU,oBACvC,IAAI,EAAmB,CAAE,QAAS,EAAQ,OAAQ,WAAU,gBAAe,CAAC,ECjL9E,eAAsB,EAAmB,CACvC,EACA,EACA,CACA,IAAM,EAAO,KAAa,kCAClB,QAAO,iBAAgB,yBAAwB,gBAAiB,KACtE,4BAEI,EAAU,IAAI,EAAK,QAAQ,CAAS,EAGpC,EAAO,EAAiB,EAAuB,CAAc,EAAI,EAAe,EAAM,OAGpF,UAAS,UAAW,GAAc,MAAM,EAAQ,WAAW,CAAI,EAiEvE,MA/De,MACP,aAAY,EAAG,CACnB,IAAQ,SAAU,KAAa,uBAE/B,OAAO,EAAM,UAAU,WAAW,WAAW,GAAW,GAG1D,iBAAiB,CACf,EACA,EACA,EACA,EACA,EACA,CAEA,OAAO,QAAQ,OACb,IAAI,EAAa,qCAAsC,CACrD,OAAQ,SACR,OAAQ,mBACV,CAAC,CACH,GAGF,UAAU,EAAG,CACX,OAAO,QAAQ,QAAQ,CAAO,QAG1B,gBAAe,CAAC,EAA0B,CAC9C,IAAQ,YAAW,qBAAsB,KAAa,uCACtD,GAAI,CACF,IAAM,EAAiB,MAAM,EAAQ,gBAAgB,EAAY,OAAO,EAAG,CAAI,EAC/E,IAAK,EACH,MAAM,IAAI,MAAM,qBAAqB,EAGvC,IAAM,EAAY,IAAI,EAAU,CAC9B,QAAS,EACT,KAAM,CACR,CAAC,EAEK,EAAoB,IAAI,EAAkB,CAAE,cAAa,WAAU,CAAC,EAE1E,MAAO,CAAC,EAAgB,CAAiB,EAIzC,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,8BAA+B,CACpD,OACF,CAAC,IAIL,kBAAkB,CAAC,EAAsB,CACvC,OAAO,QAAQ,OACb,IAAI,EAAa,qCAAsC,CACrD,OAAQ,SACR,OAAQ,oBACV,CAAC,CACH,EAEJ,EClFF,iBAAS,qBACT,gCAAmC,mBAAuB,0BCD1D,iBAAS,qBACT,uBAAS,yBAGF,IAAM,GAAe,CAAC,IAAwB,CAEnD,GAAI,EAAe,OAAS,GAC1B,MAAM,IAAI,EAAa,kCAAmC,CAAE,OAAQ,WAAY,CAAC,EAEnF,GAAI,EAAe,KAAO,GACxB,MAAM,IAAI,EAAa,kCAAmC,CACxD,OAAQ,wCACV,CAAC,EAEH,GAAI,EAAe,GAAK,IAAM,EAAe,OAC3C,MAAM,IAAI,EAAa,kCAAmC,CACxD,OAAQ,qCACV,CAAC,EAEH,GAAI,EAAe,KAAO,EACxB,MAAM,IAAI,EAAa,kCAAmC,CACxD,OAAQ,yCACV,CAAC,EAIH,IAAM,EAAU,EAAe,GAC3B,EAAa,EAAe,MAAM,EAAG,EAAU,CAAC,EAGpD,GAAI,EAAW,SAAW,IAAM,EAAW,KAAO,EAChD,EAAa,EAAW,MAAM,EAAG,EAAE,EAC9B,QAAI,EAAW,SAAW,GAC/B,MAAM,IAAI,EAAa,kCAAmC,CAAE,OAAQ,YAAa,CAAC,EAIpF,MAAO,EAAW,OAAS,GACzB,EAAW,QAAQ,CAAC,EAItB,GAAI,EAAe,EAAU,KAAO,EAClC,MAAM,IAAI,EAAa,kCAAmC,CACxD,OAAQ,+CACV,CAAC,EAGH,IAAM,EAAU,EAAe,EAAU,GAEzC,GAAI,EAAI,EAAU,EAAI,IAAY,EAAe,OAC/C,MAAM,IAAI,EAAa,kCAAmC,CACxD,OAAQ,8CACV,CAAC,EAGH,IAAI,EAAa,EAAe,MAAM,EAAU,EAAG,EAAe,MAAM,EAGxE,GAAI,EAAW,SAAW,IAAM,EAAW,KAAO,EAChD,EAAa,EAAW,MAAM,EAAG,EAAE,EAC9B,QAAI,EAAW,SAAW,GAC/B,MAAM,IAAI,EAAa,kCAAmC,CAAE,OAAQ,YAAa,CAAC,EAIpF,MAAO,EAAW,OAAS,GACzB,EAAW,QAAQ,CAAC,EAGtB,GAAI,EAAW,SAAW,IAAM,EAAW,SAAW,GACpD,MAAM,IAAI,EAAa,kCAAmC,CAAE,OAAQ,uBAAwB,CAAC,EAG/F,OAAO,GAAO,OAAO,OAAO,OAAO,CAAC,EAAY,CAAU,CAAC,CAAC,GDnEvD,MAAM,WAAwB,CAAsB,CACjD,OAAwB,KAEhC,eAEA,WAAW,CAAC,EAAsC,GAAsB,KAAM,CAC5E,MAAM,EACN,KAAK,MAAQ,OACb,KAAK,eAAiB,KAGpB,OAAM,EAAG,CACX,OAAO,KAAK,OAGd,QAAU,SAAY,CACpB,MAAM,KAAK,gCAAgC,EAC3C,IAAQ,gBAAe,kBACrB,MAAM,KAAK,oBAAoB,EAIjC,OAFA,KAAK,OAAS,GAAO,OAAO,CAAa,EAElC,GAGT,oBAAsB,SAAY,CAChC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAwC,MAAM,KAAK,UAAU,oBACjE,KAAK,eACL,KAAK,KACP,EAIA,OAFA,KAAK,iBAAiB,EAAS,YAAa,EAAS,aAAa,EAE3D,GAGT,qBAAuB,SAAY,CACjC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAwC,MAAM,KAAK,UAAU,qBACjE,KAAK,eACL,KAAK,KACP,EAIA,OAFA,KAAK,iBAAiB,EAAS,YAAa,EAAS,aAAa,EAE3D,GAGT,gBAAkB,MAAO,EAAe,EAAW,MAAQ,CACzD,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KACrE,KAAK,eACL,CACF,EAEA,IAAK,KAAK,OAAQ,MAAM,IAAI,GAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,CACL,CACE,QAAS,CAAE,KAAM,6BAA8B,MAAO,KAAK,MAAO,EAClE,WACA,UAAW,GAAa,CAAS,CACnC,CACF,GAGF,KAAO,MAAO,IAAoB,CAChC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KACrE,KAAK,eACL,CACF,EAEA,IAAK,KAAK,OAAQ,MAAM,IAAI,GAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,GAAa,CAAS,EAEjC,CE5FA,gCAEE,mBACA,4BACA,0BAMK,MAAM,EAA0C,CACrD,eACA,UAAiD,KACjD,cAAgB,MAEhB,WAAW,CAAC,EAA+C,CACzD,KAAK,eACH,OAAO,IAAmB,SACtB,EACA,GAAuB,GAAkB,GAAsB,GAAG,EAG1E,gCAAkC,SAAY,CAC5C,GAAI,KAAK,UAAW,OACpB,MAAM,KAAK,yBAAyB,GAGtC,yBAA2B,SAAY,CACrC,IAAM,EAAY,MAAM,EAAmB,EACrC,GAAW,KAAa,iCAAyB,QAEvD,KAAK,UAAY,IAAI,EAAQ,CAAS,GAGxC,WAAa,SAA6B,CACxC,IAAM,EAAW,MAAM,KAAK,oBAAoB,EAChD,IAAK,EAAU,MAAM,IAAI,EAAa,qCAAqC,EAC3E,OAAO,EAAS,SAGlB,oBAAsB,SAAY,CAChC,MAAM,KAAK,yBAAyB,EACpC,IAAM,EAAS,MAAM,KAAK,WAAW,WAAW,KAAK,cAAc,EAEnE,IAAK,EAAQ,MAAM,IAAI,EAAa,qCAAqC,EAEzE,MAAO,CACL,QAAS,EAAO,QAChB,UAAW,EAAO,SACpB,GAGF,qBAAuB,SAAY,CAEjC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,eAAgB,EAAI,GAG7D,gBAAkB,MAAO,IAAiC,CAGxD,GAFA,MAAM,KAAK,yBAAyB,GAE/B,KAAK,UACR,MAAM,IAAI,EAAa,+BAA+B,EAIxD,IAAM,EAAe,KAAK,UAAU,CAAW,EAE/C,GAAI,CACF,IAAM,EAAY,MAAM,KAAK,UAAU,gBACrC,KAAK,eACL,EACA,CAAC,CACH,EAEA,IAAK,EACH,MAAM,IAAI,EAAa,6BAA6B,EAItD,MAAO,IACF,EACH,UAAW,CAAC,CAAS,CACvB,EACA,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,8BAA+B,CAAE,OAAM,CAAC,GAGrE,CAEO,IAAM,GAAa,CAAC,IACzB,IAAI,GAAoB,CAAc,ECzFxC,uBAEE,6BACA,yBACA,0BAGF,sBAAoB,uBAWpB,IAAM,GAAsB,OACxB,OAAM,aAAY,SAAQ,kBAC5B,IACG,CACH,IAAM,EAAS,EAAW,IAAI,CAAC,IAAS,CACtC,IAAM,EAAS,GAAY,QAAQ,EAAK,OAAS,EAAE,EAGnD,MAAO,CAFS,EAAO,iBAAiB,EAAO,MAAM,EAAG,EAAO,aAAa,CAAC,EAI3E,EAAK,MACL,OACA,MACF,EACD,EAEK,EAAW,EAAK,KAAK,UAAU,WAAW,SAAS,EAAE,SAAS,KAAK,EAEnE,EAAa,EAAO,iBAAiB,EAAU,EAAI,EACnD,EAAkB,EAAO,4BAA4B,CAAU,EAAE,SAAS,KAAK,EAE/E,EAA+B,CACnC,YAAa,CAAC,QAAQ,EACtB,kBAAmB,EAAO,IAAI,IAAM,CAAc,EAClD,SACA,kBACA,OAAQ,GACR,yBAA0B,EAC5B,EAEA,OAAO,EAAO,yBAAyB,IAAK,KAAW,CAAQ,CAAC,GAG5D,EAAiB,EACrB,QACA,0BAII,CACJ,IAAI,EACA,EAAiB,KAErB,eAAe,CAAmC,CAAC,EAAc,GAAM,CACrE,GAAI,IAAgB,EAClB,IAAI,GAAa,iCAAkC,CACjD,QAAS;AAAA,EAA8B,KAAK,UAAU,CAAE,cAAa,QAAO,CAAC,GAC/E,CAAC,EAGH,IAAc,MAAM,EAAmB,EAGzC,eAAe,CAAqB,EAAG,CACrC,EAAY,MAAM,EAAmB,EAGrC,EAAS,IAFW,KAAa,iCAAyB,QAElC,CAAE,YAAW,SAAU,CAAM,CAAC,EAGxD,MAAO,CAAC,IAAuD,CAC7D,IAAM,EACJ,OAAO,IAAwB,SAC3B,EACA,GAAuB,CAA0C,EAEjE,EAAS,GAAmB,CAAc,EAEhD,MAAO,CACL,QAAS,SAAY,CACnB,MAAM,EAAoC,EAAK,EAG/C,EAAS,IAFW,KAAa,iCAAyB,QAElC,CAAE,YAAW,SAAU,CAAM,CAAC,GAExD,qBAAsB,MAAO,EAAO,YAAa,EAAc,WAAa,CAG1E,OAFA,MAAM,EAAoC,EAAK,EAExC,EAAO,cAAc,CAAE,OAAM,aAAY,CAAC,GAEnD,gBAAiB,MAAO,EAAY,IAA2B,CAG7D,OAFA,MAAM,EAAsB,EAErB,GACL,CAAE,OAAM,iBAAgB,SAAQ,YAAW,EAC3C,CACF,GAEF,WAAY,SAAY,CACtB,IAAQ,iBAAkB,KAAa,mCAEvC,MAAM,EAAoC,EAAK,EAE/C,IAAQ,eAAgB,GAAY,MAAM,EAAO,mBAAmB,EAAgB,CAClF,QACF,CAAC,EAED,IAAK,EACH,MAAM,IAAI,GAAa,kCAAmC,CACxD,QAAS,cAAc,0CAA8C,GACvE,CAAC,EAGH,OAAO,IAAU,gBAAkB,IAAW,SAC1C,EAAc,CAAO,EAAE,QAAQ,0BAA2B,EAAE,EAC5D,EAER,IAIS,GAAgB,EAAe,CAAE,MAAO,SAAU,CAAC,EACnD,GAAiB,EAAe,CAAE,MAAO,UAAW,CAAC,EAErD,GAAoB,EAAe,CAC9C,MAAO,eACP,qBAAsB,CAAE,OAAQ,GAAO,YAAa,CAAC,KAAK,EAAG,YAAa,EAAK,CACjF,CAAC,EAEY,GAAiB,EAAe,CAC3C,MAAO,WACP,qBAAsB,CAAE,YAAa,CAAC,EAAG,OAAQ,GAAO,yBAA0B,EAAM,CAC1F,CAAC,EAEY,GAAa,EAAe,CACvC,MAAO,OACP,qBAAsB,CAAE,YAAa,CAAC,EAAG,OAAQ,GAAO,yBAA0B,EAAM,CAC1F,CAAC,ECjJD,gBACE,4BAEA,6BACA,0BAGF,iBAAS,6BAIT,IAAM,GAAyB,WAE/B,SAAS,EAAsB,CAAC,EAA0B,CACxD,IAAM,EAA+B,CAAC,EACtC,QAAW,KAAO,EAChB,GAAI,EAAI,KAAS,MAAQ,EAAI,KAAS,OACpC,EAAQ,GAAO,EAAI,GAGvB,OAAO,EAGT,eAAe,EAAmB,CAAC,EAAsB,CACvD,IAAQ,QAAS,GAAQ,KAAa,gCACtC,OAAO,IAAI,EAAI,CAAS,EAG1B,SAAS,EAAwB,EAC/B,WACA,kBAC4C,CAC5C,OAAO,EAAS,WAAW,CAAc,EAGpC,IAAM,GAAY,MAAO,IAAyC,CACvE,IAAM,EAAO,GAAuB,GAAkB,GAAsB,GAAM,OAAO,EACnF,EAAY,MAAM,EAAmB,EACrC,EAAc,MAAM,GAAoB,CAAS,GAE/C,UAAS,aAAc,MAAM,GAAyB,CAC5D,SAAU,EACV,eAAgB,CAClB,CAAC,EAED,eAAe,CAAI,CAAC,EAAoC,CACtD,IAAQ,UAAW,KAAa,qCAE1B,EAAkB,IADI,GAAuB,CAAW,EAG5D,MAAO,EAAY,OAAS,GAC5B,cAAe,EAAU,YAAY,CACvC,EAEM,EAA4B,GAAO,CAAe,EAClD,EAAe,MAAM,EAAY,gBAAgB,EAAM,CAAyB,EAChF,EAAU,GAAO,IAAK,EAAiB,aAAc,CAAa,CAAC,EACnE,EAAO,EAAO,aAAa,CAAO,EAExC,MAAO,CAAE,UAAS,MAAK,EAGzB,MAAO,CAAE,UAAS,MAAK,GbPlB,IAAM,EAAkB,OAC7B,QACA,oBAIiC,CACjC,IAAQ,SAAU,KAAa,sBAE/B,OAAO,EAAM,CAA6B,EACvC,WAAwC,EACxC,KAAK,EAAM,UAAW,IACrB,QAAQ,QAAQ,IAAI,GAAgB,CAAc,CAAuB,CAC3E,EACC,KAAK,EAAM,OAAQ,IAClB,QAAQ,QAAQ,IAAI,GAAa,CAAc,CAAuB,CACxE,EACC,KAAK,EAAM,QAAS,IAAM,QAAQ,QAAQ,GAAc,CAAc,CAAuB,CAAC,EAC9F,KAAK,EAAM,YAAa,IACvB,QAAQ,QAAQ,GAAkB,CAAc,CAAuB,CACzE,EACC,KAAK,EAAM,KAAM,IAAM,QAAQ,QAAQ,GAAW,CAAc,CAAuB,CAAC,EACxF,KAAK,EAAM,SAAU,IACpB,QAAQ,QAAQ,GAAe,CAAc,CAAuB,CACtE,EACC,KAAK,EAAM,SAAU,IACpB,QAAQ,QAAQ,GAAe,CAAc,CAAuB,CACtE,EACC,KAAK,EAAM,OAAQ,IAAM,QAAQ,QAAQ,GAAU,CAAc,CAAuB,CAAC,EACzF,KAAK,EAAM,KAAM,IAAM,QAAQ,QAAQ,GAAW,CAAc,CAAuB,CAAC,EACxF,KAAK,EAAM,KAAM,SAAY,CAC5B,IAAM,EAAY,MAAM,EAAmB,EAC3C,OAAO,GAAoB,EAAW,CAAc,EACrD,EACA,KACC,EAAM,SACN,EAAM,OACN,EAAM,UACN,EAAM,kBACN,EAAM,SACN,EAAM,OACN,EAAM,SACN,EAAM,QACN,EAAM,KACN,SAAY,CACV,IAAQ,eAAgB,KAAa,kCAC/B,EAAS,CAAE,SAAU,MAAM,EAAY,CAAiB,EAAG,gBAAe,EAEhF,OAAO,EAAM,CAAc,EACxB,KACC,EAAM,kBACN,IAAM,GAAwB,CAAM,CACtC,EACC,KAAK,EAAM,UAAW,IAAM,GAAgB,CAAM,CAAuB,EACzE,KAAK,EAAM,SAAU,IAAM,GAAe,CAAM,CAAuB,EACvE,KAAK,EAAM,SAAU,IAAM,GAAe,CAAM,CAAuB,EACvE,KAAK,EAAM,QAAS,IAAM,GAAc,CAAM,CAAuB,EACrE,KAAK,EAAM,KAAM,IAAM,GAAW,CAAM,CAAuB,EAC/D,KAAK,EAAM,OAAQ,IAAM,GAAa,CAAM,CAAuB,EACnE,KAAK,EAAM,OAAQ,IAAM,GAAa,CAAM,CAAuB,EACnE,UAAU,IAAM,GAAe,CAAM,CAAuB,EAEnE,EACC,UAAU,IAAM,CACf,MAAM,IAAI,GAAa,6BAA8B,CAAE,OAAQ,GAAa,OAAQ,OAAM,CAAC,EAC5F,GFvGE,IAAM,GAAe,GAAa,CACvC,KAAM,gBACN,gBAAiB,CACf,EAAM,SACN,EAAM,OACN,EAAM,UACN,EAAM,KACN,EAAM,kBACN,EAAM,QACN,EAAM,YACN,EAAM,OACN,EAAM,KACN,EAAM,SACN,EAAM,SACN,EAAM,OACN,EAAM,SACN,EAAM,KACN,EAAM,SACN,EAAM,QACN,EAAM,OACN,EAAM,UACN,EAAM,IACR,EACA,WAAY,GAAa,OACzB,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAa,CAAC,EAAiB,EAAsC,CAClF,IAAO,GAAS,GAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAE7E,IAAK,EAAO,MAAO,GAEnB,IAAM,EAAgB,MAAM,GAAiB,CAAE,QAAO,gBAAe,CAAC,EAItE,OAFA,EAAS,IAAK,EAAe,QAAO,WAAY,GAAa,MAAO,CAAC,EAE9D,GAEb,CAAC,EAEY,GAA0B,GAAyB,EAAY,EAG5E,SAAS,EAAU,CAAC,EAAe,EAAmB,IAAK,CACzD,IAAK,GAAM,SAAS,IAAI,EAAG,OAAO,EAElC,IAAM,EAAmB,EAAK,SAAS,IAAI,IAAmB,EAC1D,EAAK,MAAM,IAAI,IAAmB,EAAE,GACpC,EAEJ,OAAO,GAAkB,UAAU,EAAG,EAAiB,YAAY,GAAG,CAAC,EAGzE,SAAS,CAAoB,CAAC,EAAgB,CAG5C,GAAI,MAAM,QAAQ,CAAS,EAIzB,OAHA,EAAU,QAAQ,CAAC,EAAM,IAAU,CACjC,EAAU,GAAS,EAAqB,CAAI,EAC7C,EACM,EAIT,GAAI,OAAO,IAAc,SAAU,OAAO,EAC1C,IAAM,EAAe,CAAC,EAChB,EAAa,OAAO,KAAK,CAAS,EAAE,KAAK,EAE/C,QAAW,KAAO,EAChB,EAAQ,GAAO,EAAqB,EAAU,EAAI,EAGpD,OAAO,EAGT,SAAS,EAAoB,CAAC,EAAW,CACvC,OAAO,KAAK,UAAU,EAAqB,CAAI,CAAC,EAGlD,eAAe,EAAgB,EAC7B,QACA,kBACyD,CACzD,OAAQ,QACD,EAAM,iBACN,EAAM,aACN,EAAM,UACN,EAAM,cACN,EAAM,SAAU,CACnB,IAAQ,kBAAmB,KAAa,mCAClC,EAAU,MAAM,EAAe,CAAsB,EAErD,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAmBtE,MAAO,IAAK,EAAS,UAAS,SAjBb,MAAO,IAA8B,CACpD,IAAM,EAAU,EAAO,UAAY,MAAM,EAAQ,YAAY,GAAG,GAAU,SACpE,EAAO,CAAC,EAAM,OAAO,EAAE,SAAS,CAAK,EAAI,EAAO,KAAO,GAAW,EAAO,IAAI,GAE3E,OAAM,UAAW,MAAM,EAAQ,kBAAkB,IACpD,EACH,UACA,OACA,OAAQ,EACR,WAAY,EACd,CAAC,EACK,EAAQ,MAAM,EAAO,gBAAgB,EAAM,CAAM,EAGvD,OAFW,MAAM,EAAQ,YAAY,CAAK,EAKL,CACzC,MAEK,EAAM,cACN,EAAM,eACN,EAAM,cACN,EAAM,cACN,EAAM,aACN,EAAM,uBACN,EAAM,UACN,EAAM,YACN,EAAM,OAAQ,CACjB,IAAQ,iBAAkB,KAAa,kCACjC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAGtE,MAAO,IAFS,MAAM,EAAc,EAAO,CAAE,QAAO,CAAC,EAEhC,SAAQ,CAC/B,MAEK,EAAM,OAAQ,CACjB,IAAQ,8BAA6B,kBAAiB,oBAAqB,KACzE,qCAEI,EAAU,MAAM,EAAiB,EAAM,MAAM,EAC7C,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAgCtE,MAAO,IAAK,EAAS,UAAS,SA9Bb,OAAS,aAAY,YAAW,UAAkC,CACjF,IAAK,EAAY,MAAM,IAAI,EAAa,6BAA6B,EAErE,IAAM,EAAmB,CACvB,OAAQ,CACN,CACE,OAAQ,EAAW,aAAa,QAAQ,EACxC,MAAO,EAAgB,IAAI,EAAW,QAAQ,EAAE,YAAY,CAC9D,CACF,EACA,YAAa,EACb,UAAW,CACb,EAEM,EAAgB,MAAM,EAC1B,GAAS,IAAI,SAAS,EAAE,GACxB,EACA,YACF,GAEQ,mBAAoB,MAAM,EAAc,iBAC9C,EACA,CAAC,CAAE,QAAS,+BAAgC,MAAO,CAAiB,CAAC,EACrE,EACA,CACF,EAEA,OAAO,EAG8B,CACzC,MAEK,EAAM,UAAW,CACpB,IAAQ,YAAa,KAAa,8DAC1B,SAAU,KAAa,iDACvB,eAAc,sBAAuB,KAAa,kCAA0B,SAElF,uBACA,qBACA,mBACA,gBACA,qBACA,aACA,qCACE,KAAa,qCACX,EAAU,MAAM,EAAiB,CAAK,EACtC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAEhE,EAAM,EAAmB,CAAK,GAC5B,OAAQ,EAAO,mBAAiB,KAAM,IAAgB,EAGxD,GAAoB,OACxB,OAAO,GACP,iBACG,MAEiD,CACpD,IAAM,GAAU,MAAM,EAAQ,WAAW,CAAO,EAChD,IAAK,GAAS,MAAM,IAAI,EAAa,+BAA+B,EACpE,IAAK,GAAY,MAAM,IAAI,EAAa,6BAA6B,EACrE,IAAK,EAAO,MAAM,IAAI,EAAa,gCAAgC,EAEnE,IAAQ,iBAAe,SAAU,IAAmB,GAC9C,GAAY,IAAkB,GAAG,SAAS,EAE1C,GAAkB,EAAqB,CAC3C,EAAc,CAAE,OAAQ,EAAS,cAAY,UAAS,EAAK,CAAC,CAC9D,CAAC,EAGK,GAAY,GAAqB,CACrC,eAAgB,IAAe,SAAS,EACxC,SAAU,GAAQ,UAClB,MACA,OACA,KAAM,GACN,UACF,CAAC,EAEK,EAAa,MAAM,GAAgB,GAAW,CAAQ,EAC5D,IAAK,EAAY,MAAM,IAAI,EAAa,6BAA6B,EAErE,IAAM,GAAS,EAAa,CAAE,KAAM,6BAA8B,OAAM,CAAC,EACnE,GAAO,GAAgB,IAAI,CAAiC,EAC5D,GAAY,MAAM,EAAmB,CAAE,QAAM,QAAO,MAAK,CAAC,EAE1D,GAAgB,EACpB,CAAC,CAAE,UAAQ,SAAU,OAAO,CAAQ,CAAE,CAAC,EACvC,EAAI,OACJ,OAAO,SAAS,EAAI,GAAG,EACvB,OACA,OACA,EAAS,2BACX,EAEM,GAAY,IAAa,IAAI,UAC/B,EAAW,EAAW,GAAG,SAAS,EAClC,WAAW,KAAK,CAAC,CAAC,EAEhB,GAAQ,EAAM,YAAY,CAAE,aAAW,iBAAe,WAAY,CAAC,EAAS,CAAE,CAAC,EAC/E,GAAU,EAAM,OAAO,EAAK,EAAE,OAAO,GACnC,eAAe,GAAS,IAAI,MAAM,EAEpC,GAAc,MAAM,EACxB,GAAS,IAAI,SAAS,EAAE,GAAa,GAAc,UAAY,EAAM,UACvE,GACQ,oBAAoB,MAAM,GAAY,YAAY,EAAO,EAEjE,OAAO,IAMT,MAAO,IAAK,EAAS,UAAS,QAFd,CAAC,IAAmC,GAAkB,CAAM,EAErC,SAHtB,CAAC,IAAkC,GAAkB,CAAM,EAG3B,cAAY,CAC/D,MAEK,EAAM,KAAM,CACf,IAAQ,kBAAmB,KAAa,mCAClC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAY,MAAM,EAAO,WAAW,EAG1C,MAAO,IAFS,MAAM,EAAe,CAAE,QAAO,CAAC,EAE1B,QAAS,CAAU,CAC1C,MAEK,EAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,qCACpC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,EAAO,QAGvB,MAAO,IAFS,MAAM,EAAiB,CAAE,QAAO,CAAC,EAE5B,SAAQ,CAC/B,MAEK,EAAM,KAAM,CACf,IAAQ,qBAAsB,KAAa,mCACrC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAGtE,MAAO,IAFS,MAAM,EAAkB,CAAE,QAAO,CAAC,EAE7B,SAAQ,CAC/B,SAGE,MAAM,IAAI,EAAa,oCAAqC,CAAE,OAAM,CAAC",
23
- "debugId": "359E8D91BD4132BE64756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "4B736419F8ABF0DD64756E2164756E21",
24
24
  "names": []
25
25
  }
@@ -1,4 +1,4 @@
1
- import{H as g}from"../../chunk-v7ytzdp4.js";import{J as d,K as m}from"../../chunk-p2ca0j1v.js";import{Chain as r,WalletOption as T,createWallet as P,filterSupportedChains as A}from"@swapkit/helpers";import{Chain as o,ChainId as u,SKConfig as k,SwapKitError as w,prepareNetworkSwitch as f,switchEVMWalletNetwork as _}from"@swapkit/helpers";import{Psbt as b}from"bitcoinjs-lib";var y=(i)=>async({recipient:s,assetValue:c,memo:a})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Cosmos});let{createSigningStargateClient:t}=await import("@swapkit/toolboxes/cosmos"),{keplr:e}=window.okxwallet,n=e?.getOfflineSignerOnlyAmino(u.Cosmos),l=await t(k.get("rpcUrls").GAIA,n),x=[{denom:c?.symbol==="MUON"?"umuon":"uatom",amount:c.getBaseValue("string")}],{transactionHash:h}=await l.sendTokens(i,s,x,1.6,a);return h};async function C({walletProvider:i,chain:s}){let{getEvmToolbox:c}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:a}=await import("ethers");if(!i)throw new w("wallet_okx_not_found");let t=new a(i,"any"),e=await t.getSigner(),n=await c(s,{provider:t,signer:e});try{if(s!==o.Ethereum&&"getNetworkParams"in n)await _(t,s,n.getNetworkParams())}catch(l){throw new w("wallet_okx_failed_to_switch_network",{chain:s})}return f({toolbox:n,provider:t,chain:s})}async function p(i){let{match:s,P:c}=await import("ts-pattern");return s(i).with(c.union(o.Arbitrum,o.Aurora,o.Avalanche,o.Base,o.Berachain,o.BinanceSmartChain,o.Ethereum,o.Gnosis,o.Optimism,o.Polygon),async()=>{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:i});let a=await C({chain:i,walletProvider:window.okxwallet}),t=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...a,address:t}}).with(o.Bitcoin,async()=>{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Bitcoin});let{getUtxoToolbox:a}=await import("@swapkit/toolboxes/utxo"),{bitcoin:t}=window.okxwallet,e=(await t.connect()).address,n={signTransaction:async(x)=>{let h=await t.signPsbt(x.toHex(),{from:e,type:"list"});return b.fromHex(h)},getAddress:async()=>Promise.resolve(e)};return{...await a(o.Bitcoin,{signer:n}),address:e}}).with(o.Cosmos,async()=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Cosmos});let{keplr:a}=window.okxwallet;await a.enable(u.Cosmos);let t=await a.getOfflineSignerOnlyAmino(u.Cosmos).getAccounts();if(!t?.[0])throw new w("wallet_okx_no_accounts",{chain:o.Cosmos});let{getCosmosToolbox:e}=await import("@swapkit/toolboxes/cosmos"),[{address:n}]=t;return{...e(o.Cosmos),address:n,transfer:y(n)}}).with(o.Near,async()=>{if(!(window.okxwallet&&("near"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Near});let{createNearSignerFromProvider:a}=await import("../../chunk-e674mh4n.js"),{getNearToolbox:t}=await import("@swapkit/toolboxes/near"),e=window.okxwallet.near,n=await a(e,"OKX"),l=await n.getAddress();return{...await t({signer:n}),address:l}}).with(o.Tron,async()=>{if(!(window.okxwallet&&("tronLink"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Tron});let{createTronToolbox:a}=await import("@swapkit/toolboxes/tron"),t=window.okxwallet.tronLink,e=await t.request({method:"tron_requestAccounts"});if(!e||e.length===0)throw new w("wallet_okx_no_accounts",{chain:o.Tron});let n=t.tronWeb.defaultAddress.base58;return{...await a({signer:{getAddress:async()=>n,signTransaction:async(h)=>{return await t.tronWeb.trx.sign(h)}}}),address:n}}).otherwise(()=>{throw new w("wallet_okx_chain_not_supported",{chain:i})})}var S=P({name:"connectOkx",walletType:T.OKX,supportedChains:[r.Arbitrum,r.Aurora,r.Avalanche,r.Base,r.Berachain,r.BinanceSmartChain,r.Bitcoin,r.Cosmos,r.Ethereum,r.Gnosis,r.Near,r.Optimism,r.Polygon,r.Tron],connect:({addChain:i,supportedChains:s,walletType:c})=>async function a(t){let e=A({chains:t,supportedChains:s,walletType:c});return await Promise.all(e.map(async(n)=>{let l=await p(n),x=await l.getAddress()||"";i({...l,address:x,chain:n,walletType:c})})),!0}}),M=g(S);export{S as okxWallet,M as OKX_SUPPORTED_CHAINS};
1
+ import{H as g}from"../../chunk-htvthkj1.js";import{J as d,K as m}from"../../chunk-p2ca0j1v.js";import{Chain as r,WalletOption as T,createWallet as P,filterSupportedChains as A}from"@swapkit/helpers";import{Chain as o,ChainId as u,SKConfig as k,SwapKitError as w,prepareNetworkSwitch as f,switchEVMWalletNetwork as _}from"@swapkit/helpers";import{Psbt as b}from"bitcoinjs-lib";var y=(i)=>async({recipient:s,assetValue:c,memo:a})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Cosmos});let{createSigningStargateClient:t}=await import("@swapkit/toolboxes/cosmos"),{keplr:e}=window.okxwallet,n=e?.getOfflineSignerOnlyAmino(u.Cosmos),l=await t(k.get("rpcUrls").GAIA,n),x=[{denom:c?.symbol==="MUON"?"umuon":"uatom",amount:c.getBaseValue("string")}],{transactionHash:h}=await l.sendTokens(i,s,x,1.6,a);return h};async function C({walletProvider:i,chain:s}){let{getEvmToolbox:c}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:a}=await import("ethers");if(!i)throw new w("wallet_okx_not_found");let t=new a(i,"any"),e=await t.getSigner(),n=await c(s,{provider:t,signer:e});try{if(s!==o.Ethereum&&"getNetworkParams"in n)await _(t,s,n.getNetworkParams())}catch(l){throw new w("wallet_okx_failed_to_switch_network",{chain:s})}return f({toolbox:n,provider:t,chain:s})}async function p(i){let{match:s,P:c}=await import("ts-pattern");return s(i).with(c.union(o.Arbitrum,o.Aurora,o.Avalanche,o.Base,o.Berachain,o.BinanceSmartChain,o.Ethereum,o.Gnosis,o.Optimism,o.Polygon),async()=>{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:i});let a=await C({chain:i,walletProvider:window.okxwallet}),t=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...a,address:t}}).with(o.Bitcoin,async()=>{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Bitcoin});let{getUtxoToolbox:a}=await import("@swapkit/toolboxes/utxo"),{bitcoin:t}=window.okxwallet,e=(await t.connect()).address,n={signTransaction:async(x)=>{let h=await t.signPsbt(x.toHex(),{from:e,type:"list"});return b.fromHex(h)},getAddress:async()=>Promise.resolve(e)};return{...await a(o.Bitcoin,{signer:n}),address:e}}).with(o.Cosmos,async()=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Cosmos});let{keplr:a}=window.okxwallet;await a.enable(u.Cosmos);let t=await a.getOfflineSignerOnlyAmino(u.Cosmos).getAccounts();if(!t?.[0])throw new w("wallet_okx_no_accounts",{chain:o.Cosmos});let{getCosmosToolbox:e}=await import("@swapkit/toolboxes/cosmos"),[{address:n}]=t;return{...e(o.Cosmos),address:n,transfer:y(n)}}).with(o.Near,async()=>{if(!(window.okxwallet&&("near"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Near});let{createNearSignerFromProvider:a}=await import("../../chunk-e674mh4n.js"),{getNearToolbox:t}=await import("@swapkit/toolboxes/near"),e=window.okxwallet.near,n=await a(e,"OKX"),l=await n.getAddress();return{...await t({signer:n}),address:l}}).with(o.Tron,async()=>{if(!(window.okxwallet&&("tronLink"in window.okxwallet)))throw new w("wallet_okx_not_found",{chain:o.Tron});let{createTronToolbox:a}=await import("@swapkit/toolboxes/tron"),t=window.okxwallet.tronLink,e=await t.request({method:"tron_requestAccounts"});if(!e||e.length===0)throw new w("wallet_okx_no_accounts",{chain:o.Tron});let n=t.tronWeb.defaultAddress.base58;return{...await a({signer:{getAddress:async()=>n,signTransaction:async(h)=>{return await t.tronWeb.trx.sign(h)}}}),address:n}}).otherwise(()=>{throw new w("wallet_okx_chain_not_supported",{chain:i})})}var S=P({name:"connectOkx",walletType:T.OKX,supportedChains:[r.Arbitrum,r.Aurora,r.Avalanche,r.Base,r.Berachain,r.BinanceSmartChain,r.Bitcoin,r.Cosmos,r.Ethereum,r.Gnosis,r.Near,r.Optimism,r.Polygon,r.Tron],connect:({addChain:i,supportedChains:s,walletType:c})=>async function a(t){let e=A({chains:t,supportedChains:s,walletType:c});return await Promise.all(e.map(async(n)=>{let l=await p(n),x=await l.getAddress()||"";i({...l,address:x,chain:n,walletType:c})})),!0}}),M=g(S);export{S as okxWallet,M as OKX_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=5A2542028449A4B264756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{H as k}from"../../chunk-v7ytzdp4.js";import{J as p,K as m}from"../../chunk-p2ca0j1v.js";import{Chain as e,SKConfig as b,SwapKitError as s,WalletOption as u,addEVMWalletNetwork as A,createWallet as S,filterSupportedChains as E,prepareNetworkSwitch as O}from"@swapkit/helpers";import{Psbt as x}from"bitcoinjs-lib";async function B(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:r}=await import("@swapkit/toolboxes/utxo"),{signTransaction:a,getAddress:c,AddressPurpose:o,BitcoinNetworkType:w}=await import("sats-connect"),n="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:w.Mainnet}},onFinish:(d)=>{if(d.addresses[0]?.address)n=d.addresses[0].address},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};await c(l);async function y(d){let _,P={getProvider:i,payload:{message:"Sign transaction",network:{type:w.Mainnet},psbtBase64:d.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:d.txInputs.map((f,h)=>h)}]},onFinish:(f)=>{_=x.fromBase64(f.psbtBase64)},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};if(await a(P),!_)throw new s("wallet_onekey_sign_transaction_error");return _}return{...await r(t,{signer:{signTransaction:y,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Solana:{if(!window.$onekey?.sol)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:r}=await import("@swapkit/toolboxes/solana"),a=window.$onekey.sol,c=await a.getAddress();return{...r({signer:a}),address:c}}case e.Arbitrum:case e.Aurora:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Gnosis:case e.Optimism:case e.Polygon:{let{getProvider:r,getEvmToolbox:a}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:c}=await import("ethers"),o=new c(window.$onekey.ethereum,"any"),w=b.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await r(t,w),i=await o.getSigner(),l=await i.getAddress(),y=await a(t,{provider:n,signer:i});try{if(t!==e.Ethereum){let g=y.getNetworkParams();await A(o,g)}}catch(g){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:g}})}return{address:l,...O({toolbox:y,chain:t,provider:o})}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:u.ONEKEY}})}}var v=S({name:"connectOnekeyWallet",walletType:u.ONEKEY,supportedChains:[e.Arbitrum,e.Aurora,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Gnosis,e.Optimism,e.Polygon,e.Solana],connect:({addChain:t,walletType:r,supportedChains:a})=>async function c(o){if(!window.$onekey)throw new s({errorKey:"wallet_onekey_not_found",info:{wallet:u.ONEKEY}});let w=E({chains:o,supportedChains:a,walletType:r});return await Promise.all(w.map(async(n)=>{let i=await B(n),l=await i.getAddress()||"F";t({...i,chain:n,address:l,walletType:r})})),!0}}),W=k(v);export{v as onekeyWallet,W as ONEKEY_WALLET_SUPPORTED_CHAINS};
1
+ import{H as k}from"../../chunk-htvthkj1.js";import{J as p,K as m}from"../../chunk-p2ca0j1v.js";import{Chain as e,SKConfig as b,SwapKitError as s,WalletOption as u,addEVMWalletNetwork as A,createWallet as S,filterSupportedChains as E,prepareNetworkSwitch as O}from"@swapkit/helpers";import{Psbt as x}from"bitcoinjs-lib";async function B(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:r}=await import("@swapkit/toolboxes/utxo"),{signTransaction:a,getAddress:c,AddressPurpose:o,BitcoinNetworkType:w}=await import("sats-connect"),n="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:w.Mainnet}},onFinish:(d)=>{if(d.addresses[0]?.address)n=d.addresses[0].address},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};await c(l);async function y(d){let _,P={getProvider:i,payload:{message:"Sign transaction",network:{type:w.Mainnet},psbtBase64:d.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:d.txInputs.map((f,h)=>h)}]},onFinish:(f)=>{_=x.fromBase64(f.psbtBase64)},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};if(await a(P),!_)throw new s("wallet_onekey_sign_transaction_error");return _}return{...await r(t,{signer:{signTransaction:y,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Solana:{if(!window.$onekey?.sol)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:r}=await import("@swapkit/toolboxes/solana"),a=window.$onekey.sol,c=await a.getAddress();return{...r({signer:a}),address:c}}case e.Arbitrum:case e.Aurora:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Gnosis:case e.Optimism:case e.Polygon:{let{getProvider:r,getEvmToolbox:a}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:c}=await import("ethers"),o=new c(window.$onekey.ethereum,"any"),w=b.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await r(t,w),i=await o.getSigner(),l=await i.getAddress(),y=await a(t,{provider:n,signer:i});try{if(t!==e.Ethereum){let g=y.getNetworkParams();await A(o,g)}}catch(g){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:g}})}return{address:l,...O({toolbox:y,chain:t,provider:o})}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:u.ONEKEY}})}}var v=S({name:"connectOnekeyWallet",walletType:u.ONEKEY,supportedChains:[e.Arbitrum,e.Aurora,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Gnosis,e.Optimism,e.Polygon,e.Solana],connect:({addChain:t,walletType:r,supportedChains:a})=>async function c(o){if(!window.$onekey)throw new s({errorKey:"wallet_onekey_not_found",info:{wallet:u.ONEKEY}});let w=E({chains:o,supportedChains:a,walletType:r});return await Promise.all(w.map(async(n)=>{let i=await B(n),l=await i.getAddress()||"F";t({...i,chain:n,address:l,walletType:r})})),!0}}),W=k(v);export{v as onekeyWallet,W as ONEKEY_WALLET_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=312DAFB12707902F64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{H as f}from"../../chunk-v7ytzdp4.js";import{J as l,K as d}from"../../chunk-p2ca0j1v.js";import{Chain as i,SwapKitError as r,WalletOption as _,createWallet as S,filterSupportedChains as C}from"@swapkit/helpers";var A=S({name:"connectPhantom",walletType:_.PHANTOM,supportedChains:[i.Bitcoin,i.Ethereum,i.Solana],connect:({addChain:s,supportedChains:c,walletType:o})=>async function n(e){let a=C({chains:e,supportedChains:c,walletType:o});try{return await Promise.all(a.map(async(t)=>{let{address:h,...w}=await v(t);s({...w,chain:t,address:h,walletType:o})})),!0}catch(t){if(t instanceof r)throw t;throw new r("wallet_connection_rejected_by_user",t)}}}),N=f(A);async function v(s){let c=window?.phantom;switch(s){case i.Bitcoin:{let o=c?.bitcoin;if(!o?.isPhantom)throw new r("wallet_phantom_not_found");let{getUtxoToolbox:n}=await import("@swapkit/toolboxes/utxo"),[{address:e}]=await o.requestAccounts();return{...await n(s),address:e}}case i.Ethereum:{let{getEvmToolbox:o}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:n}=await import("ethers"),e=new n(c?.ethereum,"any"),[a]=await e.send("eth_requestAccounts",[]),t=await e.getSigner();return{...await o(s,{signer:t,provider:e}),address:a}}case i.Solana:{let{getSolanaToolbox:o}=await import("@swapkit/toolboxes/solana"),n=c?.solana;if(!n?.isPhantom)throw new r("wallet_phantom_not_found");let a=(await n.connect()).publicKey.toString(),t=await o();return{...t,transfer:async({recipient:w,assetValue:P,isProgramDerivedAddress:m})=>{let{PublicKey:b}=await import("@solana/web3.js"),y=await t.getAddressValidator();if(!(m||y(w)))throw new r("core_transaction_invalid_recipient_address");let g=new b(a),u=await t.getConnection(),p=await t.createTransaction({recipient:w,assetValue:P,sender:a,isProgramDerivedAddress:m});if(!p)throw new r("core_transaction_invalid_sender_address");let T=await u.getLatestBlockhash();p.recentBlockhash=T.blockhash,p.feePayer=g;let x=await n.signTransaction(p);return await u.sendRawTransaction(x.serialize())},address:a}}default:throw new r("wallet_chain_not_supported",{wallet:_.PHANTOM,chain:s})}}export{A as phantomWallet,N as PHANTOM_SUPPORTED_CHAINS};
1
+ import{H as f}from"../../chunk-htvthkj1.js";import{J as l,K as d}from"../../chunk-p2ca0j1v.js";import{Chain as i,SwapKitError as r,WalletOption as _,createWallet as S,filterSupportedChains as C}from"@swapkit/helpers";var A=S({name:"connectPhantom",walletType:_.PHANTOM,supportedChains:[i.Bitcoin,i.Ethereum,i.Solana],connect:({addChain:s,supportedChains:c,walletType:o})=>async function n(e){let a=C({chains:e,supportedChains:c,walletType:o});try{return await Promise.all(a.map(async(t)=>{let{address:h,...w}=await v(t);s({...w,chain:t,address:h,walletType:o})})),!0}catch(t){if(t instanceof r)throw t;throw new r("wallet_connection_rejected_by_user",t)}}}),N=f(A);async function v(s){let c=window?.phantom;switch(s){case i.Bitcoin:{let o=c?.bitcoin;if(!o?.isPhantom)throw new r("wallet_phantom_not_found");let{getUtxoToolbox:n}=await import("@swapkit/toolboxes/utxo"),[{address:e}]=await o.requestAccounts();return{...await n(s),address:e}}case i.Ethereum:{let{getEvmToolbox:o}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:n}=await import("ethers"),e=new n(c?.ethereum,"any"),[a]=await e.send("eth_requestAccounts",[]),t=await e.getSigner();return{...await o(s,{signer:t,provider:e}),address:a}}case i.Solana:{let{getSolanaToolbox:o}=await import("@swapkit/toolboxes/solana"),n=c?.solana;if(!n?.isPhantom)throw new r("wallet_phantom_not_found");let a=(await n.connect()).publicKey.toString(),t=await o();return{...t,transfer:async({recipient:w,assetValue:P,isProgramDerivedAddress:m})=>{let{PublicKey:b}=await import("@solana/web3.js"),y=await t.getAddressValidator();if(!(m||y(w)))throw new r("core_transaction_invalid_recipient_address");let g=new b(a),u=await t.getConnection(),p=await t.createTransaction({recipient:w,assetValue:P,sender:a,isProgramDerivedAddress:m});if(!p)throw new r("core_transaction_invalid_sender_address");let T=await u.getLatestBlockhash();p.recentBlockhash=T.blockhash,p.feePayer=g;let x=await n.signTransaction(p);return await u.sendRawTransaction(x.serialize())},address:a}}default:throw new r("wallet_chain_not_supported",{wallet:_.PHANTOM,chain:s})}}export{A as phantomWallet,N as PHANTOM_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=4D3DF2B6C0506F2464756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{H as c}from"../../chunk-v7ytzdp4.js";import{J as u,K as f}from"../../chunk-p2ca0j1v.js";import{Chain as i,SwapKitError as l,WalletOption as d,createWallet as _,filterSupportedChains as P}from"@swapkit/helpers";var h=_({name:"connectPolkadotJs",walletType:d.POLKADOT_JS,supportedChains:[i.Polkadot],connect:({addChain:t,supportedChains:s,walletType:r})=>async function a(n){let e=P({chains:n,supportedChains:s,walletType:r});return await Promise.all(e.map(async(o)=>{let{address:w,...p}=await m(o);t({...p,chain:o,address:w,walletType:r})})),!0}}),g=c(h);async function m(t){switch(t){case i.Polkadot:{let{getSubstrateToolbox:s}=await import("@swapkit/toolboxes/substrate"),a=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!a)throw new l({errorKey:"wallet_polkadot_not_found",info:{chain:t}});let n=await s(t,{signer:a.signer}),[e]=await a.accounts.get();if(!e?.address)throw new l({errorKey:"wallet_missing_params",info:{wallet:d.POLKADOT_JS,address:e?.address}});let o=n.convertAddress(e.address,0);return{...n,getAddress:()=>o,address:o}}default:throw new l({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:d.POLKADOT_JS}})}}export{h as polkadotWallet,g as POLKADOT_SUPPORTED_CHAINS};
1
+ import{H as c}from"../../chunk-htvthkj1.js";import{J as u,K as f}from"../../chunk-p2ca0j1v.js";import{Chain as i,SwapKitError as l,WalletOption as d,createWallet as _,filterSupportedChains as P}from"@swapkit/helpers";var h=_({name:"connectPolkadotJs",walletType:d.POLKADOT_JS,supportedChains:[i.Polkadot],connect:({addChain:t,supportedChains:s,walletType:r})=>async function a(n){let e=P({chains:n,supportedChains:s,walletType:r});return await Promise.all(e.map(async(o)=>{let{address:w,...p}=await m(o);t({...p,chain:o,address:w,walletType:r})})),!0}}),g=c(h);async function m(t){switch(t){case i.Polkadot:{let{getSubstrateToolbox:s}=await import("@swapkit/toolboxes/substrate"),a=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!a)throw new l({errorKey:"wallet_polkadot_not_found",info:{chain:t}});let n=await s(t,{signer:a.signer}),[e]=await a.accounts.get();if(!e?.address)throw new l({errorKey:"wallet_missing_params",info:{wallet:d.POLKADOT_JS,address:e?.address}});let o=n.convertAddress(e.address,0);return{...n,getAddress:()=>o,address:o}}default:throw new l({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:d.POLKADOT_JS}})}}export{h as polkadotWallet,g as POLKADOT_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=C590DA05B836FCE464756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{H as I}from"../../chunk-v7ytzdp4.js";import{J as _,K as $}from"../../chunk-p2ca0j1v.js";import{AssetValue as S,Chain as T,SKConfig as Y,SwapKitError as X,WalletOption as x,createWallet as B,filterSupportedChains as C}from"@swapkit/helpers";var h=B({name:"connectRadixWallet",walletType:x.RADIX_WALLET,supportedChains:[T.Radix],connect:({addChain:L,supportedChains:K,walletType:H})=>async function V(M){let O=C({chains:M,supportedChains:K,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(O.map(async(z)=>{let j=await E();L({...j,chain:z,walletType:H})})),!0}}),f=I(h);async function k(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=K.initialize({networkId:1,applicationName:H}),M=!0,O,U=[],z=await v(V);while(M){let j={address:L,limit_per_page:100,cursor:O,at_ledger_state:{state_version:z}},Q=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:j});if(U=U.concat(Q.items),Q.next_cursor)O=Q.next_cursor;else M=!1}return U}async function v(L){return L.status.getCurrent().then((K)=>K.ledger_state.state_version)}async function D(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await k(L),{applicationName:V}=Y.get("integrations").radix,M=K.initialize({networkId:1,applicationName:V}),O=[],U=50,z=[];for(let j=0;j<H.length;j+=50)z.push(H.slice(j,j+50));for(let j of z){let Q=j.map((J)=>J.resource_address),Z=await M.state.getEntityDetailsVaultAggregated(Q),q=new Map;for(let J of Z)if(J.details!==void 0){let W=J.metadata?.items.find((N)=>N.key==="symbol"),G=W?.value.typed.type==="String"?W.value.typed.value:"?";if(J.details.type==="FungibleResource")q.set(J.address,{decimals:J.details.divisibility,symbol:G})}for(let J of j)if(J.aggregation_level==="Global"){let W=q.get(J.resource_address)||{decimals:0,symbol:"?"},G=S.from({asset:W.symbol!==T.Radix?`${T.Radix}.${W.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});O.push(G)}}return O}async function E(){let{RadixDappToolkit:L}=await import("@radixdlt/radix-dapp-toolkit"),K=Y.get("integrations").radix,H=L({...K,networkId:K.network.networkId});function V(z){return new Promise((j)=>setTimeout(j,z))}await V(400);function M(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let O=async()=>{let{DataRequestBuilder:z}=await import("@radixdlt/radix-dapp-toolkit");H.walletApi.setRequestData(z.accounts().exactly(1));let j=await H.walletApi.sendRequest();if(!j)throw new X("wallet_radix_no_account");let Q=j.unwrapOr(null)?.accounts[0]?.address;if(!Q)throw new X("wallet_radix_no_account");return Q},U=M()||await O();return{radixDappToolkit:H,address:U,getAddress:M,getBalance:()=>D(U),transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})},signAndBroadcast:async({manifest:z,message:j})=>{let Z=(await H.walletApi.sendTransaction({transactionManifest:z,message:j})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z}}}export{h as radixWallet,f as RADIX_SUPPORTED_CHAINS};
1
+ import{H as I}from"../../chunk-htvthkj1.js";import{J as _,K as $}from"../../chunk-p2ca0j1v.js";import{AssetValue as S,Chain as T,SKConfig as Y,SwapKitError as X,WalletOption as x,createWallet as B,filterSupportedChains as C}from"@swapkit/helpers";var h=B({name:"connectRadixWallet",walletType:x.RADIX_WALLET,supportedChains:[T.Radix],connect:({addChain:L,supportedChains:K,walletType:H})=>async function V(M){let O=C({chains:M,supportedChains:K,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(O.map(async(z)=>{let j=await E();L({...j,chain:z,walletType:H})})),!0}}),f=I(h);async function k(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=K.initialize({networkId:1,applicationName:H}),M=!0,O,U=[],z=await v(V);while(M){let j={address:L,limit_per_page:100,cursor:O,at_ledger_state:{state_version:z}},Q=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:j});if(U=U.concat(Q.items),Q.next_cursor)O=Q.next_cursor;else M=!1}return U}async function v(L){return L.status.getCurrent().then((K)=>K.ledger_state.state_version)}async function D(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await k(L),{applicationName:V}=Y.get("integrations").radix,M=K.initialize({networkId:1,applicationName:V}),O=[],U=50,z=[];for(let j=0;j<H.length;j+=50)z.push(H.slice(j,j+50));for(let j of z){let Q=j.map((J)=>J.resource_address),Z=await M.state.getEntityDetailsVaultAggregated(Q),q=new Map;for(let J of Z)if(J.details!==void 0){let W=J.metadata?.items.find((N)=>N.key==="symbol"),G=W?.value.typed.type==="String"?W.value.typed.value:"?";if(J.details.type==="FungibleResource")q.set(J.address,{decimals:J.details.divisibility,symbol:G})}for(let J of j)if(J.aggregation_level==="Global"){let W=q.get(J.resource_address)||{decimals:0,symbol:"?"},G=S.from({asset:W.symbol!==T.Radix?`${T.Radix}.${W.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});O.push(G)}}return O}async function E(){let{RadixDappToolkit:L}=await import("@radixdlt/radix-dapp-toolkit"),K=Y.get("integrations").radix,H=L({...K,networkId:K.network.networkId});function V(z){return new Promise((j)=>setTimeout(j,z))}await V(400);function M(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let O=async()=>{let{DataRequestBuilder:z}=await import("@radixdlt/radix-dapp-toolkit");H.walletApi.setRequestData(z.accounts().exactly(1));let j=await H.walletApi.sendRequest();if(!j)throw new X("wallet_radix_no_account");let Q=j.unwrapOr(null)?.accounts[0]?.address;if(!Q)throw new X("wallet_radix_no_account");return Q},U=M()||await O();return{radixDappToolkit:H,address:U,getAddress:M,getBalance:()=>D(U),transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})},signAndBroadcast:async({manifest:z,message:j})=>{let Z=(await H.walletApi.sendTransaction({transactionManifest:z,message:j})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z}}}export{h as radixWallet,f as RADIX_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=BA2F941C91FC59FB64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{H as p}from"../../chunk-v7ytzdp4.js";import{J as d,K as m}from"../../chunk-p2ca0j1v.js";import{Chain as t,SwapKitError as s,WalletOption as l,createWallet as h,filterSupportedChains as f,prepareNetworkSwitch as u,switchEVMWalletNetwork as _}from"@swapkit/helpers";var A=h({name:"connectTalisman",walletType:l.TALISMAN,supportedChains:[t.Ethereum,t.Arbitrum,t.Avalanche,t.Base,t.Polygon,t.BinanceSmartChain,t.Optimism,t.Polkadot,t.Chainflip],connect:({addChain:e,supportedChains:a,walletType:r})=>async function c(o){let i=f({chains:o,supportedChains:a,walletType:r});return await Promise.all(i.map(async(n)=>{let w=await S(n);e({...w,chain:n,walletType:r})})),!0}}),C=p(A);async function E({walletProvider:e,chain:a}){let{getEvmToolbox:r}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:c}=await import("ethers");if(!e)throw new s({errorKey:"wallet_provider_not_found",info:{wallet:l.TALISMAN,chain:a}});let o=new c(e,"any"),i=await o.getSigner(),n=await r(a,{provider:o,signer:i});try{if(a!==t.Ethereum)await _(o,a,n.getNetworkParams())}catch(w){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:l.TALISMAN,chain:a}})}return u({toolbox:n,chain:a,provider:o})}async function S(e){switch(e){case t.Ethereum:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.Avalanche:case t.BinanceSmartChain:case t.Base:{if(!(window.talismanEth&&("send"in window.talismanEth)))throw new s({errorKey:"wallet_talisman_not_found",info:{chain:e}});let a=await E({chain:e,walletProvider:window.talismanEth}),r=(await window.talismanEth.send("eth_requestAccounts",[]))[0];return{...a,address:r}}case t.Polkadot:case t.Chainflip:{let{getSubstrateToolbox:a,SubstrateNetwork:r}=await import("@swapkit/toolboxes/substrate"),o=await window?.injectedWeb3?.talisman?.enable?.("talisman");if(!o)throw new s({errorKey:"wallet_talisman_not_enabled",info:{chain:e}});let i=await a(e,{signer:o.signer}),n=await o.accounts.get();if(!n[0]?.address)throw new s({errorKey:"wallet_missing_params",info:{wallet:l.TALISMAN,accounts:n,address:n[0]?.address}});let w=i.convertAddress(n[0].address,r[e].prefix);return{...i,address:w}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:e,wallet:l.TALISMAN}})}}export{A as talismanWallet,C as TALISMAN_SUPPORTED_CHAINS};
1
+ import{H as p}from"../../chunk-htvthkj1.js";import{J as d,K as m}from"../../chunk-p2ca0j1v.js";import{Chain as t,SwapKitError as s,WalletOption as l,createWallet as h,filterSupportedChains as f,prepareNetworkSwitch as u,switchEVMWalletNetwork as _}from"@swapkit/helpers";var A=h({name:"connectTalisman",walletType:l.TALISMAN,supportedChains:[t.Ethereum,t.Arbitrum,t.Avalanche,t.Base,t.Polygon,t.BinanceSmartChain,t.Optimism,t.Polkadot,t.Chainflip],connect:({addChain:e,supportedChains:a,walletType:r})=>async function c(o){let i=f({chains:o,supportedChains:a,walletType:r});return await Promise.all(i.map(async(n)=>{let w=await S(n);e({...w,chain:n,walletType:r})})),!0}}),C=p(A);async function E({walletProvider:e,chain:a}){let{getEvmToolbox:r}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:c}=await import("ethers");if(!e)throw new s({errorKey:"wallet_provider_not_found",info:{wallet:l.TALISMAN,chain:a}});let o=new c(e,"any"),i=await o.getSigner(),n=await r(a,{provider:o,signer:i});try{if(a!==t.Ethereum)await _(o,a,n.getNetworkParams())}catch(w){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:l.TALISMAN,chain:a}})}return u({toolbox:n,chain:a,provider:o})}async function S(e){switch(e){case t.Ethereum:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.Avalanche:case t.BinanceSmartChain:case t.Base:{if(!(window.talismanEth&&("send"in window.talismanEth)))throw new s({errorKey:"wallet_talisman_not_found",info:{chain:e}});let a=await E({chain:e,walletProvider:window.talismanEth}),r=(await window.talismanEth.send("eth_requestAccounts",[]))[0];return{...a,address:r}}case t.Polkadot:case t.Chainflip:{let{getSubstrateToolbox:a,SubstrateNetwork:r}=await import("@swapkit/toolboxes/substrate"),o=await window?.injectedWeb3?.talisman?.enable?.("talisman");if(!o)throw new s({errorKey:"wallet_talisman_not_enabled",info:{chain:e}});let i=await a(e,{signer:o.signer}),n=await o.accounts.get();if(!n[0]?.address)throw new s({errorKey:"wallet_missing_params",info:{wallet:l.TALISMAN,accounts:n,address:n[0]?.address}});let w=i.convertAddress(n[0].address,r[e].prefix);return{...i,address:w}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:e,wallet:l.TALISMAN}})}}export{A as talismanWallet,C as TALISMAN_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=A9C7AF6FA8CF694364756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{H as f}from"../../chunk-v7ytzdp4.js";import{J as N,K as V}from"../../chunk-p2ca0j1v.js";import{Chain as q,FeeOption as y,SKConfig as E,SwapKitError as M,WalletOption as W,createWallet as S,derivationPathToString as w,filterSupportedChains as P}from"@swapkit/helpers";function b(B){switch(B[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function g({chain:B,derivationPath:X}){switch(B){case q.Arbitrum:case q.Aurora:case q.Avalanche:case q.Base:case q.BinanceSmartChain:case q.Ethereum:case q.Gnosis:case q.Optimism:case q.Polygon:{let{getProvider:j,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-3etn0w20.js"),$=await j(B),L=await Z({chain:B,derivationPath:X,provider:$}),G=await L.getAddress();return{...await Y(B,{provider:$,signer:L}),address:G}}case q.Bitcoin:case q.BitcoinCash:case q.Dash:case q.Dogecoin:case q.Litecoin:{let{toCashAddress:j,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=b(X);if(!Z)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=B.toLowerCase(),G=await(async(I=X)=>{let A=(await import("@trezor/connect-web")).default,{success:F,payload:J}=await A.getAddress({path:w(I),coin:$});if(!F)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:B,error:J.error||"Unknown error"}});if(B===q.BitcoinCash)return(await Y(B)).stripPrefix(J.address);return J.address})(),k=async(I,A,F="")=>{let J=(await import("@trezor/connect-web")).default,_=X.map((D,Q)=>Q<3?(D|2147483648)>>>0:D),H=await Y(B),R=await J.signTransaction({coin:$,inputs:A.map(({hash:D,index:Q,value:O})=>({address_n:_,prev_hash:D,prev_index:Q,amount:O,script_type:Z.input})),outputs:I.txOutputs.map((D)=>{if(!D.address)return{amount:"0",op_return_data:Buffer.from(F).toString("hex"),script_type:"PAYTOOPRETURN"};let Q=B===q.BitcoinCash?H.stripPrefix(j(D.address)):D.address;return Q===G?{amount:D.value,address_n:_,script_type:Z.output}:{amount:D.value,address:Q,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:R.payload.error}})},K=async({recipient:I,feeOptionKey:A,feeRate:F,memo:J,..._})=>{if(!(G&&I))throw new M({errorKey:"wallet_missing_params",info:{wallet:W.TREZOR,memo:J,address:G,recipient:I}});let H=await Y(B),R=F||(await H.getFeeRates())[A||y.Fast],D=B===q.BitcoinCash?H.buildTx:H.createTransaction,{psbt:Q,inputs:O}=await D({..._,memo:J,recipient:I,feeRate:R,sender:G,fetchTxHex:!0}),z=await k(Q,O,J);return await H.broadcastTx(z)};return{...await Y(B),address:G,transfer:K,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:B,wallet:W.TREZOR}})}}var v=S({name:"connectTrezor",walletType:W.TREZOR,supportedChains:[q.Arbitrum,q.Aurora,q.Avalanche,q.Base,q.BinanceSmartChain,q.Bitcoin,q.BitcoinCash,q.Dash,q.Dogecoin,q.Ethereum,q.Gnosis,q.Litecoin,q.Optimism,q.Polygon],connect:({addChain:B,supportedChains:X,walletType:j})=>async function Y(Z,$){let[L]=P({chains:Z,supportedChains:X,walletType:j});if(!L)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:L,wallet:W.TREZOR}});let G=(await import("@trezor/connect-web")).default,{success:k}=await G.getDeviceState();if(!k){let U=E.get("integrations").trezor,I=U?{...U,appName:U.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};G.init({lazyLoad:!0,manifest:I})}let K=await g({chain:L,derivationPath:$});return B({...K,chain:L,walletType:j}),!0}}),u=f(v);export{v as trezorWallet,u as TREZOR_SUPPORTED_CHAINS};
1
+ import{H as f}from"../../chunk-htvthkj1.js";import{J as N,K as V}from"../../chunk-p2ca0j1v.js";import{Chain as q,FeeOption as y,SKConfig as E,SwapKitError as M,WalletOption as W,createWallet as S,derivationPathToString as w,filterSupportedChains as P}from"@swapkit/helpers";function b(B){switch(B[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function g({chain:B,derivationPath:X}){switch(B){case q.Arbitrum:case q.Aurora:case q.Avalanche:case q.Base:case q.BinanceSmartChain:case q.Ethereum:case q.Gnosis:case q.Optimism:case q.Polygon:{let{getProvider:j,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-3etn0w20.js"),$=await j(B),L=await Z({chain:B,derivationPath:X,provider:$}),G=await L.getAddress();return{...await Y(B,{provider:$,signer:L}),address:G}}case q.Bitcoin:case q.BitcoinCash:case q.Dash:case q.Dogecoin:case q.Litecoin:{let{toCashAddress:j,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=b(X);if(!Z)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=B.toLowerCase(),G=await(async(I=X)=>{let A=(await import("@trezor/connect-web")).default,{success:F,payload:J}=await A.getAddress({path:w(I),coin:$});if(!F)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:B,error:J.error||"Unknown error"}});if(B===q.BitcoinCash)return(await Y(B)).stripPrefix(J.address);return J.address})(),k=async(I,A,F="")=>{let J=(await import("@trezor/connect-web")).default,_=X.map((D,Q)=>Q<3?(D|2147483648)>>>0:D),H=await Y(B),R=await J.signTransaction({coin:$,inputs:A.map(({hash:D,index:Q,value:O})=>({address_n:_,prev_hash:D,prev_index:Q,amount:O,script_type:Z.input})),outputs:I.txOutputs.map((D)=>{if(!D.address)return{amount:"0",op_return_data:Buffer.from(F).toString("hex"),script_type:"PAYTOOPRETURN"};let Q=B===q.BitcoinCash?H.stripPrefix(j(D.address)):D.address;return Q===G?{amount:D.value,address_n:_,script_type:Z.output}:{amount:D.value,address:Q,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:R.payload.error}})},K=async({recipient:I,feeOptionKey:A,feeRate:F,memo:J,..._})=>{if(!(G&&I))throw new M({errorKey:"wallet_missing_params",info:{wallet:W.TREZOR,memo:J,address:G,recipient:I}});let H=await Y(B),R=F||(await H.getFeeRates())[A||y.Fast],D=B===q.BitcoinCash?H.buildTx:H.createTransaction,{psbt:Q,inputs:O}=await D({..._,memo:J,recipient:I,feeRate:R,sender:G,fetchTxHex:!0}),z=await k(Q,O,J);return await H.broadcastTx(z)};return{...await Y(B),address:G,transfer:K,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:B,wallet:W.TREZOR}})}}var v=S({name:"connectTrezor",walletType:W.TREZOR,supportedChains:[q.Arbitrum,q.Aurora,q.Avalanche,q.Base,q.BinanceSmartChain,q.Bitcoin,q.BitcoinCash,q.Dash,q.Dogecoin,q.Ethereum,q.Gnosis,q.Litecoin,q.Optimism,q.Polygon],connect:({addChain:B,supportedChains:X,walletType:j})=>async function Y(Z,$){let[L]=P({chains:Z,supportedChains:X,walletType:j});if(!L)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:L,wallet:W.TREZOR}});let G=(await import("@trezor/connect-web")).default,{success:k}=await G.getDeviceState();if(!k){let U=E.get("integrations").trezor,I=U?{...U,appName:U.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};G.init({lazyLoad:!0,manifest:I})}let K=await g({chain:L,derivationPath:$});return B({...K,chain:L,walletType:j}),!0}}),u=f(v);export{v as trezorWallet,u as TREZOR_SUPPORTED_CHAINS};
2
2
 
3
3
  //# debugId=2F2460477F124E7E64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ var v={};x(v,{vultisigWallet:()=>S,VULTISIG_SUPPORTED_CHAINS:()=>g});module.exports=b(v);var z=require("@swapkit/helpers");var F=require("@swapkit/helpers"),E=require("@swapkit/helpers/contracts");async function _(D){if(!window.vultisig)throw new F.SwapKitError("wallet_vultisig_not_found");let{match:$}=await import("ts-pattern");return $(D).with(...F.EVMChains,()=>window.vultisig?.ethereum).with(F.Chain.Cosmos,F.Chain.Kujira,()=>window.vultisig?.cosmos).with(F.Chain.Bitcoin,()=>window.vultisig?.bitcoin).with(F.Chain.BitcoinCash,()=>window.vultisig?.bitcoincash).with(F.Chain.Dash,()=>window.vultisig?.dash).with(F.Chain.Dogecoin,()=>window.vultisig?.dogecoin).with(F.Chain.Litecoin,()=>window.vultisig?.litecoin).with(F.Chain.Solana,()=>window.vultisig?.solana).with(F.Chain.THORChain,()=>window.vultisig?.thorchain).with(F.Chain.Maya,()=>window.vultisig?.mayachain).with(F.Chain.Polkadot,()=>window.vultisig?.polkadot).with(F.Chain.Ripple,()=>window.vultisig?.ripple).with(F.Chain.Zcash,()=>window.vultisig?.zcash).otherwise(()=>{return})}async function P({method:D,params:$,chain:Q}){let J=await _(Q),q=$;if(Q===F.Chain.Cosmos||Q===F.Chain.Kujira||Q===F.Chain.Ripple)q=$.map((Z)=>({from:Z.from,to:Z.to,value:Z.amount.amount.toString(),data:Z.data}));return new Promise((Z,G)=>{if(J&&"request"in J)J.request({method:D,params:q},(Y,H)=>{Y?G(Y):Z(H)})})}async function y(D){try{let $=await _(D);if(!$)throw new F.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:F.WalletOption.VULTISIG,chain:D}});if([F.Chain.Cosmos,F.Chain.Kujira].includes(D)){let J=await _(F.Chain.Cosmos),q=F.ChainToChainId[D];await J.request({method:"wallet_switch_chain",params:[{chainId:q}]});let Z=await J.request({method:"get_accounts"});if(!Z)Z=(await J.request({method:"request_accounts"}))[0].address;return Z}if(F.EVMChains.includes(D)){if("request"in $&&typeof $.request==="function")return(await $.request({method:"eth_requestAccounts"}))[0];let{BrowserProvider:J}=await import("ethers"),q=new J($,"any"),[Z]=await F.providerRequest({provider:q,method:"eth_requestAccounts",params:[]});return Z}if(D===F.Chain.Solana)return(await(await _(F.Chain.Solana)).connect()).publicKey.toString();return(await $.request({method:"request_accounts",params:[]}))[0]}catch($){throw new F.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:F.WalletOption.VULTISIG,chain:D}})}}async function L({assetValue:D,recipient:$,memo:Q,gasLimit:J},q="send_transaction"){if(!D)throw new F.SwapKitError("wallet_vultisig_asset_not_defined");let Z=await y(D.chain),G=[{amount:{amount:D.getBaseValue("number"),decimals:D.decimal},asset:{chain:D.chain,symbol:D.symbol.toUpperCase(),ticker:D.symbol.toUpperCase()},data:Q||"",from:Z,to:$,gasLimit:J}];return P({method:q,params:G,chain:D.chain})}function N(D,$){return{call:async({contractAddress:Q,abi:J,funcName:q,funcParams:Z=[],txOverrides:G})=>{if(!Q)throw new F.SwapKitError("wallet_vultisig_contract_address_not_provided");let{createContract:Y,getCreateContractTxObject:H,isStateChangingCall:X}=await import("@swapkit/toolboxes/evm");if(X({abi:J,funcName:q})){let O=H({provider:D,chain:$}),{value:j,from:W,to:M,data:T}=await O({contractAddress:Q,abi:J,funcName:q,funcParams:Z,txOverrides:G});return(await(await D.getSigner()).sendTransaction({value:BigInt(j||0),from:W,to:M,data:T||"0x"})).hash}let I=await Y(Q,J,D)[q]?.(...Z);return typeof I?.hash==="string"?I?.hash:I},approve:async({assetAddress:Q,spenderAddress:J,amount:q,from:Z})=>{let{MAX_APPROVAL:G,getCreateContractTxObject:Y}=await import("@swapkit/toolboxes/evm"),H=[J,BigInt(q||G)],U={contractAddress:Q,abi:E.erc20ABI,funcName:"approve",funcParams:H,txOverrides:{from:Z}},R=Y({provider:D,chain:$}),{value:I,to:O,data:j}=await R(U);return(await(await D.getSigner()).sendTransaction({value:BigInt(I||0),from:Z,to:O,data:j||"0x"})).hash},sendTransaction:async(Q)=>{let{from:J,to:q,data:Z,value:G}=Q;if(!q)throw new F.SwapKitError("wallet_vultisig_send_transaction_no_address");return(await(await D.getSigner()).sendTransaction({value:BigInt(G||0),from:J,to:q,data:Z||"0x"})).hash}}}async function V(D,$,Q){try{await D.request({method:"wallet_switch_chain",params:[{chainId:F.ChainToChainId[$]}]})}catch(J){if(!Q)throw new F.SwapKitError("helpers_failed_to_switch_network",{error:J,reason:"networkParams not provided"})}}function f(D,$,Q){return async(...J)=>{try{await V($,Q)}catch(q){throw new F.SwapKitError({errorKey:"helpers_failed_to_switch_network",info:{error:q}})}return D(...J)}}function k({toolbox:D,chain:$,provider:Q=window.ethereum,methodNames:J=[]}){let Z=[...J,"transfer","getAddress","getBalance"].reduce((G,Y)=>{if(!D[Y])return G;let H=D[Y];if(typeof H!=="function")return G;let X=f(H,Q,$);return{...G,[Y]:X}},{});return{...D,...Z}}var S=z.createWallet({name:"connectVultisig",walletType:z.WalletOption.VULTISIG,supportedChains:[z.Chain.Arbitrum,z.Chain.Avalanche,z.Chain.Base,z.Chain.BinanceSmartChain,z.Chain.Bitcoin,z.Chain.BitcoinCash,z.Chain.Cosmos,z.Chain.Dash,z.Chain.Dogecoin,z.Chain.Ethereum,z.Chain.Kujira,z.Chain.Litecoin,z.Chain.Maya,z.Chain.Optimism,z.Chain.Polkadot,z.Chain.Polygon,z.Chain.Ripple,z.Chain.Solana,z.Chain.THORChain,z.Chain.Zcash],connect:({addChain:D,walletType:$,supportedChains:Q})=>async function J(q){let Z=z.filterSupportedChains({chains:q,supportedChains:Q,walletType:$}),G=Z.filter((X)=>X!==z.Chain.Cosmos&&X!==z.Chain.Kujira).map(async(X)=>{let U=await y(X),R=await K(X);D({...R,address:U,chain:X,walletType:$})}),Y=Z.includes(z.Chain.Cosmos),H=Z.includes(z.Chain.Kujira);if(Y){let X=await y(z.Chain.Cosmos),U=await K(z.Chain.Cosmos);D({...U,address:X,chain:z.Chain.Cosmos,walletType:$})}if(H){let X=await y(z.Chain.Kujira),U=await K(z.Chain.Kujira);D({...U,address:X,chain:z.Chain.Kujira,walletType:$})}return await Promise.all(G),!0}}),g=A(S);async function K(D){let{match:$}=await import("ts-pattern");return $(D).with(z.Chain.Solana,async()=>{let{getSolanaToolbox:Q}=await import("@swapkit/toolboxes/solana"),J=window.vultisig?.solana;if(!J)throw new z.SwapKitError("wallet_vultisig_not_found");return{...await Q({signer:J})}}).with(z.Chain.Maya,z.Chain.THORChain,async()=>{let{getCosmosToolbox:Q,THORCHAIN_GAS_VALUE:J,MAYA_GAS_VALUE:q}=await import("@swapkit/toolboxes/cosmos"),Z=D===z.Chain.Maya?q:J;return{...await Q(D),deposit:(Y)=>L({...Y,recipient:""},"deposit_transaction"),transfer:(Y)=>L({...Y,gasLimit:Z},"send_transaction")}}).with(z.Chain.Cosmos,z.Chain.Kujira,async()=>{let{getCosmosToolbox:Q}=await import("@swapkit/toolboxes/cosmos"),J=await _(D),q=await Q(D);return k({provider:J,chain:D,toolbox:{...q,transfer:L}})}).with(...z.UTXOChains,async()=>{let{getUtxoToolbox:Q}=await import("@swapkit/toolboxes/utxo");return{...await Q(D),transfer:L}}).with(z.Chain.Arbitrum,z.Chain.Avalanche,z.Chain.Base,z.Chain.BinanceSmartChain,z.Chain.Ethereum,z.Chain.Optimism,z.Chain.Polygon,async()=>{let{prepareNetworkSwitch:Q,switchEVMWalletNetwork:J}=await import("@swapkit/helpers"),{getEvmToolbox:q}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:Z}=await import("ethers"),G=await _(D);if(!G)throw new z.SwapKitError("wallet_vultisig_not_found");let Y=new Z(G,"any"),H=await Y.getSigner(),X=await q(D,{provider:Y,signer:H}),U=N(Y,D);try{if(D!==z.Chain.Ethereum){let R=X.getNetworkParams();await J(Y,D,R)}}catch(R){throw new z.SwapKitError({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:z.WalletOption.VULTISIG,chain:D}})}return Q({provider:Y,chain:D,toolbox:{...X,...U}})}).with(z.Chain.Ripple,async()=>{let{getRippleToolbox:Q}=await import("@swapkit/toolboxes/ripple");return{...await Q(),transfer:L}}).with(z.Chain.Polkadot,async()=>{let{getSubstrateToolbox:Q}=await import("@swapkit/toolboxes/substrate");return{...await Q(D),transfer:L}}).otherwise(async()=>null)}
2
+
3
+ //# debugId=6D7E34702C0097CA64756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/vultisig/index.ts", "../src/vultisig/walletHelpers.ts"],
4
+ "sourcesContent": [
5
+ "import {\n Chain,\n type EVMChain,\n type GenericTransferParams,\n SwapKitError,\n type UTXOChain,\n UTXOChains,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n getVultisigAddress,\n getVultisigMethods,\n getVultisigProvider,\n prepareNetworkSwitchCosmos,\n walletTransfer,\n} from \"./walletHelpers\";\n\nexport const vultisigWallet = createWallet({\n name: \"connectVultisig\",\n walletType: WalletOption.VULTISIG,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Litecoin,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polkadot,\n Chain.Polygon,\n Chain.Ripple,\n Chain.Solana,\n Chain.THORChain,\n Chain.Zcash,\n ],\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectVultisig(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n const promises = filteredChains\n .filter((chain) => chain !== Chain.Cosmos && chain !== Chain.Kujira)\n .map(async (chain) => {\n const address = await getVultisigAddress(chain);\n const walletMethods = await getWalletMethods(chain);\n\n addChain({ ...walletMethods, address, chain, walletType });\n });\n\n const cosmosIncluded = filteredChains.includes(Chain.Cosmos);\n const kujiraIncluded = filteredChains.includes(Chain.Kujira);\n\n // Race condition single cosmos provider exposed.\n if (cosmosIncluded) {\n const addressCosmos = await getVultisigAddress(Chain.Cosmos);\n const walletMethodsCosmos = await getWalletMethods(Chain.Cosmos);\n addChain({\n ...walletMethodsCosmos,\n address: addressCosmos,\n chain: Chain.Cosmos,\n walletType,\n });\n }\n if (kujiraIncluded) {\n const addressKujira = await getVultisigAddress(Chain.Kujira);\n const walletMethodsKujira = await getWalletMethods(Chain.Kujira);\n addChain({\n ...walletMethodsKujira,\n address: addressKujira,\n chain: Chain.Kujira,\n walletType,\n });\n }\n //--//\n\n await Promise.all(promises);\n\n return true;\n },\n});\n\nexport const VULTISIG_SUPPORTED_CHAINS = getWalletSupportedChains(vultisigWallet);\n\nasync function getWalletMethods(chain: (typeof VULTISIG_SUPPORTED_CHAINS)[number]) {\n const { match } = await import(\"ts-pattern\");\n return match(chain)\n .with(Chain.Solana, async () => {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const solanaProvider = window.vultisig?.solana;\n if (!solanaProvider) throw new SwapKitError(\"wallet_vultisig_not_found\");\n const toolbox = await getSolanaToolbox({ signer: solanaProvider });\n return { ...toolbox };\n })\n\n .with(Chain.Maya, Chain.THORChain, async () => {\n const { getCosmosToolbox, THORCHAIN_GAS_VALUE, MAYA_GAS_VALUE } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const gasLimit = chain === Chain.Maya ? MAYA_GAS_VALUE : THORCHAIN_GAS_VALUE;\n const toolbox = await getCosmosToolbox(chain as Chain.Cosmos | Chain.Kujira);\n return {\n ...toolbox,\n deposit: (tx: GenericTransferParams) =>\n walletTransfer({ ...tx, recipient: \"\" }, \"deposit_transaction\"),\n transfer: (tx: GenericTransferParams) =>\n walletTransfer({ ...tx, gasLimit }, \"send_transaction\"),\n };\n })\n\n .with(Chain.Cosmos, Chain.Kujira, async () => {\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const provider = await getVultisigProvider(chain as Chain.Cosmos | Chain.Kujira);\n const toolbox = await getCosmosToolbox(chain as Chain.Cosmos | Chain.Kujira);\n return prepareNetworkSwitchCosmos({\n provider,\n chain,\n toolbox: {\n ...toolbox,\n transfer: walletTransfer,\n },\n });\n })\n\n .with(...UTXOChains, async () => {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const toolbox = await getUtxoToolbox(chain as UTXOChain);\n return { ...toolbox, transfer: walletTransfer };\n })\n\n .with(\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Optimism,\n Chain.Polygon,\n async () => {\n const { prepareNetworkSwitch, switchEVMWalletNetwork } = await import(\"@swapkit/helpers\");\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n const ethereumWindowProvider = await getVultisigProvider(chain as EVMChain);\n\n if (!ethereumWindowProvider) {\n throw new SwapKitError(\"wallet_vultisig_not_found\");\n }\n\n const provider = new BrowserProvider(ethereumWindowProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain as EVMChain, { provider, signer });\n const vultisigMethods = getVultisigMethods(provider, chain as EVMChain);\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n }\n } catch (_error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { wallet: WalletOption.VULTISIG, chain },\n });\n }\n\n return prepareNetworkSwitch({\n provider,\n chain,\n toolbox: {\n ...toolbox,\n ...vultisigMethods,\n },\n });\n },\n )\n\n .with(Chain.Ripple, async () => {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n const toolbox = await getRippleToolbox();\n return { ...toolbox, transfer: walletTransfer };\n })\n\n .with(Chain.Polkadot, async () => {\n const { getSubstrateToolbox } = await import(\"@swapkit/toolboxes/substrate\");\n const toolbox = await getSubstrateToolbox(chain as Chain.Polkadot);\n return { ...toolbox, transfer: walletTransfer };\n })\n\n .otherwise(async () => null);\n}\n",
6
+ "import {\n type AssetValue,\n Chain,\n ChainToChainId,\n type EVMChain,\n EVMChains,\n type FeeOption,\n type NetworkParams,\n SwapKitError,\n type UTXOChain,\n WalletOption,\n providerRequest,\n} from \"@swapkit/helpers\";\nimport { erc20ABI } from \"@swapkit/helpers/contracts\";\nimport type { getCosmosToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { ApproveParams, CallParams, EVMTxParams } from \"@swapkit/toolboxes/evm\";\nimport type { SolanaProvider } from \"@swapkit/toolboxes/solana\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\nimport type { VultisigCosmosProvider } from \"../types\";\n\ntype TransactionMethod = \"send_transaction\" | \"deposit_transaction\";\n\ntype TransactionParams = {\n asset: string | { chain: string; symbol: string; ticker: string };\n amount: number | string | { amount: number; decimals?: number };\n decimal?: number;\n to: string;\n data?: string;\n from?: string;\n};\n\nexport type WalletTxParams = {\n feeOptionKey?: FeeOption;\n from?: string;\n memo?: string;\n recipient: string;\n assetValue: AssetValue;\n gasLimit?: string | bigint;\n};\n\ntype VultisigProviderType<T> = T extends Chain.Solana\n ? SolanaProvider\n : T extends Chain.Cosmos | Chain.Kujira\n ? VultisigCosmosProvider\n : T extends EVMChain\n ? Eip1193Provider\n : T extends Chain.Maya | Chain.THORChain | Chain.Ripple | Chain.Polkadot | UTXOChain\n ? Eip1193Provider\n : undefined;\n\nexport async function getVultisigProvider<T extends Chain>(\n chain: T,\n): Promise<VultisigProviderType<T>> {\n if (!window.vultisig) throw new SwapKitError(\"wallet_vultisig_not_found\");\n const { match } = await import(\"ts-pattern\");\n\n return match(chain as Chain)\n .with(...EVMChains, () => window.vultisig?.ethereum as Eip1193Provider)\n .with(Chain.Cosmos, Chain.Kujira, () => window.vultisig?.cosmos as VultisigCosmosProvider)\n .with(Chain.Bitcoin, () => window.vultisig?.bitcoin as Eip1193Provider)\n .with(Chain.BitcoinCash, () => window.vultisig?.bitcoincash as Eip1193Provider)\n .with(Chain.Dash, () => window.vultisig?.dash as Eip1193Provider)\n .with(Chain.Dogecoin, () => window.vultisig?.dogecoin as Eip1193Provider)\n .with(Chain.Litecoin, () => window.vultisig?.litecoin as Eip1193Provider)\n .with(Chain.Solana, () => window.vultisig?.solana as SolanaProvider)\n .with(Chain.THORChain, () => window.vultisig?.thorchain as Eip1193Provider)\n .with(Chain.Maya, () => window.vultisig?.mayachain as Eip1193Provider)\n .with(Chain.Polkadot, () => window.vultisig?.polkadot as Eip1193Provider)\n .with(Chain.Ripple, () => window.vultisig?.ripple as Eip1193Provider)\n .with(Chain.Zcash, () => window.vultisig?.zcash as Eip1193Provider)\n .otherwise(() => undefined) as VultisigProviderType<T>;\n}\n\nasync function transaction({\n method,\n params,\n chain,\n}: {\n method: TransactionMethod;\n params: TransactionParams[];\n chain: Chain;\n}): Promise<string> {\n const client = await getVultisigProvider(chain);\n let finalParams:\n | TransactionParams[]\n | {\n from: string;\n to?: string;\n value: string;\n data?: string;\n }[] = params;\n\n if (chain === Chain.Cosmos || chain === Chain.Kujira || chain === Chain.Ripple) {\n finalParams = params.map((p) => ({\n from: p.from as string,\n to: p.to as string,\n value: (p.amount as { amount: number; decimals?: number }).amount.toString(),\n data: p.data as string,\n }));\n }\n\n return new Promise<string>((resolve, reject) => {\n if (client && \"request\" in client) {\n // @ts-ignore\n client.request({ method, params: finalParams }, (err: string, tx: string) => {\n err ? reject(err) : resolve(tx);\n });\n }\n });\n}\n\nexport async function getVultisigAddress(chain: Chain) {\n try {\n const eipProvider = (await getVultisigProvider(chain)) as Eip1193Provider;\n if (!eipProvider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.VULTISIG, chain },\n });\n }\n\n if ([Chain.Cosmos, Chain.Kujira].includes(chain)) {\n const provider = await getVultisigProvider(Chain.Cosmos);\n const chainId = ChainToChainId[chain];\n\n await provider.request({\n method: \"wallet_switch_chain\",\n params: [{ chainId }],\n });\n\n let account = await provider.request({\n method: \"get_accounts\",\n });\n if (!account) {\n const connectedAcount = await provider.request({\n method: \"request_accounts\",\n });\n account = connectedAcount[0].address;\n }\n return account;\n }\n\n if (EVMChains.includes(chain as EVMChain)) {\n if (\"request\" in eipProvider && typeof eipProvider.request === \"function\") {\n const accounts = await eipProvider.request({ method: \"eth_requestAccounts\" });\n return accounts[0];\n }\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(eipProvider, \"any\");\n const [response] = await providerRequest({\n provider,\n method: \"eth_requestAccounts\",\n params: [],\n });\n return response;\n }\n\n if (chain === Chain.Solana) {\n const provider = await getVultisigProvider(Chain.Solana);\n\n const accounts = await provider.connect();\n return accounts.publicKey.toString();\n }\n\n const accounts = await eipProvider.request({ method: \"request_accounts\", params: [] });\n return accounts[0];\n } catch (_error) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.VULTISIG, chain },\n });\n }\n}\n\nexport async function walletTransfer(\n { assetValue, recipient, memo, gasLimit }: WalletTxParams,\n method: TransactionMethod = \"send_transaction\",\n) {\n if (!assetValue) {\n throw new SwapKitError(\"wallet_vultisig_asset_not_defined\");\n }\n\n /**\n * EVM requires amount to be hex string\n * UTXO/Cosmos requires amount to be number\n */\n\n const from = await getVultisigAddress(assetValue.chain);\n const params = [\n {\n amount: {\n amount: assetValue.getBaseValue(\"number\"),\n decimals: assetValue.decimal,\n },\n asset: {\n chain: assetValue.chain,\n symbol: assetValue.symbol.toUpperCase(),\n ticker: assetValue.symbol.toUpperCase(),\n },\n data: memo || \"\",\n from,\n to: recipient,\n gasLimit,\n },\n ];\n\n return transaction({ method, params, chain: assetValue.chain });\n}\n\nexport function getVultisigMethods(provider: BrowserProvider, chain: EVMChain) {\n return {\n call: async <T>({\n contractAddress,\n abi,\n funcName,\n funcParams = [],\n txOverrides,\n }: CallParams): Promise<T> => {\n if (!contractAddress) {\n throw new SwapKitError(\"wallet_vultisig_contract_address_not_provided\");\n }\n const { createContract, getCreateContractTxObject, isStateChangingCall } = await import(\n \"@swapkit/toolboxes/evm\"\n );\n\n const isStateChanging = isStateChangingCall({ abi, funcName });\n\n if (isStateChanging) {\n const createTx = getCreateContractTxObject({ provider, chain });\n const { value, from, to, data } = await createTx({\n contractAddress,\n abi,\n funcName,\n funcParams,\n txOverrides,\n });\n\n const signer = await provider.getSigner();\n const tx = await signer.sendTransaction({\n value: BigInt(value || 0),\n from,\n to,\n data: data || \"0x\",\n });\n return tx.hash as T;\n }\n const contract = createContract(contractAddress, abi, provider);\n\n const result = await contract[funcName]?.(...funcParams);\n\n return typeof result?.hash === \"string\" ? result?.hash : result;\n },\n approve: async ({ assetAddress, spenderAddress, amount, from }: ApproveParams) => {\n const { MAX_APPROVAL, getCreateContractTxObject } = await import(\"@swapkit/toolboxes/evm\");\n const funcParams = [spenderAddress, BigInt(amount || MAX_APPROVAL)];\n const txOverrides = { from };\n\n const functionCallParams = {\n contractAddress: assetAddress,\n abi: erc20ABI,\n funcName: \"approve\",\n funcParams,\n txOverrides,\n };\n\n const createTx = getCreateContractTxObject({ provider, chain });\n const { value, to, data } = await createTx(functionCallParams);\n\n const signer = await provider.getSigner();\n const tx = await signer.sendTransaction({\n value: BigInt(value || 0),\n from,\n to,\n data: data || \"0x\",\n });\n return tx.hash;\n },\n sendTransaction: async (txParams: EVMTxParams) => {\n const { from, to, data, value } = txParams;\n if (!to) {\n throw new SwapKitError(\"wallet_vultisig_send_transaction_no_address\");\n }\n\n const signer = await provider.getSigner();\n const tx = await signer.sendTransaction({\n value: BigInt(value || 0),\n from,\n to,\n data: data || \"0x\",\n });\n return tx.hash;\n },\n };\n}\n\nexport async function switchCosmosWalletNetwork(\n provider: VultisigCosmosProvider,\n chain: Chain.Cosmos | Chain.Kujira,\n networkParams?: NetworkParams,\n) {\n try {\n await provider.request({\n method: \"wallet_switch_chain\",\n params: [{ chainId: ChainToChainId[chain] }],\n });\n } catch (error) {\n if (!networkParams) {\n throw new SwapKitError(\"helpers_failed_to_switch_network\", {\n error: error,\n reason: \"networkParams not provided\",\n });\n }\n }\n}\n\nexport function wrapMethodWithNetworkSwitch<T extends (...args: any[]) => any>(\n func: T,\n provider: VultisigCosmosProvider,\n chain: Chain.Cosmos | Chain.Kujira,\n) {\n return (async (...args: any[]) => {\n try {\n await switchCosmosWalletNetwork(provider, chain);\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"helpers_failed_to_switch_network\",\n info: { error },\n });\n }\n return func(...args);\n }) as unknown as T;\n}\n\nexport function prepareNetworkSwitchCosmos<\n T extends Awaited<ReturnType<typeof getCosmosToolbox>>,\n M extends keyof T,\n>({\n toolbox,\n chain,\n provider = window.ethereum,\n methodNames = [],\n}: { toolbox: T; chain: Chain; provider?: VultisigCosmosProvider; methodNames?: M[] }) {\n const methodsToWrap = [...methodNames, \"transfer\", \"getAddress\", \"getBalance\"] as M[];\n const wrappedMethods = methodsToWrap.reduce((object, methodName) => {\n if (!toolbox[methodName]) return object;\n\n const method = toolbox[methodName];\n\n if (typeof method !== \"function\") return object;\n\n // @ts-expect-error\n const wrappedMethod = wrapMethodWithNetworkSwitch(method, provider, chain);\n\n // biome-ignore lint/performance/noAccumulatingSpread: valid use case\n return { ...object, [methodName]: wrappedMethod };\n }, {});\n\n return { ...toolbox, ...wrappedMethods };\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "6D7E34702C0097CA64756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ import{H as b}from"../../chunk-htvthkj1.js";import{J as B,K as H}from"../../chunk-p2ca0j1v.js";import{Chain as D,SwapKitError as M,UTXOChains as C,WalletOption as f,createWallet as p,filterSupportedChains as d}from"@swapkit/helpers";import{Chain as G,ChainToChainId as A,EVMChains as T,SwapKitError as _,WalletOption as S,providerRequest as g}from"@swapkit/helpers";import{erc20ABI as v}from"@swapkit/helpers/contracts";async function I(z){if(!window.vultisig)throw new _("wallet_vultisig_not_found");let{match:Z}=await import("ts-pattern");return Z(z).with(...T,()=>window.vultisig?.ethereum).with(G.Cosmos,G.Kujira,()=>window.vultisig?.cosmos).with(G.Bitcoin,()=>window.vultisig?.bitcoin).with(G.BitcoinCash,()=>window.vultisig?.bitcoincash).with(G.Dash,()=>window.vultisig?.dash).with(G.Dogecoin,()=>window.vultisig?.dogecoin).with(G.Litecoin,()=>window.vultisig?.litecoin).with(G.Solana,()=>window.vultisig?.solana).with(G.THORChain,()=>window.vultisig?.thorchain).with(G.Maya,()=>window.vultisig?.mayachain).with(G.Polkadot,()=>window.vultisig?.polkadot).with(G.Ripple,()=>window.vultisig?.ripple).with(G.Zcash,()=>window.vultisig?.zcash).otherwise(()=>{return})}async function w({method:z,params:Z,chain:J}){let F=await I(J),$=Z;if(J===G.Cosmos||J===G.Kujira||J===G.Ripple)$=Z.map((Q)=>({from:Q.from,to:Q.to,value:Q.amount.amount.toString(),data:Q.data}));return new Promise((Q,Y)=>{if(F&&"request"in F)F.request({method:z,params:$},(q,U)=>{q?Y(q):Q(U)})})}async function j(z){try{let Z=await I(z);if(!Z)throw new _({errorKey:"wallet_provider_not_found",info:{wallet:S.VULTISIG,chain:z}});if([G.Cosmos,G.Kujira].includes(z)){let F=await I(G.Cosmos),$=A[z];await F.request({method:"wallet_switch_chain",params:[{chainId:$}]});let Q=await F.request({method:"get_accounts"});if(!Q)Q=(await F.request({method:"request_accounts"}))[0].address;return Q}if(T.includes(z)){if("request"in Z&&typeof Z.request==="function")return(await Z.request({method:"eth_requestAccounts"}))[0];let{BrowserProvider:F}=await import("ethers"),$=new F(Z,"any"),[Q]=await g({provider:$,method:"eth_requestAccounts",params:[]});return Q}if(z===G.Solana)return(await(await I(G.Solana)).connect()).publicKey.toString();return(await Z.request({method:"request_accounts",params:[]}))[0]}catch(Z){throw new _({errorKey:"wallet_provider_not_found",info:{wallet:S.VULTISIG,chain:z}})}}async function y({assetValue:z,recipient:Z,memo:J,gasLimit:F},$="send_transaction"){if(!z)throw new _("wallet_vultisig_asset_not_defined");let Q=await j(z.chain),Y=[{amount:{amount:z.getBaseValue("number"),decimals:z.decimal},asset:{chain:z.chain,symbol:z.symbol.toUpperCase(),ticker:z.symbol.toUpperCase()},data:J||"",from:Q,to:Z,gasLimit:F}];return w({method:$,params:Y,chain:z.chain})}function P(z,Z){return{call:async({contractAddress:J,abi:F,funcName:$,funcParams:Q=[],txOverrides:Y})=>{if(!J)throw new _("wallet_vultisig_contract_address_not_provided");let{createContract:q,getCreateContractTxObject:U,isStateChangingCall:X}=await import("@swapkit/toolboxes/evm");if(X({abi:F,funcName:$})){let K=U({provider:z,chain:Z}),{value:W,from:N,to:k,data:x}=await K({contractAddress:J,abi:F,funcName:$,funcParams:Q,txOverrides:Y});return(await(await z.getSigner()).sendTransaction({value:BigInt(W||0),from:N,to:k,data:x||"0x"})).hash}let O=await q(J,F,z)[$]?.(...Q);return typeof O?.hash==="string"?O?.hash:O},approve:async({assetAddress:J,spenderAddress:F,amount:$,from:Q})=>{let{MAX_APPROVAL:Y,getCreateContractTxObject:q}=await import("@swapkit/toolboxes/evm"),U=[F,BigInt($||Y)],R={contractAddress:J,abi:v,funcName:"approve",funcParams:U,txOverrides:{from:Q}},L=q({provider:z,chain:Z}),{value:O,to:K,data:W}=await L(R);return(await(await z.getSigner()).sendTransaction({value:BigInt(O||0),from:Q,to:K,data:W||"0x"})).hash},sendTransaction:async(J)=>{let{from:F,to:$,data:Q,value:Y}=J;if(!$)throw new _("wallet_vultisig_send_transaction_no_address");return(await(await z.getSigner()).sendTransaction({value:BigInt(Y||0),from:F,to:$,data:Q||"0x"})).hash}}}async function u(z,Z,J){try{await z.request({method:"wallet_switch_chain",params:[{chainId:A[Z]}]})}catch(F){if(!J)throw new _("helpers_failed_to_switch_network",{error:F,reason:"networkParams not provided"})}}function m(z,Z,J){return async(...F)=>{try{await u(Z,J)}catch($){throw new _({errorKey:"helpers_failed_to_switch_network",info:{error:$}})}return z(...F)}}function V({toolbox:z,chain:Z,provider:J=window.ethereum,methodNames:F=[]}){let Q=[...F,"transfer","getAddress","getBalance"].reduce((Y,q)=>{if(!z[q])return Y;let U=z[q];if(typeof U!=="function")return Y;let X=m(U,J,Z);return{...Y,[q]:X}},{});return{...z,...Q}}var l=p({name:"connectVultisig",walletType:f.VULTISIG,supportedChains:[D.Arbitrum,D.Avalanche,D.Base,D.BinanceSmartChain,D.Bitcoin,D.BitcoinCash,D.Cosmos,D.Dash,D.Dogecoin,D.Ethereum,D.Kujira,D.Litecoin,D.Maya,D.Optimism,D.Polkadot,D.Polygon,D.Ripple,D.Solana,D.THORChain,D.Zcash],connect:({addChain:z,walletType:Z,supportedChains:J})=>async function F($){let Q=d({chains:$,supportedChains:J,walletType:Z}),Y=Q.filter((X)=>X!==D.Cosmos&&X!==D.Kujira).map(async(X)=>{let R=await j(X),L=await E(X);z({...L,address:R,chain:X,walletType:Z})}),q=Q.includes(D.Cosmos),U=Q.includes(D.Kujira);if(q){let X=await j(D.Cosmos),R=await E(D.Cosmos);z({...R,address:X,chain:D.Cosmos,walletType:Z})}if(U){let X=await j(D.Kujira),R=await E(D.Kujira);z({...R,address:X,chain:D.Kujira,walletType:Z})}return await Promise.all(Y),!0}}),e=b(l);async function E(z){let{match:Z}=await import("ts-pattern");return Z(z).with(D.Solana,async()=>{let{getSolanaToolbox:J}=await import("@swapkit/toolboxes/solana"),F=window.vultisig?.solana;if(!F)throw new M("wallet_vultisig_not_found");return{...await J({signer:F})}}).with(D.Maya,D.THORChain,async()=>{let{getCosmosToolbox:J,THORCHAIN_GAS_VALUE:F,MAYA_GAS_VALUE:$}=await import("@swapkit/toolboxes/cosmos"),Q=z===D.Maya?$:F;return{...await J(z),deposit:(q)=>y({...q,recipient:""},"deposit_transaction"),transfer:(q)=>y({...q,gasLimit:Q},"send_transaction")}}).with(D.Cosmos,D.Kujira,async()=>{let{getCosmosToolbox:J}=await import("@swapkit/toolboxes/cosmos"),F=await I(z),$=await J(z);return V({provider:F,chain:z,toolbox:{...$,transfer:y}})}).with(...C,async()=>{let{getUtxoToolbox:J}=await import("@swapkit/toolboxes/utxo");return{...await J(z),transfer:y}}).with(D.Arbitrum,D.Avalanche,D.Base,D.BinanceSmartChain,D.Ethereum,D.Optimism,D.Polygon,async()=>{let{prepareNetworkSwitch:J,switchEVMWalletNetwork:F}=await import("@swapkit/helpers"),{getEvmToolbox:$}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:Q}=await import("ethers"),Y=await I(z);if(!Y)throw new M("wallet_vultisig_not_found");let q=new Q(Y,"any"),U=await q.getSigner(),X=await $(z,{provider:q,signer:U}),R=P(q,z);try{if(z!==D.Ethereum){let L=X.getNetworkParams();await F(q,z,L)}}catch(L){throw new M({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:f.VULTISIG,chain:z}})}return J({provider:q,chain:z,toolbox:{...X,...R}})}).with(D.Ripple,async()=>{let{getRippleToolbox:J}=await import("@swapkit/toolboxes/ripple");return{...await J(),transfer:y}}).with(D.Polkadot,async()=>{let{getSubstrateToolbox:J}=await import("@swapkit/toolboxes/substrate");return{...await J(z),transfer:y}}).otherwise(async()=>null)}export{l as vultisigWallet,e as VULTISIG_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=8A0E8DB3E8FB79EF64756E2164756E21
4
+ //# sourceMappingURL=index.js.map