@rozoai/intent-pay 0.1.36 → 0.1.37-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.
Files changed (72) hide show
  1. package/build/components/Common/OptionsList/index.d.ts +1 -0
  2. package/build/components/Common/TokenChainLogo/index.d.ts +7 -1
  3. package/build/components/Spinners/TokenLogoSpinner/index.d.ts +6 -1
  4. package/build/hooks/useDepositAddressOptions.d.ts +3 -2
  5. package/build/hooks/usePaymentState.d.ts +11 -5
  6. package/build/hooks/useRozoPay.d.ts +4 -4
  7. package/build/hooks/useSolanaPaymentOptions.d.ts +1 -1
  8. package/build/hooks/useStellarPaymentOptions.d.ts +1 -1
  9. package/build/hooks/useWalletPaymentOptions.d.ts +12 -7
  10. package/build/package.json.js +2 -2
  11. package/build/payment/createPaymentPayload.d.ts +3 -3
  12. package/build/payment/paymentFsm.d.ts +25 -2
  13. package/build/provider/PayContext.d.ts +3 -3
  14. package/build/src/components/Common/AmountInput/index.js +1 -1
  15. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  16. package/build/src/components/Common/ConnectorList/index.js +2 -3
  17. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  18. package/build/src/components/Common/OptionsList/index.js +3 -1
  19. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  20. package/build/src/components/Common/TokenChainLogo/index.js +26 -3
  21. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  22. package/build/src/components/Pages/PayWithToken/index.js +15 -4
  23. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  24. package/build/src/components/Pages/SelectDepositAddressChain/index.js +6 -17
  25. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  26. package/build/src/components/Pages/SelectMethod/index.js +1 -3
  27. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  28. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +31 -2
  29. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  30. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +57 -24
  31. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  32. package/build/src/components/Pages/Stellar/ConnectorStellar/index.js +13 -1
  33. package/build/src/components/Pages/Stellar/ConnectorStellar/index.js.map +1 -1
  34. package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js +33 -36
  35. package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js.map +1 -1
  36. package/build/src/components/Pages/WaitingDepositAddress/index.js +110 -33
  37. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  38. package/build/src/components/RozoPayModal/index.js +20 -11
  39. package/build/src/components/RozoPayModal/index.js.map +1 -1
  40. package/build/src/components/Spinners/TokenLogoSpinner/index.js +5 -2
  41. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  42. package/build/src/hooks/useDepositAddressOptions.js +19 -9
  43. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  44. package/build/src/hooks/usePaymentState.js +185 -71
  45. package/build/src/hooks/usePaymentState.js.map +1 -1
  46. package/build/src/hooks/useRozoPay.js +4 -2
  47. package/build/src/hooks/useRozoPay.js.map +1 -1
  48. package/build/src/hooks/useSolanaPaymentOptions.js +45 -12
  49. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  50. package/build/src/hooks/useStellarPaymentOptions.js +40 -10
  51. package/build/src/hooks/useStellarPaymentOptions.js.map +1 -1
  52. package/build/src/hooks/useTokenOptions.js +4 -3
  53. package/build/src/hooks/useTokenOptions.js.map +1 -1
  54. package/build/src/hooks/useWalletPaymentOptions.js +54 -21
  55. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  56. package/build/src/payment/createPaymentPayload.js +38 -13
  57. package/build/src/payment/createPaymentPayload.js.map +1 -1
  58. package/build/src/payment/paymentEffects.js +4 -5
  59. package/build/src/payment/paymentEffects.js.map +1 -1
  60. package/build/src/payment/paymentFsm.js.map +1 -1
  61. package/build/src/provider/RozoPayProvider.js +15 -6
  62. package/build/src/provider/RozoPayProvider.js.map +1 -1
  63. package/build/src/utils/format.js +82 -13
  64. package/build/src/utils/format.js.map +1 -1
  65. package/build/src/utils/token.js +21 -5
  66. package/build/src/utils/token.js.map +1 -1
  67. package/build/utils/format.d.ts +44 -3
  68. package/build/utils/token.d.ts +6 -2
  69. package/package.json +2 -2
  70. package/build/hooks/refreshUtils.d.ts +0 -19
  71. package/build/src/hooks/refreshUtils.js +0 -40
  72. package/build/src/hooks/refreshUtils.js.map +0 -1
@@ -3,8 +3,9 @@ import { useRef, useState, useMemo, useEffect } from 'react';
3
3
  import { ROUTES } from '../../../../constants/routes.js';
4
4
  import { usePayContext } from '../../../../hooks/usePayContext.js';
5
5
  import { PageContent, ModalContent, ModalH1, Link } from '../../../Common/Modal/styles.js';
