@0xsquid/react-hooks 6.4.1-beta.4 → 6.4.1-onramp-beta.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 (136) hide show
  1. package/dist/core/connectors/bitcoin/helpers.d.ts +0 -15
  2. package/dist/core/connectors/bitcoin/helpers.js +1 -6
  3. package/dist/core/connectors/bitcoin/helpers.js.map +1 -1
  4. package/dist/core/constants.d.ts +3 -1
  5. package/dist/core/constants.js +3 -6
  6. package/dist/core/constants.js.map +1 -1
  7. package/dist/core/index.d.ts +1 -1
  8. package/dist/core/index.js +1 -1
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/providers/SolanaProvider.d.ts +2 -0
  11. package/dist/core/providers/SolanaProvider.js.map +1 -1
  12. package/dist/core/queries/queries-keys.d.ts +26 -11
  13. package/dist/core/queries/queries-keys.js +81 -31
  14. package/dist/core/queries/queries-keys.js.map +1 -1
  15. package/dist/core/types/error.d.ts +4 -4
  16. package/dist/core/types/error.js.map +1 -1
  17. package/dist/core/types/event.d.ts +8 -0
  18. package/dist/core/types/index.d.ts +2 -4
  19. package/dist/core/types/index.js +1 -2
  20. package/dist/core/types/index.js.map +1 -1
  21. package/dist/core/types/onramps/onramp.d.ts +76 -2
  22. package/dist/core/types/transaction.d.ts +32 -10
  23. package/dist/core/types/transaction.js +0 -6
  24. package/dist/core/types/transaction.js.map +1 -1
  25. package/dist/core/wagmiConfig.js +8 -2
  26. package/dist/core/wagmiConfig.js.map +1 -1
  27. package/dist/hooks/cosmos/useCosmos.d.ts +0 -9
  28. package/dist/hooks/cosmos/useCosmos.js +18 -25
  29. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  30. package/dist/hooks/cosmos/useCosmosForChain.d.ts +1 -1
  31. package/dist/hooks/cosmos/useCosmosForChain.js +11 -7
  32. package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -1
  33. package/dist/hooks/index.d.ts +2 -7
  34. package/dist/hooks/index.js +2 -7
  35. package/dist/hooks/index.js.map +1 -1
  36. package/dist/hooks/onramp/useFiatToCrypto.d.ts +52 -44
  37. package/dist/hooks/onramp/useFiatToCrypto.js +160 -83
  38. package/dist/hooks/onramp/useFiatToCrypto.js.map +1 -1
  39. package/dist/hooks/solana/useSolana.d.ts +1 -2
  40. package/dist/hooks/solana/useSolana.js +2 -4
  41. package/dist/hooks/solana/useSolana.js.map +1 -1
  42. package/dist/hooks/store/useFiatTransactionStore.d.ts +20 -0
  43. package/dist/hooks/store/useFiatTransactionStore.js +39 -0
  44. package/dist/hooks/store/useFiatTransactionStore.js.map +1 -0
  45. package/dist/hooks/store/useHistoryStore.d.ts +13 -33
  46. package/dist/hooks/store/useHistoryStore.js +32 -120
  47. package/dist/hooks/store/useHistoryStore.js.map +1 -1
  48. package/dist/hooks/transaction/useAllTransactionsStatus.d.ts +3 -34
  49. package/dist/hooks/transaction/useAllTransactionsStatus.js +61 -130
  50. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
  51. package/dist/hooks/transaction/useApproval.js +2 -2
  52. package/dist/hooks/transaction/useApproval.js.map +1 -1
  53. package/dist/hooks/transaction/useEstimate.d.ts +1 -1
  54. package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -1
  55. package/dist/hooks/transaction/useExecuteTransaction.js +43 -40
  56. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  57. package/dist/hooks/transaction/useSingleTransaction.d.ts +10 -0
  58. package/dist/hooks/transaction/{useSwapTransactionStatus.js → useSingleTransaction.js} +17 -40
  59. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -0
  60. package/dist/hooks/user/useHistory.d.ts +9 -11
  61. package/dist/hooks/user/useHistory.js +47 -39
  62. package/dist/hooks/user/useHistory.js.map +1 -1
  63. package/dist/hooks/wallet/useMultiChainWallet.d.ts +0 -1
  64. package/dist/hooks/wallet/useMultiChainWallet.js +0 -18
  65. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  66. package/dist/hooks/wallet/useSigner.d.ts +7 -7
  67. package/dist/hooks/wallet/useSigner.js +13 -37
  68. package/dist/hooks/wallet/useSigner.js.map +1 -1
  69. package/dist/services/external/index.d.ts +0 -2
  70. package/dist/services/external/index.js +0 -2
  71. package/dist/services/external/index.js.map +1 -1
  72. package/dist/services/external/onrampAdapter.d.ts +12 -0
  73. package/dist/services/external/onrampAdapter.js +41 -0
  74. package/dist/services/external/onrampAdapter.js.map +1 -0
  75. package/dist/services/internal/errorService.d.ts +7 -3
  76. package/dist/services/internal/errorService.js.map +1 -1
  77. package/dist/services/internal/estimateService.js +3 -3
  78. package/dist/services/internal/estimateService.js.map +1 -1
  79. package/dist/services/internal/eventService.d.ts +16 -0
  80. package/dist/services/internal/eventService.js +14 -0
  81. package/dist/services/internal/eventService.js.map +1 -1
  82. package/dist/services/internal/fiatToCryptoService.d.ts +1 -14
  83. package/dist/services/internal/fiatToCryptoService.js +0 -29
  84. package/dist/services/internal/fiatToCryptoService.js.map +1 -1
  85. package/dist/services/internal/numberService.d.ts +1 -1
  86. package/dist/services/internal/numberService.js.map +1 -1
  87. package/dist/services/internal/transactionService.d.ts +36 -8
  88. package/dist/services/internal/transactionService.js +26 -27
  89. package/dist/services/internal/transactionService.js.map +1 -1
  90. package/dist/services/internal/transactionStatusService.d.ts +5 -16
  91. package/dist/services/internal/transactionStatusService.js +5 -78
  92. package/dist/services/internal/transactionStatusService.js.map +1 -1
  93. package/dist/tests/transactionService.test.js +18 -18
  94. package/dist/tests/transactionService.test.js.map +1 -1
  95. package/package.json +1 -1
  96. package/dist/core/client/index.d.ts +0 -12
  97. package/dist/core/client/index.js +0 -30
  98. package/dist/core/client/index.js.map +0 -1
  99. package/dist/core/types/history.d.ts +0 -82
  100. package/dist/core/types/history.js +0 -7
  101. package/dist/core/types/history.js.map +0 -1
  102. package/dist/hooks/store/useSendTransactionStore.d.ts +0 -20
  103. package/dist/hooks/store/useSendTransactionStore.js +0 -21
  104. package/dist/hooks/store/useSendTransactionStore.js.map +0 -1
  105. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.d.ts +0 -27
  106. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js +0 -57
  107. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js.map +0 -1
  108. package/dist/hooks/transaction/send/useSendTransaction.d.ts +0 -13
  109. package/dist/hooks/transaction/send/useSendTransaction.js +0 -155
  110. package/dist/hooks/transaction/send/useSendTransaction.js.map +0 -1
  111. package/dist/hooks/transaction/send/useSendTransactionGas.d.ts +0 -5
  112. package/dist/hooks/transaction/send/useSendTransactionGas.js +0 -67
  113. package/dist/hooks/transaction/send/useSendTransactionGas.js.map +0 -1
  114. package/dist/hooks/transaction/useSendTransactionStatus.d.ts +0 -11
  115. package/dist/hooks/transaction/useSendTransactionStatus.js +0 -53
  116. package/dist/hooks/transaction/useSendTransactionStatus.js.map +0 -1
  117. package/dist/hooks/transaction/useSwapTransactionStatus.d.ts +0 -15
  118. package/dist/hooks/transaction/useSwapTransactionStatus.js.map +0 -1
  119. package/dist/services/external/baseAdapter.d.ts +0 -31
  120. package/dist/services/external/baseAdapter.js +0 -20
  121. package/dist/services/external/baseAdapter.js.map +0 -1
  122. package/dist/services/external/onramperClientAdapter.d.ts +0 -15
  123. package/dist/services/external/onramperClientAdapter.js +0 -130
  124. package/dist/services/external/onramperClientAdapter.js.map +0 -1
  125. package/dist/services/external/revolutClientAdapter.d.ts +0 -30
  126. package/dist/services/external/revolutClientAdapter.js +0 -195
  127. package/dist/services/external/revolutClientAdapter.js.map +0 -1
  128. package/dist/services/internal/sendTransaction.d.ts +0 -35
  129. package/dist/services/internal/sendTransaction.js +0 -66
  130. package/dist/services/internal/sendTransaction.js.map +0 -1
  131. package/dist/services/internal/sendTransactionStatus.d.ts +0 -6
  132. package/dist/services/internal/sendTransactionStatus.js +0 -90
  133. package/dist/services/internal/sendTransactionStatus.js.map +0 -1
  134. package/dist/tests/revolutClientAdapter.test.d.ts +0 -1
  135. package/dist/tests/revolutClientAdapter.test.js +0 -181
  136. package/dist/tests/revolutClientAdapter.test.js.map +0 -1
