@swapkit/wallets 3.0.0-beta.2 → 3.0.0-beta.20

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 (92) hide show
  1. package/dist/{chunk-p1kdg37m.js → chunk-38ztynv0.js} +1 -1
  2. package/dist/{chunk-p1kdg37m.js.map → chunk-38ztynv0.js.map} +1 -1
  3. package/dist/chunk-4ef2xs46.js +3 -0
  4. package/dist/chunk-4ef2xs46.js.map +10 -0
  5. package/dist/chunk-qgv1myym.js +3 -0
  6. package/dist/chunk-qgv1myym.js.map +10 -0
  7. package/dist/chunk-s6xqbsy0.js +4 -0
  8. package/dist/{chunk-czhtd6cy.js.map → chunk-s6xqbsy0.js.map} +3 -3
  9. package/dist/{chunk-qadd75nn.js → chunk-sygzrjje.js} +2 -2
  10. package/dist/{chunk-qadd75nn.js.map → chunk-sygzrjje.js.map} +3 -3
  11. package/dist/chunk-w07sv0jv.js +3 -0
  12. package/dist/chunk-w07sv0jv.js.map +10 -0
  13. package/dist/chunk-y0g3prs9.js +3 -0
  14. package/dist/chunk-y0g3prs9.js.map +10 -0
  15. package/dist/src/bitget/index.cjs +2 -2
  16. package/dist/src/bitget/index.cjs.map +3 -3
  17. package/dist/src/bitget/index.js +2 -2
  18. package/dist/src/bitget/index.js.map +3 -3
  19. package/dist/src/coinbase/index.js +1 -1
  20. package/dist/src/ctrl/index.cjs +2 -2
  21. package/dist/src/ctrl/index.cjs.map +3 -3
  22. package/dist/src/ctrl/index.js +2 -2
  23. package/dist/src/ctrl/index.js.map +3 -3
  24. package/dist/src/evm-extensions/index.js +1 -1
  25. package/dist/src/exodus/index.cjs +2 -2
  26. package/dist/src/exodus/index.cjs.map +3 -3
  27. package/dist/src/exodus/index.js +2 -2
  28. package/dist/src/exodus/index.js.map +3 -3
  29. package/dist/src/index.js +1 -1
  30. package/dist/src/keepkey/index.cjs +2 -2
  31. package/dist/src/keepkey/index.cjs.map +4 -4
  32. package/dist/src/keepkey/index.js +2 -2
  33. package/dist/src/keepkey/index.js.map +4 -4
  34. package/dist/src/keepkey-bex/index.js +1 -1
  35. package/dist/src/keplr/index.js +1 -1
  36. package/dist/src/keystore/index.cjs +2 -2
  37. package/dist/src/keystore/index.cjs.map +3 -3
  38. package/dist/src/keystore/index.js +2 -2
  39. package/dist/src/keystore/index.js.map +3 -3
  40. package/dist/src/ledger/index.cjs +3 -3
  41. package/dist/src/ledger/index.cjs.map +12 -11
  42. package/dist/src/ledger/index.js +3 -3
  43. package/dist/src/ledger/index.js.map +12 -11
  44. package/dist/src/okx/index.cjs +2 -2
  45. package/dist/src/okx/index.cjs.map +3 -3
  46. package/dist/src/okx/index.js +2 -2
  47. package/dist/src/okx/index.js.map +3 -3
  48. package/dist/src/onekey/index.cjs +2 -2
  49. package/dist/src/onekey/index.cjs.map +3 -3
  50. package/dist/src/onekey/index.js +2 -2
  51. package/dist/src/onekey/index.js.map +3 -3
  52. package/dist/src/phantom/index.js +1 -1
  53. package/dist/src/polkadotjs/index.js +1 -1
  54. package/dist/src/radix/index.js +1 -1
  55. package/dist/src/talisman/index.js +1 -1
  56. package/dist/src/trezor/index.cjs +2 -2
  57. package/dist/src/trezor/index.cjs.map +3 -3
  58. package/dist/src/trezor/index.js +2 -2
  59. package/dist/src/trezor/index.js.map +3 -3
  60. package/dist/src/walletconnect/index.cjs +2 -2
  61. package/dist/src/walletconnect/index.cjs.map +3 -3
  62. package/dist/src/walletconnect/index.js +2 -2
  63. package/dist/src/walletconnect/index.js.map +3 -3
  64. package/package.json +22 -22
  65. package/src/bitget/helpers.ts +1 -2
  66. package/src/cosmostation/index.ts +141 -0
  67. package/src/ctrl/walletHelpers.ts +82 -70
  68. package/src/exodus/index.ts +1 -2
  69. package/src/keepkey/chains/mayachain.ts +1 -1
  70. package/src/keepkey/chains/thorchain.ts +1 -1
  71. package/src/keystore/helpers.ts +2 -4
  72. package/src/ledger/clients/cosmos.ts +2 -2
  73. package/src/ledger/clients/evm.ts +1 -1
  74. package/src/ledger/clients/utxo.ts +3 -5
  75. package/src/ledger/clients/xrp.ts +66 -0
  76. package/src/ledger/helpers/getLedgerAddress.ts +12 -3
  77. package/src/ledger/helpers/getLedgerClient.ts +4 -0
  78. package/src/ledger/helpers/getLedgerTransport.ts +4 -2
  79. package/src/ledger/index.ts +11 -1
  80. package/src/ledger/interfaces/CosmosLedgerInterface.ts +1 -1
  81. package/src/okx/helpers.ts +2 -1
  82. package/src/onekey/index.ts +1 -1
  83. package/src/trezor/evmSigner.ts +3 -3
  84. package/src/trezor/index.ts +14 -4
  85. package/src/types.ts +3 -0
  86. package/src/utils.ts +4 -0
  87. package/src/walletconnect/index.ts +2 -2
  88. package/dist/chunk-bhfpfqc3.js +0 -3
  89. package/dist/chunk-bhfpfqc3.js.map +0 -10
  90. package/dist/chunk-czhtd6cy.js +0 -4
  91. package/dist/chunk-q81hzyra.js +0 -3
  92. package/dist/chunk-q81hzyra.js.map +0 -10