6
- import { FeeType, getCanonicalDestination, getPayment, checkoutPayment, buildCheckoutPayload, formatPaymentResponseToHydratedOrder, rozoStellar, getChainExplorerTxUrl } from '@rozoai/intent-common';
6
+ import { FeeType, getCanonicalDestination, getPayment, checkoutPayment, buildCheckoutPayload, formatPaymentResponseToHydratedOrder, isNativeToken, rozoStellar, getChainExplorerTxUrl } from '@rozoai/intent-common';
7
7
  import { Networks, TransactionBuilder } from '@stellar/stellar-sdk';
8
+ import { tokenBaseAmountToDecimalString } from '../../../../utils/format.js';
8
9
  import { useContactSupport } from '../../../../hooks/useContactSupport.js';
9
10
  import { useRozoPay } from '../../../../hooks/useRozoPay.js';
10
11
  import { ROZO_EVENTS } from '../../../../lib/analytics/events.js';
@@ -31,7 +32,7 @@ const PayWithStellarToken = () => {
31
32
  const { store, order, paymentState: state, setPaymentStarted, setPaymentUnpaid, setPaymentCompleted, hydrateOrder, } = useRozoPay();
32
33
  const handleContactClick = useContactSupport();
33
34
  // Get the destination address and payment direction using our custom hook
34
- const { server: stellarServer, publicKey: stellarPublicKey, kit: stellarKit, } = useStellar();
35
+ const { server: stellarServer, publicKey: stellarPublicKey, kit: stellarKit } = useStellar();
35
36
  const submitButtonRef = useRef(null);
36
37
  // Prevents the payId fetch+checkout from firing more than once per mount.
37
38
  const checkoutDoneRef = useRef(false);
@@ -73,15 +74,8 @@ const PayWithStellarToken = () => {
73
74
  // // eslint-disable-next-line react-hooks/exhaustive-deps
74
75
  // }, [selectedStellarTokenOption?.balance.token.chainId, order?.id]);
75
76
  const destinationAddress = useMemo(() => {
76
- return (payParams?.toStellarAddress ||
77
- payParams?.toSolanaAddress ||
78
- payParams?.toAddress ||
79
- undefined);
80
- }, [
81
- payParams?.toStellarAddress,
82
- payParams?.toSolanaAddress,
83
- payParams?.toAddress,
84
- ]);
77
+ return (payParams?.toStellarAddress || payParams?.toSolanaAddress || payParams?.toAddress || undefined);
78
+ }, [payParams?.toStellarAddress, payParams?.toSolanaAddress, payParams?.toAddress]);
85
79
  useEffect(() => {
86
80
  if (state === "error") {
87
81
  setRoute(ROUTES.ERROR);
@@ -137,12 +131,24 @@ const PayWithStellarToken = () => {
137
131
  // @NOTE: Fee calculation
138
132
  const destToken = currentOrder.destFinalCallTokenAmount?.token;
139
133
  setFeeLoading(true);
134
+ // Use required.amount (base units, already priced by the backend)
135
+ // converted to a human-readable token amount — NOT required.usd,
136
+ // which is only equal to the token amount for 1:1-USD-pegged
137
+ // tokens (USDC/EURC). For native XLM this would send the wrong
138
+ // amount (e.g. "1.00" XLM instead of the correct ~2.7 XLM for a $1
139
+ // payment). Some endpoints return required.amount as an
140
+ // already-human-readable decimal string instead of integer base
141
+ // units, so detect the shape first — BigInt() throws on decimals.
142
+ const sourceAmount = tokenBaseAmountToDecimalString(option.required.amount, option.required.token.decimals);
143
+ const feeQuoteType = paymentState.payParams?.feeType ?? FeeType.ExactIn;
144
+ // getFee maps `amount` to source.amount for exactIn. We must send the
145
+ // source-token amount (e.g. XLM), NOT the USD/destination value.
140
146
  const feeData = await getCachedFee({
141
147
  appId: resolveOrderAppId(currentOrder, paymentState.payParams?.appId),
142
- type: paymentState.payParams?.feeType ?? FeeType.ExactIn,
148
+ type: feeQuoteType,
143
149
  sourceChainId: option.required.token.chainId.toString(),
144
150
  sourceTokenSymbol: option.required.token.symbol,
145
- amount: option.required.usd.toString(),
151
+ amount: sourceAmount,
146
152
  destChainId: destToken.chainId.toString(),
147
153
  destReceiverAddress: getCanonicalDestination(currentOrder).finalDestinationAddress ??
148
154
  paymentState.payParams?.toAddress ??
@@ -182,7 +188,7 @@ const PayWithStellarToken = () => {
182
188
  chainId: option.required.token.chainId,
183
189
  tokenSymbol: option.required.token.symbol,
184
190
  tokenAddress: option.required.token.token,
185
- amount: String(option.required.usd),
191
+ amount: sourceAmount,
186
192
  }));
187
193
  if (!checkoutRes?.data) {
188
194
  throw new Error("Failed to checkout payment");
@@ -193,13 +199,16 @@ const PayWithStellarToken = () => {
193
199
  cachedCheckoutPaymentIdRef.current = paymentId;
194
200
  }
195
201
  }
196
- else if ((state === "payment_unpaid" || state === "payment_started") &&
197
- !needRozoPayment) {
202
+ else if ((state === "payment_unpaid" || state === "payment_started") && !needRozoPayment) {
198
203
  hydratedOrder = currentOrder;
199
204
  }
200
205
  else if (needRozoPayment) {
206
+ // Backend rejects `checkout` when rotating to a native source
207
+ // (SOL/ETH/XLM) — "create a new order instead". So for native sources we
208
+ // skip checkout and create a fresh payment.
209
+ const rotateToNative = isNativeToken(option.required.token.token);
201
210
  const existingId = rozoPaymentId ?? currentOrder.externalId ?? undefined;
202
- if (existingId) {
211
+ if (existingId && !rotateToNative) {
203
212
  const paymentRes = await getPayment(existingId);
204
213
  if (!paymentRes?.data) {
205
214
  throw new Error("Failed to fetch payment");
@@ -208,7 +217,7 @@ const PayWithStellarToken = () => {
208
217
  chainId: option.required.token.chainId,
209
218
  tokenSymbol: option.required.token.symbol,
210
219
  tokenAddress: option.required.token.token,
211
- amount: String(option.required.usd),
220
+ amount: sourceAmount,
212
221
  }));
213
222
  if (!checkoutRes?.data) {
214
223
  throw new Error("Failed to checkout payment");
@@ -239,9 +248,7 @@ const PayWithStellarToken = () => {
239
248
  ...option,
240
249
  fees: {
241
250
  ...option.fees,
242
- usd: feeData.data?.source.fee != null
243
- ? Number(feeData.data.source.fee)
244
- : option.fees.usd,
251
+ usd: feeData.data?.source.fee != null ? Number(feeData.data.source.fee) : option.fees.usd,
245
252
  },
246
253
  });
247
254
  hydratedOrder = res.order;
@@ -326,9 +333,7 @@ const PayWithStellarToken = () => {
326
333
  ...option,
327
334
  fees: {
328
335
  ...option.fees,
329
- usd: feeData.data?.source.fee != null
330
- ? Number(feeData.data.source.fee)
331
- : option.fees.usd,
336
+ usd: feeData.data?.source.fee != null ? Number(feeData.data.source.fee) : option.fees.usd,
332
337
  },
333
338
  }, paymentData);
334
339
  setSignedTx(result.signedTx);
@@ -351,9 +356,7 @@ const PayWithStellarToken = () => {
351
356
  const isRejected = errorMessage.includes("rejected");
352
357
  capture(ROZO_EVENTS.PAYMENT_FAILED, {
353
358
  payment_id: resolvedPaymentId ?? rozoPaymentId,
354
- error_message: isRejected
355
- ? "user_rejected"
356
- : (errorMessage ?? "unknown_error"),
359
+ error_message: isRejected ? "user_rejected" : (errorMessage ?? "unknown_error"),
357
360
  source_chain: rozoStellar.chainId,
358
361
  });
359
362
  if (isRejected) {
@@ -420,9 +423,7 @@ const PayWithStellarToken = () => {
420
423
  const isRejected = errorMessage.includes("rejected");
421
424
  capture(ROZO_EVENTS.PAYMENT_FAILED, {
422
425
  payment_id: rozoPaymentId,
423
- error_message: isRejected
424
- ? "user_rejected"
425
- : (errorMessage ?? "unknown_error"),
426
+ error_message: isRejected ? "user_rejected" : (errorMessage ?? "unknown_error"),
426
427
  source_chain: rozoStellar.chainId,
427
428
  });
428
429
  if (isRejected) {
@@ -458,7 +459,7 @@ const PayWithStellarToken = () => {
458
459
  if (selectedStellarTokenOption == null) {
459
460
  return jsx(PageContent, {});
460
461
  }
461
- return (jsxs(PageContent, { children: [jsx("button", { ref: submitButtonRef, style: { display: "none" }, onClick: handleSubmitTx }), selectedStellarTokenOption && (jsx(TokenLogoSpinner, { token: selectedStellarTokenOption.required.token, loading: isLoading })), jsxs(ModalContent, { style: { paddingBottom: 0 }, children: [txURL ? (jsx(ModalH1, { children: jsx(Link, { href: txURL, target: "_blank", rel: "noopener noreferrer", children: payState }) })) : (jsx(ModalH1, { children: payState })), jsx(PaymentBreakdown, { paymentOption: {
462
+ return (jsxs(PageContent, { children: [jsx("button", { ref: submitButtonRef, style: { display: "none" }, onClick: handleSubmitTx }), selectedStellarTokenOption && (jsx(TokenLogoSpinner, { token: selectedStellarTokenOption.required.token, loading: isLoading, nativeAsChainIcon: true })), jsxs(ModalContent, { style: { paddingBottom: 0 }, children: [txURL ? (jsx(ModalH1, { children: jsx(Link, { href: txURL, target: "_blank", rel: "noopener noreferrer", children: payState }) })) : (jsx(ModalH1, { children: payState })), jsx(PaymentBreakdown, { paymentOption: {
462
463
  ...selectedStellarTokenOption,
463
464
  fees: {
464
465
  ...selectedStellarTokenOption.fees,
@@ -466,11 +467,7 @@ const PayWithStellarToken = () => {
466
467
  ? Number(feeData.source.fee)
467
468
  : selectedStellarTokenOption.fees.usd,
468
469
  },
469
- }, feeData: feeData, feeLoading: feeLoading }), payState === PayState.WaitingForConfirmation && signedTx && (jsx(Button, { variant: "primary", onClick: handleSubmitTx, children: "Confirm Payment" })), payState === PayState.RequestCancelled && (jsx(Button, { onClick: signedTx
470
- ? handleSubmitTx
471
- : () => handleTransfer(selectedStellarTokenOption), children: "Retry Payment" })), payState === PayState.RequestFailed && (jsxs(Fragment, { children: [jsx(Button, { onClick: signedTx
472
- ? handleSubmitTx
473
- : () => handleTransfer(selectedStellarTokenOption), children: "Retry Payment" }), jsx(Button, { onClick: handleContactClick, children: "Contact Support" })] }))] })] }));
470
+ }, feeData: feeData, feeLoading: feeLoading }), payState === PayState.WaitingForConfirmation && signedTx && (jsx(Button, { variant: "primary", onClick: handleSubmitTx, children: "Confirm Payment" })), payState === PayState.RequestCancelled && (jsx(Button, { onClick: signedTx ? handleSubmitTx : () => handleTransfer(selectedStellarTokenOption), children: "Retry Payment" })), payState === PayState.RequestFailed && (jsxs(Fragment, { children: [jsx(Button, { onClick: signedTx ? handleSubmitTx : () => handleTransfer(selectedStellarTokenOption), children: "Retry Payment" }), jsx(Button, { onClick: handleContactClick, children: "Contact Support" })] }))] })] }));
474
471
  };
475
472
 
476
473
  export { PayWithStellarToken as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/Pages/Stellar/PayWithStellarToken/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/Pages/Stellar/PayWithStellarToken/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { isHydrated, DepositAddressPaymentOptions, getKnownToken, solana, rozoSolana, generateSolanaDeepLink, stellar, rozoStellar, generateEVMDeepLink, getChainName, getFee, FeeType, getCanonicalDestination, getAddressContraction } from '@rozoai/intent-common';
3
- import { useState, useRef, useEffect, useMemo } from 'react';
2
+ import { isHydrated, isNativeToken, DepositAddressPaymentOptions, getKnownToken, stellar, rozoStellar, solana, rozoSolana, generateSolanaDeepLink, generateEVMDeepLink, getChainName, FeeType, getTokenPrices, getCanonicalDestination, getAddressContraction } from '@rozoai/intent-common';
3
+ import { useState, useRef, useMemo, useEffect } from 'react';
4
4
  import { keyframes } from 'styled-components';
5
5
  import { parseUnits } from 'viem';
6
6
  import { AlertIcon, WarningIcon } from '../../../assets/icons.js';
@@ -11,8 +11,8 @@ import { usePayinPolling } from '../../../hooks/usePayinPolling.js';
11
11
  import { usePusherPayout } from '../../../hooks/usePusherPayout.js';
12
12
  import { useRozoPay } from '../../../hooks/useRozoPay.js';
13
13
  import styled from '../../../styles/styled/index.js';
14
- import { resolveOrderAppId } from '../../../utils/feeCache.js';
15
- import { formatUsd, trimTokenAmount } from '../../../utils/format.js';
14
+ import { resolveOrderAppId, getCachedFee } from '../../../utils/feeCache.js';
15
+ import { generateStellarDeepLink, formatUsd, trimTokenAmount } from '../../../utils/format.js';
16
16
  import Button from '../../Common/Button/index.js';
17
17
  import CircleTimer from '../../Common/CircleTimer.js';
18
18
  import CopyToClipboardIcon from '../../Common/CopyToClipboard/CopyToClipboardIcon.js';
@@ -45,7 +45,6 @@ function WaitingDepositAddress() {
45
45
  const [depAddr, setDepAddr] = useState();
46
46
  const [failed, setFailed] = useState(false);
47
47
  const [isLoading, setIsLoading] = useState(false);
48
- const [depoChain, setDepoChain] = useState();
49
48
  const [hasExecutedDepositCall, setHasExecutedDepositCall] = useState(false);
50
49
  const [feeData, setFeeData] = useState(null);
51
50
  const [feeError, setFeeError] = useState(null);
@@ -57,6 +56,9 @@ function WaitingDepositAddress() {
57
56
  const pusherUnsubscribeRef = useRef(null);
58
57
  const payinDetectedRef = useRef(false);
59
58
  const prevActivePaymentIdRef = useRef(undefined);
59
+ const isNativeSource = useMemo(() => {
60
+ return (selectedDepositAddressOption != null && isNativeToken(selectedDepositAddressOption.token.token));
61
+ }, [selectedDepositAddressOption]);
60
62
  // The active deposit payment id (same expression the Pusher block uses).
61
63
  const activePaymentId = rozoPaymentId || depAddr?.externalId;
62
64
  const handlePayinDetected = (txHash, paymentId) => {
@@ -194,24 +196,42 @@ function WaitingDepositAddress() {
194
196
  if (!preferredToken) {
195
197
  throw new Error("Preferred token not found");
196
198
  }
199
+ // Amount to send, in source-token units. Prefer the backend source.amount
200
+ // (surfaced via metadata) over usdValue so native sources (SOL/ETH/XLM)
201
+ // show the correct token amount rather than the USD/destination value.
202
+ // For native sources we MUST have the backend-computed value — usdValue
203
+ // is the destination payout (e.g. "1" USDC) not the native amount
204
+ // (e.g. "0.016885" SOL), so falling back to it would show the user the
205
+ // wrong amount.
206
+ const metaSourceAmount = order.metadata?.sourceAmountUnits;
207
+ if (isNativeSource && metaSourceAmount == null) {
208
+ throw new Error("sourceAmountUnits missing on hydrated order for native deposit source");
209
+ }
210
+ const sourceAmountUnits = metaSourceAmount != null ? String(metaSourceAmount) : String(order.usdValue);
197
211
  let uriDeeplink = null;
212
+ const isStellarChain = [stellar.chainId, rozoStellar.chainId].includes(preferredToken.chainId);
198
213
  // Use Solana deep link if it's a Solana chain
199
214
  if ([solana.chainId, rozoSolana.chainId].includes(preferredToken.chainId)) {
200
215
  uriDeeplink = generateSolanaDeepLink({
201
- amountUnits: order.destFinalCallTokenAmount.usd.toString(),
216
+ amountUnits: sourceAmountUnits,
202
217
  recipientAddress: order.intentAddr,
203
218
  tokenAddress: preferredToken.token,
204
- memo: order.memo || order.metadata?.memo || undefined,
205
219
  });
206
220
  }
207
- // If Stellar, do not generate a link (set to null)
208
- else if ([stellar.chainId, rozoStellar.chainId].includes(preferredToken.chainId)) {
209
- uriDeeplink = null;
221
+ // Stellar pay URI (SEP-0007)
222
+ else if (isStellarChain) {
223
+ const memo = order.memo || order.metadata?.memo || undefined;
224
+ uriDeeplink = generateStellarDeepLink({
225
+ amountUnits: sourceAmountUnits,
226
+ recipientAddress: order.intentAddr,
227
+ token: preferredToken,
228
+ memo,
229
+ });
210
230
  }
211
231
  // Otherwise use EVM deep link
212
232
  else {
213
233
  uriDeeplink = generateEVMDeepLink({
214
- amountUnits: parseUnits(order.destFinalCallTokenAmount.usd.toString(), preferredToken.decimals).toString(),
234
+ amountUnits: parseUnits(sourceAmountUnits, preferredToken.decimals).toString(),
215
235
  chainId: preferredToken.chainId,
216
236
  recipientAddress: order.intentAddr,
217
237
  tokenAddress: preferredToken.token,
@@ -219,7 +239,7 @@ function WaitingDepositAddress() {
219
239
  }
220
240
  setDepAddr({
221
241
  address: order.intentAddr,
222
- amount: String(order.usdValue),
242
+ amount: sourceAmountUnits,
223
243
  underpayment: {
224
244
  unitsPaid: order.destFinalCallTokenAmount.amount,
225
245
  coin: order.destFinalCallTokenAmount.token.symbol,
@@ -229,7 +249,7 @@ function WaitingDepositAddress() {
229
249
  uri: uriDeeplink ?? undefined,
230
250
  displayToken: order.destFinalCallTokenAmount.token,
231
251
  logoURI: "", // Not needed for underpaid orders
232
- memo: order.memo || order.metadata?.memo || undefined,
252
+ memo: isStellarChain ? order.memo || order.metadata?.memo || undefined : undefined,
233
253
  });
234
254
  }
235
255
  else {
@@ -249,10 +269,17 @@ function WaitingDepositAddress() {
249
269
  else {
250
270
  amount = order?.destFinalCallTokenAmount.usd ?? null;
251
271
  }
272
+ // For native source tokens the "Send Exactly" amount is the backend-computed
273
+ // source.amount (native units), which is only known after the payment is
274
+ // created/checked out below. usdValue is the USD/destination value — NOT the
275
+ // native amount — so seeding it here would flash a wrong figure (e.g. "1.00
276
+ // SOL" for a $1 payout). Leave it unset so the row shows its skeleton until
277
+ // payWithDepositAddress resolves the real source.amount. Stablecoin sources
278
+ // (USDC/USDT) coincide with usdValue, so we still seed those for a snappy render.
252
279
  setDepAddr({
253
280
  displayToken: displayToken ?? null,
254
281
  logoURI,
255
- amount: amount?.toString() ?? undefined,
282
+ amount: undefined,
256
283
  });
257
284
  try {
258
285
  let feeData = null;
@@ -268,12 +295,49 @@ function WaitingDepositAddress() {
268
295
  try {
269
296
  // @TODO: Handle fee calculation for other currencies
270
297
  const destToken = currentOrder?.destFinalCallTokenAmount?.token;
271
- const feeResponse = await getFee({
272
- type: payParams?.feeType ?? FeeType.ExactIn,
298
+ const feeQuoteType = payParams?.feeType ?? FeeType.ExactIn;
299
+ let feeAmount = amount.toString();
300
+ // Native source: convert USD → source-token units via the live price
301
+ // feed, then call getFee with the actual feeType (no ExactOut
302
+ // override). Without the conversion the BE would interpret the USD
303
+ // value as a native amount (e.g. "1 SOL" for a $1 payout).
304
+ if (isNativeSource) {
305
+ const { data: priceData } = await getTokenPrices({
306
+ symbols: [selectedDepositAddressOption.token.symbol],
307
+ });
308
+ const priceEntry = priceData?.data?.[0];
309
+ const usdPrice = Number(priceEntry?.prices?.[0]?.value);
310
+ if (!Number.isFinite(usdPrice) || usdPrice <= 0) {
311
+ setFeeError({
312
+ error: {
313
+ code: "PRICE_FETCH_FAILED",
314
+ message: `Unable to fetch price for ${selectedDepositAddressOption.token.symbol}`,
315
+ },
316
+ });
317
+ setFeeData(null);
318
+ setIsLoading(false);
319
+ setHasExecutedDepositCall(false);
320
+ return;
321
+ }
322
+ if (priceEntry?.stale) {
323
+ context.log(`[WAITING_DEPOSIT] token price for ${selectedDepositAddressOption.token.symbol} is stale, proceeding with caution`);
324
+ }
325
+ const decimals = selectedDepositAddressOption.token.decimals;
326
+ // BE expects a human-readable decimal string (e.g. "0.126919660"
327
+ // for 0.1269 SOL), not base units. PayWithToken does the same via
328
+ // tokenBaseAmountToDecimalString for the same reason.
329
+ feeAmount = (amount / usdPrice).toFixed(decimals);
330
+ }
331
+ const feeResponse = await getCachedFee({
332
+ type: feeQuoteType,
273
333
  appId: resolvedAppId,
274
334
  sourceChainId: selectedDepositAddressOption.token.chainId.toString(),
275
335
  sourceTokenSymbol: selectedDepositAddressOption.token.symbol,
276
- amount: amount.toString(),
336
+ amount: isNativeSource
337
+ ? feeQuoteType === FeeType.ExactIn
338
+ ? feeAmount
339
+ : String(amount)
340
+ : feeAmount,
277
341
  destChainId: (destToken?.chainId ?? selectedDepositAddressOption.token.chainId).toString(),
278
342
  destReceiverAddress: (currentOrder
279
343
  ? getCanonicalDestination(currentOrder).finalDestinationAddress
@@ -286,6 +350,17 @@ function WaitingDepositAddress() {
286
350
  feeData = feeResponse.data;
287
351
  setFeeData(feeResponse.data);
288
352
  setFeeError(null);
353
+ // Native source: surface the backend-computed source.amount (native
354
+ // units) as the "Send Exactly" amount right away, instead of waiting
355
+ // for the create/checkout below.
356
+ if (isNativeSource && feeResponse.data.source?.amount != null) {
357
+ setDepAddr((prev) => prev
358
+ ? {
359
+ ...prev,
360
+ amount: String(feeResponse.data.source.amount),
361
+ }
362
+ : prev);
363
+ }
289
364
  }
290
365
  else if (feeResponse.error) {
291
366
  const errorMessage = feeResponse.error.message;
@@ -319,21 +394,28 @@ function WaitingDepositAddress() {
319
394
  }
320
395
  const details = await payWithDepositAddress(selectedDepositAddressOption, store, feeData, context.log);
321
396
  if (details) {
322
- // Only Stellar needs a memo (destination tag) to route the pay-in.
323
- const shouldShowMemo = selectedDepositAddressOption.id === DepositAddressPaymentOptions.STELLAR;
397
+ const isStellar = [stellar.chainId, rozoStellar.chainId].includes(selectedDepositAddressOption.token.chainId);
398
+ // Only Stellar/rozoStellar needs a memo (destination tag) to route the pay-in.
399
+ const memo = isStellar ? details.memo || undefined : undefined;
324
400
  setDepAddr({
325
401
  address: details.address,
326
402
  amount: details.amount,
327
403
  coins: details.suffix,
328
404
  expirationS: details.expirationS,
329
- uri: details.uri,
405
+ uri: isStellar && details.amount
406
+ ? generateStellarDeepLink({
407
+ amountUnits: details.amount,
408
+ recipientAddress: details.address,
409
+ token: selectedDepositAddressOption.token,
410
+ memo,
411
+ })
412
+ : details.uri,
330
413
  displayToken: displayToken ?? null,
331
414
  logoURI,
332
415
  externalId: details.externalId,
333
- memo: shouldShowMemo ? details.memo || "" : undefined,
416
+ memo,
334
417
  });
335
418
  setRozoPaymentId(details.externalId);
336
- setDepoChain(selectedDepositAddressOption.id);
337
419
  }
338
420
  else if (details === null) {
339
421
  // Duplicate call was prevented - reset loading states
@@ -443,14 +525,9 @@ function DepositAddressInfo({ depAddr, feeData, refresh, triggerResize, }) {
443
525
  // eslint-disable-next-line react-hooks/exhaustive-deps
444
526
  useEffect(triggerResize, [isExpired]);
445
527
  const logoOffset = isMobile ? 4 : 0;
446
- const logoElement = depAddr.displayToken ? (jsx(TokenChainLogo, { token: depAddr.displayToken, size: 64, offset: logoOffset })) : (jsx("img", { src: depAddr.logoURI, width: "64px", height: "64px" }));
528
+ const logoElement = depAddr.displayToken ? (jsx(TokenChainLogo, { token: depAddr.displayToken, size: 64, offset: logoOffset, nativeAsChainIcon: true })) : (jsx("img", { src: depAddr.logoURI, width: "64px", height: "64px" }));
447
529
  return (jsxs(ModalContent, { children: [isExpired ? (jsx(LogoRow, { children: jsx(Button, { onClick: refresh, style: { width: 128 }, children: "Refresh" }) })) : (jsx(QRWrap, { children: jsx(CustomQRCode, { value: depAddr?.uri, contentPadding: 24, size: 200, image: logoElement }) })), jsx(CopyableInfo, { depAddr: depAddr, feeData: feeData, remainingS: remainingS, totalS: totalS })] }));
448
530
  }
449
- styled.div `
450
- position: relative;
451
- width: 64px;
452
- height: 64px;
453
- `;
454
531
  const LogoRow = styled.div `
455
532
  padding: 32px 0;
456
533
  height: 128px;
@@ -469,9 +546,9 @@ function CopyableInfo({ depAddr, feeData, remainingS, totalS, }) {
469
546
  const sourceTokenSymbol = depAddr?.displayToken?.symbol;
470
547
  return (jsxs(CopyableInfoWrapper, { children: [underpayment && jsx(UnderpaymentInfo, { underpayment: underpayment }), feeData !== null && (jsx(FeeDisplayRow, { title: "Fee", value: parseFloat(feeData.source.fee) === 0
471
548
  ? "Free"
472
- : `${trimTokenAmount(feeData.source.fee)} ${feeData.source.tokenSymbol} (${feeData.feeInfo.feePercentage})` })), jsx(CopyRowOrThrobber, { title: "Send Exactly", value: depAddr?.amount, valueText: depAddr?.amount
549
+ : `${trimTokenAmount(feeData.source.fee)} ${feeData.source.tokenSymbol} (${feeData.feeInfo.feePercentage})` })), jsx(CopyRowOrThrobber, { dataTestId: "rozopay-send-exactly", title: "Send Exactly", value: depAddr?.amount, valueText: depAddr?.amount
473
550
  ? `${trimTokenAmount(depAddr.amount)} ${sourceTokenSymbol ?? ""}`.trim()
474
- : undefined, smallText: depAddr?.coins, disabled: isExpired }), jsx(CopyRowOrThrobber, { title: "Receiving Address", value: depAddr?.address, valueText: depAddr?.address && getAddressContraction(depAddr.address), disabled: isExpired }), depAddr?.memo && (jsx(CopyRowOrThrobber, { title: "Memo", value: depAddr.memo, valueText: depAddr.memo, disabled: isExpired })), jsx(CountdownWrap, { children: jsx(CountdownTimer, { remainingS: remainingS, totalS: totalS }) })] }));
551
+ : undefined, smallText: depAddr?.coins, disabled: isExpired }), jsx(CopyRowOrThrobber, { dataTestId: "rozopay-receiving-address", title: "Receiving Address", value: depAddr?.address, valueText: depAddr?.address && getAddressContraction(depAddr.address), disabled: isExpired }), depAddr?.memo && (jsx(CopyRowOrThrobber, { dataTestId: "rozopay-memo", title: "Memo", value: depAddr.memo, valueText: depAddr.memo, disabled: isExpired })), jsx(CountdownWrap, { children: jsx(CountdownTimer, { remainingS: remainingS, totalS: totalS }) })] }));
475
552
  }
476
553
  function UnderpaymentInfo({ underpayment }) {
477
554
  // Default message
@@ -622,7 +699,7 @@ const Skeleton = styled.div `
622
699
  background-color: rgba(0, 0, 0, 0.1);
623
700
  animation: ${pulse} 1.5s ease-in-out infinite;
624
701
  `;
625
- function CopyRowOrThrobber({ title, value, valueText, smallText, disabled, }) {
702
+ function CopyRowOrThrobber({ dataTestId, title, value, valueText, smallText, disabled, }) {
626
703
  const [copied, setCopied] = useState(false);
627
704
  const handleCopy = () => {
628
705
  if (disabled)
@@ -637,10 +714,10 @@ function CopyRowOrThrobber({ title, value, valueText, smallText, disabled, }) {
637
714
  setTimeout(() => setCopied(false), 1000);
638
715
  };
639
716
  if (!value) {
640
- return (jsxs(CopyRow, { children: [jsx(LabelRow, { children: jsx(LabelText, { children: title }) }), jsx(MainRow, { children: jsx(Skeleton, {}) })] }));
717
+ return (jsxs(CopyRow, { "data-testid": dataTestId, children: [jsx(LabelRow, { children: jsx(LabelText, { children: title }) }), jsx(MainRow, { children: jsx(Skeleton, {}) })] }));
641
718
  }
642
719
  const displayValue = valueText || value;
643
- return (jsxs(CopyRow, { as: "button", onClick: handleCopy, disabled: disabled, children: [jsxs("div", { children: [jsx(LabelRow, { children: jsx(LabelText, { children: title }) }), jsx(MainRow, { children: jsxs(ValueContainer, { children: [jsx(ValueText, { children: displayValue }), smallText && jsx(SmallText, { children: smallText })] }) })] }), jsx(CopyIconWrap, { children: jsx(CopyToClipboardIcon, { copied: copied, dark: true }) })] }));
720
+ return (jsxs(CopyRow, { as: "button", onClick: handleCopy, disabled: disabled, "data-testid": dataTestId, "data-value": value, children: [jsxs("div", { children: [jsx(LabelRow, { children: jsx(LabelText, { children: title }) }), jsx(MainRow, { children: jsxs(ValueContainer, { children: [jsx(ValueText, { children: displayValue }), smallText && jsx(SmallText, { children: smallText })] }) })] }), jsx(CopyIconWrap, { children: jsx(CopyToClipboardIcon, { copied: copied, dark: true }) })] }));
644
721
  }
645
722
  const CopyIconWrap = styled.div `
646
723
  --color: var(--ck-copytoclipboard-stroke);