@swapkit/wallets 4.3.11 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/LICENSE +246 -0
  2. package/dist/chunk-1m30h0t9.js +4 -0
  3. package/dist/{chunk-vb4wtm2w.js.map → chunk-1m30h0t9.js.map} +1 -1
  4. package/dist/chunk-5jj4jvy9.js +5 -0
  5. package/dist/{chunk-78m70510.js.map → chunk-5jj4jvy9.js.map} +1 -1
  6. package/dist/chunk-ae6bkfs5.js +3 -0
  7. package/dist/chunk-ae6bkfs5.js.map +9 -0
  8. package/dist/chunk-dx5r3mz1.js +5 -0
  9. package/dist/chunk-dx5r3mz1.js.map +10 -0
  10. package/dist/chunk-ewwx4745.js +4 -0
  11. package/dist/chunk-ewwx4745.js.map +9 -0
  12. package/dist/chunk-qv7snmdv.js +5 -0
  13. package/dist/chunk-qv7snmdv.js.map +10 -0
  14. package/dist/chunk-ttryb513.js +4 -0
  15. package/dist/chunk-ttryb513.js.map +10 -0
  16. package/dist/chunk-zrqsb6ng.js +4 -0
  17. package/dist/chunk-zrqsb6ng.js.map +10 -0
  18. package/dist/src/coinbase/index.cjs +2 -2
  19. package/dist/src/coinbase/index.cjs.map +4 -4
  20. package/dist/src/coinbase/index.js +2 -2
  21. package/dist/src/coinbase/index.js.map +4 -4
  22. package/dist/src/index.cjs +2 -2
  23. package/dist/src/index.cjs.map +4 -5
  24. package/dist/src/index.js +2 -2
  25. package/dist/src/index.js.map +4 -5
  26. package/dist/src/keystore.cjs +2 -2
  27. package/dist/src/keystore.cjs.map +5 -4
  28. package/dist/src/keystore.js +2 -2
  29. package/dist/src/keystore.js.map +5 -4
  30. package/dist/src/near-wallet-selector/index.cjs +2 -2
  31. package/dist/src/near-wallet-selector/index.cjs.map +3 -3
  32. package/dist/src/near-wallet-selector/index.js +2 -2
  33. package/dist/src/near-wallet-selector/index.js.map +3 -3
  34. package/dist/src/passkeys/index.cjs +2 -2
  35. package/dist/src/passkeys/index.cjs.map +3 -3
  36. package/dist/src/passkeys/index.js +2 -2
  37. package/dist/src/passkeys/index.js.map +3 -3
  38. package/dist/src/radix/index.cjs +2 -2
  39. package/dist/src/radix/index.cjs.map +3 -3
  40. package/dist/src/radix/index.js +2 -2
  41. package/dist/src/radix/index.js.map +3 -3
  42. package/dist/src/walletconnect/index.cjs +2 -2
  43. package/dist/src/walletconnect/index.cjs.map +4 -4
  44. package/dist/src/walletconnect/index.js +2 -2
  45. package/dist/src/walletconnect/index.js.map +4 -4
  46. package/dist/src/xaman/index.cjs +2 -2
  47. package/dist/src/xaman/index.cjs.map +5 -5
  48. package/dist/src/xaman/index.js +2 -2
  49. package/dist/src/xaman/index.js.map +5 -5
  50. package/dist/types/coinbase/signer.d.ts +58 -23
  51. package/dist/types/coinbase/signer.d.ts.map +1 -1
  52. package/dist/types/core.d.ts +18 -0
  53. package/dist/types/core.d.ts.map +1 -0
  54. package/dist/types/index.d.ts +1 -1
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/keystore-helpers.d.ts +42 -0
  57. package/dist/types/keystore-helpers.d.ts.map +1 -0
  58. package/dist/types/keystore.d.ts +66 -1
  59. package/dist/types/keystore.d.ts.map +1 -1
  60. package/dist/types/passkeys/index.d.ts +2 -2
  61. package/dist/types/passkeys/index.d.ts.map +1 -1
  62. package/dist/types/radix/index.d.ts.map +1 -1
  63. package/dist/types/types.d.ts +6 -4
  64. package/dist/types/types.d.ts.map +1 -1
  65. package/dist/types/utils.d.ts.map +1 -1
  66. package/dist/types/walletconnect/constants.d.ts +2 -1
  67. package/dist/types/walletconnect/constants.d.ts.map +1 -1
  68. package/dist/types/walletconnect/evmSigner.d.ts +2 -2
  69. package/dist/types/walletconnect/evmSigner.d.ts.map +1 -1
  70. package/dist/types/walletconnect/index.d.ts +2 -2
  71. package/dist/types/walletconnect/index.d.ts.map +1 -1
  72. package/dist/types/xaman/helpers.d.ts +22 -20
  73. package/dist/types/xaman/helpers.d.ts.map +1 -1
  74. package/dist/types/xaman/index.d.ts +1 -1
  75. package/dist/types/xaman/index.d.ts.map +1 -1
  76. package/dist/types/xaman/types.d.ts +8 -0
  77. package/dist/types/xaman/types.d.ts.map +1 -1
  78. package/dist/types/xaman/walletMethods.d.ts +14 -2
  79. package/dist/types/xaman/walletMethods.d.ts.map +1 -1
  80. package/package.json +26 -16
  81. package/dist/chunk-78m70510.js +0 -5
  82. package/dist/chunk-7jmqkkhs.js +0 -4
  83. package/dist/chunk-7jmqkkhs.js.map +0 -10
  84. package/dist/chunk-9acqzpjy.js +0 -5
  85. package/dist/chunk-9acqzpjy.js.map +0 -10
  86. package/dist/chunk-vb4wtm2w.js +0 -4
  87. package/src/bitget.ts +0 -1
  88. package/src/coinbase/index.ts +0 -44
  89. package/src/coinbase/signer.ts +0 -77
  90. package/src/cosmostation.ts +0 -1
  91. package/src/ctrl.ts +0 -1
  92. package/src/evm-extensions.ts +0 -1
  93. package/src/index.ts +0 -3
  94. package/src/keepkey-bex.ts +0 -1
  95. package/src/keepkey.ts +0 -1
  96. package/src/keplr.ts +0 -1
  97. package/src/keystore.ts +0 -1
  98. package/src/ledger.ts +0 -1
  99. package/src/near-wallet-selector/index.ts +0 -115
  100. package/src/okx.ts +0 -1
  101. package/src/onekey.ts +0 -1
  102. package/src/passkeys/index.ts +0 -183
  103. package/src/phantom.ts +0 -1
  104. package/src/polkadotjs.ts +0 -1
  105. package/src/radix/index.ts +0 -194
  106. package/src/talisman.ts +0 -1
  107. package/src/trezor.ts +0 -1
  108. package/src/tronlink.ts +0 -1
  109. package/src/types.ts +0 -94
  110. package/src/utils.ts +0 -59
  111. package/src/vultisig.ts +0 -1
  112. package/src/walletconnect/constants.ts +0 -103
  113. package/src/walletconnect/evmSigner.ts +0 -125
  114. package/src/walletconnect/helpers.ts +0 -73
  115. package/src/walletconnect/index.ts +0 -392
  116. package/src/walletconnect/namespaces.ts +0 -80
  117. package/src/walletconnect/types.ts +0 -6
  118. package/src/xaman/helpers.ts +0 -54
  119. package/src/xaman/index.ts +0 -62
  120. package/src/xaman/types.ts +0 -26
  121. package/src/xaman/walletMethods.ts +0 -110
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/coinbase/index.ts", "../src/coinbase/signer.ts"],
4
4
  "sourcesContent": [
5
- "import { Chain, ChainToChainId, filterSupportedChains, SKConfig, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nimport { getWalletMethods } from \"./signer\";\n\nexport const coinbaseWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectCoinbaseWallet(chains: Chain[]) {\n const { createCoinbaseWalletSDK } = await import(\"@coinbase/wallet-sdk\");\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n const coinbaseConfig = SKConfig.get(\"integrations\").coinbase || { appName: \"Swapkit Playground\" };\n\n const coinbaseSdk = createCoinbaseWalletSDK({\n ...coinbaseConfig,\n appChainIds: filteredChains.map((chain) => Number(ChainToChainId[chain])),\n });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods({ chain, coinbaseSdk });\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectCoinbaseWallet\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Optimism,\n Chain.Polygon,\n Chain.XLayer,\n ],\n walletType: WalletOption.COINBASE_MOBILE,\n});\n\nexport const COINBASE_SUPPORTED_CHAINS = getWalletSupportedChains(coinbaseWallet);\n",
6
- "import type { CoinbaseWalletProvider } from \"@coinbase/wallet-sdk\";\nimport type { createCoinbaseWalletSDK } from \"@coinbase/wallet-sdk/dist/createCoinbaseWalletSDK.js\";\nimport { Chain, SwapKitError } from \"@swapkit/helpers\";\nimport type { Provider } from \"ethers\";\n\nasync function getCoinbaseMobileSigner(walletProvider: CoinbaseWalletProvider, provider?: Provider) {\n const { AbstractSigner } = await import(\"ethers\");\n\n class CoinbaseMobileSigner extends AbstractSigner {\n #coinbaseProvider: CoinbaseWalletProvider;\n\n constructor(coinbaseProvider: CoinbaseWalletProvider, provider?: Provider) {\n super(provider);\n this.#coinbaseProvider = coinbaseProvider;\n }\n\n async getAddress() {\n const accounts = await this.#coinbaseProvider.request<string[]>({ method: \"eth_requestAccounts\" });\n\n if (!accounts[0]) throw new SwapKitError(\"wallet_coinbase_no_accounts\");\n\n return accounts[0];\n }\n\n async signTransaction() {\n return await this.#coinbaseProvider.request<string>({ method: \"eth_signTransaction\" });\n }\n\n async signMessage(message: string | Uint8Array) {\n return await this.#coinbaseProvider.request<string>({\n method: \"personal_sign\",\n params: [message, await this.getAddress()],\n });\n }\n\n signTypedData = () => {\n throw new SwapKitError(\"wallet_coinbase_method_not_supported\", { method: \"signTypedData\" });\n };\n\n connect(provider: Provider) {\n return new CoinbaseMobileSigner(this.#coinbaseProvider, provider);\n }\n }\n\n return new CoinbaseMobileSigner(walletProvider, provider);\n}\n\nexport const getWalletMethods = async ({\n chain,\n coinbaseSdk,\n}: {\n chain: Chain;\n coinbaseSdk: ReturnType<typeof createCoinbaseWalletSDK>;\n}) => {\n switch (chain) {\n case Chain.Ethereum:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.BinanceSmartChain: {\n const walletProvider = coinbaseSdk.getProvider() as CoinbaseWalletProvider;\n const { getEvmToolbox, getProvider } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getCoinbaseMobileSigner(walletProvider, provider);\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n const address = await signer.getAddress();\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError(\"wallet_coinbase_chain_not_supported\", { chain });\n }\n};\n"
5
+ "import { Chain, ChainToChainId, filterSupportedChains, SKConfig, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"../core\";\n\nimport { getWalletMethods } from \"./signer\";\n\nexport const coinbaseWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectCoinbaseWallet(chains: Chain[]) {\n const { createCoinbaseWalletSDK } = await import(\"@coinbase/wallet-sdk\");\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n const coinbaseConfig = SKConfig.get(\"integrations\").coinbase || { appName: \"Swapkit Playground\" };\n\n const coinbaseSdk = createCoinbaseWalletSDK({\n ...coinbaseConfig,\n appChainIds: filteredChains.map((chain) => Number(ChainToChainId[chain])),\n });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods({ chain, coinbaseSdk });\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectCoinbaseWallet\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Ethereum,\n Chain.Optimism,\n Chain.Polygon,\n Chain.XLayer,\n ],\n walletType: WalletOption.COINBASE_MOBILE,\n});\n\nexport const COINBASE_SUPPORTED_CHAINS = getWalletSupportedChains(coinbaseWallet);\n",
6
+ "import type { CoinbaseWalletProvider } from \"@coinbase/wallet-sdk\";\nimport type { createCoinbaseWalletSDK } from \"@coinbase/wallet-sdk/dist/createCoinbaseWalletSDK.js\";\nimport { Chain, SwapKitError } from \"@swapkit/helpers\";\nimport type { Provider, TypedDataDomain, TypedDataField } from \"ethers\";\n\nasync function getCoinbaseMobileSigner(walletProvider: CoinbaseWalletProvider, provider?: Provider) {\n const { AbstractSigner } = await import(\"ethers\");\n\n class CoinbaseMobileSigner extends AbstractSigner {\n #coinbaseProvider: CoinbaseWalletProvider;\n\n constructor(coinbaseProvider: CoinbaseWalletProvider, provider?: Provider) {\n super(provider);\n this.#coinbaseProvider = coinbaseProvider;\n }\n\n async getAddress() {\n const accounts = await this.#coinbaseProvider.request<string[]>({ method: \"eth_requestAccounts\" });\n\n if (!accounts[0]) throw new SwapKitError(\"wallet_coinbase_no_accounts\");\n\n return accounts[0];\n }\n\n async signTransaction() {\n return await this.#coinbaseProvider.request<string>({ method: \"eth_signTransaction\" });\n }\n\n async signMessage(message: string | Uint8Array) {\n return await this.#coinbaseProvider.request<string>({\n method: \"personal_sign\",\n params: [message, await this.getAddress()],\n });\n }\n\n async signTypedData(\n domain: TypedDataDomain,\n types: Record<string, TypedDataField[]>,\n value: Record<string, unknown>,\n explicitPrimaryType?: string,\n ) {\n const { buildEIP712DomainType } = await import(\"@swapkit/toolboxes/evm\");\n const { TypedDataEncoder } = await import(\"ethers\");\n const address = await this.getAddress();\n\n const { EIP712Domain: _, ...filteredTypes } = types;\n const primaryType = explicitPrimaryType ?? TypedDataEncoder.from(filteredTypes).primaryType;\n\n const payload = {\n domain,\n message: value,\n primaryType,\n types: { EIP712Domain: buildEIP712DomainType(domain), ...filteredTypes },\n };\n\n return await this.#coinbaseProvider.request<string>({\n method: \"eth_signTypedData_v4\",\n params: [address, JSON.stringify(payload)],\n });\n }\n\n connect(provider: Provider) {\n return new CoinbaseMobileSigner(this.#coinbaseProvider, provider);\n }\n }\n\n return new CoinbaseMobileSigner(walletProvider, provider);\n}\n\nexport const getWalletMethods = async ({\n chain,\n coinbaseSdk,\n}: {\n chain: Chain;\n coinbaseSdk: ReturnType<typeof createCoinbaseWalletSDK>;\n}) => {\n switch (chain) {\n case Chain.Ethereum:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.BinanceSmartChain: {\n const walletProvider = coinbaseSdk.getProvider() as CoinbaseWalletProvider;\n const { getEvmToolboxAsync, getProvider } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getCoinbaseMobileSigner(walletProvider, provider);\n const toolbox = await getEvmToolboxAsync(chain, { provider, signer });\n const address = await signer.getAddress();\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError(\"wallet_coinbase_chain_not_supported\", { chain });\n }\n};\n"
7
7
  ],
