@tcswap/wallet-extensions 4.1.16

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 (147) hide show
  1. package/dist/chunk-7y3ffnf3.js +4 -0
  2. package/dist/chunk-7y3ffnf3.js.map +10 -0
  3. package/dist/chunk-fazw0jvt.js +4 -0
  4. package/dist/chunk-fazw0jvt.js.map +9 -0
  5. package/dist/chunk-kx2thqhk.js +5 -0
  6. package/dist/chunk-kx2thqhk.js.map +9 -0
  7. package/dist/chunk-swh9jwp7.js +4 -0
  8. package/dist/chunk-swh9jwp7.js.map +10 -0
  9. package/dist/src/bitget/index.cjs +4 -0
  10. package/dist/src/bitget/index.cjs.map +11 -0
  11. package/dist/src/bitget/index.js +4 -0
  12. package/dist/src/bitget/index.js.map +11 -0
  13. package/dist/src/cosmostation/index.cjs +4 -0
  14. package/dist/src/cosmostation/index.cjs.map +10 -0
  15. package/dist/src/cosmostation/index.js +4 -0
  16. package/dist/src/cosmostation/index.js.map +10 -0
  17. package/dist/src/ctrl/index.cjs +4 -0
  18. package/dist/src/ctrl/index.cjs.map +11 -0
  19. package/dist/src/ctrl/index.js +4 -0
  20. package/dist/src/ctrl/index.js.map +11 -0
  21. package/dist/src/evm-extensions/index.cjs +4 -0
  22. package/dist/src/evm-extensions/index.cjs.map +10 -0
  23. package/dist/src/evm-extensions/index.js +4 -0
  24. package/dist/src/evm-extensions/index.js.map +10 -0
  25. package/dist/src/index.cjs +4 -0
  26. package/dist/src/index.cjs.map +9 -0
  27. package/dist/src/index.js +3 -0
  28. package/dist/src/index.js.map +9 -0
  29. package/dist/src/keepkey-bex/index.cjs +4 -0
  30. package/dist/src/keepkey-bex/index.cjs.map +11 -0
  31. package/dist/src/keepkey-bex/index.js +4 -0
  32. package/dist/src/keepkey-bex/index.js.map +11 -0
  33. package/dist/src/keplr/index.cjs +4 -0
  34. package/dist/src/keplr/index.cjs.map +11 -0
  35. package/dist/src/keplr/index.js +4 -0
  36. package/dist/src/keplr/index.js.map +11 -0
  37. package/dist/src/okx/index.cjs +4 -0
  38. package/dist/src/okx/index.cjs.map +11 -0
  39. package/dist/src/okx/index.js +4 -0
  40. package/dist/src/okx/index.js.map +11 -0
  41. package/dist/src/onekey/index.cjs +4 -0
  42. package/dist/src/onekey/index.cjs.map +10 -0
  43. package/dist/src/onekey/index.js +4 -0
  44. package/dist/src/onekey/index.js.map +10 -0
  45. package/dist/src/phantom/index.cjs +4 -0
  46. package/dist/src/phantom/index.cjs.map +10 -0
  47. package/dist/src/phantom/index.js +4 -0
  48. package/dist/src/phantom/index.js.map +10 -0
  49. package/dist/src/polkadotjs/index.cjs +4 -0
  50. package/dist/src/polkadotjs/index.cjs.map +10 -0
  51. package/dist/src/polkadotjs/index.js +4 -0
  52. package/dist/src/polkadotjs/index.js.map +10 -0
  53. package/dist/src/talisman/index.cjs +4 -0
  54. package/dist/src/talisman/index.cjs.map +10 -0
  55. package/dist/src/talisman/index.js +4 -0
  56. package/dist/src/talisman/index.js.map +10 -0
  57. package/dist/src/tronlink/index.cjs +4 -0
  58. package/dist/src/tronlink/index.cjs.map +12 -0
  59. package/dist/src/tronlink/index.js +4 -0
  60. package/dist/src/tronlink/index.js.map +12 -0
  61. package/dist/src/vultisig/index.cjs +4 -0
  62. package/dist/src/vultisig/index.cjs.map +11 -0
  63. package/dist/src/vultisig/index.js +4 -0
  64. package/dist/src/vultisig/index.js.map +11 -0
  65. package/dist/types/bitget/helpers.d.ts +1607 -0
  66. package/dist/types/bitget/helpers.d.ts.map +1 -0
  67. package/dist/types/bitget/index.d.ts +11 -0
  68. package/dist/types/bitget/index.d.ts.map +1 -0
  69. package/dist/types/cosmostation/index.d.ts +24 -0
  70. package/dist/types/cosmostation/index.d.ts.map +1 -0
  71. package/dist/types/ctrl/index.d.ts +14 -0
  72. package/dist/types/ctrl/index.d.ts.map +1 -0
  73. package/dist/types/ctrl/walletHelpers.d.ts +23 -0
  74. package/dist/types/ctrl/walletHelpers.d.ts.map +1 -0
  75. package/dist/types/evm-extensions/index.d.ts +747 -0
  76. package/dist/types/evm-extensions/index.d.ts.map +1 -0
  77. package/dist/types/evm-extensions/types.d.ts +18 -0
  78. package/dist/types/evm-extensions/types.d.ts.map +1 -0
  79. package/dist/types/helpers/near.d.ts +60 -0
  80. package/dist/types/helpers/near.d.ts.map +1 -0
  81. package/dist/types/index.d.ts +2 -0
  82. package/dist/types/index.d.ts.map +1 -0
  83. package/dist/types/keepkey-bex/index.d.ts +14 -0
  84. package/dist/types/keepkey-bex/index.d.ts.map +1 -0
  85. package/dist/types/keepkey-bex/walletHelpers.d.ts +48 -0
  86. package/dist/types/keepkey-bex/walletHelpers.d.ts.map +1 -0
  87. package/dist/types/keplr/chainRegistry.d.ts +4 -0
  88. package/dist/types/keplr/chainRegistry.d.ts.map +1 -0
  89. package/dist/types/keplr/index.d.ts +14 -0
  90. package/dist/types/keplr/index.d.ts.map +1 -0
  91. package/dist/types/okx/helpers.d.ts +855 -0
  92. package/dist/types/okx/helpers.d.ts.map +1 -0
  93. package/dist/types/okx/index.d.ts +11 -0
  94. package/dist/types/okx/index.d.ts.map +1 -0
  95. package/dist/types/okx/types.d.ts +104 -0
  96. package/dist/types/okx/types.d.ts.map +1 -0
  97. package/dist/types/onekey/evmSigner.d.ts +32 -0
  98. package/dist/types/onekey/evmSigner.d.ts.map +1 -0
  99. package/dist/types/onekey/index.d.ts +14 -0
  100. package/dist/types/onekey/index.d.ts.map +1 -0
  101. package/dist/types/phantom/index.d.ts +15 -0
  102. package/dist/types/phantom/index.d.ts.map +1 -0
  103. package/dist/types/polkadotjs/index.d.ts +14 -0
  104. package/dist/types/polkadotjs/index.d.ts.map +1 -0
  105. package/dist/types/talisman/index.d.ts +14 -0
  106. package/dist/types/talisman/index.d.ts.map +1 -0
  107. package/dist/types/tronlink/helpers.d.ts +29 -0
  108. package/dist/types/tronlink/helpers.d.ts.map +1 -0
  109. package/dist/types/tronlink/index.d.ts +13 -0
  110. package/dist/types/tronlink/index.d.ts.map +1 -0
  111. package/dist/types/tronlink/types.d.ts +55 -0
  112. package/dist/types/tronlink/types.d.ts.map +1 -0
  113. package/dist/types/types.d.ts +166 -0
  114. package/dist/types/types.d.ts.map +1 -0
  115. package/dist/types/vultisig/index.d.ts +14 -0
  116. package/dist/types/vultisig/index.d.ts.map +1 -0
  117. package/dist/types/vultisig/walletHelpers.d.ts +37 -0
  118. package/dist/types/vultisig/walletHelpers.d.ts.map +1 -0
  119. package/package.json +133 -0
  120. package/src/bitget/helpers.ts +181 -0
  121. package/src/bitget/index.ts +26 -0
  122. package/src/cosmostation/index.ts +122 -0
  123. package/src/ctrl/index.ts +194 -0
  124. package/src/ctrl/walletHelpers.ts +186 -0
  125. package/src/evm-extensions/index.ts +122 -0
  126. package/src/evm-extensions/types.ts +15 -0
  127. package/src/helpers/near-browser-provider.d.ts +270 -0
  128. package/src/helpers/near.ts +174 -0
  129. package/src/index.ts +1 -0
  130. package/src/keepkey-bex/index.ts +151 -0
  131. package/src/keepkey-bex/walletHelpers.ts +241 -0
  132. package/src/keplr/chainRegistry.ts +240 -0
  133. package/src/keplr/index.ts +54 -0
  134. package/src/okx/helpers.ts +192 -0
  135. package/src/okx/index.ts +43 -0
  136. package/src/okx/types.ts +117 -0
  137. package/src/onekey/evmSigner.ts +116 -0
  138. package/src/onekey/index.ts +182 -0
  139. package/src/phantom/index.ts +136 -0
  140. package/src/polkadotjs/index.ts +61 -0
  141. package/src/talisman/index.ts +132 -0
  142. package/src/tronlink/helpers.ts +153 -0
  143. package/src/tronlink/index.ts +49 -0
  144. package/src/tronlink/types.ts +44 -0
  145. package/src/types.ts +157 -0
  146. package/src/vultisig/index.ts +179 -0
  147. package/src/vultisig/walletHelpers.ts +295 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/keepkey-bex/index.ts", "../src/keepkey-bex/walletHelpers.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, Chain, ChainId, filterSupportedChains, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport type { Eip1193Provider } from \"ethers\";\nimport {\n getKEEPKEYAddress,\n getKEEPKEYMethods,\n getKEEPKEYProvider,\n getProviderNameFromChain,\n type WalletTxParams,\n walletTransfer,\n} from \"./walletHelpers\";\n\nexport const keepkeyBexWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectKeepkeyBex(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = await getKEEPKEYAddress(chain);\n const walletMethods = await getWalletMethods(chain);\n\n addChain({ ...walletMethods, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectKeepkeyBex\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Base,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Litecoin,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Ripple,\n Chain.Solana,\n Chain.THORChain,\n Chain.XLayer,\n ],\n walletType: WalletOption.KEEPKEY_BEX,\n});\n\nexport const KEEPKEY_BEX_SUPPORTED_CHAINS = getWalletSupportedChains(keepkeyBexWallet);\n\nasync function getWalletMethods(chain: (typeof KEEPKEY_BEX_SUPPORTED_CHAINS)[number]) {\n switch (chain) {\n case Chain.Maya:\n case Chain.THORChain: {\n const { getCosmosToolbox, THORCHAIN_GAS_VALUE, MAYA_GAS_VALUE } = await import(\"@tcswap/toolboxes/cosmos\");\n\n const gasLimit = chain === Chain.Maya ? MAYA_GAS_VALUE : THORCHAIN_GAS_VALUE;\n const toolbox = await getCosmosToolbox(chain);\n\n return {\n ...toolbox,\n deposit: (tx: WalletTxParams) => walletTransfer({ ...tx, recipient: \"\" }, \"deposit\"),\n transfer: (tx: WalletTxParams) => walletTransfer({ ...tx, gasLimit }, \"transfer\"),\n };\n }\n\n case Chain.Cosmos:\n case Chain.Kujira: {\n const { getCosmosToolbox } = await import(\"@tcswap/toolboxes/cosmos\");\n\n // @ts-expect-error assumed available connection\n const signer = window.keepkey?.cosmos?.getOfflineSignerOnlyAmino(ChainId[chain]);\n if (!signer) throw new USwapError(\"wallet_keepkey_signer_not_found\");\n const toolbox = await getCosmosToolbox(chain, { signer });\n\n const accounts = await signer.getAccounts();\n if (!accounts?.[0]?.address) throw new USwapError(\"wallet_keepkey_no_accounts\");\n\n const [{ address }] = accounts;\n\n return { ...toolbox, address };\n }\n\n case Chain.Dash:\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const toolbox = await getUtxoToolbox(chain);\n\n const getBalance = async () => {\n const providerChain = getProviderNameFromChain(chain);\n // @ts-expect-error We assuming there chains via switch\n const balance = await window?.keepkey?.[providerChain]?.request({ method: \"request_balance\" });\n const assetValue = AssetValue.from({ chain, value: balance[0].balance });\n return [assetValue];\n };\n\n return { ...toolbox, getBalance, transfer: walletTransfer };\n }\n\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche: {\n const { prepareNetworkSwitch, switchEVMWalletNetwork } = await import(\"@tcswap/helpers\");\n const { getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n const ethereumWindowProvider = getKEEPKEYProvider(chain) as Eip1193Provider;\n\n if (!ethereumWindowProvider) {\n throw new USwapError(\"wallet_keepkey_not_found\");\n }\n\n const provider = new BrowserProvider(ethereumWindowProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n const keepkeyMethods = getKEEPKEYMethods(provider, chain);\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n }\n } catch {\n throw new USwapError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, wallet: WalletOption.KEEPKEY },\n });\n }\n\n return prepareNetworkSwitch({ chain, provider, toolbox: { ...toolbox, ...keepkeyMethods } });\n }\n\n default:\n return null;\n }\n}\n",
