@rozoai/intent-pay 0.1.35-beta.3 → 0.1.35-beta.4
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/build/assets/rozo-dark.d.ts +1 -1
- package/build/assets/rozo-white.d.ts +1 -1
- package/build/components/Common/ChainSelectList/index.d.ts +1 -1
- package/build/components/Common/ConnectorList/index.d.ts +1 -1
- package/build/hooks/useConnectCallback.d.ts +2 -2
- package/build/hooks/useDepositAddressOptions.d.ts +1 -2
- package/build/index.d.ts +1 -1
- package/build/package.json.js +2 -2
- package/build/provider/PayContext.d.ts +5 -0
- package/build/provider/StellarContextProvider.d.ts +1 -1
- package/build/provider/Web3ContextProvider.d.ts +1 -1
- package/build/src/assets/MobileWithLogos.js.map +1 -1
- package/build/src/assets/ScanIconWithLogos.js.map +1 -1
- package/build/src/assets/browsers.js.map +1 -1
- package/build/src/assets/chains.js.map +1 -1
- package/build/src/assets/icons.js.map +1 -1
- package/build/src/assets/logos.js +7 -9
- package/build/src/assets/logos.js.map +1 -1
- package/build/src/assets/rozo-text.js.map +1 -1
- package/build/src/components/Common/AmountInput/AmountInputField.js +1 -1
- package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
- package/build/src/components/Common/AmountInput/index.js +3 -10
- package/build/src/components/Common/AmountInput/index.js.map +1 -1
- package/build/src/components/Common/Button/index.js +1 -3
- package/build/src/components/Common/Button/index.js.map +1 -1
- package/build/src/components/Common/Button/styles.js +14 -56
- package/build/src/components/Common/Button/styles.js.map +1 -1
- package/build/src/components/Common/ChainSelectList/index.js +3 -7
- package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
- package/build/src/components/Common/CircleTimer.js.map +1 -1
- package/build/src/components/Common/ConnectorList/index.js +6 -11
- package/build/src/components/Common/ConnectorList/index.js.map +1 -1
- package/build/src/components/Common/ConnectorList/styles.js +8 -32
- package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
- package/build/src/components/Common/CustomQRCode/QRCode.js +1 -3
- package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
- package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
- package/build/src/components/Common/Intercom/index.js +2 -4
- package/build/src/components/Common/Intercom/index.js.map +1 -1
- package/build/src/components/Common/Modal/index.js +3 -16
- package/build/src/components/Common/Modal/index.js.map +1 -1
- package/build/src/components/Common/Modal/styles.js +5 -13
- package/build/src/components/Common/Modal/styles.js.map +1 -1
- package/build/src/components/Common/OptionsList/index.js +1 -3
- package/build/src/components/Common/OptionsList/index.js.map +1 -1
- package/build/src/components/Common/OptionsList/styles.js +7 -28
- package/build/src/components/Common/OptionsList/styles.js.map +1 -1
- package/build/src/components/Common/OrderHeader/index.js +2 -2
- package/build/src/components/Common/OrderHeader/index.js.map +1 -1
- package/build/src/components/Common/PaymentBreakdown/index.js +1 -4
- package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
- package/build/src/components/Common/PoweredByFooter/index.js +4 -2
- package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
- package/build/src/components/Common/ScrollArea/index.js +2 -3
- package/build/src/components/Common/ScrollArea/index.js.map +1 -1
- package/build/src/components/Common/ScrollArea/styles.js +2 -8
- package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
- package/build/src/components/Common/SelectAnotherMethodButton/index.js +2 -5
- package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
- package/build/src/components/Common/Spinner/index.js.map +1 -1
- package/build/src/components/Common/ThemedButton/styles.js +13 -52
- package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
- package/build/src/components/Common/TokenChainLogo/index.js +1 -1
- package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
- package/build/src/components/Common/Tooltip/index.js +1 -7
- package/build/src/components/Common/Tooltip/index.js.map +1 -1
- package/build/src/components/Common/WalletChainLogo/index.js +1 -1
- package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
- package/build/src/components/Pages/About/graphics.js.map +1 -1
- package/build/src/components/Pages/About/index.js.map +1 -1
- package/build/src/components/Pages/Confirmation/index.js +9 -19
- package/build/src/components/Pages/Confirmation/index.js.map +1 -1
- package/build/src/components/Pages/Connectors/index.js.map +1 -1
- package/build/src/components/Pages/Connectors/styles.js +7 -28
- package/build/src/components/Pages/Connectors/styles.js.map +1 -1
- package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
- package/build/src/components/Pages/Error/index.js.map +1 -1
- package/build/src/components/Pages/MobileConnectors/index.js +2 -4
- package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
- package/build/src/components/Pages/Onboarding/index.js.map +1 -1
- package/build/src/components/Pages/PayWithToken/index.js +4 -15
- package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
- package/build/src/components/Pages/SelectDepositAddressChain/index.js +6 -17
- package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
- package/build/src/components/Pages/SelectExternalAmount/index.js +1 -3
- package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
- package/build/src/components/Pages/SelectMethod/index.js +6 -14
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
- package/build/src/components/Pages/SelectToken/index.js +6 -19
- package/build/src/components/Pages/SelectToken/index.js.map +1 -1
- package/build/src/components/Pages/SelectWalletChain/index.js +1 -3
- package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js +1 -1
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +5 -17
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
- package/build/src/components/Pages/Stellar/ConnectStellar/index.js +1 -3
- package/build/src/components/Pages/Stellar/ConnectStellar/index.js.map +1 -1
- package/build/src/components/Pages/Stellar/ConnectorStellar/index.js.map +1 -1
- package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js +12 -41
- package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js.map +1 -1
- package/build/src/components/Pages/Stellar/SelectStellarAmount/index.js.map +1 -1
- package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
- package/build/src/components/Pages/WaitingDepositAddress/index.js +39 -47
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
- package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
- package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
- package/build/src/components/RozoPayButton/index.js +4 -14
- package/build/src/components/RozoPayButton/index.js.map +1 -1
- package/build/src/components/RozoPayModal/ConnectUsing.js.map +1 -1
- package/build/src/components/RozoPayModal/ConnectWithInjector/index.js +1 -5
- package/build/src/components/RozoPayModal/ConnectWithInjector/index.js.map +1 -1
- package/build/src/components/RozoPayModal/ConnectWithInjector/styles.js +1 -5
- package/build/src/components/RozoPayModal/ConnectWithInjector/styles.js.map +1 -1
- package/build/src/components/RozoPayModal/index.js +28 -3
- package/build/src/components/RozoPayModal/index.js.map +1 -1
- package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js +1 -1
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
- package/build/src/defaultConfig.js.map +1 -1
- package/build/src/defaultConnectors.js.map +1 -1
- package/build/src/hooks/refreshUtils.js.map +1 -1
- package/build/src/hooks/useAutoConnectGate.js +1 -3
- package/build/src/hooks/useAutoConnectGate.js.map +1 -1
- package/build/src/hooks/useConnect.js.map +1 -1
- package/build/src/hooks/useConnectCallback.js +1 -1
- package/build/src/hooks/useConnectCallback.js.map +1 -1
- package/build/src/hooks/useContactSupport.js +3 -7
- package/build/src/hooks/useContactSupport.js.map +1 -1
- package/build/src/hooks/useDepositAddressOptions.js +40 -51
- package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
- package/build/src/hooks/useExternalPaymentOptions.js +2 -4
- package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
- package/build/src/hooks/useFitText.js +2 -13
- package/build/src/hooks/useFitText.js.map +1 -1
- package/build/src/hooks/useLockBodyScroll.js.map +1 -1
- package/build/src/hooks/usePayinPolling.js +1 -3
- package/build/src/hooks/usePayinPolling.js.map +1 -1
- package/build/src/hooks/usePaymentState.js +1 -4
- package/build/src/hooks/usePaymentState.js.map +1 -1
- package/build/src/hooks/usePayoutPolling.js +1 -1
- package/build/src/hooks/usePayoutPolling.js.map +1 -1
- package/build/src/hooks/usePusherPayout.js +2 -4
- package/build/src/hooks/usePusherPayout.js.map +1 -1
- package/build/src/hooks/useRozoPay.js +2 -7
- package/build/src/hooks/useRozoPay.js.map +1 -1
- package/build/src/hooks/useRozoPayStatus.js.map +1 -1
- package/build/src/hooks/useSolanaPaymentOptions.js +54 -123
- package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
- package/build/src/hooks/useStellarPaymentOptions.js +56 -105
- package/build/src/hooks/useStellarPaymentOptions.js.map +1 -1
- package/build/src/hooks/useTokenOptions.js +19 -44
- package/build/src/hooks/useTokenOptions.js.map +1 -1
- package/build/src/hooks/useWalletPaymentOptions.js +66 -146
- package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
- package/build/src/localizations/locales/ar-AE.js.map +1 -1
- package/build/src/localizations/locales/ee-EE.js.map +1 -1
- package/build/src/localizations/locales/ja-JP.js.map +1 -1
- package/build/src/localizations/locales/tr-TR.js.map +1 -1
- package/build/src/localizations/locales/vi-VN.js.map +1 -1
- package/build/src/localizations/locales/zh-CN.js.map +1 -1
- package/build/src/payment/createPaymentPayload.js +5 -3
- package/build/src/payment/createPaymentPayload.js.map +1 -1
- package/build/src/payment/paymentEventContext.js +2 -2
- package/build/src/payment/paymentEventContext.js.map +1 -1
- package/build/src/payment/paymentFsm.js.map +1 -1
- package/build/src/payment/paymentStore.js.map +1 -1
- package/build/src/provider/AnalyticsProvider.js +2 -6
- package/build/src/provider/AnalyticsProvider.js.map +1 -1
- package/build/src/provider/PaymentProvider.js +1 -1
- package/build/src/provider/PaymentProvider.js.map +1 -1
- package/build/src/provider/RozoPayProvider.js +21 -21
- package/build/src/provider/RozoPayProvider.js.map +1 -1
- package/build/src/provider/SolanaContextProvider.js.map +1 -1
- package/build/src/provider/StellarContextProvider.js +3 -13
- package/build/src/provider/StellarContextProvider.js.map +1 -1
- package/build/src/provider/Web3ContextProvider.js +1 -1
- package/build/src/provider/Web3ContextProvider.js.map +1 -1
- package/build/src/stateStore.js.map +1 -1
- package/build/src/styles/index.js +0 -1
- package/build/src/styles/index.js.map +1 -1
- package/build/src/styles/themes/base.js.map +1 -1
- package/build/src/styles/themes/midnight.js.map +1 -1
- package/build/src/styles/themes/nouns.js.map +1 -1
- package/build/src/styles/themes/retro.js.map +1 -1
- package/build/src/styles/themes/rounded.js.map +1 -1
- package/build/src/styles/themes/soft.js.map +1 -1
- package/build/src/styles/themes/web95.js.map +1 -1
- package/build/src/types/chainAddress.js +1 -2
- package/build/src/types/chainAddress.js.map +1 -1
- package/build/src/utils/errorParser.js +4 -9
- package/build/src/utils/errorParser.js.map +1 -1
- package/build/src/utils/feeCache.js +1 -3
- package/build/src/utils/feeCache.js.map +1 -1
- package/build/src/utils/format.js +34 -1
- package/build/src/utils/format.js.map +1 -1
- package/build/src/utils/index.js.map +1 -1
- package/build/src/utils/p3.js.map +1 -1
- package/build/src/utils/sanitize.js.map +1 -1
- package/build/src/utils/stellar/singleton-import.js +3 -6
- package/build/src/utils/stellar/singleton-import.js.map +1 -1
- package/build/src/utils/stellar/walletconnect.module.js +2 -4
- package/build/src/utils/stellar/walletconnect.module.js.map +1 -1
- package/build/src/utils/token.js +1 -6
- package/build/src/utils/token.js.map +1 -1
- package/build/src/utils/trpc.js.map +1 -1
- package/build/src/utils/validatePayoutToken.js +5 -9
- package/build/src/utils/validatePayoutToken.js.map +1 -1
- package/build/src/wallets/useWallets.js +5 -7
- package/build/src/wallets/useWallets.js.map +1 -1
- package/build/src/wallets/walletConfigs.js +1 -2
- package/build/src/wallets/walletConfigs.js.map +1 -1
- package/build/stateStore.d.ts +1 -1
- package/build/utils/format.d.ts +14 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRozoPay.js","sources":["../../../src/hooks/useRozoPay.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;
|
|
1
|
+
{"version":3,"file":"useRozoPay.js","sources":["../../../src/hooks/useRozoPay.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRozoPayStatus.js","sources":["../../../src/hooks/useRozoPayStatus.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useRozoPayStatus.js","sources":["../../../src/hooks/useRozoPayStatus.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;;;AASG;SACa,gBAAgB,GAAA;AAC9B,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,IAAI,KAAK,IAAI,IAAI;AAAE,QAAA,OAAO,SAAS,CAAC;IAEpC,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;AACnD;;;;"}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
import { rozoSolana, solana, getKnownToken } from '@rozoai/intent-common';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { rozoSolana, solana, normalizeTokenAddress, getKnownToken } from '@rozoai/intent-common';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { DEFAULT_ROZO_APP_ID } from '../constants/rozoConfig.js';
|
|
5
|
+
import { roundTokenAmount } from '../utils/format.js';
|
|
4
6
|
import { useSupportedChains } from './useSupportedChains.js';
|
|
7
|
+
import { isNativeToken } from '../utils/token.js';
|
|
5
8
|
|
|
6
9
|
/** Wallet payment options. User picks one. */
|
|
7
10
|
function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, payParams, }) {
|
|
8
|
-
const [options, setOptions] = useState(null);
|
|
9
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
10
|
-
// Track the last executed parameters to prevent duplicate API calls
|
|
11
|
-
const lastExecutedParams = useRef(null);
|
|
12
|
-
// Track if we're currently making an API call to prevent concurrent requests
|
|
13
|
-
const isApiCallInProgress = useRef(false);
|
|
14
|
-
// Track if we have initial data to prevent clearing options on refresh (prevents flickering)
|
|
15
|
-
const hasInitialData = useRef(false);
|
|
16
11
|
const { chains } = useSupportedChains();
|
|
17
12
|
// Get Solana chain IDs from supported chains
|
|
18
13
|
const solanaChainIds = useMemo(() => {
|
|
@@ -24,12 +19,41 @@ function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, pa
|
|
|
24
19
|
const memoizedPreferredTokens = useMemo(() => payParams?.preferredTokens,
|
|
25
20
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
21
|
[JSON.stringify(payParams?.preferredTokens)]);
|
|
22
|
+
const { data, isLoading, refetch } = useQuery({
|
|
23
|
+
enabled: address != null &&
|
|
24
|
+
usdRequired != null &&
|
|
25
|
+
stableAppId != null &&
|
|
26
|
+
stableAppId !== DEFAULT_ROZO_APP_ID,
|
|
27
|
+
queryKey: [
|
|
28
|
+
"solanaPaymentOptions",
|
|
29
|
+
address,
|
|
30
|
+
usdRequired,
|
|
31
|
+
isDepositFlow,
|
|
32
|
+
stableAppId,
|
|
33
|
+
memoizedPreferredTokens,
|
|
34
|
+
],
|
|
35
|
+
queryFn: () => {
|
|
36
|
+
// Filter preferredTokenAddress to only include Solana chain tokens
|
|
37
|
+
const solanaPreferredTokenAddresses = (memoizedPreferredTokens ?? [])
|
|
38
|
+
.filter((t) => solanaChainIds.has(t.chainId))
|
|
39
|
+
.map((t) => t.token);
|
|
40
|
+
return trpc.getSolanaPaymentOptions.query({
|
|
41
|
+
pubKey: address,
|
|
42
|
+
// API expects undefined for deposit flow.
|
|
43
|
+
usdRequired: isDepositFlow ? undefined : usdRequired,
|
|
44
|
+
appId: stableAppId,
|
|
45
|
+
preferredTokenAddress: solanaPreferredTokenAddresses,
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
staleTime: 30_000,
|
|
49
|
+
retry: 1,
|
|
50
|
+
refetchOnWindowFocus: false,
|
|
51
|
+
});
|
|
27
52
|
const filteredOptions = useMemo(() => {
|
|
28
|
-
if (!
|
|
53
|
+
if (!data)
|
|
29
54
|
return [];
|
|
30
55
|
const preferredTokens = payParams?.preferredTokens;
|
|
31
|
-
|
|
32
|
-
return options
|
|
56
|
+
return data
|
|
33
57
|
.filter((option) => {
|
|
34
58
|
// If preferredTokens is not provided or empty, show all options
|
|
35
59
|
if (!preferredTokens || preferredTokens.length === 0) {
|
|
@@ -46,8 +70,8 @@ function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, pa
|
|
|
46
70
|
});
|
|
47
71
|
// Filter by matching chainId and token address
|
|
48
72
|
return filteredPreferredTokens.some((pt) => pt.chainId === option.balance.token.chainId &&
|
|
49
|
-
|
|
50
|
-
|
|
73
|
+
normalizeTokenAddress(option.balance.token.chainId, pt.token) ===
|
|
74
|
+
normalizeTokenAddress(option.balance.token.chainId, option.balance.token.token));
|
|
51
75
|
})
|
|
52
76
|
.map((item) => {
|
|
53
77
|
const usd = isDepositFlow ? 0 : usdRequired || 0;
|
|
@@ -59,120 +83,27 @@ function useSolanaPaymentOptions({ trpc, address, usdRequired, isDepositFlow, pa
|
|
|
59
83
|
},
|
|
60
84
|
};
|
|
61
85
|
// Set `disabledReason` manually (based on current usdRequired state, not API Request)
|
|
62
|
-
const
|
|
86
|
+
const knownToken = getKnownToken(item.balance.token.chainId, item.balance.token.token);
|
|
87
|
+
const fiatISO = knownToken?.fiatISO ?? item.balance.token.fiatISO;
|
|
88
|
+
const isNative = isNativeToken(item.balance.token);
|
|
63
89
|
if (item.balance.usd < usd) {
|
|
64
|
-
|
|
90
|
+
if (isNative) {
|
|
91
|
+
value.disabledReason = `Balance too low: ${roundTokenAmount(item.balance.amount, item.balance.token)} ${item.balance.token.symbol}`;
|
|
92
|
+
}
|
|
93
|
+
else if (fiatISO) {
|
|
94
|
+
value.disabledReason = `Balance too low: ${item.balance.usd.toFixed(2)} ${fiatISO}`;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
value.disabledReason = `Balance too low: ${roundTokenAmount(item.balance.amount, item.balance.token)} ${item.balance.token.symbol}`;
|
|
98
|
+
}
|
|
65
99
|
}
|
|
66
100
|
return value;
|
|
67
101
|
});
|
|
68
|
-
}, [
|
|
69
|
-
// Shared fetch function for Solana payment options
|
|
70
|
-
const fetchBalances = useCallback(async () => {
|
|
71
|
-
if (address == null || usdRequired == null || stableAppId == null)
|
|
72
|
-
return;
|
|
73
|
-
// Only clear options if we don't have initial data yet to prevent flickering
|
|
74
|
-
// If we already have options, keep them visible while loading new data
|
|
75
|
-
if (!hasInitialData.current) {
|
|
76
|
-
setOptions(null);
|
|
77
|
-
setIsLoading(true);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
// Keep existing options visible, just set loading state
|
|
81
|
-
setIsLoading(true);
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
// Filter preferredTokenAddress to only include Solana chain tokens
|
|
85
|
-
const solanaPreferredTokenAddresses = (memoizedPreferredTokens ?? [])
|
|
86
|
-
.filter((t) => solanaChainIds.has(t.chainId))
|
|
87
|
-
.map((t) => t.token);
|
|
88
|
-
const newOptions = await trpc.getSolanaPaymentOptions.query({
|
|
89
|
-
pubKey: address,
|
|
90
|
-
// API expects undefined for deposit flow.
|
|
91
|
-
usdRequired: isDepositFlow ? undefined : usdRequired,
|
|
92
|
-
appId: stableAppId,
|
|
93
|
-
preferredTokenAddress: solanaPreferredTokenAddresses,
|
|
94
|
-
});
|
|
95
|
-
setOptions(newOptions);
|
|
96
|
-
hasInitialData.current = true;
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
console.error(error);
|
|
100
|
-
// Only set empty array if we don't have initial data
|
|
101
|
-
if (!hasInitialData.current) {
|
|
102
|
-
setOptions([]);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
finally {
|
|
106
|
-
isApiCallInProgress.current = false;
|
|
107
|
-
setIsLoading(false);
|
|
108
|
-
}
|
|
109
|
-
}, [
|
|
110
|
-
address,
|
|
111
|
-
usdRequired,
|
|
112
|
-
isDepositFlow,
|
|
113
|
-
trpc,
|
|
114
|
-
stableAppId,
|
|
115
|
-
memoizedPreferredTokens,
|
|
116
|
-
]);
|
|
117
|
-
// Create refresh function using shared utility
|
|
118
|
-
const refreshOptions = createRefreshFunction(fetchBalances, {
|
|
119
|
-
lastExecutedParams,
|
|
120
|
-
isApiCallInProgress,
|
|
121
|
-
});
|
|
122
|
-
// Reset hasInitialData when address changes to allow clearing options for new address
|
|
123
|
-
useEffect(() => {
|
|
124
|
-
if (address) {
|
|
125
|
-
hasInitialData.current = false;
|
|
126
|
-
}
|
|
127
|
-
}, [address]);
|
|
128
|
-
// Smart clearing: only clear if we don't have data for this address
|
|
129
|
-
useEffect(() => {
|
|
130
|
-
if (address && !options) {
|
|
131
|
-
// Only set loading if we don't have options yet
|
|
132
|
-
setIsLoading(true);
|
|
133
|
-
}
|
|
134
|
-
}, [address, options]);
|
|
135
|
-
useEffect(() => {
|
|
136
|
-
if (address == null || usdRequired == null || stableAppId == null)
|
|
137
|
-
return;
|
|
138
|
-
const fullParamsKey = JSON.stringify({
|
|
139
|
-
address,
|
|
140
|
-
usdRequired,
|
|
141
|
-
isDepositFlow,
|
|
142
|
-
stableAppId,
|
|
143
|
-
memoizedPreferredTokens,
|
|
144
|
-
});
|
|
145
|
-
// Skip if we've already executed with these exact parameters
|
|
146
|
-
if (shouldSkipRefresh(fullParamsKey, {
|
|
147
|
-
lastExecutedParams,
|
|
148
|
-
isApiCallInProgress,
|
|
149
|
-
})) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
// Set up refresh state
|
|
153
|
-
setupRefreshState(fullParamsKey, {
|
|
154
|
-
lastExecutedParams,
|
|
155
|
-
isApiCallInProgress,
|
|
156
|
-
});
|
|
157
|
-
}, [
|
|
158
|
-
address,
|
|
159
|
-
usdRequired,
|
|
160
|
-
isDepositFlow,
|
|
161
|
-
stableAppId,
|
|
162
|
-
memoizedPreferredTokens,
|
|
163
|
-
]);
|
|
164
|
-
// Initial fetch when hook mounts with valid parameters or when key parameters change
|
|
165
|
-
useEffect(() => {
|
|
166
|
-
if (address != null && usdRequired != null && stableAppId != null) {
|
|
167
|
-
refreshOptions();
|
|
168
|
-
}
|
|
169
|
-
// refreshOptions is stable (created from fetchBalances which only changes when dependencies change)
|
|
170
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
171
|
-
}, [address, usdRequired, stableAppId, memoizedPreferredTokens]);
|
|
102
|
+
}, [data, isDepositFlow, usdRequired, payParams?.preferredTokens]);
|
|
172
103
|
return {
|
|
173
104
|
options: filteredOptions,
|
|
174
105
|
isLoading,
|
|
175
|
-
refreshOptions,
|
|
106
|
+
refreshOptions: () => refetch().then(() => { }),
|
|
176
107
|
};
|
|
177
108
|
}
|
|
178
109
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSolanaPaymentOptions.js","sources":["../../../src/hooks/useSolanaPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSolanaPaymentOptions.js","sources":["../../../src/hooks/useSolanaPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { rozoStellar, getKnownToken } from '@rozoai/intent-common';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { normalizeTokenAddress, rozoStellar, getKnownToken } from '@rozoai/intent-common';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { DEFAULT_ROZO_APP_ID } from '../constants/rozoConfig.js';
|
|
5
|
+
import { roundTokenAmount } from '../utils/format.js';
|
|
4
6
|
import { useSupportedChains } from './useSupportedChains.js';
|
|
7
|
+
import { isNativeToken } from '../utils/token.js';
|
|
5
8
|
|
|
6
9
|
/** Wallet payment options. User picks one. */
|
|
7
10
|
function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, payParams, }) {
|
|
@@ -10,35 +13,59 @@ function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, p
|
|
|
10
13
|
const stellarChainIds = useMemo(() => {
|
|
11
14
|
return new Set(chains.filter((c) => c.type === "stellar").map((c) => c.chainId));
|
|
12
15
|
}, [chains]);
|
|
13
|
-
const [options, setOptions] = useState(null);
|
|
14
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
15
|
-
// Track the last executed parameters to prevent duplicate API calls
|
|
16
|
-
const lastExecutedParams = useRef(null);
|
|
17
|
-
// Track if we're currently making an API call to prevent concurrent requests
|
|
18
|
-
const isApiCallInProgress = useRef(false);
|
|
19
16
|
const stableAppId = useMemo(() => {
|
|
20
17
|
return payParams?.appId;
|
|
21
18
|
}, [payParams]);
|
|
22
19
|
const memoizedPreferredTokens = useMemo(() => payParams?.preferredTokens,
|
|
23
20
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
21
|
[JSON.stringify(payParams?.preferredTokens)]);
|
|
22
|
+
const { data, isLoading, refetch } = useQuery({
|
|
23
|
+
enabled: address != null &&
|
|
24
|
+
usdRequired != null &&
|
|
25
|
+
stableAppId != null &&
|
|
26
|
+
stableAppId !== DEFAULT_ROZO_APP_ID,
|
|
27
|
+
queryKey: [
|
|
28
|
+
"stellarPaymentOptions",
|
|
29
|
+
address,
|
|
30
|
+
usdRequired,
|
|
31
|
+
isDepositFlow,
|
|
32
|
+
stableAppId,
|
|
33
|
+
memoizedPreferredTokens,
|
|
34
|
+
],
|
|
35
|
+
queryFn: () => {
|
|
36
|
+
// Filter preferredTokenAddress to only include Stellar chain tokens
|
|
37
|
+
const stellarPreferredTokenAddresses = (memoizedPreferredTokens ?? [])
|
|
38
|
+
.filter((t) => stellarChainIds.has(t.chainId))
|
|
39
|
+
.map((t) => t.token);
|
|
40
|
+
return trpc.getStellarPaymentOptions.query({
|
|
41
|
+
stellarAddress: address,
|
|
42
|
+
// API expects undefined for deposit flow.
|
|
43
|
+
usdRequired: isDepositFlow ? undefined : usdRequired,
|
|
44
|
+
appId: stableAppId,
|
|
45
|
+
preferredTokenAddress: stellarPreferredTokenAddresses,
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
staleTime: 30_000,
|
|
49
|
+
retry: 1,
|
|
50
|
+
refetchOnWindowFocus: false,
|
|
51
|
+
});
|
|
25
52
|
const filteredOptions = useMemo(() => {
|
|
26
|
-
if (!
|
|
53
|
+
if (!data)
|
|
27
54
|
return [];
|
|
28
55
|
const preferredTokens = payParams?.preferredTokens;
|
|
29
|
-
|
|
30
|
-
const normalizeAddress = (addr) => addr.toLowerCase();
|
|
31
|
-
return options
|
|
56
|
+
return data
|
|
32
57
|
.filter((option) => {
|
|
33
58
|
const tokenChainId = option.balance.token.chainId;
|
|
34
59
|
const tokenAddress = option.balance.token.token;
|
|
35
60
|
// If preferredTokens is provided and not empty, filter by matching chainId and token address
|
|
36
61
|
if (preferredTokens && preferredTokens.length > 0) {
|
|
37
62
|
return preferredTokens.some((pt) => pt.chainId === tokenChainId &&
|
|
38
|
-
|
|
63
|
+
normalizeTokenAddress(tokenChainId, pt.token) ===
|
|
64
|
+
normalizeTokenAddress(tokenChainId, tokenAddress));
|
|
39
65
|
}
|
|
40
66
|
// Otherwise, check against supported tokens
|
|
41
|
-
return tokens.some((t) =>
|
|
67
|
+
return tokens.some((t) => normalizeTokenAddress(t.chainId, t.token) ===
|
|
68
|
+
normalizeTokenAddress(tokenChainId, tokenAddress) &&
|
|
42
69
|
t.chainId === rozoStellar.chainId);
|
|
43
70
|
})
|
|
44
71
|
.map((item) => {
|
|
@@ -51,103 +78,27 @@ function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, p
|
|
|
51
78
|
},
|
|
52
79
|
};
|
|
53
80
|
// Set `disabledReason` manually (based on current usdRequired state, not API Request)
|
|
54
|
-
const
|
|
81
|
+
const knownToken = getKnownToken(item.balance.token.chainId, item.balance.token.token);
|
|
82
|
+
const fiatISO = knownToken?.fiatISO ?? item.balance.token.fiatISO;
|
|
83
|
+
const isNative = isNativeToken(item.balance.token);
|
|
55
84
|
if (item.balance.usd < usd) {
|
|
56
|
-
|
|
85
|
+
if (isNative) {
|
|
86
|
+
value.disabledReason = `Balance too low: ${roundTokenAmount(item.balance.amount, item.balance.token)} ${item.balance.token.symbol}`;
|
|
87
|
+
}
|
|
88
|
+
else if (fiatISO) {
|
|
89
|
+
value.disabledReason = `Balance too low: ${item.balance.usd.toFixed(2)} ${fiatISO}`;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
value.disabledReason = `Balance too low: ${roundTokenAmount(item.balance.amount, item.balance.token)} ${item.balance.token.symbol}`;
|
|
93
|
+
}
|
|
57
94
|
}
|
|
58
95
|
return value;
|
|
59
96
|
});
|
|
60
|
-
}, [
|
|
61
|
-
// Shared fetch function for Stellar payment options
|
|
62
|
-
const fetchBalances = useCallback(async () => {
|
|
63
|
-
if (address == null || usdRequired == null || stableAppId == null)
|
|
64
|
-
return;
|
|
65
|
-
setOptions(null);
|
|
66
|
-
setIsLoading(true);
|
|
67
|
-
try {
|
|
68
|
-
// Filter preferredTokenAddress to only include Stellar chain tokens
|
|
69
|
-
const stellarPreferredTokenAddresses = (memoizedPreferredTokens ?? [])
|
|
70
|
-
.filter((t) => stellarChainIds.has(t.chainId))
|
|
71
|
-
.map((t) => t.token);
|
|
72
|
-
const newOptions = await trpc.getStellarPaymentOptions.query({
|
|
73
|
-
stellarAddress: address,
|
|
74
|
-
// API expects undefined for deposit flow.
|
|
75
|
-
usdRequired: isDepositFlow ? undefined : usdRequired,
|
|
76
|
-
appId: stableAppId,
|
|
77
|
-
preferredTokenAddress: stellarPreferredTokenAddresses,
|
|
78
|
-
});
|
|
79
|
-
setOptions(newOptions);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
console.error(error);
|
|
83
|
-
setOptions([]);
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
isApiCallInProgress.current = false;
|
|
87
|
-
setIsLoading(false);
|
|
88
|
-
}
|
|
89
|
-
}, [
|
|
90
|
-
address,
|
|
91
|
-
usdRequired,
|
|
92
|
-
isDepositFlow,
|
|
93
|
-
trpc,
|
|
94
|
-
stableAppId,
|
|
95
|
-
memoizedPreferredTokens,
|
|
96
|
-
// stellarChainIds is derived from chains and is stable, so we don't need it in deps
|
|
97
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
98
|
-
]);
|
|
99
|
-
// Create refresh function using shared utility
|
|
100
|
-
const refreshOptions = createRefreshFunction(fetchBalances, {
|
|
101
|
-
lastExecutedParams,
|
|
102
|
-
isApiCallInProgress,
|
|
103
|
-
});
|
|
104
|
-
// Smart clearing: only clear if we don't have data for this address
|
|
105
|
-
useEffect(() => {
|
|
106
|
-
if (address && !options) {
|
|
107
|
-
// Only set loading if we don't have options yet
|
|
108
|
-
setIsLoading(true);
|
|
109
|
-
}
|
|
110
|
-
}, [address, options]);
|
|
111
|
-
useEffect(() => {
|
|
112
|
-
if (address == null || usdRequired == null || stableAppId == null)
|
|
113
|
-
return;
|
|
114
|
-
const fullParamsKey = JSON.stringify({
|
|
115
|
-
address,
|
|
116
|
-
usdRequired,
|
|
117
|
-
isDepositFlow,
|
|
118
|
-
stableAppId,
|
|
119
|
-
memoizedPreferredTokens,
|
|
120
|
-
});
|
|
121
|
-
// Skip if we've already executed with these exact parameters
|
|
122
|
-
if (shouldSkipRefresh(fullParamsKey, {
|
|
123
|
-
lastExecutedParams,
|
|
124
|
-
isApiCallInProgress,
|
|
125
|
-
})) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
// Set up refresh state
|
|
129
|
-
setupRefreshState(fullParamsKey, {
|
|
130
|
-
lastExecutedParams,
|
|
131
|
-
isApiCallInProgress,
|
|
132
|
-
});
|
|
133
|
-
}, [
|
|
134
|
-
address,
|
|
135
|
-
usdRequired,
|
|
136
|
-
isDepositFlow,
|
|
137
|
-
stableAppId,
|
|
138
|
-
memoizedPreferredTokens,
|
|
139
|
-
]);
|
|
140
|
-
// Initial fetch when hook mounts with valid parameters or when key parameters change
|
|
141
|
-
useEffect(() => {
|
|
142
|
-
if (address != null && usdRequired != null && stableAppId != null) {
|
|
143
|
-
refreshOptions();
|
|
144
|
-
}
|
|
145
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
146
|
-
}, [address, usdRequired, stableAppId, memoizedPreferredTokens]);
|
|
97
|
+
}, [data, isDepositFlow, usdRequired, tokens, payParams?.preferredTokens]);
|
|
147
98
|
return {
|
|
148
99
|
options: filteredOptions,
|
|
149
100
|
isLoading,
|
|
150
|
-
refreshOptions,
|
|
101
|
+
refreshOptions: () => refetch().then(() => { }),
|
|
151
102
|
};
|
|
152
103
|
}
|
|
153
104
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStellarPaymentOptions.js","sources":["../../../src/hooks/useStellarPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStellarPaymentOptions.js","sources":["../../../src/hooks/useStellarPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|