8
- "mappings": "mDAAA,gBAAS,oBAAO,2BAAgB,cAAuB,kBAAU,yBACjE,uBAAS,8BAAc,6BCCvB,gBAAS,kBAAO,yBAGhB,eAAe,CAAuB,CAAC,EAAwC,EAAqB,CAClG,IAAQ,kBAAmB,KAAa,kBAExC,MAAM,UAA6B,CAAe,CAChD,GAEA,WAAW,CAAC,EAA0C,EAAqB,CACzE,MAAM,CAAQ,EACd,KAAK,GAAoB,OAGrB,WAAU,EAAG,CACjB,IAAM,EAAW,MAAM,KAAK,GAAkB,QAAkB,CAAE,OAAQ,qBAAsB,CAAC,EAEjG,GAAI,CAAC,EAAS,GAAI,MAAM,IAAI,EAAa,6BAA6B,EAEtE,OAAO,EAAS,QAGZ,gBAAe,EAAG,CACtB,OAAO,MAAM,KAAK,GAAkB,QAAgB,CAAE,OAAQ,qBAAsB,CAAC,OAGjF,YAAW,CAAC,EAA8B,CAC9C,OAAO,MAAM,KAAK,GAAkB,QAAgB,CAClD,OAAQ,gBACR,OAAQ,CAAC,EAAS,MAAM,KAAK,WAAW,CAAC,CAC3C,CAAC,EAGH,cAAgB,IAAM,CACpB,MAAM,IAAI,EAAa,uCAAwC,CAAE,OAAQ,eAAgB,CAAC,GAG5F,OAAO,CAAC,EAAoB,CAC1B,OAAO,IAAI,EAAqB,KAAK,GAAmB,CAAQ,EAEpE,CAEA,OAAO,IAAI,EAAqB,EAAgB,CAAQ,EAGnD,IAAM,EAAmB,OAC9B,QACA,iBAII,CACJ,OAAQ,QACD,EAAM,cACN,EAAM,eACN,EAAM,cACN,EAAM,cACN,EAAM,aACN,EAAM,UACN,EAAM,kBAAmB,CAC5B,IAAM,EAAiB,EAAY,YAAY,GACvC,gBAAe,eAAgB,KAAa,kCAE9C,EAAW,MAAM,EAAY,CAAK,EAClC,EAAS,MAAM,EAAwB,EAAgB,CAAQ,EAC/D,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EACzD,EAAU,MAAM,EAAO,WAAW,EAExC,MAAO,IAAK,EAAS,SAAQ,CAC/B,SAGE,MAAM,IAAI,EAAa,sCAAuC,CAAE,OAAM,CAAC,IDrEtE,IAAM,EAAiB,EAAa,CACzC,QAAS,EAAG,WAAU,aAAY,qBAChC,cAAoC,CAAC,EAAiB,CACpD,IAAQ,2BAA4B,KAAa,gCAE3C,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAE9E,EAAiB,EAAS,IAAI,cAAc,EAAE,UAAY,CAAE,QAAS,oBAAqB,EAE1F,EAAc,EAAwB,IACvC,EACH,YAAa,EAAe,IAAI,CAAC,IAAU,OAAO,EAAe,EAAM,CAAC,CAC1E,CAAC,EAUD,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAgB,MAAM,EAAiB,CAAE,QAAO,aAAY,CAAC,EAEnE,EAAS,IAAK,EAAe,QAAO,YAAW,CAAC,EACjD,CACH,EAEO,IAEX,KAAM,wBACN,gBAAiB,CACf,EAAM,SACN,EAAM,UACN,EAAM,KACN,EAAM,kBACN,EAAM,SACN,EAAM,SACN,EAAM,QACN,EAAM,MACR,EACA,WAAY,EAAa,eAC3B,CAAC,EAEY,EAA4B,EAAyB,CAAc",
9
- "debugId": "AA37891879BE720D64756E2164756E21",
8
+ "mappings": "iGAAA,cAAS,oBAAO,2BAAgB,cAAuB,kBAAU,yBCEjE,gBAAS,kBAAO,yBAGhB,eAAe,CAAuB,CAAC,EAAwC,EAAqB,CAClG,IAAQ,kBAAmB,KAAa,kBAExC,MAAM,UAA6B,CAAe,CAChD,GAEA,WAAW,CAAC,EAA0C,EAAqB,CACzE,MAAM,CAAQ,EACd,KAAK,GAAoB,OAGrB,WAAU,EAAG,CACjB,IAAM,EAAW,MAAM,KAAK,GAAkB,QAAkB,CAAE,OAAQ,qBAAsB,CAAC,EAEjG,GAAI,CAAC,EAAS,GAAI,MAAM,IAAI,EAAa,6BAA6B,EAEtE,OAAO,EAAS,QAGZ,gBAAe,EAAG,CACtB,OAAO,MAAM,KAAK,GAAkB,QAAgB,CAAE,OAAQ,qBAAsB,CAAC,OAGjF,YAAW,CAAC,EAA8B,CAC9C,OAAO,MAAM,KAAK,GAAkB,QAAgB,CAClD,OAAQ,gBACR,OAAQ,CAAC,EAAS,MAAM,KAAK,WAAW,CAAC,CAC3C,CAAC,OAGG,cAAa,CACjB,EACA,EACA,EACA,EACA,CACA,IAAQ,yBAA0B,KAAa,mCACvC,oBAAqB,KAAa,kBACpC,EAAU,MAAM,KAAK,WAAW,GAE9B,aAAc,KAAM,GAAkB,EACxC,EAAc,GAAuB,EAAiB,KAAK,CAAa,EAAE,YAE1E,EAAU,CACd,SACA,QAAS,EACT,cACA,MAAO,CAAE,aAAc,EAAsB,CAAM,KAAM,CAAc,CACzE,EAEA,OAAO,MAAM,KAAK,GAAkB,QAAgB,CAClD,OAAQ,uBACR,OAAQ,CAAC,EAAS,KAAK,UAAU,CAAO,CAAC,CAC3C,CAAC,EAGH,OAAO,CAAC,EAAoB,CAC1B,OAAO,IAAI,EAAqB,KAAK,GAAmB,CAAQ,EAEpE,CAEA,OAAO,IAAI,EAAqB,EAAgB,CAAQ,EAGnD,IAAM,EAAmB,OAC9B,QACA,iBAII,CACJ,OAAQ,QACD,EAAM,cACN,EAAM,eACN,EAAM,cACN,EAAM,cACN,EAAM,aACN,EAAM,UACN,EAAM,kBAAmB,CAC5B,IAAM,EAAiB,EAAY,YAAY,GACvC,qBAAoB,eAAgB,KAAa,kCAEnD,EAAW,MAAM,EAAY,CAAK,EAClC,EAAS,MAAM,EAAwB,EAAgB,CAAQ,EAC/D,EAAU,MAAM,EAAmB,EAAO,CAAE,WAAU,QAAO,CAAC,EAC9D,EAAU,MAAM,EAAO,WAAW,EAExC,MAAO,IAAK,EAAS,SAAQ,CAC/B,SAGE,MAAM,IAAI,EAAa,sCAAuC,CAAE,OAAM,CAAC,ID3FtE,IAAM,EAAiB,EAAa,CACzC,QAAS,EAAG,WAAU,aAAY,qBAChC,cAAoC,CAAC,EAAiB,CACpD,IAAQ,2BAA4B,KAAa,gCAE3C,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAE9E,EAAiB,EAAS,IAAI,cAAc,EAAE,UAAY,CAAE,QAAS,oBAAqB,EAE1F,EAAc,EAAwB,IACvC,EACH,YAAa,EAAe,IAAI,CAAC,IAAU,OAAO,EAAe,EAAM,CAAC,CAC1E,CAAC,EAUD,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAgB,MAAM,EAAiB,CAAE,QAAO,aAAY,CAAC,EAEnE,EAAS,IAAK,EAAe,QAAO,YAAW,CAAC,EACjD,CACH,EAEO,IAEX,KAAM,wBACN,gBAAiB,CACf,EAAM,SACN,EAAM,UACN,EAAM,KACN,EAAM,kBACN,EAAM,SACN,EAAM,SACN,EAAM,QACN,EAAM,MACR,EACA,WAAY,EAAa,eAC3B,CAAC,EAEY,EAA4B,EAAyB,CAAc",
9
+ "debugId": "BE08F21E9882C8F464756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,4 +1,4 @@
1
- var l={};p(l,{loadWallet:()=>a});module.exports=r(l);o(l,require("@swapkit/wallet-core"),module.exports);var W={};var n={};p(n,{loadWallet:()=>a});var e=require("@swapkit/helpers");async function a(s){let{match:i}=await import("ts-pattern");return await i(s).with(e.WalletOption.COINBASE_MOBILE,async()=>(await import("./coinbase/index.cjs")).coinbaseWallet).with(e.WalletOption.BITGET,async()=>(await import("@swapkit/wallet-extensions/bitget")).bitgetWallet).with(e.WalletOption.CTRL,async()=>(await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet).with(e.WalletOption.VULTISIG,async()=>(await import("@swapkit/wallet-extensions/vultisig")).vultisigWallet).with(e.WalletOption.OKX,async()=>(await import("@swapkit/wallet-extensions/okx")).okxWallet).with(e.WalletOption.ONEKEY,async()=>(await import("@swapkit/wallet-extensions/onekey")).onekeyWallet).with(e.WalletOption.EXODUS,async()=>(await import("./passkeys/index.cjs")).passkeysWallet).with(e.WalletOption.KEEPKEY,async()=>(await import("@swapkit/wallet-hardware/keepkey")).keepkeyWallet).with(e.WalletOption.KEEPKEY_BEX,async()=>(await import("@swapkit/wallet-extensions/keepkey-bex")).keepkeyBexWallet).with(e.WalletOption.WALLETCONNECT,async()=>(await import("./walletconnect/index.cjs")).walletconnectWallet).with(e.WalletOption.KEPLR,e.WalletOption.LEAP,async()=>(await import("@swapkit/wallet-extensions/keplr")).keplrWallet).with(e.WalletOption.COSMOSTATION,async()=>(await import("@swapkit/wallet-extensions/cosmostation")).cosmostationWallet).with(e.WalletOption.BRAVE,e.WalletOption.COINBASE_WEB,e.WalletOption.EIP6963,e.WalletOption.METAMASK,e.WalletOption.OKX_MOBILE,e.WalletOption.TRUSTWALLET_WEB,async()=>(await import("@swapkit/wallet-extensions/evm-extensions")).evmWallet).with(e.WalletOption.KEYSTORE,async()=>(await import("@swapkit/wallet-keystore")).keystoreWallet).with(e.WalletOption.TREZOR,async()=>(await import("@swapkit/wallet-hardware/trezor")).trezorWallet).with(e.WalletOption.LEDGER,e.WalletOption.LEDGER_LIVE,async()=>(await import("@swapkit/wallet-hardware/ledger")).ledgerWallet).with(e.WalletOption.PASSKEYS,async()=>(await import("./passkeys/index.cjs")).passkeysWallet).with(e.WalletOption.PHANTOM,async()=>(await import("@swapkit/wallet-extensions/phantom")).phantomWallet).with(e.WalletOption.POLKADOT_JS,async()=>(await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet).with(e.WalletOption.RADIX_WALLET,async()=>(await import("./radix/index.cjs")).radixWallet).with(e.WalletOption.TALISMAN,async()=>(await import("@swapkit/wallet-extensions/talisman")).talismanWallet).with(e.WalletOption.TRONLINK,async()=>(await import("@swapkit/wallet-extensions/tronlink")).tronlinkWallet).with(e.WalletOption.WALLET_SELECTOR,async()=>(await import("./near-wallet-selector/index.cjs")).walletSelectorWallet).with(e.WalletOption.XAMAN,async()=>(await import("./xaman/index.cjs")).xamanWallet).exhaustive()}
1
+ var i={};p(i,{loadWallet:()=>o,getWalletSupportedChains:()=>s,createWallet:()=>n});module.exports=a(i);var t=require("@swapkit/helpers");async function o(e){let{match:l}=await import("ts-pattern");return await l(e).with(t.WalletOption.COINBASE_MOBILE,async()=>(await import("./coinbase/index.cjs")).coinbaseWallet).with(t.WalletOption.BITGET,async()=>(await import("@swapkit/wallet-extensions/bitget")).bitgetWallet).with(t.WalletOption.CTRL,async()=>(await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet).with(t.WalletOption.VULTISIG,async()=>(await import("@swapkit/wallet-extensions/vultisig")).vultisigWallet).with(t.WalletOption.OKX,async()=>(await import("@swapkit/wallet-extensions/okx")).okxWallet).with(t.WalletOption.ONEKEY,async()=>(await import("@swapkit/wallet-extensions/onekey")).onekeyWallet).with(t.WalletOption.EXODUS,async()=>(await import("./passkeys/index.cjs")).passkeysWallet).with(t.WalletOption.KEEPKEY,async()=>(await import("@swapkit/wallet-hardware/keepkey")).keepkeyWallet).with(t.WalletOption.KEEPKEY_BEX,async()=>(await import("@swapkit/wallet-extensions/keepkey-bex")).keepkeyBexWallet).with(t.WalletOption.WALLETCONNECT,async()=>(await import("./walletconnect/index.cjs")).walletconnectWallet).with(t.WalletOption.KEPLR,t.WalletOption.LEAP,async()=>(await import("@swapkit/wallet-extensions/keplr")).keplrWallet).with(t.WalletOption.COSMOSTATION,async()=>(await import("@swapkit/wallet-extensions/cosmostation")).cosmostationWallet).with(t.WalletOption.BRAVE,t.WalletOption.COINBASE_WEB,t.WalletOption.EIP6963,t.WalletOption.METAMASK,t.WalletOption.OKX_MOBILE,async()=>(await import("@swapkit/wallet-extensions/evm-extensions")).evmWallet).with(t.WalletOption.TRUSTWALLET_WEB,async()=>(await import("@swapkit/wallet-extensions/trustwallet")).trustwalletWallet).with(t.WalletOption.KEYSTORE,async()=>(await import("./keystore.cjs")).keystoreWallet).with(t.WalletOption.TREZOR,async()=>(await import("@swapkit/wallet-hardware/trezor")).trezorWallet).with(t.WalletOption.LEDGER,async()=>(await import("@swapkit/wallet-hardware/ledger")).ledgerWallet).with(t.WalletOption.PASSKEYS,async()=>(await import("./passkeys/index.cjs")).passkeysWallet).with(t.WalletOption.PETRA,async()=>(await import("@swapkit/wallet-extensions/petra")).petraWallet).with(t.WalletOption.PHANTOM,async()=>(await import("@swapkit/wallet-extensions/phantom")).phantomWallet).with(t.WalletOption.POLKADOT_JS,async()=>(await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet).with(t.WalletOption.RADIX_WALLET,async()=>(await import("./radix/index.cjs")).radixWallet).with(t.WalletOption.TALISMAN,async()=>(await import("@swapkit/wallet-extensions/talisman")).talismanWallet).with(t.WalletOption.TRONLINK,async()=>(await import("@swapkit/wallet-extensions/tronlink")).tronlinkWallet).with(t.WalletOption.WALLET_SELECTOR,async()=>(await import("./near-wallet-selector/index.cjs")).walletSelectorWallet).with(t.WalletOption.XAMAN,async()=>(await import("./xaman/index.cjs")).xamanWallet).exhaustive()}
2
2
 
3
- //# debugId=85C977052119CEB764756E2164756E21
3
+ //# debugId=A3EC4EA8F3B0EAFE64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/utils.ts"],
3
+ "sources": ["../src/utils.ts"],
4
4
  "sourcesContent": [
5
- "export * from \"@swapkit/wallet-core\";\nexport * from \"./types\";\nexport * from \"./utils\";\n",
6
- "import { WalletOption } from \"@swapkit/helpers\";\nimport type { SKWallets } from \"./types\";\n\nexport async function loadWallet<W extends WalletOption>(walletOption: W): Promise<SKWallets[W]> {\n const { match } = await import(\"ts-pattern\");\n\n const wallet = await match(walletOption as WalletOption)\n .with(WalletOption.COINBASE_MOBILE, async () => (await import(\"./coinbase\")).coinbaseWallet)\n .with(WalletOption.BITGET, async () => (await import(\"@swapkit/wallet-extensions/bitget\")).bitgetWallet)\n .with(WalletOption.CTRL, async () => (await import(\"@swapkit/wallet-extensions/ctrl\")).ctrlWallet)\n .with(WalletOption.VULTISIG, async () => (await import(\"@swapkit/wallet-extensions/vultisig\")).vultisigWallet)\n .with(WalletOption.OKX, async () => (await import(\"@swapkit/wallet-extensions/okx\")).okxWallet)\n .with(WalletOption.ONEKEY, async () => (await import(\"@swapkit/wallet-extensions/onekey\")).onekeyWallet)\n .with(WalletOption.EXODUS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.KEEPKEY, async () => (await import(\"@swapkit/wallet-hardware/keepkey\")).keepkeyWallet)\n .with(\n WalletOption.KEEPKEY_BEX,\n async () => (await import(\"@swapkit/wallet-extensions/keepkey-bex\")).keepkeyBexWallet,\n )\n .with(WalletOption.WALLETCONNECT, async () => (await import(\"./walletconnect\")).walletconnectWallet)\n .with(\n WalletOption.KEPLR,\n WalletOption.LEAP,\n async () => (await import(\"@swapkit/wallet-extensions/keplr\")).keplrWallet,\n )\n .with(\n WalletOption.COSMOSTATION,\n async () => (await import(\"@swapkit/wallet-extensions/cosmostation\")).cosmostationWallet,\n )\n .with(\n WalletOption.BRAVE,\n WalletOption.COINBASE_WEB,\n WalletOption.EIP6963,\n WalletOption.METAMASK,\n WalletOption.OKX_MOBILE,\n WalletOption.TRUSTWALLET_WEB,\n async () => (await import(\"@swapkit/wallet-extensions/evm-extensions\")).evmWallet,\n )\n\n .with(WalletOption.KEYSTORE, async () => (await import(\"@swapkit/wallet-keystore\")).keystoreWallet)\n .with(WalletOption.TREZOR, async () => (await import(\"@swapkit/wallet-hardware/trezor\")).trezorWallet)\n .with(\n WalletOption.LEDGER,\n // TODO: Remove\n WalletOption.LEDGER_LIVE,\n async () => (await import(\"@swapkit/wallet-hardware/ledger\")).ledgerWallet,\n )\n .with(WalletOption.PASSKEYS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.PHANTOM, async () => (await import(\"@swapkit/wallet-extensions/phantom\")).phantomWallet)\n .with(WalletOption.POLKADOT_JS, async () => (await import(\"@swapkit/wallet-extensions/polkadotjs\")).polkadotWallet)\n .with(WalletOption.RADIX_WALLET, async () => (await import(\"./radix\")).radixWallet)\n .with(WalletOption.TALISMAN, async () => (await import(\"@swapkit/wallet-extensions/talisman\")).talismanWallet)\n .with(WalletOption.TRONLINK, async () => (await import(\"@swapkit/wallet-extensions/tronlink\")).tronlinkWallet)\n .with(WalletOption.WALLET_SELECTOR, async () => (await import(\"./near-wallet-selector\")).walletSelectorWallet)\n .with(WalletOption.XAMAN, async () => (await import(\"./xaman\")).xamanWallet)\n .exhaustive();\n\n return wallet as SKWallets[W];\n}\n"
5
+ "import { WalletOption } from \"@swapkit/helpers\";\nimport type { SKWallets } from \"./types\";\n\nexport async function loadWallet<W extends WalletOption>(walletOption: W): Promise<SKWallets[W]> {\n const { match } = await import(\"ts-pattern\");\n\n const wallet = await match(walletOption as WalletOption)\n .with(WalletOption.COINBASE_MOBILE, async () => (await import(\"./coinbase\")).coinbaseWallet)\n .with(WalletOption.BITGET, async () => (await import(\"@swapkit/wallet-extensions/bitget\")).bitgetWallet)\n .with(WalletOption.CTRL, async () => (await import(\"@swapkit/wallet-extensions/ctrl\")).ctrlWallet)\n .with(WalletOption.VULTISIG, async () => (await import(\"@swapkit/wallet-extensions/vultisig\")).vultisigWallet)\n .with(WalletOption.OKX, async () => (await import(\"@swapkit/wallet-extensions/okx\")).okxWallet)\n .with(WalletOption.ONEKEY, async () => (await import(\"@swapkit/wallet-extensions/onekey\")).onekeyWallet)\n .with(WalletOption.EXODUS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.KEEPKEY, async () => (await import(\"@swapkit/wallet-hardware/keepkey\")).keepkeyWallet)\n .with(\n WalletOption.KEEPKEY_BEX,\n async () => (await import(\"@swapkit/wallet-extensions/keepkey-bex\")).keepkeyBexWallet,\n )\n .with(WalletOption.WALLETCONNECT, async () => (await import(\"./walletconnect\")).walletconnectWallet)\n .with(\n WalletOption.KEPLR,\n WalletOption.LEAP,\n async () => (await import(\"@swapkit/wallet-extensions/keplr\")).keplrWallet,\n )\n .with(\n WalletOption.COSMOSTATION,\n async () => (await import(\"@swapkit/wallet-extensions/cosmostation\")).cosmostationWallet,\n )\n .with(\n WalletOption.BRAVE,\n WalletOption.COINBASE_WEB,\n WalletOption.EIP6963,\n WalletOption.METAMASK,\n WalletOption.OKX_MOBILE,\n async () => (await import(\"@swapkit/wallet-extensions/evm-extensions\")).evmWallet,\n )\n .with(\n WalletOption.TRUSTWALLET_WEB,\n async () => (await import(\"@swapkit/wallet-extensions/trustwallet\")).trustwalletWallet,\n )\n\n .with(WalletOption.KEYSTORE, async () => (await import(\"./keystore\")).keystoreWallet)\n .with(WalletOption.TREZOR, async () => (await import(\"@swapkit/wallet-hardware/trezor\")).trezorWallet)\n .with(WalletOption.LEDGER, async () => (await import(\"@swapkit/wallet-hardware/ledger\")).ledgerWallet)\n .with(WalletOption.PASSKEYS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.PETRA, async () => (await import(\"@swapkit/wallet-extensions/petra\")).petraWallet)\n .with(WalletOption.PHANTOM, async () => (await import(\"@swapkit/wallet-extensions/phantom\")).phantomWallet)\n .with(\n WalletOption.POLKADOT_JS,\n async () => (await import(\"@swapkit/wallet-extensions/polkadotjs\")).polkadotWallet,\n )\n .with(WalletOption.RADIX_WALLET, async () => (await import(\"./radix\")).radixWallet)\n .with(WalletOption.TALISMAN, async () => (await import(\"@swapkit/wallet-extensions/talisman\")).talismanWallet)\n .with(WalletOption.TRONLINK, async () => (await import(\"@swapkit/wallet-extensions/tronlink\")).tronlinkWallet)\n .with(WalletOption.WALLET_SELECTOR, async () => (await import(\"./near-wallet-selector\")).walletSelectorWallet)\n .with(WalletOption.XAMAN, async () => (await import(\"./xaman\")).xamanWallet)\n .exhaustive();\n\n return wallet as SKWallets[W];\n}\n"
7
6
  ],
8
- "mappings": "qDAAA,8FCA6B,IAA7B,8BAGA,eAAsB,CAAkC,CAAC,EAAwC,CAC/F,IAAQ,SAAU,KAAa,sBAqD/B,OAnDe,MAAM,EAAM,CAA4B,EACpD,KAAK,eAAa,gBAAiB,UAAa,KAAa,iCAAe,cAAc,EAC1F,KAAK,eAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,eAAa,KAAM,UAAa,KAAa,4CAAoC,UAAU,EAChG,KAAK,eAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,eAAa,IAAK,UAAa,KAAa,2CAAmC,SAAS,EAC7F,KAAK,eAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,eAAa,OAAQ,UAAa,KAAa,iCAAe,cAAc,EACjF,KAAK,eAAa,QAAS,UAAa,KAAa,6CAAqC,aAAa,EACvG,KACC,eAAa,YACb,UAAa,KAAa,mDAA2C,gBACvE,EACC,KAAK,eAAa,cAAe,UAAa,KAAa,sCAAoB,mBAAmB,EAClG,KACC,eAAa,MACb,eAAa,KACb,UAAa,KAAa,6CAAqC,WACjE,EACC,KACC,eAAa,aACb,UAAa,KAAa,oDAA4C,kBACxE,EACC,KACC,eAAa,MACb,eAAa,aACb,eAAa,QACb,eAAa,SACb,eAAa,WACb,eAAa,gBACb,UAAa,KAAa,sDAA8C,SAC1E,EAEC,KAAK,eAAa,SAAU,UAAa,KAAa,qCAA6B,cAAc,EACjG,KAAK,eAAa,OAAQ,UAAa,KAAa,4CAAoC,YAAY,EACpG,KACC,eAAa,OAEb,eAAa,YACb,UAAa,KAAa,4CAAoC,YAChE,EACC,KAAK,eAAa,SAAU,UAAa,KAAa,iCAAe,cAAc,EACnF,KAAK,eAAa,QAAS,UAAa,KAAa,+CAAuC,aAAa,EACzG,KAAK,eAAa,YAAa,UAAa,KAAa,kDAA0C,cAAc,EACjH,KAAK,eAAa,aAAc,UAAa,KAAa,8BAAY,WAAW,EACjF,KAAK,eAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,eAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,eAAa,gBAAiB,UAAa,KAAa,6CAA2B,oBAAoB,EAC5G,KAAK,eAAa,MAAO,UAAa,KAAa,8BAAY,WAAW,EAC1E,WAAW",
9
- "debugId": "85C977052119CEB764756E2164756E21",
7
+ "mappings": "uGAA6B,IAA7B,8BAGA,eAAsB,CAAkC,CAAC,EAAwC,CAC/F,IAAQ,SAAU,KAAa,sBAuD/B,OArDe,MAAM,EAAM,CAA4B,EACpD,KAAK,eAAa,gBAAiB,UAAa,KAAa,iCAAe,cAAc,EAC1F,KAAK,eAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,eAAa,KAAM,UAAa,KAAa,4CAAoC,UAAU,EAChG,KAAK,eAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,eAAa,IAAK,UAAa,KAAa,2CAAmC,SAAS,EAC7F,KAAK,eAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,eAAa,OAAQ,UAAa,KAAa,iCAAe,cAAc,EACjF,KAAK,eAAa,QAAS,UAAa,KAAa,6CAAqC,aAAa,EACvG,KACC,eAAa,YACb,UAAa,KAAa,mDAA2C,gBACvE,EACC,KAAK,eAAa,cAAe,UAAa,KAAa,sCAAoB,mBAAmB,EAClG,KACC,eAAa,MACb,eAAa,KACb,UAAa,KAAa,6CAAqC,WACjE,EACC,KACC,eAAa,aACb,UAAa,KAAa,oDAA4C,kBACxE,EACC,KACC,eAAa,MACb,eAAa,aACb,eAAa,QACb,eAAa,SACb,eAAa,WACb,UAAa,KAAa,sDAA8C,SAC1E,EACC,KACC,eAAa,gBACb,UAAa,KAAa,mDAA2C,iBACvE,EAEC,KAAK,eAAa,SAAU,UAAa,KAAa,2BAAe,cAAc,EACnF,KAAK,eAAa,OAAQ,UAAa,KAAa,4CAAoC,YAAY,EACpG,KAAK,eAAa,OAAQ,UAAa,KAAa,4CAAoC,YAAY,EACpG,KAAK,eAAa,SAAU,UAAa,KAAa,iCAAe,cAAc,EACnF,KAAK,eAAa,MAAO,UAAa,KAAa,6CAAqC,WAAW,EACnG,KAAK,eAAa,QAAS,UAAa,KAAa,+CAAuC,aAAa,EACzG,KACC,eAAa,YACb,UAAa,KAAa,kDAA0C,cACtE,EACC,KAAK,eAAa,aAAc,UAAa,KAAa,8BAAY,WAAW,EACjF,KAAK,eAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,eAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,eAAa,gBAAiB,UAAa,KAAa,6CAA2B,oBAAoB,EAC5G,KAAK,eAAa,MAAO,UAAa,KAAa,8BAAY,WAAW,EAC1E,WAAW",
8
+ "debugId": "A3EC4EA8F3B0EAFE64756E2164756E21",
10
9
  "names": []
11
10
  }
package/dist/src/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{G as t,H as l}from"../chunk-78m70510.js";export*from"@swapkit/wallet-core";import{WalletOption as e}from"@swapkit/helpers";async function s(o){let{match:p}=await import("ts-pattern");return await p(o).with(e.COINBASE_MOBILE,async()=>(await import("./coinbase/index.js")).coinbaseWallet).with(e.BITGET,async()=>(await import("@swapkit/wallet-extensions/bitget")).bitgetWallet).with(e.CTRL,async()=>(await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet).with(e.VULTISIG,async()=>(await import("@swapkit/wallet-extensions/vultisig")).vultisigWallet).with(e.OKX,async()=>(await import("@swapkit/wallet-extensions/okx")).okxWallet).with(e.ONEKEY,async()=>(await import("@swapkit/wallet-extensions/onekey")).onekeyWallet).with(e.EXODUS,async()=>(await import("./passkeys/index.js")).passkeysWallet).with(e.KEEPKEY,async()=>(await import("@swapkit/wallet-hardware/keepkey")).keepkeyWallet).with(e.KEEPKEY_BEX,async()=>(await import("@swapkit/wallet-extensions/keepkey-bex")).keepkeyBexWallet).with(e.WALLETCONNECT,async()=>(await import("./walletconnect/index.js")).walletconnectWallet).with(e.KEPLR,e.LEAP,async()=>(await import("@swapkit/wallet-extensions/keplr")).keplrWallet).with(e.COSMOSTATION,async()=>(await import("@swapkit/wallet-extensions/cosmostation")).cosmostationWallet).with(e.BRAVE,e.COINBASE_WEB,e.EIP6963,e.METAMASK,e.OKX_MOBILE,e.TRUSTWALLET_WEB,async()=>(await import("@swapkit/wallet-extensions/evm-extensions")).evmWallet).with(e.KEYSTORE,async()=>(await import("@swapkit/wallet-keystore")).keystoreWallet).with(e.TREZOR,async()=>(await import("@swapkit/wallet-hardware/trezor")).trezorWallet).with(e.LEDGER,e.LEDGER_LIVE,async()=>(await import("@swapkit/wallet-hardware/ledger")).ledgerWallet).with(e.PASSKEYS,async()=>(await import("./passkeys/index.js")).passkeysWallet).with(e.PHANTOM,async()=>(await import("@swapkit/wallet-extensions/phantom")).phantomWallet).with(e.POLKADOT_JS,async()=>(await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet).with(e.RADIX_WALLET,async()=>(await import("./radix/index.js")).radixWallet).with(e.TALISMAN,async()=>(await import("@swapkit/wallet-extensions/talisman")).talismanWallet).with(e.TRONLINK,async()=>(await import("@swapkit/wallet-extensions/tronlink")).tronlinkWallet).with(e.WALLET_SELECTOR,async()=>(await import("./near-wallet-selector/index.js")).walletSelectorWallet).with(e.XAMAN,async()=>(await import("./xaman/index.js")).xamanWallet).exhaustive()}export{s as loadWallet};
1
+ import{G as f,H as c}from"../chunk-qv7snmdv.js";import{I as e}from"../chunk-5jj4jvy9.js";import{WalletOption as t}from"@swapkit/helpers";async function n(l){let{match:o}=await import("ts-pattern");return await o(l).with(t.COINBASE_MOBILE,async()=>(await import("./coinbase/index.js")).coinbaseWallet).with(t.BITGET,async()=>(await import("@swapkit/wallet-extensions/bitget")).bitgetWallet).with(t.CTRL,async()=>(await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet).with(t.VULTISIG,async()=>(await import("@swapkit/wallet-extensions/vultisig")).vultisigWallet).with(t.OKX,async()=>(await import("@swapkit/wallet-extensions/okx")).okxWallet).with(t.ONEKEY,async()=>(await import("@swapkit/wallet-extensions/onekey")).onekeyWallet).with(t.EXODUS,async()=>(await import("./passkeys/index.js")).passkeysWallet).with(t.KEEPKEY,async()=>(await import("@swapkit/wallet-hardware/keepkey")).keepkeyWallet).with(t.KEEPKEY_BEX,async()=>(await import("@swapkit/wallet-extensions/keepkey-bex")).keepkeyBexWallet).with(t.WALLETCONNECT,async()=>(await import("./walletconnect/index.js")).walletconnectWallet).with(t.KEPLR,t.LEAP,async()=>(await import("@swapkit/wallet-extensions/keplr")).keplrWallet).with(t.COSMOSTATION,async()=>(await import("@swapkit/wallet-extensions/cosmostation")).cosmostationWallet).with(t.BRAVE,t.COINBASE_WEB,t.EIP6963,t.METAMASK,t.OKX_MOBILE,async()=>(await import("@swapkit/wallet-extensions/evm-extensions")).evmWallet).with(t.TRUSTWALLET_WEB,async()=>(await import("@swapkit/wallet-extensions/trustwallet")).trustwalletWallet).with(t.KEYSTORE,async()=>(await import("./keystore.js")).keystoreWallet).with(t.TREZOR,async()=>(await import("@swapkit/wallet-hardware/trezor")).trezorWallet).with(t.LEDGER,async()=>(await import("@swapkit/wallet-hardware/ledger")).ledgerWallet).with(t.PASSKEYS,async()=>(await import("./passkeys/index.js")).passkeysWallet).with(t.PETRA,async()=>(await import("@swapkit/wallet-extensions/petra")).petraWallet).with(t.PHANTOM,async()=>(await import("@swapkit/wallet-extensions/phantom")).phantomWallet).with(t.POLKADOT_JS,async()=>(await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet).with(t.RADIX_WALLET,async()=>(await import("./radix/index.js")).radixWallet).with(t.TALISMAN,async()=>(await import("@swapkit/wallet-extensions/talisman")).talismanWallet).with(t.TRONLINK,async()=>(await import("@swapkit/wallet-extensions/tronlink")).tronlinkWallet).with(t.WALLET_SELECTOR,async()=>(await import("./near-wallet-selector/index.js")).walletSelectorWallet).with(t.XAMAN,async()=>(await import("./xaman/index.js")).xamanWallet).exhaustive()}export{n as loadWallet,c as getWalletSupportedChains,f as createWallet};
2
2
 
3
- //# debugId=C3F6D07FF03078CE64756E2164756E21
3
+ //# debugId=439E2C1B80E1583A64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/utils.ts"],
3
+ "sources": ["../src/utils.ts"],
4
4
  "sourcesContent": [
5
- "export * from \"@swapkit/wallet-core\";\nexport * from \"./types\";\nexport * from \"./utils\";\n",
6
- "import { WalletOption } from \"@swapkit/helpers\";\nimport type { SKWallets } from \"./types\";\n\nexport async function loadWallet<W extends WalletOption>(walletOption: W): Promise<SKWallets[W]> {\n const { match } = await import(\"ts-pattern\");\n\n const wallet = await match(walletOption as WalletOption)\n .with(WalletOption.COINBASE_MOBILE, async () => (await import(\"./coinbase\")).coinbaseWallet)\n .with(WalletOption.BITGET, async () => (await import(\"@swapkit/wallet-extensions/bitget\")).bitgetWallet)\n .with(WalletOption.CTRL, async () => (await import(\"@swapkit/wallet-extensions/ctrl\")).ctrlWallet)\n .with(WalletOption.VULTISIG, async () => (await import(\"@swapkit/wallet-extensions/vultisig\")).vultisigWallet)\n .with(WalletOption.OKX, async () => (await import(\"@swapkit/wallet-extensions/okx\")).okxWallet)\n .with(WalletOption.ONEKEY, async () => (await import(\"@swapkit/wallet-extensions/onekey\")).onekeyWallet)\n .with(WalletOption.EXODUS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.KEEPKEY, async () => (await import(\"@swapkit/wallet-hardware/keepkey\")).keepkeyWallet)\n .with(\n WalletOption.KEEPKEY_BEX,\n async () => (await import(\"@swapkit/wallet-extensions/keepkey-bex\")).keepkeyBexWallet,\n )\n .with(WalletOption.WALLETCONNECT, async () => (await import(\"./walletconnect\")).walletconnectWallet)\n .with(\n WalletOption.KEPLR,\n WalletOption.LEAP,\n async () => (await import(\"@swapkit/wallet-extensions/keplr\")).keplrWallet,\n )\n .with(\n WalletOption.COSMOSTATION,\n async () => (await import(\"@swapkit/wallet-extensions/cosmostation\")).cosmostationWallet,\n )\n .with(\n WalletOption.BRAVE,\n WalletOption.COINBASE_WEB,\n WalletOption.EIP6963,\n WalletOption.METAMASK,\n WalletOption.OKX_MOBILE,\n WalletOption.TRUSTWALLET_WEB,\n async () => (await import(\"@swapkit/wallet-extensions/evm-extensions\")).evmWallet,\n )\n\n .with(WalletOption.KEYSTORE, async () => (await import(\"@swapkit/wallet-keystore\")).keystoreWallet)\n .with(WalletOption.TREZOR, async () => (await import(\"@swapkit/wallet-hardware/trezor\")).trezorWallet)\n .with(\n WalletOption.LEDGER,\n // TODO: Remove\n WalletOption.LEDGER_LIVE,\n async () => (await import(\"@swapkit/wallet-hardware/ledger\")).ledgerWallet,\n )\n .with(WalletOption.PASSKEYS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.PHANTOM, async () => (await import(\"@swapkit/wallet-extensions/phantom\")).phantomWallet)\n .with(WalletOption.POLKADOT_JS, async () => (await import(\"@swapkit/wallet-extensions/polkadotjs\")).polkadotWallet)\n .with(WalletOption.RADIX_WALLET, async () => (await import(\"./radix\")).radixWallet)\n .with(WalletOption.TALISMAN, async () => (await import(\"@swapkit/wallet-extensions/talisman\")).talismanWallet)\n .with(WalletOption.TRONLINK, async () => (await import(\"@swapkit/wallet-extensions/tronlink\")).tronlinkWallet)\n .with(WalletOption.WALLET_SELECTOR, async () => (await import(\"./near-wallet-selector\")).walletSelectorWallet)\n .with(WalletOption.XAMAN, async () => (await import(\"./xaman\")).xamanWallet)\n .exhaustive();\n\n return wallet as SKWallets[W];\n}\n"
5
+ "import { WalletOption } from \"@swapkit/helpers\";\nimport type { SKWallets } from \"./types\";\n\nexport async function loadWallet<W extends WalletOption>(walletOption: W): Promise<SKWallets[W]> {\n const { match } = await import(\"ts-pattern\");\n\n const wallet = await match(walletOption as WalletOption)\n .with(WalletOption.COINBASE_MOBILE, async () => (await import(\"./coinbase\")).coinbaseWallet)\n .with(WalletOption.BITGET, async () => (await import(\"@swapkit/wallet-extensions/bitget\")).bitgetWallet)\n .with(WalletOption.CTRL, async () => (await import(\"@swapkit/wallet-extensions/ctrl\")).ctrlWallet)\n .with(WalletOption.VULTISIG, async () => (await import(\"@swapkit/wallet-extensions/vultisig\")).vultisigWallet)\n .with(WalletOption.OKX, async () => (await import(\"@swapkit/wallet-extensions/okx\")).okxWallet)\n .with(WalletOption.ONEKEY, async () => (await import(\"@swapkit/wallet-extensions/onekey\")).onekeyWallet)\n .with(WalletOption.EXODUS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.KEEPKEY, async () => (await import(\"@swapkit/wallet-hardware/keepkey\")).keepkeyWallet)\n .with(\n WalletOption.KEEPKEY_BEX,\n async () => (await import(\"@swapkit/wallet-extensions/keepkey-bex\")).keepkeyBexWallet,\n )\n .with(WalletOption.WALLETCONNECT, async () => (await import(\"./walletconnect\")).walletconnectWallet)\n .with(\n WalletOption.KEPLR,\n WalletOption.LEAP,\n async () => (await import(\"@swapkit/wallet-extensions/keplr\")).keplrWallet,\n )\n .with(\n WalletOption.COSMOSTATION,\n async () => (await import(\"@swapkit/wallet-extensions/cosmostation\")).cosmostationWallet,\n )\n .with(\n WalletOption.BRAVE,\n WalletOption.COINBASE_WEB,\n WalletOption.EIP6963,\n WalletOption.METAMASK,\n WalletOption.OKX_MOBILE,\n async () => (await import(\"@swapkit/wallet-extensions/evm-extensions\")).evmWallet,\n )\n .with(\n WalletOption.TRUSTWALLET_WEB,\n async () => (await import(\"@swapkit/wallet-extensions/trustwallet\")).trustwalletWallet,\n )\n\n .with(WalletOption.KEYSTORE, async () => (await import(\"./keystore\")).keystoreWallet)\n .with(WalletOption.TREZOR, async () => (await import(\"@swapkit/wallet-hardware/trezor\")).trezorWallet)\n .with(WalletOption.LEDGER, async () => (await import(\"@swapkit/wallet-hardware/ledger\")).ledgerWallet)\n .with(WalletOption.PASSKEYS, async () => (await import(\"./passkeys\")).passkeysWallet)\n .with(WalletOption.PETRA, async () => (await import(\"@swapkit/wallet-extensions/petra\")).petraWallet)\n .with(WalletOption.PHANTOM, async () => (await import(\"@swapkit/wallet-extensions/phantom\")).phantomWallet)\n .with(\n WalletOption.POLKADOT_JS,\n async () => (await import(\"@swapkit/wallet-extensions/polkadotjs\")).polkadotWallet,\n )\n .with(WalletOption.RADIX_WALLET, async () => (await import(\"./radix\")).radixWallet)\n .with(WalletOption.TALISMAN, async () => (await import(\"@swapkit/wallet-extensions/talisman\")).talismanWallet)\n .with(WalletOption.TRONLINK, async () => (await import(\"@swapkit/wallet-extensions/tronlink\")).tronlinkWallet)\n .with(WalletOption.WALLET_SELECTOR, async () => (await import(\"./near-wallet-selector\")).walletSelectorWallet)\n .with(WalletOption.XAMAN, async () => (await import(\"./xaman\")).xamanWallet)\n .exhaustive();\n\n return wallet as SKWallets[W];\n}\n"
7
6
  ],
8
- "mappings": "gDAAA,kCCAA,uBAAS,yBAGT,eAAsB,CAAkC,CAAC,EAAwC,CAC/F,IAAQ,SAAU,KAAa,sBAqD/B,OAnDe,MAAM,EAAM,CAA4B,EACpD,KAAK,EAAa,gBAAiB,UAAa,KAAa,gCAAe,cAAc,EAC1F,KAAK,EAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,EAAa,KAAM,UAAa,KAAa,4CAAoC,UAAU,EAChG,KAAK,EAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,EAAa,IAAK,UAAa,KAAa,2CAAmC,SAAS,EAC7F,KAAK,EAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,EAAa,OAAQ,UAAa,KAAa,gCAAe,cAAc,EACjF,KAAK,EAAa,QAAS,UAAa,KAAa,6CAAqC,aAAa,EACvG,KACC,EAAa,YACb,UAAa,KAAa,mDAA2C,gBACvE,EACC,KAAK,EAAa,cAAe,UAAa,KAAa,qCAAoB,mBAAmB,EAClG,KACC,EAAa,MACb,EAAa,KACb,UAAa,KAAa,6CAAqC,WACjE,EACC,KACC,EAAa,aACb,UAAa,KAAa,oDAA4C,kBACxE,EACC,KACC,EAAa,MACb,EAAa,aACb,EAAa,QACb,EAAa,SACb,EAAa,WACb,EAAa,gBACb,UAAa,KAAa,sDAA8C,SAC1E,EAEC,KAAK,EAAa,SAAU,UAAa,KAAa,qCAA6B,cAAc,EACjG,KAAK,EAAa,OAAQ,UAAa,KAAa,4CAAoC,YAAY,EACpG,KACC,EAAa,OAEb,EAAa,YACb,UAAa,KAAa,4CAAoC,YAChE,EACC,KAAK,EAAa,SAAU,UAAa,KAAa,gCAAe,cAAc,EACnF,KAAK,EAAa,QAAS,UAAa,KAAa,+CAAuC,aAAa,EACzG,KAAK,EAAa,YAAa,UAAa,KAAa,kDAA0C,cAAc,EACjH,KAAK,EAAa,aAAc,UAAa,KAAa,6BAAY,WAAW,EACjF,KAAK,EAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,EAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,EAAa,gBAAiB,UAAa,KAAa,4CAA2B,oBAAoB,EAC5G,KAAK,EAAa,MAAO,UAAa,KAAa,6BAAY,WAAW,EAC1E,WAAW",
9
- "debugId": "C3F6D07FF03078CE64756E2164756E21",
7
+ "mappings": "8FAAA,kBAAS,yBAGT,eAAsB,CAAkC,CAAC,EAAwC,CAC/F,IAAQ,SAAU,KAAa,sBAuD/B,OArDe,MAAM,EAAM,CAA4B,EACpD,KAAK,EAAa,gBAAiB,UAAa,KAAa,gCAAe,cAAc,EAC1F,KAAK,EAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,EAAa,KAAM,UAAa,KAAa,4CAAoC,UAAU,EAChG,KAAK,EAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,EAAa,IAAK,UAAa,KAAa,2CAAmC,SAAS,EAC7F,KAAK,EAAa,OAAQ,UAAa,KAAa,8CAAsC,YAAY,EACtG,KAAK,EAAa,OAAQ,UAAa,KAAa,gCAAe,cAAc,EACjF,KAAK,EAAa,QAAS,UAAa,KAAa,6CAAqC,aAAa,EACvG,KACC,EAAa,YACb,UAAa,KAAa,mDAA2C,gBACvE,EACC,KAAK,EAAa,cAAe,UAAa,KAAa,qCAAoB,mBAAmB,EAClG,KACC,EAAa,MACb,EAAa,KACb,UAAa,KAAa,6CAAqC,WACjE,EACC,KACC,EAAa,aACb,UAAa,KAAa,oDAA4C,kBACxE,EACC,KACC,EAAa,MACb,EAAa,aACb,EAAa,QACb,EAAa,SACb,EAAa,WACb,UAAa,KAAa,sDAA8C,SAC1E,EACC,KACC,EAAa,gBACb,UAAa,KAAa,mDAA2C,iBACvE,EAEC,KAAK,EAAa,SAAU,UAAa,KAAa,0BAAe,cAAc,EACnF,KAAK,EAAa,OAAQ,UAAa,KAAa,4CAAoC,YAAY,EACpG,KAAK,EAAa,OAAQ,UAAa,KAAa,4CAAoC,YAAY,EACpG,KAAK,EAAa,SAAU,UAAa,KAAa,gCAAe,cAAc,EACnF,KAAK,EAAa,MAAO,UAAa,KAAa,6CAAqC,WAAW,EACnG,KAAK,EAAa,QAAS,UAAa,KAAa,+CAAuC,aAAa,EACzG,KACC,EAAa,YACb,UAAa,KAAa,kDAA0C,cACtE,EACC,KAAK,EAAa,aAAc,UAAa,KAAa,6BAAY,WAAW,EACjF,KAAK,EAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,EAAa,SAAU,UAAa,KAAa,gDAAwC,cAAc,EAC5G,KAAK,EAAa,gBAAiB,UAAa,KAAa,4CAA2B,oBAAoB,EAC5G,KAAK,EAAa,MAAO,UAAa,KAAa,6BAAY,WAAW,EAC1E,WAAW",
8
+ "debugId": "439E2C1B80E1583A64756E2164756E21",
10
9
  "names": []
11
10
  }
@@ -1,4 +1,4 @@
1
- var o={};module.exports=e(o);r(o,require("@swapkit/wallet-keystore"),module.exports);
1
+ var R={};D(R,{validatePhrase:()=>W,keystoreWallet:()=>y,generatePhrase:()=>U,encryptToKeyStore:()=>C,decryptFromKeystore:()=>v,createKeystoreWallet:()=>w,KEYSTORE_SUPPORTED_CHAINS:()=>H});module.exports=E(R);var n=require("@swapkit/helpers");var u=require("node:crypto"),x=require("@scure/bip39"),h=require("@scure/bip39/wordlists/english.js");async function p(e){let{blake2b:i}=await import("@noble/hashes/blake2.js"),r=e instanceof Buffer?e:Buffer.from(e,"hex"),o=i(r,{dkLen:32});return Array.from(o).map((s)=>s<16?`0${s.toString(16)}`:s.toString(16)).join("")}async function C(e,i){let o=u.randomBytes(16),s=u.randomBytes(32),t={c:262144,dklen:32,prf:"hmac-sha256",salt:s.toString("hex")},a=u.pbkdf2Sync(i,s,t.c,t.dklen,"sha256"),c=u.createCipheriv("aes-128-ctr",a.subarray(0,16),o),l=Buffer.concat([c.update(Buffer.from(e,"utf8")),c.final()]),d=Buffer.concat([a.subarray(16,32),Buffer.from(l)]),g=await p(d);return{crypto:{cipher:"aes-128-ctr",cipherparams:{iv:o.toString("hex")},ciphertext:l.toString("hex"),kdf:"pbkdf2",kdfparams:t,mac:g},meta:"xchain-keystore",version:1}}function U(e=12){return x.generateMnemonic(h.wordlist,e===12?128:256)}function W(e){return x.validateMnemonic(e,h.wordlist)}async function v(e,i){let{SwapKitError:r}=await import("@swapkit/helpers");switch(e.version){case 1:{let o=e.crypto.kdfparams,s=Buffer.from(o.salt,"hex"),t=u.pbkdf2Sync(i,s,o.c,o.dklen,"sha256"),a=Buffer.from(e.crypto.ciphertext,"hex"),c=Buffer.concat([t.subarray(16,32),a]);if(await p(c)!==e.crypto.mac)throw new r("wallet_keystore_invalid_password");let d=u.createDecipheriv(e.crypto.cipher,t.subarray(0,16),Buffer.from(e.crypto.cipherparams.iv,"hex"));return Buffer.concat([d.update(a),d.final()]).toString("utf8")}default:throw new r("wallet_keystore_unsupported_version")}}function X(e){return typeof e==="object"&&e!==null&&"deriveAddressAtIndex"in e&&typeof e.deriveAddressAtIndex==="function"&&"getExtendedPublicKey"in e&&typeof e.getExtendedPublicKey==="function"&&"getBalance"in e&&typeof e.getBalance==="function"}async function P(e,i){let{createHDWalletHelpers:r,getUtxoApi:o}=await import("@swapkit/toolboxes/utxo");function s(l){let{count:d,startIndex:g=0,change:T=!1}=l;if(d<1||d>1000)throw RangeError(`count must be between 1 and 1000, got ${d}`);if(g<0)throw RangeError(`startIndex must be non-negative, got ${g}`);let m=[];for(let A=0;A<d;A++){let f=i.deriveAddressAtIndex({change:T,index:g+A});if(f)m.push(f)}return m}let{scanForAddresses:t,getAggregatedBalance:a,getAggregatedUtxos:c}=r({chain:e,deriveAddress:(l)=>i.deriveAddressAtIndex(l),getBalance:i.getBalance,getUtxos:(l)=>o(e).getUtxos({address:l,fetchTxHex:!0})});return{deriveAddresses:s,getAggregatedBalance:a,getAggregatedUtxos:c,scanForAddresses:t}}var y=b({connect:({addChain:e})=>async function(r,o,s){let t=await w({chains:r,derivationPathMapOrIndex:s,phrase:o});for(let a of Object.values(t))e({...a,chain:a.chain,walletType:n.WalletOption.KEYSTORE});return!0},name:"connectKeystore",supportedChains:[...n.EVMChains,...n.UTXOChains,...n.CosmosChains.filter((e)=>e!==n.Chain.Harbor),n.Chain.Aptos,n.Chain.Cardano,n.Chain.Ripple,n.Chain.Solana,n.Chain.Stellar,n.Chain.Sui,n.Chain.Ton,n.Chain.Tron,n.Chain.Near],walletType:n.WalletOption.KEYSTORE}),H=O(y);async function w({chains:e,phrase:i,derivationPathMapOrIndex:r}){let o=n.filterSupportedChains({chains:e,supportedChains:H,walletType:n.WalletOption.KEYSTORE});return(await Promise.all(o.map(async(t)=>{let{getToolbox:a}=await import("@swapkit/toolboxes"),c=typeof r==="number"?r:0,l=r&&typeof r==="object"?r[t]:void 0,d=n.NetworkDerivationPath[t].slice(0,t===n.Chain.Solana?4:5),g=l||n.updateDerivationPath(d,{index:c}),T=await a(t,{derivationPath:g,phrase:i}),m=await T.getAddress()||"",A=n.UTXOChains.includes(t)&&X(T)?await P(t,T):{};return{...T,...A,address:m,chain:t}}))).reduce((t,a)=>{return t[a.chain]=a,t},{})}
2
2
 
3
- //# debugId=A42BFF0BCFA9A4CB64756E2164756E21
3
+ //# debugId=3F07908D5C43034764756E2164756E21
4
4
  //# sourceMappingURL=keystore.cjs.map
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/keystore.ts"],
3
+ "sources": ["../src/keystore.ts", "../src/keystore-helpers.ts"],
4
4
  "sourcesContent": [
5
- "export * from \"@swapkit/wallet-keystore\";\n"
5
+ "import {\n type AssetValue,\n Chain,\n CosmosChains,\n type DerivationPathArray,\n EVMChains,\n filterSupportedChains,\n NetworkDerivationPath,\n type UTXOChain,\n UTXOChains,\n updateDerivationPath,\n WalletOption,\n} from \"@swapkit/helpers\";\nimport type { DerivedAddress, FullWallet } from \"@swapkit/toolboxes\";\nimport { createWallet, getWalletSupportedChains } from \"./core\";\n\nexport {\n decryptFromKeystore,\n encryptToKeyStore,\n generatePhrase,\n type Keystore,\n validatePhrase,\n} from \"./keystore-helpers\";\n\ntype UTXOToolboxWithHD = {\n deriveAddressAtIndex: (params: { index: number; change?: boolean }) => DerivedAddress | undefined;\n getExtendedPublicKey: () => string | undefined;\n getBalance: (address: string) => Promise<AssetValue[]>;\n resolveDerivationIndex?: (params: {\n address: string;\n gapLimit?: number;\n }) => { index: number; change: boolean } | undefined;\n transferFromMultipleAddresses?: (params: {\n utxos: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n address: string;\n }>;\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n }) => Promise<string>;\n};\n\nfunction isUTXOToolboxWithHD(toolbox: unknown): toolbox is UTXOToolboxWithHD {\n return (\n typeof toolbox === \"object\" &&\n toolbox !== null &&\n \"deriveAddressAtIndex\" in toolbox &&\n typeof (toolbox as UTXOToolboxWithHD).deriveAddressAtIndex === \"function\" &&\n \"getExtendedPublicKey\" in toolbox &&\n typeof (toolbox as UTXOToolboxWithHD).getExtendedPublicKey === \"function\" &&\n \"getBalance\" in toolbox &&\n typeof (toolbox as UTXOToolboxWithHD).getBalance === \"function\"\n );\n}\n\nasync function createHDWalletMethods(chain: UTXOChain, toolbox: UTXOToolboxWithHD) {\n const { createHDWalletHelpers, getUtxoApi } = await import(\"@swapkit/toolboxes/utxo\");\n\n function deriveAddresses(params: { count: number; startIndex?: number; change?: boolean }) {\n const { count, startIndex = 0, change = false } = params;\n if (count < 1 || count > 1000) throw new RangeError(`count must be between 1 and 1000, got ${count}`);\n if (startIndex < 0) throw new RangeError(`startIndex must be non-negative, got ${startIndex}`);\n\n const addresses: DerivedAddress[] = [];\n for (let i = 0; i < count; i++) {\n const derived = toolbox.deriveAddressAtIndex({ change, index: startIndex + i });\n if (derived) addresses.push(derived);\n }\n return addresses;\n }\n\n const { scanForAddresses, getAggregatedBalance, getAggregatedUtxos } = createHDWalletHelpers({\n chain,\n deriveAddress: (params) => toolbox.deriveAddressAtIndex(params),\n getBalance: toolbox.getBalance,\n getUtxos: (address: string) => getUtxoApi(chain).getUtxos({ address, fetchTxHex: true }),\n });\n\n return { deriveAddresses, getAggregatedBalance, getAggregatedUtxos, scanForAddresses };\n}\n\nexport const keystoreWallet = createWallet({\n connect: ({ addChain }) =>\n async function connectKeystore(\n chains: Chain[],\n phrase: string,\n derivationPathMapOrIndex?: { [chain in Chain]?: DerivationPathArray } | number,\n ) {\n const wallets = await createKeystoreWallet({ chains, derivationPathMapOrIndex, phrase });\n\n for (const wallet of Object.values(wallets)) {\n addChain({ ...wallet, chain: wallet.chain, walletType: WalletOption.KEYSTORE });\n }\n\n return true;\n },\n name: \"connectKeystore\",\n supportedChains: [\n ...EVMChains,\n ...UTXOChains,\n ...CosmosChains.filter((chain) => chain !== Chain.Harbor),\n Chain.Aptos,\n Chain.Cardano,\n Chain.Ripple,\n Chain.Solana,\n Chain.Stellar,\n Chain.Sui,\n Chain.Ton,\n Chain.Tron,\n Chain.Near,\n ],\n walletType: WalletOption.KEYSTORE,\n});\n\nexport const KEYSTORE_SUPPORTED_CHAINS = getWalletSupportedChains(keystoreWallet);\n\nexport async function createKeystoreWallet<T extends Chain[]>({\n chains,\n phrase,\n derivationPathMapOrIndex,\n}: {\n chains: T;\n phrase: string;\n derivationPathMapOrIndex?: { [chain in Chain]?: DerivationPathArray } | number;\n}) {\n const filteredChains = filterSupportedChains({\n chains,\n supportedChains: KEYSTORE_SUPPORTED_CHAINS,\n walletType: WalletOption.KEYSTORE,\n });\n\n const wallets = await Promise.all(\n filteredChains.map(async (chain) => {\n const { getToolbox } = await import(\"@swapkit/toolboxes\");\n\n const derivationPathIndex = typeof derivationPathMapOrIndex === \"number\" ? derivationPathMapOrIndex : 0;\n const derivationPathFromMap =\n derivationPathMapOrIndex && typeof derivationPathMapOrIndex === \"object\"\n ? derivationPathMapOrIndex[chain]\n : undefined;\n\n const derivationArrayToUpdate = NetworkDerivationPath[chain].slice(\n 0,\n chain === Chain.Solana ? 4 : 5,\n ) as DerivationPathArray;\n\n const derivationPath: DerivationPathArray =\n derivationPathFromMap || updateDerivationPath(derivationArrayToUpdate, { index: derivationPathIndex });\n\n const toolbox = await getToolbox(chain, { derivationPath, phrase });\n const address = (await toolbox.getAddress()) || \"\";\n\n const hdWalletMethods =\n UTXOChains.includes(chain as UTXOChain) && isUTXOToolboxWithHD(toolbox)\n ? await createHDWalletMethods(chain as UTXOChain, toolbox)\n : {};\n\n const wallet = { ...toolbox, ...hdWalletMethods, address, chain };\n\n return wallet;\n }),\n );\n\n return wallets.reduce(\n (acc, wallet) => {\n acc[wallet.chain as T[number]] = wallet as FullWallet[T[number]];\n return acc;\n },\n {} as { [key in T[number]]: FullWallet[key] },\n );\n}\n",
6
+ "import { createCipheriv, createDecipheriv, pbkdf2Sync, randomBytes } from \"node:crypto\";\nimport { generateMnemonic, validateMnemonic } from \"@scure/bip39\";\nimport { wordlist } from \"@scure/bip39/wordlists/english.js\";\n\nexport type Keystore = {\n version: number;\n meta: string;\n crypto: {\n cipher: string;\n cipherparams: { iv: string };\n ciphertext: string;\n kdf: string;\n kdfparams: { prf: string; dklen: number; salt: string; c: number };\n mac: string;\n };\n};\n\nasync function blake256(initData: Buffer | string) {\n const { blake2b } = await import(\"@noble/hashes/blake2.js\");\n const data = initData instanceof Buffer ? initData : Buffer.from(initData as string, \"hex\");\n\n const hash = blake2b(data, { dkLen: 32 });\n\n return Array.from(hash as Uint8Array)\n .map((byte) => (byte < 0x10 ? `0${byte.toString(16)}` : byte.toString(16)))\n .join(\"\");\n}\n\nexport async function encryptToKeyStore(phrase: string, password: string) {\n const cipher = \"aes-128-ctr\";\n const iv = randomBytes(16);\n const salt = randomBytes(32);\n const kdfParams = { c: 262144, dklen: 32, prf: \"hmac-sha256\", salt: salt.toString(\"hex\") };\n\n const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, \"sha256\");\n const cipherIV = createCipheriv(cipher, derivedKey.subarray(0, 16), iv);\n const ciphertext = Buffer.concat([cipherIV.update(Buffer.from(phrase, \"utf8\")), cipherIV.final()]);\n const initData = Buffer.concat([derivedKey.subarray(16, 32), Buffer.from(ciphertext)]);\n const mac = await blake256(initData);\n\n return {\n crypto: {\n cipher,\n cipherparams: { iv: iv.toString(\"hex\") },\n ciphertext: ciphertext.toString(\"hex\"),\n kdf: \"pbkdf2\",\n kdfparams: kdfParams,\n mac,\n },\n meta: \"xchain-keystore\",\n version: 1,\n };\n}\n\nexport function generatePhrase(size: 12 | 24 = 12) {\n return generateMnemonic(wordlist, size === 12 ? 128 : 256);\n}\n\nexport function validatePhrase(phrase: string) {\n return validateMnemonic(phrase, wordlist);\n}\n\nexport async function decryptFromKeystore(keystore: Keystore, password: string) {\n const { SwapKitError } = await import(\"@swapkit/helpers\");\n\n switch (keystore.version) {\n case 1: {\n const kdfParams = keystore.crypto.kdfparams;\n const salt = Buffer.from(kdfParams.salt, \"hex\");\n const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, \"sha256\");\n\n const ciphertext = Buffer.from(keystore.crypto.ciphertext, \"hex\");\n const initData = Buffer.concat([derivedKey.subarray(16, 32), ciphertext]);\n const mac = await blake256(initData);\n\n if (mac !== keystore.crypto.mac) {\n throw new SwapKitError(\"wallet_keystore_invalid_password\");\n }\n\n const decipher = createDecipheriv(\n keystore.crypto.cipher,\n derivedKey.subarray(0, 16),\n Buffer.from(keystore.crypto.cipherparams.iv, \"hex\"),\n );\n\n const phrase = Buffer.concat([decipher.update(ciphertext), decipher.final()]);\n return phrase.toString(\"utf8\");\n }\n\n default:\n throw new SwapKitError(\"wallet_keystore_unsupported_version\");\n }\n}\n"
6
7
  ],
7
- "mappings": "6BAAA",
8
- "debugId": "A42BFF0BCFA9A4CB64756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "3F07908D5C43034764756E2164756E21",
9
10
  "names": []
10
11
  }
@@ -1,4 +1,4 @@
1
- export*from"@swapkit/wallet-keystore";
1
+ import{G as W,H as v}from"../chunk-qv7snmdv.js";import{I as m}from"../chunk-5jj4jvy9.js";import{Chain as d,CosmosChains as R,EVMChains as S,filterSupportedChains as F,NetworkDerivationPath as I,UTXOChains as b,updateDerivationPath as K,WalletOption as f}from"@swapkit/helpers";import{createCipheriv as O,createDecipheriv as y,pbkdf2Sync as p,randomBytes as h}from"node:crypto";import{generateMnemonic as H,validateMnemonic as w}from"@scure/bip39";import{wordlist as C}from"@scure/bip39/wordlists/english.js";async function U(e){let{blake2b:s}=await import("@noble/hashes/blake2.js"),t=e instanceof Buffer?e:Buffer.from(e,"hex"),a=s(t,{dkLen:32});return Array.from(a).map((o)=>o<16?`0${o.toString(16)}`:o.toString(16)).join("")}async function E(e,s){let a=h(16),o=h(32),n={c:262144,dklen:32,prf:"hmac-sha256",salt:o.toString("hex")},r=p(s,o,n.c,n.dklen,"sha256"),u=O("aes-128-ctr",r.subarray(0,16),a),i=Buffer.concat([u.update(Buffer.from(e,"utf8")),u.final()]),l=Buffer.concat([r.subarray(16,32),Buffer.from(i)]),c=await U(l);return{crypto:{cipher:"aes-128-ctr",cipherparams:{iv:a.toString("hex")},ciphertext:i.toString("hex"),kdf:"pbkdf2",kdfparams:n,mac:c},meta:"xchain-keystore",version:1}}function D(e=12){return H(C,e===12?128:256)}function X(e){return w(e,C)}async function P(e,s){let{SwapKitError:t}=await import("@swapkit/helpers");switch(e.version){case 1:{let a=e.crypto.kdfparams,o=Buffer.from(a.salt,"hex"),n=p(s,o,a.c,a.dklen,"sha256"),r=Buffer.from(e.crypto.ciphertext,"hex"),u=Buffer.concat([n.subarray(16,32),r]);if(await U(u)!==e.crypto.mac)throw new t("wallet_keystore_invalid_password");let l=y(e.crypto.cipher,n.subarray(0,16),Buffer.from(e.crypto.cipherparams.iv,"hex"));return Buffer.concat([l.update(r),l.final()]).toString("utf8")}default:throw new t("wallet_keystore_unsupported_version")}}function B(e){return typeof e==="object"&&e!==null&&"deriveAddressAtIndex"in e&&typeof e.deriveAddressAtIndex==="function"&&"getExtendedPublicKey"in e&&typeof e.getExtendedPublicKey==="function"&&"getBalance"in e&&typeof e.getBalance==="function"}async function Y(e,s){let{createHDWalletHelpers:t,getUtxoApi:a}=await import("@swapkit/toolboxes/utxo");function o(i){let{count:l,startIndex:c=0,change:g=!1}=i;if(l<1||l>1000)throw RangeError(`count must be between 1 and 1000, got ${l}`);if(c<0)throw RangeError(`startIndex must be non-negative, got ${c}`);let A=[];for(let T=0;T<l;T++){let x=s.deriveAddressAtIndex({change:g,index:c+T});if(x)A.push(x)}return A}let{scanForAddresses:n,getAggregatedBalance:r,getAggregatedUtxos:u}=t({chain:e,deriveAddress:(i)=>s.deriveAddressAtIndex(i),getBalance:s.getBalance,getUtxos:(i)=>a(e).getUtxos({address:i,fetchTxHex:!0})});return{deriveAddresses:o,getAggregatedBalance:r,getAggregatedUtxos:u,scanForAddresses:n}}var N=W({connect:({addChain:e})=>async function(t,a,o){let n=await _({chains:t,derivationPathMapOrIndex:o,phrase:a});for(let r of Object.values(n))e({...r,chain:r.chain,walletType:f.KEYSTORE});return!0},name:"connectKeystore",supportedChains:[...S,...b,...R.filter((e)=>e!==d.Harbor),d.Aptos,d.Cardano,d.Ripple,d.Solana,d.Stellar,d.Sui,d.Ton,d.Tron,d.Near],walletType:f.KEYSTORE}),V=v(N);async function _({chains:e,phrase:s,derivationPathMapOrIndex:t}){let a=F({chains:e,supportedChains:V,walletType:f.KEYSTORE});return(await Promise.all(a.map(async(n)=>{let{getToolbox:r}=await import("@swapkit/toolboxes"),u=typeof t==="number"?t:0,i=t&&typeof t==="object"?t[n]:void 0,l=I[n].slice(0,n===d.Solana?4:5),c=i||K(l,{index:u}),g=await r(n,{derivationPath:c,phrase:s}),A=await g.getAddress()||"",T=b.includes(n)&&B(g)?await Y(n,g):{};return{...g,...T,address:A,chain:n}}))).reduce((n,r)=>{return n[r.chain]=r,n},{})}export{X as validatePhrase,N as keystoreWallet,D as generatePhrase,E as encryptToKeyStore,P as decryptFromKeystore,_ as createKeystoreWallet,V as KEYSTORE_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=A4B1562B435C980964756E2164756E21
3
+ //# debugId=D7E042BE2A2724A964756E2164756E21
4
4
  //# sourceMappingURL=keystore.js.map
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/keystore.ts"],
3
+ "sources": ["../src/keystore.ts", "../src/keystore-helpers.ts"],
4
4
  "sourcesContent": [
5
- "export * from \"@swapkit/wallet-keystore\";\n"
5
+ "import {\n type AssetValue,\n Chain,\n CosmosChains,\n type DerivationPathArray,\n EVMChains,\n filterSupportedChains,\n NetworkDerivationPath,\n type UTXOChain,\n UTXOChains,\n updateDerivationPath,\n WalletOption,\n} from \"@swapkit/helpers\";\nimport type { DerivedAddress, FullWallet } from \"@swapkit/toolboxes\";\nimport { createWallet, getWalletSupportedChains } from \"./core\";\n\nexport {\n decryptFromKeystore,\n encryptToKeyStore,\n generatePhrase,\n type Keystore,\n validatePhrase,\n} from \"./keystore-helpers\";\n\ntype UTXOToolboxWithHD = {\n deriveAddressAtIndex: (params: { index: number; change?: boolean }) => DerivedAddress | undefined;\n getExtendedPublicKey: () => string | undefined;\n getBalance: (address: string) => Promise<AssetValue[]>;\n resolveDerivationIndex?: (params: {\n address: string;\n gapLimit?: number;\n }) => { index: number; change: boolean } | undefined;\n transferFromMultipleAddresses?: (params: {\n utxos: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n address: string;\n }>;\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n feeRate?: number;\n }) => Promise<string>;\n};\n\nfunction isUTXOToolboxWithHD(toolbox: unknown): toolbox is UTXOToolboxWithHD {\n return (\n typeof toolbox === \"object\" &&\n toolbox !== null &&\n \"deriveAddressAtIndex\" in toolbox &&\n typeof (toolbox as UTXOToolboxWithHD).deriveAddressAtIndex === \"function\" &&\n \"getExtendedPublicKey\" in toolbox &&\n typeof (toolbox as UTXOToolboxWithHD).getExtendedPublicKey === \"function\" &&\n \"getBalance\" in toolbox &&\n typeof (toolbox as UTXOToolboxWithHD).getBalance === \"function\"\n );\n}\n\nasync function createHDWalletMethods(chain: UTXOChain, toolbox: UTXOToolboxWithHD) {\n const { createHDWalletHelpers, getUtxoApi } = await import(\"@swapkit/toolboxes/utxo\");\n\n function deriveAddresses(params: { count: number; startIndex?: number; change?: boolean }) {\n const { count, startIndex = 0, change = false } = params;\n if (count < 1 || count > 1000) throw new RangeError(`count must be between 1 and 1000, got ${count}`);\n if (startIndex < 0) throw new RangeError(`startIndex must be non-negative, got ${startIndex}`);\n\n const addresses: DerivedAddress[] = [];\n for (let i = 0; i < count; i++) {\n const derived = toolbox.deriveAddressAtIndex({ change, index: startIndex + i });\n if (derived) addresses.push(derived);\n }\n return addresses;\n }\n\n const { scanForAddresses, getAggregatedBalance, getAggregatedUtxos } = createHDWalletHelpers({\n chain,\n deriveAddress: (params) => toolbox.deriveAddressAtIndex(params),\n getBalance: toolbox.getBalance,\n getUtxos: (address: string) => getUtxoApi(chain).getUtxos({ address, fetchTxHex: true }),\n });\n\n return { deriveAddresses, getAggregatedBalance, getAggregatedUtxos, scanForAddresses };\n}\n\nexport const keystoreWallet = createWallet({\n connect: ({ addChain }) =>\n async function connectKeystore(\n chains: Chain[],\n phrase: string,\n derivationPathMapOrIndex?: { [chain in Chain]?: DerivationPathArray } | number,\n ) {\n const wallets = await createKeystoreWallet({ chains, derivationPathMapOrIndex, phrase });\n\n for (const wallet of Object.values(wallets)) {\n addChain({ ...wallet, chain: wallet.chain, walletType: WalletOption.KEYSTORE });\n }\n\n return true;\n },\n name: \"connectKeystore\",\n supportedChains: [\n ...EVMChains,\n ...UTXOChains,\n ...CosmosChains.filter((chain) => chain !== Chain.Harbor),\n Chain.Aptos,\n Chain.Cardano,\n Chain.Ripple,\n Chain.Solana,\n Chain.Stellar,\n Chain.Sui,\n Chain.Ton,\n Chain.Tron,\n Chain.Near,\n ],\n walletType: WalletOption.KEYSTORE,\n});\n\nexport const KEYSTORE_SUPPORTED_CHAINS = getWalletSupportedChains(keystoreWallet);\n\nexport async function createKeystoreWallet<T extends Chain[]>({\n chains,\n phrase,\n derivationPathMapOrIndex,\n}: {\n chains: T;\n phrase: string;\n derivationPathMapOrIndex?: { [chain in Chain]?: DerivationPathArray } | number;\n}) {\n const filteredChains = filterSupportedChains({\n chains,\n supportedChains: KEYSTORE_SUPPORTED_CHAINS,\n walletType: WalletOption.KEYSTORE,\n });\n\n const wallets = await Promise.all(\n filteredChains.map(async (chain) => {\n const { getToolbox } = await import(\"@swapkit/toolboxes\");\n\n const derivationPathIndex = typeof derivationPathMapOrIndex === \"number\" ? derivationPathMapOrIndex : 0;\n const derivationPathFromMap =\n derivationPathMapOrIndex && typeof derivationPathMapOrIndex === \"object\"\n ? derivationPathMapOrIndex[chain]\n : undefined;\n\n const derivationArrayToUpdate = NetworkDerivationPath[chain].slice(\n 0,\n chain === Chain.Solana ? 4 : 5,\n ) as DerivationPathArray;\n\n const derivationPath: DerivationPathArray =\n derivationPathFromMap || updateDerivationPath(derivationArrayToUpdate, { index: derivationPathIndex });\n\n const toolbox = await getToolbox(chain, { derivationPath, phrase });\n const address = (await toolbox.getAddress()) || \"\";\n\n const hdWalletMethods =\n UTXOChains.includes(chain as UTXOChain) && isUTXOToolboxWithHD(toolbox)\n ? await createHDWalletMethods(chain as UTXOChain, toolbox)\n : {};\n\n const wallet = { ...toolbox, ...hdWalletMethods, address, chain };\n\n return wallet;\n }),\n );\n\n return wallets.reduce(\n (acc, wallet) => {\n acc[wallet.chain as T[number]] = wallet as FullWallet[T[number]];\n return acc;\n },\n {} as { [key in T[number]]: FullWallet[key] },\n );\n}\n",
6
+ "import { createCipheriv, createDecipheriv, pbkdf2Sync, randomBytes } from \"node:crypto\";\nimport { generateMnemonic, validateMnemonic } from \"@scure/bip39\";\nimport { wordlist } from \"@scure/bip39/wordlists/english.js\";\n\nexport type Keystore = {\n version: number;\n meta: string;\n crypto: {\n cipher: string;\n cipherparams: { iv: string };\n ciphertext: string;\n kdf: string;\n kdfparams: { prf: string; dklen: number; salt: string; c: number };\n mac: string;\n };\n};\n\nasync function blake256(initData: Buffer | string) {\n const { blake2b } = await import(\"@noble/hashes/blake2.js\");\n const data = initData instanceof Buffer ? initData : Buffer.from(initData as string, \"hex\");\n\n const hash = blake2b(data, { dkLen: 32 });\n\n return Array.from(hash as Uint8Array)\n .map((byte) => (byte < 0x10 ? `0${byte.toString(16)}` : byte.toString(16)))\n .join(\"\");\n}\n\nexport async function encryptToKeyStore(phrase: string, password: string) {\n const cipher = \"aes-128-ctr\";\n const iv = randomBytes(16);\n const salt = randomBytes(32);\n const kdfParams = { c: 262144, dklen: 32, prf: \"hmac-sha256\", salt: salt.toString(\"hex\") };\n\n const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, \"sha256\");\n const cipherIV = createCipheriv(cipher, derivedKey.subarray(0, 16), iv);\n const ciphertext = Buffer.concat([cipherIV.update(Buffer.from(phrase, \"utf8\")), cipherIV.final()]);\n const initData = Buffer.concat([derivedKey.subarray(16, 32), Buffer.from(ciphertext)]);\n const mac = await blake256(initData);\n\n return {\n crypto: {\n cipher,\n cipherparams: { iv: iv.toString(\"hex\") },\n ciphertext: ciphertext.toString(\"hex\"),\n kdf: \"pbkdf2\",\n kdfparams: kdfParams,\n mac,\n },\n meta: \"xchain-keystore\",\n version: 1,\n };\n}\n\nexport function generatePhrase(size: 12 | 24 = 12) {\n return generateMnemonic(wordlist, size === 12 ? 128 : 256);\n}\n\nexport function validatePhrase(phrase: string) {\n return validateMnemonic(phrase, wordlist);\n}\n\nexport async function decryptFromKeystore(keystore: Keystore, password: string) {\n const { SwapKitError } = await import(\"@swapkit/helpers\");\n\n switch (keystore.version) {\n case 1: {\n const kdfParams = keystore.crypto.kdfparams;\n const salt = Buffer.from(kdfParams.salt, \"hex\");\n const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, \"sha256\");\n\n const ciphertext = Buffer.from(keystore.crypto.ciphertext, \"hex\");\n const initData = Buffer.concat([derivedKey.subarray(16, 32), ciphertext]);\n const mac = await blake256(initData);\n\n if (mac !== keystore.crypto.mac) {\n throw new SwapKitError(\"wallet_keystore_invalid_password\");\n }\n\n const decipher = createDecipheriv(\n keystore.crypto.cipher,\n derivedKey.subarray(0, 16),\n Buffer.from(keystore.crypto.cipherparams.iv, \"hex\"),\n );\n\n const phrase = Buffer.concat([decipher.update(ciphertext), decipher.final()]);\n return phrase.toString(\"utf8\");\n }\n\n default:\n throw new SwapKitError(\"wallet_keystore_unsupported_version\");\n }\n}\n"
6
7
  ],
7
- "mappings": "AAAA",
8
- "debugId": "A4B1562B435C980964756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "D7E042BE2A2724A964756E2164756E21",
9
10
  "names": []
10
11
  }
@@ -1,4 +1,4 @@
1
- var v={};Z(v,{walletSelectorWallet:()=>U,WALLET_SELECTOR_SUPPORTED_CHAINS:()=>f});module.exports=Y(v);var N=require("@near-wallet-selector/modal-ui-js/styles.css"),k=require("@swapkit/helpers"),R=require("@swapkit/toolboxes/near"),H=require("@swapkit/wallet-core");function _(z){return{getAddress:async()=>{let A=(await z.getAccounts())[0]?.accountId;if(!A)throw new k.SwapKitError("wallet_connection_rejected_by_user");return A},getPublicKey:()=>{throw new k.SwapKitError("wallet_near_method_not_supported")},signAndSendTransactions:async(q)=>{return(await z.signAndSendTransactions(q))?.[0]?.transaction_outcome.id||""},signDelegateAction:()=>{throw new k.SwapKitError("wallet_near_method_not_supported")},signNep413Message:()=>{throw new k.SwapKitError("wallet_near_method_not_supported")},signTransaction:(q)=>{if(!z.signTransaction)throw new k.SwapKitError("wallet_near_method_not_supported");return z.signTransaction(q)}}}function $(z,q){return new Promise((A)=>{let D=z.store.observable.subscribe((B)=>{if(B.selectedWalletId)D.unsubscribe(),q.hide(),A()});q.show()})}async function j(z){let{setupWalletSelector:q}=await import("@near-wallet-selector/core"),{setupModal:A}=await import("@near-wallet-selector/modal-ui-js"),D=k.SKConfig.get("integrations")?.nearWalletSelector?.contractId||"",B=await q({modules:[...z||[]],network:"mainnet"});if(!B.isSignedIn()){let L=A(B,{contractId:D,description:"Connect your NEAR wallet to SwapKit"});await $(B,L)}let J=await B.wallet(),G=_(J),V=await R.getNearToolbox({signer:G}),X=await G.getAddress();return{...V,address:X,disconnect:async()=>{try{await J.signOut()}catch(L){throw new k.SwapKitError("wallet_connection_rejected_by_user",L)}}}}var U=H.createWallet({connect:({addChain:z,supportedChains:q,walletType:A})=>async function(B,P){if(k.filterSupportedChains({chains:B,supportedChains:q,walletType:A}).length===0)throw new k.SwapKitError("wallet_chain_not_supported",{chain:B[0],wallet:k.WalletOption.WALLET_SELECTOR});let G=await j(P);return z({...G,balance:[],chain:k.Chain.Near,walletType:A}),!0},name:"connectWalletSelector",supportedChains:[k.Chain.Near],walletType:k.WalletOption.WALLET_SELECTOR}),f=H.getWalletSupportedChains(U);
1
+ var v={};Z(v,{walletSelectorWallet:()=>U,WALLET_SELECTOR_SUPPORTED_CHAINS:()=>f});module.exports=Y(v);var N=require("@near-wallet-selector/modal-ui-js/styles.css"),k=require("@swapkit/helpers"),R=require("@swapkit/toolboxes/near");function _(z){return{getAddress:async()=>{let A=(await z.getAccounts())[0]?.accountId;if(!A)throw new k.SwapKitError("wallet_connection_rejected_by_user");return A},getPublicKey:()=>{throw new k.SwapKitError("wallet_near_method_not_supported")},signAndSendTransactions:async(q)=>{return(await z.signAndSendTransactions(q))?.[0]?.transaction_outcome.id||""},signDelegateAction:()=>{throw new k.SwapKitError("wallet_near_method_not_supported")},signNep413Message:()=>{throw new k.SwapKitError("wallet_near_method_not_supported")},signTransaction:(q)=>{if(!z.signTransaction)throw new k.SwapKitError("wallet_near_method_not_supported");return z.signTransaction(q)}}}function $(z,q){return new Promise((A)=>{let D=z.store.observable.subscribe((B)=>{if(B.selectedWalletId)D.unsubscribe(),q.hide(),A()});q.show()})}async function j(z){let{setupWalletSelector:q}=await import("@near-wallet-selector/core"),{setupModal:A}=await import("@near-wallet-selector/modal-ui-js"),D=k.SKConfig.get("integrations")?.nearWalletSelector?.contractId||"",B=await q({modules:[...z||[]],network:"mainnet"});if(!B.isSignedIn()){let J=A(B,{contractId:D,description:"Connect your NEAR wallet to SwapKit"});await $(B,J)}let H=await B.wallet(),G=_(H),V=await R.getNearToolbox({signer:G}),X=await G.getAddress();return{...V,address:X,disconnect:async()=>{try{await H.signOut()}catch(J){throw new k.SwapKitError("wallet_connection_rejected_by_user",J)}}}}var U=P({connect:({addChain:z,supportedChains:q,walletType:A})=>async function(B,L){if(k.filterSupportedChains({chains:B,supportedChains:q,walletType:A}).length===0)throw new k.SwapKitError("wallet_chain_not_supported",{chain:B[0],wallet:k.WalletOption.WALLET_SELECTOR});let G=await j(L);return z({...G,balance:[],chain:k.Chain.Near,walletType:A}),!0},name:"connectWalletSelector",supportedChains:[k.Chain.Near],walletType:k.WalletOption.WALLET_SELECTOR}),f=Q(U);
2
2
 
3
- //# debugId=8C1538B4D7E5B57764756E2164756E21
3
+ //# debugId=B550DEF210BDDAAC64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/near-wallet-selector/index.ts"],
4
4
  "sourcesContent": [
5
- "import type { Wallet, WalletModuleFactory } from \"@near-wallet-selector/core\";\nimport \"@near-wallet-selector/modal-ui-js/styles.css\";\nimport type { Transaction } from \"@near-js/transactions\";\nimport { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { getNearToolbox } from \"@swapkit/toolboxes/near\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nfunction createNearSigner(wallet: Wallet) {\n return {\n getAddress: async () => {\n const accounts = await wallet.getAccounts();\n const accountId = accounts[0]?.accountId;\n\n if (!accountId) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n return accountId;\n },\n\n getPublicKey: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n signAndSendTransactions: async (transactions: { transactions: Transaction[] }) => {\n const result = await wallet.signAndSendTransactions(transactions);\n return result?.[0]?.transaction_outcome.id || \"\";\n },\n\n signDelegateAction: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signNep413Message: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signTransaction: (params: Transaction) => {\n if (!wallet.signTransaction) {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n }\n return wallet.signTransaction(params);\n },\n };\n}\n\nfunction waitForWalletSelection(selector: any, modal: any) {\n return new Promise<void>((resolve) => {\n const subscription = selector.store.observable.subscribe((state: any) => {\n if (state.selectedWalletId) {\n subscription.unsubscribe();\n modal.hide();\n resolve();\n }\n });\n\n modal.show();\n });\n}\n\nasync function getWalletMethods(walletFactories?: WalletModuleFactory[]) {\n const { setupWalletSelector } = await import(\"@near-wallet-selector/core\");\n const { setupModal } = await import(\"@near-wallet-selector/modal-ui-js\");\n\n const contractId = SKConfig.get(\"integrations\")?.nearWalletSelector?.contractId || \"\";\n const selector = await setupWalletSelector({ modules: [...(walletFactories || [])], network: \"mainnet\" });\n\n const isSignedIn = selector.isSignedIn();\n\n if (!isSignedIn) {\n // Only show modal if not already connected\n const modal = setupModal(selector, { contractId, description: \"Connect your NEAR wallet to SwapKit\" });\n\n await waitForWalletSelection(selector, modal);\n }\n\n const wallet = await selector.wallet();\n const signer = createNearSigner(wallet);\n const toolbox = await getNearToolbox({ signer });\n const address = await signer.getAddress();\n\n const disconnect = async () => {\n try {\n await wallet.signOut();\n } catch (error) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", error);\n }\n };\n\n return { ...toolbox, address, disconnect };\n}\n\nexport const walletSelectorWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletSelector(chains: Chain[], walletFactories?: WalletModuleFactory[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n chain: chains[0],\n wallet: WalletOption.WALLET_SELECTOR,\n });\n }\n\n const walletMethods = await getWalletMethods(walletFactories);\n\n addChain({ ...walletMethods, balance: [], chain: Chain.Near, walletType });\n\n return true;\n },\n name: \"connectWalletSelector\",\n supportedChains: [Chain.Near],\n walletType: WalletOption.WALLET_SELECTOR,\n});\n\nexport const WALLET_SELECTOR_SUPPORTED_CHAINS = getWalletSupportedChains(walletSelectorWallet);\n"
5
+ "import type { Wallet, WalletModuleFactory } from \"@near-wallet-selector/core\";\nimport \"@near-wallet-selector/modal-ui-js/styles.css\";\nimport type { Transaction } from \"@near-js/transactions\";\nimport { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { getNearToolbox } from \"@swapkit/toolboxes/near\";\nimport { createWallet, getWalletSupportedChains } from \"../core\";\n\nfunction createNearSigner(wallet: Wallet) {\n return {\n getAddress: async () => {\n const accounts = await wallet.getAccounts();\n const accountId = accounts[0]?.accountId;\n\n if (!accountId) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n return accountId;\n },\n\n getPublicKey: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n signAndSendTransactions: async (transactions: { transactions: Transaction[] }) => {\n const result = await wallet.signAndSendTransactions(transactions);\n return result?.[0]?.transaction_outcome.id || \"\";\n },\n\n signDelegateAction: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signNep413Message: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signTransaction: (params: Transaction) => {\n if (!wallet.signTransaction) {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n }\n return wallet.signTransaction(params);\n },\n };\n}\n\nfunction waitForWalletSelection(selector: any, modal: any) {\n return new Promise<void>((resolve) => {\n const subscription = selector.store.observable.subscribe((state: any) => {\n if (state.selectedWalletId) {\n subscription.unsubscribe();\n modal.hide();\n resolve();\n }\n });\n\n modal.show();\n });\n}\n\nasync function getWalletMethods(walletFactories?: WalletModuleFactory[]) {\n const { setupWalletSelector } = await import(\"@near-wallet-selector/core\");\n const { setupModal } = await import(\"@near-wallet-selector/modal-ui-js\");\n\n const contractId = SKConfig.get(\"integrations\")?.nearWalletSelector?.contractId || \"\";\n const selector = await setupWalletSelector({ modules: [...(walletFactories || [])], network: \"mainnet\" });\n\n const isSignedIn = selector.isSignedIn();\n\n if (!isSignedIn) {\n // Only show modal if not already connected\n const modal = setupModal(selector, { contractId, description: \"Connect your NEAR wallet to SwapKit\" });\n\n await waitForWalletSelection(selector, modal);\n }\n\n const wallet = await selector.wallet();\n const signer = createNearSigner(wallet);\n const toolbox = await getNearToolbox({ signer });\n const address = await signer.getAddress();\n\n const disconnect = async () => {\n try {\n await wallet.signOut();\n } catch (error) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", error);\n }\n };\n\n return { ...toolbox, address, disconnect };\n}\n\nexport const walletSelectorWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletSelector(chains: Chain[], walletFactories?: WalletModuleFactory[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n chain: chains[0],\n wallet: WalletOption.WALLET_SELECTOR,\n });\n }\n\n const walletMethods = await getWalletMethods(walletFactories);\n\n addChain({ ...walletMethods, balance: [], chain: Chain.Near, walletType });\n\n return true;\n },\n name: \"connectWalletSelector\",\n supportedChains: [Chain.Near],\n walletType: WalletOption.WALLET_SELECTOR,\n});\n\nexport const WALLET_SELECTOR_SUPPORTED_CHAINS = getWalletSupportedChains(walletSelectorWallet);\n"
6
6
  ],
