@0xsquid/react-hooks 7.1.0 → 7.1.1-beta.1

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 (212) hide show
  1. package/dist/core/client/index.d.ts +2 -0
  2. package/dist/core/client/index.js +3 -0
  3. package/dist/core/client/index.js.map +1 -1
  4. package/dist/core/connectors/bitcoin/index.d.ts +0 -8
  5. package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +1 -1
  6. package/dist/core/connectors/bitcoin/wallets/phantom.d.ts +1 -1
  7. package/dist/core/connectors/bitcoin/wallets/unisat.d.ts +1 -1
  8. package/dist/core/connectors/xrpl/CrossMark.d.ts +13 -0
  9. package/dist/core/connectors/xrpl/CrossMark.js +76 -0
  10. package/dist/core/connectors/xrpl/CrossMark.js.map +1 -0
  11. package/dist/core/connectors/xrpl/Xaman.d.ts +16 -0
  12. package/dist/core/connectors/xrpl/Xaman.js +80 -0
  13. package/dist/core/connectors/xrpl/Xaman.js.map +1 -0
  14. package/dist/core/connectors/xrpl/XamanQr.d.ts +15 -0
  15. package/dist/core/connectors/xrpl/XamanQr.js +93 -0
  16. package/dist/core/connectors/xrpl/XamanQr.js.map +1 -0
  17. package/dist/core/connectors/xrpl/XrplMetamaskSnap.d.ts +35 -0
  18. package/dist/core/connectors/xrpl/XrplMetamaskSnap.js +176 -0
  19. package/dist/core/connectors/xrpl/XrplMetamaskSnap.js.map +1 -0
  20. package/dist/core/constants.d.ts +9 -2
  21. package/dist/core/constants.js +15 -2
  22. package/dist/core/constants.js.map +1 -1
  23. package/dist/core/index.d.ts +1 -1
  24. package/dist/core/index.js +1 -1
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/multicall3.d.ts +5 -1
  27. package/dist/core/multicall3.js +21 -1
  28. package/dist/core/multicall3.js.map +1 -1
  29. package/dist/core/providers/BitcoinProvider.d.ts +17 -0
  30. package/dist/core/providers/BitcoinProvider.js +15 -0
  31. package/dist/core/providers/BitcoinProvider.js.map +1 -0
  32. package/dist/core/providers/EvmProvider.d.ts +20 -0
  33. package/dist/core/providers/EvmProvider.js +15 -0
  34. package/dist/core/providers/EvmProvider.js.map +1 -0
  35. package/dist/core/providers/SolanaProvider.d.ts +10 -15
  36. package/dist/core/providers/SolanaProvider.js.map +1 -1
  37. package/dist/core/providers/SuiProvider.d.ts +1 -0
  38. package/dist/core/providers/SuiProvider.js.map +1 -1
  39. package/dist/core/providers/XrplProvider.d.ts +17 -0
  40. package/dist/core/providers/XrplProvider.js +15 -0
  41. package/dist/core/providers/XrplProvider.js.map +1 -0
  42. package/dist/core/queries/queries-keys.d.ts +9 -1
  43. package/dist/core/queries/queries-keys.js +33 -0
  44. package/dist/core/queries/queries-keys.js.map +1 -1
  45. package/dist/core/types/bitcoin.d.ts +8 -0
  46. package/dist/core/types/bitcoin.js +2 -0
  47. package/dist/core/types/bitcoin.js.map +1 -0
  48. package/dist/core/types/error.d.ts +3 -0
  49. package/dist/core/types/error.js +6 -0
  50. package/dist/core/types/error.js.map +1 -1
  51. package/dist/core/types/event.d.ts +8 -0
  52. package/dist/core/types/evm.d.ts +2 -0
  53. package/dist/core/types/evm.js +2 -0
  54. package/dist/core/types/evm.js.map +1 -0
  55. package/dist/core/types/index.d.ts +2 -1
  56. package/dist/core/types/index.js +2 -1
  57. package/dist/core/types/index.js.map +1 -1
  58. package/dist/core/types/solana.d.ts +2 -0
  59. package/dist/core/types/solana.js +2 -0
  60. package/dist/core/types/solana.js.map +1 -0
  61. package/dist/core/types/sui.d.ts +3 -2
  62. package/dist/core/types/wallet.d.ts +47 -32
  63. package/dist/core/types/wallet.js +4 -15
  64. package/dist/core/types/wallet.js.map +1 -1
  65. package/dist/core/types/xrpl.d.ts +70 -0
  66. package/dist/core/types/xrpl.js +20 -0
  67. package/dist/core/types/xrpl.js.map +1 -0
  68. package/dist/core/wagmiConfig.js +14 -1
  69. package/dist/core/wagmiConfig.js.map +1 -1
  70. package/dist/core/wallets.d.ts +1 -3
  71. package/dist/core/wallets.js +65 -345
  72. package/dist/core/wallets.js.map +1 -1
  73. package/dist/hooks/bitcoin/useBitcoin.d.ts +2 -0
  74. package/dist/hooks/bitcoin/useBitcoin.js +19 -0
  75. package/dist/hooks/bitcoin/useBitcoin.js.map +1 -0
  76. package/dist/hooks/evm/useEvm.d.ts +2 -0
  77. package/dist/hooks/evm/useEvm.js +77 -0
  78. package/dist/hooks/evm/useEvm.js.map +1 -0
  79. package/dist/hooks/evm/useEvmWallets.d.ts +4 -0
  80. package/dist/hooks/evm/useEvmWallets.js +13 -0
  81. package/dist/hooks/evm/useEvmWallets.js.map +1 -0
  82. package/dist/hooks/index.d.ts +2 -0
  83. package/dist/hooks/index.js +2 -0
  84. package/dist/hooks/index.js.map +1 -1
  85. package/dist/hooks/solana/useSolana.d.ts +2 -9
  86. package/dist/hooks/solana/useSolana.js +60 -84
  87. package/dist/hooks/solana/useSolana.js.map +1 -1
  88. package/dist/hooks/solana/useSolanaWallets.d.ts +4 -0
  89. package/dist/hooks/solana/useSolanaWallets.js +8 -0
  90. package/dist/hooks/solana/useSolanaWallets.js.map +1 -0
  91. package/dist/hooks/store/useAddressBookStore.d.ts +1 -1
  92. package/dist/hooks/store/useAddressBookStore.js +6 -2
  93. package/dist/hooks/store/useAddressBookStore.js.map +1 -1
  94. package/dist/hooks/store/useWalletStore.d.ts +24 -4
  95. package/dist/hooks/store/useWalletStore.js +21 -2
  96. package/dist/hooks/store/useWalletStore.js.map +1 -1
  97. package/dist/hooks/sui/useSui.js +60 -6
  98. package/dist/hooks/sui/useSui.js.map +1 -1
  99. package/dist/hooks/sui/useSuiWallets.d.ts +0 -3
  100. package/dist/hooks/sui/useSuiWallets.js +18 -37
  101. package/dist/hooks/sui/useSuiWallets.js.map +1 -1
  102. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +11 -0
  103. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  104. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +13 -2
  105. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  106. package/dist/hooks/tokens/useBalance.d.ts +1 -0
  107. package/dist/hooks/tokens/useBalance.js +22 -1
  108. package/dist/hooks/tokens/useBalance.js.map +1 -1
  109. package/dist/hooks/tokens/useMultiChainBalance.js +10 -1
  110. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  111. package/dist/hooks/tokens/useNativeBalance.d.ts +1 -0
  112. package/dist/hooks/tokens/useNativeBalance.js +33 -1
  113. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  114. package/dist/hooks/tokens/useNativeTokenForChain.js +3 -1
  115. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
  116. package/dist/hooks/tokens/useSquidTokens.d.ts +1 -0
  117. package/dist/hooks/tokens/useSquidTokens.js +6 -1
  118. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  119. package/dist/hooks/transaction/send/useSendTransaction.d.ts +1 -1
  120. package/dist/hooks/transaction/send/useSendTransaction.js +28 -3
  121. package/dist/hooks/transaction/send/useSendTransaction.js.map +1 -1
  122. package/dist/hooks/transaction/useAllTransactionsStatus.js +7 -0
  123. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
  124. package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -0
  125. package/dist/hooks/transaction/useExecuteTransaction.js +60 -6
  126. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  127. package/dist/hooks/transaction/useSendTransactionStatus.js +14 -4
  128. package/dist/hooks/transaction/useSendTransactionStatus.js.map +1 -1
  129. package/dist/hooks/wallet/useAutoConnect.js +13 -9
  130. package/dist/hooks/wallet/useAutoConnect.js.map +1 -1
  131. package/dist/hooks/wallet/useMultiChainWallet.d.ts +241 -0
  132. package/dist/hooks/wallet/useMultiChainWallet.js +16 -0
  133. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  134. package/dist/hooks/wallet/useSigner.d.ts +3 -3
  135. package/dist/hooks/wallet/useSigner.js +9 -19
  136. package/dist/hooks/wallet/useSigner.js.map +1 -1
  137. package/dist/hooks/wallet/useStandardWallets.d.ts +9 -0
  138. package/dist/hooks/wallet/useStandardWallets.js +26 -0
  139. package/dist/hooks/wallet/useStandardWallets.js.map +1 -0
  140. package/dist/hooks/wallet/useWallet.d.ts +252 -8
  141. package/dist/hooks/wallet/useWallet.js +55 -56
  142. package/dist/hooks/wallet/useWallet.js.map +1 -1
  143. package/dist/hooks/wallet/useWallets.js +18 -21
  144. package/dist/hooks/wallet/useWallets.js.map +1 -1
  145. package/dist/hooks/xrpl/useXrpl.d.ts +2 -0
  146. package/dist/hooks/xrpl/useXrpl.js +21 -0
  147. package/dist/hooks/xrpl/useXrpl.js.map +1 -0
  148. package/dist/hooks/xrpl/useXrplTrustLine.d.ts +17 -0
  149. package/dist/hooks/xrpl/useXrplTrustLine.js +137 -0
  150. package/dist/hooks/xrpl/useXrplTrustLine.js.map +1 -0
  151. package/dist/hooks/xrpl/useXrplWallets.d.ts +43 -0
  152. package/dist/hooks/xrpl/useXrplWallets.js +46 -0
  153. package/dist/hooks/xrpl/useXrplWallets.js.map +1 -0
  154. package/dist/provider/index.js +10 -4
  155. package/dist/provider/index.js.map +1 -1
  156. package/dist/services/external/onrampAdapter.js +2 -1
  157. package/dist/services/external/onrampAdapter.js.map +1 -1
  158. package/dist/services/external/rpcService.d.ts +2 -0
  159. package/dist/services/external/rpcService.js +30 -4
  160. package/dist/services/external/rpcService.js.map +1 -1
  161. package/dist/services/external/websocket.d.ts +6 -0
  162. package/dist/services/external/websocket.js +34 -0
  163. package/dist/services/external/websocket.js.map +1 -0
  164. package/dist/services/external/xaman.d.ts +30 -0
  165. package/dist/services/external/xaman.js +46 -0
  166. package/dist/services/external/xaman.js.map +1 -0
  167. package/dist/services/external/xrplRpcClient.d.ts +39 -0
  168. package/dist/services/external/xrplRpcClient.js +167 -0
  169. package/dist/services/external/xrplRpcClient.js.map +1 -0
  170. package/dist/services/index.d.ts +1 -0
  171. package/dist/services/index.js +1 -0
  172. package/dist/services/index.js.map +1 -1
  173. package/dist/services/internal/bitcoinService.d.ts +0 -3
  174. package/dist/services/internal/bitcoinService.js +0 -31
  175. package/dist/services/internal/bitcoinService.js.map +1 -1
  176. package/dist/services/internal/errorService.js +1 -1
  177. package/dist/services/internal/errorService.js.map +1 -1
  178. package/dist/services/internal/eventService.d.ts +20 -0
  179. package/dist/services/internal/eventService.js +28 -0
  180. package/dist/services/internal/eventService.js.map +1 -1
  181. package/dist/services/internal/evmService.d.ts +8 -7
  182. package/dist/services/internal/evmService.js +36 -12
  183. package/dist/services/internal/evmService.js.map +1 -1
  184. package/dist/services/internal/fiatToCryptoService.js +2 -2
  185. package/dist/services/internal/fiatToCryptoService.js.map +1 -1
  186. package/dist/services/internal/sendTransaction.d.ts +9 -3
  187. package/dist/services/internal/sendTransaction.js +46 -1
  188. package/dist/services/internal/sendTransaction.js.map +1 -1
  189. package/dist/services/internal/sendTransactionStatus.js +16 -0
  190. package/dist/services/internal/sendTransactionStatus.js.map +1 -1
  191. package/dist/services/internal/solanaService.d.ts +7 -7
  192. package/dist/services/internal/solanaService.js +42 -9
  193. package/dist/services/internal/solanaService.js.map +1 -1
  194. package/dist/services/internal/suiService.d.ts +1 -11
  195. package/dist/services/internal/suiService.js +20 -58
  196. package/dist/services/internal/suiService.js.map +1 -1
  197. package/dist/services/internal/transactionService.js +4 -2
  198. package/dist/services/internal/transactionService.js.map +1 -1
  199. package/dist/services/internal/transactionStatusService.js +2 -1
  200. package/dist/services/internal/transactionStatusService.js.map +1 -1
  201. package/dist/services/internal/walletService.d.ts +20 -22
  202. package/dist/services/internal/walletService.js +134 -48
  203. package/dist/services/internal/walletService.js.map +1 -1
  204. package/dist/services/internal/walletStandardService.d.ts +24 -0
  205. package/dist/services/internal/walletStandardService.js +133 -0
  206. package/dist/services/internal/walletStandardService.js.map +1 -0
  207. package/dist/services/internal/xrplService.d.ts +17 -0
  208. package/dist/services/internal/xrplService.js +52 -0
  209. package/dist/services/internal/xrplService.js.map +1 -0
  210. package/dist/tests/walletService.test.js +228 -4
  211. package/dist/tests/walletService.test.js.map +1 -1
  212. package/package.json +7 -5