@@ -2,13 +2,13 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/walletconnect/index.ts", "../src/walletconnect/constants.ts", "../src/walletconnect/evmSigner.ts", "../src/walletconnect/helpers.ts", "../src/walletconnect/namespaces.ts"],
4
4
  "sourcesContent": [
5
- "import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams, createThorchainToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { WalletConnectModalSign } from \"@walletconnect/modal-sign-html\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { session, accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts);\n const toolbox = await getToolbox({ session, address, chain, walletconnect });\n\n addChain({\n ...toolbox,\n address,\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n session,\n}: {\n walletconnect: Walletconnect;\n session: SessionTypes.Struct;\n chain: T;\n address: string;\n}) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const { encodePubkey, makeAuthInfoBytes } = await import(\"@cosmjs/proto-signing\");\n const { makeSignDoc } = await import(\"@cosmjs/amino\");\n const {\n getCosmosToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n\n async function getAccount(accountAddress: string) {\n const cosmosToolbox = toolbox;\n const account = await (\n cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>\n ).getAccount(accountAddress);\n\n if (chain !== Chain.THORChain) {\n return account;\n }\n\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: GenericTransferParams | ThorchainDepositParams) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: GenericTransferParams) => thorchainTransfer(params),\n deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),\n getAccount,\n };\n }\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModalSign | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { WalletConnectModalSign } = await import(\"@walletconnect/modal-sign-html\");\n\n const client = new WalletConnectModalSign({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.getSession();\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const session = await client.connect({ requiredNamespaces });\n\n const accounts = Object.values(session.namespaces).flatMap(\n (namespace: any) => namespace.accounts,\n );\n\n const disconnect = async () => {\n await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n });\n };\n\n return { session, accounts, client, disconnect };\n } catch (e) {\n console.error(e);\n } finally {\n if (modal) {\n // @ts-expect-error wrong typing\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
5
+ "import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams, createThorchainToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { WalletConnectModalSign } from \"@walletconnect/modal-sign-html\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { session, accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts);\n const toolbox = await getToolbox({ session, address, chain, walletconnect });\n\n addChain({\n ...toolbox,\n address,\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n session,\n}: {\n walletconnect: Walletconnect;\n session: SessionTypes.Struct;\n chain: T;\n address: string;\n}) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const { encodePubkey, makeAuthInfoBytes } = (await import(\"@cosmjs/proto-signing\")).default;\n const { makeSignDoc } = (await import(\"@cosmjs/amino\")).default;\n const {\n getCosmosToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n\n async function getAccount(accountAddress: string) {\n const cosmosToolbox = toolbox;\n const account = await (\n cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>\n ).getAccount(accountAddress);\n\n if (chain !== Chain.THORChain) {\n return account;\n }\n\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: GenericTransferParams | ThorchainDepositParams) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: GenericTransferParams) => thorchainTransfer(params),\n deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),\n getAccount,\n };\n }\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModalSign | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { WalletConnectModalSign } = await import(\"@walletconnect/modal-sign-html\");\n\n const client = new WalletConnectModalSign({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.getSession();\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const session = await client.connect({ requiredNamespaces });\n\n const accounts = Object.values(session.namespaces).flatMap(\n (namespace: any) => namespace.accounts,\n );\n\n const disconnect = async () => {\n await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n });\n };\n\n return { session, accounts, client, disconnect };\n } catch (e) {\n console.error(e);\n } finally {\n if (modal) {\n // @ts-expect-error wrong typing\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
6
6
  "import type { ClientMetadata } from \"./types\";\n\nexport const DEFAULT_RELAY_URL = \"wss://relay.walletconnect.com\";\n\nexport const ETHEREUM_MAINNET_ID = \"eip155:1\";\nexport const BSC_MAINNET_ID = \"eip155:56\";\nexport const AVALANCHE_MAINNET_ID = \"eip155:43114\";\nexport const THORCHAIN_MAINNET_ID = \"cosmos:thorchain\";\nexport const COSMOS_HUB_MAINNET_ID = \"cosmos:cosmoshub-4\";\nexport const KUJIRA_MAINNET_ID = \"cosmos:kaiyo-1\";\nexport const MAYACHAIN_MAINNET_ID = \"cosmos:mayachain-mainnet-v1\";\nexport const ARBITRUM_ONE_MAINNET_ID = \"eip155:42161\";\nexport const OPTIMISM_MAINNET_ID = \"eip155:10\";\nexport const POLYGON_MAINNET_ID = \"eip155:137\";\nexport const BASE_MAINNET_ID = \"eip155:8453\";\n\nexport const DEFAULT_LOGGER = \"debug\";\n\nexport const DEFAULT_APP_METADATA: ClientMetadata = {\n name: \"THORSwap\",\n description: \"THORSwap multi-chain dex aggregator powered by THORChain\",\n url: \"https://app.thorswap.finance/\",\n icons: [\"https://static.thorswap.net/logo.png\"],\n};\n\n/**\n * EIP155\n */\nexport enum DEFAULT_EIP155_METHODS {\n ETH_SEND_TRANSACTION = \"eth_sendTransaction\",\n // not supported by most WC wallets\n // ETH_SIGN_TRANSACTION = 'eth_signTransaction',\n ETH_SIGN = \"eth_sign\",\n PERSONAL_SIGN = \"personal_sign\",\n ETH_SIGN_TYPED_DATA = \"eth_signTypedData\",\n}\n\nexport enum DEFAULT_EIP_155_EVENTS {\n ETH_CHAIN_CHANGED = \"chainChanged\",\n ETH_ACCOUNTS_CHANGED = \"accountsChanged\",\n}\n\n/**\n * COSMOS\n */\nexport enum DEFAULT_COSMOS_METHODS {\n COSMOS_SIGN_DIRECT = \"cosmos_signDirect\",\n COSMOS_SIGN_AMINO = \"cosmos_signAmino\",\n COSMOS_GET_ACCOUNTS = \"cosmos_getAccounts\",\n}\n\nexport enum DEFAULT_COSMOS_EVENTS {}\n\n/**\n * SOLANA\n */\nexport enum DEFAULT_SOLANA_METHODS {\n SOL_SIGN_TRANSACTION = \"solana_signTransaction\",\n SOL_SIGN_MESSAGE = \"solana_signMessage\",\n}\n\nexport enum DEFAULT_SOLANA_EVENTS {}\n\n/**\n * POLKADOT\n */\nexport enum DEFAULT_POLKADOT_METHODS {\n POLKADOT_SIGN_TRANSACTION = \"polkadot_signTransaction\",\n POLKADOT_SIGN_MESSAGE = \"polkadot_signMessage\",\n}\n\nexport enum DEFAULT_POLKADOT_EVENTS {}\n\n/**\n * NEAR\n */\nexport enum DEFAULT_NEAR_METHODS {\n NEAR_SIGN_IN = \"near_signIn\",\n NEAR_SIGN_OUT = \"near_signOut\",\n NEAR_GET_ACCOUNTS = \"near_getAccounts\",\n NEAR_SIGN_AND_SEND_TRANSACTION = \"near_signAndSendTransaction\",\n NEAR_SIGN_AND_SEND_TRANSACTIONS = \"near_signAndSendTransactions\",\n}\n\nexport enum DEFAULT_NEAR_EVENTS {}\n",
7
7
  "import { type EVMChain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { DEFAULT_EIP155_METHODS } from \"./constants\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport type { Walletconnect } from \"./index\";\n\ninterface WalletconnectEVMSignerParams {\n chain: EVMChain;\n walletconnect: Walletconnect;\n provider: Provider | JsonRpcProvider;\n}\n\nclass WalletconnectSigner extends AbstractSigner {\n address: string;\n\n private chain: EVMChain;\n private walletconnect: Walletconnect;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, provider, walletconnect }: WalletconnectEVMSignerParams) {\n super(provider);\n this.chain = chain;\n this.walletconnect = walletconnect;\n this.provider = provider;\n this.address = \"\";\n }\n\n // biome-ignore lint/suspicious/useAwait: fulfil implementation type\n getAddress = async () => {\n if (!this.walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n if (!this.address) {\n this.address = getAddressByChain(this.chain, this.walletconnect.accounts);\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n // this is probably broken\n const txHash = (await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SIGN,\n params: [message],\n },\n })) as string;\n\n return txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`;\n };\n\n signTransaction = () => {\n throw new Error(\"Not implemented: signTransaction\");\n\n // const baseTx = {\n // from,\n // to,\n // value: BigNumber.from(value || 0).toHexString(),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TRANSACTION,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n // ANCHOR (@Towan) - Implement in future\n signTypedData = () => {\n throw new Error(\"Not implemented: signTypedData\");\n\n // const { toHexString } = await import('@swapkit/toolboxes/evm');\n\n // const baseTx = {\n // from,\n // to,\n // value: toHexString(value || 0n),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TYPED_DATA,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n sendTransaction = async ({ from, to, value, data }: TransactionRequest) => {\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const baseTx = {\n from,\n to,\n value: toHexString(BigInt(value || 0)),\n data,\n };\n const response = await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SEND_TRANSACTION,\n params: [baseTx],\n },\n });\n\n return response as TransactionResponse;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.WALLETCONNECT, chain: this.chain },\n });\n }\n\n return new WalletconnectSigner({\n chain: this.chain,\n walletconnect: this.walletconnect,\n provider,\n });\n };\n}\nexport const getEVMSigner = async ({\n chain,\n walletconnect,\n provider,\n}: WalletconnectEVMSignerParams) => new WalletconnectSigner({ chain, walletconnect, provider });\n",
8
8
  "import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n AVALANCHE_MAINNET_ID,\n BASE_MAINNET_ID,\n BSC_MAINNET_ID,\n COSMOS_HUB_MAINNET_ID,\n ETHEREUM_MAINNET_ID,\n KUJIRA_MAINNET_ID,\n MAYACHAIN_MAINNET_ID,\n OPTIMISM_MAINNET_ID,\n POLYGON_MAINNET_ID,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\n\nexport const getAddressByChain = (\n chain: EVMChain | Chain.THORChain | Chain.Maya | Chain.Kujira | Chain.Cosmos,\n accounts: string[],\n) => {\n const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || \"\";\n const address = account?.split(\":\")?.[2];\n\n return address || \"\";\n};\n\nexport const chainToChainId = (chain: Chain) => {\n switch (chain) {\n case Chain.Avalanche:\n return AVALANCHE_MAINNET_ID;\n case Chain.Base:\n return BASE_MAINNET_ID;\n case Chain.BinanceSmartChain:\n return BSC_MAINNET_ID;\n case Chain.Ethereum:\n return ETHEREUM_MAINNET_ID;\n case Chain.THORChain:\n return THORCHAIN_MAINNET_ID;\n case Chain.Arbitrum:\n return ARBITRUM_ONE_MAINNET_ID;\n case Chain.Optimism:\n return OPTIMISM_MAINNET_ID;\n case Chain.Polygon:\n return POLYGON_MAINNET_ID;\n case Chain.Maya:\n return MAYACHAIN_MAINNET_ID;\n case Chain.Cosmos:\n return COSMOS_HUB_MAINNET_ID;\n case Chain.Kujira:\n return KUJIRA_MAINNET_ID;\n default:\n return \"\";\n }\n};\n",
9
9
  "import type { ProposalTypes } from \"@walletconnect/types\";\n\nimport { SwapKitError } from \"@swapkit/helpers\";\nimport {\n DEFAULT_COSMOS_METHODS,\n DEFAULT_EIP155_METHODS,\n DEFAULT_EIP_155_EVENTS,\n DEFAULT_NEAR_EVENTS,\n DEFAULT_NEAR_METHODS,\n DEFAULT_POLKADOT_EVENTS,\n DEFAULT_POLKADOT_METHODS,\n DEFAULT_SOLANA_EVENTS,\n DEFAULT_SOLANA_METHODS,\n} from \"./constants\";\n\nexport const getNamespacesFromChains = (chains: string[]) => {\n const supportedNamespaces: string[] = [];\n for (const chainId of chains) {\n const [namespace] = chainId.split(\":\");\n if (namespace && !supportedNamespaces.includes(namespace)) {\n supportedNamespaces.push(namespace);\n }\n }\n\n return supportedNamespaces;\n};\n\nexport const getSupportedMethodsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP155_METHODS);\n case \"cosmos\":\n return Object.values(DEFAULT_COSMOS_METHODS);\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_METHODS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_METHODS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_METHODS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getSupportedEventsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP_155_EVENTS);\n case \"cosmos\":\n return [];\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_EVENTS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_EVENTS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_EVENTS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getRequiredNamespaces = (chains: string[]): ProposalTypes.RequiredNamespaces => {\n const selectedNamespaces = getNamespacesFromChains(chains);\n\n return Object.fromEntries(\n selectedNamespaces.map((namespace) => [\n namespace,\n {\n methods: getSupportedMethodsByNamespace(namespace),\n chains: chains.filter((chain) => chain.startsWith(namespace)),\n events: getSupportedEventsByNamespace(namespace) as any[],\n },\n ]),\n );\n};\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "CF101C8AB8BC593A64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "28A6E31B556131D864756E2164756E21",
13
13
  "names": []
14
14
  }