7
- "mappings": "sGACO,IAAP,0DAEA,8BACA,qCACA,kCAEA,SAAS,CAAgB,CAAC,EAAgB,CACxC,MAAO,CACL,WAAY,SAAY,CAEtB,IAAM,GADW,MAAM,EAAO,YAAY,GACf,IAAI,UAE/B,GAAI,CAAC,EACH,MAAM,IAAI,eAAa,oCAAoC,EAG7D,OAAO,GAGT,aAAc,IAAM,CAClB,MAAM,IAAI,eAAa,kCAAkC,GAE3D,wBAAyB,MAAO,IAAkD,CAEhF,OADe,MAAM,EAAO,wBAAwB,CAAY,KAChD,IAAI,oBAAoB,IAAM,IAGhD,mBAAoB,IAAM,CACxB,MAAM,IAAI,eAAa,kCAAkC,GAG3D,kBAAmB,IAAM,CACvB,MAAM,IAAI,eAAa,kCAAkC,GAG3D,gBAAiB,CAAC,IAAwB,CACxC,GAAI,CAAC,EAAO,gBACV,MAAM,IAAI,eAAa,kCAAkC,EAE3D,OAAO,EAAO,gBAAgB,CAAM,EAExC,EAGF,SAAS,CAAsB,CAAC,EAAe,EAAY,CACzD,OAAO,IAAI,QAAc,CAAC,IAAY,CACpC,IAAM,EAAe,EAAS,MAAM,WAAW,UAAU,CAAC,IAAe,CACvE,GAAI,EAAM,iBACR,EAAa,YAAY,EACzB,EAAM,KAAK,EACX,EAAQ,EAEX,EAED,EAAM,KAAK,EACZ,EAGH,eAAe,CAAgB,CAAC,EAAyC,CACvE,IAAQ,uBAAwB,KAAa,uCACrC,cAAe,KAAa,6CAE9B,EAAa,WAAS,IAAI,cAAc,GAAG,oBAAoB,YAAc,GAC7E,EAAW,MAAM,EAAoB,CAAE,QAAS,CAAC,GAAI,GAAmB,CAAC,CAAE,EAAG,QAAS,SAAU,CAAC,EAIxG,GAAI,CAFe,EAAS,WAAW,EAEtB,CAEf,IAAM,EAAQ,EAAW,EAAU,CAAE,aAAY,YAAa,qCAAsC,CAAC,EAErG,MAAM,EAAuB,EAAU,CAAK,EAG9C,IAAM,EAAS,MAAM,EAAS,OAAO,EAC/B,EAAS,EAAiB,CAAM,EAChC,EAAU,MAAM,iBAAe,CAAE,QAAO,CAAC,EACzC,EAAU,MAAM,EAAO,WAAW,EAUxC,MAAO,IAAK,EAAS,UAAS,WARX,SAAY,CAC7B,GAAI,CACF,MAAM,EAAO,QAAQ,EACrB,MAAO,EAAO,CACd,MAAM,IAAI,eAAa,qCAAsC,CAAK,GAI7B,EAGpC,IAAM,EAAuB,eAAa,CAC/C,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAoC,CAAC,EAAiB,EAAyC,CAG7F,GAFuB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEjE,SAAW,EAC5B,MAAM,IAAI,eAAa,6BAA8B,CACnD,MAAO,EAAO,GACd,OAAQ,eAAa,eACvB,CAAC,EAGH,IAAM,EAAgB,MAAM,EAAiB,CAAe,EAI5D,OAFA,EAAS,IAAK,EAAe,QAAS,CAAC,EAAG,MAAO,QAAM,KAAM,YAAW,CAAC,EAElE,IAEX,KAAM,wBACN,gBAAiB,CAAC,QAAM,IAAI,EAC5B,WAAY,eAAa,eAC3B,CAAC,EAEY,EAAmC,2BAAyB,CAAoB",
8
- "debugId": "8C1538B4D7E5B57764756E2164756E21",
7
+ "mappings": "sGACO,IAAP,0DAEA,8BACA,qCAGA,SAAS,CAAgB,CAAC,EAAgB,CACxC,MAAO,CACL,WAAY,SAAY,CAEtB,IAAM,GADW,MAAM,EAAO,YAAY,GACf,IAAI,UAE/B,GAAI,CAAC,EACH,MAAM,IAAI,eAAa,oCAAoC,EAG7D,OAAO,GAGT,aAAc,IAAM,CAClB,MAAM,IAAI,eAAa,kCAAkC,GAE3D,wBAAyB,MAAO,IAAkD,CAEhF,OADe,MAAM,EAAO,wBAAwB,CAAY,KAChD,IAAI,oBAAoB,IAAM,IAGhD,mBAAoB,IAAM,CACxB,MAAM,IAAI,eAAa,kCAAkC,GAG3D,kBAAmB,IAAM,CACvB,MAAM,IAAI,eAAa,kCAAkC,GAG3D,gBAAiB,CAAC,IAAwB,CACxC,GAAI,CAAC,EAAO,gBACV,MAAM,IAAI,eAAa,kCAAkC,EAE3D,OAAO,EAAO,gBAAgB,CAAM,EAExC,EAGF,SAAS,CAAsB,CAAC,EAAe,EAAY,CACzD,OAAO,IAAI,QAAc,CAAC,IAAY,CACpC,IAAM,EAAe,EAAS,MAAM,WAAW,UAAU,CAAC,IAAe,CACvE,GAAI,EAAM,iBACR,EAAa,YAAY,EACzB,EAAM,KAAK,EACX,EAAQ,EAEX,EAED,EAAM,KAAK,EACZ,EAGH,eAAe,CAAgB,CAAC,EAAyC,CACvE,IAAQ,uBAAwB,KAAa,uCACrC,cAAe,KAAa,6CAE9B,EAAa,WAAS,IAAI,cAAc,GAAG,oBAAoB,YAAc,GAC7E,EAAW,MAAM,EAAoB,CAAE,QAAS,CAAC,GAAI,GAAmB,CAAC,CAAE,EAAG,QAAS,SAAU,CAAC,EAIxG,GAAI,CAFe,EAAS,WAAW,EAEtB,CAEf,IAAM,EAAQ,EAAW,EAAU,CAAE,aAAY,YAAa,qCAAsC,CAAC,EAErG,MAAM,EAAuB,EAAU,CAAK,EAG9C,IAAM,EAAS,MAAM,EAAS,OAAO,EAC/B,EAAS,EAAiB,CAAM,EAChC,EAAU,MAAM,iBAAe,CAAE,QAAO,CAAC,EACzC,EAAU,MAAM,EAAO,WAAW,EAUxC,MAAO,IAAK,EAAS,UAAS,WARX,SAAY,CAC7B,GAAI,CACF,MAAM,EAAO,QAAQ,EACrB,MAAO,EAAO,CACd,MAAM,IAAI,eAAa,qCAAsC,CAAK,GAI7B,EAGpC,IAAM,EAAuB,EAAa,CAC/C,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAoC,CAAC,EAAiB,EAAyC,CAG7F,GAFuB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEjE,SAAW,EAC5B,MAAM,IAAI,eAAa,6BAA8B,CACnD,MAAO,EAAO,GACd,OAAQ,eAAa,eACvB,CAAC,EAGH,IAAM,EAAgB,MAAM,EAAiB,CAAe,EAI5D,OAFA,EAAS,IAAK,EAAe,QAAS,CAAC,EAAG,MAAO,QAAM,KAAM,YAAW,CAAC,EAElE,IAEX,KAAM,wBACN,gBAAiB,CAAC,QAAM,IAAI,EAC5B,WAAY,eAAa,eAC3B,CAAC,EAEY,EAAmC,EAAyB,CAAoB",
8
+ "debugId": "B550DEF210BDDAAC64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- import{G as P,H as Q}from"../../chunk-78m70510.js";import"@near-wallet-selector/modal-ui-js/styles.css";import{Chain as R,filterSupportedChains as Y,SKConfig as Z,SwapKitError as B,WalletOption as U}from"@swapkit/helpers";import{getNearToolbox as _}from"@swapkit/toolboxes/near";import{createWallet as $,getWalletSupportedChains as j}from"@swapkit/wallet-core";function f(q){return{getAddress:async()=>{let z=(await q.getAccounts())[0]?.accountId;if(!z)throw new B("wallet_connection_rejected_by_user");return z},getPublicKey:()=>{throw new B("wallet_near_method_not_supported")},signAndSendTransactions:async(k)=>{return(await q.signAndSendTransactions(k))?.[0]?.transaction_outcome.id||""},signDelegateAction:()=>{throw new B("wallet_near_method_not_supported")},signNep413Message:()=>{throw new B("wallet_near_method_not_supported")},signTransaction:(k)=>{if(!q.signTransaction)throw new B("wallet_near_method_not_supported");return q.signTransaction(k)}}}function v(q,k){return new Promise((z)=>{let D=q.store.observable.subscribe((A)=>{if(A.selectedWalletId)D.unsubscribe(),k.hide(),z()});k.show()})}async function x(q){let{setupWalletSelector:k}=await import("@near-wallet-selector/core"),{setupModal:z}=await import("@near-wallet-selector/modal-ui-js"),D=Z.get("integrations")?.nearWalletSelector?.contractId||"",A=await k({modules:[...q||[]],network:"mainnet"});if(!A.isSignedIn()){let J=z(A,{contractId:D,description:"Connect your NEAR wallet to SwapKit"});await v(A,J)}let H=await A.wallet(),G=f(H),V=await _({signer:G}),X=await G.getAddress();return{...V,address:X,disconnect:async()=>{try{await H.signOut()}catch(J){throw new B("wallet_connection_rejected_by_user",J)}}}}var N=$({connect:({addChain:q,supportedChains:k,walletType:z})=>async function(A,L){if(Y({chains:A,supportedChains:k,walletType:z}).length===0)throw new B("wallet_chain_not_supported",{chain:A[0],wallet:U.WALLET_SELECTOR});let G=await x(L);return q({...G,balance:[],chain:R.Near,walletType:z}),!0},name:"connectWalletSelector",supportedChains:[R.Near],walletType:U.WALLET_SELECTOR}),F=j(N);export{N as walletSelectorWallet,F as WALLET_SELECTOR_SUPPORTED_CHAINS};
1
+ import{G as U,H as V}from"../../chunk-qv7snmdv.js";import{I as P}from"../../chunk-5jj4jvy9.js";import"@near-wallet-selector/modal-ui-js/styles.css";import{Chain as Q,filterSupportedChains as Z,SKConfig as _,SwapKitError as B,WalletOption as R}from"@swapkit/helpers";import{getNearToolbox as $}from"@swapkit/toolboxes/near";function j(q){return{getAddress:async()=>{let z=(await q.getAccounts())[0]?.accountId;if(!z)throw new B("wallet_connection_rejected_by_user");return z},getPublicKey:()=>{throw new B("wallet_near_method_not_supported")},signAndSendTransactions:async(k)=>{return(await q.signAndSendTransactions(k))?.[0]?.transaction_outcome.id||""},signDelegateAction:()=>{throw new B("wallet_near_method_not_supported")},signNep413Message:()=>{throw new B("wallet_near_method_not_supported")},signTransaction:(k)=>{if(!q.signTransaction)throw new B("wallet_near_method_not_supported");return q.signTransaction(k)}}}function f(q,k){return new Promise((z)=>{let D=q.store.observable.subscribe((A)=>{if(A.selectedWalletId)D.unsubscribe(),k.hide(),z()});k.show()})}async function v(q){let{setupWalletSelector:k}=await import("@near-wallet-selector/core"),{setupModal:z}=await import("@near-wallet-selector/modal-ui-js"),D=_.get("integrations")?.nearWalletSelector?.contractId||"",A=await k({modules:[...q||[]],network:"mainnet"});if(!A.isSignedIn()){let J=z(A,{contractId:D,description:"Connect your NEAR wallet to SwapKit"});await f(A,J)}let H=await A.wallet(),G=j(H),X=await $({signer:G}),Y=await G.getAddress();return{...X,address:Y,disconnect:async()=>{try{await H.signOut()}catch(J){throw new B("wallet_connection_rejected_by_user",J)}}}}var x=U({connect:({addChain:q,supportedChains:k,walletType:z})=>async function(A,L){if(Z({chains:A,supportedChains:k,walletType:z}).length===0)throw new B("wallet_chain_not_supported",{chain:A[0],wallet:R.WALLET_SELECTOR});let G=await v(L);return q({...G,balance:[],chain:Q.Near,walletType:z}),!0},name:"connectWalletSelector",supportedChains:[Q.Near],walletType:R.WALLET_SELECTOR}),y=V(x);export{x as walletSelectorWallet,y as WALLET_SELECTOR_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=8BE98913C4FD071A64756E2164756E21
3
+ //# debugId=ECE86767D0DDDB2864756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/near-wallet-selector/index.ts"],
4
4
  "sourcesContent": [
5
- "import type { Wallet, WalletModuleFactory } from \"@near-wallet-selector/core\";\nimport \"@near-wallet-selector/modal-ui-js/styles.css\";\nimport type { Transaction } from \"@near-js/transactions\";\nimport { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { getNearToolbox } from \"@swapkit/toolboxes/near\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\n\nfunction createNearSigner(wallet: Wallet) {\n return {\n getAddress: async () => {\n const accounts = await wallet.getAccounts();\n const accountId = accounts[0]?.accountId;\n\n if (!accountId) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n return accountId;\n },\n\n getPublicKey: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n signAndSendTransactions: async (transactions: { transactions: Transaction[] }) => {\n const result = await wallet.signAndSendTransactions(transactions);\n return result?.[0]?.transaction_outcome.id || \"\";\n },\n\n signDelegateAction: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signNep413Message: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signTransaction: (params: Transaction) => {\n if (!wallet.signTransaction) {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n }\n return wallet.signTransaction(params);\n },\n };\n}\n\nfunction waitForWalletSelection(selector: any, modal: any) {\n return new Promise<void>((resolve) => {\n const subscription = selector.store.observable.subscribe((state: any) => {\n if (state.selectedWalletId) {\n subscription.unsubscribe();\n modal.hide();\n resolve();\n }\n });\n\n modal.show();\n });\n}\n\nasync function getWalletMethods(walletFactories?: WalletModuleFactory[]) {\n const { setupWalletSelector } = await import(\"@near-wallet-selector/core\");\n const { setupModal } = await import(\"@near-wallet-selector/modal-ui-js\");\n\n const contractId = SKConfig.get(\"integrations\")?.nearWalletSelector?.contractId || \"\";\n const selector = await setupWalletSelector({ modules: [...(walletFactories || [])], network: \"mainnet\" });\n\n const isSignedIn = selector.isSignedIn();\n\n if (!isSignedIn) {\n // Only show modal if not already connected\n const modal = setupModal(selector, { contractId, description: \"Connect your NEAR wallet to SwapKit\" });\n\n await waitForWalletSelection(selector, modal);\n }\n\n const wallet = await selector.wallet();\n const signer = createNearSigner(wallet);\n const toolbox = await getNearToolbox({ signer });\n const address = await signer.getAddress();\n\n const disconnect = async () => {\n try {\n await wallet.signOut();\n } catch (error) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", error);\n }\n };\n\n return { ...toolbox, address, disconnect };\n}\n\nexport const walletSelectorWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletSelector(chains: Chain[], walletFactories?: WalletModuleFactory[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n chain: chains[0],\n wallet: WalletOption.WALLET_SELECTOR,\n });\n }\n\n const walletMethods = await getWalletMethods(walletFactories);\n\n addChain({ ...walletMethods, balance: [], chain: Chain.Near, walletType });\n\n return true;\n },\n name: \"connectWalletSelector\",\n supportedChains: [Chain.Near],\n walletType: WalletOption.WALLET_SELECTOR,\n});\n\nexport const WALLET_SELECTOR_SUPPORTED_CHAINS = getWalletSupportedChains(walletSelectorWallet);\n"
5
+ "import type { Wallet, WalletModuleFactory } from \"@near-wallet-selector/core\";\nimport \"@near-wallet-selector/modal-ui-js/styles.css\";\nimport type { Transaction } from \"@near-js/transactions\";\nimport { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { getNearToolbox } from \"@swapkit/toolboxes/near\";\nimport { createWallet, getWalletSupportedChains } from \"../core\";\n\nfunction createNearSigner(wallet: Wallet) {\n return {\n getAddress: async () => {\n const accounts = await wallet.getAccounts();\n const accountId = accounts[0]?.accountId;\n\n if (!accountId) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n return accountId;\n },\n\n getPublicKey: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n signAndSendTransactions: async (transactions: { transactions: Transaction[] }) => {\n const result = await wallet.signAndSendTransactions(transactions);\n return result?.[0]?.transaction_outcome.id || \"\";\n },\n\n signDelegateAction: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signNep413Message: () => {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n },\n\n signTransaction: (params: Transaction) => {\n if (!wallet.signTransaction) {\n throw new SwapKitError(\"wallet_near_method_not_supported\");\n }\n return wallet.signTransaction(params);\n },\n };\n}\n\nfunction waitForWalletSelection(selector: any, modal: any) {\n return new Promise<void>((resolve) => {\n const subscription = selector.store.observable.subscribe((state: any) => {\n if (state.selectedWalletId) {\n subscription.unsubscribe();\n modal.hide();\n resolve();\n }\n });\n\n modal.show();\n });\n}\n\nasync function getWalletMethods(walletFactories?: WalletModuleFactory[]) {\n const { setupWalletSelector } = await import(\"@near-wallet-selector/core\");\n const { setupModal } = await import(\"@near-wallet-selector/modal-ui-js\");\n\n const contractId = SKConfig.get(\"integrations\")?.nearWalletSelector?.contractId || \"\";\n const selector = await setupWalletSelector({ modules: [...(walletFactories || [])], network: \"mainnet\" });\n\n const isSignedIn = selector.isSignedIn();\n\n if (!isSignedIn) {\n // Only show modal if not already connected\n const modal = setupModal(selector, { contractId, description: \"Connect your NEAR wallet to SwapKit\" });\n\n await waitForWalletSelection(selector, modal);\n }\n\n const wallet = await selector.wallet();\n const signer = createNearSigner(wallet);\n const toolbox = await getNearToolbox({ signer });\n const address = await signer.getAddress();\n\n const disconnect = async () => {\n try {\n await wallet.signOut();\n } catch (error) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", error);\n }\n };\n\n return { ...toolbox, address, disconnect };\n}\n\nexport const walletSelectorWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletSelector(chains: Chain[], walletFactories?: WalletModuleFactory[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n chain: chains[0],\n wallet: WalletOption.WALLET_SELECTOR,\n });\n }\n\n const walletMethods = await getWalletMethods(walletFactories);\n\n addChain({ ...walletMethods, balance: [], chain: Chain.Near, walletType });\n\n return true;\n },\n name: \"connectWalletSelector\",\n supportedChains: [Chain.Near],\n walletType: WalletOption.WALLET_SELECTOR,\n});\n\nexport const WALLET_SELECTOR_SUPPORTED_CHAINS = getWalletSupportedChains(walletSelectorWallet);\n"
6
6
  ],
