@0xsquid/react-hooks 6.4.1-beta.5 → 6.4.1-onramp-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.
- package/dist/core/queries/queries-keys.d.ts +1 -1
- package/dist/core/queries/queries-keys.js +1 -5
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/core/types/event.d.ts +8 -0
- package/dist/core/types/history.d.ts +1 -0
- package/dist/core/types/history.js.map +1 -1
- package/dist/core/types/onramps/onramp.d.ts +82 -7
- package/dist/hooks/onramp/useFiatToCrypto.d.ts +58 -44
- package/dist/hooks/onramp/useFiatToCrypto.js +205 -76
- package/dist/hooks/onramp/useFiatToCrypto.js.map +1 -1
- package/dist/services/external/index.d.ts +0 -2
- package/dist/services/external/index.js +0 -2
- package/dist/services/external/index.js.map +1 -1
- package/dist/services/external/onrampAdapter.d.ts +12 -0
- package/dist/services/external/onrampAdapter.js +41 -0
- package/dist/services/external/onrampAdapter.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/internal/eventService.d.ts +16 -0
- package/dist/services/internal/eventService.js +14 -0
- package/dist/services/internal/eventService.js.map +1 -1
- package/dist/services/internal/fiatToCryptoService.d.ts +1 -14
- package/dist/services/internal/fiatToCryptoService.js +0 -29
- package/dist/services/internal/fiatToCryptoService.js.map +1 -1
- package/package.json +1 -1
- package/dist/services/external/baseAdapter.d.ts +0 -31
- package/dist/services/external/baseAdapter.js +0 -20
- package/dist/services/external/baseAdapter.js.map +0 -1
- package/dist/services/external/onramperClientAdapter.d.ts +0 -15
- package/dist/services/external/onramperClientAdapter.js +0 -130
- package/dist/services/external/onramperClientAdapter.js.map +0 -1
- package/dist/services/external/revolutClientAdapter.d.ts +0 -30
- package/dist/services/external/revolutClientAdapter.js +0 -195
- package/dist/services/external/revolutClientAdapter.js.map +0 -1
- package/dist/tests/revolutClientAdapter.test.d.ts +0 -1
- package/dist/tests/revolutClientAdapter.test.js +0 -181
- package/dist/tests/revolutClientAdapter.test.js.map +0 -1
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { useMutation, useQuery } from "@tanstack/react-query";
|
|
1
|
+
import { useMutation, useQueries, useQuery, } from "@tanstack/react-query";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
+
import { v4 as uuidv4 } from "uuid";
|
|
3
4
|
import { keys } from "../../core/queries/queries-keys";
|
|
4
|
-
import { HistoryTxType } from "../../core/types/history";
|
|
5
|
-
import {
|
|
5
|
+
import { HistoryTxType, } from "../../core/types/history";
|
|
6
|
+
import { WidgetEvents } from "../../services";
|
|
7
|
+
import { OnrampService } from "../../services/external/onrampAdapter";
|
|
8
|
+
import { countryCurrencyMap } from "../../services/internal/countryCurrencyMap";
|
|
9
|
+
import { getCountryData, getCurrencyData, } from "../../services/internal/fiatToCryptoService";
|
|
6
10
|
import { isWalletAddressValid } from "../../services/internal/walletService";
|
|
7
11
|
import { useSquidChains } from "../chains/useSquidChains";
|
|
8
|
-
import { useHistoryStore } from "../store/useHistoryStore";
|
|
12
|
+
import { useHistoryStore, } from "../store/useHistoryStore";
|
|
9
13
|
import { useSquidTokens } from "../tokens/useSquidTokens";
|
|
10
|
-
|
|
11
|
-
RETRY_COUNT:
|
|
14
|
+
const TX_STATUS_CONSTANTS = {
|
|
15
|
+
RETRY_COUNT: 2,
|
|
12
16
|
RETRY_DELAY: 60_000,
|
|
13
17
|
REFETCH_INTERVAL: 30_000, // Check every 30 seconds
|
|
14
18
|
};
|
|
@@ -20,51 +24,102 @@ export const FINAL_TRANSACTION_STATUSES = [
|
|
|
20
24
|
"failed",
|
|
21
25
|
];
|
|
22
26
|
/**
|
|
23
|
-
*
|
|
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
|
|
27
|
+
* Configuration for transaction status tracking
|
|
29
28
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const createTransactionStatusConfig = ({ transactionId, walletAddress, providerId, replaceTransactionStatus, }) => {
|
|
30
|
+
return {
|
|
31
|
+
queryKey: keys().fiatToCryptoStatus(transactionId),
|
|
32
|
+
queryFn: () => new OnrampService().getTransactionStatus(transactionId, walletAddress, providerId),
|
|
33
|
+
enabled: !!transactionId && !!walletAddress && !!providerId,
|
|
34
|
+
retry: TX_STATUS_CONSTANTS.RETRY_COUNT,
|
|
35
|
+
retryDelay: TX_STATUS_CONSTANTS.RETRY_DELAY,
|
|
36
|
+
refetchInterval: (data) => {
|
|
37
|
+
if (data?.status && FINAL_TRANSACTION_STATUSES.includes(data.status)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return TX_STATUS_CONSTANTS.REFETCH_INTERVAL;
|
|
41
|
+
},
|
|
42
|
+
onSuccess: (data) => {
|
|
43
|
+
if (data) {
|
|
44
|
+
replaceTransactionStatus({
|
|
45
|
+
txType: HistoryTxType.BUY,
|
|
46
|
+
orderId: transactionId,
|
|
47
|
+
status: data.status,
|
|
48
|
+
transactionHash: data.transactionHash,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
onError: () => {
|
|
53
|
+
replaceTransactionStatus({
|
|
54
|
+
txType: HistoryTxType.BUY,
|
|
55
|
+
orderId: transactionId,
|
|
56
|
+
status: "failed",
|
|
57
|
+
transactionHash: undefined,
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Fetches quotes for fiat to crypto conversion with provider details.
|
|
64
|
+
* Returns available rates, fees, and supported payment methods for the conversion.
|
|
65
|
+
*/
|
|
66
|
+
export const useGetFiatQuote = ({ fiatCurrency, cryptoCurrencyID, amount, region, enabled = true, onSuccess, }) => {
|
|
67
|
+
const service = useMemo(() => new OnrampService(), []);
|
|
68
|
+
const { data: config } = useGetOnRampConfig();
|
|
32
69
|
return useQuery({
|
|
33
70
|
queryKey: keys().fiatToCryptoQuote(fiatCurrency, cryptoCurrencyID, amount, region),
|
|
34
|
-
queryFn: () => {
|
|
35
|
-
|
|
71
|
+
queryFn: async () => {
|
|
72
|
+
// Dispatch event before getting quote
|
|
73
|
+
WidgetEvents.getInstance().dispatchOnrampQuoteRequest({
|
|
74
|
+
fiatCurrency,
|
|
75
|
+
cryptoCurrencyID,
|
|
76
|
+
amount,
|
|
77
|
+
region,
|
|
78
|
+
});
|
|
79
|
+
const quoteResponse = await service.getQuote({
|
|
80
|
+
fiatCurrency,
|
|
81
|
+
cryptoCurrencyID,
|
|
82
|
+
amount,
|
|
83
|
+
region,
|
|
84
|
+
});
|
|
85
|
+
// Enhance quotes with provider information from config
|
|
86
|
+
if (quoteResponse.quotes && config?.supportedOnramps) {
|
|
87
|
+
quoteResponse.quotes = quoteResponse.quotes.map((quote) => ({
|
|
88
|
+
...quote,
|
|
89
|
+
providerIcon: config?.supportedOnramps?.find((provider) => provider.id === quote.onrampProviderId)?.icon,
|
|
90
|
+
providerName: config?.supportedOnramps?.find((provider) => provider.id === quote.onrampProviderId)?.name || quote.providerName,
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
return quoteResponse;
|
|
36
94
|
},
|
|
37
95
|
enabled: enabled && !!fiatCurrency && !!cryptoCurrencyID && amount > 0,
|
|
96
|
+
onSuccess,
|
|
38
97
|
});
|
|
39
98
|
};
|
|
40
99
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* @returns Query result containing the provider config and filtered token list
|
|
100
|
+
* Fetches and caches onramp provider configuration.
|
|
101
|
+
* Includes supported tokens, payment methods, and country restrictions.
|
|
44
102
|
*/
|
|
45
|
-
export const useGetOnRampConfig = (
|
|
46
|
-
const service = useMemo(() => new
|
|
103
|
+
export const useGetOnRampConfig = () => {
|
|
104
|
+
const service = useMemo(() => new OnrampService(), []);
|
|
47
105
|
const { chains } = useSquidChains();
|
|
48
106
|
const { tokens } = useSquidTokens();
|
|
49
107
|
return useQuery({
|
|
50
|
-
queryKey: keys().fiatToCryptoConfig(
|
|
108
|
+
queryKey: keys().fiatToCryptoConfig(),
|
|
51
109
|
queryFn: () => service.getConfiguration({
|
|
52
110
|
chains,
|
|
53
111
|
tokens,
|
|
54
112
|
}),
|
|
55
113
|
cacheTime: 1000 * 60 * 60,
|
|
56
|
-
staleTime: 1000 * 60 * 30,
|
|
57
|
-
enabled: !!provider,
|
|
114
|
+
staleTime: 1000 * 60 * 30, // 30 minutes
|
|
58
115
|
});
|
|
59
116
|
};
|
|
60
117
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* @param chainData - Optional chain data for address validation
|
|
64
|
-
* @returns Mutation object for executing quotes
|
|
118
|
+
* Executes a fiat to crypto quote and creates an order.
|
|
119
|
+
* Validates wallet address and persists transaction for tracking.
|
|
65
120
|
*/
|
|
66
|
-
export const useExecuteFiatQuote = (
|
|
67
|
-
const service = useMemo(() => new
|
|
121
|
+
export const useExecuteFiatQuote = () => {
|
|
122
|
+
const service = useMemo(() => new OnrampService(), []);
|
|
68
123
|
const persistTransaction = useHistoryStore((state) => state.persistTransaction);
|
|
69
124
|
const { findChain } = useSquidChains();
|
|
70
125
|
return useMutation({
|
|
@@ -76,11 +131,19 @@ export const useExecuteFiatQuote = (provider) => {
|
|
|
76
131
|
if (!isWalletAddressValid(chain, executeQuoteRequest.walletAddress)) {
|
|
77
132
|
throw new Error("Invalid wallet address for selected network");
|
|
78
133
|
}
|
|
79
|
-
|
|
134
|
+
// Revolut expects us to provide a quoteId, but Onramper already provides one
|
|
135
|
+
const orderId = executeQuoteRequest.orderId ?? uuidv4();
|
|
136
|
+
const executeQuoteRequestWithOrderId = {
|
|
137
|
+
...executeQuoteRequest,
|
|
138
|
+
orderId,
|
|
139
|
+
};
|
|
140
|
+
// Dispatch event before executing quote
|
|
141
|
+
WidgetEvents.getInstance().dispatchOnrampQuoteExecute(executeQuoteRequestWithOrderId);
|
|
142
|
+
const executeQuoteResult = await service.executeQuote(executeQuoteRequestWithOrderId);
|
|
80
143
|
return {
|
|
81
144
|
...executeQuoteResult,
|
|
145
|
+
executeQuoteRequest: executeQuoteRequestWithOrderId,
|
|
82
146
|
toChain: chain,
|
|
83
|
-
executeQuoteRequest,
|
|
84
147
|
};
|
|
85
148
|
},
|
|
86
149
|
onSuccess: (result) => {
|
|
@@ -98,6 +161,7 @@ export const useExecuteFiatQuote = (provider) => {
|
|
|
98
161
|
toAddress: executeQuoteRequest.walletAddress,
|
|
99
162
|
status: "awaiting_payment",
|
|
100
163
|
timestamp: Date.now(),
|
|
164
|
+
providerId: executeQuoteRequest.providerId,
|
|
101
165
|
},
|
|
102
166
|
txType: HistoryTxType.BUY,
|
|
103
167
|
});
|
|
@@ -105,63 +169,65 @@ export const useExecuteFiatQuote = (provider) => {
|
|
|
105
169
|
});
|
|
106
170
|
};
|
|
107
171
|
/**
|
|
108
|
-
*
|
|
109
|
-
* @param provider - The fiat-to-crypto provider
|
|
110
|
-
* @param transactionId - The transaction ID to track
|
|
111
|
-
* @returns Query result containing the transaction status
|
|
172
|
+
* Tracks the status of a single fiat to crypto transaction.
|
|
112
173
|
*/
|
|
113
|
-
export const useFiatOnRampTxStatus = (
|
|
114
|
-
const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
|
|
174
|
+
export const useFiatOnRampTxStatus = (transactionId, walletAddress, providerId) => {
|
|
115
175
|
const replaceTransactionStatus = useHistoryStore((state) => state.replaceTransactionStatus);
|
|
116
176
|
return useQuery({
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
177
|
+
...createTransactionStatusConfig({
|
|
178
|
+
transactionId,
|
|
179
|
+
walletAddress,
|
|
180
|
+
providerId,
|
|
181
|
+
replaceTransactionStatus,
|
|
182
|
+
}),
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Tracks all pending fiat transactions.
|
|
187
|
+
*/
|
|
188
|
+
export const useFiatTransactions = () => {
|
|
189
|
+
const transactions = useHistoryStore((state) => state.transactions.filter((tx) => tx.txType === HistoryTxType.BUY));
|
|
190
|
+
const replaceTransactionStatus = useHistoryStore((state) => state.replaceTransactionStatus);
|
|
191
|
+
const pendingTransactions = useMemo(() => transactions?.filter((tx) => !FINAL_TRANSACTION_STATUSES.includes(tx.data.status)) ?? [], [transactions]);
|
|
192
|
+
const queries = useQueries({
|
|
193
|
+
queries: pendingTransactions.map((tx) => ({
|
|
194
|
+
...createTransactionStatusConfig({
|
|
195
|
+
transactionId: tx.data.orderId,
|
|
196
|
+
walletAddress: tx.data.toAddress,
|
|
197
|
+
providerId: tx.data.providerId,
|
|
198
|
+
replaceTransactionStatus,
|
|
199
|
+
}),
|
|
200
|
+
})),
|
|
136
201
|
});
|
|
202
|
+
return {
|
|
203
|
+
transactions: transactions.map((tx) => tx.data),
|
|
204
|
+
isLoading: queries.some((q) => q.isLoading),
|
|
205
|
+
isError: queries.some((q) => q.isError),
|
|
206
|
+
};
|
|
137
207
|
};
|
|
138
208
|
/**
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* @param provider - The fiat-to-crypto provider
|
|
142
|
-
* @returns Currency details including symbol and denomination & min/max limits
|
|
209
|
+
* Gets currency details including symbol and limits.
|
|
210
|
+
* Example: USD → { symbol: "$", name: "US Dollar", ... }
|
|
143
211
|
*/
|
|
144
|
-
export const useCurrencyDetails = (currencyCode
|
|
145
|
-
const { data: config } = useGetOnRampConfig(
|
|
212
|
+
export const useCurrencyDetails = (currencyCode) => {
|
|
213
|
+
const { data: config } = useGetOnRampConfig();
|
|
146
214
|
return useMemo(() => {
|
|
147
215
|
if (!currencyCode)
|
|
148
216
|
return undefined;
|
|
149
217
|
const currencyData = getCurrencyData(currencyCode);
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}, [currencyCode, config?.supportedCurrencies]);
|
|
218
|
+
const countryData = countryCurrencyMap.find((c) => c.currencyCode === currencyCode);
|
|
219
|
+
if (currencyData) {
|
|
220
|
+
return {
|
|
221
|
+
...currencyData,
|
|
222
|
+
countryCode: countryData?.countryCode?.toLowerCase(),
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
return undefined;
|
|
226
|
+
}, [currencyCode, config?.supportedFiats]);
|
|
160
227
|
};
|
|
161
228
|
/**
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* @returns Country details including name, flag URL, and other information
|
|
229
|
+
* Gets country details with flag URL and localized name.
|
|
230
|
+
* Example: "US" → { name: "United States", flag: "🇺🇸", ... }
|
|
165
231
|
*/
|
|
166
232
|
export const useCountryDetails = (countryCode) => {
|
|
167
233
|
return useMemo(() => {
|
|
@@ -170,4 +236,67 @@ export const useCountryDetails = (countryCode) => {
|
|
|
170
236
|
return getCountryData(countryCode);
|
|
171
237
|
}, [countryCode]);
|
|
172
238
|
};
|
|
239
|
+
/**
|
|
240
|
+
* Filters and returns only valid quotes that have available payment methods.
|
|
241
|
+
* Ensures users only see quotes they can actually use.
|
|
242
|
+
*/
|
|
243
|
+
export const useAvailableQuotes = (quotes) => {
|
|
244
|
+
return useMemo(() => {
|
|
245
|
+
if (!quotes?.length)
|
|
246
|
+
return [];
|
|
247
|
+
return quotes.filter((quote) => quote.paymentMethods?.length > 0 && quote.rate);
|
|
248
|
+
}, [quotes]);
|
|
249
|
+
};
|
|
250
|
+
/**
|
|
251
|
+
* Gets the recommended quote based on best rates or provider preferences.
|
|
252
|
+
* Falls back to first available quote if no specific recommendation.
|
|
253
|
+
*/
|
|
254
|
+
export const useRecommendedQuote = (quotes, recommendedQuote) => {
|
|
255
|
+
const availableQuotes = useAvailableQuotes(quotes);
|
|
256
|
+
return useMemo(() => {
|
|
257
|
+
if (!availableQuotes.length)
|
|
258
|
+
return undefined;
|
|
259
|
+
if (!recommendedQuote)
|
|
260
|
+
return availableQuotes[0];
|
|
261
|
+
// Try to find the recommended quote among available quotes
|
|
262
|
+
const recommendedAvailableQuote = availableQuotes.find((quote) => quote.onrampProviderId === recommendedQuote.onrampProviderId);
|
|
263
|
+
// If recommended quote is not available, return first available quote
|
|
264
|
+
return recommendedAvailableQuote ?? availableQuotes[0];
|
|
265
|
+
}, [availableQuotes, recommendedQuote]);
|
|
266
|
+
};
|
|
267
|
+
/**
|
|
268
|
+
* Gets payment methods for a quote with recommendations.
|
|
269
|
+
* Helps guide users to optimal payment methods (lowest fees, fastest processing).
|
|
270
|
+
*/
|
|
271
|
+
export const useQuotePaymentMethods = (quote) => {
|
|
272
|
+
return useMemo(() => {
|
|
273
|
+
if (!quote?.paymentMethods) {
|
|
274
|
+
return {
|
|
275
|
+
paymentMethods: [],
|
|
276
|
+
recommendedPaymentMethod: undefined,
|
|
277
|
+
recommendedPaymentMethodReason: undefined,
|
|
278
|
+
getPaymentMethodById: (id) => undefined,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
const getPaymentMethodById = (id) => quote.paymentMethods.find((method) => method.id === id);
|
|
282
|
+
const recommendedPaymentMethod = quote.paymentMethodsRecommendation
|
|
283
|
+
? getPaymentMethodById(quote.paymentMethodsRecommendation.recommendedId)
|
|
284
|
+
: quote.paymentMethods.find((method) => method.isRecommended) ??
|
|
285
|
+
quote.paymentMethods[0];
|
|
286
|
+
// Sort payment methods to put recommended first
|
|
287
|
+
const sortedPaymentMethods = [...quote.paymentMethods].sort((a, b) => {
|
|
288
|
+
if (a.id === recommendedPaymentMethod?.id)
|
|
289
|
+
return -1;
|
|
290
|
+
if (b.id === recommendedPaymentMethod?.id)
|
|
291
|
+
return 1;
|
|
292
|
+
return 0;
|
|
293
|
+
});
|
|
294
|
+
return {
|
|
295
|
+
paymentMethods: sortedPaymentMethods,
|
|
296
|
+
recommendedPaymentMethod,
|
|
297
|
+
recommendedPaymentMethodReason: quote.paymentMethodsRecommendation?.reason,
|
|
298
|
+
getPaymentMethodById,
|
|
299
|
+
};
|
|
300
|
+
}, [quote]);
|
|
301
|
+
};
|
|
173
302
|
//# sourceMappingURL=useFiatToCrypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFiatToCrypto.js","sourceRoot":"","sources":["../../../src/hooks/onramp/useFiatToCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useFiatToCrypto.js","sourceRoot":"","sources":["../../../src/hooks/onramp/useFiatToCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/external/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/external/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ChainData, Token } from "@0xsquid/squid-types";
|
|
2
|
+
import { ExecuteFiatQuoteResult, ExecuteQuoteClient, OnrampConfigResponse, OnRampQuoteParams, OnrampQuoteResponse, OnRampTransactionStatus } from "../../core/types/onramps/onramp";
|
|
3
|
+
export declare class OnrampService {
|
|
4
|
+
private readonly baseUrl;
|
|
5
|
+
getQuote(params: OnRampQuoteParams): Promise<OnrampQuoteResponse>;
|
|
6
|
+
executeQuote(params: ExecuteQuoteClient): Promise<ExecuteFiatQuoteResult>;
|
|
7
|
+
getTransactionStatus(transactionId: string, walletAddress: string, providerId: string): Promise<OnRampTransactionStatus>;
|
|
8
|
+
getConfiguration({ chains, tokens, }: {
|
|
9
|
+
chains: ChainData[];
|
|
10
|
+
tokens: Token[];
|
|
11
|
+
}): Promise<OnrampConfigResponse>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
export class OnrampService {
|
|
3
|
+
baseUrl = `http://localhost:3006/api/fiat-to-crypto`;
|
|
4
|
+
async getQuote(params) {
|
|
5
|
+
const { data } = await axios.get(`${this.baseUrl}/quotes`, {
|
|
6
|
+
params: {
|
|
7
|
+
fiatCurrency: params.fiatCurrency,
|
|
8
|
+
cryptoCurrencyID: params.cryptoCurrencyID,
|
|
9
|
+
amount: params.amount,
|
|
10
|
+
region: params.region,
|
|
11
|
+
paymentMethod: params.paymentMethod,
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
async executeQuote(params) {
|
|
17
|
+
const { data } = await axios.post(`${this.baseUrl}/execute`, params);
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
async getTransactionStatus(transactionId, walletAddress, providerId) {
|
|
21
|
+
const { data } = await axios.get(`${this.baseUrl}/status/${transactionId}`, {
|
|
22
|
+
params: {
|
|
23
|
+
providerId,
|
|
24
|
+
wallet: walletAddress,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
async getConfiguration({ chains, tokens, }) {
|
|
30
|
+
const { data } = await axios.get(`${this.baseUrl}/config`);
|
|
31
|
+
// Filter supportedCryptos to only include tokens that match our provided tokens
|
|
32
|
+
const filteredCryptos = data.supportedCryptos.filter((supportedCrypto) => tokens.some((token) => token.address.toLowerCase() ===
|
|
33
|
+
supportedCrypto.address.toLowerCase() &&
|
|
34
|
+
token.chainId === supportedCrypto.chainId));
|
|
35
|
+
return {
|
|
36
|
+
...data,
|
|
37
|
+
supportedCryptos: filteredCryptos,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=onrampAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onrampAdapter.js","sourceRoot":"","sources":["../../../src/services/external/onrampAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,OAAO,aAAa;IACP,OAAO,GAAG,0CAA0C,CAAC;IAEtE,KAAK,CAAC,QAAQ,CAAC,MAAyB;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,IAAI,CAAC,OAAO,SAAS,EACxB;YACE,MAAM,EAAE;gBACN,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAA0B;QAE1B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,GAAG,IAAI,CAAC,OAAO,UAAU,EACzB,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,aAAqB,EACrB,aAAqB,EACrB,UAAkB;QAElB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,IAAI,CAAC,OAAO,WAAW,aAAa,EAAE,EACzC;YACE,MAAM,EAAE;gBACN,UAAU;gBACV,MAAM,EAAE,aAAa;aACtB;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EACrB,MAAM,EACN,MAAM,GAIP;QACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,IAAI,CAAC,OAAO,SAAS,CACzB,CAAC;QAEF,gFAAgF;QAChF,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CACvE,MAAM,CAAC,IAAI,CACT,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;YACzB,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE;YACvC,KAAK,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO,CAC5C,CACF,CAAC;QAEF,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,eAAe;SAClC,CAAC;IACJ,CAAC;CACF"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from "./internal/cosmosService";
|
|
|
6
6
|
export * from "./internal/errorService";
|
|
7
7
|
export * from "./internal/eventService";
|
|
8
8
|
export * from "./internal/evmService";
|
|
9
|
+
export * from "./internal/fiatToCryptoService";
|
|
9
10
|
export * from "./internal/numberService";
|
|
10
11
|
export * from "./internal/priceService";
|
|
11
12
|
export * from "./internal/searchService";
|
package/dist/services/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from "./internal/cosmosService";
|
|
|
6
6
|
export * from "./internal/errorService";
|
|
7
7
|
export * from "./internal/eventService";
|
|
8
8
|
export * from "./internal/evmService";
|
|
9
|
+
export * from "./internal/fiatToCryptoService";
|
|
9
10
|
export * from "./internal/numberService";
|
|
10
11
|
export * from "./internal/priceService";
|
|
11
12
|
export * from "./internal/searchService";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RouteRequest, RouteResponse, Token } from "@0xsquid/squid-types";
|
|
2
2
|
import type { EventListenerFunction, WidgetEventMap } from "../../core/types/event";
|
|
3
|
+
import { ExecuteQuoteClient } from "../../core/types/onramps/onramp";
|
|
3
4
|
type FindTokenMethod = (address?: string, chainId?: string) => Token | undefined;
|
|
4
5
|
/**
|
|
5
6
|
* Creates a hash string from quote request parameters to track changes
|
|
@@ -96,5 +97,20 @@ export declare class WidgetEvents extends EventTarget {
|
|
|
96
97
|
* @param data Onchain rejection details
|
|
97
98
|
*/
|
|
98
99
|
dispatchOnchainReject(data: WidgetEventMap["onchainReject"]): void;
|
|
100
|
+
/**
|
|
101
|
+
* Dispatch event when requesting an onramp quote
|
|
102
|
+
* @param data Quote request parameters
|
|
103
|
+
*/
|
|
104
|
+
dispatchOnrampQuoteRequest(data: {
|
|
105
|
+
fiatCurrency: string;
|
|
106
|
+
cryptoCurrencyID: string;
|
|
107
|
+
amount: number;
|
|
108
|
+
region?: string;
|
|
109
|
+
}): void;
|
|
110
|
+
/**
|
|
111
|
+
* Dispatch event when executing an onramp quote
|
|
112
|
+
* @param data Quote execution parameters
|
|
113
|
+
*/
|
|
114
|
+
dispatchOnrampQuoteExecute(data: ExecuteQuoteClient): void;
|
|
99
115
|
}
|
|
100
116
|
export {};
|
|
@@ -152,5 +152,19 @@ export class WidgetEvents extends EventTarget {
|
|
|
152
152
|
dispatchOnchainReject(data) {
|
|
153
153
|
this.dispatch("onchainReject", data);
|
|
154
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Dispatch event when requesting an onramp quote
|
|
157
|
+
* @param data Quote request parameters
|
|
158
|
+
*/
|
|
159
|
+
dispatchOnrampQuoteRequest(data) {
|
|
160
|
+
this.dispatch("onrampQuoteRequest", data);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Dispatch event when executing an onramp quote
|
|
164
|
+
* @param data Quote execution parameters
|
|
165
|
+
*/
|
|
166
|
+
dispatchOnrampQuoteExecute(data) {
|
|
167
|
+
this.dispatch("onrampQuoteExecute", data);
|
|
168
|
+
}
|
|
155
169
|
}
|
|
156
170
|
//# sourceMappingURL=eventService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventService.js","sourceRoot":"","sources":["../../../src/services/internal/eventService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eventService.js","sourceRoot":"","sources":["../../../src/services/internal/eventService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
import { CountryWithCode,
|
|
2
|
-
import { ChainData, Token } from "@0xsquid/squid-types";
|
|
1
|
+
import { CountryWithCode, FiatCurrencyEnhanced } from "../../core/types/onramps/onramp";
|
|
3
2
|
interface CountryResponse {
|
|
4
3
|
countryName: string;
|
|
5
4
|
countryCode: string;
|
|
6
5
|
}
|
|
7
6
|
export declare const getUserCountry: () => Promise<CountryResponse>;
|
|
8
|
-
export declare class FiatToCryptoService {
|
|
9
|
-
private provider?;
|
|
10
|
-
constructor(provider?: FiatToCryptoProvider);
|
|
11
|
-
static getProviderInfo(provider: FiatToCryptoProvider): import("../external/baseAdapter").ProviderInfo;
|
|
12
|
-
getQuote(fiatCurrency: string, cryptoCurrencyID: string, amount: number, paymentMethod?: string, region?: string): Promise<OnRampQuoteResponse>;
|
|
13
|
-
getTransactionStatus(transactionId: string, walletAddress: string): Promise<OnRampTransactionStatus>;
|
|
14
|
-
executeQuote(executeQuoteRequest: ExecuteQuoteClient): Promise<ExecuteFiatQuoteResult>;
|
|
15
|
-
getConfiguration(squidConfig: {
|
|
16
|
-
chains: ChainData[];
|
|
17
|
-
tokens: Token[];
|
|
18
|
-
}): Promise<FiatToCryptoConfig | undefined>;
|
|
19
|
-
}
|
|
20
7
|
/**
|
|
21
8
|
* Get country data from country code
|
|
22
9
|
* @param countryCode - The country code (e.g., "US", "GB")
|
|
@@ -15,35 +15,6 @@ export const getUserCountry = async () => {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
-
export class FiatToCryptoService {
|
|
19
|
-
provider;
|
|
20
|
-
constructor(provider) {
|
|
21
|
-
this.provider = provider;
|
|
22
|
-
}
|
|
23
|
-
static getProviderInfo(provider) {
|
|
24
|
-
return provider.getInfo();
|
|
25
|
-
}
|
|
26
|
-
async getQuote(fiatCurrency, cryptoCurrencyID, amount, paymentMethod = "card", region = DEFAULT_COUNTRY_CODE) {
|
|
27
|
-
if (!this.provider)
|
|
28
|
-
throw new Error("Provider is not initialized");
|
|
29
|
-
return this.provider.getQuote(fiatCurrency, cryptoCurrencyID, amount, paymentMethod, region);
|
|
30
|
-
}
|
|
31
|
-
async getTransactionStatus(transactionId, walletAddress) {
|
|
32
|
-
if (!this.provider)
|
|
33
|
-
throw new Error("Provider is not initialized");
|
|
34
|
-
return this.provider.getTransactionStatus(transactionId, walletAddress);
|
|
35
|
-
}
|
|
36
|
-
async executeQuote(executeQuoteRequest) {
|
|
37
|
-
if (!this.provider)
|
|
38
|
-
throw new Error("Provider is not initialized");
|
|
39
|
-
return this.provider.executeQuote(executeQuoteRequest);
|
|
40
|
-
}
|
|
41
|
-
async getConfiguration(squidConfig) {
|
|
42
|
-
if (!this.provider)
|
|
43
|
-
return undefined;
|
|
44
|
-
return this.provider.getConfiguration(squidConfig);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
18
|
/**
|
|
48
19
|
* Get country data from country code
|
|
49
20
|
* @param countryCode - The country code (e.g., "US", "GB")
|