@rozoai/intent-pay 0.1.57 → 0.1.59-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/build/components/Common/TokenChainLogo/index.d.ts +7 -1
- package/build/components/Pages/WaitingDepositAddress/index.d.ts +26 -0
- package/build/components/RozoPayButton/types.d.ts +5 -3
- package/build/components/Spinners/TokenLogoSpinner/index.d.ts +6 -1
- package/build/hooks/useDepositAddressOptions.d.ts +3 -2
- package/build/hooks/useSolanaPaymentOptions.d.ts +1 -1
- package/build/hooks/useStellarPaymentOptions.d.ts +1 -1
- package/build/hooks/useWalletPaymentOptions.d.ts +10 -5
- package/build/package.json.js +1 -1
- package/build/payment/createPaymentPayload.d.ts +6 -4
- package/build/payment/nativeSpendable.d.ts +1 -0
- package/build/payment/paymentFsm.d.ts +25 -2
- package/build/provider/PayContext.d.ts +3 -3
- package/build/src/components/Common/ConnectorList/index.js +2 -3
- package/build/src/components/Common/ConnectorList/index.js.map +1 -1
- package/build/src/components/Common/TokenChainLogo/index.js +27 -3
- package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +9 -4
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
- package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js +9 -4
- package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js.map +1 -1
- package/build/src/components/Pages/WaitingDepositAddress/index.js +38 -12
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
- package/build/src/components/RozoPayModal/index.js.map +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js +6 -2
- package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
- package/build/src/hooks/useDepositAddressOptions.js +21 -11
- package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
- package/build/src/hooks/usePaymentState.js +98 -60
- package/build/src/hooks/usePaymentState.js.map +1 -1
- package/build/src/hooks/useSolanaPaymentOptions.js +59 -15
- package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
- package/build/src/hooks/useStellarPaymentOptions.js +47 -19
- package/build/src/hooks/useStellarPaymentOptions.js.map +1 -1
- package/build/src/hooks/useSupportedChains.js +3 -2
- package/build/src/hooks/useSupportedChains.js.map +1 -1
- package/build/src/hooks/useTokenOptions.js +13 -8
- package/build/src/hooks/useTokenOptions.js.map +1 -1
- package/build/src/hooks/useWalletPaymentOptions.js +33 -17
- package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
- package/build/src/payment/createPaymentPayload.js +40 -37
- package/build/src/payment/createPaymentPayload.js.map +1 -1
- package/build/src/payment/nativeSpendable.js +10 -0
- package/build/src/payment/nativeSpendable.js.map +1 -0
- package/build/src/payment/paymentFsm.js.map +1 -1
- package/build/src/utils/feeCache.js +3 -13
- package/build/src/utils/feeCache.js.map +1 -1
- package/build/src/utils/format.js +22 -1
- package/build/src/utils/format.js.map +1 -1
- package/build/src/utils/token.js +70 -13
- package/build/src/utils/token.js.map +1 -1
- package/build/utils/format.d.ts +39 -1
- package/build/utils/token.d.ts +21 -3
- package/package.json +2 -2
|
@@ -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,22 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isNativeToken, getKnownToken } from '@rozoai/intent-common';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { DEFAULT_ROZO_APP_ID } from '../constants/rozoConfig.js';
|
|
5
|
-
import { formatTokenAmount } from '../utils/format.js';
|
|
5
|
+
import { formatNativeInsufficientBalance, formatTokenAmount, roundTokenAmount } from '../utils/format.js';
|
|
6
6
|
import { useSupportedChains } from './useSupportedChains.js';
|
|
7
|
+
import { sourceTokenChainId, normalizeSourceTokenAddress } from '../utils/token.js';
|
|
7
8
|
|
|
8
9
|
/** Wallet payment options. User picks one. */
|
|
9
10
|
function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, payParams, }) {
|
|
10
11
|
const { chains, tokens } = useSupportedChains();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
// Get Stellar chain IDs from supported chains
|
|
13
|
+
const stellarChainIds = useMemo(() => {
|
|
14
|
+
return new Set(chains.filter((c) => c.type === "stellar").map((c) => c.chainId));
|
|
15
|
+
}, [chains]);
|
|
16
|
+
const stableAppId = useMemo(() => {
|
|
17
|
+
return payParams?.appId;
|
|
18
|
+
}, [payParams]);
|
|
14
19
|
const memoizedPreferredTokens = useMemo(() => payParams?.preferredTokens,
|
|
15
20
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
16
21
|
[JSON.stringify(payParams?.preferredTokens)]);
|
|
17
22
|
const { data, isLoading, refetch } = useQuery({
|
|
18
23
|
enabled: address != null &&
|
|
19
|
-
usdRequired != null
|
|
24
|
+
usdRequired != null &&
|
|
25
|
+
stableAppId != null &&
|
|
26
|
+
stableAppId !== DEFAULT_ROZO_APP_ID,
|
|
20
27
|
queryKey: [
|
|
21
28
|
"stellarPaymentOptions",
|
|
22
29
|
address,
|
|
@@ -27,14 +34,18 @@ function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, p
|
|
|
27
34
|
],
|
|
28
35
|
queryFn: () => {
|
|
29
36
|
const stellarPreferredTokenAddresses = (memoizedPreferredTokens ?? [])
|
|
30
|
-
.filter((t) => stellarChainIds.has(t.chainId))
|
|
31
|
-
.map((t) => t.token);
|
|
37
|
+
.filter((t) => stellarChainIds.has(sourceTokenChainId(t.chainId)))
|
|
38
|
+
.map((t) => (t.symbol === "XLM" && isNativeToken(t.token) ? "XLM" : t.token));
|
|
39
|
+
// Preserve the existing hint behavior for non-XLM lists. The local
|
|
40
|
+
// proxy ranks these addresses; explicit restrictions stay in the SDK.
|
|
41
|
+
const isRestrictive = stellarPreferredTokenAddresses.length > 0 &&
|
|
42
|
+
!stellarPreferredTokenAddresses.includes("XLM");
|
|
32
43
|
return trpc.getStellarPaymentOptions.query({
|
|
33
44
|
stellarAddress: address,
|
|
34
45
|
// API expects undefined for deposit flow.
|
|
35
46
|
usdRequired: isDepositFlow ? undefined : usdRequired,
|
|
36
47
|
appId: stableAppId,
|
|
37
|
-
preferredTokenAddress: stellarPreferredTokenAddresses,
|
|
48
|
+
preferredTokenAddress: isRestrictive ? stellarPreferredTokenAddresses : undefined,
|
|
38
49
|
});
|
|
39
50
|
},
|
|
40
51
|
staleTime: 30_000,
|
|
@@ -49,25 +60,42 @@ function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, p
|
|
|
49
60
|
.filter((option) => {
|
|
50
61
|
const tokenChainId = option.balance.token.chainId;
|
|
51
62
|
const tokenAddress = option.balance.token.token;
|
|
63
|
+
// If preferredTokens is provided and not empty, filter by matching chainId and token address
|
|
52
64
|
if (preferredTokens && preferredTokens.length > 0) {
|
|
53
|
-
return preferredTokens.some((pt) => pt.chainId === tokenChainId &&
|
|
54
|
-
|
|
55
|
-
|
|
65
|
+
return preferredTokens.some((pt) => sourceTokenChainId(pt.chainId) === sourceTokenChainId(tokenChainId) &&
|
|
66
|
+
normalizeSourceTokenAddress(pt.chainId, pt.token) ===
|
|
67
|
+
normalizeSourceTokenAddress(tokenChainId, tokenAddress));
|
|
56
68
|
}
|
|
57
69
|
// Otherwise, check against supported tokens
|
|
58
|
-
return tokens.some((t) =>
|
|
59
|
-
|
|
60
|
-
t.chainId ===
|
|
70
|
+
return tokens.some((t) => normalizeSourceTokenAddress(t.chainId, t.token) ===
|
|
71
|
+
normalizeSourceTokenAddress(tokenChainId, tokenAddress) &&
|
|
72
|
+
sourceTokenChainId(t.chainId) === sourceTokenChainId(tokenChainId));
|
|
61
73
|
})
|
|
62
74
|
.map((item) => {
|
|
63
75
|
const usd = isDepositFlow ? 0 : usdRequired || 0;
|
|
64
76
|
const value = {
|
|
65
77
|
...item,
|
|
66
|
-
required: {
|
|
78
|
+
required: {
|
|
79
|
+
...item.required,
|
|
80
|
+
usd,
|
|
81
|
+
},
|
|
67
82
|
};
|
|
68
|
-
|
|
83
|
+
// Set `disabledReason` manually (based on current usdRequired state, not API Request)
|
|
84
|
+
const knownToken = getKnownToken(item.balance.token.chainId, item.balance.token.token);
|
|
85
|
+
const fiatISO = knownToken?.fiatISO ?? item.balance.token.fiatISO;
|
|
86
|
+
const isNative = isNativeToken(item.balance.token.token);
|
|
69
87
|
if (item.balance.usd < usd) {
|
|
70
|
-
|
|
88
|
+
if (isNative) {
|
|
89
|
+
if (!value.disabledReason || value.disabledReason.startsWith("Balance too low:")) {
|
|
90
|
+
value.disabledReason = formatNativeInsufficientBalance(item.balance);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else if (fiatISO) {
|
|
94
|
+
value.disabledReason = `Balance too low: ${formatTokenAmount(item.balance.usd, 6)} ${fiatISO}`;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
value.disabledReason = `Balance too low: ${roundTokenAmount(item.balance.amount, item.balance.token)} ${item.balance.token.symbol}`;
|
|
98
|
+
}
|
|
71
99
|
}
|
|
72
100
|
return value;
|
|
73
101
|
});
|
|
@@ -75,7 +103,7 @@ function useStellarPaymentOptions({ trpc, address, usdRequired, isDepositFlow, p
|
|
|
75
103
|
return {
|
|
76
104
|
options: filteredOptions,
|
|
77
105
|
isLoading,
|
|
78
|
-
refreshOptions: refetch,
|
|
106
|
+
refreshOptions: () => refetch().then(() => { }),
|
|
79
107
|
};
|
|
80
108
|
}
|
|
81
109
|
|
|
@@ -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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { supportedChains } from '@rozoai/intent-common';
|
|
2
|
+
import { sourcePaymentTokens } from '../utils/token.js';
|
|
2
3
|
|
|
3
4
|
function useSupportedChains() {
|
|
4
5
|
return {
|
|
@@ -9,7 +10,7 @@ function useSupportedChains() {
|
|
|
9
10
|
/**
|
|
10
11
|
* Array of supported tokens for payment widget.
|
|
11
12
|
*/
|
|
12
|
-
tokens:
|
|
13
|
+
tokens: sourcePaymentTokens,
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSupportedChains.js","sources":["../../../src/hooks/useSupportedChains.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSupportedChains.js","sources":["../../../src/hooks/useSupportedChains.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;SAGgB,kBAAkB,GAAA;IAIhC,OAAO;AACL;;AAEG;AACH,QAAA,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;AACvC;;AAEG;AACH,QAAA,MAAM,EAAE,mBAAmB;KAC5B;AACH;;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { getChainName
|
|
2
|
+
import { getChainName } from '@rozoai/intent-common';
|
|
3
3
|
import { useMemo, useCallback, useRef, useEffect } from 'react';
|
|
4
4
|
import TokenChainLogo from '../components/Common/TokenChainLogo/index.js';
|
|
5
5
|
import { ROUTES } from '../constants/routes.js';
|
|
6
6
|
import { ROZO_EVENTS } from '../lib/analytics/events.js';
|
|
7
7
|
import { useAnalytics } from '../provider/AnalyticsProvider.js';
|
|
8
8
|
import { formatUsd, roundTokenAmount } from '../utils/format.js';
|
|
9
|
+
import { sourceTokenChainId, normalizeSourceTokenAddress } from '../utils/token.js';
|
|
9
10
|
import { suggestedSourceRank } from '../utils/suggestedSource.js';
|
|
10
11
|
import { usePayContext } from './usePayContext.js';
|
|
11
12
|
|
|
@@ -103,8 +104,9 @@ function useTokenOptions(mode) {
|
|
|
103
104
|
const chainId = parseInt(chainIdStr, 10);
|
|
104
105
|
if (isNaN(chainId))
|
|
105
106
|
return false;
|
|
106
|
-
return preferredTokens.some((pt) => pt.chainId === chainId &&
|
|
107
|
-
|
|
107
|
+
return preferredTokens.some((pt) => sourceTokenChainId(pt.chainId) === sourceTokenChainId(chainId) &&
|
|
108
|
+
normalizeSourceTokenAddress(pt.chainId, pt.token) ===
|
|
109
|
+
normalizeSourceTokenAddress(chainId, tokenAddress));
|
|
108
110
|
};
|
|
109
111
|
// Option ids are "chainId-tokenAddress" (see isTokenPreferred above).
|
|
110
112
|
const optionSuggestedRank = (option) => {
|
|
@@ -118,10 +120,12 @@ function useTokenOptions(mode) {
|
|
|
118
120
|
};
|
|
119
121
|
// Memoize the sorted optionsList and reassign to optionsList to preserve invariant
|
|
120
122
|
const sortedOptionsList = useMemo(() => {
|
|
121
|
-
return optionsList
|
|
123
|
+
return optionsList
|
|
124
|
+
.map((option) => ({
|
|
122
125
|
...option,
|
|
123
126
|
badge: optionSuggestedRank(option) === 0 ? "Last used" : undefined,
|
|
124
|
-
}))
|
|
127
|
+
}))
|
|
128
|
+
.sort((a, b) => {
|
|
125
129
|
// First: sort by disabled state (enabled tokens first)
|
|
126
130
|
const dDisabled = (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0);
|
|
127
131
|
if (dDisabled !== 0)
|
|
@@ -146,6 +150,7 @@ function useTokenOptions(mode) {
|
|
|
146
150
|
const refreshOptions = useCallback(async () => {
|
|
147
151
|
const { ethWalletAddress, solanaPubKey, stellarPubKey } = paymentState;
|
|
148
152
|
const refreshPromises = [];
|
|
153
|
+
// Only refresh EVM options if we have EVM address and need EVM data
|
|
149
154
|
if (["evm", "all"].includes(mode) &&
|
|
150
155
|
ethWalletAddress &&
|
|
151
156
|
(!walletPaymentOptions.options || walletPaymentOptions.options.length === 0)) {
|
|
@@ -367,7 +372,7 @@ function getEvmTokenOptions(options, isDepositFlow, setSelectedTokenOption, setR
|
|
|
367
372
|
title,
|
|
368
373
|
subtitle,
|
|
369
374
|
icons: [
|
|
370
|
-
jsx(TokenChainLogo, { token: option.balance.token }, getRozoTokenKey(option.balance.token)),
|
|
375
|
+
jsx(TokenChainLogo, { token: option.balance.token, nativeAsChainIcon: true }, getRozoTokenKey(option.balance.token)),
|
|
371
376
|
],
|
|
372
377
|
onClick: () => {
|
|
373
378
|
capture(ROZO_EVENTS.CHAIN_SELECTED, {
|
|
@@ -408,7 +413,7 @@ function getSolanaTokenOptions(options, isDepositFlow, setSelectedSolanaTokenOpt
|
|
|
408
413
|
title,
|
|
409
414
|
subtitle,
|
|
410
415
|
icons: [
|
|
411
|
-
jsx(TokenChainLogo, { token: option.balance.token }, getRozoTokenKey(option.balance.token)),
|
|
416
|
+
jsx(TokenChainLogo, { token: option.balance.token, nativeAsChainIcon: true }, getRozoTokenKey(option.balance.token)),
|
|
412
417
|
],
|
|
413
418
|
onClick: () => {
|
|
414
419
|
capture(ROZO_EVENTS.CHAIN_SELECTED, {
|
|
@@ -449,7 +454,7 @@ function getStellarTokenOptions(options, isDepositFlow, setSelectedStellarTokenO
|
|
|
449
454
|
title,
|
|
450
455
|
subtitle,
|
|
451
456
|
icons: [
|
|
452
|
-
jsx(TokenChainLogo, { token: option.balance.token }, getRozoTokenKey(option.balance.token)),
|
|
457
|
+
jsx(TokenChainLogo, { token: option.balance.token, nativeAsChainIcon: true }, getRozoTokenKey(option.balance.token)),
|
|
453
458
|
],
|
|
454
459
|
onClick: () => {
|
|
455
460
|
capture(ROZO_EVENTS.CHAIN_SELECTED, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenOptions.js","sources":["../../../src/hooks/useTokenOptions.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTokenOptions.js","sources":["../../../src/hooks/useTokenOptions.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ethAddress } from 'viem';
|
|
2
|
+
import { normalizeSourceTokenAddress, sourceTokenChainId } from '../utils/token.js';
|
|
2
3
|
import { useQuery } from '@tanstack/react-query';
|
|
3
4
|
import { useMemo } from 'react';
|
|
4
5
|
import { DEFAULT_ROZO_APP_ID } from '../constants/rozoConfig.js';
|
|
5
|
-
import { formatTokenAmount } from '../utils/format.js';
|
|
6
|
+
import { formatTokenAmount, formatNativeInsufficientBalance } from '../utils/format.js';
|
|
6
7
|
import { useSupportedChains } from './useSupportedChains.js';
|
|
8
|
+
import { isNativeToken } from '@rozoai/intent-common';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Wallet payment options. User picks one.
|
|
@@ -13,13 +15,18 @@ import { useSupportedChains } from './useSupportedChains.js';
|
|
|
13
15
|
* 2. Filtering to only show currently supported chains and tokens
|
|
14
16
|
*
|
|
15
17
|
* CURRENTLY SUPPORTED CHAINS & TOKENS IN WALLET PAYMENT OPTIONS:
|
|
16
|
-
* - Base (Chain ID: 8453) - USDC
|
|
17
|
-
* - Polygon (Chain ID: 137) - USDC
|
|
18
|
-
* - Ethereum (Chain ID: 1) - USDC
|
|
19
|
-
* - BSC (Chain ID: 56) - USDT (when MugglePay app, BSC preferred, or user has BSC USDT balance, even if disabled)
|
|
20
|
-
* - Rozo Solana - USDC (native Solana USDC)
|
|
18
|
+
* - Base (Chain ID: 8453) - USDC, native ETH
|
|
19
|
+
* - Polygon (Chain ID: 137) - USDC, native POL
|
|
20
|
+
* - Ethereum (Chain ID: 1) - USDC, native ETH
|
|
21
|
+
* - BSC (Chain ID: 56) - USDT, native BNB (when MugglePay app, BSC preferred, or user has BSC USDT balance, even if disabled)
|
|
22
|
+
* - Rozo Solana - USDC (native Solana USDC), native SOL
|
|
21
23
|
* - Rozo Stellar - USDC/XLM (native Stellar tokens)
|
|
22
24
|
*
|
|
25
|
+
* Native sources are opt-in per response: the SDK never synthesizes them, it
|
|
26
|
+
* only decides whether balances the proxy returns survive isSupported and the
|
|
27
|
+
* preferredTokens filter. EVM natives live in sourcePaymentTokens, not
|
|
28
|
+
* supportedTokens (see utils/token.ts).
|
|
29
|
+
*
|
|
23
30
|
* Note: The SDK supports many more chains/tokens (see pay-common/src/chain.ts and token.ts)
|
|
24
31
|
* but wallet payment options are currently filtered to the above for optimal user experience.
|
|
25
32
|
*/
|
|
@@ -40,9 +47,7 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, isDe
|
|
|
40
47
|
const { chains, tokens } = useSupportedChains();
|
|
41
48
|
const evmChainIds = useMemo(() => new Set(chains.filter((c) => c.type === "evm").map((c) => c.chainId)), [chains]);
|
|
42
49
|
const { data, isLoading, refetch } = useQuery({
|
|
43
|
-
enabled: address != null &&
|
|
44
|
-
usdRequired != null &&
|
|
45
|
-
destChainId != null,
|
|
50
|
+
enabled: address != null && usdRequired != null && destChainId != null,
|
|
46
51
|
queryKey: [
|
|
47
52
|
"walletPaymentOptions",
|
|
48
53
|
address,
|
|
@@ -57,7 +62,10 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, isDe
|
|
|
57
62
|
// Source of truth for Intent API calls: chain + token pairing.
|
|
58
63
|
const evmPreferredTokens = (memoizedPreferredTokens ?? [])
|
|
59
64
|
.filter((t) => evmChainIds.has(t.chainId))
|
|
60
|
-
.map((t) => ({
|
|
65
|
+
.map((t) => ({
|
|
66
|
+
chain: t.chainId,
|
|
67
|
+
address: isNativeToken(t.token) ? ethAddress : t.token,
|
|
68
|
+
}));
|
|
61
69
|
// Backward-compat for local proxy implementations that still read this field.
|
|
62
70
|
const evmPreferredTokenAddresses = evmPreferredTokens.map((t) => t.address);
|
|
63
71
|
return trpc.getWalletPaymentOptions.query({
|
|
@@ -78,7 +86,9 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, isDe
|
|
|
78
86
|
if (!data)
|
|
79
87
|
return [];
|
|
80
88
|
const isSupported = (o) => chains.some((c) => c.chainId === o.balance.token.chainId &&
|
|
81
|
-
tokens.some((t) => t.
|
|
89
|
+
tokens.some((t) => t.chainId === c.chainId &&
|
|
90
|
+
normalizeSourceTokenAddress(c.chainId, t.token) ===
|
|
91
|
+
normalizeSourceTokenAddress(c.chainId, o.balance.token.token)));
|
|
82
92
|
// Hard filter, not a ranking hint: any balance not matching a
|
|
83
93
|
// preferredTokens entry is dropped entirely. RozoPayButton's own type
|
|
84
94
|
// docs describe preferredTokens as restricting wallet payment options
|
|
@@ -88,9 +98,9 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, isDe
|
|
|
88
98
|
if (!memoizedPreferredTokens || memoizedPreferredTokens.length === 0) {
|
|
89
99
|
return true;
|
|
90
100
|
}
|
|
91
|
-
return memoizedPreferredTokens.some((pt) => pt.chainId === o.balance.token.chainId &&
|
|
92
|
-
|
|
93
|
-
|
|
101
|
+
return memoizedPreferredTokens.some((pt) => sourceTokenChainId(pt.chainId) === sourceTokenChainId(o.balance.token.chainId) &&
|
|
102
|
+
normalizeSourceTokenAddress(pt.chainId, pt.token) ===
|
|
103
|
+
normalizeSourceTokenAddress(o.balance.token.chainId, o.balance.token.token));
|
|
94
104
|
};
|
|
95
105
|
return data
|
|
96
106
|
.filter(isSupported)
|
|
@@ -101,9 +111,15 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, isDe
|
|
|
101
111
|
...item,
|
|
102
112
|
required: { ...item.required, usd },
|
|
103
113
|
};
|
|
104
|
-
const destinationFiatISO = getKnownToken(item.balance.token.chainId, item.balance.token.token)?.fiatISO;
|
|
105
114
|
if (item.balance.usd < usd) {
|
|
106
|
-
|
|
115
|
+
const usdBalance = `$${formatTokenAmount(item.balance.usd, 2)}`;
|
|
116
|
+
if (isNativeToken(item.balance.token.token) &&
|
|
117
|
+
(!value.disabledReason || value.disabledReason.startsWith("Balance too low:"))) {
|
|
118
|
+
value.disabledReason = formatNativeInsufficientBalance(item.balance);
|
|
119
|
+
}
|
|
120
|
+
else if (!value.disabledReason) {
|
|
121
|
+
value.disabledReason = `Balance too low: ${usdBalance}`;
|
|
122
|
+
}
|
|
107
123
|
}
|
|
108
124
|
return value;
|
|
109
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletPaymentOptions.js","sources":["../../../src/hooks/useWalletPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWalletPaymentOptions.js","sources":["../../../src/hooks/useWalletPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TokenSymbol, FeeType, getOrderDestChainId, getKnownToken, rozoSolana, baseEURC, baseUSDC, rozoStellar, generateIntentTitle,
|
|
2
|
-
import { parseUnits, formatUnits
|
|
1
|
+
import { TokenSymbol, FeeType, getOrderDestChainId, getKnownToken, solana, solanaSOL, rozoSolana, baseEURC, baseUSDC, rozoStellar, generateIntentTitle, mergedMetadata, stellar, supportedTokens, supportedPayoutTokens } from '@rozoai/intent-common';
|
|
2
|
+
import { parseUnits, formatUnits } from 'viem';
|
|
3
3
|
import { DEFAULT_ROZO_APP_ID } from '../constants/rozoConfig.js';
|
|
4
|
-
import {
|
|
4
|
+
import { tokenBaseAmountToDecimalString } from '../utils/format.js';
|
|
5
|
+
import { convertPreferredSymbolsToTokens, normalizeSourceTokenAddress, sourceTokenChainId } from '../utils/token.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Round a decimal amount string to `decimals` fraction digits, string-only
|
|
@@ -37,6 +38,17 @@ function roundDecimalString(value, decimals) {
|
|
|
37
38
|
const newFrac = carried.slice(carried.length - decimals);
|
|
38
39
|
return decimals === 0 ? newWhole : `${newWhole}.${newFrac}`;
|
|
39
40
|
}
|
|
41
|
+
/** Direct settlement only applies to identical supported Stellar assets. */
|
|
42
|
+
function resolveStellarDirectIntent(destChainId, destTokenAddress, sourceChainId, sourceTokenAddress, requestedIntent) {
|
|
43
|
+
const isSameSupportedToken = destChainId === rozoStellar.chainId &&
|
|
44
|
+
sourceChainId === rozoStellar.chainId &&
|
|
45
|
+
destTokenAddress === sourceTokenAddress &&
|
|
46
|
+
supportedTokens.get(rozoStellar.chainId)?.some((token) => token.token === destTokenAddress) &&
|
|
47
|
+
supportedPayoutTokens.get(rozoStellar.chainId)?.some((token) => token.token === destTokenAddress);
|
|
48
|
+
if (isSameSupportedToken)
|
|
49
|
+
return "stellar_direct";
|
|
50
|
+
return requestedIntent === "stellar_direct" ? undefined : requestedIntent;
|
|
51
|
+
}
|
|
40
52
|
/**
|
|
41
53
|
* Resolve the final destination address from PayParams, handling EVM, Solana
|
|
42
54
|
* and Stellar destinations in a single place.
|
|
@@ -54,13 +66,13 @@ function resolveDestinationAddress(payParams) {
|
|
|
54
66
|
* payId mode has no RozoPayButton props to read preferredTokens from, so
|
|
55
67
|
* source stablecoin filtering must mirror the destination: EURC destination
|
|
56
68
|
* → source restricted to EURC; any other destination → source restricted to
|
|
57
|
-
* USDC/USDT (EURC balances can't fund a USD destination, and vice versa).
|
|
69
|
+
* USDC/USDT/USDT0 (EURC balances can't fund a USD destination, and vice versa).
|
|
58
70
|
* Non-stablecoin source options (native tokens etc.) are unaffected — this
|
|
59
|
-
* filter only ever narrows within [USDC, USDT, EURC].
|
|
71
|
+
* filter only ever narrows within [USDC, USDT, USDT0, EURC].
|
|
60
72
|
*/
|
|
61
73
|
function derivePayIdPreferredTokens(destTokenSymbol, preferredSymbolOverride) {
|
|
62
74
|
const preferredSymbol = preferredSymbolOverride ??
|
|
63
|
-
(destTokenSymbol === TokenSymbol.EURC ? [TokenSymbol.EURC] : [TokenSymbol.USDC, TokenSymbol.USDT]);
|
|
75
|
+
(destTokenSymbol === TokenSymbol.EURC ? [TokenSymbol.EURC] : [TokenSymbol.USDC, TokenSymbol.USDT, TokenSymbol.USDT0]);
|
|
64
76
|
return {
|
|
65
77
|
preferredSymbol,
|
|
66
78
|
preferredTokens: convertPreferredSymbolsToTokens(preferredSymbol, undefined),
|
|
@@ -104,6 +116,12 @@ function buildCreatePaymentPayload(ctx) {
|
|
|
104
116
|
rawAmountUnitsStr = payParams.toUnits ?? "0";
|
|
105
117
|
}
|
|
106
118
|
const rawAmountAtomic = parseUnits(roundDecimalString(rawAmountUnitsStr, tokenDecimals), tokenDecimals);
|
|
119
|
+
// Source amount is token-denominated and differs from the destination for
|
|
120
|
+
// native/cross-chain payments. Preserve the API quote without Number()
|
|
121
|
+
// coercion so a payment is never silently rounded.
|
|
122
|
+
const sourceAmountUnitsStr = walletOption?.required.amount != null
|
|
123
|
+
? tokenBaseAmountToDecimalString(walletOption.required.amount, walletOption.required.token.decimals)
|
|
124
|
+
: undefined;
|
|
107
125
|
// --------------------------------------------------
|
|
108
126
|
// Preferred payment method (what user will pay with)
|
|
109
127
|
// --------------------------------------------------
|
|
@@ -112,9 +130,12 @@ function buildCreatePaymentPayload(ctx) {
|
|
|
112
130
|
if (walletOption) {
|
|
113
131
|
preferredChain = walletOption.required.token.chainId;
|
|
114
132
|
preferredTokenAddress = walletOption.required.token.token;
|
|
115
|
-
//
|
|
116
|
-
if (preferredChain ===
|
|
133
|
+
// The proxy uses 501 locally; Intents quotes native SOL on 900.
|
|
134
|
+
if (preferredChain === solana.chainId &&
|
|
135
|
+
walletOption.required.token.symbol === "SOL" &&
|
|
136
|
+
normalizeSourceTokenAddress(preferredChain, preferredTokenAddress) === solanaSOL.token) {
|
|
117
137
|
preferredChain = rozoSolana.chainId;
|
|
138
|
+
preferredTokenAddress = solanaSOL.token;
|
|
118
139
|
}
|
|
119
140
|
}
|
|
120
141
|
else {
|
|
@@ -147,21 +168,7 @@ function buildCreatePaymentPayload(ctx) {
|
|
|
147
168
|
...order.userMetadata,
|
|
148
169
|
}
|
|
149
170
|
: {};
|
|
150
|
-
|
|
151
|
-
// Stellar Direct Settlement: auto-detect same-chain USDC→USDC
|
|
152
|
-
// --------------------------------------------------
|
|
153
|
-
// When both source and destination are Stellar USDC, the backend can settle
|
|
154
|
-
// directly (one on-chain transfer, 0 fee, no hub hop). We opt-in by sending
|
|
155
|
-
// intent: "stellar_direct". Consumer can also override via payParams.intent.
|
|
156
|
-
// Both destination and source must be Stellar with the SAME token (USDC or EURC)
|
|
157
|
-
const isStellarSameToken = toChain === rozoStellar.chainId &&
|
|
158
|
-
preferredChain === rozoStellar.chainId &&
|
|
159
|
-
toTokenAddress.toLowerCase() === preferredTokenAddress.toLowerCase();
|
|
160
|
-
const isSupportedStellarToken = toTokenAddress.toLowerCase() === rozoStellarUSDC.token.toLowerCase() ||
|
|
161
|
-
toTokenAddress.toLowerCase() === rozoStellarEURC.token.toLowerCase();
|
|
162
|
-
const isStellarDirect = isStellarSameToken && isSupportedStellarToken;
|
|
163
|
-
// When isStellarDirect, always force intent to "stellar_direct" regardless of consumer override
|
|
164
|
-
const intent = isStellarDirect ? "stellar_direct" : payParams.intent;
|
|
171
|
+
const intent = resolveStellarDirectIntent(toChain, toTokenAddress, preferredChain, preferredTokenAddress, payParams.intent);
|
|
165
172
|
const payload = {
|
|
166
173
|
apiVersion,
|
|
167
174
|
title,
|
|
@@ -173,6 +180,7 @@ function buildCreatePaymentPayload(ctx) {
|
|
|
173
180
|
preferredChain,
|
|
174
181
|
preferredTokenAddress,
|
|
175
182
|
toUnits: formatUnits(rawAmountAtomic, tokenDecimals),
|
|
183
|
+
...(sourceAmountUnitsStr ? { preferredAmountUnits: sourceAmountUnitsStr } : {}),
|
|
176
184
|
...(isAbleToIncludeReceiverMemo && payParams.receiverMemo
|
|
177
185
|
? { receiverMemo: payParams.receiverMemo }
|
|
178
186
|
: {}),
|
|
@@ -193,9 +201,7 @@ function buildDepositWalletOption(option, fees, fallbackUsd) {
|
|
|
193
201
|
token: option.token.token,
|
|
194
202
|
symbol: option.token.symbol,
|
|
195
203
|
},
|
|
196
|
-
usd: fees?.source?.amount != null
|
|
197
|
-
? parseFloat(fees.source.amount)
|
|
198
|
-
: fallbackUsd,
|
|
204
|
+
usd: fees?.source?.amount != null ? parseFloat(fees.source.amount) : fallbackUsd,
|
|
199
205
|
},
|
|
200
206
|
fees: {
|
|
201
207
|
usd: fees?.source?.fee != null ? parseFloat(fees.source.fee) : 0,
|
|
@@ -245,20 +251,17 @@ function resolveWalletPaymentAmount(order, option) {
|
|
|
245
251
|
throw new Error("[PAY TOKEN] hydrated order has no source quote");
|
|
246
252
|
}
|
|
247
253
|
const token = option.required.token;
|
|
248
|
-
const normalizeChainId = (chainId) =>
|
|
249
|
-
if (chainId === solana.chainId)
|
|
250
|
-
return rozoSolana.chainId;
|
|
251
|
-
if (chainId === stellar.chainId)
|
|
252
|
-
return rozoStellar.chainId;
|
|
253
|
-
return chainId;
|
|
254
|
-
};
|
|
255
|
-
const normalizeTokenAddress = (address) => address.startsWith("0x") ? getAddress(address) : address;
|
|
254
|
+
const normalizeChainId = (chainId) => chainId === stellar.chainId ? rozoStellar.chainId : sourceTokenChainId(chainId);
|
|
256
255
|
if (normalizeChainId(quote.chainId) !== normalizeChainId(token.chainId) ||
|
|
257
|
-
|
|
256
|
+
normalizeSourceTokenAddress(quote.chainId, quote.tokenAddress) !==
|
|
257
|
+
normalizeSourceTokenAddress(token.chainId, token.token)) {
|
|
258
258
|
throw new Error("[PAY TOKEN] hydrated source quote does not match selected token");
|
|
259
259
|
}
|
|
260
|
-
|
|
260
|
+
const amount = parseUnits(quote.amount, token.decimals);
|
|
261
|
+
if (amount <= 0n)
|
|
262
|
+
throw new Error("[PAY TOKEN] hydrated source quote amount must be positive");
|
|
263
|
+
return amount;
|
|
261
264
|
}
|
|
262
265
|
|
|
263
|
-
export { buildCreatePaymentPayload, buildDepositWalletOption, derivePayIdPreferredTokens, resolveDepositSourceAmount, resolveDestinationAddress, resolveWalletPaymentAmount, withWalletSourceQuote };
|
|
266
|
+
export { buildCreatePaymentPayload, buildDepositWalletOption, derivePayIdPreferredTokens, resolveDepositSourceAmount, resolveDestinationAddress, resolveStellarDirectIntent, resolveWalletPaymentAmount, withWalletSourceQuote };
|
|
264
267
|
//# sourceMappingURL=createPaymentPayload.js.map
|