7
- "mappings": "mDACA,qDAEA,gBAAS,2BAAO,cAAuB,kBAAU,kBAAc,yBAC/D,yBAAS,gCACT,uBAAS,8BAAc,6BAEvB,SAAS,CAAgB,CAAC,EAAgB,CACxC,MAAO,CACL,WAAY,SAAY,CAEtB,IAAM,GADW,MAAM,EAAO,YAAY,GACf,IAAI,UAE/B,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,oCAAoC,EAG7D,OAAO,GAGT,aAAc,IAAM,CAClB,MAAM,IAAI,EAAa,kCAAkC,GAE3D,wBAAyB,MAAO,IAAkD,CAEhF,OADe,MAAM,EAAO,wBAAwB,CAAY,KAChD,IAAI,oBAAoB,IAAM,IAGhD,mBAAoB,IAAM,CACxB,MAAM,IAAI,EAAa,kCAAkC,GAG3D,kBAAmB,IAAM,CACvB,MAAM,IAAI,EAAa,kCAAkC,GAG3D,gBAAiB,CAAC,IAAwB,CACxC,GAAI,CAAC,EAAO,gBACV,MAAM,IAAI,EAAa,kCAAkC,EAE3D,OAAO,EAAO,gBAAgB,CAAM,EAExC,EAGF,SAAS,CAAsB,CAAC,EAAe,EAAY,CACzD,OAAO,IAAI,QAAc,CAAC,IAAY,CACpC,IAAM,EAAe,EAAS,MAAM,WAAW,UAAU,CAAC,IAAe,CACvE,GAAI,EAAM,iBACR,EAAa,YAAY,EACzB,EAAM,KAAK,EACX,EAAQ,EAEX,EAED,EAAM,KAAK,EACZ,EAGH,eAAe,CAAgB,CAAC,EAAyC,CACvE,IAAQ,uBAAwB,KAAa,uCACrC,cAAe,KAAa,6CAE9B,EAAa,EAAS,IAAI,cAAc,GAAG,oBAAoB,YAAc,GAC7E,EAAW,MAAM,EAAoB,CAAE,QAAS,CAAC,GAAI,GAAmB,CAAC,CAAE,EAAG,QAAS,SAAU,CAAC,EAIxG,GAAI,CAFe,EAAS,WAAW,EAEtB,CAEf,IAAM,EAAQ,EAAW,EAAU,CAAE,aAAY,YAAa,qCAAsC,CAAC,EAErG,MAAM,EAAuB,EAAU,CAAK,EAG9C,IAAM,EAAS,MAAM,EAAS,OAAO,EAC/B,EAAS,EAAiB,CAAM,EAChC,EAAU,MAAM,EAAe,CAAE,QAAO,CAAC,EACzC,EAAU,MAAM,EAAO,WAAW,EAUxC,MAAO,IAAK,EAAS,UAAS,WARX,SAAY,CAC7B,GAAI,CACF,MAAM,EAAO,QAAQ,EACrB,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,qCAAsC,CAAK,GAI7B,EAGpC,IAAM,EAAuB,EAAa,CAC/C,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAoC,CAAC,EAAiB,EAAyC,CAG7F,GAFuB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEjE,SAAW,EAC5B,MAAM,IAAI,EAAa,6BAA8B,CACnD,MAAO,EAAO,GACd,OAAQ,EAAa,eACvB,CAAC,EAGH,IAAM,EAAgB,MAAM,EAAiB,CAAe,EAI5D,OAFA,EAAS,IAAK,EAAe,QAAS,CAAC,EAAG,MAAO,EAAM,KAAM,YAAW,CAAC,EAElE,IAEX,KAAM,wBACN,gBAAiB,CAAC,EAAM,IAAI,EAC5B,WAAY,EAAa,eAC3B,CAAC,EAEY,EAAmC,EAAyB,CAAoB",
8
- "debugId": "8BE98913C4FD071A64756E2164756E21",
7
+ "mappings": "iGACA,mDAEA,gBAAS,2BAAO,cAAuB,kBAAU,kBAAc,yBAC/D,yBAAS,gCAGT,SAAS,CAAgB,CAAC,EAAgB,CACxC,MAAO,CACL,WAAY,SAAY,CAEtB,IAAM,GADW,MAAM,EAAO,YAAY,GACf,IAAI,UAE/B,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,oCAAoC,EAG7D,OAAO,GAGT,aAAc,IAAM,CAClB,MAAM,IAAI,EAAa,kCAAkC,GAE3D,wBAAyB,MAAO,IAAkD,CAEhF,OADe,MAAM,EAAO,wBAAwB,CAAY,KAChD,IAAI,oBAAoB,IAAM,IAGhD,mBAAoB,IAAM,CACxB,MAAM,IAAI,EAAa,kCAAkC,GAG3D,kBAAmB,IAAM,CACvB,MAAM,IAAI,EAAa,kCAAkC,GAG3D,gBAAiB,CAAC,IAAwB,CACxC,GAAI,CAAC,EAAO,gBACV,MAAM,IAAI,EAAa,kCAAkC,EAE3D,OAAO,EAAO,gBAAgB,CAAM,EAExC,EAGF,SAAS,CAAsB,CAAC,EAAe,EAAY,CACzD,OAAO,IAAI,QAAc,CAAC,IAAY,CACpC,IAAM,EAAe,EAAS,MAAM,WAAW,UAAU,CAAC,IAAe,CACvE,GAAI,EAAM,iBACR,EAAa,YAAY,EACzB,EAAM,KAAK,EACX,EAAQ,EAEX,EAED,EAAM,KAAK,EACZ,EAGH,eAAe,CAAgB,CAAC,EAAyC,CACvE,IAAQ,uBAAwB,KAAa,uCACrC,cAAe,KAAa,6CAE9B,EAAa,EAAS,IAAI,cAAc,GAAG,oBAAoB,YAAc,GAC7E,EAAW,MAAM,EAAoB,CAAE,QAAS,CAAC,GAAI,GAAmB,CAAC,CAAE,EAAG,QAAS,SAAU,CAAC,EAIxG,GAAI,CAFe,EAAS,WAAW,EAEtB,CAEf,IAAM,EAAQ,EAAW,EAAU,CAAE,aAAY,YAAa,qCAAsC,CAAC,EAErG,MAAM,EAAuB,EAAU,CAAK,EAG9C,IAAM,EAAS,MAAM,EAAS,OAAO,EAC/B,EAAS,EAAiB,CAAM,EAChC,EAAU,MAAM,EAAe,CAAE,QAAO,CAAC,EACzC,EAAU,MAAM,EAAO,WAAW,EAUxC,MAAO,IAAK,EAAS,UAAS,WARX,SAAY,CAC7B,GAAI,CACF,MAAM,EAAO,QAAQ,EACrB,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,qCAAsC,CAAK,GAI7B,EAGpC,IAAM,EAAuB,EAAa,CAC/C,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAoC,CAAC,EAAiB,EAAyC,CAG7F,GAFuB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEjE,SAAW,EAC5B,MAAM,IAAI,EAAa,6BAA8B,CACnD,MAAO,EAAO,GACd,OAAQ,EAAa,eACvB,CAAC,EAGH,IAAM,EAAgB,MAAM,EAAiB,CAAe,EAI5D,OAFA,EAAS,IAAK,EAAe,QAAS,CAAC,EAAG,MAAO,EAAM,KAAM,YAAW,CAAC,EAElE,IAEX,KAAM,wBACN,gBAAiB,CAAC,EAAM,IAAI,EAC5B,WAAY,EAAa,eAC3B,CAAC,EAEY,EAAmC,EAAyB,CAAoB",
8
+ "debugId": "ECE86767D0DDDB2864756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- var z={};m(z,{passkeysWallet:()=>N,PASSKEYS_SUPPORTED_CHAINS:()=>T});module.exports=O(z);var q=require("@swapkit/helpers"),f=require("@swapkit/wallet-core"),B=require("bitcoinjs-lib"),X=require("sats-connect"),V=require("ts-pattern");F(z,require("@passkeys/core"),module.exports);F(z,require("@passkeys/react"),module.exports);async function y(){let Y=q.SKConfig.get("apiKeys").passkeys,{createWallet:U}=await import("@passkeys/core");return U({appId:Y.length>0?Y:void 0,providers:{bitcoin:!0,ethereum:!0,solana:!0}})}function K({wallet:Y,chain:U}){return V.match(U).with(q.Chain.Bitcoin,async(G)=>{let{getUtxoToolbox:Z}=await import("@swapkit/toolboxes/utxo"),$=await Y.getProvider("bitcoin");if(!$)throw new q.SwapKitError("wallet_passkeys_not_found");let H="",J=()=>Promise.resolve($),R={getProvider:J,onCancel:()=>{throw new q.SwapKitError("wallet_passkeys_request_canceled")},onFinish:(Q)=>{if(!Q.addresses[0])throw new q.SwapKitError("wallet_passkeys_no_address");H=Q.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:X.BitcoinNetworkType.Mainnet},purposes:[X.AddressPurpose.Payment]}};await X.getAddress(R);async function L(Q){let j,M={getProvider:J,onCancel:()=>{throw new q.SwapKitError("wallet_passkeys_signature_canceled")},onFinish:(A)=>{j=B.Psbt.fromBase64(A.psbtBase64)},payload:{broadcast:!1,inputsToSign:[{address:H,signingIndexes:Q.txInputs.map((A,u)=>u)}],message:"Sign transaction",network:{type:X.BitcoinNetworkType.Mainnet},psbtBase64:Q.toBase64()}};if(await X.signTransaction(M),!j)throw new q.SwapKitError("wallet_passkeys_sign_transaction_error");return j}return{...await Z(G,{signer:{getAddress:()=>Promise.resolve(H),signTransaction:L}}),address:H}}).with(...q.EVMChains,async(G)=>{let{getProvider:Z,getEvmToolbox:$}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:H}=await import("ethers"),J=await Y.getProvider("ethereum");if(!J)throw new q.SwapKitError("wallet_passkeys_not_found");let R=await Z(G),L=new H(J,"any");await L.send("eth_requestAccounts",[]);let _=await L.getSigner(),I=await _.getAddress(),Q=await $(G,{provider:R,signer:_});try{if(G!==q.Chain.Ethereum){let j=Q.getNetworkParams();await q.switchEVMWalletNetwork(L,G,j)}}catch{throw new q.SwapKitError("wallet_passkeys_failed_to_switch_network",{chain:G})}return{...q.prepareNetworkSwitch({chain:G,provider:L,toolbox:Q}),address:I}}).with(q.Chain.Solana,async()=>{let{getSolanaToolbox:G}=await import("@swapkit/toolboxes/solana"),Z=await Y.getProvider("solana"),H=(await Z.connect()).publicKey.toString();return{...await G({signer:Z}),address:H,disconnect:async()=>{await Z.disconnect()}}}).otherwise((G)=>{throw new q.SwapKitError("wallet_passkeys_chain_not_supported",{chain:G})})}var N=f.createWallet({connect:({addChain:Y,walletType:U,supportedChains:G})=>async function($,H){let J=H||await y();if(!J)throw new q.SwapKitError("wallet_passkeys_instance_missing");let R=q.filterSupportedChains({chains:$,supportedChains:G,walletType:U});return await Promise.all(R.map(async(L)=>{try{let _=await K({chain:L,wallet:J}),{address:I,...Q}=_;Y({...Q,address:I,chain:L,disconnect:J.disconnect,walletType:q.WalletOption.PASSKEYS})}catch(_){throw console.error(`Failed to connect ${L} wallet:`,_),_}})),!0},name:"connectPasskeys",supportedChains:[...q.EVMChains,q.Chain.Bitcoin,q.Chain.Solana],walletType:q.WalletOption.PASSKEYS}),T=f.getWalletSupportedChains(N);
1
+ var z={};E(z,{passkeysWallet:()=>M,PASSKEYS_SUPPORTED_CHAINS:()=>S});module.exports=y(z);var I=require("@scure/base"),q=require("@swapkit/helpers"),N=require("@swapkit/utxo-signer");var X=require("sats-connect"),B=require("ts-pattern");F(z,require("@passkeys/core"),module.exports);F(z,require("@passkeys/react"),module.exports);async function P(){let Y=q.SKConfig.get("apiKeys").passkeys,{createWallet:R}=await import("@passkeys/core");return R({appId:Y.length>0?Y:void 0,providers:{bitcoin:!0,ethereum:!0,solana:!0}})}function T({wallet:Y,chain:R}){return B.match(R).with(q.Chain.Bitcoin,async(G)=>{let{getUtxoToolbox:Z}=await import("@swapkit/toolboxes/utxo"),$=await Y.getProvider("bitcoin");if(!$)throw new q.SwapKitError("wallet_passkeys_not_found");let H="",J=()=>Promise.resolve($),j={getProvider:J,onCancel:()=>{throw new q.SwapKitError("wallet_passkeys_request_canceled")},onFinish:(Q)=>{if(!Q.addresses[0])throw new q.SwapKitError("wallet_passkeys_no_address");H=Q.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:X.BitcoinNetworkType.Mainnet},purposes:[X.AddressPurpose.Payment]}};await X.getAddress(j);async function L(Q){let U,O=Q.toPSBT(0),m=I.base64.encode(O),u=Q.inputsLength,K={getProvider:J,onCancel:()=>{throw new q.SwapKitError("wallet_passkeys_signature_canceled")},onFinish:(f)=>{U=N.Transaction.fromPSBT(I.base64.decode(f.psbtBase64))},payload:{broadcast:!1,inputsToSign:[{address:H,signingIndexes:Array.from({length:u},(f,W)=>W)}],message:"Sign transaction",network:{type:X.BitcoinNetworkType.Mainnet},psbtBase64:m}};if(await X.signTransaction(K),!U)throw new q.SwapKitError("wallet_passkeys_sign_transaction_error");return U}return{...await Z(G,{signer:{getAddress:()=>Promise.resolve(H),signTransaction:L}}),address:H}}).with(...q.EVMChains,async(G)=>{let{getProvider:Z,getEvmToolboxAsync:$}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:H}=await import("ethers"),J=await Y.getProvider("ethereum");if(!J)throw new q.SwapKitError("wallet_passkeys_not_found");let j=await Z(G),L=new H(J,"any");await L.send("eth_requestAccounts",[]);let _=await L.getSigner(),D=await _.getAddress(),Q=await $(G,{provider:j,signer:_});try{if(G!==q.Chain.Ethereum){let U=Q.getNetworkParams();await q.switchEVMWalletNetwork(L,G,U)}}catch{throw new q.SwapKitError("wallet_passkeys_failed_to_switch_network",{chain:G})}return{...q.prepareNetworkSwitch({chain:G,provider:L,toolbox:Q}),address:D}}).with(q.Chain.Solana,async()=>{let{getSolanaToolbox:G}=await import("@swapkit/toolboxes/solana"),Z=await Y.getProvider("solana"),H=(await Z.connect()).publicKey.toString();return{...await G({signer:Z}),address:H,disconnect:async()=>{await Z.disconnect()}}}).otherwise((G)=>{throw new q.SwapKitError("wallet_passkeys_chain_not_supported",{chain:G})})}var M=V({connect:({addChain:Y,walletType:R,supportedChains:G})=>async function($,H){let J=H||await P();if(!J)throw new q.SwapKitError("wallet_passkeys_instance_missing");let j=q.filterSupportedChains({chains:$,supportedChains:G,walletType:R});return await Promise.all(j.map(async(L)=>{try{let _=await T({chain:L,wallet:J}),{address:D,...Q}=_;Y({...Q,address:D,chain:L,disconnect:J.disconnect,walletType:q.WalletOption.PASSKEYS})}catch(_){throw console.error(`Failed to connect ${L} wallet:`,_),_}})),!0},name:"connectPasskeys",supportedChains:[...q.EVMChains,q.Chain.Bitcoin,q.Chain.Solana],walletType:q.WalletOption.PASSKEYS}),S=A(M);
2
2
 