6
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type AssetValue,\n Chain,\n type EVMChain,\n EVMChains,\n type FeeOption,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport { erc20ABI } from \"@tcswap/helpers/contracts\";\nimport type { ApproveParams, CallParams, EVMTxParams } from \"@tcswap/toolboxes/evm\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\ninterface UTXOProvider {\n request: (\n args: {\n method: string;\n params?: {\n amount: { amount: string; decimals?: number };\n asset: { chain: Chain; symbol: string; ticker: string };\n memo: string | undefined;\n from?: string;\n recipient: string;\n gasLimit?: string | bigint;\n }[];\n },\n callback: (err: string, tx: string) => void,\n ) => void;\n}\n\ntype TransactionMethod = \"transfer\" | \"deposit\";\n\ntype TransactionParams = {\n asset: string | { chain: string; symbol: string; ticker: string };\n amount: number | string | { amount: string | number; decimals?: number };\n decimal?: number;\n recipient: string;\n memo?: string;\n};\n\nexport type WalletTxParams = {\n feeOptionKey?: FeeOption;\n from?: string;\n memo?: string;\n recipient: string;\n assetValue: AssetValue;\n gasLimit?: string | bigint | undefined;\n};\n\nexport const getProviderNameFromChain = (chain: Chain): string => {\n switch (chain) {\n case Chain.Bitcoin:\n return \"bitcoin\";\n case Chain.BitcoinCash:\n return \"bitcoincash\";\n case Chain.Dash:\n return \"dash\";\n case Chain.Dogecoin:\n return \"dogecoin\";\n case Chain.Litecoin:\n return \"litecoin\";\n default:\n throw new USwapError(\"wallet_keepkey_chain_not_supported\", { chain });\n }\n};\n\ndeclare const window: {\n keepkey?: {\n binance: Eip1193Provider;\n bitcoin: Eip1193Provider;\n bitcoincash: Eip1193Provider;\n dogecoin: Eip1193Provider;\n ethereum: Eip1193Provider;\n cosmos: Eip1193Provider;\n dash: Eip1193Provider;\n litecoin: Eip1193Provider;\n thorchain: Eip1193Provider;\n mayachain: Eip1193Provider;\n };\n} & Window;\n\nexport function getKEEPKEYProvider<T extends Chain>(chain: T) {\n if (!window.keepkey) throw new USwapError(\"wallet_keepkey_not_found\");\n\n switch (chain) {\n case Chain.Ethereum:\n case Chain.Base:\n case Chain.Avalanche:\n case Chain.BinanceSmartChain:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.XLayer:\n return window.keepkey.ethereum as Eip1193Provider;\n case Chain.Cosmos:\n return window.keepkey.cosmos as Eip1193Provider;\n case Chain.Bitcoin:\n return window.keepkey.bitcoin as UTXOProvider;\n case Chain.BitcoinCash:\n return window.keepkey.bitcoincash as UTXOProvider;\n case Chain.Dogecoin:\n return window.keepkey.dogecoin as UTXOProvider;\n case Chain.Litecoin:\n return window.keepkey.litecoin as UTXOProvider;\n case Chain.Dash:\n return window.keepkey.dash as UTXOProvider;\n case Chain.THORChain:\n return window.keepkey.thorchain as UTXOProvider;\n case Chain.Maya:\n return window.keepkey.mayachain as UTXOProvider;\n\n default:\n return undefined;\n }\n}\n\nfunction transaction({\n method,\n params,\n chain,\n}: {\n method: TransactionMethod;\n params: TransactionParams[];\n chain: Chain;\n}): Promise<string> {\n const client = getKEEPKEYProvider(chain);\n\n return new Promise<string>((resolve, reject) => {\n if (client && \"request\" in client) {\n // @ts-expect-error\n client.request({ method, params }, (err: string, tx: string) => {\n err ? reject(err) : resolve(tx);\n });\n } else {\n reject(new USwapError(\"wallet_provider_not_found\"));\n }\n });\n}\n\nexport async function getKEEPKEYAddress(chain: Chain) {\n const eipProvider = getKEEPKEYProvider(chain) as Eip1193Provider;\n if (!eipProvider) {\n throw new USwapError({ errorKey: \"wallet_provider_not_found\", info: { chain, wallet: WalletOption.KEEPKEY } });\n }\n\n let method = \"request_accounts\";\n if (EVMChains.includes(chain as EVMChain)) {\n method = \"eth_requestAccounts\";\n }\n\n const [response] = await eipProvider.request({ method, params: [] });\n return response;\n}\n\nexport async function walletTransfer(\n { assetValue, recipient, memo, gasLimit }: WalletTxParams & { assetValue: AssetValue },\n method: TransactionMethod = \"transfer\",\n) {\n if (!assetValue) {\n throw new USwapError(\"wallet_keepkey_asset_not_defined\");\n }\n\n const from = await getKEEPKEYAddress(assetValue.chain);\n const params = [\n {\n amount: { amount: assetValue.getValue(\"string\"), decimals: assetValue.decimal },\n asset: {\n chain: assetValue.chain,\n symbol: assetValue.symbol.toUpperCase(),\n ticker: assetValue.symbol.toUpperCase(),\n },\n from,\n gasLimit,\n memo,\n recipient,\n },\n ];\n\n return transaction({ chain: assetValue.chain, method, params });\n}\n\nexport function getKEEPKEYMethods(provider: BrowserProvider, chain: EVMChain) {\n return {\n approve: async ({ assetAddress, spenderAddress, amount, from }: ApproveParams) => {\n const { MAX_APPROVAL, getCreateContractTxObject, toHexString } = await import(\"@tcswap/toolboxes/evm\");\n\n const createTx = getCreateContractTxObject({ chain, provider });\n const { value, to, data } = await createTx({\n abi: erc20ABI,\n contractAddress: assetAddress,\n funcName: \"approve\",\n funcParams: [spenderAddress, BigInt(amount || MAX_APPROVAL)],\n txOverrides: { from },\n });\n\n return provider.send(\"eth_sendTransaction\", [\n { data: data || \"0x\", from, to, value: toHexString(BigInt(value || 0)) },\n ]);\n },\n call: async <T>({ contractAddress, abi, funcName, funcParams = [], txOverrides }: CallParams): Promise<T> => {\n if (!contractAddress) {\n throw new USwapError(\"wallet_keepkey_contract_address_not_provided\");\n }\n const { createContract, getCreateContractTxObject, isStateChangingCall, toHexString } = await import(\n \"@tcswap/toolboxes/evm\"\n );\n\n const isStateChanging = isStateChangingCall({ abi, funcName });\n\n if (isStateChanging) {\n const createTx = getCreateContractTxObject({ chain, provider });\n const { value, from, to, data } = await createTx({ abi, contractAddress, funcName, funcParams, txOverrides });\n\n return provider.send(\"eth_sendTransaction\", [\n { data: data || \"0x\", from, to, value: toHexString(BigInt(value || 0)) },\n ]);\n }\n const contract = createContract(contractAddress, abi, provider);\n\n const result = await contract[funcName]?.(...funcParams);\n\n return typeof result?.hash === \"string\" ? result?.hash : result;\n },\n sendTransaction: async (tx: EVMTxParams) => {\n const { from, to, data, value } = tx;\n if (!to) {\n throw new USwapError(\"wallet_keepkey_send_transaction_no_address\");\n }\n\n const { toHexString } = await import(\"@tcswap/toolboxes/evm\");\n\n return provider.send(\"eth_sendTransaction\", [\n { data: data || \"0x\", from, to, value: toHexString(BigInt(value || 0)) },\n ]);\n },\n };\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "2024307D44097BF064756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ import{a as d,b as u}from"../../chunk-kx2thqhk.js";import{AssetValue as I,Chain as t,ChainId as L,filterSupportedChains as F,USwapError as k,WalletOption as b}from"@tcswap/helpers";import{createWallet as H,getWalletSupportedChains as V}from"@tcswap/wallet-core";import{Chain as a,EVMChains as D,USwapError as p,WalletOption as K}from"@tcswap/helpers";import{erc20ABI as U}from"@tcswap/helpers/contracts";var O=(e)=>{switch(e){case a.Bitcoin:return"bitcoin";case a.BitcoinCash:return"bitcoincash";case a.Dash:return"dash";case a.Dogecoin:return"dogecoin";case a.Litecoin:return"litecoin";default:throw new p("wallet_keepkey_chain_not_supported",{chain:e})}};function f(e){if(!window.keepkey)throw new p("wallet_keepkey_not_found");switch(e){case a.Ethereum:case a.Base:case a.Avalanche:case a.BinanceSmartChain:case a.Arbitrum:case a.Optimism:case a.Polygon:case a.XLayer:return window.keepkey.ethereum;case a.Cosmos:return window.keepkey.cosmos;case a.Bitcoin:return window.keepkey.bitcoin;case a.BitcoinCash:return window.keepkey.bitcoincash;case a.Dogecoin:return window.keepkey.dogecoin;case a.Litecoin:return window.keepkey.litecoin;case a.Dash:return window.keepkey.dash;case a.THORChain:return window.keepkey.thorchain;case a.Maya:return window.keepkey.mayachain;default:return}}function A({method:e,params:c,chain:r}){let s=f(r);return new Promise((o,i)=>{if(s&&"request"in s)s.request({method:e,params:c},(n,m)=>{n?i(n):o(m)});else i(new p("wallet_provider_not_found"))})}async function v(e){let c=f(e);if(!c)throw new p({errorKey:"wallet_provider_not_found",info:{chain:e,wallet:K.KEEPKEY}});let r="request_accounts";if(D.includes(e))r="eth_requestAccounts";let[s]=await c.request({method:r,params:[]});return s}async function w({assetValue:e,recipient:c,memo:r,gasLimit:s},o="transfer"){if(!e)throw new p("wallet_keepkey_asset_not_defined");let i=await v(e.chain),n=[{amount:{amount:e.getValue("string"),decimals:e.decimal},asset:{chain:e.chain,symbol:e.symbol.toUpperCase(),ticker:e.symbol.toUpperCase()},from:i,gasLimit:s,memo:r,recipient:c}];return A({chain:e.chain,method:o,params:n})}function l(e,c){return{approve:async({assetAddress:r,spenderAddress:s,amount:o,from:i})=>{let{MAX_APPROVAL:n,getCreateContractTxObject:m,toHexString:g}=await import("@tcswap/toolboxes/evm"),P=m({chain:c,provider:e}),{value:y,to:T,data:E}=await P({abi:U,contractAddress:r,funcName:"approve",funcParams:[s,BigInt(o||n)],txOverrides:{from:i}});return e.send("eth_sendTransaction",[{data:E||"0x",from:i,to:T,value:g(BigInt(y||0))}])},call:async({contractAddress:r,abi:s,funcName:o,funcParams:i=[],txOverrides:n})=>{if(!r)throw new p("wallet_keepkey_contract_address_not_provided");let{createContract:m,getCreateContractTxObject:g,isStateChangingCall:P,toHexString:y}=await import("@tcswap/toolboxes/evm");if(P({abi:s,funcName:o})){let B=g({chain:c,provider:e}),{value:X,from:M,to:q,data:x}=await B({abi:s,contractAddress:r,funcName:o,funcParams:i,txOverrides:n});return e.send("eth_sendTransaction",[{data:x||"0x",from:M,to:q,value:y(BigInt(X||0))}])}let _=await m(r,s,e)[o]?.(...i);return typeof _?.hash==="string"?_?.hash:_},sendTransaction:async(r)=>{let{from:s,to:o,data:i,value:n}=r;if(!o)throw new p("wallet_keepkey_send_transaction_no_address");let{toHexString:m}=await import("@tcswap/toolboxes/evm");return e.send("eth_sendTransaction",[{data:i||"0x",from:s,to:o,value:m(BigInt(n||0))}])}}}var j=H({connect:({addChain:e,supportedChains:c,walletType:r})=>async function(o){let i=F({chains:o,supportedChains:c,walletType:r});return await Promise.all(i.map(async(n)=>{let m=await v(n),g=await z(n);e({...g,address:m,chain:n,walletType:r})})),!0},name:"connectKeepkeyBex",supportedChains:[t.Arbitrum,t.Avalanche,t.BinanceSmartChain,t.Bitcoin,t.BitcoinCash,t.Base,t.Cosmos,t.Dash,t.Dogecoin,t.Ethereum,t.Kujira,t.Litecoin,t.Maya,t.Optimism,t.Polygon,t.Ripple,t.Solana,t.THORChain,t.XLayer],walletType:b.KEEPKEY_BEX}),$=V(j);async function z(e){switch(e){case t.Maya:case t.THORChain:{let{getCosmosToolbox:c,THORCHAIN_GAS_VALUE:r,MAYA_GAS_VALUE:s}=await import("@tcswap/toolboxes/cosmos"),o=e===t.Maya?s:r;return{...await c(e),deposit:(n)=>w({...n,recipient:""},"deposit"),transfer:(n)=>w({...n,gasLimit:o},"transfer")}}case t.Cosmos:case t.Kujira:{let{getCosmosToolbox:c}=await import("@tcswap/toolboxes/cosmos"),r=window.keepkey?.cosmos?.getOfflineSignerOnlyAmino(L[e]);if(!r)throw new k("wallet_keepkey_signer_not_found");let s=await c(e,{signer:r}),o=await r.getAccounts();if(!o?.[0]?.address)throw new k("wallet_keepkey_no_accounts");let[{address:i}]=o;return{...s,address:i}}case t.Dash:case t.Bitcoin:case t.BitcoinCash:case t.Dogecoin:case t.Litecoin:{let{getUtxoToolbox:c}=await import("@tcswap/toolboxes/utxo");return{...await c(e),getBalance:async()=>{let o=O(e),i=await window?.keepkey?.[o]?.request({method:"request_balance"});return[I.from({chain:e,value:i[0].balance})]},transfer:w}}case t.Ethereum:case t.BinanceSmartChain:case t.Base:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.Avalanche:{let{prepareNetworkSwitch:c,switchEVMWalletNetwork:r}=await import("@tcswap/helpers"),{getEvmToolbox:s}=await import("@tcswap/toolboxes/evm"),{BrowserProvider:o}=await import("ethers"),i=f(e);if(!i)throw new k("wallet_keepkey_not_found");let n=new o(i,"any"),m=await n.getSigner(),g=await s(e,{provider:n,signer:m}),P=l(n,e);try{if(e!==t.Ethereum){let y=g.getNetworkParams();await r(n,e,y)}}catch{throw new k({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:e,wallet:b.KEEPKEY}})}return c({chain:e,provider:n,toolbox:{...g,...P}})}default:return null}}export{j as keepkeyBexWallet,$ as KEEPKEY_BEX_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=AABDB7842505AA2D64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/keepkey-bex/index.ts", "../src/keepkey-bex/walletHelpers.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, Chain, ChainId, filterSupportedChains, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport type { Eip1193Provider } from \"ethers\";\nimport {\n getKEEPKEYAddress,\n getKEEPKEYMethods,\n getKEEPKEYProvider,\n getProviderNameFromChain,\n type WalletTxParams,\n walletTransfer,\n} from \"./walletHelpers\";\n\nexport const keepkeyBexWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectKeepkeyBex(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = await getKEEPKEYAddress(chain);\n const walletMethods = await getWalletMethods(chain);\n\n addChain({ ...walletMethods, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectKeepkeyBex\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Base,\n Chain.Cosmos,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Litecoin,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Ripple,\n Chain.Solana,\n Chain.THORChain,\n Chain.XLayer,\n ],\n walletType: WalletOption.KEEPKEY_BEX,\n});\n\nexport const KEEPKEY_BEX_SUPPORTED_CHAINS = getWalletSupportedChains(keepkeyBexWallet);\n\nasync function getWalletMethods(chain: (typeof KEEPKEY_BEX_SUPPORTED_CHAINS)[number]) {\n switch (chain) {\n case Chain.Maya:\n case Chain.THORChain: {\n const { getCosmosToolbox, THORCHAIN_GAS_VALUE, MAYA_GAS_VALUE } = await import(\"@tcswap/toolboxes/cosmos\");\n\n const gasLimit = chain === Chain.Maya ? MAYA_GAS_VALUE : THORCHAIN_GAS_VALUE;\n const toolbox = await getCosmosToolbox(chain);\n\n return {\n ...toolbox,\n deposit: (tx: WalletTxParams) => walletTransfer({ ...tx, recipient: \"\" }, \"deposit\"),\n transfer: (tx: WalletTxParams) => walletTransfer({ ...tx, gasLimit }, \"transfer\"),\n };\n }\n\n case Chain.Cosmos:\n case Chain.Kujira: {\n const { getCosmosToolbox } = await import(\"@tcswap/toolboxes/cosmos\");\n\n // @ts-expect-error assumed available connection\n const signer = window.keepkey?.cosmos?.getOfflineSignerOnlyAmino(ChainId[chain]);\n if (!signer) throw new USwapError(\"wallet_keepkey_signer_not_found\");\n const toolbox = await getCosmosToolbox(chain, { signer });\n\n const accounts = await signer.getAccounts();\n if (!accounts?.[0]?.address) throw new USwapError(\"wallet_keepkey_no_accounts\");\n\n const [{ address }] = accounts;\n\n return { ...toolbox, address };\n }\n\n case Chain.Dash:\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const toolbox = await getUtxoToolbox(chain);\n\n const getBalance = async () => {\n const providerChain = getProviderNameFromChain(chain);\n // @ts-expect-error We assuming there chains via switch\n const balance = await window?.keepkey?.[providerChain]?.request({ method: \"request_balance\" });\n const assetValue = AssetValue.from({ chain, value: balance[0].balance });\n return [assetValue];\n };\n\n return { ...toolbox, getBalance, transfer: walletTransfer };\n }\n\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Base:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche: {\n const { prepareNetworkSwitch, switchEVMWalletNetwork } = await import(\"@tcswap/helpers\");\n const { getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n const ethereumWindowProvider = getKEEPKEYProvider(chain) as Eip1193Provider;\n\n if (!ethereumWindowProvider) {\n throw new USwapError(\"wallet_keepkey_not_found\");\n }\n\n const provider = new BrowserProvider(ethereumWindowProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n const keepkeyMethods = getKEEPKEYMethods(provider, chain);\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n }\n } catch {\n throw new USwapError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, wallet: WalletOption.KEEPKEY },\n });\n }\n\n return prepareNetworkSwitch({ chain, provider, toolbox: { ...toolbox, ...keepkeyMethods } });\n }\n\n default:\n return null;\n }\n}\n",
6
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type AssetValue,\n Chain,\n type EVMChain,\n EVMChains,\n type FeeOption,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport { erc20ABI } from \"@tcswap/helpers/contracts\";\nimport type { ApproveParams, CallParams, EVMTxParams } from \"@tcswap/toolboxes/evm\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\ninterface UTXOProvider {\n request: (\n args: {\n method: string;\n params?: {\n amount: { amount: string; decimals?: number };\n asset: { chain: Chain; symbol: string; ticker: string };\n memo: string | undefined;\n from?: string;\n recipient: string;\n gasLimit?: string | bigint;\n }[];\n },\n callback: (err: string, tx: string) => void,\n ) => void;\n}\n\ntype TransactionMethod = \"transfer\" | \"deposit\";\n\ntype TransactionParams = {\n asset: string | { chain: string; symbol: string; ticker: string };\n amount: number | string | { amount: string | number; decimals?: number };\n decimal?: number;\n recipient: string;\n memo?: string;\n};\n\nexport type WalletTxParams = {\n feeOptionKey?: FeeOption;\n from?: string;\n memo?: string;\n recipient: string;\n assetValue: AssetValue;\n gasLimit?: string | bigint | undefined;\n};\n\nexport const getProviderNameFromChain = (chain: Chain): string => {\n switch (chain) {\n case Chain.Bitcoin:\n return \"bitcoin\";\n case Chain.BitcoinCash:\n return \"bitcoincash\";\n case Chain.Dash:\n return \"dash\";\n case Chain.Dogecoin:\n return \"dogecoin\";\n case Chain.Litecoin:\n return \"litecoin\";\n default:\n throw new USwapError(\"wallet_keepkey_chain_not_supported\", { chain });\n }\n};\n\ndeclare const window: {\n keepkey?: {\n binance: Eip1193Provider;\n bitcoin: Eip1193Provider;\n bitcoincash: Eip1193Provider;\n dogecoin: Eip1193Provider;\n ethereum: Eip1193Provider;\n cosmos: Eip1193Provider;\n dash: Eip1193Provider;\n litecoin: Eip1193Provider;\n thorchain: Eip1193Provider;\n mayachain: Eip1193Provider;\n };\n} & Window;\n\nexport function getKEEPKEYProvider<T extends Chain>(chain: T) {\n if (!window.keepkey) throw new USwapError(\"wallet_keepkey_not_found\");\n\n switch (chain) {\n case Chain.Ethereum:\n case Chain.Base:\n case Chain.Avalanche:\n case Chain.BinanceSmartChain:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.XLayer:\n return window.keepkey.ethereum as Eip1193Provider;\n case Chain.Cosmos:\n return window.keepkey.cosmos as Eip1193Provider;\n case Chain.Bitcoin:\n return window.keepkey.bitcoin as UTXOProvider;\n case Chain.BitcoinCash:\n return window.keepkey.bitcoincash as UTXOProvider;\n case Chain.Dogecoin:\n return window.keepkey.dogecoin as UTXOProvider;\n case Chain.Litecoin:\n return window.keepkey.litecoin as UTXOProvider;\n case Chain.Dash:\n return window.keepkey.dash as UTXOProvider;\n case Chain.THORChain:\n return window.keepkey.thorchain as UTXOProvider;\n case Chain.Maya:\n return window.keepkey.mayachain as UTXOProvider;\n\n default:\n return undefined;\n }\n}\n\nfunction transaction({\n method,\n params,\n chain,\n}: {\n method: TransactionMethod;\n params: TransactionParams[];\n chain: Chain;\n}): Promise<string> {\n const client = getKEEPKEYProvider(chain);\n\n return new Promise<string>((resolve, reject) => {\n if (client && \"request\" in client) {\n // @ts-expect-error\n client.request({ method, params }, (err: string, tx: string) => {\n err ? reject(err) : resolve(tx);\n });\n } else {\n reject(new USwapError(\"wallet_provider_not_found\"));\n }\n });\n}\n\nexport async function getKEEPKEYAddress(chain: Chain) {\n const eipProvider = getKEEPKEYProvider(chain) as Eip1193Provider;\n if (!eipProvider) {\n throw new USwapError({ errorKey: \"wallet_provider_not_found\", info: { chain, wallet: WalletOption.KEEPKEY } });\n }\n\n let method = \"request_accounts\";\n if (EVMChains.includes(chain as EVMChain)) {\n method = \"eth_requestAccounts\";\n }\n\n const [response] = await eipProvider.request({ method, params: [] });\n return response;\n}\n\nexport async function walletTransfer(\n { assetValue, recipient, memo, gasLimit }: WalletTxParams & { assetValue: AssetValue },\n method: TransactionMethod = \"transfer\",\n) {\n if (!assetValue) {\n throw new USwapError(\"wallet_keepkey_asset_not_defined\");\n }\n\n const from = await getKEEPKEYAddress(assetValue.chain);\n const params = [\n {\n amount: { amount: assetValue.getValue(\"string\"), decimals: assetValue.decimal },\n asset: {\n chain: assetValue.chain,\n symbol: assetValue.symbol.toUpperCase(),\n ticker: assetValue.symbol.toUpperCase(),\n },\n from,\n gasLimit,\n memo,\n recipient,\n },\n ];\n\n return transaction({ chain: assetValue.chain, method, params });\n}\n\nexport function getKEEPKEYMethods(provider: BrowserProvider, chain: EVMChain) {\n return {\n approve: async ({ assetAddress, spenderAddress, amount, from }: ApproveParams) => {\n const { MAX_APPROVAL, getCreateContractTxObject, toHexString } = await import(\"@tcswap/toolboxes/evm\");\n\n const createTx = getCreateContractTxObject({ chain, provider });\n const { value, to, data } = await createTx({\n abi: erc20ABI,\n contractAddress: assetAddress,\n funcName: \"approve\",\n funcParams: [spenderAddress, BigInt(amount || MAX_APPROVAL)],\n txOverrides: { from },\n });\n\n return provider.send(\"eth_sendTransaction\", [\n { data: data || \"0x\", from, to, value: toHexString(BigInt(value || 0)) },\n ]);\n },\n call: async <T>({ contractAddress, abi, funcName, funcParams = [], txOverrides }: CallParams): Promise<T> => {\n if (!contractAddress) {\n throw new USwapError(\"wallet_keepkey_contract_address_not_provided\");\n }\n const { createContract, getCreateContractTxObject, isStateChangingCall, toHexString } = await import(\n \"@tcswap/toolboxes/evm\"\n );\n\n const isStateChanging = isStateChangingCall({ abi, funcName });\n\n if (isStateChanging) {\n const createTx = getCreateContractTxObject({ chain, provider });\n const { value, from, to, data } = await createTx({ abi, contractAddress, funcName, funcParams, txOverrides });\n\n return provider.send(\"eth_sendTransaction\", [\n { data: data || \"0x\", from, to, value: toHexString(BigInt(value || 0)) },\n ]);\n }\n const contract = createContract(contractAddress, abi, provider);\n\n const result = await contract[funcName]?.(...funcParams);\n\n return typeof result?.hash === \"string\" ? result?.hash : result;\n },\n sendTransaction: async (tx: EVMTxParams) => {\n const { from, to, data, value } = tx;\n if (!to) {\n throw new USwapError(\"wallet_keepkey_send_transaction_no_address\");\n }\n\n const { toHexString } = await import(\"@tcswap/toolboxes/evm\");\n\n return provider.send(\"eth_sendTransaction\", [\n { data: data || \"0x\", from, to, value: toHexString(BigInt(value || 0)) },\n ]);\n },\n };\n}\n"
7
+ ],
8
+ "mappings": "mDAIA,qBAAS,WAAY,aAAO,2BAAS,gBAAuB,kBAAY,wBACxE,uBAAS,8BAAc,4BCDvB,gBAEE,eAEA,gBAEA,kBACA,wBAEF,mBAAS,kCAwCF,IAAM,EAA2B,CAAC,IAAyB,CAChE,OAAQ,QACD,EAAM,QACT,MAAO,eACJ,EAAM,YACT,MAAO,mBACJ,EAAM,KACT,MAAO,YACJ,EAAM,SACT,MAAO,gBACJ,EAAM,SACT,MAAO,mBAEP,MAAM,IAAI,EAAW,qCAAsC,CAAE,OAAM,CAAC,IAmBnE,SAAS,CAAmC,CAAC,EAAU,CAC5D,GAAI,CAAC,OAAO,QAAS,MAAM,IAAI,EAAW,0BAA0B,EAEpE,OAAQ,QACD,EAAM,cACN,EAAM,UACN,EAAM,eACN,EAAM,uBACN,EAAM,cACN,EAAM,cACN,EAAM,aACN,EAAM,OACT,OAAO,OAAO,QAAQ,cACnB,EAAM,OACT,OAAO,OAAO,QAAQ,YACnB,EAAM,QACT,OAAO,OAAO,QAAQ,aACnB,EAAM,YACT,OAAO,OAAO,QAAQ,iBACnB,EAAM,SACT,OAAO,OAAO,QAAQ,cACnB,EAAM,SACT,OAAO,OAAO,QAAQ,cACnB,EAAM,KACT,OAAO,OAAO,QAAQ,UACnB,EAAM,UACT,OAAO,OAAO,QAAQ,eACnB,EAAM,KACT,OAAO,OAAO,QAAQ,kBAGtB,QAIN,SAAS,CAAW,EAClB,SACA,SACA,SAKkB,CAClB,IAAM,EAAS,EAAmB,CAAK,EAEvC,OAAO,IAAI,QAAgB,CAAC,EAAS,IAAW,CAC9C,GAAI,GAAU,YAAa,EAEzB,EAAO,QAAQ,CAAE,SAAQ,QAAO,EAAG,CAAC,EAAa,IAAe,CAC9D,EAAM,EAAO,CAAG,EAAI,EAAQ,CAAE,EAC/B,EAED,OAAO,IAAI,EAAW,2BAA2B,CAAC,EAErD,EAGH,eAAsB,CAAiB,CAAC,EAAc,CACpD,IAAM,EAAc,EAAmB,CAAK,EAC5C,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,CAAE,SAAU,4BAA6B,KAAM,CAAE,QAAO,OAAQ,EAAa,OAAQ,CAAE,CAAC,EAG/G,IAAI,EAAS,mBACb,GAAI,EAAU,SAAS,CAAiB,EACtC,EAAS,sBAGX,IAAO,GAAY,MAAM,EAAY,QAAQ,CAAE,SAAQ,OAAQ,CAAC,CAAE,CAAC,EACnE,OAAO,EAGT,eAAsB,CAAc,EAChC,aAAY,YAAW,OAAM,YAC/B,EAA4B,WAC5B,CACA,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,kCAAkC,EAGzD,IAAM,EAAO,MAAM,EAAkB,EAAW,KAAK,EAC/C,EAAS,CACb,CACE,OAAQ,CAAE,OAAQ,EAAW,SAAS,QAAQ,EAAG,SAAU,EAAW,OAAQ,EAC9E,MAAO,CACL,MAAO,EAAW,MAClB,OAAQ,EAAW,OAAO,YAAY,EACtC,OAAQ,EAAW,OAAO,YAAY,CACxC,EACA,OACA,WACA,OACA,WACF,CACF,EAEA,OAAO,EAAY,CAAE,MAAO,EAAW,MAAO,SAAQ,QAAO,CAAC,EAGzD,SAAS,CAAiB,CAAC,EAA2B,EAAiB,CAC5E,MAAO,CACL,QAAS,OAAS,eAAc,iBAAgB,SAAQ,UAA0B,CAChF,IAAQ,eAAc,4BAA2B,eAAgB,KAAa,iCAExE,EAAW,EAA0B,CAAE,QAAO,UAAS,CAAC,GACtD,QAAO,KAAI,QAAS,MAAM,EAAS,CACzC,IAAK,EACL,gBAAiB,EACjB,SAAU,UACV,WAAY,CAAC,EAAgB,OAAO,GAAU,CAAY,CAAC,EAC3D,YAAa,CAAE,MAAK,CACtB,CAAC,EAED,OAAO,EAAS,KAAK,sBAAuB,CAC1C,CAAE,KAAM,GAAQ,KAAM,OAAM,KAAI,MAAO,EAAY,OAAO,GAAS,CAAC,CAAC,CAAE,CACzE,CAAC,GAEH,KAAM,OAAY,kBAAiB,MAAK,WAAU,aAAa,CAAC,EAAG,iBAA0C,CAC3G,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,8CAA8C,EAErE,IAAQ,iBAAgB,4BAA2B,sBAAqB,eAAgB,KACtF,iCAKF,GAFwB,EAAoB,CAAE,MAAK,UAAS,CAAC,EAExC,CACnB,IAAM,EAAW,EAA0B,CAAE,QAAO,UAAS,CAAC,GACtD,QAAO,OAAM,KAAI,QAAS,MAAM,EAAS,CAAE,MAAK,kBAAiB,WAAU,aAAY,aAAY,CAAC,EAE5G,OAAO,EAAS,KAAK,sBAAuB,CAC1C,CAAE,KAAM,GAAQ,KAAM,OAAM,KAAI,MAAO,EAAY,OAAO,GAAS,CAAC,CAAC,CAAE,CACzE,CAAC,EAIH,IAAM,EAAS,MAFE,EAAe,EAAiB,EAAK,CAAQ,EAEhC,KAAY,GAAG,CAAU,EAEvD,OAAO,OAAO,GAAQ,OAAS,SAAW,GAAQ,KAAO,GAE3D,gBAAiB,MAAO,IAAoB,CAC1C,IAAQ,OAAM,KAAI,OAAM,SAAU,EAClC,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,4CAA4C,EAGnE,IAAQ,eAAgB,KAAa,iCAErC,OAAO,EAAS,KAAK,sBAAuB,CAC1C,CAAE,KAAM,GAAQ,KAAM,OAAM,KAAI,MAAO,EAAY,OAAO,GAAS,CAAC,CAAC,CAAE,CACzE,CAAC,EAEL,ED/NK,IAAM,EAAmB,EAAa,CAC3C,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAgC,CAAC,EAAiB,CAChD,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAWpF,OATA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAU,MAAM,EAAkB,CAAK,EACvC,EAAgB,MAAM,EAAiB,CAAK,EAElD,EAAS,IAAK,EAAe,UAAS,QAAO,YAAW,CAAC,EAC1D,CACH,EAEO,IAEX,KAAM,oBACN,gBAAiB,CACf,EAAM,SACN,EAAM,UACN,EAAM,kBACN,EAAM,QACN,EAAM,YACN,EAAM,KACN,EAAM,OACN,EAAM,KACN,EAAM,SACN,EAAM,SACN,EAAM,OACN,EAAM,SACN,EAAM,KACN,EAAM,SACN,EAAM,QACN,EAAM,OACN,EAAM,OACN,EAAM,UACN,EAAM,MACR,EACA,WAAY,EAAa,WAC3B,CAAC,EAEY,EAA+B,EAAyB,CAAgB,EAErF,eAAe,CAAgB,CAAC,EAAsD,CACpF,OAAQ,QACD,EAAM,UACN,EAAM,UAAW,CACpB,IAAQ,mBAAkB,sBAAqB,kBAAmB,KAAa,oCAEzE,EAAW,IAAU,EAAM,KAAO,EAAiB,EAGzD,MAAO,IAFS,MAAM,EAAiB,CAAK,EAI1C,QAAS,CAAC,IAAuB,EAAe,IAAK,EAAI,UAAW,EAAG,EAAG,SAAS,EACnF,SAAU,CAAC,IAAuB,EAAe,IAAK,EAAI,UAAS,EAAG,UAAU,CAClF,CACF,MAEK,EAAM,YACN,EAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,oCAGpC,EAAS,OAAO,SAAS,QAAQ,0BAA0B,EAAQ,EAAM,EAC/E,GAAI,CAAC,EAAQ,MAAM,IAAI,EAAW,iCAAiC,EACnE,IAAM,EAAU,MAAM,EAAiB,EAAO,CAAE,QAAO,CAAC,EAElD,EAAW,MAAM,EAAO,YAAY,EAC1C,GAAI,CAAC,IAAW,IAAI,QAAS,MAAM,IAAI,EAAW,4BAA4B,EAE9E,KAAS,YAAa,EAEtB,MAAO,IAAK,EAAS,SAAQ,CAC/B,MAEK,EAAM,UACN,EAAM,aACN,EAAM,iBACN,EAAM,cACN,EAAM,SAAU,CACnB,IAAQ,kBAAmB,KAAa,kCAWxC,MAAO,IAVS,MAAM,EAAe,CAAK,EAUrB,WARF,SAAY,CAC7B,IAAM,EAAgB,EAAyB,CAAK,EAE9C,EAAU,MAAM,QAAQ,UAAU,IAAgB,QAAQ,CAAE,OAAQ,iBAAkB,CAAC,EAE7F,MAAO,CADY,EAAW,KAAK,CAAE,QAAO,MAAO,EAAQ,GAAG,OAAQ,CAAC,CACrD,GAGa,SAAU,CAAe,CAC5D,MAEK,EAAM,cACN,EAAM,uBACN,EAAM,UACN,EAAM,cACN,EAAM,cACN,EAAM,aACN,EAAM,UAAW,CACpB,IAAQ,uBAAsB,0BAA2B,KAAa,4BAC9D,iBAAkB,KAAa,kCAC/B,mBAAoB,KAAa,kBACnC,EAAyB,EAAmB,CAAK,EAEvD,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,0BAA0B,EAGjD,IAAM,EAAW,IAAI,EAAgB,EAAwB,KAAK,EAC5D,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EACzD,EAAiB,EAAkB,EAAU,CAAK,EAExD,GAAI,CACF,GAAI,IAAU,EAAM,SAAU,CAC5B,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,EAAuB,EAAU,EAAO,CAAa,GAE7D,KAAM,CACN,MAAM,IAAI,EAAW,CACnB,SAAU,yCACV,KAAM,CAAE,QAAO,OAAQ,EAAa,OAAQ,CAC9C,CAAC,EAGH,OAAO,EAAqB,CAAE,QAAO,WAAU,QAAS,IAAK,KAAY,CAAe,CAAE,CAAC,CAC7F,SAGE,OAAO",
9
+ "debugId": "AABDB7842505AA2D64756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ var x={};E(x,{keplrWallet:()=>p,KEPLR_SUPPORTED_CHAINS:()=>I});module.exports=f(x);var i=require("@tcswap/helpers"),c=require("@tcswap/wallet-core");var o=require("@tcswap/helpers"),l=new Map([[o.ChainId.Kujira,{bech32Config:{bech32PrefixAccAddr:"kujira",bech32PrefixAccPub:"kujirapub",bech32PrefixConsAddr:"kujiravalcons",bech32PrefixConsPub:"kujiravalconspub",bech32PrefixValAddr:"kujiravaloper",bech32PrefixValPub:"kujiravaloperpub"},bip44:{coinType:118},chainId:"kaiyo-1",chainName:"Kujira",chainSymbolImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/chain.png",currencies:[{coinDecimals:6,coinDenom:"KUJI",coinGeckoId:"kujira",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png",coinMinimalDenom:"ukuji"},{coinDecimals:6,coinDenom:"USK",coinGeckoId:"usk",coinMinimalDenom:"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk"},{coinDecimals:6,coinDenom:"MNTA",coinGeckoId:"mantadao",coinMinimalDenom:"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta"},{coinDecimals:6,coinDenom:"bKUJI",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/bKUJI.png",coinMinimalDenom:"factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/boneKuji"},{coinDecimals:6,coinDenom:"AQLA",coinGeckoId:"aqualibre",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/AQLA.png",coinMinimalDenom:"factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/uaqla"}],features:["cosmwasm"],feeCurrencies:[{coinDecimals:6,coinDenom:"KUJI",coinGeckoId:"kujira",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png",coinMinimalDenom:"ukuji"},{coinDecimals:6,coinDenom:"USK",coinGeckoId:"usk",coinMinimalDenom:"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk"},{coinDecimals:6,coinDenom:"axlUSDC",coinGeckoId:"usd-coin",coinMinimalDenom:"ibc/295548A78785A1007F232DE286149A6FF512F180AF5657780FC89C009E2C348F"},{coinDecimals:6,coinDenom:"ATOM",coinGeckoId:"cosmos",coinMinimalDenom:"ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2"},{coinDecimals:6,coinDenom:"OSMO",coinGeckoId:"osmosis",coinMinimalDenom:"ibc/47BD209179859CDE4A2806763D7189B6E6FE13A17880FE2B42DE1E6C1E329E23"},{coinDecimals:6,coinDenom:"CMDX",coinGeckoId:"comdex",coinMinimalDenom:"ibc/3607EB5B5E64DD1C0E12E07F077FF470D5BC4706AFCBC98FE1BA960E5AE4CE07"},{coinDecimals:6,coinDenom:"EVMOS",coinGeckoId:"evmos",coinMinimalDenom:"ibc/F3AA7EF362EC5E791FE78A0F4CCC69FEE1F9A7485EB1A8CAB3F6601C00522F10"},{coinDecimals:6,coinDenom:"JUNO",coinGeckoId:"juno-network",coinMinimalDenom:"ibc/EFF323CC632EC4F747C61BCE238A758EFDB7699C3226565F7C20DA06509D59A5"},{coinDecimals:6,coinDenom:"MNTA",coinGeckoId:"mantadao",coinMinimalDenom:"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta"},{coinDecimals:6,coinDenom:"SCRT",coinGeckoId:"secret",coinMinimalDenom:"ibc/A358D7F19237777AF6D8AD0E0F53268F8B18AE8A53ED318095C14D6D7F3B2DB5"},{coinDecimals:6,coinDenom:"STARS",coinGeckoId:"stargaze",coinMinimalDenom:"ibc/4F393C3FCA4190C0A6756CE7F6D897D5D1BE57D6CCB80D0BC87393566A7B6602"},{coinDecimals:18,coinDenom:"wAVAX",coinGeckoId:"avalanche-2",coinMinimalDenom:"ibc/004EBF085BBED1029326D56BE8A2E67C08CECE670A94AC1947DF413EF5130EB2"},{coinDecimals:18,coinDenom:"wETH",coinGeckoId:"ethereum",coinMinimalDenom:"ibc/1B38805B1C75352B28169284F96DF56BDEBD9E8FAC005BDCC8CF0378C82AA8E7"}],nodeProvider:{email:"pfc-validator@protonmail.com",name:"PFC",website:"https://pfc.zone/"},rest:"https://rest.cosmos.directory/kujira/",rpc:"https://kujira-rpc.nodes.defiantlabs.net",stakeCurrency:{coinDecimals:6,coinDenom:"KUJI",coinGeckoId:"kujira",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png",coinMinimalDenom:"ukuji"}}],[o.ChainId.Noble,{bech32Config:{bech32PrefixAccAddr:"noble",bech32PrefixAccPub:"noblepub",bech32PrefixConsAddr:"noblevalcons",bech32PrefixConsPub:"noblevalconspub",bech32PrefixValAddr:"noblevaloper",bech32PrefixValPub:"noblevaloperpub"},bip44:{coinType:118},chainId:"noble-1",chainName:"Noble",chainSymbolImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/chain.png",currencies:[{coinDecimals:6,coinDenom:"USDC",coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png",coinMinimalDenom:"uusdc"},{coinDecimals:6,coinDenom:"USDN",coinGeckoId:"usd-coin",coinMinimalDenom:"uusdn"}],features:["cosmwasm"],feeCurrencies:[{coinDecimals:6,coinDenom:"USDC",coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png",coinMinimalDenom:"uusdc"},{coinDecimals:6,coinDenom:"USDN",coinGeckoId:"usd-coin",coinMinimalDenom:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdn.png"}],rest:"https://lcd-noble.keplr.app",rpc:"https://rpc-noble.keplr.app"}],[o.ChainId.THORChain,{bech32Config:{bech32PrefixAccAddr:"thor",bech32PrefixAccPub:"thorpub",bech32PrefixConsAddr:"thorvalcons",bech32PrefixConsPub:"thorvalconspub",bech32PrefixValAddr:"thorvaloper",bech32PrefixValPub:"thorvaloperpub"},bip44:{coinType:931},chainId:"thorchain-1",chainName:"THORChain",chainSymbolImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/chain.png",currencies:[{coinDecimals:8,coinDenom:"RUNE",coinGeckoId:"thorchain",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png",coinMinimalDenom:"rune"}],features:[],feeCurrencies:[{coinDecimals:8,coinDenom:"RUNE",coinGeckoId:"thorchain",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png",coinMinimalDenom:"rune",gasPriceStep:{average:0.02,high:0.03,low:0.02}}],rest:"https://lcd-thorchain.keplr.app",rpc:"https://rpc-thorchain.keplr.app"}]]);var y=[i.ChainId.Cosmos,i.ChainId.Kujira,i.ChainId.Noble,i.ChainId.THORChain],p=c.createWallet({connect:({addChain:h,supportedChains:u})=>async function(D,a=i.WalletOption.KEPLR){let d=a===i.WalletOption.LEAP?"leap":"keplr",k=i.filterSupportedChains({chains:D,supportedChains:u,walletType:a}),r=window[d];return await Promise.all(k.map(async(n)=>{let e=i.ChainToChainId[n];if(!y.includes(e)){let m=l.get(e);if(!m)throw new i.USwapError("wallet_keplr_chain_not_supported",{chain:n});await r.experimentalSuggestChain(m)}r?.enable(e);let s=r?.getOfflineSignerOnlyAmino(e);if(!s)throw new i.USwapError("wallet_keplr_signer_not_found");let{getCosmosToolbox:g}=await import("@tcswap/toolboxes/cosmos"),t=await s.getAccounts();if(!t?.[0]?.address)throw new i.USwapError("wallet_keplr_no_accounts");let[{address:b}]=t,C=await g(n,{signer:s});h({...C,address:b,chain:n,walletType:a})})),!0},name:"connectKeplr",supportedChains:[i.Chain.Cosmos,i.Chain.Kujira,i.Chain.Noble,i.Chain.THORChain]}),I=c.getWalletSupportedChains(p);
2
+
3
+ //# debugId=FADA8614D081D3B764756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/keplr/index.ts", "../src/keplr/chainRegistry.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { Chain, ChainId, ChainToChainId, filterSupportedChains, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { chainRegistry } from \"./chainRegistry\";\n\nconst keplrSupportedChainIds = [ChainId.Cosmos, ChainId.Kujira, ChainId.Noble, ChainId.THORChain] as const;\n\nexport const keplrWallet = createWallet({\n connect: ({ addChain, supportedChains }) =>\n async function connectKeplr(\n chains: Chain[],\n walletType: WalletOption.KEPLR | WalletOption.LEAP = WalletOption.KEPLR,\n ) {\n const extensionKey = walletType === WalletOption.LEAP ? \"leap\" : \"keplr\";\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const keplrClient = window[extensionKey];\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const chainId = ChainToChainId[chain] as (typeof keplrSupportedChainIds)[number];\n\n if (!keplrSupportedChainIds.includes(chainId)) {\n const chainConfig = chainRegistry.get(chainId);\n if (!chainConfig) throw new USwapError(\"wallet_keplr_chain_not_supported\", { chain });\n\n await keplrClient.experimentalSuggestChain(chainConfig);\n }\n\n keplrClient?.enable(chainId);\n const signer = keplrClient?.getOfflineSignerOnlyAmino(chainId);\n if (!signer) throw new USwapError(\"wallet_keplr_signer_not_found\");\n\n const { getCosmosToolbox } = await import(\"@tcswap/toolboxes/cosmos\");\n\n const accounts = await signer.getAccounts();\n if (!accounts?.[0]?.address) throw new USwapError(\"wallet_keplr_no_accounts\");\n\n const [{ address }] = accounts;\n const toolbox = await getCosmosToolbox(chain, { signer });\n\n addChain({ ...toolbox, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectKeplr\",\n supportedChains: [Chain.Cosmos, Chain.Kujira, Chain.Noble, Chain.THORChain],\n});\n\nexport const KEPLR_SUPPORTED_CHAINS = getWalletSupportedChains(keplrWallet);\n",
6
+ "import type { ChainInfo } from \"@keplr-wallet/types\";\nimport { ChainId } from \"@tcswap/helpers\";\n\nexport const chainRegistry = new Map<ChainId, ChainInfo>([\n [\n ChainId.Kujira,\n {\n bech32Config: {\n bech32PrefixAccAddr: \"kujira\",\n bech32PrefixAccPub: \"kujirapub\",\n bech32PrefixConsAddr: \"kujiravalcons\",\n bech32PrefixConsPub: \"kujiravalconspub\",\n bech32PrefixValAddr: \"kujiravaloper\",\n bech32PrefixValPub: \"kujiravaloperpub\",\n },\n bip44: { coinType: 118 },\n chainId: \"kaiyo-1\",\n chainName: \"Kujira\",\n chainSymbolImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/chain.png\",\n currencies: [\n {\n coinDecimals: 6,\n coinDenom: \"KUJI\",\n coinGeckoId: \"kujira\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png\",\n coinMinimalDenom: \"ukuji\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"USK\",\n coinGeckoId: \"usk\",\n coinMinimalDenom: \"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"MNTA\",\n coinGeckoId: \"mantadao\",\n coinMinimalDenom: \"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"bKUJI\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/bKUJI.png\",\n coinMinimalDenom: \"factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/boneKuji\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"AQLA\",\n coinGeckoId: \"aqualibre\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/AQLA.png\",\n coinMinimalDenom: \"factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/uaqla\",\n },\n ],\n features: [\"cosmwasm\"],\n feeCurrencies: [\n {\n coinDecimals: 6,\n coinDenom: \"KUJI\",\n coinGeckoId: \"kujira\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png\",\n coinMinimalDenom: \"ukuji\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"USK\",\n coinGeckoId: \"usk\",\n coinMinimalDenom: \"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"axlUSDC\",\n coinGeckoId: \"usd-coin\",\n coinMinimalDenom: \"ibc/295548A78785A1007F232DE286149A6FF512F180AF5657780FC89C009E2C348F\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"ATOM\",\n coinGeckoId: \"cosmos\",\n coinMinimalDenom: \"ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"OSMO\",\n coinGeckoId: \"osmosis\",\n coinMinimalDenom: \"ibc/47BD209179859CDE4A2806763D7189B6E6FE13A17880FE2B42DE1E6C1E329E23\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"CMDX\",\n coinGeckoId: \"comdex\",\n coinMinimalDenom: \"ibc/3607EB5B5E64DD1C0E12E07F077FF470D5BC4706AFCBC98FE1BA960E5AE4CE07\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"EVMOS\",\n coinGeckoId: \"evmos\",\n coinMinimalDenom: \"ibc/F3AA7EF362EC5E791FE78A0F4CCC69FEE1F9A7485EB1A8CAB3F6601C00522F10\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"JUNO\",\n coinGeckoId: \"juno-network\",\n coinMinimalDenom: \"ibc/EFF323CC632EC4F747C61BCE238A758EFDB7699C3226565F7C20DA06509D59A5\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"MNTA\",\n coinGeckoId: \"mantadao\",\n coinMinimalDenom: \"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"SCRT\",\n coinGeckoId: \"secret\",\n coinMinimalDenom: \"ibc/A358D7F19237777AF6D8AD0E0F53268F8B18AE8A53ED318095C14D6D7F3B2DB5\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"STARS\",\n coinGeckoId: \"stargaze\",\n coinMinimalDenom: \"ibc/4F393C3FCA4190C0A6756CE7F6D897D5D1BE57D6CCB80D0BC87393566A7B6602\",\n },\n {\n coinDecimals: 18,\n coinDenom: \"wAVAX\",\n coinGeckoId: \"avalanche-2\",\n coinMinimalDenom: \"ibc/004EBF085BBED1029326D56BE8A2E67C08CECE670A94AC1947DF413EF5130EB2\",\n },\n {\n coinDecimals: 18,\n coinDenom: \"wETH\",\n coinGeckoId: \"ethereum\",\n coinMinimalDenom: \"ibc/1B38805B1C75352B28169284F96DF56BDEBD9E8FAC005BDCC8CF0378C82AA8E7\",\n },\n ],\n nodeProvider: { email: \"pfc-validator@protonmail.com\", name: \"PFC\", website: \"https://pfc.zone/\" },\n rest: \"https://rest.cosmos.directory/kujira/\",\n rpc: \"https://kujira-rpc.nodes.defiantlabs.net\",\n stakeCurrency: {\n coinDecimals: 6,\n coinDenom: \"KUJI\",\n coinGeckoId: \"kujira\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png\",\n coinMinimalDenom: \"ukuji\",\n },\n },\n ],\n [\n ChainId.Noble,\n {\n bech32Config: {\n bech32PrefixAccAddr: \"noble\",\n bech32PrefixAccPub: \"noblepub\",\n bech32PrefixConsAddr: \"noblevalcons\",\n bech32PrefixConsPub: \"noblevalconspub\",\n bech32PrefixValAddr: \"noblevaloper\",\n bech32PrefixValPub: \"noblevaloperpub\",\n },\n bip44: { coinType: 118 },\n chainId: \"noble-1\",\n chainName: \"Noble\",\n chainSymbolImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/chain.png\",\n currencies: [\n {\n coinDecimals: 6,\n coinDenom: \"USDC\",\n coinGeckoId: \"usd-coin\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png\",\n coinMinimalDenom: \"uusdc\",\n },\n { coinDecimals: 6, coinDenom: \"USDN\", coinGeckoId: \"usd-coin\", coinMinimalDenom: \"uusdn\" },\n ],\n features: [\"cosmwasm\"],\n feeCurrencies: [\n {\n coinDecimals: 6,\n coinDenom: \"USDC\",\n coinGeckoId: \"usd-coin\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png\",\n coinMinimalDenom: \"uusdc\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"USDN\",\n coinGeckoId: \"usd-coin\",\n coinMinimalDenom:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdn.png\",\n },\n ],\n rest: \"https://lcd-noble.keplr.app\",\n rpc: \"https://rpc-noble.keplr.app\",\n },\n ],\n [\n ChainId.THORChain,\n {\n bech32Config: {\n bech32PrefixAccAddr: \"thor\",\n bech32PrefixAccPub: \"thorpub\",\n bech32PrefixConsAddr: \"thorvalcons\",\n bech32PrefixConsPub: \"thorvalconspub\",\n bech32PrefixValAddr: \"thorvaloper\",\n bech32PrefixValPub: \"thorvaloperpub\",\n },\n bip44: { coinType: 931 },\n chainId: \"thorchain-1\",\n chainName: \"THORChain\",\n chainSymbolImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/chain.png\",\n currencies: [\n {\n coinDecimals: 8,\n coinDenom: \"RUNE\",\n coinGeckoId: \"thorchain\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png\",\n coinMinimalDenom: \"rune\",\n },\n ],\n features: [],\n feeCurrencies: [\n {\n coinDecimals: 8,\n coinDenom: \"RUNE\",\n coinGeckoId: \"thorchain\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png\",\n coinMinimalDenom: \"rune\",\n gasPriceStep: { average: 0.02, high: 0.03, low: 0.02 },\n },\n ],\n rest: \"https://lcd-thorchain.keplr.app\",\n rpc: \"https://rpc-thorchain.keplr.app\",\n },\n ],\n]);\n"
7
+ ],
8
+ "mappings": "mFAIgG,IAAhG,6BACA,iCCJwB,IAAxB,6BAEa,EAAgB,IAAI,IAAwB,CACvD,CACE,UAAQ,OACR,CACE,aAAc,CACZ,oBAAqB,SACrB,mBAAoB,YACpB,qBAAsB,gBACtB,oBAAqB,mBACrB,oBAAqB,gBACrB,mBAAoB,kBACtB,EACA,MAAO,CAAE,SAAU,GAAI,EACvB,QAAS,UACT,UAAW,SACX,oBACE,gGACF,WAAY,CACV,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,aAAc,gGACd,iBAAkB,OACpB,EACA,CACE,aAAc,EACd,UAAW,MACX,YAAa,MACb,iBAAkB,gFACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,WACb,iBAAkB,6DACpB,EACA,CACE,aAAc,EACd,UAAW,QACX,aACE,0KACF,iBAAkB,oFACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,YACb,aACE,qJACF,iBAAkB,6DACpB,CACF,EACA,SAAU,CAAC,UAAU,EACrB,cAAe,CACb,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,aAAc,gGACd,iBAAkB,OACpB,EACA,CACE,aAAc,EACd,UAAW,MACX,YAAa,MACb,iBAAkB,gFACpB,EACA,CACE,aAAc,EACd,UAAW,UACX,YAAa,WACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,UACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,QACX,YAAa,QACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,eACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,WACb,iBAAkB,6DACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,QACX,YAAa,WACb,iBAAkB,sEACpB,EACA,CACE,aAAc,GACd,UAAW,QA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",
9
+ "debugId": "FADA8614D081D3B764756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ import{a as f,b as E}from"../../chunk-kx2thqhk.js";import{Chain as e,ChainId as o,ChainToChainId as y,filterSupportedChains as I,USwapError as t,WalletOption as h}from"@tcswap/helpers";import{createWallet as x,getWalletSupportedChains as F}from"@tcswap/wallet-core";import{ChainId as s}from"@tcswap/helpers";var p=new Map([[s.Kujira,{bech32Config:{bech32PrefixAccAddr:"kujira",bech32PrefixAccPub:"kujirapub",bech32PrefixConsAddr:"kujiravalcons",bech32PrefixConsPub:"kujiravalconspub",bech32PrefixValAddr:"kujiravaloper",bech32PrefixValPub:"kujiravaloperpub"},bip44:{coinType:118},chainId:"kaiyo-1",chainName:"Kujira",chainSymbolImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/chain.png",currencies:[{coinDecimals:6,coinDenom:"KUJI",coinGeckoId:"kujira",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png",coinMinimalDenom:"ukuji"},{coinDecimals:6,coinDenom:"USK",coinGeckoId:"usk",coinMinimalDenom:"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk"},{coinDecimals:6,coinDenom:"MNTA",coinGeckoId:"mantadao",coinMinimalDenom:"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta"},{coinDecimals:6,coinDenom:"bKUJI",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/bKUJI.png",coinMinimalDenom:"factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/boneKuji"},{coinDecimals:6,coinDenom:"AQLA",coinGeckoId:"aqualibre",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/AQLA.png",coinMinimalDenom:"factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/uaqla"}],features:["cosmwasm"],feeCurrencies:[{coinDecimals:6,coinDenom:"KUJI",coinGeckoId:"kujira",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png",coinMinimalDenom:"ukuji"},{coinDecimals:6,coinDenom:"USK",coinGeckoId:"usk",coinMinimalDenom:"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk"},{coinDecimals:6,coinDenom:"axlUSDC",coinGeckoId:"usd-coin",coinMinimalDenom:"ibc/295548A78785A1007F232DE286149A6FF512F180AF5657780FC89C009E2C348F"},{coinDecimals:6,coinDenom:"ATOM",coinGeckoId:"cosmos",coinMinimalDenom:"ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2"},{coinDecimals:6,coinDenom:"OSMO",coinGeckoId:"osmosis",coinMinimalDenom:"ibc/47BD209179859CDE4A2806763D7189B6E6FE13A17880FE2B42DE1E6C1E329E23"},{coinDecimals:6,coinDenom:"CMDX",coinGeckoId:"comdex",coinMinimalDenom:"ibc/3607EB5B5E64DD1C0E12E07F077FF470D5BC4706AFCBC98FE1BA960E5AE4CE07"},{coinDecimals:6,coinDenom:"EVMOS",coinGeckoId:"evmos",coinMinimalDenom:"ibc/F3AA7EF362EC5E791FE78A0F4CCC69FEE1F9A7485EB1A8CAB3F6601C00522F10"},{coinDecimals:6,coinDenom:"JUNO",coinGeckoId:"juno-network",coinMinimalDenom:"ibc/EFF323CC632EC4F747C61BCE238A758EFDB7699C3226565F7C20DA06509D59A5"},{coinDecimals:6,coinDenom:"MNTA",coinGeckoId:"mantadao",coinMinimalDenom:"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta"},{coinDecimals:6,coinDenom:"SCRT",coinGeckoId:"secret",coinMinimalDenom:"ibc/A358D7F19237777AF6D8AD0E0F53268F8B18AE8A53ED318095C14D6D7F3B2DB5"},{coinDecimals:6,coinDenom:"STARS",coinGeckoId:"stargaze",coinMinimalDenom:"ibc/4F393C3FCA4190C0A6756CE7F6D897D5D1BE57D6CCB80D0BC87393566A7B6602"},{coinDecimals:18,coinDenom:"wAVAX",coinGeckoId:"avalanche-2",coinMinimalDenom:"ibc/004EBF085BBED1029326D56BE8A2E67C08CECE670A94AC1947DF413EF5130EB2"},{coinDecimals:18,coinDenom:"wETH",coinGeckoId:"ethereum",coinMinimalDenom:"ibc/1B38805B1C75352B28169284F96DF56BDEBD9E8FAC005BDCC8CF0378C82AA8E7"}],nodeProvider:{email:"pfc-validator@protonmail.com",name:"PFC",website:"https://pfc.zone/"},rest:"https://rest.cosmos.directory/kujira/",rpc:"https://kujira-rpc.nodes.defiantlabs.net",stakeCurrency:{coinDecimals:6,coinDenom:"KUJI",coinGeckoId:"kujira",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png",coinMinimalDenom:"ukuji"}}],[s.Noble,{bech32Config:{bech32PrefixAccAddr:"noble",bech32PrefixAccPub:"noblepub",bech32PrefixConsAddr:"noblevalcons",bech32PrefixConsPub:"noblevalconspub",bech32PrefixValAddr:"noblevaloper",bech32PrefixValPub:"noblevaloperpub"},bip44:{coinType:118},chainId:"noble-1",chainName:"Noble",chainSymbolImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/chain.png",currencies:[{coinDecimals:6,coinDenom:"USDC",coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png",coinMinimalDenom:"uusdc"},{coinDecimals:6,coinDenom:"USDN",coinGeckoId:"usd-coin",coinMinimalDenom:"uusdn"}],features:["cosmwasm"],feeCurrencies:[{coinDecimals:6,coinDenom:"USDC",coinGeckoId:"usd-coin",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png",coinMinimalDenom:"uusdc"},{coinDecimals:6,coinDenom:"USDN",coinGeckoId:"usd-coin",coinMinimalDenom:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdn.png"}],rest:"https://lcd-noble.keplr.app",rpc:"https://rpc-noble.keplr.app"}],[s.THORChain,{bech32Config:{bech32PrefixAccAddr:"thor",bech32PrefixAccPub:"thorpub",bech32PrefixConsAddr:"thorvalcons",bech32PrefixConsPub:"thorvalconspub",bech32PrefixValAddr:"thorvaloper",bech32PrefixValPub:"thorvaloperpub"},bip44:{coinType:931},chainId:"thorchain-1",chainName:"THORChain",chainSymbolImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/chain.png",currencies:[{coinDecimals:8,coinDenom:"RUNE",coinGeckoId:"thorchain",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png",coinMinimalDenom:"rune"}],features:[],feeCurrencies:[{coinDecimals:8,coinDenom:"RUNE",coinGeckoId:"thorchain",coinImageUrl:"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png",coinMinimalDenom:"rune",gasPriceStep:{average:0.02,high:0.03,low:0.02}}],rest:"https://lcd-thorchain.keplr.app",rpc:"https://rpc-thorchain.keplr.app"}]]);var w=[o.Cosmos,o.Kujira,o.Noble,o.THORChain],j=x({connect:({addChain:u,supportedChains:D})=>async function(d,c=h.KEPLR){let k=c===h.LEAP?"leap":"keplr",g=I({chains:d,supportedChains:D,walletType:c}),a=window[k];return await Promise.all(g.map(async(i)=>{let n=y[i];if(!w.includes(n)){let l=p.get(n);if(!l)throw new t("wallet_keplr_chain_not_supported",{chain:i});await a.experimentalSuggestChain(l)}a?.enable(n);let r=a?.getOfflineSignerOnlyAmino(n);if(!r)throw new t("wallet_keplr_signer_not_found");let{getCosmosToolbox:b}=await import("@tcswap/toolboxes/cosmos"),m=await r.getAccounts();if(!m?.[0]?.address)throw new t("wallet_keplr_no_accounts");let[{address:C}]=m,A=await b(i,{signer:r});u({...A,address:C,chain:i,walletType:c})})),!0},name:"connectKeplr",supportedChains:[e.Cosmos,e.Kujira,e.Noble,e.THORChain]}),G=F(j);export{j as keplrWallet,G as KEPLR_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=B77FBB524A3DBB1C64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/keplr/index.ts", "../src/keplr/chainRegistry.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { Chain, ChainId, ChainToChainId, filterSupportedChains, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { chainRegistry } from \"./chainRegistry\";\n\nconst keplrSupportedChainIds = [ChainId.Cosmos, ChainId.Kujira, ChainId.Noble, ChainId.THORChain] as const;\n\nexport const keplrWallet = createWallet({\n connect: ({ addChain, supportedChains }) =>\n async function connectKeplr(\n chains: Chain[],\n walletType: WalletOption.KEPLR | WalletOption.LEAP = WalletOption.KEPLR,\n ) {\n const extensionKey = walletType === WalletOption.LEAP ? \"leap\" : \"keplr\";\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const keplrClient = window[extensionKey];\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const chainId = ChainToChainId[chain] as (typeof keplrSupportedChainIds)[number];\n\n if (!keplrSupportedChainIds.includes(chainId)) {\n const chainConfig = chainRegistry.get(chainId);\n if (!chainConfig) throw new USwapError(\"wallet_keplr_chain_not_supported\", { chain });\n\n await keplrClient.experimentalSuggestChain(chainConfig);\n }\n\n keplrClient?.enable(chainId);\n const signer = keplrClient?.getOfflineSignerOnlyAmino(chainId);\n if (!signer) throw new USwapError(\"wallet_keplr_signer_not_found\");\n\n const { getCosmosToolbox } = await import(\"@tcswap/toolboxes/cosmos\");\n\n const accounts = await signer.getAccounts();\n if (!accounts?.[0]?.address) throw new USwapError(\"wallet_keplr_no_accounts\");\n\n const [{ address }] = accounts;\n const toolbox = await getCosmosToolbox(chain, { signer });\n\n addChain({ ...toolbox, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectKeplr\",\n supportedChains: [Chain.Cosmos, Chain.Kujira, Chain.Noble, Chain.THORChain],\n});\n\nexport const KEPLR_SUPPORTED_CHAINS = getWalletSupportedChains(keplrWallet);\n",
6
+ "import type { ChainInfo } from \"@keplr-wallet/types\";\nimport { ChainId } from \"@tcswap/helpers\";\n\nexport const chainRegistry = new Map<ChainId, ChainInfo>([\n [\n ChainId.Kujira,\n {\n bech32Config: {\n bech32PrefixAccAddr: \"kujira\",\n bech32PrefixAccPub: \"kujirapub\",\n bech32PrefixConsAddr: \"kujiravalcons\",\n bech32PrefixConsPub: \"kujiravalconspub\",\n bech32PrefixValAddr: \"kujiravaloper\",\n bech32PrefixValPub: \"kujiravaloperpub\",\n },\n bip44: { coinType: 118 },\n chainId: \"kaiyo-1\",\n chainName: \"Kujira\",\n chainSymbolImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/chain.png\",\n currencies: [\n {\n coinDecimals: 6,\n coinDenom: \"KUJI\",\n coinGeckoId: \"kujira\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png\",\n coinMinimalDenom: \"ukuji\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"USK\",\n coinGeckoId: \"usk\",\n coinMinimalDenom: \"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"MNTA\",\n coinGeckoId: \"mantadao\",\n coinMinimalDenom: \"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"bKUJI\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/bKUJI.png\",\n coinMinimalDenom: \"factory/kujira15e8q5wzlk5k38gjxlhse3vu6vqnafysncx2ltexd6y9gx50vuj2qpt7dgv/boneKuji\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"AQLA\",\n coinGeckoId: \"aqualibre\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/AQLA.png\",\n coinMinimalDenom: \"factory/kujira1xe0awk5planmtsmjel5xtx2hzhqdw5p8z66yqd/uaqla\",\n },\n ],\n features: [\"cosmwasm\"],\n feeCurrencies: [\n {\n coinDecimals: 6,\n coinDenom: \"KUJI\",\n coinGeckoId: \"kujira\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png\",\n coinMinimalDenom: \"ukuji\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"USK\",\n coinGeckoId: \"usk\",\n coinMinimalDenom: \"factory/kujira1qk00h5atutpsv900x202pxx42npjr9thg58dnqpa72f2p7m2luase444a7/uusk\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"axlUSDC\",\n coinGeckoId: \"usd-coin\",\n coinMinimalDenom: \"ibc/295548A78785A1007F232DE286149A6FF512F180AF5657780FC89C009E2C348F\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"ATOM\",\n coinGeckoId: \"cosmos\",\n coinMinimalDenom: \"ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"OSMO\",\n coinGeckoId: \"osmosis\",\n coinMinimalDenom: \"ibc/47BD209179859CDE4A2806763D7189B6E6FE13A17880FE2B42DE1E6C1E329E23\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"CMDX\",\n coinGeckoId: \"comdex\",\n coinMinimalDenom: \"ibc/3607EB5B5E64DD1C0E12E07F077FF470D5BC4706AFCBC98FE1BA960E5AE4CE07\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"EVMOS\",\n coinGeckoId: \"evmos\",\n coinMinimalDenom: \"ibc/F3AA7EF362EC5E791FE78A0F4CCC69FEE1F9A7485EB1A8CAB3F6601C00522F10\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"JUNO\",\n coinGeckoId: \"juno-network\",\n coinMinimalDenom: \"ibc/EFF323CC632EC4F747C61BCE238A758EFDB7699C3226565F7C20DA06509D59A5\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"MNTA\",\n coinGeckoId: \"mantadao\",\n coinMinimalDenom: \"factory/kujira1643jxg8wasy5cfcn7xm8rd742yeazcksqlg4d7/umnta\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"SCRT\",\n coinGeckoId: \"secret\",\n coinMinimalDenom: \"ibc/A358D7F19237777AF6D8AD0E0F53268F8B18AE8A53ED318095C14D6D7F3B2DB5\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"STARS\",\n coinGeckoId: \"stargaze\",\n coinMinimalDenom: \"ibc/4F393C3FCA4190C0A6756CE7F6D897D5D1BE57D6CCB80D0BC87393566A7B6602\",\n },\n {\n coinDecimals: 18,\n coinDenom: \"wAVAX\",\n coinGeckoId: \"avalanche-2\",\n coinMinimalDenom: \"ibc/004EBF085BBED1029326D56BE8A2E67C08CECE670A94AC1947DF413EF5130EB2\",\n },\n {\n coinDecimals: 18,\n coinDenom: \"wETH\",\n coinGeckoId: \"ethereum\",\n coinMinimalDenom: \"ibc/1B38805B1C75352B28169284F96DF56BDEBD9E8FAC005BDCC8CF0378C82AA8E7\",\n },\n ],\n nodeProvider: { email: \"pfc-validator@protonmail.com\", name: \"PFC\", website: \"https://pfc.zone/\" },\n rest: \"https://rest.cosmos.directory/kujira/\",\n rpc: \"https://kujira-rpc.nodes.defiantlabs.net\",\n stakeCurrency: {\n coinDecimals: 6,\n coinDenom: \"KUJI\",\n coinGeckoId: \"kujira\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/kaiyo/ukuji.png\",\n coinMinimalDenom: \"ukuji\",\n },\n },\n ],\n [\n ChainId.Noble,\n {\n bech32Config: {\n bech32PrefixAccAddr: \"noble\",\n bech32PrefixAccPub: \"noblepub\",\n bech32PrefixConsAddr: \"noblevalcons\",\n bech32PrefixConsPub: \"noblevalconspub\",\n bech32PrefixValAddr: \"noblevaloper\",\n bech32PrefixValPub: \"noblevaloperpub\",\n },\n bip44: { coinType: 118 },\n chainId: \"noble-1\",\n chainName: \"Noble\",\n chainSymbolImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/chain.png\",\n currencies: [\n {\n coinDecimals: 6,\n coinDenom: \"USDC\",\n coinGeckoId: \"usd-coin\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png\",\n coinMinimalDenom: \"uusdc\",\n },\n { coinDecimals: 6, coinDenom: \"USDN\", coinGeckoId: \"usd-coin\", coinMinimalDenom: \"uusdn\" },\n ],\n features: [\"cosmwasm\"],\n feeCurrencies: [\n {\n coinDecimals: 6,\n coinDenom: \"USDC\",\n coinGeckoId: \"usd-coin\",\n coinImageUrl: \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdc.png\",\n coinMinimalDenom: \"uusdc\",\n },\n {\n coinDecimals: 6,\n coinDenom: \"USDN\",\n coinGeckoId: \"usd-coin\",\n coinMinimalDenom:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/noble/uusdn.png\",\n },\n ],\n rest: \"https://lcd-noble.keplr.app\",\n rpc: \"https://rpc-noble.keplr.app\",\n },\n ],\n [\n ChainId.THORChain,\n {\n bech32Config: {\n bech32PrefixAccAddr: \"thor\",\n bech32PrefixAccPub: \"thorpub\",\n bech32PrefixConsAddr: \"thorvalcons\",\n bech32PrefixConsPub: \"thorvalconspub\",\n bech32PrefixValAddr: \"thorvaloper\",\n bech32PrefixValPub: \"thorvaloperpub\",\n },\n bip44: { coinType: 931 },\n chainId: \"thorchain-1\",\n chainName: \"THORChain\",\n chainSymbolImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/chain.png\",\n currencies: [\n {\n coinDecimals: 8,\n coinDenom: \"RUNE\",\n coinGeckoId: \"thorchain\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png\",\n coinMinimalDenom: \"rune\",\n },\n ],\n features: [],\n feeCurrencies: [\n {\n coinDecimals: 8,\n coinDenom: \"RUNE\",\n coinGeckoId: \"thorchain\",\n coinImageUrl:\n \"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/thorchain/rune.png\",\n coinMinimalDenom: \"rune\",\n gasPriceStep: { average: 0.02, high: 0.03, low: 0.02 },\n },\n ],\n rest: \"https://lcd-thorchain.keplr.app\",\n rpc: \"https://rpc-thorchain.keplr.app\",\n },\n ],\n]);\n"
7
+ ],
8
+ "mappings": "mDAIA,gBAAS,aAAO,oBAAS,2BAAgB,gBAAuB,kBAAY,wBAC5E,uBAAS,8BAAc,4BCJvB,kBAAS,wBAEF,IAAM,EAAgB,IAAI,IAAwB,CACvD,CACE,EAAQ,OACR,CACE,aAAc,CACZ,oBAAqB,SACrB,mBAAoB,YACpB,qBAAsB,gBACtB,oBAAqB,mBACrB,oBAAqB,gBACrB,mBAAoB,kBACtB,EACA,MAAO,CAAE,SAAU,GAAI,EACvB,QAAS,UACT,UAAW,SACX,oBACE,gGACF,WAAY,CACV,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,aAAc,gGACd,iBAAkB,OACpB,EACA,CACE,aAAc,EACd,UAAW,MACX,YAAa,MACb,iBAAkB,gFACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,WACb,iBAAkB,6DACpB,EACA,CACE,aAAc,EACd,UAAW,QACX,aACE,0KACF,iBAAkB,oFACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,YACb,aACE,qJACF,iBAAkB,6DACpB,CACF,EACA,SAAU,CAAC,UAAU,EACrB,cAAe,CACb,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,aAAc,gGACd,iBAAkB,OACpB,EACA,CACE,aAAc,EACd,UAAW,MACX,YAAa,MACb,iBAAkB,gFACpB,EACA,CACE,aAAc,EACd,UAAW,UACX,YAAa,WACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,UACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,QACX,YAAa,QACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,eACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,WACb,iBAAkB,6DACpB,EACA,CACE,aAAc,EACd,UAAW,OACX,YAAa,SACb,iBAAkB,sEACpB,EACA,CACE,aAAc,EACd,UAAW,QACX,YAA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",
9
+ "debugId": "B77FBB524A3DBB1C64756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ var V={};y(V,{okxWallet:()=>K,OKX_SUPPORTED_CHAINS:()=>N});module.exports=M(V);var D=require("@tcswap/helpers"),H=require("@tcswap/wallet-core");var z=require("@tcswap/helpers"),I=require("bitcoinjs-lib"),L=(Y)=>async({recipient:_,assetValue:$,memo:Z})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new z.USwapError("wallet_okx_not_found",{chain:z.Chain.Cosmos});let{createSigningStargateClient:F}=await import("@tcswap/toolboxes/cosmos"),{keplr:G}=window.okxwallet,Q=G?.getOfflineSignerOnlyAmino(z.getChainConfig(z.Chain.Cosmos).chainId),j=await z.getRPCUrl(z.Chain.Cosmos),A=await F(j,Q),B=$?.symbol==="MUON"?"umuon":"uatom",X=[{amount:$.getBaseValue("string"),denom:B}],{transactionHash:O}=await A.sendTokens(Y,_,X,1.6,Z);return O};async function R({walletProvider:Y,chain:_}){let{getEvmToolbox:$}=await import("@tcswap/toolboxes/evm"),{BrowserProvider:Z}=await import("ethers");if(!Y)throw new z.USwapError("wallet_okx_not_found");let F=new Z(Y,"any"),G=await F.getSigner(),Q=await $(_,{provider:F,signer:G});try{if(_!==z.Chain.Ethereum&&"getNetworkParams"in Q)await z.switchEVMWalletNetwork(F,_,Q.getNetworkParams())}catch{throw new z.USwapError("wallet_okx_failed_to_switch_network",{chain:_})}return z.prepareNetworkSwitch({chain:_,provider:F,toolbox:Q})}async function J(Y){let{match:_,P:$}=await import("ts-pattern");return _(Y).with($.union(z.Chain.Arbitrum,z.Chain.Aurora,z.Chain.Avalanche,z.Chain.Base,z.Chain.Berachain,z.Chain.BinanceSmartChain,z.Chain.Ethereum,z.Chain.Gnosis,z.Chain.Monad,z.Chain.Optimism,z.Chain.Polygon,z.Chain.XLayer),async()=>{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new z.USwapError("wallet_okx_not_found",{chain:Y});let Z=await R({chain:Y,walletProvider:window.okxwallet}),F=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...Z,address:F}}).with(z.Chain.Bitcoin,async()=>{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new z.USwapError("wallet_okx_not_found",{chain:z.Chain.Bitcoin});let{getUtxoToolbox:Z}=await import("@tcswap/toolboxes/utxo"),{bitcoin:F}=window.okxwallet,G=(await F.connect()).address,Q={getAddress:async()=>Promise.resolve(G),signTransaction:async(A)=>{let B=await F.signPsbt(A.toHex(),{from:G,type:"list"});return I.Psbt.fromHex(B)}};return{...await Z(z.Chain.Bitcoin,{signer:Q}),address:G}}).with(z.Chain.Cosmos,async()=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new z.USwapError("wallet_okx_not_found",{chain:z.Chain.Cosmos});let{keplr:Z}=window.okxwallet;await Z.enable(z.getChainConfig(Y).chainId);let G=await Z.getOfflineSignerOnlyAmino(z.getChainConfig(Y).chainId).getAccounts();if(!(G&&Array.isArray(G))||G.length===0)throw new z.USwapError("wallet_okx_no_accounts",{chain:z.Chain.Cosmos,message:"No Cosmos accounts returned from OKX Wallet"});let{getCosmosToolbox:Q}=await import("@tcswap/toolboxes/cosmos"),[{address:j}]=G;return{...await Q(z.Chain.Cosmos),address:j,transfer:L(j)}}).with(z.Chain.Tron,async()=>{if(!(window.okxwallet&&("tronLink"in window.okxwallet)))throw new z.USwapError("wallet_okx_not_found",{chain:z.Chain.Tron});let{createTronToolbox:Z}=await import("@tcswap/toolboxes/tron"),F=window.okxwallet.tronLink,G=await F.request({method:"tron_requestAccounts"});if(!G||G.length===0)throw new z.USwapError("wallet_okx_no_accounts",{chain:z.Chain.Tron});let Q=F.tronWeb.defaultAddress.base58;return{...await Z({signer:{getAddress:async()=>Q,signTransaction:async(B)=>{return await F.tronWeb.trx.sign(B)}}}),address:Q}}).otherwise(()=>{throw new z.USwapError("wallet_okx_chain_not_supported",{chain:Y})})}var K=H.createWallet({connect:({addChain:Y,supportedChains:_,walletType:$})=>async function(F){let G=D.filterSupportedChains({chains:F,supportedChains:_,walletType:$});return await Promise.all(G.map(async(Q)=>{let j=await J(Q);Y({...j,chain:Q,walletType:$})})),!0},name:"connectOkx",supportedChains:[D.Chain.Arbitrum,D.Chain.Aurora,D.Chain.Avalanche,D.Chain.Base,D.Chain.Berachain,D.Chain.BinanceSmartChain,D.Chain.Bitcoin,D.Chain.Cosmos,D.Chain.Ethereum,D.Chain.Gnosis,D.Chain.Monad,D.Chain.Optimism,D.Chain.Polygon,D.Chain.XLayer,D.Chain.Tron],walletType:D.WalletOption.OKX}),N=H.getWalletSupportedChains(K);
2
+
3
+ //# debugId=DDAEA631DFBEAD6364756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/okx/index.ts", "../src/okx/helpers.ts"],
4
+ "sourcesContent": [
5
+ "import { Chain, filterSupportedChains, WalletOption } from \"@tcswap/helpers\";\n\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { getWalletMethods } from \"./helpers\";\n\nexport const okxWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectOkx(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods(chain);\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectOkx\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Monad,\n // NEAR transfer is not yet supported in OKX Wallet\n // Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.XLayer,\n Chain.Tron,\n ],\n walletType: WalletOption.OKX,\n});\n\nexport const OKX_SUPPORTED_CHAINS = getWalletSupportedChains(okxWallet);\n",
6
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n Chain,\n type EVMChain,\n type GenericTransferParams,\n getChainConfig,\n getRPCUrl,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n USwapError,\n} from \"@tcswap/helpers\";\nimport type { TronSigner, TronTransaction } from \"@tcswap/toolboxes/tron\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type { Eip1193Provider } from \"ethers\";\n\nconst cosmosTransfer =\n (sender: string) =>\n async ({ recipient, assetValue, memo }: GenericTransferParams) => {\n if (!(window.okxwallet && \"keplr\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Cosmos });\n }\n const { createSigningStargateClient } = await import(\"@tcswap/toolboxes/cosmos\");\n\n const { keplr: wallet } = window.okxwallet;\n const offlineSigner = wallet?.getOfflineSignerOnlyAmino(getChainConfig(Chain.Cosmos).chainId);\n\n const rpcUrl = await getRPCUrl(Chain.Cosmos);\n const cosmJS = await createSigningStargateClient(rpcUrl, offlineSigner);\n\n const denom = assetValue?.symbol === \"MUON\" ? \"umuon\" : \"uatom\";\n const coins = [{ amount: assetValue.getBaseValue(\"string\"), denom }];\n\n const { transactionHash } = await cosmJS.sendTokens(sender, recipient, coins, 1.6, memo);\n return transactionHash;\n };\n\nasync function getWeb3WalletMethods({\n walletProvider,\n chain,\n}: {\n walletProvider: Eip1193Provider | undefined;\n chain: EVMChain;\n}) {\n const { getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n if (!walletProvider) throw new USwapError(\"wallet_okx_not_found\");\n\n const provider = new BrowserProvider(walletProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n try {\n if (chain !== Chain.Ethereum && \"getNetworkParams\" in toolbox) {\n await switchEVMWalletNetwork(provider, chain, toolbox.getNetworkParams());\n }\n } catch {\n throw new USwapError(\"wallet_okx_failed_to_switch_network\", { chain });\n }\n\n return prepareNetworkSwitch({ chain, provider, toolbox });\n}\n\nexport async function getWalletMethods(chain: Chain) {\n const { match, P } = await import(\"ts-pattern\");\n\n return (\n match(chain)\n .with(\n P.union(\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Monad,\n Chain.Optimism,\n Chain.Polygon,\n Chain.XLayer,\n ),\n async () => {\n if (!(window.okxwallet && \"send\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain });\n }\n\n const evmWallet = await getWeb3WalletMethods({ chain: chain as EVMChain, walletProvider: window.okxwallet });\n const address: string = (await window.okxwallet.send(\"eth_requestAccounts\", [])).result[0];\n\n return { ...evmWallet, address };\n },\n )\n .with(Chain.Bitcoin, async () => {\n if (!(window.okxwallet && \"bitcoin\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Bitcoin });\n }\n\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n\n const { bitcoin: wallet } = window.okxwallet;\n const address = (await wallet.connect()).address;\n\n const signer = {\n getAddress: async () => Promise.resolve(address),\n signTransaction: async (psbt: InstanceType<typeof Psbt>) => {\n const signedPsbt = await wallet.signPsbt(psbt.toHex(), { from: address, type: \"list\" });\n\n return Psbt.fromHex(signedPsbt);\n },\n };\n\n const toolbox = await getUtxoToolbox(Chain.Bitcoin, { signer });\n\n return { ...toolbox, address };\n })\n .with(Chain.Cosmos, async () => {\n if (!(window.okxwallet && \"keplr\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Cosmos });\n }\n const { keplr: wallet } = window.okxwallet;\n\n await wallet.enable(getChainConfig(chain).chainId);\n const offlineSigner = wallet.getOfflineSignerOnlyAmino(getChainConfig(chain).chainId);\n const accounts = await offlineSigner.getAccounts();\n\n // Add defensive check for accounts array\n if (!(accounts && Array.isArray(accounts)) || accounts.length === 0) {\n throw new USwapError(\"wallet_okx_no_accounts\", {\n chain: Chain.Cosmos,\n message: \"No Cosmos accounts returned from OKX Wallet\",\n });\n }\n\n const { getCosmosToolbox } = await import(\"@tcswap/toolboxes/cosmos\");\n const [{ address }] = accounts;\n const toolbox = await getCosmosToolbox(Chain.Cosmos);\n\n return { ...toolbox, address, transfer: cosmosTransfer(address) };\n })\n // INFO: OK wallet near is broken\n // .with(Chain.Near, async () => {\n // if (!(window.okxwallet && \"near\" in window.okxwallet)) {\n // throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Near });\n // }\n\n // const { createNearSignerFromProvider } = await import(\"../helpers/near\");\n // const { getNearToolbox } = await import(\"@tcswap/toolboxes/near\");\n\n // const provider = window.okxwallet.near;\n // const signer = await createNearSignerFromProvider(provider, \"OKX\");\n // const accountId = await signer.getAddress();\n // const toolbox = await getNearToolbox({ signer });\n\n // return { ...toolbox, address: accountId } as NearToolbox & { address: string };\n // })\n .with(Chain.Tron, async () => {\n if (!(window.okxwallet && \"tronLink\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Tron });\n }\n\n const { createTronToolbox } = await import(\"@tcswap/toolboxes/tron\");\n\n const tronLink = window.okxwallet.tronLink;\n\n // Request account access\n const accounts = await tronLink.request({ method: \"tron_requestAccounts\" });\n if (!accounts || accounts.length === 0) {\n throw new USwapError(\"wallet_okx_no_accounts\", { chain: Chain.Tron });\n }\n\n const address = tronLink.tronWeb.defaultAddress.base58;\n\n const signer: TronSigner = {\n getAddress: async () => address,\n signTransaction: async (transaction: TronTransaction) => {\n return await tronLink.tronWeb.trx.sign(transaction);\n },\n };\n\n const toolbox = await createTronToolbox({ signer });\n\n return { ...toolbox, address };\n })\n .otherwise(() => {\n throw new USwapError(\"wallet_okx_chain_not_supported\", { chain });\n })\n );\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "DDAEA631DFBEAD6364756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ import{a as A,b as B}from"../../chunk-kx2thqhk.js";import{Chain as Q,filterSupportedChains as k,WalletOption as f}from"@tcswap/helpers";import{createWallet as P,getWalletSupportedChains as W}from"@tcswap/wallet-core";import{Chain as z,getChainConfig as J,getRPCUrl as L,prepareNetworkSwitch as R,switchEVMWalletNetwork as M,USwapError as $}from"@tcswap/helpers";import{Psbt as y}from"bitcoinjs-lib";var N=(Y)=>async({recipient:_,assetValue:j,memo:Z})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new $("wallet_okx_not_found",{chain:z.Cosmos});let{createSigningStargateClient:D}=await import("@tcswap/toolboxes/cosmos"),{keplr:F}=window.okxwallet,G=F?.getOfflineSignerOnlyAmino(J(z.Cosmos).chainId),q=await L(z.Cosmos),H=await D(q,G),I=j?.symbol==="MUON"?"umuon":"uatom",X=[{amount:j.getBaseValue("string"),denom:I}],{transactionHash:O}=await H.sendTokens(Y,_,X,1.6,Z);return O};async function V({walletProvider:Y,chain:_}){let{getEvmToolbox:j}=await import("@tcswap/toolboxes/evm"),{BrowserProvider:Z}=await import("ethers");if(!Y)throw new $("wallet_okx_not_found");let D=new Z(Y,"any"),F=await D.getSigner(),G=await j(_,{provider:D,signer:F});try{if(_!==z.Ethereum&&"getNetworkParams"in G)await M(D,_,G.getNetworkParams())}catch{throw new $("wallet_okx_failed_to_switch_network",{chain:_})}return R({chain:_,provider:D,toolbox:G})}async function K(Y){let{match:_,P:j}=await import("ts-pattern");return _(Y).with(j.union(z.Arbitrum,z.Aurora,z.Avalanche,z.Base,z.Berachain,z.BinanceSmartChain,z.Ethereum,z.Gnosis,z.Monad,z.Optimism,z.Polygon,z.XLayer),async()=>{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new $("wallet_okx_not_found",{chain:Y});let Z=await V({chain:Y,walletProvider:window.okxwallet}),D=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...Z,address:D}}).with(z.Bitcoin,async()=>{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new $("wallet_okx_not_found",{chain:z.Bitcoin});let{getUtxoToolbox:Z}=await import("@tcswap/toolboxes/utxo"),{bitcoin:D}=window.okxwallet,F=(await D.connect()).address,G={getAddress:async()=>Promise.resolve(F),signTransaction:async(H)=>{let I=await D.signPsbt(H.toHex(),{from:F,type:"list"});return y.fromHex(I)}};return{...await Z(z.Bitcoin,{signer:G}),address:F}}).with(z.Cosmos,async()=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new $("wallet_okx_not_found",{chain:z.Cosmos});let{keplr:Z}=window.okxwallet;await Z.enable(J(Y).chainId);let F=await Z.getOfflineSignerOnlyAmino(J(Y).chainId).getAccounts();if(!(F&&Array.isArray(F))||F.length===0)throw new $("wallet_okx_no_accounts",{chain:z.Cosmos,message:"No Cosmos accounts returned from OKX Wallet"});let{getCosmosToolbox:G}=await import("@tcswap/toolboxes/cosmos"),[{address:q}]=F;return{...await G(z.Cosmos),address:q,transfer:N(q)}}).with(z.Tron,async()=>{if(!(window.okxwallet&&("tronLink"in window.okxwallet)))throw new $("wallet_okx_not_found",{chain:z.Tron});let{createTronToolbox:Z}=await import("@tcswap/toolboxes/tron"),D=window.okxwallet.tronLink,F=await D.request({method:"tron_requestAccounts"});if(!F||F.length===0)throw new $("wallet_okx_no_accounts",{chain:z.Tron});let G=D.tronWeb.defaultAddress.base58;return{...await Z({signer:{getAddress:async()=>G,signTransaction:async(I)=>{return await D.tronWeb.trx.sign(I)}}}),address:G}}).otherwise(()=>{throw new $("wallet_okx_chain_not_supported",{chain:Y})})}var T=P({connect:({addChain:Y,supportedChains:_,walletType:j})=>async function(D){let F=k({chains:D,supportedChains:_,walletType:j});return await Promise.all(F.map(async(G)=>{let q=await K(G);Y({...q,chain:G,walletType:j})})),!0},name:"connectOkx",supportedChains:[Q.Arbitrum,Q.Aurora,Q.Avalanche,Q.Base,Q.Berachain,Q.BinanceSmartChain,Q.Bitcoin,Q.Cosmos,Q.Ethereum,Q.Gnosis,Q.Monad,Q.Optimism,Q.Polygon,Q.XLayer,Q.Tron],walletType:f.OKX}),u=W(T);export{T as okxWallet,u as OKX_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=D50218532A05D2EE64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/okx/index.ts", "../src/okx/helpers.ts"],
4
+ "sourcesContent": [
5
+ "import { Chain, filterSupportedChains, WalletOption } from \"@tcswap/helpers\";\n\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { getWalletMethods } from \"./helpers\";\n\nexport const okxWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectOkx(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods(chain);\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectOkx\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Monad,\n // NEAR transfer is not yet supported in OKX Wallet\n // Chain.Near,\n Chain.Optimism,\n Chain.Polygon,\n Chain.XLayer,\n Chain.Tron,\n ],\n walletType: WalletOption.OKX,\n});\n\nexport const OKX_SUPPORTED_CHAINS = getWalletSupportedChains(okxWallet);\n",
6
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n Chain,\n type EVMChain,\n type GenericTransferParams,\n getChainConfig,\n getRPCUrl,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n USwapError,\n} from \"@tcswap/helpers\";\nimport type { TronSigner, TronTransaction } from \"@tcswap/toolboxes/tron\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type { Eip1193Provider } from \"ethers\";\n\nconst cosmosTransfer =\n (sender: string) =>\n async ({ recipient, assetValue, memo }: GenericTransferParams) => {\n if (!(window.okxwallet && \"keplr\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Cosmos });\n }\n const { createSigningStargateClient } = await import(\"@tcswap/toolboxes/cosmos\");\n\n const { keplr: wallet } = window.okxwallet;\n const offlineSigner = wallet?.getOfflineSignerOnlyAmino(getChainConfig(Chain.Cosmos).chainId);\n\n const rpcUrl = await getRPCUrl(Chain.Cosmos);\n const cosmJS = await createSigningStargateClient(rpcUrl, offlineSigner);\n\n const denom = assetValue?.symbol === \"MUON\" ? \"umuon\" : \"uatom\";\n const coins = [{ amount: assetValue.getBaseValue(\"string\"), denom }];\n\n const { transactionHash } = await cosmJS.sendTokens(sender, recipient, coins, 1.6, memo);\n return transactionHash;\n };\n\nasync function getWeb3WalletMethods({\n walletProvider,\n chain,\n}: {\n walletProvider: Eip1193Provider | undefined;\n chain: EVMChain;\n}) {\n const { getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n if (!walletProvider) throw new USwapError(\"wallet_okx_not_found\");\n\n const provider = new BrowserProvider(walletProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n try {\n if (chain !== Chain.Ethereum && \"getNetworkParams\" in toolbox) {\n await switchEVMWalletNetwork(provider, chain, toolbox.getNetworkParams());\n }\n } catch {\n throw new USwapError(\"wallet_okx_failed_to_switch_network\", { chain });\n }\n\n return prepareNetworkSwitch({ chain, provider, toolbox });\n}\n\nexport async function getWalletMethods(chain: Chain) {\n const { match, P } = await import(\"ts-pattern\");\n\n return (\n match(chain)\n .with(\n P.union(\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.Berachain,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Monad,\n Chain.Optimism,\n Chain.Polygon,\n Chain.XLayer,\n ),\n async () => {\n if (!(window.okxwallet && \"send\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain });\n }\n\n const evmWallet = await getWeb3WalletMethods({ chain: chain as EVMChain, walletProvider: window.okxwallet });\n const address: string = (await window.okxwallet.send(\"eth_requestAccounts\", [])).result[0];\n\n return { ...evmWallet, address };\n },\n )\n .with(Chain.Bitcoin, async () => {\n if (!(window.okxwallet && \"bitcoin\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Bitcoin });\n }\n\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n\n const { bitcoin: wallet } = window.okxwallet;\n const address = (await wallet.connect()).address;\n\n const signer = {\n getAddress: async () => Promise.resolve(address),\n signTransaction: async (psbt: InstanceType<typeof Psbt>) => {\n const signedPsbt = await wallet.signPsbt(psbt.toHex(), { from: address, type: \"list\" });\n\n return Psbt.fromHex(signedPsbt);\n },\n };\n\n const toolbox = await getUtxoToolbox(Chain.Bitcoin, { signer });\n\n return { ...toolbox, address };\n })\n .with(Chain.Cosmos, async () => {\n if (!(window.okxwallet && \"keplr\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Cosmos });\n }\n const { keplr: wallet } = window.okxwallet;\n\n await wallet.enable(getChainConfig(chain).chainId);\n const offlineSigner = wallet.getOfflineSignerOnlyAmino(getChainConfig(chain).chainId);\n const accounts = await offlineSigner.getAccounts();\n\n // Add defensive check for accounts array\n if (!(accounts && Array.isArray(accounts)) || accounts.length === 0) {\n throw new USwapError(\"wallet_okx_no_accounts\", {\n chain: Chain.Cosmos,\n message: \"No Cosmos accounts returned from OKX Wallet\",\n });\n }\n\n const { getCosmosToolbox } = await import(\"@tcswap/toolboxes/cosmos\");\n const [{ address }] = accounts;\n const toolbox = await getCosmosToolbox(Chain.Cosmos);\n\n return { ...toolbox, address, transfer: cosmosTransfer(address) };\n })\n // INFO: OK wallet near is broken\n // .with(Chain.Near, async () => {\n // if (!(window.okxwallet && \"near\" in window.okxwallet)) {\n // throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Near });\n // }\n\n // const { createNearSignerFromProvider } = await import(\"../helpers/near\");\n // const { getNearToolbox } = await import(\"@tcswap/toolboxes/near\");\n\n // const provider = window.okxwallet.near;\n // const signer = await createNearSignerFromProvider(provider, \"OKX\");\n // const accountId = await signer.getAddress();\n // const toolbox = await getNearToolbox({ signer });\n\n // return { ...toolbox, address: accountId } as NearToolbox & { address: string };\n // })\n .with(Chain.Tron, async () => {\n if (!(window.okxwallet && \"tronLink\" in window.okxwallet)) {\n throw new USwapError(\"wallet_okx_not_found\", { chain: Chain.Tron });\n }\n\n const { createTronToolbox } = await import(\"@tcswap/toolboxes/tron\");\n\n const tronLink = window.okxwallet.tronLink;\n\n // Request account access\n const accounts = await tronLink.request({ method: \"tron_requestAccounts\" });\n if (!accounts || accounts.length === 0) {\n throw new USwapError(\"wallet_okx_no_accounts\", { chain: Chain.Tron });\n }\n\n const address = tronLink.tronWeb.defaultAddress.base58;\n\n const signer: TronSigner = {\n getAddress: async () => address,\n signTransaction: async (transaction: TronTransaction) => {\n return await tronLink.tronWeb.trx.sign(transaction);\n },\n };\n\n const toolbox = await createTronToolbox({ signer });\n\n return { ...toolbox, address };\n })\n .otherwise(() => {\n throw new USwapError(\"wallet_okx_chain_not_supported\", { chain });\n })\n );\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "D50218532A05D2EE64756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,4 @@
1
+ var S={};P(S,{onekeyWallet:()=>u,ONEKEY_WALLET_SUPPORTED_CHAINS:()=>A});module.exports=h(S);var e=require("@tcswap/helpers"),m=require("@tcswap/wallet-core"),_=require("bitcoinjs-lib");async function b(t){switch(t){case e.Chain.Bitcoin:{if(!window.$onekey?.btc)throw new e.USwapError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:s}=await import("@tcswap/toolboxes/utxo"),{signTransaction:r,getAddress:d,AddressPurpose:n,BitcoinNetworkType:w}=await import("sats-connect"),o="",a=()=>new Promise((i)=>i(window.$onekey?.btc)),c={getProvider:a,onCancel:()=>{throw new e.USwapError("wallet_connection_rejected_by_user")},onFinish:(i)=>{if(i.addresses[0]?.address)o=i.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:w.Mainnet},purposes:[n.Payment]}};await d(c);async function l(i){let y,f={getProvider:a,onCancel:()=>{throw new e.USwapError("wallet_connection_rejected_by_user")},onFinish:(g)=>{y=_.Psbt.fromBase64(g.psbtBase64)},payload:{broadcast:!1,inputsToSign:[{address:o,signingIndexes:i.txInputs.map((g,k)=>k)}],message:"Sign transaction",network:{type:w.Mainnet},psbtBase64:i.toBase64()}};if(await r(f),!y)throw new e.USwapError("wallet_onekey_sign_transaction_error");return y}return{...await s(t,{signer:{getAddress:()=>Promise.resolve(o),signTransaction:l}}),address:o}}case e.Chain.Solana:{if(!window.$onekey?.sol)throw new e.USwapError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:s}=await import("@tcswap/toolboxes/solana"),r=window.$onekey.sol,d=await r.getAddress();return{...await s({signer:r}),address:d}}case e.Chain.Arbitrum:case e.Chain.Aurora:case e.Chain.Avalanche:case e.Chain.Base:case e.Chain.BinanceSmartChain:case e.Chain.Ethereum:case e.Chain.Gnosis:case e.Chain.Optimism:case e.Chain.Polygon:case e.Chain.XLayer:{let{getProvider:s,getEvmToolbox:r}=await import("@tcswap/toolboxes/evm");if(!window.$onekey?.ethereum)throw new e.USwapError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:d}=await import("ethers"),n=new d(window.$onekey.ethereum,"any");await n.send("eth_requestAccounts",[]);let w=await s(t),o=await n.getSigner(),a=await o.getAddress(),c=await r(t,{provider:w,signer:o});try{if(t!==e.Chain.Ethereum){let l=c.getNetworkParams();await e.addEVMWalletNetwork(n,l)}}catch(l){throw new e.USwapError({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:l}})}return{address:a,...e.prepareNetworkSwitch({chain:t,provider:n,toolbox:c})}}default:throw new e.USwapError({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:e.WalletOption.ONEKEY}})}}var u=m.createWallet({connect:({addChain:t,walletType:s,supportedChains:r})=>async function(n){if(!window.$onekey)throw new e.USwapError({errorKey:"wallet_onekey_not_found",info:{wallet:e.WalletOption.ONEKEY}});let w=e.filterSupportedChains({chains:n,supportedChains:r,walletType:s});return await Promise.all(w.map(async(o)=>{let a=await b(o),c=await a.getAddress()||"F";t({...a,address:c,chain:o,walletType:s})})),!0},name:"connectOnekeyWallet",supportedChains:[e.Chain.Arbitrum,e.Chain.Aurora,e.Chain.Avalanche,e.Chain.Base,e.Chain.BinanceSmartChain,e.Chain.Bitcoin,e.Chain.Ethereum,e.Chain.Gnosis,e.Chain.Optimism,e.Chain.Polygon,e.Chain.Solana,e.Chain.XLayer],walletType:e.WalletOption.ONEKEY}),A=m.getWalletSupportedChains(u);
2
+
3
+ //# debugId=2D99DEFF52F50A4064756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/onekey/index.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n addEVMWalletNetwork,\n Chain,\n filterSupportedChains,\n type NetworkParams,\n prepareNetworkSwitch,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type { BitcoinProvider, GetAddressOptions, GetAddressResponse, SignTransactionOptions } from \"sats-connect\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_connection_rejected_by_user\");\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n payload: {\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n purposes: [AddressPurpose.Payment],\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_connection_rejected_by_user\");\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n payload: {\n broadcast: false,\n inputsToSign: [{ address, signingIndexes: psbt.txInputs.map((_: any, index: number) => index) }],\n message: \"Sign transaction\",\n network: { type: BitcoinNetworkType.Mainnet },\n psbtBase64: psbt.toBase64(),\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new USwapError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = { getAddress: () => Promise.resolve(address), signTransaction };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getSolanaToolbox } = await import(\"@tcswap/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = await getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.XLayer: {\n const { getProvider, getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new USwapError({ errorKey: \"wallet_failed_to_add_or_switch_network\", info: { chain, error } });\n }\n\n return { address, ...prepareNetworkSwitch({ chain, provider, toolbox }) };\n }\n\n default:\n throw new USwapError({ errorKey: \"wallet_chain_not_supported\", info: { chain, wallet: WalletOption.ONEKEY } });\n }\n}\n\nexport const onekeyWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { wallet: WalletOption.ONEKEY } });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectOnekeyWallet\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n Chain.XLayer,\n ],\n walletType: WalletOption.ONEKEY,\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "2D99DEFF52F50A4064756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ import{a as m,b as y}from"../../chunk-kx2thqhk.js";import{addEVMWalletNetwork as h,Chain as e,filterSupportedChains as P,prepareNetworkSwitch as b,USwapError as s,WalletOption as _}from"@tcswap/helpers";import{createWallet as A,getWalletSupportedChains as S}from"@tcswap/wallet-core";import{Psbt as E}from"bitcoinjs-lib";async function O(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:r}=await import("@tcswap/toolboxes/utxo"),{signTransaction:a,getAddress:w,AddressPurpose:n,BitcoinNetworkType:c}=await import("sats-connect"),o="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,onCancel:()=>{throw new s("wallet_connection_rejected_by_user")},onFinish:(d)=>{if(d.addresses[0]?.address)o=d.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:c.Mainnet},purposes:[n.Payment]}};await w(l);async function p(d){let g,f={getProvider:i,onCancel:()=>{throw new s("wallet_connection_rejected_by_user")},onFinish:(u)=>{g=E.fromBase64(u.psbtBase64)},payload:{broadcast:!1,inputsToSign:[{address:o,signingIndexes:d.txInputs.map((u,k)=>k)}],message:"Sign transaction",network:{type:c.Mainnet},psbtBase64:d.toBase64()}};if(await a(f),!g)throw new s("wallet_onekey_sign_transaction_error");return g}return{...await r(t,{signer:{getAddress:()=>Promise.resolve(o),signTransaction:p}}),address:o}}case e.Solana:{if(!window.$onekey?.sol)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:r}=await import("@tcswap/toolboxes/solana"),a=window.$onekey.sol,w=await a.getAddress();return{...await r({signer:a}),address:w}}case e.Arbitrum:case e.Aurora:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Gnosis:case e.Optimism:case e.Polygon:case e.XLayer:{let{getProvider:r,getEvmToolbox:a}=await import("@tcswap/toolboxes/evm");if(!window.$onekey?.ethereum)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:w}=await import("ethers"),n=new w(window.$onekey.ethereum,"any");await n.send("eth_requestAccounts",[]);let c=await r(t),o=await n.getSigner(),i=await o.getAddress(),l=await a(t,{provider:c,signer:o});try{if(t!==e.Ethereum){let p=l.getNetworkParams();await h(n,p)}}catch(p){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:p}})}return{address:i,...b({chain:t,provider:n,toolbox:l})}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:_.ONEKEY}})}}var x=A({connect:({addChain:t,walletType:r,supportedChains:a})=>async function(n){if(!window.$onekey)throw new s({errorKey:"wallet_onekey_not_found",info:{wallet:_.ONEKEY}});let c=P({chains:n,supportedChains:a,walletType:r});return await Promise.all(c.map(async(o)=>{let i=await O(o),l=await i.getAddress()||"F";t({...i,address:l,chain:o,walletType:r})})),!0},name:"connectOnekeyWallet",supportedChains:[e.Arbitrum,e.Aurora,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Gnosis,e.Optimism,e.Polygon,e.Solana,e.XLayer],walletType:_.ONEKEY}),K=S(x);export{x as onekeyWallet,K as ONEKEY_WALLET_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=7D5DD11AF1479A4164756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/onekey/index.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n addEVMWalletNetwork,\n Chain,\n filterSupportedChains,\n type NetworkParams,\n prepareNetworkSwitch,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type { BitcoinProvider, GetAddressOptions, GetAddressResponse, SignTransactionOptions } from \"sats-connect\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_connection_rejected_by_user\");\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n payload: {\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n purposes: [AddressPurpose.Payment],\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_connection_rejected_by_user\");\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n payload: {\n broadcast: false,\n inputsToSign: [{ address, signingIndexes: psbt.txInputs.map((_: any, index: number) => index) }],\n message: \"Sign transaction\",\n network: { type: BitcoinNetworkType.Mainnet },\n psbtBase64: psbt.toBase64(),\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new USwapError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = { getAddress: () => Promise.resolve(address), signTransaction };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getSolanaToolbox } = await import(\"@tcswap/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = await getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.XLayer: {\n const { getProvider, getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new USwapError({ errorKey: \"wallet_failed_to_add_or_switch_network\", info: { chain, error } });\n }\n\n return { address, ...prepareNetworkSwitch({ chain, provider, toolbox }) };\n }\n\n default:\n throw new USwapError({ errorKey: \"wallet_chain_not_supported\", info: { chain, wallet: WalletOption.ONEKEY } });\n }\n}\n\nexport const onekeyWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new USwapError({ errorKey: \"wallet_onekey_not_found\", info: { wallet: WalletOption.ONEKEY } });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectOnekeyWallet\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n Chain.XLayer,\n ],\n walletType: WalletOption.ONEKEY,\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "7D5DD11AF1479A4164756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ var A={};T(A,{phantomWallet:()=>_,PHANTOM_SUPPORTED_CHAINS:()=>x});module.exports=S(A);var t=require("@tcswap/helpers"),m=require("@tcswap/wallet-core"),_=m.createWallet({connect:({addChain:e,supportedChains:l,walletType:a})=>async function(s){let r=t.filterSupportedChains({chains:s,supportedChains:l,walletType:a});try{return await Promise.all(r.map(async(o)=>{let{address:w,...i}=await C(o);e({...i,address:w,chain:o,walletType:a})})),!0}catch(o){if(o instanceof t.USwapError)throw o;throw new t.USwapError("wallet_connection_rejected_by_user",o)}},name:"connectPhantom",supportedChains:[t.Chain.Bitcoin,t.Chain.Ethereum,t.Chain.Monad,t.Chain.Solana],walletType:t.WalletOption.PHANTOM}),x=m.getWalletSupportedChains(_);async function C(e){let l=window?.phantom;switch(e){case t.Chain.Bitcoin:{let a=l?.bitcoin;if(!a?.isPhantom)throw new t.USwapError("wallet_phantom_not_found");let{getUtxoToolbox:n}=await import("@tcswap/toolboxes/utxo"),[{address:s}]=await a.requestAccounts();return{...await n(e),address:s}}case t.Chain.Ethereum:case t.Chain.Monad:{let{getEvmToolbox:a}=await import("@tcswap/toolboxes/evm"),{prepareNetworkSwitch:n,switchEVMWalletNetwork:s}=await import("@tcswap/helpers"),{BrowserProvider:r}=await import("ethers"),o=new r(l?.ethereum,"any"),[w]=await o.send("eth_requestAccounts",[]),i=await o.getSigner(),d=await a(e,{provider:o,signer:i});if(e!==t.Chain.Ethereum){let p=d.getNetworkParams();await s(o,e,p)}return{...n({chain:e,provider:o,toolbox:d}),address:w}}case t.Chain.Solana:{let{getSolanaToolbox:a}=await import("@tcswap/toolboxes/solana"),n=l?.solana;if(!n?.isPhantom)throw new t.USwapError("wallet_phantom_not_found");let r=(await n.connect()).publicKey.toString(),o=await a({signer:n});return{...o,address:r,transfer:async({recipient:i,assetValue:d,isProgramDerivedAddress:p})=>{let{PublicKey:f}=await import("@solana/web3.js"),P=await o.getAddressValidator();if(!(p||P(i)))throw new t.USwapError("core_transaction_invalid_recipient_address");let g=new f(r),u=await o.getConnection(),h=await o.createTransaction({assetValue:d,isProgramDerivedAddress:p,recipient:i,sender:r});if(!h)throw new t.USwapError("core_transaction_invalid_sender_address");let y=await u.getLatestBlockhash();h.recentBlockhash=y.blockhash,h.feePayer=g;let b=await n.signTransaction(h);return await u.sendRawTransaction(b.serialize())}}}default:throw new t.USwapError("wallet_chain_not_supported",{chain:e,wallet:t.WalletOption.PHANTOM})}}
2
+
3
+ //# debugId=8FF72EEE154CF88364756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/phantom/index.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type AssetValue,\n Chain,\n filterSupportedChains,\n type GenericTransferParams,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\n\nexport const phantomWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectPhantom(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n try {\n await Promise.all(\n filteredChains.map(async (chain) => {\n const { address, ...methods } = await getWalletMethods(chain);\n\n addChain({ ...methods, address, chain, walletType });\n }),\n );\n\n return true;\n } catch (error) {\n if (error instanceof USwapError) throw error;\n\n throw new USwapError(\"wallet_connection_rejected_by_user\", error);\n }\n },\n name: \"connectPhantom\",\n supportedChains: [Chain.Bitcoin, Chain.Ethereum, Chain.Monad, Chain.Solana],\n walletType: WalletOption.PHANTOM,\n});\n\nexport const PHANTOM_SUPPORTED_CHAINS = getWalletSupportedChains(phantomWallet);\nexport type PhantomSupportedChain = (typeof PHANTOM_SUPPORTED_CHAINS)[number];\n\nasync function getWalletMethods(chain: PhantomSupportedChain) {\n const phantom: any = window?.phantom;\n\n switch (chain) {\n case Chain.Bitcoin: {\n const provider = phantom?.bitcoin;\n if (!provider?.isPhantom) {\n throw new USwapError(\"wallet_phantom_not_found\");\n }\n\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const [{ address }] = await provider.requestAccounts();\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address };\n }\n\n case Chain.Ethereum:\n case Chain.Monad: {\n const { getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { prepareNetworkSwitch, switchEVMWalletNetwork } = await import(\"@tcswap/helpers\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const provider = new BrowserProvider(phantom?.ethereum, \"any\");\n const [address] = await provider.send(\"eth_requestAccounts\", []);\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n }\n\n return { ...prepareNetworkSwitch({ chain, provider, toolbox }), address };\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@tcswap/toolboxes/solana\");\n const provider = phantom?.solana;\n if (!provider?.isPhantom) {\n throw new USwapError(\"wallet_phantom_not_found\");\n }\n\n const providerConnection = await provider.connect();\n const address: string = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox({ signer: provider });\n\n const transfer = async ({\n recipient,\n assetValue,\n isProgramDerivedAddress,\n }: GenericTransferParams & { assetValue: AssetValue; isProgramDerivedAddress?: boolean }) => {\n const { PublicKey } = await import(\"@solana/web3.js\");\n const validateAddress = await toolbox.getAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new USwapError(\"core_transaction_invalid_recipient_address\");\n }\n\n const fromPubkey = new PublicKey(address);\n const connection = await toolbox.getConnection();\n\n const transaction = await toolbox.createTransaction({\n assetValue,\n isProgramDerivedAddress,\n recipient,\n sender: address,\n });\n\n if (!transaction) {\n throw new USwapError(\"core_transaction_invalid_sender_address\");\n }\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n const signedTransaction = await provider.signTransaction(transaction);\n\n const txid = await connection.sendRawTransaction(signedTransaction.serialize());\n\n return txid;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n default: {\n throw new USwapError(\"wallet_chain_not_supported\", { chain, wallet: WalletOption.PHANTOM });\n }\n }\n}\n"
6
+ ],
7
+ "mappings": "uFAWO,IAPP,6BAQA,iCAEa,EAAgB,eAAa,CACxC,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAA6B,CAAC,EAAiB,CAC7C,IAAM,EAAiB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEpF,GAAI,CASF,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAQ,aAAY,GAAY,MAAM,EAAiB,CAAK,EAE5D,EAAS,IAAK,EAAS,UAAS,QAAO,YAAW,CAAC,EACpD,CACH,EAEO,GACP,MAAO,EAAO,CACd,GAAI,aAAiB,aAAY,MAAM,EAEvC,MAAM,IAAI,aAAW,qCAAsC,CAAK,IAGtE,KAAM,iBACN,gBAAiB,CAAC,QAAM,QAAS,QAAM,SAAU,QAAM,MAAO,QAAM,MAAM,EAC1E,WAAY,eAAa,OAC3B,CAAC,EAEY,EAA2B,2BAAyB,CAAa,EAG9E,eAAe,CAAgB,CAAC,EAA8B,CAC5D,IAAM,EAAe,QAAQ,QAE7B,OAAQ,QACD,QAAM,QAAS,CAClB,IAAM,EAAW,GAAS,QAC1B,GAAI,CAAC,GAAU,UACb,MAAM,IAAI,aAAW,0BAA0B,EAGjD,IAAQ,kBAAmB,KAAa,oCAC/B,YAAa,MAAM,EAAS,gBAAgB,EAGrD,MAAO,IAFS,MAAM,EAAe,CAAK,EAErB,SAAQ,CAC/B,MAEK,QAAM,cACN,QAAM,MAAO,CAChB,IAAQ,iBAAkB,KAAa,kCAC/B,uBAAsB,0BAA2B,KAAa,4BAC9D,mBAAoB,KAAa,kBAEnC,EAAW,IAAI,EAAgB,GAAS,SAAU,KAAK,GACtD,GAAW,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAEzD,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,IAAU,QAAM,SAAU,CAC5B,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,EAAuB,EAAU,EAAO,CAAa,EAG7D,MAAO,IAAK,EAAqB,CAAE,QAAO,WAAU,SAAQ,CAAC,EAAG,SAAQ,CAC1E,MAEK,QAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,oCACpC,EAAW,GAAS,OAC1B,GAAI,CAAC,GAAU,UACb,MAAM,IAAI,aAAW,0BAA0B,EAIjD,IAAM,GADqB,MAAM,EAAS,QAAQ,GACP,UAAU,SAAS,EACxD,EAAU,MAAM,EAAiB,CAAE,OAAQ,CAAS,CAAC,EAuC3D,MAAO,IAAK,EAAS,UAAS,SArCb,OACf,YACA,aACA,6BAC2F,CAC3F,IAAQ,aAAc,KAAa,2BAC7B,EAAkB,MAAM,EAAQ,oBAAoB,EAE1D,GAAI,EAAE,GAA2B,EAAgB,CAAS,GACxD,MAAM,IAAI,aAAW,4CAA4C,EAGnE,IAAM,EAAa,IAAI,EAAU,CAAO,EAClC,EAAa,MAAM,EAAQ,cAAc,EAEzC,EAAc,MAAM,EAAQ,kBAAkB,CAClD,aACA,0BACA,YACA,OAAQ,CACV,CAAC,EAED,GAAI,CAAC,EACH,MAAM,IAAI,aAAW,yCAAyC,EAGhE,IAAM,EAAY,MAAM,EAAW,mBAAmB,EACtD,EAAY,gBAAkB,EAAU,UACxC,EAAY,SAAW,EAEvB,IAAM,EAAoB,MAAM,EAAS,gBAAgB,CAAW,EAIpE,OAFa,MAAM,EAAW,mBAAmB,EAAkB,UAAU,CAAC,EAKzC,CACzC,SAGE,MAAM,IAAI,aAAW,6BAA8B,CAAE,QAAO,OAAQ,eAAa,OAAQ,CAAC",
8
+ "debugId": "8FF72EEE154CF88364756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ import{a as l,b as w}from"../../chunk-kx2thqhk.js";import{Chain as n,filterSupportedChains as T,USwapError as s,WalletOption as f}from"@tcswap/helpers";import{createWallet as x,getWalletSupportedChains as C}from"@tcswap/wallet-core";var A=x({connect:({addChain:o,supportedChains:d,walletType:e})=>async function(i){let r=T({chains:i,supportedChains:d,walletType:e});try{return await Promise.all(r.map(async(t)=>{let{address:p,...c}=await v(t);o({...c,address:p,chain:t,walletType:e})})),!0}catch(t){if(t instanceof s)throw t;throw new s("wallet_connection_rejected_by_user",t)}},name:"connectPhantom",supportedChains:[n.Bitcoin,n.Ethereum,n.Monad,n.Solana],walletType:f.PHANTOM}),E=C(A);async function v(o){let d=window?.phantom;switch(o){case n.Bitcoin:{let e=d?.bitcoin;if(!e?.isPhantom)throw new s("wallet_phantom_not_found");let{getUtxoToolbox:a}=await import("@tcswap/toolboxes/utxo"),[{address:i}]=await e.requestAccounts();return{...await a(o),address:i}}case n.Ethereum:case n.Monad:{let{getEvmToolbox:e}=await import("@tcswap/toolboxes/evm"),{prepareNetworkSwitch:a,switchEVMWalletNetwork:i}=await import("@tcswap/helpers"),{BrowserProvider:r}=await import("ethers"),t=new r(d?.ethereum,"any"),[p]=await t.send("eth_requestAccounts",[]),c=await t.getSigner(),h=await e(o,{provider:t,signer:c});if(o!==n.Ethereum){let m=h.getNetworkParams();await i(t,o,m)}return{...a({chain:o,provider:t,toolbox:h}),address:p}}case n.Solana:{let{getSolanaToolbox:e}=await import("@tcswap/toolboxes/solana"),a=d?.solana;if(!a?.isPhantom)throw new s("wallet_phantom_not_found");let r=(await a.connect()).publicKey.toString(),t=await e({signer:a});return{...t,address:r,transfer:async({recipient:c,assetValue:h,isProgramDerivedAddress:m})=>{let{PublicKey:P}=await import("@solana/web3.js"),g=await t.getAddressValidator();if(!(m||g(c)))throw new s("core_transaction_invalid_recipient_address");let y=new P(r),_=await t.getConnection(),u=await t.createTransaction({assetValue:h,isProgramDerivedAddress:m,recipient:c,sender:r});if(!u)throw new s("core_transaction_invalid_sender_address");let b=await _.getLatestBlockhash();u.recentBlockhash=b.blockhash,u.feePayer=y;let S=await a.signTransaction(u);return await _.sendRawTransaction(S.serialize())}}}default:throw new s("wallet_chain_not_supported",{chain:o,wallet:f.PHANTOM})}}export{A as phantomWallet,E as PHANTOM_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=B9A05D2A061163D264756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/phantom/index.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type AssetValue,\n Chain,\n filterSupportedChains,\n type GenericTransferParams,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\n\nexport const phantomWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectPhantom(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n try {\n await Promise.all(\n filteredChains.map(async (chain) => {\n const { address, ...methods } = await getWalletMethods(chain);\n\n addChain({ ...methods, address, chain, walletType });\n }),\n );\n\n return true;\n } catch (error) {\n if (error instanceof USwapError) throw error;\n\n throw new USwapError(\"wallet_connection_rejected_by_user\", error);\n }\n },\n name: \"connectPhantom\",\n supportedChains: [Chain.Bitcoin, Chain.Ethereum, Chain.Monad, Chain.Solana],\n walletType: WalletOption.PHANTOM,\n});\n\nexport const PHANTOM_SUPPORTED_CHAINS = getWalletSupportedChains(phantomWallet);\nexport type PhantomSupportedChain = (typeof PHANTOM_SUPPORTED_CHAINS)[number];\n\nasync function getWalletMethods(chain: PhantomSupportedChain) {\n const phantom: any = window?.phantom;\n\n switch (chain) {\n case Chain.Bitcoin: {\n const provider = phantom?.bitcoin;\n if (!provider?.isPhantom) {\n throw new USwapError(\"wallet_phantom_not_found\");\n }\n\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const [{ address }] = await provider.requestAccounts();\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address };\n }\n\n case Chain.Ethereum:\n case Chain.Monad: {\n const { getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { prepareNetworkSwitch, switchEVMWalletNetwork } = await import(\"@tcswap/helpers\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const provider = new BrowserProvider(phantom?.ethereum, \"any\");\n const [address] = await provider.send(\"eth_requestAccounts\", []);\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n }\n\n return { ...prepareNetworkSwitch({ chain, provider, toolbox }), address };\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@tcswap/toolboxes/solana\");\n const provider = phantom?.solana;\n if (!provider?.isPhantom) {\n throw new USwapError(\"wallet_phantom_not_found\");\n }\n\n const providerConnection = await provider.connect();\n const address: string = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox({ signer: provider });\n\n const transfer = async ({\n recipient,\n assetValue,\n isProgramDerivedAddress,\n }: GenericTransferParams & { assetValue: AssetValue; isProgramDerivedAddress?: boolean }) => {\n const { PublicKey } = await import(\"@solana/web3.js\");\n const validateAddress = await toolbox.getAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new USwapError(\"core_transaction_invalid_recipient_address\");\n }\n\n const fromPubkey = new PublicKey(address);\n const connection = await toolbox.getConnection();\n\n const transaction = await toolbox.createTransaction({\n assetValue,\n isProgramDerivedAddress,\n recipient,\n sender: address,\n });\n\n if (!transaction) {\n throw new USwapError(\"core_transaction_invalid_sender_address\");\n }\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n const signedTransaction = await provider.signTransaction(transaction);\n\n const txid = await connection.sendRawTransaction(signedTransaction.serialize());\n\n return txid;\n };\n\n return { ...toolbox, address, transfer };\n }\n\n default: {\n throw new USwapError(\"wallet_chain_not_supported\", { chain, wallet: WalletOption.PHANTOM });\n }\n }\n}\n"
6
+ ],
7
+ "mappings": "mDAIA,gBAEE,2BACA,gBAEA,kBACA,wBAEF,uBAAS,8BAAc,4BAEhB,IAAM,EAAgB,EAAa,CACxC,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAA6B,CAAC,EAAiB,CAC7C,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEpF,GAAI,CASF,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAQ,aAAY,GAAY,MAAM,EAAiB,CAAK,EAE5D,EAAS,IAAK,EAAS,UAAS,QAAO,YAAW,CAAC,EACpD,CACH,EAEO,GACP,MAAO,EAAO,CACd,GAAI,aAAiB,EAAY,MAAM,EAEvC,MAAM,IAAI,EAAW,qCAAsC,CAAK,IAGtE,KAAM,iBACN,gBAAiB,CAAC,EAAM,QAAS,EAAM,SAAU,EAAM,MAAO,EAAM,MAAM,EAC1E,WAAY,EAAa,OAC3B,CAAC,EAEY,EAA2B,EAAyB,CAAa,EAG9E,eAAe,CAAgB,CAAC,EAA8B,CAC5D,IAAM,EAAe,QAAQ,QAE7B,OAAQ,QACD,EAAM,QAAS,CAClB,IAAM,EAAW,GAAS,QAC1B,GAAI,CAAC,GAAU,UACb,MAAM,IAAI,EAAW,0BAA0B,EAGjD,IAAQ,kBAAmB,KAAa,oCAC/B,YAAa,MAAM,EAAS,gBAAgB,EAGrD,MAAO,IAFS,MAAM,EAAe,CAAK,EAErB,SAAQ,CAC/B,MAEK,EAAM,cACN,EAAM,MAAO,CAChB,IAAQ,iBAAkB,KAAa,kCAC/B,uBAAsB,0BAA2B,KAAa,4BAC9D,mBAAoB,KAAa,kBAEnC,EAAW,IAAI,EAAgB,GAAS,SAAU,KAAK,GACtD,GAAW,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAEzD,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,IAAU,EAAM,SAAU,CAC5B,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,EAAuB,EAAU,EAAO,CAAa,EAG7D,MAAO,IAAK,EAAqB,CAAE,QAAO,WAAU,SAAQ,CAAC,EAAG,SAAQ,CAC1E,MAEK,EAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,oCACpC,EAAW,GAAS,OAC1B,GAAI,CAAC,GAAU,UACb,MAAM,IAAI,EAAW,0BAA0B,EAIjD,IAAM,GADqB,MAAM,EAAS,QAAQ,GACP,UAAU,SAAS,EACxD,EAAU,MAAM,EAAiB,CAAE,OAAQ,CAAS,CAAC,EAuC3D,MAAO,IAAK,EAAS,UAAS,SArCb,OACf,YACA,aACA,6BAC2F,CAC3F,IAAQ,aAAc,KAAa,2BAC7B,EAAkB,MAAM,EAAQ,oBAAoB,EAE1D,GAAI,EAAE,GAA2B,EAAgB,CAAS,GACxD,MAAM,IAAI,EAAW,4CAA4C,EAGnE,IAAM,EAAa,IAAI,EAAU,CAAO,EAClC,EAAa,MAAM,EAAQ,cAAc,EAEzC,EAAc,MAAM,EAAQ,kBAAkB,CAClD,aACA,0BACA,YACA,OAAQ,CACV,CAAC,EAED,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,yCAAyC,EAGhE,IAAM,EAAY,MAAM,EAAW,mBAAmB,EACtD,EAAY,gBAAkB,EAAU,UACxC,EAAY,SAAW,EAEvB,IAAM,EAAoB,MAAM,EAAS,gBAAgB,CAAW,EAIpE,OAFa,MAAM,EAAW,mBAAmB,EAAkB,UAAU,CAAC,EAKzC,CACzC,SAGE,MAAM,IAAI,EAAW,6BAA8B,CAAE,QAAO,OAAQ,EAAa,OAAQ,CAAC",
8
+ "debugId": "B9A05D2A061163D264756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ var P={};u(P,{polkadotWallet:()=>d,POLKADOT_SUPPORTED_CHAINS:()=>_});module.exports=f(P);var t=require("@tcswap/helpers"),r=require("@tcswap/wallet-core"),d=r.createWallet({connect:({addChain:o,supportedChains:i,walletType:l})=>async function(s){let e=t.filterSupportedChains({chains:s,supportedChains:i,walletType:l});return await Promise.all(e.map(async(a)=>{let{address:c,...w}=await m(a);o({...w,address:c,chain:a,walletType:l})})),!0},name:"connectPolkadotJs",supportedChains:[t.Chain.Polkadot],walletType:t.WalletOption.POLKADOT_JS}),_=r.getWalletSupportedChains(d);async function m(o){switch(o){case t.Chain.Polkadot:{let{getSubstrateToolbox:i}=await import("@tcswap/toolboxes/substrate"),n=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!n)throw new t.USwapError({errorKey:"wallet_polkadot_not_found",info:{chain:o}});let s=await i(o,{signer:n.signer}),[e]=await n.accounts.get();if(!e?.address)throw new t.USwapError({errorKey:"wallet_missing_params",info:{address:e?.address,wallet:t.WalletOption.POLKADOT_JS}});let a=s.convertAddress(e.address,0);return{...s,address:a,getAddress:()=>a}}default:throw new t.USwapError({errorKey:"wallet_chain_not_supported",info:{chain:o,wallet:t.WalletOption.POLKADOT_JS}})}}
2
+
3
+ //# debugId=73814B57538110DC64756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/polkadotjs/index.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { Chain, filterSupportedChains, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\n\nexport const polkadotWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectPolkadotJs(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const { address, ...walletMethods } = await getWalletMethods(chain);\n\n addChain({ ...walletMethods, address, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectPolkadotJs\",\n supportedChains: [Chain.Polkadot],\n walletType: WalletOption.POLKADOT_JS,\n});\n\nexport const POLKADOT_SUPPORTED_CHAINS = getWalletSupportedChains(polkadotWallet);\n\nasync function getWalletMethods(chain: Chain) {\n switch (chain) {\n case Chain.Polkadot: {\n const { getSubstrateToolbox } = await import(\"@tcswap/toolboxes/substrate\");\n const injectedExtension = window?.injectedWeb3?.[\"polkadot-js\"];\n\n const rawExtension = await injectedExtension?.enable?.(\"polkadot-js\");\n if (!rawExtension) {\n throw new USwapError({ errorKey: \"wallet_polkadot_not_found\", info: { chain } });\n }\n\n const toolbox = await getSubstrateToolbox(chain, { signer: rawExtension.signer });\n const [account] = await rawExtension.accounts.get();\n\n if (!account?.address) {\n throw new USwapError({\n errorKey: \"wallet_missing_params\",\n info: { address: account?.address, wallet: WalletOption.POLKADOT_JS },\n });\n }\n\n const address = toolbox.convertAddress(account.address, 0);\n return { ...toolbox, address, getAddress: () => address };\n }\n\n default:\n throw new USwapError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.POLKADOT_JS },\n });\n }\n}\n"
6
+ ],
7
+ "mappings": "yFAIuE,IAAvE,6BACA,iCAEa,EAAiB,eAAa,CACzC,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAgC,CAAC,EAAiB,CAChD,IAAM,EAAiB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAUpF,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAQ,aAAY,GAAkB,MAAM,EAAiB,CAAK,EAElE,EAAS,IAAK,EAAe,UAAS,QAAO,YAAW,CAAC,EAC1D,CACH,EAEO,IAEX,KAAM,oBACN,gBAAiB,CAAC,QAAM,QAAQ,EAChC,WAAY,eAAa,WAC3B,CAAC,EAEY,EAA4B,2BAAyB,CAAc,EAEhF,eAAe,CAAgB,CAAC,EAAc,CAC5C,OAAQ,QACD,QAAM,SAAU,CACnB,IAAQ,uBAAwB,KAAa,uCAGvC,EAAe,MAFK,QAAQ,eAAe,gBAEH,SAAS,aAAa,EACpE,GAAI,CAAC,EACH,MAAM,IAAI,aAAW,CAAE,SAAU,4BAA6B,KAAM,CAAE,OAAM,CAAE,CAAC,EAGjF,IAAM,EAAU,MAAM,EAAoB,EAAO,CAAE,OAAQ,EAAa,MAAO,CAAC,GACzE,GAAW,MAAM,EAAa,SAAS,IAAI,EAElD,GAAI,CAAC,GAAS,QACZ,MAAM,IAAI,aAAW,CACnB,SAAU,wBACV,KAAM,CAAE,QAAS,GAAS,QAAS,OAAQ,eAAa,WAAY,CACtE,CAAC,EAGH,IAAM,EAAU,EAAQ,eAAe,EAAQ,QAAS,CAAC,EACzD,MAAO,IAAK,EAAS,UAAS,WAAY,IAAM,CAAQ,CAC1D,SAGE,MAAM,IAAI,aAAW,CACnB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,eAAa,WAAY,CAClD,CAAC",
8
+ "debugId": "73814B57538110DC64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ import{a as p,b as f}from"../../chunk-kx2thqhk.js";import{Chain as d,filterSupportedChains as u,USwapError as i,WalletOption as l}from"@tcswap/helpers";import{createWallet as _,getWalletSupportedChains as m}from"@tcswap/wallet-core";var P=_({connect:({addChain:t,supportedChains:s,walletType:r})=>async function(n){let o=u({chains:n,supportedChains:s,walletType:r});return await Promise.all(o.map(async(e)=>{let{address:c,...w}=await h(e);t({...w,address:c,chain:e,walletType:r})})),!0},name:"connectPolkadotJs",supportedChains:[d.Polkadot],walletType:l.POLKADOT_JS}),g=m(P);async function h(t){switch(t){case d.Polkadot:{let{getSubstrateToolbox:s}=await import("@tcswap/toolboxes/substrate"),a=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!a)throw new i({errorKey:"wallet_polkadot_not_found",info:{chain:t}});let n=await s(t,{signer:a.signer}),[o]=await a.accounts.get();if(!o?.address)throw new i({errorKey:"wallet_missing_params",info:{address:o?.address,wallet:l.POLKADOT_JS}});let e=n.convertAddress(o.address,0);return{...n,address:e,getAddress:()=>e}}default:throw new i({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:l.POLKADOT_JS}})}}export{P as polkadotWallet,g as POLKADOT_SUPPORTED_CHAINS};
2
+
3
+ //# debugId=B46C72808543ABC464756E2164756E21
4
+ //# sourceMappingURL=index.js.map