@@ -1,12 +1,14 @@
1
1
  import type { ChainData, Token } from "@0xsquid/squid-types";
2
2
  import { ChainType } from "@0xsquid/squid-types";
3
- import { Config, Connector } from "@wagmi/core";
4
- import { ConnectMutateAsync } from "wagmi/query";
3
+ import { Connector } from "@wagmi/core";
4
+ import { IBitcoinContextData } from "../../core/providers/BitcoinProvider";
5
5
  import { ICosmosContextData } from "../../core/providers/CosmosProvider";
6
+ import { IEvmContextData } from "../../core/providers/EvmProvider";
6
7
  import { ISolanaContextData } from "../../core/providers/SolanaProvider";
7
8
  import { ISuiContextData } from "../../core/providers/SuiProvider";
9
+ import { IXrplContextData } from "../../core/providers/XrplProvider";
8
10
  import { TokenWithBalance } from "../../core/types/tokens";
9
- import type { ConnectWalletResult, EnsSearchResult, Wallet } from "../../core/types/wallet";
11
+ import type { ChainTypeToWalletState, ConnectWalletResult, EnsSearchResult, Wallet } from "../../core/types/wallet";
10
12
  type FormatHashParams = {
11
13
  hash?: string;
12
14
  chainType?: ChainType;
@@ -20,7 +22,6 @@ export declare const redirectToExtensionsStore: (wallet: Wallet) => void;
20
22
  * e.g. "xfi.keplr" will return window.xfi.keplr
21
23
  */
22
24
  export declare const accessProperty: (object: Record<string, any>, path: string) => any;
23
- export declare const getWalletWindowProvider: (window: Window, wallet: Wallet, chainType: ChainType) => any;
24
25
  export declare const getWallets: (window: Window | undefined, wallets: Wallet[]) => Wallet[];
25
26
  /**
26
27
  * Get the base chain to connect to
@@ -59,31 +60,17 @@ export declare function addTokenToWallet({ token: { address, decimals, symbol, l
59
60
  provider: any;
60
61
  }): any;
61
62
  export declare function isEvmChainNotSupportedError(error: any): boolean;
62
- /**
63
- * Find a wallet by wagmi connector
64
- * EIP-6963: https://eips.ethereum.org/EIPS/eip-6963
65
- * Sometimes the ID is set as the RDNS which is the domain name of wallet
66
- * @param wallets
67
- * @param connector
68
- * @returns
69
- */
70
- export declare const findWalletByWagmiConnector: (wallets: Wallet[], connector: Connector | undefined) => Wallet | undefined;
71
- /**
72
- * Find a wallet by label (connector ID, name, or RDNS)
73
- * @param wallets
74
- * @param label
75
- * @returns
76
- */
77
- export declare const findWalletByLabel: (wallets: Wallet[], label: string) => Wallet | undefined;
78
63
  export declare const getWalletSupportedChainTypes: (wallet: Wallet) => ChainType[];
79
- export declare const getConnectorForChainType: (wallet: Wallet, chainType: ChainType) => (() => any) | undefined;
64
+ export declare const getConnectorForChainType: <T extends ChainType>(wallet: Wallet, chainType: T) => ChainTypeToWalletState[T]["wallet"]["connector"] | undefined;
80
65
  export declare function walletSupportsChainType(wallet: Wallet, chainType: ChainType): boolean;
81
66
  interface ConnectWalletMutations {
82
- connectEvmAsync: ConnectMutateAsync<Config, unknown>;
67
+ connectEvm: IEvmContextData["connectEvm"];
83
68
  connectCosmos: ICosmosContextData["connectCosmos"];
84
69
  cosmosConnectedWallet: ICosmosContextData["cosmosConnectedWallet"];
85
70
  connectSolana: ISolanaContextData["connectSolana"];
71
+ connectBitcoin: IBitcoinContextData["connectBitcoin"];
86
72
  connectSui: ISuiContextData["connectSui"];
73
+ connectXrpl: IXrplContextData["connectXrpl"];
87
74
  }
88
75
  type ConnectWalletParams = {
89
76
  wallet: Wallet;
@@ -99,5 +86,16 @@ interface WalletConnectionResult {
99
86
  }>;
100
87
  }
101
88
  export declare const connectWallet: (params: ConnectWalletParams) => Promise<WalletConnectionResult | null>;
89
+ /**
90
+ * Wallets may have a cancelConnect method
91
+ * This is used to cancel a pending connection and clean up resources
92
+ * (e.g. network requests, event listeners, etc.)
93
+ */
94
+ export declare const cancelConnectWallet: (wallet: Wallet) => void;
102
95
  export declare const isProblematicConnector: (connector: Connector | undefined) => boolean;
96
+ interface MergeWalletsParams {
97
+ singleChainWallets: Wallet[];
98
+ multiChainWallets: Wallet[];
99
+ }
100
+ export declare function mergeWallets({ multiChainWallets, singleChainWallets, }: MergeWalletsParams): Wallet[];
103
101
  export {};
@@ -5,11 +5,11 @@ import { isAddress, SwitchChainError } from "viem";
5
5
  import { chainTypeToDefaultChainIdMap } from "../../core/constants";
6
6
  import { walletStoreLinks } from "../../core/wallets";
7
7
  import { WidgetEvents } from "../../services/internal/eventService";
8
- import { connectBitcoinWallet, isBitcoinAddressValid } from "./bitcoinService";
8
+ import { isBitcoinAddressValid } from "./bitcoinService";
9
9
  import { connectCosmosWallet, isCosmosAddressValid } from "./cosmosService";
10
- import { connectEvmWallet } from "./evmService";
11
- import { connectSolanaWallet, isSolanaAddressValid } from "./solanaService";
10
+ import { isSolanaAddressValid } from "./solanaService";
12
11
  import { isSuiAddressValid } from "./suiService";
12
+ import { isXrplAddressValid } from "./xrplService";
13
13
  const chainTypeToTrimLength = {
14
14
  // 0x1234...5678
15
15
  [ChainType.EVM]: {
@@ -36,6 +36,11 @@ const chainTypeToTrimLength = {
36
36
  start: 6,
37
37
  end: 4,
38
38
  },
39
+ // r9uP...s6mN
40
+ [ChainType.XRPL]: {
41
+ start: 4,
42
+ end: 4,
43
+ },
39
44
  };
40
45
  export const formatHash = ({ chainType, hash }) => {
41
46
  if (!hash)
@@ -72,16 +77,18 @@ export const isWalletAddressValid = (chainData, address) => {
72
77
  return isSolanaAddressValid(address);
73
78
  case ChainType.SUI:
74
79
  return isSuiAddressValid(address);
80
+ case ChainType.XRPL:
81
+ return isXrplAddressValid(address);
75
82
  }
76
83
  };
77
84
  export const redirectToExtensionsStore = (wallet) => {
78
85
  const { userAgent } = navigator;
79
86
  let link;
80
87
  if (userAgent.indexOf("Firefox") > -1) {
81
- link = walletStoreLinks[wallet.connectorId].firefox;
88
+ link = walletStoreLinks[wallet.connectorId]?.firefox;
82
89
  }
83
90
  else if (userAgent.indexOf("Chrome") > -1) {
84
- link = walletStoreLinks[wallet.connectorId].chrome;
91
+ link = walletStoreLinks[wallet.connectorId]?.chrome;
85
92
  }
86
93
  if (link && link !== "") {
87
94
  window?.open(link, "_blank")?.focus();
@@ -99,15 +106,6 @@ export const accessProperty = (object, path) => {
99
106
  }
100
107
  return value;
101
108
  };
102
- export const getWalletWindowProvider = (window, wallet, chainType) => {
103
- if (wallet.isMultiChain) {
104
- const connector = wallet.supportedNetworks.find((network) => network.chainType === chainType)?.connector;
105
- return connector?.().provider;
106
- }
107
- return wallet.windowFlag
108
- ? accessProperty(window, wallet.windowFlag)
109
- : undefined;
110
- };
111
109
  const definedInWindow = (path, clientWindow) => {
112
110
  if (!path || !clientWindow)
113
111
  return false;
@@ -265,39 +263,13 @@ export function isEvmChainNotSupportedError(error) {
265
263
  return (error instanceof ChainNotConfiguredError ||
266
264
  error instanceof SwitchChainError);
267
265
  }
268
- /**
269
- * Find a wallet by wagmi connector
270
- * EIP-6963: https://eips.ethereum.org/EIPS/eip-6963
271
- * Sometimes the ID is set as the RDNS which is the domain name of wallet
272
- * @param wallets
273
- * @param connector
274
- * @returns
275
- */
276
- export const findWalletByWagmiConnector = (wallets, connector) => {
277
- if (!connector)
278
- return undefined;
279
- return wallets.find((w) => w.connectorId.toLowerCase() === connector.id.toLowerCase() ||
280
- w.connectorName.toLowerCase() === connector.name.toLowerCase() ||
281
- w.rdns?.toLowerCase() === connector.id.toLowerCase());
282
- };
283
- /**
284
- * Find a wallet by label (connector ID, name, or RDNS)
285
- * @param wallets
286
- * @param label
287
- * @returns
288
- */
289
- export const findWalletByLabel = (wallets, label) => {
290
- return wallets.find((w) => w.connectorId.toLowerCase() === label.toLowerCase() ||
291
- w.connectorName.toLowerCase() === label.toLowerCase() ||
292
- w.rdns?.toLowerCase() === label.toLowerCase());
293
- };
294
266
  export const getWalletSupportedChainTypes = (wallet) => {
295
267
  if (!wallet.isMultiChain)
296
268
  return [];
297
269
  return wallet.supportedNetworks.map((config) => config.chainType);
298
270
  };
299
271
  export const getConnectorForChainType = (wallet, chainType) => {
300
- // For cross-chain wallets
272
+ // For multi-chain wallets
301
273
  if (wallet.isMultiChain) {
302
274
  const networkConfig = wallet.supportedNetworks.find((config) => config.chainType === chainType);
303
275
  return networkConfig?.connector;
@@ -322,8 +294,11 @@ const connectByChainType = async (chainType, wallet, defaultChain, params) => {
322
294
  const connector = getConnectorForChainType(wallet, chainType);
323
295
  switch (chainType) {
324
296
  case ChainType.EVM:
325
- return connectEvmWallet({ ...wallet, connector }, {
326
- connectEvmAsync: params.connectEvmAsync,
297
+ return params.connectEvm.mutateAsync({
298
+ wallet: {
299
+ ...wallet,
300
+ connector,
301
+ },
327
302
  });
328
303
  case ChainType.COSMOS:
329
304
  return connectCosmosWallet({ ...wallet, connector }, defaultChain, {
@@ -331,11 +306,23 @@ const connectByChainType = async (chainType, wallet, defaultChain, params) => {
331
306
  cosmosConnectedWallet: params.cosmosConnectedWallet,
332
307
  });
333
308
  case ChainType.SOLANA:
334
- return connectSolanaWallet(wallet, {
335
- connectSolana: params.connectSolana,
309
+ return params.connectSolana.mutateAsync({
310
+ wallet: {
311
+ ...wallet,
312
+ connector,
313
+ },
336
314
  });
337
315
  case ChainType.BTC:
338
- return connectBitcoinWallet(wallet);
316
+ return params.connectBitcoin.mutateAsync({
317
+ wallet: {
318
+ ...wallet,
319
+ connector,
320
+ },
321
+ });
322
+ case ChainType.XRPL:
323
+ return params.connectXrpl.mutateAsync({
324
+ wallet: wallet,
325
+ });
339
326
  case ChainType.SUI:
340
327
  return params.connectSui.mutateAsync({
341
328
  wallet: {
@@ -371,11 +358,13 @@ const connectMultiChainWallet = async (params) => {
371
358
  const defaultChain = getDefaultChain(params.wallet, params.selectedChain, [chainConfig.chainType], params.findChain);
372
359
  try {
373
360
  const result = await connectByChainType(chainConfig.chainType, params.wallet, defaultChain, {
374
- connectEvmAsync: params.connectEvmAsync,
361
+ connectEvm: params.connectEvm,
375
362
  connectCosmos: params.connectCosmos,
376
363
  cosmosConnectedWallet: params.cosmosConnectedWallet,
377
364
  connectSolana: params.connectSolana,
365
+ connectBitcoin: params.connectBitcoin,
378
366
  connectSui: params.connectSui,
367
+ connectXrpl: params.connectXrpl,
379
368
  });
380
369
  if (result) {
381
370
  results.push({
@@ -401,11 +390,13 @@ const connectSingleChainWallet = async (params) => {
401
390
  }
402
391
  const defaultChain = params.selectedChain;
403
392
  const result = await connectByChainType(params.wallet.type, params.wallet, defaultChain, {
404
- connectEvmAsync: params.connectEvmAsync,
393
+ connectEvm: params.connectEvm,
405
394
  connectCosmos: params.connectCosmos,
406
395
  cosmosConnectedWallet: params.cosmosConnectedWallet,
407
396
  connectSolana: params.connectSolana,
397
+ connectBitcoin: params.connectBitcoin,
408
398
  connectSui: params.connectSui,
399
+ connectXrpl: params.connectXrpl,
409
400
  });
410
401
  return result
411
402
  ? {
@@ -448,6 +439,23 @@ export const connectWallet = async (params) => {
448
439
  throw error;
449
440
  }
450
441
  };
442
+ /**
443
+ * Wallets may have a cancelConnect method
444
+ * This is used to cancel a pending connection and clean up resources
445
+ * (e.g. network requests, event listeners, etc.)
446
+ */
447
+ export const cancelConnectWallet = (wallet) => {
448
+ // TODO: implement cancel connect for multi-chain wallets
449
+ if (wallet.isMultiChain) {
450
+ return;
451
+ }
452
+ switch (wallet.type) {
453
+ case ChainType.XRPL:
454
+ return wallet.connector.cancelConnect?.();
455
+ default:
456
+ return;
457
+ }
458
+ };
451
459
  // Issues with Rabby wallet on some chains
452
460
  // we need to wait some time before getting transaction receipt
453
461
  // https://github.com/ethers-io/ethers.js/issues/4760
@@ -456,4 +464,82 @@ export const isProblematicConnector = (connector) => {
456
464
  // TODO: inconsistent connector ID behavior, investigate and debug Wagmi
457
465
  ["rabby", "io.rabby"].includes(connector.id));
458
466
  };
467
+ export function mergeWallets({ multiChainWallets, singleChainWallets, }) {
468
+ const mergedWallets = [...multiChainWallets, ...singleChainWallets];
469
+ // if mergedWallets includes single-chain wallets with duplicate connector IDs
470
+ // create a new multi-chain wallet with the same connector ID and add all supported networks
471
+ const unifiedWallets = mergedWallets.reduce((acc, wallet) => {
472
+ const existingWallet = acc.find((w) => w.connectorId === wallet.connectorId);
473
+ if (existingWallet && !wallet.isMultiChain) {
474
+ if (existingWallet.isMultiChain) {
475
+ // if existing wallet is already a multi-chain wallet
476
+ // we just need to add the new supported network
477
+ if (existingWallet.supportedNetworks.every((network) => network.chainType !== wallet.type)) {
478
+ // remove the existing wallet from the array
479
+ acc.splice(acc.indexOf(existingWallet), 1);
480
+ // add the new wallet with all supported networks
481
+ acc.push({
482
+ isMultiChain: true,
483
+ supportedNetworks: [
484
+ ...existingWallet.supportedNetworks,
485
+ {
486
+ chainType: wallet.type,
487
+ connector: wallet.connector,
488
+ },
489
+ ],
490
+ // add common properties
491
+ connectorId: existingWallet.connectorId,
492
+ name: existingWallet.name,
493
+ icon: existingWallet.icon,
494
+ windowFlag: existingWallet.windowFlag,
495
+ connectorName: existingWallet.connectorName,
496
+ canSwitchWallets: existingWallet.canSwitchWallets,
497
+ isInstalled: existingWallet.isInstalled,
498
+ skipInstallCheck: existingWallet.skipInstallCheck,
499
+ isMobile: existingWallet.isMobile,
500
+ rdns: existingWallet.rdns,
501
+ });
502
+ }
503
+ }
504
+ else {
505
+ // otherwise, if existing wallet is a single-chain wallet
506
+ // we need to create a new multi-chain wallet with the same connector ID
507
+ // remove the existing wallet from the array
508
+ acc.splice(acc.indexOf(existingWallet), 1);
509
+ // add the new wallet with all supported networks
510
+ if (existingWallet.type !== wallet.type) {
511
+ acc.push({
512
+ isMultiChain: true,
513
+ supportedNetworks: [
514
+ {
515
+ chainType: existingWallet.type,
516
+ connector: existingWallet.connector,
517
+ },
518
+ {
519
+ chainType: wallet.type,
520
+ connector: wallet.connector,
521
+ },
522
+ ],
523
+ // add common properties
524
+ connectorId: existingWallet.connectorId,
525
+ name: existingWallet.name,
526
+ icon: existingWallet.icon,
527
+ windowFlag: existingWallet.windowFlag,
528
+ connectorName: existingWallet.connectorName,
529
+ canSwitchWallets: existingWallet.canSwitchWallets,
530
+ isInstalled: existingWallet.isInstalled,
531
+ skipInstallCheck: existingWallet.skipInstallCheck,
532
+ isMobile: existingWallet.isMobile,
533
+ rdns: existingWallet.rdns,
534
+ });
535
+ }
536
+ }
537
+ }
538
+ else {
539
+ acc.push(wallet);
540
+ }
541
+ return acc;
542
+ }, []);
543
+ return unifiedWallets;
544
+ }
459
545
  //# sourceMappingURL=walletService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"walletService.js","sourceRoot":"","sources":["../../../src/services/internal/walletService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"walletService.js","sourceRoot":"","sources":["../../../src/services/internal/walletService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { StandardConnectFeature, StandardDisconnectFeature, StandardEventsFeature, WalletWithFeatures, type Wallet as StandardWallet } from "@wallet-standard/core";
2
+ import { ConnectorID } from "../../core/types/wallet";
3
+ type StandardWalletFeatures = Array<keyof StandardWallet["features"]>;
4
+ type StandardFeatures = StandardConnectFeature & StandardEventsFeature & Partial<StandardDisconnectFeature>;
5
+ export type StandardWalletWithCustomFeatures<AdditionalFeatures extends StandardWallet["features"]> = WalletWithFeatures<StandardFeatures & AdditionalFeatures>;
6
+ /**
7
+ * Validates that a given standard wallet has all the required standard features
8
+ * and additional custom features
9
+ */
10
+ export declare function isStandardWalletWithCustomFeatures<S extends StandardWallet>(wallet: StandardWallet, customFeatures: StandardWalletFeatures): wallet is S;
11
+ export type StandardWalletOverrides = Partial<{
12
+ icon: string;
13
+ connectorId: ConnectorID;
14
+ name: string;
15
+ }>;
16
+ /**
17
+ * Mapping of an ID and custom wallet overrides
18
+ * Used to unify wallets with different IDs into a single wallet
19
+ * These IDs can come from different wallet providers, e.g. EIP6963, wallets-standard, etc.
20
+ *
21
+ * @example Unify Metamask (EVM) and Metamask (Solana) to have the same icon, name, and ID
22
+ */
23
+ export declare const standardWalletOverrides: Partial<Record<string, StandardWalletOverrides>>;
24
+ export {};
@@ -0,0 +1,133 @@
1
+ import { walletIconBaseUrl } from "../../core/wallets";
2
+ const STANDARD_FEATURES = [
3
+ "standard:connect",
4
+ "standard:events",
5
+ ];
6
+ /**
7
+ * Validates that a given standard wallet has all the required standard features
8
+ * and additional custom features
9
+ */
10
+ export function isStandardWalletWithCustomFeatures(wallet, customFeatures) {
11
+ return [...STANDARD_FEATURES, ...customFeatures].every((feature) => feature in wallet.features);
12
+ }
13
+ function withAliases(aliases, data) {
14
+ return Object.fromEntries(aliases.map((alias) => [alias, data]));
15
+ }
16
+ /**
17
+ * Mapping of an ID and custom wallet overrides
18
+ * Used to unify wallets with different IDs into a single wallet
19
+ * These IDs can come from different wallet providers, e.g. EIP6963, wallets-standard, etc.
20
+ *
21
+ * @example Unify Metamask (EVM) and Metamask (Solana) to have the same icon, name, and ID
22
+ */
23
+ export const standardWalletOverrides = {
24
+ "Surf Wallet": {
25
+ icon: `${walletIconBaseUrl}/surf.webp`,
26
+ },
27
+ Suiet: {
28
+ icon: `${walletIconBaseUrl}/suiet.webp`,
29
+ },
30
+ "com.mystenlabs.suiwallet": {
31
+ icon: `${walletIconBaseUrl}/slush.webp`,
32
+ name: "Slush Wallet",
33
+ },
34
+ injected: {
35
+ name: "Browser Extension",
36
+ icon: `${walletIconBaseUrl}/wallet_icon.webp`,
37
+ },
38
+ walletConnect: {
39
+ icon: `${walletIconBaseUrl}/walletConnect.webp`,
40
+ },
41
+ "io.rabby": {
42
+ name: "Rabby",
43
+ icon: `${walletIconBaseUrl}/rabby.webp`,
44
+ connectorId: "rabby",
45
+ },
46
+ "me.rainbow": {
47
+ name: "Rainbow",
48
+ icon: `${walletIconBaseUrl}/rainbow.webp`,
49
+ connectorId: "rainbow",
50
+ },
51
+ "app.keplr": {
52
+ name: "Keplr",
53
+ icon: `${walletIconBaseUrl}/keplr.webp`,
54
+ connectorId: "keplr",
55
+ },
56
+ ...withAliases(["io.leapwallet.LeapWallet", "Leap Wallet"], {
57
+ name: "Leap",
58
+ icon: `${walletIconBaseUrl}/leap.webp`,
59
+ connectorId: "leap",
60
+ }),
61
+ ...withAliases(["com.crypto.wallet", "Crypto.com Onchain"], {
62
+ name: "Crypto.com",
63
+ connectorId: "cryptodotcom",
64
+ }),
65
+ ...withAliases(["app.nightly", "Nightly"], {
66
+ connectorId: "nightly",
67
+ }),
68
+ ...withAliases(["com.coinbase.wallet", "coinbaseWalletSDK"], {
69
+ name: "Coinbase Wallet",
70
+ icon: `${walletIconBaseUrl}/coinbase.webp`,
71
+ connectorId: "coinbase",
72
+ }),
73
+ ...withAliases([
74
+ "io.metamask",
75
+ "metaMaskSDK",
76
+ // For some reason the Solana wallet name ends with an invisible character
77
+ "MetaMask\uFEFF",
78
+ ], {
79
+ name: "MetaMask",
80
+ icon: `${walletIconBaseUrl}/metamask.webp`,
81
+ connectorId: "metamask",
82
+ }),
83
+ ...withAliases(["app.backpack", "Backpack"], {
84
+ name: "Backpack",
85
+ icon: `${walletIconBaseUrl}/backpack.webp`,
86
+ connectorId: "backpack",
87
+ }),
88
+ ...withAliases(["io.cosmostation", "Cosmostation Wallet"], {
89
+ name: "Cosmostation",
90
+ icon: `${walletIconBaseUrl}/cosmostation.webp`,
91
+ connectorId: "cosmostation",
92
+ }),
93
+ ...withAliases(["com.trustwallet.app", "Trust"], {
94
+ name: "Trust Wallet",
95
+ icon: `${walletIconBaseUrl}/trustwallet.webp`,
96
+ connectorId: "trustwallet",
97
+ }),
98
+ ...withAliases(["io.xdefi", "Ctrl Wallet"], {
99
+ name: "Ctrl Wallet",
100
+ icon: `${walletIconBaseUrl}/ctrl.webp`,
101
+ connectorId: "ctrl",
102
+ }),
103
+ ...withAliases(["com.bitget.web3", "Bitget Wallet"], {
104
+ name: "Bitget Wallet",
105
+ icon: `${walletIconBaseUrl}/bitget.webp`,
106
+ connectorId: "bitget",
107
+ }),
108
+ ...withAliases(["com.exodus.web3-wallet", "Exodus"], {
109
+ name: "Exodus",
110
+ icon: `${walletIconBaseUrl}/exodus.webp`,
111
+ connectorId: "exodus",
112
+ }),
113
+ ...withAliases(["com.okex.wallet", "OKX Wallet"], {
114
+ name: "OKX Wallet",
115
+ icon: `${walletIconBaseUrl}/okx.webp`,
116
+ connectorId: "okx",
117
+ }),
118
+ ...withAliases(["com.brave.wallet", "Brave Wallet"], {
119
+ name: "Brave Wallet",
120
+ icon: `${walletIconBaseUrl}/brave.webp`,
121
+ connectorId: "brave",
122
+ }),
123
+ ...withAliases(["app.phantom", "Phantom"], {
124
+ name: "Phantom",
125
+ icon: `${walletIconBaseUrl}/phantom.webp`,
126
+ connectorId: "phantom",
127
+ }),
128
+ ...withAliases(["TokenPocket", "https://www.tokenpocket.pro/en/download/app"], {
129
+ name: "TokenPocket",
130
+ connectorId: "tokenpocket",
131
+ }),
132
+ };
133
+ //# sourceMappingURL=walletStandardService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletStandardService.js","sourceRoot":"","sources":["../../../src/services/internal/walletStandardService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Token } from "@0xsquid/squid-types";
2
+ import { XrplNetwork, XrplPaymentTx, XrplTrustSetTx } from "../../core/types/xrpl";
3
+ /**
4
+ * Validates that a given address is a valid XRPL address.
5
+ *
6
+ * There are two types of address in XRPL:
7
+ * - X-address (e.g XVfC9...pokKH)
8
+ * - Classic address (e.g r4bA...WHCG)
9
+ */
10
+ export declare function isXrplAddressValid(address: string | undefined): boolean;
11
+ export declare function buildXrplTrustSetTx({ amount, sourceAddress, token, }: {
12
+ amount: string;
13
+ sourceAddress: string;
14
+ token: Token;
15
+ }): XrplTrustSetTx;
16
+ export declare function getXrplNetwork(chainId: string): XrplNetwork | null;
17
+ export declare function parseXrplPaymentTx(data: unknown): XrplPaymentTx | null;
@@ -0,0 +1,52 @@
1
+ import { isValidClassicAddress, isValidXAddress } from "ripple-address-codec";
2
+ import { CHAIN_IDS } from "../../core/constants";
3
+ import { XrplNetwork, } from "../../core/types/xrpl";
4
+ /**
5
+ * Validates that a given address is a valid XRPL address.
6
+ *
7
+ * There are two types of address in XRPL:
8
+ * - X-address (e.g XVfC9...pokKH)
9
+ * - Classic address (e.g r4bA...WHCG)
10
+ */
11
+ export function isXrplAddressValid(address) {
12
+ if (!address)
13
+ return false;
14
+ return isValidXAddress(address) || isValidClassicAddress(address);
15
+ }
16
+ export function buildXrplTrustSetTx({ amount, sourceAddress, token, }) {
17
+ const [currency, issuer] = token.address.split(".");
18
+ return {
19
+ TransactionType: "TrustSet",
20
+ Account: sourceAddress,
21
+ LimitAmount: {
22
+ currency,
23
+ issuer,
24
+ value: amount,
25
+ },
26
+ };
27
+ }
28
+ export function getXrplNetwork(chainId) {
29
+ switch (chainId) {
30
+ case CHAIN_IDS.XRPL:
31
+ return XrplNetwork.MAINNET;
32
+ case CHAIN_IDS.XRPL_TESTNET:
33
+ return XrplNetwork.TESTNET;
34
+ default:
35
+ return null;
36
+ }
37
+ }
38
+ export function parseXrplPaymentTx(data) {
39
+ try {
40
+ const asPaymentTx = data;
41
+ if (Array.isArray(asPaymentTx.Memos) &&
42
+ isXrplAddressValid(asPaymentTx.Account) &&
43
+ isXrplAddressValid(asPaymentTx.Destination)) {
44
+ return asPaymentTx;
45
+ }
46
+ throw new Error("Could not parse payment transaction");
47
+ }
48
+ catch (error) {
49
+ throw new Error("Could not parse payment transaction");
50
+ }
51
+ }
52
+ //# sourceMappingURL=xrplService.js.map