3
- //# debugId=4DFD562C504F7A3964756E2164756E21
3
+ //# debugId=B5ECCD6777821E3E64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/passkeys/index.ts"],
4
4
  "sourcesContent": [
5
- "import type { Wallet } from \"@passkeys/core\";\nimport {\n Chain,\n EVMChains,\n filterSupportedChains,\n prepareNetworkSwitch,\n SKConfig,\n SwapKitError,\n switchEVMWalletNetwork,\n WalletOption,\n} from \"@swapkit/helpers\";\nimport type { SolanaProvider } from \"@swapkit/toolboxes/solana\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport {\n AddressPurpose,\n BitcoinNetworkType,\n type GetAddressOptions,\n type GetAddressResponse,\n getAddress,\n type SignTransactionOptions,\n signTransaction as satsSignTransaction,\n} from \"sats-connect\";\nimport { match } from \"ts-pattern\";\n\nasync function getPasskeyWallet() {\n const appId = SKConfig.get(\"apiKeys\").passkeys;\n const { createWallet } = await import(\"@passkeys/core\");\n\n return createWallet({\n appId: appId.length > 0 ? appId : undefined,\n providers: { bitcoin: true, ethereum: true, solana: true },\n });\n}\n\nfunction getWalletMethods({ wallet, chain: paramChain }: { wallet: Wallet; chain: Chain }) {\n return match(paramChain)\n .with(Chain.Bitcoin, async (chain) => {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const provider = await wallet.getProvider(\"bitcoin\");\n\n if (!provider) {\n throw new SwapKitError(\"wallet_passkeys_not_found\");\n }\n\n let address = \"\";\n\n const getProvider = () => Promise.resolve(provider);\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n onCancel: () => {\n throw new SwapKitError(\"wallet_passkeys_request_canceled\");\n },\n onFinish: (response: GetAddressResponse) => {\n if (!response.addresses[0]) throw new SwapKitError(\"wallet_passkeys_no_address\");\n address = response.addresses[0].address;\n },\n payload: {\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n purposes: [AddressPurpose.Payment],\n },\n };\n\n // TODO: Towan - probably not needed ?\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 SwapKitError(\"wallet_passkeys_signature_canceled\");\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n payload: {\n broadcast: false,\n inputsToSign: [{ address: address, signingIndexes: psbt.txInputs.map((_, index) => 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 SwapKitError(\"wallet_passkeys_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = { getAddress: () => Promise.resolve(address), signTransaction };\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n })\n .with(...EVMChains, async (chain) => {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const walletProvider = await wallet.getProvider(\"ethereum\");\n if (!walletProvider) {\n throw new SwapKitError(\"wallet_passkeys_not_found\");\n }\n\n const jsonRpcProvider = await getProvider(chain);\n const browserProvider = new BrowserProvider(walletProvider, \"any\");\n\n await browserProvider.send(\"eth_requestAccounts\", []);\n\n const signer = await browserProvider.getSigner();\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(browserProvider, chain, networkParams);\n }\n } catch {\n throw new SwapKitError(\"wallet_passkeys_failed_to_switch_network\", { chain });\n }\n\n return { ...prepareNetworkSwitch({ chain, provider: browserProvider, toolbox }), address };\n })\n .with(Chain.Solana, async () => {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const provider = (await wallet.getProvider(\"solana\")) as any as SolanaProvider;\n const providerConnection = await provider.connect();\n const address = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox({ signer: provider });\n\n const disconnect = async () => {\n await provider.disconnect();\n };\n\n return { ...toolbox, address, disconnect };\n })\n .otherwise((chain) => {\n throw new SwapKitError(\"wallet_passkeys_chain_not_supported\", { chain });\n });\n}\n\nexport const passkeysWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectPasskeys(chains: Chain[], paramWallet?: Wallet) {\n const wallet = paramWallet || (await getPasskeyWallet());\n\n if (!wallet) throw new SwapKitError(\"wallet_passkeys_instance_missing\");\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n try {\n const walletData = await getWalletMethods({ chain, wallet });\n\n const { address, ...walletMethods } = walletData;\n\n addChain({\n ...walletMethods,\n address,\n chain,\n disconnect: wallet.disconnect,\n walletType: WalletOption.PASSKEYS,\n });\n } catch (error) {\n console.error(`Failed to connect ${chain} wallet:`, error);\n throw error;\n }\n }),\n );\n\n return true;\n },\n name: \"connectPasskeys\",\n supportedChains: [...EVMChains, Chain.Bitcoin, Chain.Solana],\n walletType: WalletOption.PASSKEYS,\n});\n\nexport const PASSKEYS_SUPPORTED_CHAINS = getWalletSupportedChains(passkeysWallet);\nexport * from \"@passkeys/core\";\nexport * from \"@passkeys/react\";\n"
5
+ "import type { Wallet } from \"@passkeys/core\";\nimport { base64 } from \"@scure/base\";\nimport {\n Chain,\n EVMChains,\n filterSupportedChains,\n prepareNetworkSwitch,\n SKConfig,\n SwapKitError,\n switchEVMWalletNetwork,\n WalletOption,\n} from \"@swapkit/helpers\";\nimport type { SolanaProvider } from \"@swapkit/toolboxes/solana\";\nimport { Transaction } from \"@swapkit/utxo-signer\";\nimport { createWallet, getWalletSupportedChains } from \"../core\";\nimport {\n AddressPurpose,\n BitcoinNetworkType,\n type GetAddressOptions,\n type GetAddressResponse,\n getAddress,\n type SignTransactionOptions,\n signTransaction as satsSignTransaction,\n} from \"sats-connect\";\nimport { match } from \"ts-pattern\";\n\nasync function getPasskeyWallet() {\n const appId = SKConfig.get(\"apiKeys\").passkeys;\n const { createWallet } = await import(\"@passkeys/core\");\n\n return createWallet({\n appId: appId.length > 0 ? appId : undefined,\n providers: { bitcoin: true, ethereum: true, solana: true },\n });\n}\n\nfunction getWalletMethods({ wallet, chain: paramChain }: { wallet: Wallet; chain: Chain }) {\n return match(paramChain)\n .with(Chain.Bitcoin, async (chain) => {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const provider = await wallet.getProvider(\"bitcoin\");\n\n if (!provider) {\n throw new SwapKitError(\"wallet_passkeys_not_found\");\n }\n\n let address = \"\";\n\n const getProvider = () => Promise.resolve(provider);\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n onCancel: () => {\n throw new SwapKitError(\"wallet_passkeys_request_canceled\");\n },\n onFinish: (response: GetAddressResponse) => {\n if (!response.addresses[0]) throw new SwapKitError(\"wallet_passkeys_no_address\");\n address = response.addresses[0].address;\n },\n payload: {\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n purposes: [AddressPurpose.Payment],\n },\n };\n\n // TODO: Towan - probably not needed ?\n await getAddress(getAddressOptions);\n\n async function signTransaction(tx: InstanceType<typeof Transaction>) {\n let signedTx: InstanceType<typeof Transaction> | undefined;\n const psbtBytes = tx.toPSBT(0);\n const psbtBase64Str = base64.encode(psbtBytes);\n const inputCount = tx.inputsLength;\n\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n onCancel: () => {\n throw new SwapKitError(\"wallet_passkeys_signature_canceled\");\n },\n onFinish: (response) => {\n signedTx = Transaction.fromPSBT(base64.decode(response.psbtBase64));\n },\n payload: {\n broadcast: false,\n inputsToSign: [{ address: address, signingIndexes: Array.from({ length: inputCount }, (_, i) => i) }],\n message: \"Sign transaction\",\n network: { type: BitcoinNetworkType.Mainnet },\n psbtBase64: psbtBase64Str,\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedTx) throw new SwapKitError(\"wallet_passkeys_sign_transaction_error\");\n return signedTx;\n }\n\n const signer = { getAddress: () => Promise.resolve(address), signTransaction };\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n })\n .with(...EVMChains, async (chain) => {\n const { getProvider, getEvmToolboxAsync } = await import(\"@swapkit/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const walletProvider = await wallet.getProvider(\"ethereum\");\n if (!walletProvider) {\n throw new SwapKitError(\"wallet_passkeys_not_found\");\n }\n\n const jsonRpcProvider = await getProvider(chain);\n const browserProvider = new BrowserProvider(walletProvider, \"any\");\n\n await browserProvider.send(\"eth_requestAccounts\", []);\n\n const signer = await browserProvider.getSigner();\n const address = await signer.getAddress();\n const toolbox = await getEvmToolboxAsync(chain, { provider: jsonRpcProvider, signer });\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(browserProvider, chain, networkParams);\n }\n } catch {\n throw new SwapKitError(\"wallet_passkeys_failed_to_switch_network\", { chain });\n }\n\n return { ...prepareNetworkSwitch({ chain, provider: browserProvider, toolbox }), address };\n })\n .with(Chain.Solana, async () => {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const provider = (await wallet.getProvider(\"solana\")) as any as SolanaProvider;\n const providerConnection = await provider.connect();\n const address = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox({ signer: provider });\n\n const disconnect = async () => {\n await provider.disconnect();\n };\n\n return { ...toolbox, address, disconnect };\n })\n .otherwise((chain) => {\n throw new SwapKitError(\"wallet_passkeys_chain_not_supported\", { chain });\n });\n}\n\nexport const passkeysWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectPasskeys(chains: Chain[], paramWallet?: Wallet) {\n const wallet = paramWallet || (await getPasskeyWallet());\n\n if (!wallet) throw new SwapKitError(\"wallet_passkeys_instance_missing\");\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n try {\n const walletData = await getWalletMethods({ chain, wallet });\n\n const { address, ...walletMethods } = walletData;\n\n addChain({\n ...walletMethods,\n address,\n chain,\n disconnect: wallet.disconnect,\n walletType: WalletOption.PASSKEYS,\n });\n } catch (error) {\n console.error(`Failed to connect ${chain} wallet:`, error);\n throw error;\n }\n }),\n );\n\n return true;\n },\n name: \"connectPasskeys\",\n supportedChains: [...EVMChains, Chain.Bitcoin, Chain.Solana],\n walletType: WalletOption.PASSKEYS,\n});\n\nexport const PASSKEYS_SUPPORTED_CHAINS = getWalletSupportedChains(passkeysWallet);\nexport * from \"@passkeys/core\";\nexport * from \"@passkeys/react\";\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "4DFD562C504F7A3964756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "B5ECCD6777821E3E64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- import{G as R,H as U}from"../../chunk-78m70510.js";import{Chain as j,EVMChains as B,filterSupportedChains as M,prepareNetworkSwitch as u,SKConfig as O,SwapKitError as J,switchEVMWalletNetwork as m,WalletOption as f}from"@swapkit/helpers";import{createWallet as y,getWalletSupportedChains as K}from"@swapkit/wallet-core";import{Psbt as T}from"bitcoinjs-lib";import{AddressPurpose as W,BitcoinNetworkType as A,getAddress as x,signTransaction as E}from"sats-connect";import{match as k}from"ts-pattern";export*from"@passkeys/core";export*from"@passkeys/react";async function S(){let L=O.get("apiKeys").passkeys,{createWallet:_}=await import("@passkeys/core");return _({appId:L.length>0?L:void 0,providers:{bitcoin:!0,ethereum:!0,solana:!0}})}function C({wallet:L,chain:_}){return k(_).with(j.Bitcoin,async(q)=>{let{getUtxoToolbox:Q}=await import("@swapkit/toolboxes/utxo"),Y=await L.getProvider("bitcoin");if(!Y)throw new J("wallet_passkeys_not_found");let z="",F=()=>Promise.resolve(Y),Z={getProvider:F,onCancel:()=>{throw new J("wallet_passkeys_request_canceled")},onFinish:(H)=>{if(!H.addresses[0])throw new J("wallet_passkeys_no_address");z=H.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:A.Mainnet},purposes:[W.Payment]}};await x(Z);async function G(H){let $,V={getProvider:F,onCancel:()=>{throw new J("wallet_passkeys_signature_canceled")},onFinish:(I)=>{$=T.fromBase64(I.psbtBase64)},payload:{broadcast:!1,inputsToSign:[{address:z,signingIndexes:H.txInputs.map((I,N)=>N)}],message:"Sign transaction",network:{type:A.Mainnet},psbtBase64:H.toBase64()}};if(await E(V),!$)throw new J("wallet_passkeys_sign_transaction_error");return $}return{...await Q(q,{signer:{getAddress:()=>Promise.resolve(z),signTransaction:G}}),address:z}}).with(...B,async(q)=>{let{getProvider:Q,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:z}=await import("ethers"),F=await L.getProvider("ethereum");if(!F)throw new J("wallet_passkeys_not_found");let Z=await Q(q),G=new z(F,"any");await G.send("eth_requestAccounts",[]);let X=await G.getSigner(),D=await X.getAddress(),H=await Y(q,{provider:Z,signer:X});try{if(q!==j.Ethereum){let $=H.getNetworkParams();await m(G,q,$)}}catch{throw new J("wallet_passkeys_failed_to_switch_network",{chain:q})}return{...u({chain:q,provider:G,toolbox:H}),address:D}}).with(j.Solana,async()=>{let{getSolanaToolbox:q}=await import("@swapkit/toolboxes/solana"),Q=await L.getProvider("solana"),z=(await Q.connect()).publicKey.toString();return{...await q({signer:Q}),address:z,disconnect:async()=>{await Q.disconnect()}}}).otherwise((q)=>{throw new J("wallet_passkeys_chain_not_supported",{chain:q})})}var v=y({connect:({addChain:L,walletType:_,supportedChains:q})=>async function(Y,z){let F=z||await S();if(!F)throw new J("wallet_passkeys_instance_missing");let Z=M({chains:Y,supportedChains:q,walletType:_});return await Promise.all(Z.map(async(G)=>{try{let X=await C({chain:G,wallet:F}),{address:D,...H}=X;L({...H,address:D,chain:G,disconnect:F.disconnect,walletType:f.PASSKEYS})}catch(X){throw console.error(`Failed to connect ${G} wallet:`,X),X}})),!0},name:"connectPasskeys",supportedChains:[...B,j.Bitcoin,j.Solana],walletType:f.PASSKEYS}),h=K(v);export{v as passkeysWallet,h as PASSKEYS_SUPPORTED_CHAINS};
1
+ import{G as A,H as N}from"../../chunk-qv7snmdv.js";import{I as j}from"../../chunk-5jj4jvy9.js";import{base64 as I}from"@scure/base";import{Chain as R,EVMChains as B,filterSupportedChains as W,prepareNetworkSwitch as y,SKConfig as E,SwapKitError as J,switchEVMWalletNetwork as k,WalletOption as f}from"@swapkit/helpers";import{Transaction as P}from"@swapkit/utxo-signer";import{AddressPurpose as T,BitcoinNetworkType as V,getAddress as S,signTransaction as v}from"sats-connect";import{match as x}from"ts-pattern";export*from"@passkeys/core";export*from"@passkeys/react";async function C(){let L=E.get("apiKeys").passkeys,{createWallet:_}=await import("@passkeys/core");return _({appId:L.length>0?L:void 0,providers:{bitcoin:!0,ethereum:!0,solana:!0}})}function b({wallet:L,chain:_}){return x(_).with(R.Bitcoin,async(q)=>{let{getUtxoToolbox:Q}=await import("@swapkit/toolboxes/utxo"),Y=await L.getProvider("bitcoin");if(!Y)throw new J("wallet_passkeys_not_found");let z="",F=()=>Promise.resolve(Y),Z={getProvider:F,onCancel:()=>{throw new J("wallet_passkeys_request_canceled")},onFinish:(H)=>{if(!H.addresses[0])throw new J("wallet_passkeys_no_address");z=H.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:V.Mainnet},purposes:[T.Payment]}};await S(Z);async function G(H){let $,M=H.toPSBT(0),O=I.encode(M),m=H.inputsLength,u={getProvider:F,onCancel:()=>{throw new J("wallet_passkeys_signature_canceled")},onFinish:(D)=>{$=P.fromPSBT(I.decode(D.psbtBase64))},payload:{broadcast:!1,inputsToSign:[{address:z,signingIndexes:Array.from({length:m},(D,K)=>K)}],message:"Sign transaction",network:{type:V.Mainnet},psbtBase64:O}};if(await v(u),!$)throw new J("wallet_passkeys_sign_transaction_error");return $}return{...await Q(q,{signer:{getAddress:()=>Promise.resolve(z),signTransaction:G}}),address:z}}).with(...B,async(q)=>{let{getProvider:Q,getEvmToolboxAsync:Y}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:z}=await import("ethers"),F=await L.getProvider("ethereum");if(!F)throw new J("wallet_passkeys_not_found");let Z=await Q(q),G=new z(F,"any");await G.send("eth_requestAccounts",[]);let X=await G.getSigner(),U=await X.getAddress(),H=await Y(q,{provider:Z,signer:X});try{if(q!==R.Ethereum){let $=H.getNetworkParams();await k(G,q,$)}}catch{throw new J("wallet_passkeys_failed_to_switch_network",{chain:q})}return{...y({chain:q,provider:G,toolbox:H}),address:U}}).with(R.Solana,async()=>{let{getSolanaToolbox:q}=await import("@swapkit/toolboxes/solana"),Q=await L.getProvider("solana"),z=(await Q.connect()).publicKey.toString();return{...await q({signer:Q}),address:z,disconnect:async()=>{await Q.disconnect()}}}).otherwise((q)=>{throw new J("wallet_passkeys_chain_not_supported",{chain:q})})}var g=A({connect:({addChain:L,walletType:_,supportedChains:q})=>async function(Y,z){let F=z||await C();if(!F)throw new J("wallet_passkeys_instance_missing");let Z=W({chains:Y,supportedChains:q,walletType:_});return await Promise.all(Z.map(async(G)=>{try{let X=await b({chain:G,wallet:F}),{address:U,...H}=X;L({...H,address:U,chain:G,disconnect:F.disconnect,walletType:f.PASSKEYS})}catch(X){throw console.error(`Failed to connect ${G} wallet:`,X),X}})),!0},name:"connectPasskeys",supportedChains:[...B,R.Bitcoin,R.Solana],walletType:f.PASSKEYS}),n=N(g);export{g as passkeysWallet,n as PASSKEYS_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=A323216064AE7C3C64756E2164756E21
3
+ //# debugId=65A5DC3CD890F01464756E2164756E21
4
4
  //# sourceMappingURL=index.js.map