package/package.json CHANGED
@@ -5,42 +5,42 @@
5
5
  "dist/"
6
6
  ],
7
7
  "dependencies": {
8
- "@coinbase/wallet-sdk": "4.3.2",
8
+ "@coinbase/wallet-sdk": "4.3.4",
9
9
  "@cosmjs/amino": "0.33.1",
10
10
  "@cosmjs/crypto": "0.33.1",
11
11
  "@cosmjs/proto-signing": "0.33.1",
12
12
  "@keepkey/keepkey-sdk": "0.2.62",
13
- "@keplr-wallet/types": "0.12.219",
14
- "@ledgerhq/devices": "8.4.4",
15
- "@ledgerhq/errors": "6.19.1",
16
- "@ledgerhq/hw-app-btc": "10.8.0",
17
- "@ledgerhq/hw-app-cosmos": "6.32.0",
18
- "@ledgerhq/hw-app-eth": "6.45.0",
19
- "@ledgerhq/hw-transport": "6.31.4",
20
- "@ledgerhq/hw-transport-webusb": "6.29.4",
21
- "@ledgerhq/wallet-api-client": "1.7.3",
13
+ "@keplr-wallet/types": "0.12.238",
14
+ "@ledgerhq/devices": "8.4.6",
15
+ "@ledgerhq/errors": "6.21.0",
16
+ "@ledgerhq/hw-app-btc": "10.9.2",
17
+ "@ledgerhq/hw-app-cosmos": "6.32.2",
18
+ "@ledgerhq/hw-app-eth": "6.45.6",
19
+ "@ledgerhq/hw-app-xrp": "6.31.2",
20
+ "@ledgerhq/hw-transport": "6.31.6",
21
+ "@ledgerhq/hw-transport-webusb": "6.29.6",
22
+ "@ledgerhq/wallet-api-client": "1.9.0",
22
23
  "@passkeys/core": "3.3.7",
23
24
  "@passkeys/react": "2.5.4",
24
25
  "@radixdlt/babylon-gateway-api-sdk": "1.10.1",
25
26
  "@radixdlt/radix-dapp-toolkit": "2.2.1",
26
- "@scure/base": "1.2.4",
27
- "@scure/bip39": "1.5.4",
28
- "@swapkit/helpers": "3.0.0-beta.2",
29
- "@swapkit/toolboxes": "1.0.0-beta.2",
30
- "@trezor/connect-web": "9.5.4",
27
+ "@scure/base": "1.2.6",
28
+ "@scure/bip39": "1.6.0",
29
+ "@solana/web3.js": "1.98.2",
30
+ "@swapkit/helpers": "3.0.0-beta.12",
31
+ "@swapkit/toolboxes": "1.0.0-beta.17",
32
+ "@trezor/connect-web": "9.6.0",
31
33
  "@walletconnect/modal-sign-html": "2.7.0",
32
34
  "bitcoinjs-lib": "6.1.7",
33
35
  "blakejs": "1.2.1",
34
36
  "cosmjs-types": "0.9.0",
35
- "sats-connect": "3.3.0",
36
- "ts-pattern": "5.7.0"
37
- },
38
- "peerDependencies": {
39
- "@solana/web3.js": "1.98.0"
37
+ "ripple-binary-codec": "2.4.0",
38
+ "sats-connect": "3.5.0",
39
+ "ts-pattern": "5.7.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@walletconnect/logger": "2.1.2",
43
- "@walletconnect/types": "2.19.2"
43
+ "@walletconnect/types": "2.21.2"
44
44
  },
