@swapkit/wallets 3.0.0-beta.9 → 4.0.0-beta.38

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 (145) hide show
  1. package/dist/chunk-0qaxr89s.js +3 -0
  2. package/dist/chunk-0qaxr89s.js.map +10 -0
  3. package/dist/chunk-2aa1w78q.js +3 -0
  4. package/dist/chunk-2aa1w78q.js.map +10 -0
  5. package/dist/chunk-bexr8da2.js +4 -0
  6. package/dist/chunk-bexr8da2.js.map +10 -0
  7. package/dist/chunk-dcj9twam.js +3 -0
  8. package/dist/chunk-dcj9twam.js.map +10 -0
  9. package/dist/{chunk-p1kdg37m.js → chunk-qwd1kp32.js} +2 -2
  10. package/dist/{chunk-p1kdg37m.js.map → chunk-qwd1kp32.js.map} +1 -1
  11. package/dist/chunk-sn6pgje5.js +3 -0
  12. package/dist/chunk-sn6pgje5.js.map +10 -0
  13. package/dist/chunk-th8ggrmx.js +4 -0
  14. package/dist/{chunk-6ndrbmhg.js.map → chunk-th8ggrmx.js.map} +3 -3
  15. package/dist/chunk-wfattb4a.js +3 -0
  16. package/dist/chunk-wfattb4a.js.map +10 -0
  17. package/dist/chunk-yah6cf33.js +3 -0
  18. package/dist/{chunk-hxt2nqa8.js.map → chunk-yah6cf33.js.map} +3 -3
  19. package/dist/src/bitget/index.cjs +2 -2
  20. package/dist/src/bitget/index.cjs.map +3 -3
  21. package/dist/src/bitget/index.js +2 -2
  22. package/dist/src/bitget/index.js.map +3 -3
  23. package/dist/src/coinbase/index.cjs +2 -2
  24. package/dist/src/coinbase/index.cjs.map +3 -3
  25. package/dist/src/coinbase/index.js +2 -2
  26. package/dist/src/coinbase/index.js.map +3 -3
  27. package/dist/src/cosmostation/index.cjs +3 -0
  28. package/dist/src/cosmostation/index.cjs.map +10 -0
  29. package/dist/src/cosmostation/index.js +3 -0
  30. package/dist/src/cosmostation/index.js.map +10 -0
  31. package/dist/src/ctrl/index.cjs +2 -2
  32. package/dist/src/ctrl/index.cjs.map +4 -4
  33. package/dist/src/ctrl/index.js +2 -2
  34. package/dist/src/ctrl/index.js.map +4 -4
  35. package/dist/src/evm-extensions/index.cjs +2 -2
  36. package/dist/src/evm-extensions/index.cjs.map +3 -3
  37. package/dist/src/evm-extensions/index.js +2 -2
  38. package/dist/src/evm-extensions/index.js.map +3 -3
  39. package/dist/src/exodus/index.cjs +2 -2
  40. package/dist/src/exodus/index.cjs.map +3 -3
  41. package/dist/src/exodus/index.js +2 -2
  42. package/dist/src/exodus/index.js.map +3 -3
  43. package/dist/src/index.js +2 -2
  44. package/dist/src/index.js.map +1 -1
  45. package/dist/src/keepkey/index.cjs +2 -2
  46. package/dist/src/keepkey/index.cjs.map +9 -9
  47. package/dist/src/keepkey/index.js +2 -2
  48. package/dist/src/keepkey/index.js.map +9 -9
  49. package/dist/src/keepkey-bex/index.cjs +2 -2
  50. package/dist/src/keepkey-bex/index.cjs.map +4 -4
  51. package/dist/src/keepkey-bex/index.js +2 -2
  52. package/dist/src/keepkey-bex/index.js.map +4 -4
  53. package/dist/src/keplr/index.cjs +2 -2
  54. package/dist/src/keplr/index.cjs.map +3 -3
  55. package/dist/src/keplr/index.js +2 -2
  56. package/dist/src/keplr/index.js.map +3 -3
  57. package/dist/src/keystore/index.cjs +2 -2
  58. package/dist/src/keystore/index.cjs.map +4 -4
  59. package/dist/src/keystore/index.js +2 -2
  60. package/dist/src/keystore/index.js.map +4 -4
  61. package/dist/src/ledger/index.cjs +3 -3
  62. package/dist/src/ledger/index.cjs.map +17 -15
  63. package/dist/src/ledger/index.js +3 -3
  64. package/dist/src/ledger/index.js.map +17 -15
  65. package/dist/src/okx/index.cjs +2 -2
  66. package/dist/src/okx/index.cjs.map +4 -4
  67. package/dist/src/okx/index.js +2 -2
  68. package/dist/src/okx/index.js.map +4 -4
  69. package/dist/src/onekey/index.cjs +2 -2
  70. package/dist/src/onekey/index.cjs.map +3 -3
  71. package/dist/src/onekey/index.js +2 -2
  72. package/dist/src/onekey/index.js.map +3 -3
  73. package/dist/src/phantom/index.js +2 -2
  74. package/dist/src/phantom/index.js.map +2 -2
  75. package/dist/src/polkadotjs/index.js +2 -2
  76. package/dist/src/polkadotjs/index.js.map +1 -1
  77. package/dist/src/radix/index.cjs +2 -2
  78. package/dist/src/radix/index.cjs.map +3 -3
  79. package/dist/src/radix/index.js +2 -2
  80. package/dist/src/radix/index.js.map +3 -3
  81. package/dist/src/talisman/index.js +2 -2
  82. package/dist/src/talisman/index.js.map +1 -1
  83. package/dist/src/trezor/index.cjs +2 -2
  84. package/dist/src/trezor/index.cjs.map +3 -3
  85. package/dist/src/trezor/index.js +2 -2
  86. package/dist/src/trezor/index.js.map +3 -3
  87. package/dist/src/walletconnect/index.cjs +2 -2
  88. package/dist/src/walletconnect/index.cjs.map +6 -7
  89. package/dist/src/walletconnect/index.js +2 -2
  90. package/dist/src/walletconnect/index.js.map +6 -7
  91. package/package.json +73 -28
  92. package/src/bitget/helpers.ts +4 -4
  93. package/src/coinbase/signer.ts +4 -4
  94. package/src/cosmostation/index.ts +142 -0
  95. package/src/ctrl/index.ts +83 -0
  96. package/src/ctrl/walletHelpers.ts +98 -70
  97. package/src/evm-extensions/index.ts +4 -3
  98. package/src/exodus/index.ts +8 -9
  99. package/src/helpers/near-browser-provider.d.ts +286 -0
  100. package/src/helpers/near.ts +206 -0
  101. package/src/keepkey/chains/cosmos.ts +44 -50
  102. package/src/keepkey/chains/evm.ts +16 -8
  103. package/src/keepkey/chains/mayachain.ts +3 -2
  104. package/src/keepkey/chains/thorchain.ts +3 -2
  105. package/src/keepkey/chains/utxo.ts +14 -3
  106. package/src/keepkey/coins.ts +10 -4
  107. package/src/keepkey/index.ts +15 -7
  108. package/src/keepkey-bex/index.ts +9 -14
  109. package/src/keepkey-bex/walletHelpers.ts +1 -1
  110. package/src/keplr/index.ts +4 -3
  111. package/src/keystore/helpers.ts +2 -4
  112. package/src/keystore/index.ts +2 -0
  113. package/src/ledger/clients/cosmos.ts +5 -4
  114. package/src/ledger/clients/evm.ts +7 -6
  115. package/src/ledger/clients/near.ts +86 -0
  116. package/src/ledger/clients/thorchain/helpers.ts +9 -4
  117. package/src/ledger/clients/thorchain/index.ts +3 -3
  118. package/src/ledger/clients/thorchain/lib.ts +3 -2
  119. package/src/ledger/clients/thorchain/utils.ts +20 -9
  120. package/src/ledger/clients/utxo.ts +3 -5
  121. package/src/ledger/clients/xrp.ts +66 -0
  122. package/src/ledger/cosmosTypes.ts +14 -10
  123. package/src/ledger/helpers/getLedgerAddress.ts +17 -3
  124. package/src/ledger/helpers/getLedgerClient.ts +63 -45
  125. package/src/ledger/helpers/getLedgerTransport.ts +5 -3
  126. package/src/ledger/index.ts +28 -7
  127. package/src/ledger/interfaces/CosmosLedgerInterface.ts +1 -2
  128. package/src/okx/helpers.ts +27 -9
  129. package/src/okx/index.ts +1 -0
  130. package/src/onekey/index.ts +3 -7
  131. package/src/radix/index.ts +4 -4
  132. package/src/trezor/evmSigner.ts +4 -4
  133. package/src/trezor/index.ts +14 -4
  134. package/src/types.ts +14 -0
  135. package/src/utils.ts +4 -0
  136. package/src/walletconnect/constants.ts +2 -0
  137. package/src/walletconnect/evmSigner.ts +8 -4
  138. package/src/walletconnect/helpers.ts +9 -2
  139. package/src/walletconnect/index.ts +134 -24
  140. package/dist/chunk-6ndrbmhg.js +0 -4
  141. package/dist/chunk-bhfpfqc3.js +0 -3
  142. package/dist/chunk-bhfpfqc3.js.map +0 -10
  143. package/dist/chunk-hxt2nqa8.js +0 -3
  144. package/dist/chunk-q81hzyra.js +0 -3
  145. package/dist/chunk-q81hzyra.js.map +0 -10
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/trezor/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const manifest = SKConfig.get(\"integrations\").trezor || { appUrl: \"\", email: \"\" };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
5
+ "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const trezorConfig = SKConfig.get(\"integrations\").trezor;\n const manifest = trezorConfig\n ? {\n ...trezorConfig,\n appName: (trezorConfig as any).appName || \"SwapKit\",\n }\n : {\n appUrl: \"\",\n email: \"\",\n appName: \"SwapKit\",\n };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "2C0BC8538E4C2EDA64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "636DDE882BCC9B9064756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- import{a as K}from"../../chunk-6ndrbmhg.js";import{c as N,d as V}from"../../chunk-p1kdg37m.js";import{Chain as j,FeeOption as E,SKConfig as S,SwapKitError as M,WalletOption as f,createWallet as y,derivationPathToString as P,filterSupportedChains as b}from"@swapkit/helpers";function w(q){switch(q[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:q,derivationPath:Q}){switch(q){case j.BinanceSmartChain:case j.Avalanche:case j.Arbitrum:case j.Optimism:case j.Polygon:case j.Base:case j.Ethereum:{let{getProvider:H,getEvmToolbox:X}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Y}=await import("../../chunk-q81hzyra.js"),Z=await H(q),I=await Y({chain:q,derivationPath:Q,provider:Z}),D=await I.getAddress();return{...await X(q,{provider:Z,signer:I}),address:D}}case j.Bitcoin:case j.BitcoinCash:case j.Dash:case j.Dogecoin:case j.Litecoin:{let{toCashAddress:H,getUtxoToolbox:X}=await import("@swapkit/toolboxes/utxo"),Y=w(Q);if(!Y)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:Q}});let Z=q.toLowerCase(),D=await(async($=Q)=>{let{default:F}=await import("@trezor/connect-web"),{success:_,payload:G}=await F.getAddress({path:P($),coin:Z});if(!_)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:G.error||"Unknown error"}});if(q===j.BitcoinCash)return(await X(q)).stripPrefix(G.address);return G.address})(),k=async($,F,_="")=>{let{default:G}=await import("@trezor/connect-web"),A=Q.map((B,J)=>J<3?(B|2147483648)>>>0:B),L=await X(q),R=await G.signTransaction({coin:Z,inputs:F.map(({hash:B,index:J,value:U})=>({address_n:A,prev_hash:B,prev_index:J,amount:U,script_type:Y.input})),outputs:$.txOutputs.map((B)=>{let J=q===j.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,U=J===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(_).toString("hex"),script_type:"PAYTOOPRETURN"};return U?{amount:B.value,address_n:A,script_type:Y.output}:{amount:B.value,address:J,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:R.payload.error}})},W=async({recipient:$,feeOptionKey:F,feeRate:_,memo:G,...A})=>{if(!(D&&$))throw new M({errorKey:"wallet_missing_params",info:{wallet:f.TREZOR,memo:G,address:D,recipient:$}});let L=await X(q),R=_||(await L.getFeeRates())[F||E.Fast],B=q===j.BitcoinCash?L.buildTx:L.createTransaction,{psbt:J,inputs:U}=await B({...A,memo:G,recipient:$,feeRate:R,sender:D,fetchTxHex:!0}),O=await k(J,U,G);return await L.broadcastTx(O)};return{...await X(q),address:D,transfer:W,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:f.TREZOR}})}}var v=y({name:"connectTrezor",walletType:f.TREZOR,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Bitcoin,j.BitcoinCash,j.Dash,j.Dogecoin,j.Ethereum,j.Litecoin,j.Optimism,j.Polygon],connect:({addChain:q,supportedChains:Q,walletType:H})=>async function X(Y,Z){let[I]=b({chains:Y,supportedChains:Q,walletType:H});if(!I)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:I,wallet:f.TREZOR}});let{default:D}=await import("@trezor/connect-web"),{success:k}=await D.getDeviceState();if(!k){let z=S.get("integrations").trezor||{appUrl:"",email:""};D.init({lazyLoad:!0,manifest:z})}let W=await g({chain:I,derivationPath:Z});return q({...W,chain:I,walletType:H}),!0}}),C=K(v);export{v as trezorWallet,C as TREZOR_SUPPORTED_CHAINS};
1
+ import{A as f}from"../../chunk-th8ggrmx.js";import{C as N,D as V}from"../../chunk-qwd1kp32.js";import{Chain as j,FeeOption as E,SKConfig as S,SwapKitError as M,WalletOption as K,createWallet as y,derivationPathToString as P,filterSupportedChains as b}from"@swapkit/helpers";function w(q){switch(q[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:q,derivationPath:X}){switch(q){case j.BinanceSmartChain:case j.Avalanche:case j.Arbitrum:case j.Optimism:case j.Polygon:case j.Base:case j.Ethereum:{let{getProvider:H,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-0qaxr89s.js"),$=await H(q),J=await Z({chain:q,derivationPath:X,provider:$}),D=await J.getAddress();return{...await Y(q,{provider:$,signer:J}),address:D}}case j.Bitcoin:case j.BitcoinCash:case j.Dash:case j.Dogecoin:case j.Litecoin:{let{toCashAddress:H,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=w(X);if(!Z)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=q.toLowerCase(),D=await(async(G=X)=>{let F=(await import("@trezor/connect-web")).default,{success:_,payload:I}=await F.getAddress({path:P(G),coin:$});if(!_)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:I.error||"Unknown error"}});if(q===j.BitcoinCash)return(await Y(q)).stripPrefix(I.address);return I.address})(),k=async(G,F,_="")=>{let I=(await import("@trezor/connect-web")).default,A=X.map((B,Q)=>Q<3?(B|2147483648)>>>0:B),L=await Y(q),R=await I.signTransaction({coin:$,inputs:F.map(({hash:B,index:Q,value:U})=>({address_n:A,prev_hash:B,prev_index:Q,amount:U,script_type:Z.input})),outputs:G.txOutputs.map((B)=>{let Q=q===j.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,U=Q===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(_).toString("hex"),script_type:"PAYTOOPRETURN"};return U?{amount:B.value,address_n:A,script_type:Z.output}:{amount:B.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:q,error:R.payload.error}})},O=async({recipient:G,feeOptionKey:F,feeRate:_,memo:I,...A})=>{if(!(D&&G))throw new M({errorKey:"wallet_missing_params",info:{wallet:K.TREZOR,memo:I,address:D,recipient:G}});let L=await Y(q),R=_||(await L.getFeeRates())[F||E.Fast],B=q===j.BitcoinCash?L.buildTx:L.createTransaction,{psbt:Q,inputs:U}=await B({...A,memo:I,recipient:G,feeRate:R,sender:D,fetchTxHex:!0}),z=await k(Q,U,I);return await L.broadcastTx(z)};return{...await Y(q),address:D,transfer:O,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:K.TREZOR}})}}var v=y({name:"connectTrezor",walletType:K.TREZOR,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Bitcoin,j.BitcoinCash,j.Dash,j.Dogecoin,j.Ethereum,j.Litecoin,j.Optimism,j.Polygon],connect:({addChain:q,supportedChains:X,walletType:H})=>async function Y(Z,$){let[J]=b({chains:Z,supportedChains:X,walletType:H});if(!J)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:J,wallet:K.TREZOR}});let D=(await import("@trezor/connect-web")).default,{success:k}=await D.getDeviceState();if(!k){let W=S.get("integrations").trezor,G=W?{...W,appName:W.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};D.init({lazyLoad:!0,manifest:G})}let O=await g({chain:J,derivationPath:$});return q({...O,chain:J,walletType:H}),!0}}),C=f(v);export{v as trezorWallet,C as TREZOR_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=A43C365DB73A7F2B64756E2164756E21
3
+ //# debugId=C709440C56578CE864756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/trezor/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const manifest = SKConfig.get(\"integrations\").trezor || { appUrl: \"\", email: \"\" };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
5
+ "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const trezorConfig = SKConfig.get(\"integrations\").trezor;\n const manifest = trezorConfig\n ? {\n ...trezorConfig,\n appName: (trezorConfig as any).appName || \"SwapKit\",\n }\n : {\n appUrl: \"\",\n email: \"\",\n appName: \"SwapKit\",\n };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "A43C365DB73A7F2B64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "C709440C56578CE864756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var er={};br(er,{walletconnectWallet:()=>Ir,WC_SUPPORTED_CHAINS:()=>qr,THORCHAIN_MAINNET_ID:()=>K,POLYGON_MAINNET_ID:()=>L,OPTIMISM_MAINNET_ID:()=>l,MAYACHAIN_MAINNET_ID:()=>F,KUJIRA_MAINNET_ID:()=>A,ETHEREUM_MAINNET_ID:()=>_,DEFAULT_SOLANA_METHODS:()=>e,DEFAULT_SOLANA_EVENTS:()=>k,DEFAULT_RELAY_URL:()=>n,DEFAULT_POLKADOT_METHODS:()=>m,DEFAULT_POLKADOT_EVENTS:()=>M,DEFAULT_NEAR_METHODS:()=>W,DEFAULT_NEAR_EVENTS:()=>a,DEFAULT_LOGGER:()=>T,DEFAULT_EIP_155_EVENTS:()=>V,DEFAULT_EIP155_METHODS:()=>Q,DEFAULT_COSMOS_METHODS:()=>X,DEFAULT_COSMOS_EVENTS:()=>ur,DEFAULT_APP_METADATA:()=>D,COSMOS_HUB_MAINNET_ID:()=>H,BSC_MAINNET_ID:()=>c,BASE_MAINNET_ID:()=>o,AVALANCHE_MAINNET_ID:()=>U,ARBITRUM_ONE_MAINNET_ID:()=>O});module.exports=$r(er);var r=require("@swapkit/helpers");var n="wss://relay.walletconnect.com",_="eip155:1",c="eip155:56",U="eip155:43114",K="cosmos:thorchain",H="cosmos:cosmoshub-4",A="cosmos:kaiyo-1",F="cosmos:mayachain-mainnet-v1",O="eip155:42161",l="eip155:10",L="eip155:137",o="eip155:8453",T="debug",D={name:"THORSwap",description:"THORSwap multi-chain dex aggregator powered by THORChain",url:"https://app.thorswap.finance/",icons:["https://static.thorswap.net/logo.png"]},Q;((t)=>{t.ETH_SEND_TRANSACTION="eth_sendTransaction";t.ETH_SIGN="eth_sign";t.PERSONAL_SIGN="personal_sign";t.ETH_SIGN_TYPED_DATA="eth_signTypedData"})(Q||={});var V;((u)=>{u.ETH_CHAIN_CHANGED="chainChanged";u.ETH_ACCOUNTS_CHANGED="accountsChanged"})(V||={});var X;((p)=>{p.COSMOS_SIGN_DIRECT="cosmos_signDirect";p.COSMOS_SIGN_AMINO="cosmos_signAmino";p.COSMOS_GET_ACCOUNTS="cosmos_getAccounts"})(X||={});var ur;((s)=>{})(ur||={});var e;((u)=>{u.SOL_SIGN_TRANSACTION="solana_signTransaction";u.SOL_SIGN_MESSAGE="solana_signMessage"})(e||={});var k;((s)=>{})(k||={});var m;((u)=>{u.POLKADOT_SIGN_TRANSACTION="polkadot_signTransaction";u.POLKADOT_SIGN_MESSAGE="polkadot_signMessage"})(m||={});var M;((s)=>{})(M||={});var W;((I)=>{I.NEAR_SIGN_IN="near_signIn";I.NEAR_SIGN_OUT="near_signOut";I.NEAR_GET_ACCOUNTS="near_getAccounts";I.NEAR_SIGN_AND_SEND_TRANSACTION="near_signAndSendTransaction";I.NEAR_SIGN_AND_SEND_TRANSACTIONS="near_signAndSendTransactions"})(W||={});var a;((s)=>{})(a||={});var Z=require("@swapkit/helpers"),Nr=require("ethers");var j=require("@swapkit/helpers");var w=(s,N)=>{return(N.find((t)=>t.startsWith(z(s)))||"")?.split(":")?.[2]||""},z=(s)=>{switch(s){case j.Chain.Avalanche:return U;case j.Chain.Base:return o;case j.Chain.BinanceSmartChain:return c;case j.Chain.Ethereum:return _;case j.Chain.THORChain:return K;case j.Chain.Arbitrum:return O;case j.Chain.Optimism:return l;case j.Chain.Polygon:return L;case j.Chain.Maya:return F;case j.Chain.Cosmos:return H;case j.Chain.Kujira:return A;default:return""}};class E extends Nr.AbstractSigner{address;chain;walletconnect;provider;constructor({chain:s,provider:N,walletconnect:u}){super(N);this.chain=s,this.walletconnect=u,this.provider=N,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new Z.SwapKitError("wallet_walletconnect_connection_not_established");if(!this.address)this.address=w(this.chain,this.walletconnect.accounts);return this.address};signMessage=async(s)=>{let N=await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sign",params:[s]}});return N.startsWith("0x")?N:`0x${N}`};signTransaction=()=>{throw new Error("Not implemented: signTransaction")};signTypedData=()=>{throw new Error("Not implemented: signTypedData")};sendTransaction=async({from:s,to:N,value:u,data:p})=>{let{toHexString:t}=await import("@swapkit/toolboxes/evm"),I={from:s,to:N,value:t(BigInt(u||0)),data:p};return await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[I]}})};connect=(s)=>{if(!s)throw new Z.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:Z.WalletOption.WALLETCONNECT,chain:this.chain}});return new E({chain:this.chain,walletconnect:this.walletconnect,provider:s})}}var pr=async({chain:s,walletconnect:N,provider:u})=>new E({chain:s,walletconnect:N,provider:u});var S=require("@swapkit/helpers");var Xr=(s)=>{let N=[];for(let u of s){let[p]=u.split(":");if(p&&!N.includes(p))N.push(p)}return N},Zr=(s)=>{switch(s){case"eip155":return Object.values(Q);case"cosmos":return Object.values(X);case"solana":return Object.values(e);case"polkadot":return Object.values(m);case"near":return Object.values(W);default:throw new S.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:s}})}},vr=(s)=>{switch(s){case"eip155":return Object.values(V);case"cosmos":return[];case"solana":return Object.values(k);case"polkadot":return Object.values(M);case"near":return Object.values(a);default:throw new S.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:s}})}},tr=(s)=>{let N=Xr(s);return Object.fromEntries(N.map((u)=>[u,{methods:Zr(u),chains:s.filter((p)=>p.startsWith(u)),events:vr(u)}]))};var Ir=r.createWallet({name:"connectWalletconnect",walletType:r.WalletOption.WALLETCONNECT,supportedChains:[r.Chain.Arbitrum,r.Chain.Avalanche,r.Chain.Base,r.Chain.BinanceSmartChain,r.Chain.Cosmos,r.Chain.Ethereum,r.Chain.Kujira,r.Chain.Maya,r.Chain.Optimism,r.Chain.Polygon,r.Chain.THORChain],connect:({addChain:s,supportedChains:N,walletType:u})=>async function p(t,I){let f=r.filterSupportedChains({chains:t,supportedChains:N,walletType:u}),{walletConnectProjectId:y}=r.SKConfig.get("apiKeys");if(!y)throw new r.SwapKitError("wallet_walletconnect_project_id_not_specified");let C=await Vr(f,y,I);if(!C)throw new r.SwapKitError("wallet_walletconnect_connection_not_established");let{session:G,accounts:v}=C;return await Promise.all(f.map(async(J)=>{let $=w(J,v),i=await Rr({session:G,address:$,chain:J,walletconnect:C});s({...i,address:$,chain:J,disconnect:C.disconnect,walletType:r.WalletOption.WALLETCONNECT})})),!0}}),qr=fr(Ir);async function Rr({chain:s,walletconnect:N,address:u,session:p}){switch(s){case r.Chain.Arbitrum:case r.Chain.Avalanche:case r.Chain.Base:case r.Chain.BinanceSmartChain:case r.Chain.Ethereum:case r.Chain.Optimism:case r.Chain.Polygon:{let{getProvider:t,getEvmToolbox:I}=await import("@swapkit/toolboxes/evm"),f=await t(s),y=await pr({walletconnect:N,chain:s,provider:f});return await I(s,{provider:f,signer:y})}case r.Chain.THORChain:{let{SignMode:t}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:f,makeAuthInfoBytes:y}=await import("@cosmjs/proto-signing"),{makeSignDoc:C}=await import("@cosmjs/amino"),{getCosmosToolbox:G,buildAminoMsg:v,buildEncodedTxBody:J,createStargateClient:$,fromBase64:i,getDefaultChainFee:jr,parseAminoMessageForDirectSigning:Cr}=await import("@swapkit/toolboxes/cosmos"),P=await G(r.Chain.THORChain);async function yr(h){let q=await P.getAccount(h);if(s!==r.Chain.THORChain)return q;let[{address:B,algo:x,pubkey:R}]=await N?.client.request({chainId:K,topic:p.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...q,address:B,pubkey:{type:x,value:R}}}let g=jr(s),hr=(h)=>N?.client.request({chainId:K,topic:p.topic,request:{method:"cosmos_signAmino",params:{signerAddress:u,signDoc:h}}});async function rr({assetValue:h,memo:b,...q}){let B=await P.getAccount(u);if(!B)throw new r.SwapKitError({errorKey:"wallet_missing_params",info:{account:B}});if(!B.pubkey)throw new r.SwapKitError({errorKey:"wallet_missing_params",info:{account:B,pubkey:B?.pubkey}});let{accountNumber:x,sequence:R=0}=B,sr=[v({assetValue:h,memo:b,sender:u,...q})],Br=r.ChainId.THORChain,Yr=C(sr,g,Br,b,x?.toString(),R?.toString()||"0"),d=await hr(Yr),Jr=await J({chain:r.Chain.THORChain,msgs:sr.map(Cr),memo:b||""}),Kr=f(B.pubkey),zr=y([{pubkey:Kr,sequence:R}],g.amount,Number.parseInt(g.gas),void 0,void 0,t.SIGN_MODE_LEGACY_AMINO_JSON),Gr=I.fromPartial({bodyBytes:Jr,authInfoBytes:zr,signatures:[i(typeof d.signature==="string"?d.signature:d.signature.signature)]}),Qr=I.encode(Gr).finish();return(await(await $(r.SKConfig.get("rpcUrls")[r.Chain.THORChain])).broadcastTx(Qr)).transactionHash}return{...P,transfer:(h)=>rr(h),deposit:(h)=>rr(h),getAccount:yr}}default:throw new r.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:s,wallet:r.WalletOption.WALLETCONNECT}})}}async function Vr(s,N,u){let p;try{if(!N)throw new r.SwapKitError("wallet_walletconnect_project_id_not_specified");let t=tr(s.map(z)),{WalletConnectModalSign:I}=await import("@walletconnect/modal-sign-html"),f=new I({logger:T,relayUrl:n,projectId:N,metadata:u?.metadata||D,...u?.core}),y=await f.getSession();if(y)await f.disconnect({topic:y.topic,reason:{code:0,message:"Resetting session"}});let C=await f.connect({requiredNamespaces:t}),G=Object.values(C.namespaces).flatMap((J)=>J.accounts);return{session:C,accounts:G,client:f,disconnect:async()=>{await f.disconnect({topic:C.topic,reason:{code:0,message:"User disconnected"}})}}}catch(t){console.error(t)}finally{if(p)p.closeModal()}return}
1
+ var r5={};E5(r5,{walletconnectWallet:()=>Z5,WC_SUPPORTED_CHAINS:()=>D5,THORCHAIN_MAINNET_ID:()=>k,POLYGON_MAINNET_ID:()=>s,OPTIMISM_MAINNET_ID:()=>l,NEAR_TESTNET_ID:()=>c,NEAR_MAINNET_ID:()=>e,MAYACHAIN_MAINNET_ID:()=>h,KUJIRA_MAINNET_ID:()=>d,ETHEREUM_MAINNET_ID:()=>g,DEFAULT_SOLANA_METHODS:()=>a,DEFAULT_SOLANA_EVENTS:()=>n,DEFAULT_RELAY_URL:()=>T,DEFAULT_POLKADOT_METHODS:()=>L5,DEFAULT_POLKADOT_EVENTS:()=>O5,DEFAULT_NEAR_METHODS:()=>j5,DEFAULT_NEAR_EVENTS:()=>F5,DEFAULT_LOGGER:()=>u,DEFAULT_EIP_155_EVENTS:()=>o,DEFAULT_EIP155_METHODS:()=>r,DEFAULT_COSMOS_METHODS:()=>H,DEFAULT_COSMOS_EVENTS:()=>_5,DEFAULT_APP_METADATA:()=>p5,COSMOS_HUB_MAINNET_ID:()=>C,BSC_MAINNET_ID:()=>A,BASE_MAINNET_ID:()=>t,AVALANCHE_MAINNET_ID:()=>N,ARBITRUM_ONE_MAINNET_ID:()=>I});module.exports=W5(r5);var L=require("@swapkit/helpers");var v=require("@swapkit/helpers"),z5=require("ethers");var U=require("@swapkit/helpers");var B=(O,j)=>{return(j.find((V)=>V.startsWith(Y(O)))||"")?.split(":")?.[2]||""},Y=(O)=>{switch(O){case U.Chain.Avalanche:return N;case U.Chain.Base:return t;case U.Chain.BinanceSmartChain:return A;case U.Chain.Ethereum:return g;case U.Chain.THORChain:return k;case U.Chain.Arbitrum:return I;case U.Chain.Optimism:return l;case U.Chain.Polygon:return s;case U.Chain.Maya:return h;case U.Chain.Cosmos:return C;case U.Chain.Kujira:return d;case U.Chain.Near:{let{isStagenet:j}=U.SKConfig.get("envs");return j?c:e}default:return""}};class i extends z5.AbstractSigner{address;chain;walletconnect;provider;constructor({chain:O,provider:j,walletconnect:F}){super(j);this.chain=O,this.walletconnect=F,this.provider=j,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new v.SwapKitError("wallet_walletconnect_connection_not_established");if(!this.address)this.address=B(this.chain,this.walletconnect.accounts||[]);return this.address};signMessage=async(O)=>{let j=await this.walletconnect?.client.request({chainId:Y(this.chain),topic:this.walletconnect.session.topic||"",request:{method:"eth_sign",params:[O]}});return j.startsWith("0x")?j:`0x${j}`};signTransaction=()=>{throw new v.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signTransaction"})};signTypedData=()=>{throw new v.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signTypedData"})};sendTransaction=async({from:O,to:j,value:F,data:f})=>{let{toHexString:V}=await import("@swapkit/toolboxes/evm"),p={from:O,to:j,value:V(BigInt(F||0)),data:f};return await this.walletconnect?.client.request({chainId:Y(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[p]}})};connect=(O)=>{if(!O)throw new v.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:v.WalletOption.WALLETCONNECT,chain:this.chain}});return new i({chain:this.chain,walletconnect:this.walletconnect,provider:O})}}var Q5=async({chain:O,walletconnect:j,provider:F})=>new i({chain:O,walletconnect:j,provider:F});var f5=require("@swapkit/helpers");var b5=(O)=>{let j=[];for(let F of O){let[f]=F.split(":");if(f&&!j.includes(f))j.push(f)}return j},k5=(O)=>{switch(O){case"eip155":return Object.values(r);case"cosmos":return Object.values(H);case"solana":return Object.values(a);case"polkadot":return Object.values(L5);case"near":return Object.values(j5);default:throw new f5.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:O}})}},P5=(O)=>{switch(O){case"eip155":return Object.values(o);case"cosmos":return[];case"solana":return Object.values(n);case"polkadot":return Object.values(O5);case"near":return Object.values(F5);default:throw new f5.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:O}})}},X5=(O)=>{let j=b5(O);return Object.fromEntries(j.map((F)=>[F,{methods:k5(F),chains:O.filter((f)=>f.startsWith(F)),events:P5(F)}]))};var Z5=L.createWallet({name:"connectWalletconnect",walletType:L.WalletOption.WALLETCONNECT,supportedChains:[L.Chain.Arbitrum,L.Chain.Avalanche,L.Chain.Base,L.Chain.BinanceSmartChain,L.Chain.Cosmos,L.Chain.Ethereum,L.Chain.Kujira,L.Chain.Maya,L.Chain.Near,L.Chain.Optimism,L.Chain.Polygon,L.Chain.THORChain],connect:({addChain:O,supportedChains:j,walletType:F})=>async function f(V,p){let Q=L.filterSupportedChains({chains:V,supportedChains:j,walletType:F}),{walletConnectProjectId:y}=L.SKConfig.get("apiKeys");if(!y)throw new L.SwapKitError("wallet_walletconnect_project_id_not_specified");let z=await B5(Q,y,p);if(!z)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");let{accounts:K}=z;return await Promise.all(Q.map(async(X)=>{let $=B(X,K||[]),q=await R5({address:$,chain:X,walletconnect:z});O({...q,address:$,chain:X,disconnect:z.disconnect,walletType:L.WalletOption.WALLETCONNECT})})),!0}}),D5=y5(Z5);async function R5({chain:O,walletconnect:j,address:F}){let f=j?.session;if(!f)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");switch(O){case L.Chain.Arbitrum:case L.Chain.Avalanche:case L.Chain.Base:case L.Chain.BinanceSmartChain:case L.Chain.Ethereum:case L.Chain.Optimism:case L.Chain.Polygon:{let{getProvider:V,getEvmToolbox:p}=await import("@swapkit/toolboxes/evm"),Q=await V(O),y=await Q5({walletconnect:j,chain:O,provider:Q});return await p(O,{provider:Q,signer:y})}case L.Chain.THORChain:{let{SignMode:V}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:p}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:Q,makeAuthInfoBytes:y}=(await import("@cosmjs/proto-signing")).default,{makeSignDoc:z}=(await import("@cosmjs/amino")).default,{getCosmosToolbox:K,buildAminoMsg:X,buildEncodedTxBody:$,createStargateClient:q,fromBase64:W,getDefaultChainFee:S,parseAminoMessageForDirectSigning:w}=await import("@swapkit/toolboxes/cosmos"),P=await K(L.Chain.THORChain);async function m(G){let D=await P.getAccount(G);if(O!==L.Chain.THORChain)return D;let[{address:J,algo:x,pubkey:R}]=await j?.client.request({chainId:k,topic:f.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...D,address:J,pubkey:{type:x,value:R}}}let b=S(O),U5=(G)=>j?.client.request({chainId:k,topic:f.topic,request:{method:"cosmos_signAmino",params:{signerAddress:F,signDoc:G}}});async function E({assetValue:G,memo:_,...D}){let J=await P.getAccount(F);if(!J)throw new L.SwapKitError({errorKey:"wallet_missing_params",info:{account:J}});if(!J.pubkey)throw new L.SwapKitError({errorKey:"wallet_missing_params",info:{account:J,pubkey:J?.pubkey}});let{accountNumber:x,sequence:R=0}=J,V5=[X({assetValue:G,memo:_,sender:F,...D})],G5=L.ChainId.THORChain,J5=z(V5,b,G5,_,x?.toString(),R?.toString()||"0"),M=await U5(J5),K5=await $({chain:L.Chain.THORChain,msgs:V5.map(w),memo:_||""}),$5=Q(J.pubkey),q5=y([{pubkey:$5,sequence:R}],b.amount,Number.parseInt(b.gas),void 0,void 0,V.SIGN_MODE_LEGACY_AMINO_JSON),Y5=p.fromPartial({bodyBytes:K5,authInfoBytes:q5,signatures:[W(typeof M.signature==="string"?M.signature:M.signature.signature)]}),v5=p.encode(Y5).finish();return(await(await q(L.SKConfig.get("rpcUrls")[L.Chain.THORChain])).broadcastTx(v5)).transactionHash}return{...P,transfer:(G)=>E(G),deposit:(G)=>E(G),getAccount:m}}case L.Chain.Near:{let{getNearToolbox:V}=await import("@swapkit/toolboxes/near"),{DEFAULT_NEAR_METHODS:p}=await import("../../chunk-sn6pgje5.js");return await V({signer:{getPublicKey(){return Promise.reject(new L.SwapKitError("wallet_walletconnect_method_not_supported",{method:"getPublicKey"}))},signNep413Message(z,K,X,$,q){return Promise.reject(new L.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signNep413Message"}))},async signTransaction(z){if(!j)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");let K=await j.client.request({topic:f.topic,chainId:Y(L.Chain.Near),request:{method:p.NEAR_SIGN_AND_SEND_TRANSACTION,params:{transaction:z}}});return[new Uint8Array(32),K]},signDelegateAction(z){return Promise.reject(new L.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signDelegateAction"}))},getAddress(){return Promise.resolve(F)}}})}default:throw new L.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:O,wallet:L.WalletOption.WALLETCONNECT}})}}async function B5(O,j,F){let f,V,p,Q;try{if(!j)throw new L.SwapKitError("wallet_walletconnect_project_id_not_specified");let y=X5(O.map(Y)),{SignClient:z}=await import("@walletconnect/sign-client"),{WalletConnectModal:K}=await import("@walletconnect/modal"),X=new z({logger:u,relayUrl:T,projectId:j,metadata:F?.metadata||p5,...F?.core}),$=new K({logger:u,relayUrl:T,projectId:j,...F?.core}),q=await X.session.getAll()[0];if(q)await X.disconnect({topic:q.topic,reason:{code:0,message:"Resetting session"}});let{uri:W,approval:S}=await X.connect({requiredNamespaces:y});if(W){let P=function(m){let b=[];for(let[U5,E]of Object.entries(m.namespaces))b.push(...E.accounts);return b};$.openModal({uri:W}),p=await S(),$.closeModal(),Q=P(p)}let w=async()=>{p&&await X.disconnect({topic:p.topic,reason:{code:0,message:"User disconnected"}})};if(!p)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");return{signer:V,session:p,accounts:Q,client:X,disconnect:w}}catch(y){}finally{if(f)f.closeModal()}return}
2
2
 
3
- //# debugId=A2308A088BB2A60564756E2164756E21
3
+ //# debugId=F95BFF13A64F6C0864756E2164756E21
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/walletconnect/index.ts", "../src/walletconnect/constants.ts", "../src/walletconnect/evmSigner.ts", "../src/walletconnect/helpers.ts", "../src/walletconnect/namespaces.ts"],
3
+ "sources": ["../src/walletconnect/index.ts", "../src/walletconnect/evmSigner.ts", "../src/walletconnect/helpers.ts", "../src/walletconnect/namespaces.ts"],
4
4
  "sourcesContent": [
5
- "import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams, createThorchainToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { WalletConnectModalSign } from \"@walletconnect/modal-sign-html\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { session, accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts);\n const toolbox = await getToolbox({ session, address, chain, walletconnect });\n\n addChain({\n ...toolbox,\n address,\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n session,\n}: {\n walletconnect: Walletconnect;\n session: SessionTypes.Struct;\n chain: T;\n address: string;\n}) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\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\");\n const { makeSignDoc } = await import(\"@cosmjs/amino\");\n const {\n getCosmosToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n\n async function getAccount(accountAddress: string) {\n const cosmosToolbox = toolbox;\n const account = await (\n cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>\n ).getAccount(accountAddress);\n\n if (chain !== Chain.THORChain) {\n return account;\n }\n\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: GenericTransferParams | ThorchainDepositParams) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: GenericTransferParams) => thorchainTransfer(params),\n deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),\n getAccount,\n };\n }\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModalSign | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { WalletConnectModalSign } = await import(\"@walletconnect/modal-sign-html\");\n\n const client = new WalletConnectModalSign({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.getSession();\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const session = await client.connect({ requiredNamespaces });\n\n const accounts = Object.values(session.namespaces).flatMap(\n (namespace: any) => namespace.accounts,\n );\n\n const disconnect = async () => {\n await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n });\n };\n\n return { session, accounts, client, disconnect };\n } catch (e) {\n console.error(e);\n } finally {\n if (modal) {\n // @ts-expect-error wrong typing\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
6
- "import type { ClientMetadata } from \"./types\";\n\nexport const DEFAULT_RELAY_URL = \"wss://relay.walletconnect.com\";\n\nexport const ETHEREUM_MAINNET_ID = \"eip155:1\";\nexport const BSC_MAINNET_ID = \"eip155:56\";\nexport const AVALANCHE_MAINNET_ID = \"eip155:43114\";\nexport const THORCHAIN_MAINNET_ID = \"cosmos:thorchain\";\nexport const COSMOS_HUB_MAINNET_ID = \"cosmos:cosmoshub-4\";\nexport const KUJIRA_MAINNET_ID = \"cosmos:kaiyo-1\";\nexport const MAYACHAIN_MAINNET_ID = \"cosmos:mayachain-mainnet-v1\";\nexport const ARBITRUM_ONE_MAINNET_ID = \"eip155:42161\";\nexport const OPTIMISM_MAINNET_ID = \"eip155:10\";\nexport const POLYGON_MAINNET_ID = \"eip155:137\";\nexport const BASE_MAINNET_ID = \"eip155:8453\";\n\nexport const DEFAULT_LOGGER = \"debug\";\n\nexport const DEFAULT_APP_METADATA: ClientMetadata = {\n name: \"THORSwap\",\n description: \"THORSwap multi-chain dex aggregator powered by THORChain\",\n url: \"https://app.thorswap.finance/\",\n icons: [\"https://static.thorswap.net/logo.png\"],\n};\n\n/**\n * EIP155\n */\nexport enum DEFAULT_EIP155_METHODS {\n ETH_SEND_TRANSACTION = \"eth_sendTransaction\",\n // not supported by most WC wallets\n // ETH_SIGN_TRANSACTION = 'eth_signTransaction',\n ETH_SIGN = \"eth_sign\",\n PERSONAL_SIGN = \"personal_sign\",\n ETH_SIGN_TYPED_DATA = \"eth_signTypedData\",\n}\n\nexport enum DEFAULT_EIP_155_EVENTS {\n ETH_CHAIN_CHANGED = \"chainChanged\",\n ETH_ACCOUNTS_CHANGED = \"accountsChanged\",\n}\n\n/**\n * COSMOS\n */\nexport enum DEFAULT_COSMOS_METHODS {\n COSMOS_SIGN_DIRECT = \"cosmos_signDirect\",\n COSMOS_SIGN_AMINO = \"cosmos_signAmino\",\n COSMOS_GET_ACCOUNTS = \"cosmos_getAccounts\",\n}\n\nexport enum DEFAULT_COSMOS_EVENTS {}\n\n/**\n * SOLANA\n */\nexport enum DEFAULT_SOLANA_METHODS {\n SOL_SIGN_TRANSACTION = \"solana_signTransaction\",\n SOL_SIGN_MESSAGE = \"solana_signMessage\",\n}\n\nexport enum DEFAULT_SOLANA_EVENTS {}\n\n/**\n * POLKADOT\n */\nexport enum DEFAULT_POLKADOT_METHODS {\n POLKADOT_SIGN_TRANSACTION = \"polkadot_signTransaction\",\n POLKADOT_SIGN_MESSAGE = \"polkadot_signMessage\",\n}\n\nexport enum DEFAULT_POLKADOT_EVENTS {}\n\n/**\n * NEAR\n */\nexport enum DEFAULT_NEAR_METHODS {\n NEAR_SIGN_IN = \"near_signIn\",\n NEAR_SIGN_OUT = \"near_signOut\",\n NEAR_GET_ACCOUNTS = \"near_getAccounts\",\n NEAR_SIGN_AND_SEND_TRANSACTION = \"near_signAndSendTransaction\",\n NEAR_SIGN_AND_SEND_TRANSACTIONS = \"near_signAndSendTransactions\",\n}\n\nexport enum DEFAULT_NEAR_EVENTS {}\n",
7
- "import { type EVMChain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { DEFAULT_EIP155_METHODS } from \"./constants\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport type { Walletconnect } from \"./index\";\n\ninterface WalletconnectEVMSignerParams {\n chain: EVMChain;\n walletconnect: Walletconnect;\n provider: Provider | JsonRpcProvider;\n}\n\nclass WalletconnectSigner extends AbstractSigner {\n address: string;\n\n private chain: EVMChain;\n private walletconnect: Walletconnect;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, provider, walletconnect }: WalletconnectEVMSignerParams) {\n super(provider);\n this.chain = chain;\n this.walletconnect = walletconnect;\n this.provider = provider;\n this.address = \"\";\n }\n\n // biome-ignore lint/suspicious/useAwait: fulfil implementation type\n getAddress = async () => {\n if (!this.walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n if (!this.address) {\n this.address = getAddressByChain(this.chain, this.walletconnect.accounts);\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n // this is probably broken\n const txHash = (await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SIGN,\n params: [message],\n },\n })) as string;\n\n return txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`;\n };\n\n signTransaction = () => {\n throw new Error(\"Not implemented: signTransaction\");\n\n // const baseTx = {\n // from,\n // to,\n // value: BigNumber.from(value || 0).toHexString(),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TRANSACTION,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n // ANCHOR (@Towan) - Implement in future\n signTypedData = () => {\n throw new Error(\"Not implemented: signTypedData\");\n\n // const { toHexString } = await import('@swapkit/toolboxes/evm');\n\n // const baseTx = {\n // from,\n // to,\n // value: toHexString(value || 0n),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TYPED_DATA,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n sendTransaction = async ({ from, to, value, data }: TransactionRequest) => {\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const baseTx = {\n from,\n to,\n value: toHexString(BigInt(value || 0)),\n data,\n };\n const response = await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SEND_TRANSACTION,\n params: [baseTx],\n },\n });\n\n return response as TransactionResponse;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.WALLETCONNECT, chain: this.chain },\n });\n }\n\n return new WalletconnectSigner({\n chain: this.chain,\n walletconnect: this.walletconnect,\n provider,\n });\n };\n}\nexport const getEVMSigner = async ({\n chain,\n walletconnect,\n provider,\n}: WalletconnectEVMSignerParams) => new WalletconnectSigner({ chain, walletconnect, provider });\n",
8
- "import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n AVALANCHE_MAINNET_ID,\n BASE_MAINNET_ID,\n BSC_MAINNET_ID,\n COSMOS_HUB_MAINNET_ID,\n ETHEREUM_MAINNET_ID,\n KUJIRA_MAINNET_ID,\n MAYACHAIN_MAINNET_ID,\n OPTIMISM_MAINNET_ID,\n POLYGON_MAINNET_ID,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\n\nexport const getAddressByChain = (\n chain: EVMChain | Chain.THORChain | Chain.Maya | Chain.Kujira | Chain.Cosmos,\n accounts: string[],\n) => {\n const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || \"\";\n const address = account?.split(\":\")?.[2];\n\n return address || \"\";\n};\n\nexport const chainToChainId = (chain: Chain) => {\n switch (chain) {\n case Chain.Avalanche:\n return AVALANCHE_MAINNET_ID;\n case Chain.Base:\n return BASE_MAINNET_ID;\n case Chain.BinanceSmartChain:\n return BSC_MAINNET_ID;\n case Chain.Ethereum:\n return ETHEREUM_MAINNET_ID;\n case Chain.THORChain:\n return THORCHAIN_MAINNET_ID;\n case Chain.Arbitrum:\n return ARBITRUM_ONE_MAINNET_ID;\n case Chain.Optimism:\n return OPTIMISM_MAINNET_ID;\n case Chain.Polygon:\n return POLYGON_MAINNET_ID;\n case Chain.Maya:\n return MAYACHAIN_MAINNET_ID;\n case Chain.Cosmos:\n return COSMOS_HUB_MAINNET_ID;\n case Chain.Kujira:\n return KUJIRA_MAINNET_ID;\n default:\n return \"\";\n }\n};\n",
5
+ "import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams, createThorchainToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { NearSigner } from \"@swapkit/toolboxes/near\";\nimport type { WalletConnectModal } from \"@walletconnect/modal\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\nimport type { Transaction } from \"near-api-js/lib/transaction\";\n\nimport type { SignClient } from \"@walletconnect/sign-client\";\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts || []);\n const toolbox = await getToolbox({ address, chain, walletconnect });\n\n addChain({\n ...toolbox,\n address,\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n}: {\n walletconnect: Walletconnect;\n chain: T;\n address: string;\n}) {\n const session = walletconnect?.session;\n if (!session) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\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 { makeSignDoc } = (await import(\"@cosmjs/amino\")).default;\n const {\n getCosmosToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n\n async function getAccount(accountAddress: string) {\n const cosmosToolbox = toolbox;\n const account = await (\n cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>\n ).getAccount(accountAddress);\n\n if (chain !== Chain.THORChain) {\n return account;\n }\n\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n // @ts-ignore\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: GenericTransferParams | ThorchainDepositParams) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: GenericTransferParams) => thorchainTransfer(params),\n deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),\n getAccount,\n };\n }\n\n case Chain.Near: {\n const { getNearToolbox } = await import(\"@swapkit/toolboxes/near\");\n const { DEFAULT_NEAR_METHODS } = await import(\"./constants\");\n\n // Create a NEAR signer that uses WalletConnect\n const signer = {\n getPublicKey() {\n // WalletConnect NEAR doesn't expose public key directly\n return Promise.reject(\n new SwapKitError(\"wallet_walletconnect_method_not_supported\", {\n method: \"getPublicKey\",\n }),\n );\n },\n\n signNep413Message(\n _message: string,\n _accountId: string,\n _recipient: string,\n _nonce: Uint8Array,\n _callbackUrl?: string,\n ) {\n // WalletConnect NEAR spec doesn't include NEP-413 message signing\n return Promise.reject(\n new SwapKitError(\"wallet_walletconnect_method_not_supported\", {\n method: \"signNep413Message\",\n }),\n );\n },\n\n async signTransaction(transaction: Transaction) {\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n // WalletConnect signs and sends in one operation\n const result = await walletconnect.client.request({\n topic: session.topic,\n chainId: chainToChainId(Chain.Near),\n request: {\n method: DEFAULT_NEAR_METHODS.NEAR_SIGN_AND_SEND_TRANSACTION,\n params: { transaction },\n },\n });\n // Return dummy hash and result\n return [new Uint8Array(32), result];\n },\n\n signDelegateAction(_delegateAction: any) {\n return Promise.reject(\n new SwapKitError(\"wallet_walletconnect_method_not_supported\", {\n method: \"signDelegateAction\",\n }),\n );\n },\n\n getAddress() {\n return Promise.resolve(address);\n },\n } as NearSigner;\n\n const toolbox = await getNearToolbox({ signer });\n return toolbox;\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModal | undefined;\n let signer: typeof SignClient | undefined;\n let session: SessionTypes.Struct | undefined;\n let accounts: string[] | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { SignClient } = await import(\"@walletconnect/sign-client\");\n const { WalletConnectModal } = await import(\"@walletconnect/modal\");\n\n const client = new SignClient({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const modal = new WalletConnectModal({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.session.getAll()[0];\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const { uri, approval } = await client.connect({\n // Optionally: pass a known prior pairing (e.g. from `client.core.pairing.getPairings()`) to skip the `uri` step.\n // pairingTopic: pairing?.topic,\n // Provide the namespaces and chains (e.g. `eip155` for EVM-based chains) we want to use in this session.\n requiredNamespaces,\n });\n\n if (uri) {\n modal.openModal({ uri });\n // Await session approval from the wallet.\n session = await approval();\n // Handle the returned session (e.g. update UI to \"connected\" state).\n // Close the QRCode modal in case it was open.\n modal.closeModal();\n\n function extractAccountsFromSession(session: SessionTypes.Struct) {\n const accounts: string[] = [];\n\n for (const [_namespace, data] of Object.entries(session.namespaces)) {\n accounts.push(...data.accounts);\n }\n\n return accounts;\n }\n\n accounts = extractAccountsFromSession(session);\n }\n\n const disconnect = async () => {\n session &&\n (await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n }));\n };\n\n if (!session) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n return { signer, session, accounts, client, disconnect };\n } catch (_e) {\n // Errors are handled by returning undefined\n } finally {\n if (modal) {\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
6
+ "import { type EVMChain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { DEFAULT_EIP155_METHODS } from \"./constants\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport type { Walletconnect } from \"./index\";\n\ninterface WalletconnectEVMSignerParams {\n chain: EVMChain;\n walletconnect: Walletconnect;\n provider: Provider | JsonRpcProvider;\n}\n\nclass WalletconnectSigner extends AbstractSigner {\n address: string;\n\n private chain: EVMChain;\n private walletconnect: Walletconnect;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, provider, walletconnect }: WalletconnectEVMSignerParams) {\n super(provider);\n this.chain = chain;\n this.walletconnect = walletconnect;\n this.provider = provider;\n this.address = \"\";\n }\n\n // biome-ignore lint/suspicious/useAwait: fulfil implementation type\n getAddress = async () => {\n if (!this.walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n if (!this.address) {\n this.address = getAddressByChain(this.chain, this.walletconnect.accounts || []);\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n // this is probably broken\n const txHash = (await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic || \"\",\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SIGN,\n params: [message],\n },\n })) as string;\n\n return txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`;\n };\n\n signTransaction = () => {\n throw new SwapKitError(\"wallet_walletconnect_method_not_supported\", {\n method: \"signTransaction\",\n });\n\n // const baseTx = {\n // from,\n // to,\n // value: BigNumber.from(value || 0).toHexString(),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TRANSACTION,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n // ANCHOR (@Towan) - Implement in future\n signTypedData = () => {\n throw new SwapKitError(\"wallet_walletconnect_method_not_supported\", {\n method: \"signTypedData\",\n });\n\n // const { toHexString } = await import('@swapkit/toolboxes/evm');\n\n // const baseTx = {\n // from,\n // to,\n // value: toHexString(value || 0n),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TYPED_DATA,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n sendTransaction = async ({ from, to, value, data }: TransactionRequest) => {\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const baseTx = {\n from,\n to,\n value: toHexString(BigInt(value || 0)),\n data,\n };\n const response = await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SEND_TRANSACTION,\n params: [baseTx],\n },\n });\n\n return response as TransactionResponse;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.WALLETCONNECT, chain: this.chain },\n });\n }\n\n return new WalletconnectSigner({\n chain: this.chain,\n walletconnect: this.walletconnect,\n provider,\n });\n };\n}\nexport const getEVMSigner = async ({\n chain,\n walletconnect,\n provider,\n}: WalletconnectEVMSignerParams) => new WalletconnectSigner({ chain, walletconnect, provider });\n",
7
+ "import { Chain, type EVMChain, SKConfig } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n AVALANCHE_MAINNET_ID,\n BASE_MAINNET_ID,\n BSC_MAINNET_ID,\n COSMOS_HUB_MAINNET_ID,\n ETHEREUM_MAINNET_ID,\n KUJIRA_MAINNET_ID,\n MAYACHAIN_MAINNET_ID,\n NEAR_MAINNET_ID,\n NEAR_TESTNET_ID,\n OPTIMISM_MAINNET_ID,\n POLYGON_MAINNET_ID,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\n\nexport const getAddressByChain = (\n chain: EVMChain | Chain.THORChain | Chain.Maya | Chain.Kujira | Chain.Cosmos | Chain.Near,\n accounts: string[],\n) => {\n const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || \"\";\n const address = account?.split(\":\")?.[2];\n\n return address || \"\";\n};\n\nexport const chainToChainId = (chain: Chain) => {\n switch (chain) {\n case Chain.Avalanche:\n return AVALANCHE_MAINNET_ID;\n case Chain.Base:\n return BASE_MAINNET_ID;\n case Chain.BinanceSmartChain:\n return BSC_MAINNET_ID;\n case Chain.Ethereum:\n return ETHEREUM_MAINNET_ID;\n case Chain.THORChain:\n return THORCHAIN_MAINNET_ID;\n case Chain.Arbitrum:\n return ARBITRUM_ONE_MAINNET_ID;\n case Chain.Optimism:\n return OPTIMISM_MAINNET_ID;\n case Chain.Polygon:\n return POLYGON_MAINNET_ID;\n case Chain.Maya:\n return MAYACHAIN_MAINNET_ID;\n case Chain.Cosmos:\n return COSMOS_HUB_MAINNET_ID;\n case Chain.Kujira:\n return KUJIRA_MAINNET_ID;\n case Chain.Near: {\n // Use testnet if stagenet is enabled\n const { isStagenet } = SKConfig.get(\"envs\");\n return isStagenet ? NEAR_TESTNET_ID : NEAR_MAINNET_ID;\n }\n default:\n return \"\";\n }\n};\n",
9
8
  "import type { ProposalTypes } from \"@walletconnect/types\";\n\nimport { SwapKitError } from \"@swapkit/helpers\";\nimport {\n DEFAULT_COSMOS_METHODS,\n DEFAULT_EIP155_METHODS,\n DEFAULT_EIP_155_EVENTS,\n DEFAULT_NEAR_EVENTS,\n DEFAULT_NEAR_METHODS,\n DEFAULT_POLKADOT_EVENTS,\n DEFAULT_POLKADOT_METHODS,\n DEFAULT_SOLANA_EVENTS,\n DEFAULT_SOLANA_METHODS,\n} from \"./constants\";\n\nexport const getNamespacesFromChains = (chains: string[]) => {\n const supportedNamespaces: string[] = [];\n for (const chainId of chains) {\n const [namespace] = chainId.split(\":\");\n if (namespace && !supportedNamespaces.includes(namespace)) {\n supportedNamespaces.push(namespace);\n }\n }\n\n return supportedNamespaces;\n};\n\nexport const getSupportedMethodsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP155_METHODS);\n case \"cosmos\":\n return Object.values(DEFAULT_COSMOS_METHODS);\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_METHODS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_METHODS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_METHODS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getSupportedEventsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP_155_EVENTS);\n case \"cosmos\":\n return [];\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_EVENTS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_EVENTS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_EVENTS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getRequiredNamespaces = (chains: string[]): ProposalTypes.RequiredNamespaces => {\n const selectedNamespaces = getNamespacesFromChains(chains);\n\n return Object.fromEntries(\n selectedNamespaces.map((namespace) => [\n namespace,\n {\n methods: getSupportedMethodsByNamespace(namespace),\n chains: chains.filter((chain) => chain.startsWith(namespace)),\n events: getSupportedEventsByNamespace(namespace) as any[],\n },\n ]),\n );\n};\n"
10
9
  ],
11
- "mappings": "iuBAUO,IATP,8BCCO,IAAM,EAAoB,gCAEpB,EAAsB,WACtB,EAAiB,YACjB,EAAuB,eACvB,EAAuB,mBACvB,EAAwB,qBACxB,EAAoB,iBACpB,EAAuB,8BACvB,EAA0B,eAC1B,EAAsB,YACtB,EAAqB,aACrB,EAAkB,cAElB,EAAiB,QAEjB,EAAuC,CAClD,KAAM,WACN,YAAa,2DACb,IAAK,gCACL,MAAO,CAAC,sCAAsC,CAChD,EAKY,GAAL,CAAK,IAAL,CACL,uBAAuB,sBAGvB,WAAW,WACX,gBAAgB,gBAChB,sBAAsB,sBANZ,QASL,IAAK,GAAL,CAAK,IAAL,CACL,oBAAoB,eACpB,uBAAuB,oBAFb,QAQL,IAAK,GAAL,CAAK,IAAL,CACL,qBAAqB,oBACrB,oBAAoB,mBACpB,sBAAsB,uBAHZ,QAML,IAAK,IAAL,CAAK,IAAL,IAAK,SAKL,IAAK,GAAL,CAAK,IAAL,CACL,uBAAuB,yBACvB,mBAAmB,uBAFT,QAKL,IAAK,GAAL,CAAK,IAAL,IAAK,QAKL,IAAK,GAAL,CAAK,IAAL,CACL,4BAA4B,2BAC5B,wBAAwB,yBAFd,QAKL,IAAK,GAAL,CAAK,IAAL,IAAK,QAKL,IAAK,GAAL,CAAK,IAAL,CACL,eAAe,cACf,gBAAgB,eAChB,oBAAoB,mBACpB,iCAAiC,8BACjC,kCAAkC,iCALxB,QAQL,IAAK,GAAL,CAAK,IAAL,IAAK,QCpF8C,IAA1D,8BAEA,qBCFqC,IAArC,8BAgBO,IAAM,EAAoB,CAC/B,EACA,IACG,CAIH,OAHgB,EAAS,KAAK,CAAC,IAAY,EAAQ,WAAW,EAAe,CAAK,CAAC,CAAC,GAAK,KAChE,MAAM,GAAG,IAAI,IAEpB,IAGP,EAAiB,CAAC,IAAiB,CAC9C,OAAQ,QACD,QAAM,UACT,OAAO,OACJ,QAAM,KACT,OAAO,OACJ,QAAM,kBACT,OAAO,OACJ,QAAM,SACT,OAAO,OACJ,QAAM,UACT,OAAO,OACJ,QAAM,SACT,OAAO,OACJ,QAAM,SACT,OAAO,OACJ,QAAM,QACT,OAAO,OACJ,QAAM,KACT,OAAO,OACJ,QAAM,OACT,OAAO,OACJ,QAAM,OACT,OAAO,UAEP,MAAO,KDrCb,MAAM,UAA4B,iBAAe,CAC/C,QAEQ,MACA,cACC,SAET,WAAW,EAAG,QAAO,WAAU,iBAA+C,CAC5E,MAAM,CAAQ,EACd,KAAK,MAAQ,EACb,KAAK,cAAgB,EACrB,KAAK,SAAW,EAChB,KAAK,QAAU,GAIjB,WAAa,SAAY,CACvB,IAAK,KAAK,cACR,MAAM,IAAI,eAAa,iDAAiD,EAE1E,IAAK,KAAK,QACR,KAAK,QAAU,EAAkB,KAAK,MAAO,KAAK,cAAc,QAAQ,EAG1E,OAAO,KAAK,SAGd,YAAc,MAAO,IAAoB,CAEvC,IAAM,EAAU,MAAM,KAAK,eAAe,OAAO,QAAQ,CACvD,QAAS,EAAe,KAAK,KAAK,EAClC,MAAO,KAAK,cAAc,QAAQ,MAClC,QAAS,CACP,kBACA,OAAQ,CAAC,CAAO,CAClB,CACF,CAAC,EAED,OAAO,EAAO,WAAW,IAAI,EAAI,EAAS,KAAK,KAGjD,gBAAkB,IAAM,CACtB,MAAM,IAAI,MAAM,kCAAkC,GAsBpD,cAAgB,IAAM,CACpB,MAAM,IAAI,MAAM,gCAAgC,GAuBlD,gBAAkB,OAAS,OAAM,KAAI,QAAO,UAA+B,CACzE,IAAQ,eAAgB,KAAa,kCAE/B,EAAS,CACb,OACA,KACA,MAAO,EAAY,OAAO,GAAS,CAAC,CAAC,EACrC,MACF,EAUA,OATiB,MAAM,KAAK,eAAe,OAAO,QAAQ,CACxD,QAAS,EAAe,KAAK,KAAK,EAClC,MAAO,KAAK,cAAc,QAAQ,MAClC,QAAS,CACP,6BACA,OAAQ,CAAC,CAAM,CACjB,CACF,CAAC,GAKH,QAAU,CAAC,IAA8B,CACvC,IAAK,EACH,MAAM,IAAI,eAAa,CACrB,SAAU,4BACV,KAAM,CAAE,OAAQ,eAAa,cAAe,MAAO,KAAK,KAAM,CAChE,CAAC,EAGH,OAAO,IAAI,EAAoB,CAC7B,MAAO,KAAK,MACZ,cAAe,KAAK,cACpB,UACF,CAAC,EAEL,CACO,IAAM,GAAe,OAC1B,QACA,gBACA,cACkC,IAAI,EAAoB,CAAE,QAAO,gBAAe,UAAS,CAAC,EE5IjE,IAA7B,8BAaO,IAAM,GAA0B,CAAC,IAAqB,CAC3D,IAAM,EAAgC,CAAC,EACvC,QAAW,KAAW,EAAQ,CAC5B,IAAO,GAAa,EAAQ,MAAM,GAAG,EACrC,GAAI,IAAc,EAAoB,SAAS,CAAS,EACtD,EAAoB,KAAK,CAAS,EAItC,OAAO,GAGI,GAAiC,CAAC,IAAsB,CACnE,OAAQ,OACD,SACH,OAAO,OAAO,OAAO,CAAsB,MACxC,SACH,OAAO,OAAO,OAAO,CAAsB,MACxC,SACH,OAAO,OAAO,OAAO,CAAsB,MACxC,WACH,OAAO,OAAO,OAAO,CAAwB,MAC1C,OACH,OAAO,OAAO,OAAO,CAAoB,UAEzC,MAAM,IAAI,eAAa,CACrB,SAAU,+CACV,KAAM,CAAE,WAAU,CACpB,CAAC,IAIM,GAAgC,CAAC,IAAsB,CAClE,OAAQ,OACD,SACH,OAAO,OAAO,OAAO,CAAsB,MACxC,SACH,MAAO,CAAC,MACL,SACH,OAAO,OAAO,OAAO,CAAqB,MACvC,WACH,OAAO,OAAO,OAAO,CAAuB,MACzC,OACH,OAAO,OAAO,OAAO,CAAmB,UAExC,MAAM,IAAI,eAAa,CACrB,SAAU,+CACV,KAAM,CAAE,WAAU,CACpB,CAAC,IAIM,GAAwB,CAAC,IAAuD,CAC3F,IAAM,EAAqB,GAAwB,CAAM,EAEzD,OAAO,OAAO,YACZ,EAAmB,IAAI,CAAC,IAAc,CACpC,EACA,CACE,QAAS,GAA+B,CAAS,EACjD,OAAQ,EAAO,OAAO,CAAC,IAAU,EAAM,WAAW,CAAS,CAAC,EAC5D,OAAQ,GAA8B,CAAS,CACjD,CACF,CAAC,CACH,GJjDK,IAAM,GAAsB,eAAa,CAC9C,KAAM,uBACN,WAAY,eAAa,cACzB,gBAAiB,CACf,QAAM,SACN,QAAM,UACN,QAAM,KACN,QAAM,kBACN,QAAM,OACN,QAAM,SACN,QAAM,OACN,QAAM,KACN,QAAM,SACN,QAAM,QACN,QAAM,SACR,EACA,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAoB,CACjC,EACA,EACA,CACA,IAAM,EAAiB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,GAC5E,0BAA2B,WAAS,IAAI,SAAS,EAEzD,IAAK,EACH,MAAM,IAAI,eAAa,+CAA+C,EAGxE,IAAM,EAAgB,MAAM,GAC1B,EACA,EACA,CACF,EAEA,IAAK,EACH,MAAM,IAAI,eAAa,iDAAiD,EAG1E,IAAQ,UAAS,YAAa,EAiB9B,OAfA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAU,EAAkB,EAAO,CAAQ,EAC3C,EAAU,MAAM,GAAW,CAAE,UAAS,UAAS,QAAO,eAAc,CAAC,EAE3E,EAAS,IACJ,EACH,UACA,QACA,WAAY,EAAc,WAC1B,WAAY,eAAa,aAC3B,CAAC,EACF,CACH,EAEO,GAEb,CAAC,EAEY,GAAsB,GAAyB,EAAmB,EAG/E,eAAe,EAA0D,EACvE,QACA,gBACA,UACA,WAMC,CACD,OAAQ,QACD,QAAM,cACN,QAAM,eACN,QAAM,UACN,QAAM,uBACN,QAAM,cACN,QAAM,cACN,QAAM,QAAS,CAClB,IAAQ,cAAa,iBAAkB,KAAa,kCAE9C,EAAW,MAAM,EAAY,CAAK,EAClC,EAAS,MAAM,GAAa,CAAE,gBAAe,QAAO,UAAS,CAAC,EAGpE,OAFgB,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,CAGjE,MAEK,QAAM,UAAW,CACpB,IAAQ,YAAa,KAAa,8DAC1B,SAAU,KAAa,iDACvB,eAAc,qBAAsB,KAAa,kCACjD,eAAgB,KAAa,0BAEnC,mBACA,gBACA,qBACA,uBACA,aACA,sBACA,sCACE,KAAa,qCACX,EAAU,MAAM,EAAiB,QAAM,SAAS,EAEtD,eAAe,EAAU,CAAC,EAAwB,CAEhD,IAAM,EAAU,MADM,EAGpB,WAAW,CAAc,EAE3B,GAAI,IAAU,QAAM,UAClB,OAAO,EAGT,KAAS,UAAS,OAAM,WAAa,MAAM,GAAe,OAAO,QAAQ,CACvE,QAAS,EACT,MAAO,EAAQ,MACf,QAAS,CACP,4BACA,OAAQ,CAAC,CACX,CACF,CAAC,EAED,MAAO,IAAK,EAAS,UAAS,OAAQ,CAAE,KAAM,EAAM,MAAO,CAAO,CAAE,EAGtE,IAAM,EAAM,GAAmB,CAAK,EAE9B,GAAc,CAAC,IACnB,GAAe,OAAO,QAAQ,CAC5B,QAAS,EACT,MAAO,EAAQ,MACf,QAAS,CACP,0BACA,OAAQ,CAAE,cAAe,EAAS,SAAQ,CAC5C,CACF,CAAC,EAEH,eAAe,EAAiB,EAC9B,aACA,UACG,GAC8C,CACjD,IAAM,EAAU,MAAM,EAAQ,WAAW,CAAO,EAChD,IAAK,EACH,MAAM,IAAI,eAAa,CAAE,SAAU,wBAAyB,KAAM,CAAE,SAAQ,CAAE,CAAC,EAGjF,IAAK,EAAQ,OACX,MAAM,IAAI,eAAa,CACrB,SAAU,wBACV,KAAM,CAAE,UAAS,OAAQ,GAAS,MAAO,CAC3C,CAAC,EAGH,IAAQ,gBAAe,WAAW,GAAM,EAElC,GAAO,CAAC,EAAc,CAAE,aAAY,OAAM,OAAQ,KAAY,CAAK,CAAC,CAAC,EAErE,GAAU,UAAQ,UAElB,GAAU,EACd,GACA,EACA,GACA,EACA,GAAe,SAAS,EACxB,GAAU,SAAS,GAAK,GAC1B,EAEM,EAAiB,MAAM,GAAY,EAAO,EAE1C,GAAY,MAAM,EAAmB,CACzC,MAAO,QAAM,UACb,KAAM,GAAK,IAAI,EAAiC,EAChD,KAAM,GAAQ,EAChB,CAAC,EACK,GAAS,EAAa,EAAQ,MAAM,EACpC,GAAgB,EACpB,CAAC,CAAE,UAAQ,UAAS,CAAC,EACrB,EAAI,OACJ,OAAO,SAAS,EAAI,GAAG,EACvB,OACA,OACA,EAAS,2BACX,EAEM,GAAQ,EAAM,YAAY,CAC9B,aACA,iBACA,WAAY,CACV,EACE,OAAO,EAAU,YAAc,SAC3B,EAAU,UACV,EAAU,UAAU,SAC1B,CACF,CACF,CAAC,EACK,GAAU,EAAM,OAAO,EAAK,EAAE,OAAO,EAI3C,OADe,MADK,MAAM,EAAqB,WAAS,IAAI,SAAS,EAAE,QAAM,UAAU,GACtD,YAAY,EAAO,GACtC,gBAGhB,MAAO,IACF,EACH,SAAU,CAAC,IAAkC,GAAkB,CAAM,EACrE,QAAS,CAAC,IAAmC,GAAkB,CAAM,EACrE,aACF,CACF,SAEE,MAAM,IAAI,eAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,eAAa,aAAc,CACpD,CAAC,GAIP,eAAe,EAAgB,CAC7B,EACA,EACA,EACA,CACA,IAAI,EACJ,GAAI,CACF,IAAK,EACH,MAAM,IAAI,eAAa,+CAA+C,EAExE,IAAM,EAAqB,GAAsB,EAAO,IAAI,CAAc,CAAC,GAEnE,0BAA2B,KAAa,0CAE1C,EAAS,IAAI,EAAuB,CACxC,OAAQ,EACR,SAAU,EACV,UAAW,EACX,SAAU,GAAsB,UAAY,KACzC,GAAsB,IAC3B,CAAC,EAEK,EAAa,MAAM,EAAO,WAAW,EAG3C,GAAI,EACF,MAAM,EAAO,WAAW,CACtB,MAAO,EAAW,MAClB,OAAQ,CAAE,KAAM,EAAG,QAAS,mBAAoB,CAClD,CAAC,EAGH,IAAM,EAAU,MAAM,EAAO,QAAQ,CAAE,oBAAmB,CAAC,EAErD,EAAW,OAAO,OAAO,EAAQ,UAAU,EAAE,QACjD,CAAC,IAAmB,EAAU,QAChC,EASA,MAAO,CAAE,UAAS,WAAU,SAAQ,WAPjB,SAAY,CAC7B,MAAM,EAAO,WAAW,CACtB,MAAO,EAAQ,MACf,OAAQ,CAAE,KAAM,EAAG,QAAS,mBAAoB,CAClD,CAAC,EAG4C,EAC/C,MAAO,EAAG,CACV,QAAQ,MAAM,CAAC,SACf,CACA,GAAI,EAEF,EAAM,WAAW,EAGrB",
12
- "debugId": "A2308A088BB2A60564756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "F95BFF13A64F6C0864756E2164756E21",
13
12
  "names": []
14
13
  }
@@ -1,3 +1,3 @@
1
- import{a as jr}from"../../chunk-6ndrbmhg.js";import{c as Y,d as J}from"../../chunk-p1kdg37m.js";import{Chain as N,ChainId as Vr,SKConfig as fr,SwapKitError as G,WalletOption as c,createWallet as er,filterSupportedChains as kr}from"@swapkit/helpers";var A="wss://relay.walletconnect.com",F="eip155:1",O="eip155:56",l="eip155:43114",X="cosmos:thorchain",L="cosmos:cosmoshub-4",o="cosmos:kaiyo-1",T="cosmos:mayachain-mainnet-v1",D="eip155:42161",E="eip155:10",S="eip155:137",rr="eip155:8453",sr="debug",ur={name:"THORSwap",description:"THORSwap multi-chain dex aggregator powered by THORChain",url:"https://app.thorswap.finance/",icons:["https://static.thorswap.net/logo.png"]},R;((t)=>{t.ETH_SEND_TRANSACTION="eth_sendTransaction";t.ETH_SIGN="eth_sign";t.PERSONAL_SIGN="personal_sign";t.ETH_SIGN_TYPED_DATA="eth_signTypedData"})(R||={});var w;((s)=>{s.ETH_CHAIN_CHANGED="chainChanged";s.ETH_ACCOUNTS_CHANGED="accountsChanged"})(w||={});var V;((p)=>{p.COSMOS_SIGN_DIRECT="cosmos_signDirect";p.COSMOS_SIGN_AMINO="cosmos_signAmino";p.COSMOS_GET_ACCOUNTS="cosmos_getAccounts"})(V||={});var Zr;((r)=>{})(Zr||={});var i;((s)=>{s.SOL_SIGN_TRANSACTION="solana_signTransaction";s.SOL_SIGN_MESSAGE="solana_signMessage"})(i||={});var P;((r)=>{})(P||={});var g;((s)=>{s.POLKADOT_SIGN_TRANSACTION="polkadot_signTransaction";s.POLKADOT_SIGN_MESSAGE="polkadot_signMessage"})(g||={});var x;((r)=>{})(x||={});var d;((I)=>{I.NEAR_SIGN_IN="near_signIn";I.NEAR_SIGN_OUT="near_signOut";I.NEAR_GET_ACCOUNTS="near_getAccounts";I.NEAR_SIGN_AND_SEND_TRANSACTION="near_signAndSendTransaction";I.NEAR_SIGN_AND_SEND_TRANSACTIONS="near_signAndSendTransactions"})(d||={});var n;((r)=>{})(n||={});import{SwapKitError as Nr,WalletOption as vr}from"@swapkit/helpers";import{AbstractSigner as $r}from"ethers";import{Chain as C}from"@swapkit/helpers";var e=(r,u)=>{return(u.find((t)=>t.startsWith(z(r)))||"")?.split(":")?.[2]||""},z=(r)=>{switch(r){case C.Avalanche:return l;case C.Base:return rr;case C.BinanceSmartChain:return O;case C.Ethereum:return F;case C.THORChain:return X;case C.Arbitrum:return D;case C.Optimism:return E;case C.Polygon:return S;case C.Maya:return T;case C.Cosmos:return L;case C.Kujira:return o;default:return""}};class _ extends $r{address;chain;walletconnect;provider;constructor({chain:r,provider:u,walletconnect:s}){super(u);this.chain=r,this.walletconnect=s,this.provider=u,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new Nr("wallet_walletconnect_connection_not_established");if(!this.address)this.address=e(this.chain,this.walletconnect.accounts);return this.address};signMessage=async(r)=>{let u=await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sign",params:[r]}});return u.startsWith("0x")?u:`0x${u}`};signTransaction=()=>{throw new Error("Not implemented: signTransaction")};signTypedData=()=>{throw new Error("Not implemented: signTypedData")};sendTransaction=async({from:r,to:u,value:s,data:p})=>{let{toHexString:t}=await import("@swapkit/toolboxes/evm"),I={from:r,to:u,value:t(BigInt(s||0)),data:p};return await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[I]}})};connect=(r)=>{if(!r)throw new Nr({errorKey:"wallet_provider_not_found",info:{wallet:vr.WALLETCONNECT,chain:this.chain}});return new _({chain:this.chain,walletconnect:this.walletconnect,provider:r})}}var pr=async({chain:r,walletconnect:u,provider:s})=>new _({chain:r,walletconnect:u,provider:s});import{SwapKitError as tr}from"@swapkit/helpers";var br=(r)=>{let u=[];for(let s of r){let[p]=s.split(":");if(p&&!u.includes(p))u.push(p)}return u},qr=(r)=>{switch(r){case"eip155":return Object.values(R);case"cosmos":return Object.values(V);case"solana":return Object.values(i);case"polkadot":return Object.values(g);case"near":return Object.values(d);default:throw new tr({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:r}})}},Rr=(r)=>{switch(r){case"eip155":return Object.values(w);case"cosmos":return[];case"solana":return Object.values(P);case"polkadot":return Object.values(x);case"near":return Object.values(n);default:throw new tr({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:r}})}},Ir=(r)=>{let u=br(r);return Object.fromEntries(u.map((s)=>[s,{methods:qr(s),chains:r.filter((p)=>p.startsWith(s)),events:Rr(s)}]))};var mr=er({name:"connectWalletconnect",walletType:c.WALLETCONNECT,supportedChains:[N.Arbitrum,N.Avalanche,N.Base,N.BinanceSmartChain,N.Cosmos,N.Ethereum,N.Kujira,N.Maya,N.Optimism,N.Polygon,N.THORChain],connect:({addChain:r,supportedChains:u,walletType:s})=>async function p(t,I){let f=kr({chains:t,supportedChains:u,walletType:s}),{walletConnectProjectId:y}=fr.get("apiKeys");if(!y)throw new G("wallet_walletconnect_project_id_not_specified");let j=await Wr(f,y,I);if(!j)throw new G("wallet_walletconnect_connection_not_established");let{session:Q,accounts:Z}=j;return await Promise.all(f.map(async(K)=>{let v=e(K,Z),k=await Mr({session:Q,address:v,chain:K,walletconnect:j});r({...k,address:v,chain:K,disconnect:j.disconnect,walletType:c.WALLETCONNECT})})),!0}}),Er=jr(mr);async function Mr({chain:r,walletconnect:u,address:s,session:p}){switch(r){case N.Arbitrum:case N.Avalanche:case N.Base:case N.BinanceSmartChain:case N.Ethereum:case N.Optimism:case N.Polygon:{let{getProvider:t,getEvmToolbox:I}=await import("@swapkit/toolboxes/evm"),f=await t(r),y=await pr({walletconnect:u,chain:r,provider:f});return await I(r,{provider:f,signer:y})}case N.THORChain:{let{SignMode:t}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:f,makeAuthInfoBytes:y}=await import("@cosmjs/proto-signing"),{makeSignDoc:j}=await import("@cosmjs/amino"),{getCosmosToolbox:Q,buildAminoMsg:Z,buildEncodedTxBody:K,createStargateClient:v,fromBase64:k,getDefaultChainFee:Cr,parseAminoMessageForDirectSigning:yr}=await import("@swapkit/toolboxes/cosmos"),m=await Q(N.THORChain);async function hr(h){let b=await m.getAccount(h);if(r!==N.THORChain)return b;let[{address:B,algo:W,pubkey:q}]=await u?.client.request({chainId:X,topic:p.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...b,address:B,pubkey:{type:W,value:q}}}let M=Cr(r),Br=(h)=>u?.client.request({chainId:X,topic:p.topic,request:{method:"cosmos_signAmino",params:{signerAddress:s,signDoc:h}}});async function U({assetValue:h,memo:$,...b}){let B=await m.getAccount(s);if(!B)throw new G({errorKey:"wallet_missing_params",info:{account:B}});if(!B.pubkey)throw new G({errorKey:"wallet_missing_params",info:{account:B,pubkey:B?.pubkey}});let{accountNumber:W,sequence:q=0}=B,H=[Z({assetValue:h,memo:$,sender:s,...b})],Yr=Vr.THORChain,Jr=j(H,M,Yr,$,W?.toString(),q?.toString()||"0"),a=await Br(Jr),Kr=await K({chain:N.THORChain,msgs:H.map(yr),memo:$||""}),zr=f(B.pubkey),Gr=y([{pubkey:zr,sequence:q}],M.amount,Number.parseInt(M.gas),void 0,void 0,t.SIGN_MODE_LEGACY_AMINO_JSON),Qr=I.fromPartial({bodyBytes:Kr,authInfoBytes:Gr,signatures:[k(typeof a.signature==="string"?a.signature:a.signature.signature)]}),Xr=I.encode(Qr).finish();return(await(await v(fr.get("rpcUrls")[N.THORChain])).broadcastTx(Xr)).transactionHash}return{...m,transfer:(h)=>U(h),deposit:(h)=>U(h),getAccount:hr}}default:throw new G({errorKey:"wallet_chain_not_supported",info:{chain:r,wallet:c.WALLETCONNECT}})}}async function Wr(r,u,s){let p;try{if(!u)throw new G("wallet_walletconnect_project_id_not_specified");let t=Ir(r.map(z)),{WalletConnectModalSign:I}=await import("@walletconnect/modal-sign-html"),f=new I({logger:sr,relayUrl:A,projectId:u,metadata:s?.metadata||ur,...s?.core}),y=await f.getSession();if(y)await f.disconnect({topic:y.topic,reason:{code:0,message:"Resetting session"}});let j=await f.connect({requiredNamespaces:t}),Q=Object.values(j.namespaces).flatMap((K)=>K.accounts);return{session:j,accounts:Q,client:f,disconnect:async()=>{await f.disconnect({topic:j.topic,reason:{code:0,message:"User disconnected"}})}}}catch(t){console.error(t)}finally{if(p)p.closeModal()}return}export{mr as walletconnectWallet,Er as WC_SUPPORTED_CHAINS,X as THORCHAIN_MAINNET_ID,S as POLYGON_MAINNET_ID,E as OPTIMISM_MAINNET_ID,T as MAYACHAIN_MAINNET_ID,o as KUJIRA_MAINNET_ID,F as ETHEREUM_MAINNET_ID,i as DEFAULT_SOLANA_METHODS,P as DEFAULT_SOLANA_EVENTS,A as DEFAULT_RELAY_URL,g as DEFAULT_POLKADOT_METHODS,x as DEFAULT_POLKADOT_EVENTS,d as DEFAULT_NEAR_METHODS,n as DEFAULT_NEAR_EVENTS,sr as DEFAULT_LOGGER,w as DEFAULT_EIP_155_EVENTS,R as DEFAULT_EIP155_METHODS,V as DEFAULT_COSMOS_METHODS,Zr as DEFAULT_COSMOS_EVENTS,ur as DEFAULT_APP_METADATA,L as COSMOS_HUB_MAINNET_ID,O as BSC_MAINNET_ID,rr as BASE_MAINNET_ID,l as AVALANCHE_MAINNET_ID,D as ARBITRUM_ONE_MAINNET_ID};
1
+ import{a as A,b as I,c as l,d as s,e as W,f as t,g as e,h as c,i,j as o,k as a,l as n,m as L5,n as O5,o as N,p as y5,q as x,r as F5,s as g,t as FL,u as f5,v as p5,w as U5,x as V5,y as z5,z as Q5}from"../../chunk-bexr8da2.js";import{A as J5}from"../../chunk-th8ggrmx.js";import{C as y,D as G}from"../../chunk-qwd1kp32.js";import{Chain as j,ChainId as B5,SKConfig as G5,SwapKitError as Z,WalletOption as C,createWallet as r5,filterSupportedChains as H5}from"@swapkit/helpers";import{SwapKitError as H,WalletOption as W5}from"@swapkit/helpers";import{AbstractSigner as E5}from"ethers";import{Chain as X,SKConfig as P5}from"@swapkit/helpers";var r=(L,O)=>{return(O.find((U)=>U.startsWith(b(L)))||"")?.split(":")?.[2]||""},b=(L)=>{switch(L){case X.Avalanche:return s;case X.Base:return n;case X.BinanceSmartChain:return l;case X.Ethereum:return I;case X.THORChain:return W;case X.Arbitrum:return i;case X.Optimism:return o;case X.Polygon:return a;case X.Maya:return c;case X.Cosmos:return t;case X.Kujira:return e;case X.Near:{let{isStagenet:O}=P5.get("envs");return O?O5:L5}default:return""}};class M extends E5{address;chain;walletconnect;provider;constructor({chain:L,provider:O,walletconnect:F}){super(O);this.chain=L,this.walletconnect=F,this.provider=O,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new H("wallet_walletconnect_connection_not_established");if(!this.address)this.address=r(this.chain,this.walletconnect.accounts||[]);return this.address};signMessage=async(L)=>{let O=await this.walletconnect?.client.request({chainId:b(this.chain),topic:this.walletconnect.session.topic||"",request:{method:"eth_sign",params:[L]}});return O.startsWith("0x")?O:`0x${O}`};signTransaction=()=>{throw new H("wallet_walletconnect_method_not_supported",{method:"signTransaction"})};signTypedData=()=>{throw new H("wallet_walletconnect_method_not_supported",{method:"signTypedData"})};sendTransaction=async({from:L,to:O,value:F,data:f})=>{let{toHexString:U}=await import("@swapkit/toolboxes/evm"),p={from:L,to:O,value:U(BigInt(F||0)),data:f};return await this.walletconnect?.client.request({chainId:b(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[p]}})};connect=(L)=>{if(!L)throw new H({errorKey:"wallet_provider_not_found",info:{wallet:W5.WALLETCONNECT,chain:this.chain}});return new M({chain:this.chain,walletconnect:this.walletconnect,provider:L})}}var j5=async({chain:L,walletconnect:O,provider:F})=>new M({chain:L,walletconnect:O,provider:F});import{SwapKitError as X5}from"@swapkit/helpers";var _5=(L)=>{let O=[];for(let F of L){let[f]=F.split(":");if(f&&!O.includes(f))O.push(f)}return O},D5=(L)=>{switch(L){case"eip155":return Object.values(x);case"cosmos":return Object.values(g);case"solana":return Object.values(f5);case"polkadot":return Object.values(U5);case"near":return Object.values(z5);default:throw new X5({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:L}})}},R5=(L)=>{switch(L){case"eip155":return Object.values(F5);case"cosmos":return[];case"solana":return Object.values(p5);case"polkadot":return Object.values(V5);case"near":return Object.values(Q5);default:throw new X5({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:L}})}},Z5=(L)=>{let O=_5(L);return Object.fromEntries(O.map((F)=>[F,{methods:D5(F),chains:L.filter((f)=>f.startsWith(F)),events:R5(F)}]))};var T5=r5({name:"connectWalletconnect",walletType:C.WALLETCONNECT,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Cosmos,j.Ethereum,j.Kujira,j.Maya,j.Near,j.Optimism,j.Polygon,j.THORChain],connect:({addChain:L,supportedChains:O,walletType:F})=>async function f(U,p){let z=H5({chains:U,supportedChains:O,walletType:F}),{walletConnectProjectId:J}=G5.get("apiKeys");if(!J)throw new Z("wallet_walletconnect_project_id_not_specified");let V=await S5(z,J,p);if(!V)throw new Z("wallet_walletconnect_connection_not_established");let{accounts:q}=V;return await Promise.all(z.map(async(Q)=>{let Y=r(Q,q||[]),v=await u5({address:Y,chain:Q,walletconnect:V});L({...v,address:Y,chain:Q,disconnect:V.disconnect,walletType:C.WALLETCONNECT})})),!0}}),n5=J5(T5);async function u5({chain:L,walletconnect:O,address:F}){let f=O?.session;if(!f)throw new Z("wallet_walletconnect_connection_not_established");switch(L){case j.Arbitrum:case j.Avalanche:case j.Base:case j.BinanceSmartChain:case j.Ethereum:case j.Optimism:case j.Polygon:{let{getProvider:U,getEvmToolbox:p}=await import("@swapkit/toolboxes/evm"),z=await U(L),J=await j5({walletconnect:O,chain:L,provider:z});return await p(L,{provider:z,signer:J})}case j.THORChain:{let{SignMode:U}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:p}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:z,makeAuthInfoBytes:J}=(await import("@cosmjs/proto-signing")).default,{makeSignDoc:V}=(await import("@cosmjs/amino")).default,{getCosmosToolbox:q,buildAminoMsg:Q,buildEncodedTxBody:Y,createStargateClient:v,fromBase64:E,getDefaultChainFee:T,parseAminoMessageForDirectSigning:u}=await import("@swapkit/toolboxes/cosmos"),P=await q(j.THORChain);async function S(K){let R=await P.getAccount(K);if(L!==j.THORChain)return R;let[{address:$,algo:w,pubkey:B}]=await O?.client.request({chainId:W,topic:f.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...R,address:$,pubkey:{type:w,value:B}}}let k=T(L),d=(K)=>O?.client.request({chainId:W,topic:f.topic,request:{method:"cosmos_signAmino",params:{signerAddress:F,signDoc:K}}});async function _({assetValue:K,memo:D,...R}){let $=await P.getAccount(F);if(!$)throw new Z({errorKey:"wallet_missing_params",info:{account:$}});if(!$.pubkey)throw new Z({errorKey:"wallet_missing_params",info:{account:$,pubkey:$?.pubkey}});let{accountNumber:w,sequence:B=0}=$,h=[Q({assetValue:K,memo:D,sender:F,...R})],K5=B5.THORChain,$5=V(h,k,K5,D,w?.toString(),B?.toString()||"0"),m=await d($5),q5=await Y({chain:j.THORChain,msgs:h.map(u),memo:D||""}),Y5=z($.pubkey),v5=J([{pubkey:Y5,sequence:B}],k.amount,Number.parseInt(k.gas),void 0,void 0,U.SIGN_MODE_LEGACY_AMINO_JSON),b5=p.fromPartial({bodyBytes:q5,authInfoBytes:v5,signatures:[E(typeof m.signature==="string"?m.signature:m.signature.signature)]}),k5=p.encode(b5).finish();return(await(await v(G5.get("rpcUrls")[j.THORChain])).broadcastTx(k5)).transactionHash}return{...P,transfer:(K)=>_(K),deposit:(K)=>_(K),getAccount:S}}case j.Near:{let{getNearToolbox:U}=await import("@swapkit/toolboxes/near"),{DEFAULT_NEAR_METHODS:p}=await import("../../chunk-bexr8da2.js");return await U({signer:{getPublicKey(){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"getPublicKey"}))},signNep413Message(V,q,Q,Y,v){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"signNep413Message"}))},async signTransaction(V){if(!O)throw new Z("wallet_walletconnect_connection_not_established");let q=await O.client.request({topic:f.topic,chainId:b(j.Near),request:{method:p.NEAR_SIGN_AND_SEND_TRANSACTION,params:{transaction:V}}});return[new Uint8Array(32),q]},signDelegateAction(V){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"signDelegateAction"}))},getAddress(){return Promise.resolve(F)}}})}default:throw new Z({errorKey:"wallet_chain_not_supported",info:{chain:L,wallet:C.WALLETCONNECT}})}}async function S5(L,O,F){let f,U,p,z;try{if(!O)throw new Z("wallet_walletconnect_project_id_not_specified");let J=Z5(L.map(b)),{SignClient:V}=await import("@walletconnect/sign-client"),{WalletConnectModal:q}=await import("@walletconnect/modal"),Q=new V({logger:N,relayUrl:A,projectId:O,metadata:F?.metadata||y5,...F?.core}),Y=new q({logger:N,relayUrl:A,projectId:O,...F?.core}),v=await Q.session.getAll()[0];if(v)await Q.disconnect({topic:v.topic,reason:{code:0,message:"Resetting session"}});let{uri:E,approval:T}=await Q.connect({requiredNamespaces:J});if(E){let P=function(S){let k=[];for(let[d,_]of Object.entries(S.namespaces))k.push(..._.accounts);return k};Y.openModal({uri:E}),p=await T(),Y.closeModal(),z=P(p)}let u=async()=>{p&&await Q.disconnect({topic:p.topic,reason:{code:0,message:"User disconnected"}})};if(!p)throw new Z("wallet_walletconnect_connection_not_established");return{signer:U,session:p,accounts:z,client:Q,disconnect:u}}catch(J){}finally{if(f)f.closeModal()}return}export{T5 as walletconnectWallet,n5 as WC_SUPPORTED_CHAINS,W as THORCHAIN_MAINNET_ID,a as POLYGON_MAINNET_ID,o as OPTIMISM_MAINNET_ID,O5 as NEAR_TESTNET_ID,L5 as NEAR_MAINNET_ID,c as MAYACHAIN_MAINNET_ID,e as KUJIRA_MAINNET_ID,I as ETHEREUM_MAINNET_ID,f5 as DEFAULT_SOLANA_METHODS,p5 as DEFAULT_SOLANA_EVENTS,A as DEFAULT_RELAY_URL,U5 as DEFAULT_POLKADOT_METHODS,V5 as DEFAULT_POLKADOT_EVENTS,z5 as DEFAULT_NEAR_METHODS,Q5 as DEFAULT_NEAR_EVENTS,N as DEFAULT_LOGGER,F5 as DEFAULT_EIP_155_EVENTS,x as DEFAULT_EIP155_METHODS,g as DEFAULT_COSMOS_METHODS,FL as DEFAULT_COSMOS_EVENTS,y5 as DEFAULT_APP_METADATA,t as COSMOS_HUB_MAINNET_ID,l as BSC_MAINNET_ID,n as BASE_MAINNET_ID,s as AVALANCHE_MAINNET_ID,i as ARBITRUM_ONE_MAINNET_ID};
2
2
 
3
- //# debugId=CF101C8AB8BC593A64756E2164756E21
3
+ //# debugId=CF132A71D84C0D7E64756E2164756E21