@0xsquid/react-hooks 6.4.0 → 6.4.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.
- package/dist/core/queries/queries-keys.d.ts +7 -1
- package/dist/core/queries/queries-keys.js +24 -0
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/onramps/index.d.ts +2 -0
- package/dist/core/types/onramps/index.js +3 -0
- package/dist/core/types/onramps/index.js.map +1 -0
- package/dist/core/types/onramps/onramp.d.ts +101 -0
- package/dist/core/types/onramps/onramp.js +2 -0
- package/dist/core/types/onramps/onramp.js.map +1 -0
- package/dist/core/types/onramps/revolut.d.ts +92 -0
- package/dist/core/types/onramps/revolut.js +2 -0
- package/dist/core/types/onramps/revolut.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/onramp/useFiatToCrypto.d.ts +61 -0
- package/dist/hooks/onramp/useFiatToCrypto.js +190 -0
- package/dist/hooks/onramp/useFiatToCrypto.js.map +1 -0
- package/dist/hooks/store/useFiatTransactionStore.d.ts +20 -0
- package/dist/hooks/store/useFiatTransactionStore.js +38 -0
- package/dist/hooks/store/useFiatTransactionStore.js.map +1 -0
- package/dist/hooks/utils/useUtils.d.ts +7 -0
- package/dist/hooks/utils/useUtils.js +20 -0
- package/dist/hooks/utils/useUtils.js.map +1 -0
- package/dist/hooks/wallet/useEns.d.ts +0 -1
- package/dist/hooks/wallet/useEns.js +1 -13
- package/dist/hooks/wallet/useEns.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/external/baseAdapter.d.ts +31 -0
- package/dist/services/external/baseAdapter.js +20 -0
- package/dist/services/external/baseAdapter.js.map +1 -0
- package/dist/services/external/index.d.ts +3 -0
- package/dist/services/external/index.js +4 -0
- package/dist/services/external/index.js.map +1 -0
- package/dist/services/external/onramperClientAdapter.d.ts +15 -0
- package/dist/services/external/onramperClientAdapter.js +130 -0
- package/dist/services/external/onramperClientAdapter.js.map +1 -0
- package/dist/services/external/revolutClientAdapter.d.ts +30 -0
- package/dist/services/external/revolutClientAdapter.js +195 -0
- package/dist/services/external/revolutClientAdapter.js.map +1 -0
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/internal/assetsService.d.ts +2 -0
- package/dist/services/internal/assetsService.js +6 -0
- package/dist/services/internal/assetsService.js.map +1 -1
- package/dist/services/internal/countryCurrencyMap.d.ts +6 -0
- package/dist/services/internal/countryCurrencyMap.js +945 -0
- package/dist/services/internal/countryCurrencyMap.js.map +1 -0
- package/dist/services/internal/fiatToCryptoService.d.ts +24 -0
- package/dist/services/internal/fiatToCryptoService.js +65 -0
- package/dist/services/internal/fiatToCryptoService.js.map +1 -0
- package/dist/tests/assetsService.test.js +13 -26
- package/dist/tests/assetsService.test.js.map +1 -1
- package/dist/tests/revolutClientAdapter.test.d.ts +1 -0
- package/dist/tests/revolutClientAdapter.test.js +181 -0
- package/dist/tests/revolutClientAdapter.test.js.map +1 -0
- package/package.json +4 -2
|
@@ -30,7 +30,10 @@ export declare enum QueryKeys {
|
|
|
30
30
|
AllConnectedWalletBalances = "allConnectedWalletBalances",
|
|
31
31
|
HistoricalData = "historicalData",
|
|
32
32
|
TokensData = "tokensData",
|
|
33
|
-
TokenData = "tokenData"
|
|
33
|
+
TokenData = "tokenData",
|
|
34
|
+
FiatToCryptoQuote = "fiatToCryptoQuote",
|
|
35
|
+
FiatToCryptoStatus = "fiatToCryptoStatus",
|
|
36
|
+
FiatToCryptoConfig = "fiatToCryptoConfig"
|
|
34
37
|
}
|
|
35
38
|
export declare const keys: () => {
|
|
36
39
|
all: QueryKeys;
|
|
@@ -61,5 +64,8 @@ export declare const keys: () => {
|
|
|
61
64
|
ensData: (address?: string) => (string | undefined)[];
|
|
62
65
|
ensSearch: (query?: string) => (string | undefined)[];
|
|
63
66
|
cosmosAddress: (chainId: string | undefined, cosmosAddress: string | undefined) => (string | undefined)[];
|
|
67
|
+
fiatToCryptoQuote: (fiatCurrency: string, cryptoCurrencyID: string, amount: number, region?: string) => (string | number | undefined)[];
|
|
68
|
+
fiatToCryptoStatus: (transactionId?: string) => (string | undefined)[];
|
|
69
|
+
fiatToCryptoConfig: (provider?: string) => (string | undefined)[];
|
|
64
70
|
};
|
|
65
71
|
export declare const getPrefixKey: (key: QueryKeys) => QueryKeys[];
|
|
@@ -27,6 +27,9 @@ export var QueryKeys;
|
|
|
27
27
|
QueryKeys["HistoricalData"] = "historicalData";
|
|
28
28
|
QueryKeys["TokensData"] = "tokensData";
|
|
29
29
|
QueryKeys["TokenData"] = "tokenData";
|
|
30
|
+
QueryKeys["FiatToCryptoQuote"] = "fiatToCryptoQuote";
|
|
31
|
+
QueryKeys["FiatToCryptoStatus"] = "fiatToCryptoStatus";
|
|
32
|
+
QueryKeys["FiatToCryptoConfig"] = "fiatToCryptoConfig";
|
|
30
33
|
})(QueryKeys || (QueryKeys = {}));
|
|
31
34
|
export const keys = () => ({
|
|
32
35
|
// ============
|
|
@@ -175,6 +178,27 @@ export const keys = () => ({
|
|
|
175
178
|
// Cosmos
|
|
176
179
|
// ============
|
|
177
180
|
cosmosAddress: (chainId, cosmosAddress) => [QueryKeys.All, QueryKeys.CosmosAddress, chainId, cosmosAddress],
|
|
181
|
+
// ============
|
|
182
|
+
// Fiat to Crypto
|
|
183
|
+
// ============
|
|
184
|
+
fiatToCryptoQuote: (fiatCurrency, cryptoCurrencyID, amount, region) => [
|
|
185
|
+
"fiat-to-crypto",
|
|
186
|
+
"quote",
|
|
187
|
+
fiatCurrency,
|
|
188
|
+
cryptoCurrencyID,
|
|
189
|
+
amount,
|
|
190
|
+
region,
|
|
191
|
+
],
|
|
192
|
+
fiatToCryptoStatus: (transactionId) => [
|
|
193
|
+
QueryKeys.All,
|
|
194
|
+
QueryKeys.FiatToCryptoStatus,
|
|
195
|
+
transactionId,
|
|
196
|
+
],
|
|
197
|
+
fiatToCryptoConfig: (provider) => [
|
|
198
|
+
"fiat-to-crypto",
|
|
199
|
+
"config",
|
|
200
|
+
provider,
|
|
201
|
+
],
|
|
178
202
|
});
|
|
179
203
|
export const getPrefixKey = (key) => {
|
|
180
204
|
switch (key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-keys.js","sourceRoot":"","sources":["../../../src/core/queries/queries-keys.ts"],"names":[],"mappings":"AAUA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"queries-keys.js","sourceRoot":"","sources":["../../../src/core/queries/queries-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,3 +3,4 @@ export type { SwapParams } from "./swap";
|
|
|
3
3
|
export type { Chain, Token } from "./tokens";
|
|
4
4
|
export { AxelarStatusResponseType, TransactionStatus, type SimplifiedTransactionHistory, type TransactionParams, } from "./transaction";
|
|
5
5
|
export type { BitcoinWallet, ConnectorID, CosmosWallet, EnsData, EnsSearchResult, FullAddressData, NetworkConfig, SolanaWallet, SupportedChain, Wallet, } from "./wallet";
|
|
6
|
+
export type * from "./onramps/";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/onramps/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ChainData } from "@0xsquid/squid-types";
|
|
2
|
+
import { ICountry } from "countries-list";
|
|
3
|
+
import { BaseFiatToCryptoAdapter } from "../../../services/external/baseAdapter";
|
|
4
|
+
import { Token } from "../tokens";
|
|
5
|
+
export type OnRampTransactionStatusType = "awaiting_payment" | "processing" | "completed" | "failed";
|
|
6
|
+
export type PaymentMethodType = "credit_card" | "bank_transfer";
|
|
7
|
+
export type OnRampProviderType = "revolut" | "onramper";
|
|
8
|
+
export type ExecuteFiatQuoteResult = {
|
|
9
|
+
redirectUrl: string | unknown;
|
|
10
|
+
orderId: string;
|
|
11
|
+
};
|
|
12
|
+
export type ExecuteFiatQuoteResultClient = ExecuteFiatQuoteResult & {
|
|
13
|
+
executeQuoteRequest: ExecuteQuoteClient;
|
|
14
|
+
toChain: ChainData | undefined;
|
|
15
|
+
};
|
|
16
|
+
export type OnRampQuoteResponse = {
|
|
17
|
+
fiatCurrency: string;
|
|
18
|
+
cryptoCurrencyID: string;
|
|
19
|
+
amount: number;
|
|
20
|
+
fees?: {
|
|
21
|
+
fixed?: number;
|
|
22
|
+
percentage?: number;
|
|
23
|
+
};
|
|
24
|
+
cryptoAmount: number;
|
|
25
|
+
};
|
|
26
|
+
export type OnRampQuoteParams = {
|
|
27
|
+
fiatCurrency: string;
|
|
28
|
+
cryptoCurrencyID: string;
|
|
29
|
+
amount: number | string;
|
|
30
|
+
paymentMethod?: string;
|
|
31
|
+
region?: string;
|
|
32
|
+
};
|
|
33
|
+
export type OnRampTransactionStatus = {
|
|
34
|
+
transactionId: string;
|
|
35
|
+
transactionHash?: string;
|
|
36
|
+
status: OnRampTransactionStatusType;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
updatedAt: string;
|
|
39
|
+
errorMessage?: string | null;
|
|
40
|
+
};
|
|
41
|
+
export type ExecuteQuoteServer = {
|
|
42
|
+
orderId: string;
|
|
43
|
+
fiatCurrency: string;
|
|
44
|
+
cryptoCurrencyID: string;
|
|
45
|
+
amount: number;
|
|
46
|
+
walletAddress: string;
|
|
47
|
+
paymentMethod: PaymentMethodType;
|
|
48
|
+
region?: string;
|
|
49
|
+
};
|
|
50
|
+
export type ExecuteQuoteClient = Omit<ExecuteQuoteServer, "orderId"> & {
|
|
51
|
+
cryptoAmount: number;
|
|
52
|
+
squidToken?: Token;
|
|
53
|
+
fees?: {
|
|
54
|
+
fixed: number;
|
|
55
|
+
percentage: number;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export type FiatCurrency = {
|
|
59
|
+
denomination: string;
|
|
60
|
+
minLimit?: number;
|
|
61
|
+
maxLimit?: number;
|
|
62
|
+
};
|
|
63
|
+
export type FiatCurrencyEnhanced = FiatCurrency & {
|
|
64
|
+
symbol: string;
|
|
65
|
+
name?: string;
|
|
66
|
+
flagUrl?: string;
|
|
67
|
+
};
|
|
68
|
+
export type OnRampCryptoAsset = {
|
|
69
|
+
tokenSymbol: string;
|
|
70
|
+
blockchain: string;
|
|
71
|
+
smartContractAddress?: string;
|
|
72
|
+
};
|
|
73
|
+
export type TokenWithOnRampID = Token & {
|
|
74
|
+
cryptoCurrencyID: string;
|
|
75
|
+
};
|
|
76
|
+
export type CountryWithCode = ICountry & {
|
|
77
|
+
code: string;
|
|
78
|
+
flagUrl?: string;
|
|
79
|
+
};
|
|
80
|
+
export type FiatToCryptoConfig = {
|
|
81
|
+
supportedPaymentMethods: string[];
|
|
82
|
+
supportedTokens: TokenWithOnRampID[];
|
|
83
|
+
supportedCurrencies: FiatCurrencyEnhanced[];
|
|
84
|
+
supportedCountries: CountryWithCode[];
|
|
85
|
+
};
|
|
86
|
+
export type FiatToCryptoProvider = BaseFiatToCryptoAdapter;
|
|
87
|
+
export type FiatTransactionHistory = {
|
|
88
|
+
fromCountryCode: string;
|
|
89
|
+
orderId: string;
|
|
90
|
+
fromFiatCurrency: string;
|
|
91
|
+
fromAmount: string;
|
|
92
|
+
toCryptoCurrencyID: string;
|
|
93
|
+
toTokenAddress: string;
|
|
94
|
+
toCryptoAmount: string;
|
|
95
|
+
toChainId: string;
|
|
96
|
+
toAddress: string;
|
|
97
|
+
status: OnRampTransactionStatusType;
|
|
98
|
+
timestamp: number;
|
|
99
|
+
transactionHash?: string;
|
|
100
|
+
errorMessage?: string;
|
|
101
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onramp.js","sourceRoot":"","sources":["../../../../src/core/types/onramps/onramp.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface RevolutQuoteResponse {
|
|
2
|
+
service_fee: {
|
|
3
|
+
amount: number;
|
|
4
|
+
currency: string;
|
|
5
|
+
};
|
|
6
|
+
network_fee: {
|
|
7
|
+
amount: number;
|
|
8
|
+
currency: string;
|
|
9
|
+
};
|
|
10
|
+
crypto: {
|
|
11
|
+
amount: number;
|
|
12
|
+
currencyId: string;
|
|
13
|
+
};
|
|
14
|
+
partner_fee: {
|
|
15
|
+
amount: number;
|
|
16
|
+
currency: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface RevolutRedirectResponse {
|
|
20
|
+
ramp_redirect_url: string;
|
|
21
|
+
}
|
|
22
|
+
export interface RevolutQuoteParams {
|
|
23
|
+
fiat: string;
|
|
24
|
+
crypto: string;
|
|
25
|
+
amount: string;
|
|
26
|
+
payment?: string;
|
|
27
|
+
region?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface RevolutCryptoAsset {
|
|
30
|
+
id: string;
|
|
31
|
+
currency: string;
|
|
32
|
+
blockchain: string;
|
|
33
|
+
smartContractAddress?: string;
|
|
34
|
+
feePercentages?: number[];
|
|
35
|
+
}
|
|
36
|
+
export interface RevolutConfig {
|
|
37
|
+
version: string;
|
|
38
|
+
countries: string[];
|
|
39
|
+
fiat: {
|
|
40
|
+
currency: string;
|
|
41
|
+
min_limit: number;
|
|
42
|
+
max_limit: number;
|
|
43
|
+
}[];
|
|
44
|
+
crypto: RevolutCryptoAsset[];
|
|
45
|
+
payment_methods: string[];
|
|
46
|
+
}
|
|
47
|
+
export interface RevolutOrderStatus {
|
|
48
|
+
id: string;
|
|
49
|
+
fiat: {
|
|
50
|
+
amount: number;
|
|
51
|
+
currency: string;
|
|
52
|
+
};
|
|
53
|
+
crypto: {
|
|
54
|
+
amount: number;
|
|
55
|
+
currencyId: string;
|
|
56
|
+
};
|
|
57
|
+
fees: {
|
|
58
|
+
ramp_fee: {
|
|
59
|
+
amount: number;
|
|
60
|
+
currency: string;
|
|
61
|
+
};
|
|
62
|
+
partner_fee: {
|
|
63
|
+
amount: number;
|
|
64
|
+
currency: string;
|
|
65
|
+
};
|
|
66
|
+
network_fee: {
|
|
67
|
+
amount: number;
|
|
68
|
+
currency: string;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
exchange_rate: number;
|
|
72
|
+
payment: string;
|
|
73
|
+
created_at: string;
|
|
74
|
+
updated_at: string;
|
|
75
|
+
status: string;
|
|
76
|
+
wallet: string;
|
|
77
|
+
transaction_hash?: string;
|
|
78
|
+
fees_partner_currency: {
|
|
79
|
+
ramp_fee: {
|
|
80
|
+
amount: number;
|
|
81
|
+
currency: string;
|
|
82
|
+
};
|
|
83
|
+
partner_fee: {
|
|
84
|
+
amount: number;
|
|
85
|
+
currency: string;
|
|
86
|
+
};
|
|
87
|
+
network_fee: {
|
|
88
|
+
amount: number;
|
|
89
|
+
currency: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revolut.js","sourceRoot":"","sources":["../../../../src/core/types/onramps/revolut.ts"],"names":[],"mappings":""}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -2,11 +2,13 @@ export { useSquidChains } from "./chains/useSquidChains";
|
|
|
2
2
|
export { useClient } from "./client/useClient";
|
|
3
3
|
export { useCosmosForChain } from "./cosmos/useCosmosForChain";
|
|
4
4
|
export { useKeyboardNavigation } from "./navigation/useKeyboardNavigation";
|
|
5
|
+
export * from "./onramp/useFiatToCrypto";
|
|
5
6
|
export { useSquidQueryClient } from "./query/useSquidQueryClient";
|
|
6
7
|
export { useSquid } from "./squid/useSquid";
|
|
7
8
|
export { useAddressBookStore } from "./store/useAddressBookStore";
|
|
8
9
|
export { useAssetsColorsStore } from "./store/useAssetsColorsStore";
|
|
9
10
|
export { useFavoriteTokensStore, type FavoriteToken, } from "./store/useFavoriteTokensStore";
|
|
11
|
+
export { useFiatTransactionStore } from "./store/useFiatTransactionStore";
|
|
10
12
|
export { useHistoryStore } from "./store/useHistoryStore";
|
|
11
13
|
export { useConfigStore, useSquidStore, useSwapRoutePersistStore, useTransactionStore, } from "./store/useSquidStore";
|
|
12
14
|
export { useDepositAddress } from "./swap/useDepositAddress";
|
|
@@ -32,6 +34,7 @@ export { useSingleTransaction } from "./transaction/useSingleTransaction";
|
|
|
32
34
|
export { useAvatar } from "./user/useAvatar";
|
|
33
35
|
export { useHistory } from "./user/useHistory";
|
|
34
36
|
export { useUserParams } from "./user/useUserParams";
|
|
37
|
+
export { useDebouncedValue } from "./utils/useUtils";
|
|
35
38
|
export { useAddToken } from "./wallet/useAddToken";
|
|
36
39
|
export { useAutoConnect } from "./wallet/useAutoConnect";
|
|
37
40
|
export { useEnsDataForAddress, useEnsSearch } from "./wallet/useEns";
|
package/dist/hooks/index.js
CHANGED
|
@@ -2,11 +2,13 @@ export { useSquidChains } from "./chains/useSquidChains";
|
|
|
2
2
|
export { useClient } from "./client/useClient";
|
|
3
3
|
export { useCosmosForChain } from "./cosmos/useCosmosForChain";
|
|
4
4
|
export { useKeyboardNavigation } from "./navigation/useKeyboardNavigation";
|
|
5
|
+
export * from "./onramp/useFiatToCrypto";
|
|
5
6
|
export { useSquidQueryClient } from "./query/useSquidQueryClient";
|
|
6
7
|
export { useSquid } from "./squid/useSquid";
|
|
7
8
|
export { useAddressBookStore } from "./store/useAddressBookStore";
|
|
8
9
|
export { useAssetsColorsStore } from "./store/useAssetsColorsStore";
|
|
9
10
|
export { useFavoriteTokensStore, } from "./store/useFavoriteTokensStore";
|
|
11
|
+
export { useFiatTransactionStore } from "./store/useFiatTransactionStore";
|
|
10
12
|
export { useHistoryStore } from "./store/useHistoryStore";
|
|
11
13
|
export { useConfigStore, useSquidStore, useSwapRoutePersistStore, useTransactionStore, } from "./store/useSquidStore";
|
|
12
14
|
export { useDepositAddress } from "./swap/useDepositAddress";
|
|
@@ -32,6 +34,7 @@ export { useSingleTransaction } from "./transaction/useSingleTransaction";
|
|
|
32
34
|
export { useAvatar } from "./user/useAvatar";
|
|
33
35
|
export { useHistory } from "./user/useHistory";
|
|
34
36
|
export { useUserParams } from "./user/useUserParams";
|
|
37
|
+
export { useDebouncedValue } from "./utils/useUtils";
|
|
35
38
|
export { useAddToken } from "./wallet/useAddToken";
|
|
36
39
|
export { useAutoConnect } from "./wallet/useAutoConnect";
|
|
37
40
|
export { useEnsDataForAddress, useEnsSearch } from "./wallet/useEns";
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,sBAAsB,GAEvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EACL,gBAAgB,EAChB,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CountryWithCode, ExecuteFiatQuoteResultClient, ExecuteQuoteClient, FiatCurrencyEnhanced, FiatToCryptoConfig, FiatToCryptoProvider, OnRampQuoteResponse, OnRampTransactionStatus } from "../../core/types/onramps/onramp";
|
|
2
|
+
interface GetFiatQuoteParams {
|
|
3
|
+
provider: FiatToCryptoProvider;
|
|
4
|
+
fiatCurrency: string;
|
|
5
|
+
cryptoCurrencyID: string;
|
|
6
|
+
amount: number;
|
|
7
|
+
region?: string;
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Hook to fetch quote for fiat to crypto conversion
|
|
12
|
+
* @param provider - The fiat-to-crypto provider (e.g., Revolut, Onramper)
|
|
13
|
+
* @param fiatCurrency - The source fiat currency (e.g., "USD")
|
|
14
|
+
* @param cryptoCurrencyID - The target cryptocurrency ID (e.g., "ETH" or "USDC-ETH")
|
|
15
|
+
* @param amount - The amount in fiat to convert
|
|
16
|
+
* @returns Query result containing the quote information
|
|
17
|
+
*/
|
|
18
|
+
export declare const useGetFiatQuote: ({ provider, fiatCurrency, cryptoCurrencyID, amount, region, enabled, }: GetFiatQuoteParams) => import("@tanstack/react-query").UseQueryResult<OnRampQuoteResponse, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Hook to fetch provider configuration and filter compatible tokens
|
|
21
|
+
* @param provider - The fiat-to-crypto provider
|
|
22
|
+
* @returns Query result containing the provider config and filtered token list
|
|
23
|
+
*/
|
|
24
|
+
export declare const useGetOnRampConfig: (provider?: FiatToCryptoProvider) => import("@tanstack/react-query").UseQueryResult<FiatToCryptoConfig | undefined, unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* Hook to execute a fiat to crypto quote and handle the order creation
|
|
27
|
+
* @param provider - The fiat-to-crypto provider
|
|
28
|
+
* @param chainData - Optional chain data for address validation
|
|
29
|
+
* @returns Mutation object for executing quotes
|
|
30
|
+
*/
|
|
31
|
+
export declare const useExecuteFiatQuote: (provider: FiatToCryptoProvider) => import("@tanstack/react-query").UseMutationResult<ExecuteFiatQuoteResultClient, unknown, ExecuteQuoteClient, unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* Hook to track the status of a fiat to crypto transaction
|
|
34
|
+
* @param provider - The fiat-to-crypto provider
|
|
35
|
+
* @param transactionId - The transaction ID to track
|
|
36
|
+
* @returns Query result containing the transaction status
|
|
37
|
+
*/
|
|
38
|
+
export declare const useFiatOnRampTxStatus: (provider: FiatToCryptoProvider, transactionId: string, walletAddress: string) => import("@tanstack/react-query").UseQueryResult<OnRampTransactionStatus | undefined, unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* Hook to track all fiat transactions and their status
|
|
41
|
+
* @returns Array of transactions with their latest status
|
|
42
|
+
*/
|
|
43
|
+
export declare const useFiatTransactions: (provider?: FiatToCryptoProvider) => {
|
|
44
|
+
transactions: import("../../core/types/onramps/onramp").FiatTransactionHistory[];
|
|
45
|
+
isLoading: boolean;
|
|
46
|
+
isError: boolean;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Hook to get currency details based on denomination
|
|
50
|
+
* @param currencyCode - The currency code (e.g., "USD", "EUR")
|
|
51
|
+
* @param provider - The fiat-to-crypto provider
|
|
52
|
+
* @returns Currency details including symbol and denomination & min/max limits
|
|
53
|
+
*/
|
|
54
|
+
export declare const useCurrencyDetails: (currencyCode?: string, provider?: FiatToCryptoProvider) => FiatCurrencyEnhanced | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Hook to get country details with flag URL based on country code
|
|
57
|
+
* @param countryCode - The country code (e.g., "US", "GB")
|
|
58
|
+
* @returns Country details including name, flag URL, and other information
|
|
59
|
+
*/
|
|
60
|
+
export declare const useCountryDetails: (countryCode?: string) => CountryWithCode | undefined;
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { useMutation, useQueries, useQuery } from "@tanstack/react-query";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { keys } from "../../core/queries/queries-keys";
|
|
4
|
+
import { FiatToCryptoService, getCountryData, getCurrencyData, } from "../../services/internal/fiatToCryptoService";
|
|
5
|
+
import { isWalletAddressValid } from "../../services/internal/walletService";
|
|
6
|
+
import { useSquidChains } from "../chains/useSquidChains";
|
|
7
|
+
import { useFiatTransactionStore } from "../store/useFiatTransactionStore";
|
|
8
|
+
import { useSquidTokens } from "../tokens/useSquidTokens";
|
|
9
|
+
const TX_STATUS_CONSTANTS = {
|
|
10
|
+
RETRY_COUNT: 10,
|
|
11
|
+
RETRY_DELAY: 60_000,
|
|
12
|
+
REFETCH_INTERVAL: 30_000, // Check every 30 seconds
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Final transaction statuses that indicate the transaction has reached a terminal state
|
|
16
|
+
*/
|
|
17
|
+
const FINAL_TRANSACTION_STATUSES = [
|
|
18
|
+
"completed",
|
|
19
|
+
"failed",
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Hook to fetch quote for fiat to crypto conversion
|
|
23
|
+
* @param provider - The fiat-to-crypto provider (e.g., Revolut, Onramper)
|
|
24
|
+
* @param fiatCurrency - The source fiat currency (e.g., "USD")
|
|
25
|
+
* @param cryptoCurrencyID - The target cryptocurrency ID (e.g., "ETH" or "USDC-ETH")
|
|
26
|
+
* @param amount - The amount in fiat to convert
|
|
27
|
+
* @returns Query result containing the quote information
|
|
28
|
+
*/
|
|
29
|
+
export const useGetFiatQuote = ({ provider, fiatCurrency, cryptoCurrencyID, amount, region, enabled = true, }) => {
|
|
30
|
+
const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
|
|
31
|
+
return useQuery({
|
|
32
|
+
queryKey: keys().fiatToCryptoQuote(fiatCurrency, cryptoCurrencyID, amount, region),
|
|
33
|
+
queryFn: () => {
|
|
34
|
+
return service.getQuote(fiatCurrency, cryptoCurrencyID, amount, undefined, region);
|
|
35
|
+
},
|
|
36
|
+
enabled: enabled && !!fiatCurrency && !!cryptoCurrencyID && amount > 0,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Hook to fetch provider configuration and filter compatible tokens
|
|
41
|
+
* @param provider - The fiat-to-crypto provider
|
|
42
|
+
* @returns Query result containing the provider config and filtered token list
|
|
43
|
+
*/
|
|
44
|
+
export const useGetOnRampConfig = (provider) => {
|
|
45
|
+
const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
|
|
46
|
+
const { chains } = useSquidChains();
|
|
47
|
+
const { tokens } = useSquidTokens();
|
|
48
|
+
return useQuery({
|
|
49
|
+
queryKey: keys().fiatToCryptoConfig(provider?.key),
|
|
50
|
+
queryFn: () => service.getConfiguration({
|
|
51
|
+
chains,
|
|
52
|
+
tokens,
|
|
53
|
+
}),
|
|
54
|
+
cacheTime: 1000 * 60 * 60,
|
|
55
|
+
staleTime: 1000 * 60 * 30,
|
|
56
|
+
enabled: !!provider,
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Hook to execute a fiat to crypto quote and handle the order creation
|
|
61
|
+
* @param provider - The fiat-to-crypto provider
|
|
62
|
+
* @param chainData - Optional chain data for address validation
|
|
63
|
+
* @returns Mutation object for executing quotes
|
|
64
|
+
*/
|
|
65
|
+
export const useExecuteFiatQuote = (provider) => {
|
|
66
|
+
const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
|
|
67
|
+
const persistFiatTransaction = useFiatTransactionStore((state) => state.persistTransaction);
|
|
68
|
+
const { findChain } = useSquidChains();
|
|
69
|
+
return useMutation({
|
|
70
|
+
mutationFn: async (executeQuoteRequest) => {
|
|
71
|
+
const chain = findChain(executeQuoteRequest.squidToken?.chainId);
|
|
72
|
+
if (!chain) {
|
|
73
|
+
throw new Error("Chain not found");
|
|
74
|
+
}
|
|
75
|
+
if (!isWalletAddressValid(chain, executeQuoteRequest.walletAddress)) {
|
|
76
|
+
throw new Error("Invalid wallet address for selected network");
|
|
77
|
+
}
|
|
78
|
+
const executeQuoteResult = await service.executeQuote(executeQuoteRequest);
|
|
79
|
+
return {
|
|
80
|
+
...executeQuoteResult,
|
|
81
|
+
toChain: chain,
|
|
82
|
+
executeQuoteRequest,
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
onSuccess: (result) => {
|
|
86
|
+
persistFiatTransaction(result);
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Hook to track the status of a fiat to crypto transaction
|
|
92
|
+
* @param provider - The fiat-to-crypto provider
|
|
93
|
+
* @param transactionId - The transaction ID to track
|
|
94
|
+
* @returns Query result containing the transaction status
|
|
95
|
+
*/
|
|
96
|
+
export const useFiatOnRampTxStatus = (provider, transactionId, walletAddress) => {
|
|
97
|
+
const service = useMemo(() => new FiatToCryptoService(provider), [provider]);
|
|
98
|
+
const updateTransactionStatus = useFiatTransactionStore((state) => state.updateTransactionStatus);
|
|
99
|
+
return useQuery({
|
|
100
|
+
queryKey: keys().fiatToCryptoStatus(transactionId),
|
|
101
|
+
queryFn: () => service.getTransactionStatus(transactionId, walletAddress),
|
|
102
|
+
enabled: !!transactionId && !!walletAddress,
|
|
103
|
+
retry: TX_STATUS_CONSTANTS.RETRY_COUNT,
|
|
104
|
+
retryDelay: TX_STATUS_CONSTANTS.RETRY_DELAY,
|
|
105
|
+
refetchInterval: (data) => {
|
|
106
|
+
if (data?.status && FINAL_TRANSACTION_STATUSES.includes(data.status)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return TX_STATUS_CONSTANTS.REFETCH_INTERVAL;
|
|
110
|
+
},
|
|
111
|
+
onError: () => {
|
|
112
|
+
updateTransactionStatus(transactionId, "failed", undefined);
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Hook to track all fiat transactions and their status
|
|
118
|
+
* @returns Array of transactions with their latest status
|
|
119
|
+
*/
|
|
120
|
+
export const useFiatTransactions = (provider) => {
|
|
121
|
+
const transactions = useFiatTransactionStore((state) => state.transactions);
|
|
122
|
+
const updateTransactionStatus = useFiatTransactionStore((state) => state.updateTransactionStatus);
|
|
123
|
+
const queries = useQueries({
|
|
124
|
+
queries: provider
|
|
125
|
+
? transactions
|
|
126
|
+
.filter((tx) => !FINAL_TRANSACTION_STATUSES.includes(tx.status))
|
|
127
|
+
.map((tx) => ({
|
|
128
|
+
queryKey: keys().fiatToCryptoStatus(tx.orderId),
|
|
129
|
+
queryFn: () => provider.getTransactionStatus(tx.orderId, tx.toAddress),
|
|
130
|
+
retry: TX_STATUS_CONSTANTS.RETRY_COUNT,
|
|
131
|
+
retryDelay: TX_STATUS_CONSTANTS.RETRY_DELAY,
|
|
132
|
+
refetchInterval: (data) => {
|
|
133
|
+
if (data?.status &&
|
|
134
|
+
FINAL_TRANSACTION_STATUSES.includes(data.status)) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
return TX_STATUS_CONSTANTS.REFETCH_INTERVAL;
|
|
138
|
+
},
|
|
139
|
+
onSuccess: (data) => {
|
|
140
|
+
updateTransactionStatus(tx.orderId, data.status, data.transactionHash);
|
|
141
|
+
},
|
|
142
|
+
onError: () => {
|
|
143
|
+
updateTransactionStatus(tx.orderId, "failed", undefined);
|
|
144
|
+
},
|
|
145
|
+
enabled: true,
|
|
146
|
+
}))
|
|
147
|
+
: [],
|
|
148
|
+
});
|
|
149
|
+
return {
|
|
150
|
+
transactions,
|
|
151
|
+
isLoading: queries.some((q) => q.isLoading),
|
|
152
|
+
isError: queries.some((q) => q.isError),
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Hook to get currency details based on denomination
|
|
157
|
+
* @param currencyCode - The currency code (e.g., "USD", "EUR")
|
|
158
|
+
* @param provider - The fiat-to-crypto provider
|
|
159
|
+
* @returns Currency details including symbol and denomination & min/max limits
|
|
160
|
+
*/
|
|
161
|
+
export const useCurrencyDetails = (currencyCode, provider) => {
|
|
162
|
+
const { data: config } = useGetOnRampConfig(provider);
|
|
163
|
+
return useMemo(() => {
|
|
164
|
+
if (!currencyCode)
|
|
165
|
+
return undefined;
|
|
166
|
+
const currencyData = getCurrencyData(currencyCode);
|
|
167
|
+
if (!currencyData)
|
|
168
|
+
return undefined;
|
|
169
|
+
// If we have a provider and config, enhance with limits
|
|
170
|
+
const providerCurrency = config?.supportedCurrencies.find((c) => c.denomination === currencyCode);
|
|
171
|
+
return {
|
|
172
|
+
...currencyData,
|
|
173
|
+
minLimit: providerCurrency?.minLimit,
|
|
174
|
+
maxLimit: providerCurrency?.maxLimit,
|
|
175
|
+
};
|
|
176
|
+
}, [currencyCode, config?.supportedCurrencies]);
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Hook to get country details with flag URL based on country code
|
|
180
|
+
* @param countryCode - The country code (e.g., "US", "GB")
|
|
181
|
+
* @returns Country details including name, flag URL, and other information
|
|
182
|
+
*/
|
|
183
|
+
export const useCountryDetails = (countryCode) => {
|
|
184
|
+
return useMemo(() => {
|
|
185
|
+
if (!countryCode)
|
|
186
|
+
return undefined;
|
|
187
|
+
return getCountryData(countryCode);
|
|
188
|
+
}, [countryCode]);
|
|
189
|
+
};
|
|
190
|
+
//# sourceMappingURL=useFiatToCrypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFiatToCrypto.js","sourceRoot":"","sources":["../../../src/hooks/onramp/useFiatToCrypto.ts"],"names":[],"mappings":"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"}
|