45
45
  "exports": {
46
46
  ".": {
@@ -154,5 +154,5 @@
154
154
  "type-check:go": "tsgo"
155
155
  },
156
156
  "type": "module",
157
- "version": "3.0.0-beta.2"
157
+ "version": "3.0.0-beta.20"
158
158
  }
@@ -6,7 +6,7 @@ import {
6
6
  prepareNetworkSwitch,
7
7
  switchEVMWalletNetwork,
8
8
  } from "@swapkit/helpers";
9
- import type { Psbt } from "bitcoinjs-lib";
9
+ import { Psbt } from "bitcoinjs-lib";
10
10
  import type { Eip1193Provider } from "ethers";
11
11
 
12
12
  export async function getWalletMethods(chain: Chain) {
@@ -38,7 +38,6 @@ export async function getWalletMethods(chain: Chain) {
38
38
  }
39
39
  const { unisat: wallet } = bitget;
40
40
 
41
- const { Psbt } = await import("bitcoinjs-lib");
42
41
  const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo");
43
42
  const [address] = await wallet.requestAccounts();
44
43
 
@@ -0,0 +1,141 @@
1
+ import type { Keplr } from "@keplr-wallet/types";
2
+ import {
3
+ Chain,
4
+ ChainId,
5
+ ChainToChainId,
6
+ WalletOption,
7
+ createWallet,
8
+ filterSupportedChains,
9
+ } from "@swapkit/helpers";
10
+
11
+ const cosmostationSupportedChainIds = [ChainId.Cosmos, ChainId.Kujira, ChainId.THORChain] as const;
12
+ const cosmostationSupportedEVMChains = [
13
+ Chain.Ethereum,
14
+ Chain.BinanceSmartChain,
15
+ Chain.Avalanche,
16
+ Chain.Polygon,
17
+ Chain.Arbitrum,
18
+ Chain.Optimism,
19
+ Chain.Base,
20
+ ] as const;
21
+
22
+ declare global {
23
+ interface Window {
24
+ cosmostation?: {
25
+ providers?: {
26
+ keplr?: Keplr;
27
+ };
28
+ };
29
+ }
30
+ }
31
+
32
+ async function connectCosmosChains(chains: Chain[], addChain: any, keplrProvider: Keplr) {
33
+ await Promise.all(
34
+ chains.map(async (chain) => {
35
+ const chainId = ChainToChainId[chain] as (typeof cosmostationSupportedChainIds)[number];
36
+
37
+ await keplrProvider.enable(chainId);
38
+ const signer = keplrProvider.getOfflineSignerOnlyAmino(chainId);
39
+ if (!signer) throw new Error("Could not load signer");
40
+
41
+ const { getCosmosToolbox } = await import("@swapkit/toolboxes/cosmos");
42
+
43
+ const accounts = await signer.getAccounts();
44
+ if (!accounts?.[0]?.address) throw new Error("No accounts found");
45
+
46
+ const [{ address }] = accounts;
47
+ const toolbox = getCosmosToolbox(chain as any, { signer });
48
+
49
+ addChain({
50
+ ...toolbox,
51
+ chain,
52
+ address,
53
+ walletType: WalletOption.COSMOSTATION,
54
+ });
55
+ }),
56
+ );
57
+ }
58
+
59
+ async function connectEvmChains(chains: Chain[], addChain: any) {
60
+ const provider = window.ethereum;
61
+
62
+ if (!provider) {
63
+ throw new Error("No Ethereum provider found for Cosmostation");
64
+ }
65
+
66
+ const accounts = (await provider.request({
67
+ method: "eth_requestAccounts",
68
+ })) as string[];
69
+
70
+ if (!accounts || accounts.length === 0) {
71
+ throw new Error("No EVM accounts found");
72
+ }
73
+
74
+ const { getEvmToolbox } = await import("@swapkit/toolboxes/evm");
75
+
76
+ for (const chain of chains) {
77
+ const toolbox = getEvmToolbox(chain as any, { provider });
78
+ const [address] = accounts;
79
+
80
+ if (!address) {
81
+ throw new Error("No address found for EVM chain");
82
+ }
83
+
84
+ addChain({
85
+ ...toolbox,
86
+ chain,
87
+ address,
88
+ walletType: WalletOption.COSMOSTATION,
89
+ });
90
+ }
91
+ }
92
+
93
+ export const cosmostationWallet = createWallet({
94
+ name: "connectCosmostation",
95
+ supportedChains: [
96
+ Chain.Cosmos,
97
+ Chain.Kujira,
98
+ Chain.THORChain,
99
+ Chain.Ethereum,
100
+ Chain.BinanceSmartChain,
101
+ Chain.Avalanche,
102
+ Chain.Polygon,
103
+ Chain.Arbitrum,
104
+ Chain.Optimism,
105
+ Chain.Base,
106
+ ],
107
+ connect: ({ addChain, supportedChains }) =>
108
+ async function connectCosmostation(chains: Chain[]) {
109
+ const filteredChains = filterSupportedChains({
110
+ chains,
111
+ supportedChains,
112
+ walletType: WalletOption.COSMOSTATION,
113
+ });
114
+
115
+ if (!window.cosmostation) {
116
+ throw new Error("Cosmostation wallet not found");
117
+ }
118
+
119
+ const cosmosChains = filteredChains.filter((chain) =>
120
+ cosmostationSupportedChainIds.includes(ChainToChainId[chain] as any),
121
+ );
122
+ const evmChains = filteredChains.filter((chain) =>
123
+ cosmostationSupportedEVMChains.includes(chain as any),
124
+ );
125
+
126
+ if (cosmosChains.length > 0) {
127
+ const keplrProvider = window.cosmostation.providers?.keplr;
128
+ if (!keplrProvider) {
129
+ throw new Error("Cosmostation Keplr provider not found");
130
+ }
131
+
132
+ await connectCosmosChains(cosmosChains, addChain, keplrProvider);
133
+ }
134
+
135
+ if (evmChains.length > 0) {
136
+ await connectEvmChains(evmChains, addChain);
137
+ }
138
+
139
+ return true;
140
+ },
141
+ });
@@ -8,6 +8,7 @@ import {
8
8
  type FeeOption,
9
9
  SwapKitError,
10
10
  WalletOption,
11
+ providerRequest,
11
12
  } from "@swapkit/helpers";
12
13
  import { erc20ABI } from "@swapkit/helpers/contracts";
13
14
  import type { ApproveParams, CallParams, EVMTxParams } from "@swapkit/toolboxes/evm";
@@ -59,12 +60,14 @@ export async function getCtrlProvider<T extends Chain>(
59
60
  Chain.Polygon,
60
61
  () => window.xfi?.ethereum,
61
62
  )
62
- .with(Chain.Cosmos, Chain.Kujira, Chain.Maya, Chain.THORChain, () => window.xfi?.keplr)
63
+ .with(Chain.Cosmos, Chain.Kujira, () => window.xfi?.keplr)
63
64
  .with(Chain.Bitcoin, () => window.xfi?.bitcoin)
64
65
  .with(Chain.BitcoinCash, () => window.xfi?.bitcoincash)
65
66
  .with(Chain.Dogecoin, () => window.xfi?.dogecoin)
66
67
  .with(Chain.Litecoin, () => window.xfi?.litecoin)
67
68
  .with(Chain.Solana, () => window.xfi?.solana)
69
+ .with(Chain.THORChain, () => window.xfi?.thorchain)
70
+ .with(Chain.Maya, () => window.xfi?.mayachain)
68
71
  .otherwise(() => undefined);
69
72
  }