@@ -1,13 +1,14 @@
1
- import { useMutation, useQuery } from "@tanstack/react-query";
1
+ import { useMutation, useQueries, useQuery } from "@tanstack/react-query";
2
2
  import { useMemo } from "react";
3
3
  import { keys } from "../../core/queries/queries-keys";
4
- import { HistoryTxType } from "../../core/types/history";
5
- import { FiatToCryptoService, getCountryData, getCurrencyData, } from "../../services/internal/fiatToCryptoService";
4
+ import { WidgetEvents } from "../../services";
5
+ import { OnrampService } from "../../services/external/onrampAdapter";
6
+ import { getCountryData, getCurrencyData, } from "../../services/internal/fiatToCryptoService";
6
7
  import { isWalletAddressValid } from "../../services/internal/walletService";
7
8
  import { useSquidChains } from "../chains/useSquidChains";
8
- import { useHistoryStore } from "../store/useHistoryStore";
9
+ import { useFiatTransactionStore } from "../store/useFiatTransactionStore";
9
10
  import { useSquidTokens } from "../tokens/useSquidTokens";
10
- export const TX_STATUS_CONSTANTS = {
11
+ const TX_STATUS_CONSTANTS = {
11
12
  RETRY_COUNT: 10,
12
13
  RETRY_DELAY: 60_000,
13
14
  REFETCH_INTERVAL: 30_000, // Check every 30 seconds
@@ -15,60 +16,76 @@ export const TX_STATUS_CONSTANTS = {
15
16
  /**
16
17
  * Final transaction statuses that indicate the transaction has reached a terminal state
17
18
  */
18
- export const FINAL_TRANSACTION_STATUSES = [
19
+ const FINAL_TRANSACTION_STATUSES = [
19
20
  "completed",
20
21
  "failed",
21
22
  ];
22
23
  /**
23
- * Hook to fetch quote for fiat to crypto conversion
24
- * @param provider - The fiat-to-crypto provider (e.g., Revolut, Onramper)
25
- * @param fiatCurrency - The source fiat currency (e.g., "USD")
26
- * @param cryptoCurrencyID - The target cryptocurrency ID (e.g., "ETH" or "USDC-ETH")
27
- * @param amount - The amount in fiat to convert
28
- * @returns Query result containing the quote information
24
+ * Fetches quotes for fiat to crypto conversion with provider details.
25
+ * Returns available rates, fees, and supported payment methods for the conversion.
29
26
  */
30
- export const useGetFiatQuote = ({ provider, fiatCurrency, cryptoCurrencyID, amount, region, enabled = true, }) => {
31
- const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
27
+ export const useGetFiatQuote = ({ fiatCurrency, cryptoCurrencyID, amount, region, enabled = true, }) => {
28
+ const service = useMemo(() => new OnrampService(), []);
29
+ const { data: config } = useGetOnRampConfig();
32
30
  return useQuery({
33
31
  queryKey: keys().fiatToCryptoQuote(fiatCurrency, cryptoCurrencyID, amount, region),
34
- queryFn: () => {
35
- return service.getQuote(fiatCurrency, cryptoCurrencyID, amount, undefined, region);
32
+ queryFn: async () => {
33
+ // Dispatch event before getting quote
34
+ WidgetEvents.getInstance().dispatchOnrampQuoteRequest({
35
+ fiatCurrency,
36
+ cryptoCurrencyID,
37
+ amount,
38
+ region,
39
+ });
40
+ const quoteResponse = await service.getQuote({
41
+ fiatCurrency,
42
+ cryptoCurrencyID,
43
+ amount,
44
+ region,
45
+ });
46
+ // Enhance quotes with provider information from config
47
+ if (quoteResponse.quotes && config?.supportedOnramps) {
48
+ quoteResponse.quotes = quoteResponse.quotes.map((quote) => ({
49
+ ...quote,
50
+ providerIcon: config?.supportedOnramps?.find((provider) => provider.id === quote.onrampProviderId)?.icon,
51
+ providerName: config?.supportedOnramps?.find((provider) => provider.id === quote.onrampProviderId)?.name || quote.providerName,
52
+ }));
53
+ }
54
+ return quoteResponse;
36
55
  },
37
56
  enabled: enabled && !!fiatCurrency && !!cryptoCurrencyID && amount > 0,
38
57
  });
39
58
  };
40
59
  /**
41
- * Hook to fetch provider configuration and filter compatible tokens
42
- * @param provider - The fiat-to-crypto provider
43
- * @returns Query result containing the provider config and filtered token list
60
+ * Fetches and caches onramp provider configuration.
61
+ * Includes supported tokens, payment methods, and country restrictions.
44
62
  */
45
- export const useGetOnRampConfig = (provider) => {
46
- const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
63
+ export const useGetOnRampConfig = () => {
64
+ const service = useMemo(() => new OnrampService(), []);
47
65
  const { chains } = useSquidChains();
48
66
  const { tokens } = useSquidTokens();
49
67
  return useQuery({
50
- queryKey: keys().fiatToCryptoConfig(provider?.key),
68
+ queryKey: keys().fiatToCryptoConfig(),
51
69
  queryFn: () => service.getConfiguration({
52
70
  chains,
53
71
  tokens,
54
72
  }),
55
73
  cacheTime: 1000 * 60 * 60,
56
- staleTime: 1000 * 60 * 30,
57
- enabled: !!provider,
74
+ staleTime: 1000 * 60 * 30, // 30 minutes
58
75
  });
59
76
  };
60
77
  /**
61
- * Hook to execute a fiat to crypto quote and handle the order creation
62
- * @param provider - The fiat-to-crypto provider
63
- * @param chainData - Optional chain data for address validation
64
- * @returns Mutation object for executing quotes
78
+ * Executes a fiat to crypto quote and creates an order.
79
+ * Validates wallet address and persists transaction for tracking.
65
80
  */
66
- export const useExecuteFiatQuote = (provider) => {
67
- const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
68
- const persistTransaction = useHistoryStore((state) => state.persistTransaction);
81
+ export const useExecuteFiatQuote = () => {
82
+ const service = useMemo(() => new OnrampService(), []);
83
+ const persistFiatTransaction = useFiatTransactionStore((state) => state.persistTransaction);
69
84
  const { findChain } = useSquidChains();
70
85
  return useMutation({
71
86
  mutationFn: async (executeQuoteRequest) => {
87
+ // Dispatch event before executing quote
88
+ WidgetEvents.getInstance().dispatchOnrampQuoteExecute(executeQuoteRequest);
72
89
  const chain = findChain(executeQuoteRequest.squidToken?.chainId);
73
90
  if (!chain) {
74
91
  throw new Error("Chain not found");
@@ -84,39 +101,21 @@ export const useExecuteFiatQuote = (provider) => {
84
101
  };
85
102
  },
86
103
  onSuccess: (result) => {
87
- const { executeQuoteRequest, toChain, orderId } = result;
88
- persistTransaction({
89
- data: {
90
- orderId,
91
- fromFiatCurrency: executeQuoteRequest.fiatCurrency,
92
- fromAmount: executeQuoteRequest.amount.toString(),
93
- toCryptoCurrencyID: executeQuoteRequest.cryptoCurrencyID,
94
- fromCountryCode: executeQuoteRequest.region ?? "",
95
- toTokenAddress: executeQuoteRequest.squidToken?.address ?? "",
96
- toCryptoAmount: executeQuoteRequest.cryptoAmount.toString(),
97
- toChainId: toChain?.chainId ?? "",
98
- toAddress: executeQuoteRequest.walletAddress,
99
- status: "awaiting_payment",
100
- timestamp: Date.now(),
101
- },
102
- txType: HistoryTxType.BUY,
103
- });
104
+ persistFiatTransaction(result);
104
105
  },
105
106
  });
106
107
  };
107
108
  /**
108
- * Hook to track the status of a fiat to crypto transaction
109
- * @param provider - The fiat-to-crypto provider
110
- * @param transactionId - The transaction ID to track
111
- * @returns Query result containing the transaction status
109
+ * Tracks the status of a fiat to crypto transaction.
110
+ * Auto-refreshes until transaction reaches a final state (completed/failed).
112
111
  */
113
- export const useFiatOnRampTxStatus = (provider, transactionId, walletAddress) => {
114
- const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
115
- const replaceTransactionStatus = useHistoryStore((state) => state.replaceTransactionStatus);
112
+ export const useFiatOnRampTxStatus = (transactionId, walletAddress, providerId) => {
113
+ const service = useMemo(() => new OnrampService(), []);
114
+ const updateTransactionStatus = useFiatTransactionStore((state) => state.updateTransactionStatus);
116
115
  return useQuery({
117
116
  queryKey: keys().fiatToCryptoStatus(transactionId),
118
- queryFn: () => service.getTransactionStatus(transactionId, walletAddress),
119
- enabled: !!transactionId && !!walletAddress,
117
+ queryFn: () => service.getTransactionStatus(transactionId, walletAddress, providerId),
118
+ enabled: !!transactionId && !!walletAddress && !!providerId,
120
119
  retry: TX_STATUS_CONSTANTS.RETRY_COUNT,
121
120
  retryDelay: TX_STATUS_CONSTANTS.RETRY_DELAY,
122
121
  refetchInterval: (data) => {
@@ -126,42 +125,65 @@ export const useFiatOnRampTxStatus = (provider, transactionId, walletAddress) =>
126
125
  return TX_STATUS_CONSTANTS.REFETCH_INTERVAL;
127
126
  },
128
127
  onError: () => {
129
- replaceTransactionStatus({
130
- txType: HistoryTxType.BUY,
131
- orderId: transactionId,
132
- status: "failed",
133
- transactionHash: undefined,
134
- });
128
+ updateTransactionStatus(transactionId, "failed", undefined);
135
129
  },
136
130
  });
137
131
  };
138
132
  /**
139
- * Hook to get currency details based on denomination
140
- * @param currencyCode - The currency code (e.g., "USD", "EUR")
141
- * @param provider - The fiat-to-crypto provider
142
- * @returns Currency details including symbol and denomination & min/max limits
133
+ * Tracks all pending fiat transactions and their status updates.
134
+ * Useful for displaying transaction history and real-time status updates.
143
135
  */
144
- export const useCurrencyDetails = (currencyCode, provider) => {
145
- const { data: config } = useGetOnRampConfig(provider);
136
+ export const useFiatTransactions = () => {
137
+ const service = useMemo(() => new OnrampService(), []);
138
+ const transactions = useFiatTransactionStore((state) => state.transactions);
139
+ const updateTransactionStatus = useFiatTransactionStore((state) => state.updateTransactionStatus);
140
+ const queries = useQueries({
141
+ queries: transactions
142
+ ? transactions
143
+ .filter((tx) => !FINAL_TRANSACTION_STATUSES.includes(tx.status))
144
+ .map((tx) => ({
145
+ queryKey: keys().fiatToCryptoStatus(tx.orderId),
146
+ queryFn: () => service.getTransactionStatus(tx.orderId, tx.toAddress, tx.providerId),
147
+ retry: TX_STATUS_CONSTANTS.RETRY_COUNT,
148
+ retryDelay: TX_STATUS_CONSTANTS.RETRY_DELAY,
149
+ refetchInterval: (data) => {
150
+ if (data?.status &&
151
+ FINAL_TRANSACTION_STATUSES.includes(data.status)) {
152
+ return false;
153
+ }
154
+ return TX_STATUS_CONSTANTS.REFETCH_INTERVAL;
155
+ },
156
+ onSuccess: (data) => {
157
+ updateTransactionStatus(tx.orderId, data.status, data.transactionHash);
158
+ },
159
+ onError: () => {
160
+ updateTransactionStatus(tx.orderId, "failed", undefined);
161
+ },
162
+ enabled: true,
163
+ }))
164
+ : [],
165
+ });
166
+ return {
167
+ transactions,
168
+ isLoading: queries.some((q) => q.isLoading),
169
+ isError: queries.some((q) => q.isError),
170
+ };
171
+ };
172
+ /**
173
+ * Gets currency details including symbol and limits.
174
+ * Example: USD → { symbol: "$", name: "US Dollar", ... }
175
+ */
176
+ export const useCurrencyDetails = (currencyCode) => {
177
+ const { data: config } = useGetOnRampConfig();
146
178
  return useMemo(() => {
147
179
  if (!currencyCode)
148
180
  return undefined;
149
- const currencyData = getCurrencyData(currencyCode);
150
- if (!currencyData)
151
- return undefined;
152
- // If we have a provider and config, enhance with limits
153
- const providerCurrency = config?.supportedCurrencies.find((c) => c.denomination === currencyCode);
154
- return {
155
- ...currencyData,
156
- minLimit: providerCurrency?.minLimit,
157
- maxLimit: providerCurrency?.maxLimit,
158
- };
159
- }, [currencyCode, config?.supportedCurrencies]);
181
+ return getCurrencyData(currencyCode);
182
+ }, [currencyCode, config?.supportedFiats]);
160
183
  };
161
184
  /**
162
- * Hook to get country details with flag URL based on country code
163
- * @param countryCode - The country code (e.g., "US", "GB")
164
- * @returns Country details including name, flag URL, and other information
185
+ * Gets country details with flag URL and localized name.
186
+ * Example: "US" { name: "United States", flag: "🇺🇸", ... }
165
187
  */
166
188
  export const useCountryDetails = (countryCode) => {
167
189
  return useMemo(() => {
@@ -170,4 +192,59 @@ export const useCountryDetails = (countryCode) => {
170
192
  return getCountryData(countryCode);
171
193
  }, [countryCode]);
172
194
  };
195
+ /**
196
+ * Filters and returns only valid quotes that have available payment methods.
197
+ * Ensures users only see quotes they can actually use.
198
+ */
199
+ export const useAvailableQuotes = (quotes) => {
200
+ return useMemo(() => {
201
+ if (!quotes?.length)
202
+ return [];
203
+ return quotes.filter((quote) => quote.paymentMethods?.length > 0 && quote.rate);
204
+ }, [quotes]);
205
+ };
206
+ /**
207
+ * Gets the recommended quote based on best rates or provider preferences.
208
+ * Falls back to first available quote if no specific recommendation.
209
+ */
210
+ export const useRecommendedQuote = (quotes, recommendedQuote) => {
211
+ const availableQuotes = useAvailableQuotes(quotes);
212
+ return useMemo(() => {
213
+ if (!availableQuotes.length)
214
+ return undefined;
215
+ if (!recommendedQuote)
216
+ return availableQuotes[0];
217
+ // Try to find the recommended quote among available quotes
218
+ const recommendedAvailableQuote = availableQuotes.find((quote) => quote.onrampProviderId === recommendedQuote.onrampProviderId);
219
+ // If recommended quote is not available, return first available quote
220
+ return recommendedAvailableQuote ?? availableQuotes[0];
221
+ }, [availableQuotes, recommendedQuote]);
222
+ };
223
+ /**
224
+ * Gets payment methods for a quote with recommendations.
225
+ * Helps guide users to optimal payment methods (lowest fees, fastest processing).
226
+ */
227
+ export const useQuotePaymentMethods = (quote) => {
228
+ return useMemo(() => {
229
+ if (!quote?.paymentMethods) {
230
+ return {
231
+ paymentMethods: [],
232
+ recommendedPaymentMethod: undefined,
233
+ recommendedPaymentMethodReason: undefined,
234
+ getPaymentMethodById: (id) => undefined,
235
+ };
236
+ }
237
+ const getPaymentMethodById = (id) => quote.paymentMethods.find((method) => method.id === id);
238
+ const recommendedPaymentMethod = quote.paymentMethodsRecommendation
239
+ ? getPaymentMethodById(quote.paymentMethodsRecommendation.recommendedId)
240
+ : quote.paymentMethods.find((method) => method.isRecommended) ??
241
+ quote.paymentMethods[0];
242
+ return {
243
+ paymentMethods: quote.paymentMethods,
244
+ recommendedPaymentMethod,
245
+ recommendedPaymentMethodReason: quote.paymentMethodsRecommendation?.reason,
246
+ getPaymentMethodById,
247
+ };
248
+ }, [quote]);
249
+ };
173
250
  //# sourceMappingURL=useFiatToCrypto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFiatToCrypto.js","sourceRoot":"","sources":["../../../src/hooks/onramp/useFiatToCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFiatToCrypto.js","sourceRoot":"","sources":["../../../src/hooks/onramp/useFiatToCrypto.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Adapter } from "@solana/wallet-adapter-base";
2
- import { Connection, PublicKey } from "@solana/web3.js";
2
+ import { PublicKey } from "@solana/web3.js";
3
3
  import { ISolanaContextData } from "../../core/providers/SolanaProvider";
4
4
  export interface SolanaWalletEvents {
5
5
  connect(publicKey: PublicKey): void;
@@ -8,4 +8,3 @@ export interface SolanaWalletEvents {
8
8
  }
9
9
  export type SolanaWalletAdapter = Adapter;
10
10
  export declare const useSolana: () => ISolanaContextData;
11
- export declare const useSolanaConnection: () => Connection;
@@ -83,6 +83,7 @@ export const useSolana = () => {
83
83
  }
84
84
  return solanaWalletObject;
85
85
  }, [solanaWalletObject, solanaAddress, solanaConnectedWallet]);
86
+ const connectionRef = useRef(new Connection(SOLANA_RPC_URL));
86
87
  return {
87
88
  connectSolana,
88
89
  isConnected,
@@ -91,10 +92,7 @@ export const useSolana = () => {
91
92
  solanaAddress,
92
93
  signer,
93
94
  wallet: solanaConnectedWallet,
95
+ connection: connectionRef.current,
94
96
  };
95
97
  };
96
- export const useSolanaConnection = () => {
97
- const connectionRef = useRef(new Connection(SOLANA_RPC_URL));
98
- return connectionRef.current;
99
- };
100
98
  //# sourceMappingURL=useSolana.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSolana.js","sourceRoot":"","sources":["../../../src/hooks/solana/useSolana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSolana.js","sourceRoot":"","sources":["../../../src/hooks/solana/useSolana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ExecuteFiatQuoteResultClient, FiatTransactionHistory } from "../../core/types/onramps/onramp";
2
+ interface FiatTransactionState {
3
+ transactions: FiatTransactionHistory[];
4
+ persistTransaction: (details: ExecuteFiatQuoteResultClient) => void;
5
+ updateTransactionStatus: (orderId: string, status: FiatTransactionHistory["status"], transactionHash?: string) => void;
6
+ removeTransaction: (orderId: string) => void;
7
+ removeAllTransactions: () => void;
8
+ }
9
+ export declare const useFiatTransactionStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<FiatTransactionState>, "persist"> & {
10
+ persist: {
11
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<FiatTransactionState, FiatTransactionState>>) => void;
12
+ clearStorage: () => void;
13
+ rehydrate: () => void | Promise<void>;
14
+ hasHydrated: () => boolean;
15
+ onHydrate: (fn: (state: FiatTransactionState) => void) => () => void;
16
+ onFinishHydration: (fn: (state: FiatTransactionState) => void) => () => void;
17
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<FiatTransactionState, FiatTransactionState>>;
18
+ };
19
+ }>;
20
+ export {};
@@ -0,0 +1,39 @@
1
+ import { create } from "zustand";
2
+ import { persist } from "zustand/middleware";
3
+ export const useFiatTransactionStore = create(persist((set) => ({
4
+ transactions: [],
5
+ persistTransaction: (details) => set((state) => {
6
+ const { executeQuoteRequest, toChain, orderId } = details;
7
+ return {
8
+ transactions: [
9
+ ...state.transactions,
10
+ {
11
+ orderId,
12
+ fromFiatCurrency: executeQuoteRequest.fiatCurrency,
13
+ fromAmount: executeQuoteRequest.amount.toString(),
14
+ toCryptoCurrencyID: executeQuoteRequest.cryptoCurrencyID,
15
+ fromCountryCode: executeQuoteRequest.region ?? "",
16
+ toTokenAddress: executeQuoteRequest.squidToken?.address ?? "",
17
+ toCryptoAmount: executeQuoteRequest.cryptoAmount.toString(),
18
+ toChainId: toChain?.chainId ?? "",
19
+ toAddress: executeQuoteRequest.walletAddress,
20
+ status: "awaiting_payment",
21
+ timestamp: Date.now(),
22
+ providerId: executeQuoteRequest.providerId,
23
+ },
24
+ ],
25
+ };
26
+ }),
27
+ updateTransactionStatus: (orderId, status, transactionHash) => set((state) => ({
28
+ transactions: state.transactions.map((tx) => tx.orderId === orderId ? { ...tx, status, transactionHash } : tx),
29
+ })),
30
+ removeTransaction: (orderId) => set((state) => ({
31
+ transactions: state.transactions.filter((tx) => tx.orderId !== orderId),
32
+ })),
33
+ removeAllTransactions: () => set(() => ({
34
+ transactions: [],
35
+ })),
36
+ }), {
37
+ name: "squid.fiat.transactions.store",
38
+ }));
39
+ //# sourceMappingURL=useFiatTransactionStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFiatTransactionStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useFiatTransactionStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkB7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAC3C,OAAO,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC1D,OAAO;YACL,YAAY,EAAE;gBACZ,GAAG,KAAK,CAAC,YAAY;gBACrB;oBACE,OAAO;oBACP,gBAAgB,EAAE,mBAAmB,CAAC,YAAY;oBAClD,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACjD,kBAAkB,EAAE,mBAAmB,CAAC,gBAAgB;oBACxD,eAAe,EAAE,mBAAmB,CAAC,MAAM,IAAI,EAAE;oBACjD,cAAc,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE;oBAC7D,cAAc,EAAE,mBAAmB,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC3D,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;oBACjC,SAAS,EAAE,mBAAmB,CAAC,aAAa;oBAC5C,MAAM,EAAE,kBAAkB;oBAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,UAAU,EAAE,mBAAmB,CAAC,UAAU;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC,CAAC;IACJ,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC1C,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CACjE;KACF,CAAC,CAAC;IACL,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,OAAO,CAC/B;KACF,CAAC,CAAC;IACL,qBAAqB,EAAE,GAAG,EAAE,CAC1B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACT,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;CACN,CAAC,EACF;IACE,IAAI,EAAE,+BAA+B;CACtC,CACF,CACF,CAAC"}
@@ -1,41 +1,21 @@
1
- import type { FiatTransactionHistory, HistoryTransaction, SendTransactionHistory, SwapTransactionHistory, TxTypeToTransactionMap } from "../../core/types/history";
2
- import { HistoryTxType } from "../../core/types/history";
3
- interface HistoryStoreState {
4
- transactions: HistoryTransaction[];
1
+ import { SimplifiedTransactionHistory, TransactionStatus } from "../../core/types/transaction";
2
+ interface HistoryState {
3
+ transactions: SimplifiedTransactionHistory[];
4
+ persistTransaction: (tx: SimplifiedTransactionHistory) => void;
5
+ replaceTransactionStatus: (transactionId: string, statusResponse: any, status: TransactionStatus) => void;
6
+ removeTransaction: (transactionId: string) => void;
7
+ removeAllTransactions: () => void;
8
+ replaceTransactionAtNonce: (nonce: number, fromAddress: string, newTx: SimplifiedTransactionHistory) => void;
5
9
  }
6
- export type ReplaceTransactionStatusParams = ({
7
- txType: HistoryTxType.SWAP;
8
- } & Pick<SwapTransactionHistory, "statusResponse" | "status" | "transactionId">) | ({
9
- txType: HistoryTxType.SEND;
10
- } & Pick<SendTransactionHistory, "hash" | "status">) | ({
11
- txType: HistoryTxType.BUY;
12
- } & Pick<FiatTransactionHistory, "status" | "transactionHash" | "orderId">);
13
- interface HistoryStore extends HistoryStoreState {
14
- persistTransaction: (tx: HistoryTransaction) => void;
15
- replaceTransactionStatus: ({}: ReplaceTransactionStatusParams) => void;
16
- removeTransaction: ({}: {
17
- txType: HistoryTxType;
18
- transactionId: string;
19
- }) => void;
20
- replaceTransactionAtNonce: ({}: {
21
- nonce: number;
22
- fromAddress: string;
23
- newTx: HistoryTransaction;
24
- }) => void;
25
- findTransaction: <T extends HistoryTxType>({}: {
26
- txType: T;
27
- transactionId: string | undefined;
28
- }) => TxTypeToTransactionMap[T] | undefined;
29
- }
30
- export declare const useHistoryStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<HistoryStore>, "persist"> & {
10
+ export declare const useHistoryStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<HistoryState>, "persist"> & {
31
11
  persist: {
32
- setOptions: (options: Partial<import("zustand/middleware").PersistOptions<HistoryStore, HistoryStoreState>>) => void;
12
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<HistoryState, HistoryState>>) => void;
33
13
  clearStorage: () => void;
34
14
  rehydrate: () => void | Promise<void>;
35
15
  hasHydrated: () => boolean;
36
- onHydrate: (fn: (state: HistoryStore) => void) => () => void;
37
- onFinishHydration: (fn: (state: HistoryStore) => void) => () => void;
38
- getOptions: () => Partial<import("zustand/middleware").PersistOptions<HistoryStore, HistoryStoreState>>;
16
+ onHydrate: (fn: (state: HistoryState) => void) => () => void;
17
+ onFinishHydration: (fn: (state: HistoryState) => void) => () => void;
18
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<HistoryState, HistoryState>>;
39
19
  };
40
20
  }>;
41
21
  export {};