70
73
 
@@ -90,55 +93,67 @@ async function transaction({
90
93
  }
91
94
 
92
95
  export async function getCtrlAddress(chain: Chain) {
93
- const eipProvider = (await getCtrlProvider(chain)) as Eip1193Provider;
94
- if (!eipProvider) {
95
- throw new SwapKitError({
96
- errorKey: "wallet_provider_not_found",
97
- info: { wallet: WalletOption.CTRL, chain },
98
- });
99
- }
100
-
101
- if ([Chain.Cosmos, Chain.Kujira].includes(chain)) {
102
- const provider = await getCtrlProvider(Chain.Cosmos);
103
- if (!provider || "request" in provider) {
96
+ try {
97
+ const eipProvider = (await getCtrlProvider(chain)) as Eip1193Provider;
98
+ if (!eipProvider) {
104
99
  throw new SwapKitError({
105
100
  errorKey: "wallet_provider_not_found",
106
101
  info: { wallet: WalletOption.CTRL, chain },
107
102
  });
108
103
  }
109
104
 
110
- // Enabling before using the Keplr is recommended.
111
- // This method will ask the user whether to allow access if they haven't visited this website.
112
- // Also, it will request that the user unlock the wallet if the wallet is locked.
113
- const chainId = ChainToChainId[chain];
114
- await provider.enable(chainId);
105
+ if ([Chain.Cosmos, Chain.Kujira].includes(chain)) {
106
+ const provider = await getCtrlProvider(Chain.Cosmos);
107
+ if (!provider || "request" in provider) {
108
+ throw new SwapKitError({
109
+ errorKey: "wallet_provider_not_found",
110
+ info: { wallet: WalletOption.CTRL, chain },
111
+ });
112
+ }
115
113
 
116
- const offlineSigner = provider.getOfflineSigner(chainId);
114
+ // Enabling before using the Keplr is recommended.
115
+ // This method will ask the user whether to allow access if they haven't visited this website.
116
+ // Also, it will request that the user unlock the wallet if the wallet is locked.
117
+ const chainId = ChainToChainId[chain];
118
+ await provider.enable(chainId);
117
119
 
118
- const [item] = await offlineSigner.getAccounts();
119
- return item?.address;
120
- }
120
+ const offlineSigner = provider.getOfflineSigner(chainId);
121
121
 
122
- if (EVMChains.includes(chain as EVMChain)) {
123
- const [response] = await eipProvider.request({ method: "eth_requestAccounts", params: [] });
122
+ const [item] = await offlineSigner.getAccounts();
123
+ return item?.address;
124
+ }
124
125
 
125
- return response;
126
- }
126
+ if (EVMChains.includes(chain as EVMChain)) {
127
+ // For CTRL wallet, we need to use the request method directly on the provider
128
+ if ("request" in eipProvider && typeof eipProvider.request === "function") {
129
+ const accounts = await eipProvider.request({ method: "eth_requestAccounts" });
130
+ return accounts[0];
131
+ }
132
+ const { BrowserProvider } = await import("ethers");
133
+ const provider = new BrowserProvider(eipProvider, "any");
134
+ const [response] = await providerRequest({
135
+ provider,
136
+ method: "eth_requestAccounts",
137
+ params: [],
138
+ });
139
+ return response;
140
+ }
127
141
 
128
- if (chain === Chain.Solana) {
129
- const provider = await getCtrlProvider(Chain.Solana);
142
+ if (chain === Chain.Solana) {
143
+ const provider = await getCtrlProvider(Chain.Solana);
130
144
 
131
- const accounts = await provider.connect();
132
- return accounts.publicKey.toString();
133
- }
145
+ const accounts = await provider.connect();
146
+ return accounts.publicKey.toString();
147
+ }
134
148
 
135
- return new Promise((resolve, reject) =>
136
- eipProvider.request(
137
- { method: "request_accounts", params: [] },
138
- // @ts-expect-error
139
- (error: any, [response]: string[]) => (error ? reject(error) : resolve(response)),
140
- ),
141
- );
149
+ const accounts = await eipProvider.request({ method: "request_accounts", params: [] });
150
+ return accounts[0];
151
+ } catch (_error) {
152
+ throw new SwapKitError({
153
+ errorKey: "wallet_provider_not_found",
154
+ info: { wallet: WalletOption.CTRL, chain },
155
+ });
156
+ }
142
157
  }
143
158
 
144
159
  export async function walletTransfer(
@@ -188,8 +203,9 @@ export function getCtrlMethods(provider: BrowserProvider, chain: EVMChain) {
188
203
  if (!contractAddress) {
189
204
  throw new SwapKitError("wallet_ctrl_contract_address_not_provided");
190
205
  }
191
- const { createContract, getCreateContractTxObject, isStateChangingCall, toHexString } =
192
- await import("@swapkit/toolboxes/evm");
206
+ const { createContract, getCreateContractTxObject, isStateChangingCall } = await import(
207
+ "@swapkit/toolboxes/evm"
208
+ );
193
209
 
194
210
  const isStateChanging = isStateChangingCall({ abi, funcName });
195
211
 
@@ -203,14 +219,14 @@ export function getCtrlMethods(provider: BrowserProvider, chain: EVMChain) {
203
219
  txOverrides,
204
220
  });
205
221
 
206
- return provider.send("eth_sendTransaction", [
207
- {
208
- value: toHexString(BigInt(value || 0)),
209
- from,
210
- to,
211
- data: data || "0x",
212
- } as any,
213
- ]);
222
+ const signer = await provider.getSigner();
223
+ const tx = await signer.sendTransaction({
224
+ value: BigInt(value || 0),
225
+ from,
226
+ to,
227
+ data: data || "0x",
228
+ });
229
+ return tx.hash as T;
214
230
  }
215
231
  const contract = createContract(contractAddress, abi, provider);
216
232
 
@@ -219,9 +235,7 @@ export function getCtrlMethods(provider: BrowserProvider, chain: EVMChain) {
219
235
  return typeof result?.hash === "string" ? result?.hash : result;
220
236
  },
221
237
  approve: async ({ assetAddress, spenderAddress, amount, from }: ApproveParams) => {
222
- const { MAX_APPROVAL, getCreateContractTxObject, toHexString } = await import(
223
- "@swapkit/toolboxes/evm"
224
- );
238
+ const { MAX_APPROVAL, getCreateContractTxObject } = await import("@swapkit/toolboxes/evm");
225
239
  const funcParams = [spenderAddress, BigInt(amount || MAX_APPROVAL)];
226
240
  const txOverrides = { from };
227
241
 
@@ -236,31 +250,29 @@ export function getCtrlMethods(provider: BrowserProvider, chain: EVMChain) {
236
250
  const createTx = getCreateContractTxObject({ provider, chain });
237
251
  const { value, to, data } = await createTx(functionCallParams);
238
252
 
239
- return provider.send("eth_sendTransaction", [
240
- {
241
- value: toHexString(BigInt(value || 0)),
242
- from,
243
- to,
244
- data: data || "0x",
245
- } as any,
246
- ]);
253
+ const signer = await provider.getSigner();
254
+ const tx = await signer.sendTransaction({
255
+ value: BigInt(value || 0),
256
+ from,
257
+ to,
258
+ data: data || "0x",
259
+ });
260
+ return tx.hash;
247
261
  },
248
- sendTransaction: async (tx: EVMTxParams) => {
249
- const { from, to, data, value } = tx;
262
+ sendTransaction: async (txParams: EVMTxParams) => {
263
+ const { from, to, data, value } = txParams;
250
264
  if (!to) {
251
265
  throw new SwapKitError("wallet_ctrl_send_transaction_no_address");
252
266
  }
253
267
 
254
- const { toHexString } = await import("@swapkit/toolboxes/evm");
255
-
256
- return provider.send("eth_sendTransaction", [
257
- {
258
- value: toHexString(BigInt(value || 0)),
259
- from,
260
- to,
261
- data: data || "0x",
262
- } as any,
263
- ]);
268
+ const signer = await provider.getSigner();
269
+ const tx = await signer.sendTransaction({
270
+ value: BigInt(value || 0),
271
+ from,
272
+ to,
273
+ data: data || "0x",
274
+ });
275
+ return tx.hash;
264
276
  },
265
277
  };
266
278
  }
@@ -9,7 +9,7 @@ import {
9
9
  prepareNetworkSwitch,
10
10
  switchEVMWalletNetwork,
11
11
  } from "@swapkit/helpers";
12
- import type { Psbt } from "bitcoinjs-lib";
12
+ import { Psbt } from "bitcoinjs-lib";
13
13
  import type { BrowserProvider, Eip1193Provider } from "ethers";
14
14
  import {
15
15
  AddressPurpose,
@@ -34,7 +34,6 @@ async function getWalletMethods({
34
34
  }) {
35
35
  switch (chain) {
36
36
  case Chain.Bitcoin: {
37
- const { Psbt } = await import("bitcoinjs-lib");
38
37
  const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo");
39
38
 
40
39
  let address = "";
@@ -44,7 +44,7 @@ export const mayachainWalletMethods = async ({
44
44
  sender,
45
45
  memo,
46
46
  }: SignTransactionParams) => {
47
- const { makeSignDoc } = await import("@cosmjs/amino");
47
+ const { makeSignDoc } = (await import("@cosmjs/amino")).default;
48
48
  const { getDenomWithChain } = await import("@swapkit/toolboxes/cosmos");
49
49
 
50
50
  const account = await toolbox.getAccount(sender);
@@ -31,7 +31,7 @@ export const thorchainWalletMethods = async ({
31
31
  sdk: KeepKeySdk;
32
32
  derivationPath?: DerivationPathArray;
33
33
  }) => {
34
- const { makeSignDoc } = await import("@cosmjs/amino");
34
+ const { makeSignDoc } = (await import("@cosmjs/amino")).default;
35
35
  const { buildAminoMsg, getDefaultChainFee, createStargateClient, getCosmosToolbox } =
36
36
  await import("@swapkit/toolboxes/cosmos");
37
37
 
@@ -1,3 +1,4 @@
1
+ import { createCipheriv, createDecipheriv, pbkdf2Sync, randomBytes } from "node:crypto";
1
2
  import { generateMnemonic, validateMnemonic } from "@scure/bip39";
2
3
  import { wordlist } from "@scure/bip39/wordlists/english";
3
4
 
@@ -15,7 +16,7 @@ export type Keystore = {
15
16
  };
16
17
 
17
18
  async function blake256(initData: Buffer | string) {
18
- const { blake2bFinal, blake2bInit, blake2bUpdate } = await import("blakejs");
19
+ const { blake2bFinal, blake2bInit, blake2bUpdate } = (await import("blakejs")).default;
19
20
  let data = initData;
20
21
 
21
22
  if (!(data instanceof Buffer)) {
@@ -32,8 +33,6 @@ async function blake256(initData: Buffer | string) {
32
33
  }
33
34
 
34
35
  export async function encryptToKeyStore(phrase: string, password: string) {
35
- const { pbkdf2Sync, randomBytes, createCipheriv } = await import("node:crypto");
36
-
37
36
  const cipher = "aes-128-ctr";
38
37
  const iv = randomBytes(16);
39
38
  const salt = randomBytes(32);
@@ -71,7 +70,6 @@ export function validatePhrase(phrase: string) {
71
70
  }
72
71
 
73
72
  export async function decryptFromKeystore(keystore: Keystore, password: string) {
74
- const { createDecipheriv, pbkdf2Sync } = await import("node:crypto");
75
73
  const { SwapKitError } = await import("@swapkit/helpers");
76
74
 
77
75
  switch (keystore.version) {
@@ -64,8 +64,8 @@ export class CosmosLedger extends CosmosLedgerInterface {
64
64
  throw new Error(`Address ${signerAddress} not found in wallet`);
65
65
  }
66
66
 
67
- const { encodeSecp256k1Signature, serializeSignDoc } = await import("@cosmjs/amino");
68
- const { Secp256k1Signature } = await import("@cosmjs/crypto");
67
+ const { encodeSecp256k1Signature, serializeSignDoc } = (await import("@cosmjs/amino")).default;
68
+ const { Secp256k1Signature } = (await import("@cosmjs/crypto")).default;
69
69
 
70
70
  const message = serializeSignDoc(signDoc);
71
71
  const signature = await this.ledgerApp.sign(this.derivationPath, message);