@rozoai/intent-pay 0.1.48 → 0.1.49

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 (28) hide show
  1. package/build/components/RozoPayModal/guards.d.ts +20 -0
  2. package/build/components/RozoPayModal/guards.test.d.ts +1 -0
  3. package/build/hooks/usePaymentState.d.ts +7 -0
  4. package/build/lib/analytics/events.d.ts +2 -0
  5. package/build/package.json.js +1 -1
  6. package/build/payment/createPaymentPayload.d.ts +2 -9
  7. package/build/src/components/Pages/PayWithToken/index.js +223 -177
  8. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  9. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +42 -4
  10. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  11. package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js +87 -14
  12. package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js.map +1 -1
  13. package/build/src/components/RozoPayModal/guards.js +33 -0
  14. package/build/src/components/RozoPayModal/guards.js.map +1 -0
  15. package/build/src/components/RozoPayModal/index.js +47 -21
  16. package/build/src/components/RozoPayModal/index.js.map +1 -1
  17. package/build/src/hooks/usePaymentState.js +48 -8
  18. package/build/src/hooks/usePaymentState.js.map +1 -1
  19. package/build/src/lib/analytics/events.js +1 -0
  20. package/build/src/lib/analytics/events.js.map +1 -1
  21. package/build/src/payment/createPaymentPayload.js +6 -2
  22. package/build/src/payment/createPaymentPayload.js.map +1 -1
  23. package/build/src/payment/paymentEffects.js +4 -3
  24. package/build/src/payment/paymentEffects.js.map +1 -1
  25. package/build/src/utils/paymentRequestScope.js +27 -1
  26. package/build/src/utils/paymentRequestScope.js.map +1 -1
  27. package/build/utils/paymentRequestScope.d.ts +8 -0
  28. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ export type WalletPaymentState = "idle" | "waiting" | "processing";
2
+ type PaymentFsmState = "idle" | "preview" | "unhydrated" | "payment_unpaid" | "payment_started" | "payment_completed" | "payment_bounced" | "payout_completed" | "error";
3
+ export declare const WALLET_REQUEST_MESSAGE = "Wallet still needs your action. Reject or close it in your wallet first.";
4
+ export declare function isWalletWaiting(walletPaymentState: WalletPaymentState): walletPaymentState is "waiting";
5
+ export declare function isWalletProcessing(walletPaymentState: WalletPaymentState): walletPaymentState is "processing";
6
+ export declare function isCloseable({ route, walletPaymentState, paymentFsmState, isDepositAddressReady, enforceSupportedChains, isEthConnected, chainIsSupported, }: {
7
+ route: string;
8
+ walletPaymentState: WalletPaymentState;
9
+ paymentFsmState: PaymentFsmState;
10
+ isDepositAddressReady: boolean;
11
+ enforceSupportedChains: boolean | undefined;
12
+ isEthConnected: boolean;
13
+ chainIsSupported: boolean | null;
14
+ }): boolean;
15
+ export declare function showsBackButton({ route, walletPaymentState, paymentFsmState, }: {
16
+ route: string;
17
+ walletPaymentState: WalletPaymentState;
18
+ paymentFsmState: PaymentFsmState;
19
+ }): boolean;
20
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -30,6 +30,8 @@ export interface PaymentState {
30
30
  paymentWaitingMessage: string | undefined;
31
31
  depositAddressState: "idle" | "creating" | "ready";
32
32
  setDepositAddressState: (state: "idle" | "creating" | "ready") => void;
33
+ walletPaymentState: "idle" | "waiting" | "processing";
34
+ setWalletPaymentState: (state: "idle" | "waiting" | "processing") => void;
33
35
  externalPaymentOptions: ReturnType<typeof useExternalPaymentOptions>;
34
36
  selectedWallet: WalletConfigProps | undefined;
35
37
  selectedWalletDeepLink: string | undefined;
@@ -101,6 +103,11 @@ export interface PaymentState {
101
103
  rozoPaymentId: string | undefined;
102
104
  setSenderAddress: (address: string | undefined) => void;
103
105
  senderAddress: string | undefined;
106
+ pendingPaymentAttemptId: string | undefined;
107
+ tryClaimPaymentAttempt: (orderId: string) => boolean;
108
+ replacePaymentAttempt: (orderId: string, nextOrderId: string) => boolean;
109
+ releasePaymentAttempt: (orderId: string) => void;
110
+ clearPaymentAttempt: () => void;
104
111
  ethWalletAddress: string | undefined;
105
112
  solanaPubKey: string | undefined;
106
113
  stellarPubKey: string | undefined;
@@ -13,6 +13,7 @@ export declare const PAYMENT_EVENTS: {
13
13
  readonly PAYMENT_QUOTE_RECEIVED: "payment_quote_received";
14
14
  readonly PAYMENT_QUOTE_FAILED: "payment_quote_failed";
15
15
  readonly PAYMENT_CONFIRMED: "payment_confirmed";
16
+ readonly PAYMENT_WALLET_CONFIRMATION_PENDING: "payment_wallet_confirmation_pending";
16
17
  readonly PAYMENT_SUBMITTED: "payment_submitted";
17
18
  readonly PAYMENT_COMPLETED: "payment_completed";
18
19
  readonly PAYMENT_FAILED: "payment_failed";
@@ -36,6 +37,7 @@ export declare const ROZO_EVENTS: {
36
37
  readonly PAYMENT_QUOTE_RECEIVED: "payment_quote_received";
37
38
  readonly PAYMENT_QUOTE_FAILED: "payment_quote_failed";
38
39
  readonly PAYMENT_CONFIRMED: "payment_confirmed";
40
+ readonly PAYMENT_WALLET_CONFIRMATION_PENDING: "payment_wallet_confirmation_pending";
39
41
  readonly PAYMENT_SUBMITTED: "payment_submitted";
40
42
  readonly PAYMENT_COMPLETED: "payment_completed";
41
43
  readonly PAYMENT_FAILED: "payment_failed";
@@ -1,4 +1,4 @@
1
- var version = "0.1.48";
1
+ var version = "0.1.49";
2
2
  var packageJson = {
3
3
  version: version};
4
4
 
@@ -1,4 +1,4 @@
1
- import { ApiVersion, CreateNewPaymentParams, DepositAddressPaymentOptionMetadata, FeeResponseData, FeeType, RozoPayHydratedOrderWithOrg, RozoPayOrderWithOrg, Token, TokenSymbol, WalletPaymentOption } from "@rozoai/intent-common";
1
+ import { ApiVersion, CreateNewPaymentParams, DepositAddressPaymentOptionMetadata, FeeResponseData, FeeType, PaymentResponse, RozoPayHydratedOrderWithOrg, RozoPayOrderWithOrg, Token, TokenSymbol, WalletPaymentOption } from "@rozoai/intent-common";
2
2
  import { PayParams } from "./paymentFsm";
3
3
  type OrderLike = RozoPayHydratedOrderWithOrg | RozoPayOrderWithOrg;
4
4
  export type CreatePaymentContext = {
@@ -86,14 +86,7 @@ export type WalletSourceQuoteOrder = {
86
86
  paymentBreakdown?: FeeResponseData;
87
87
  };
88
88
  /** Preserve payment/checkout's authoritative source quote on SDK-owned state. */
89
- export declare function withWalletSourceQuote<T extends RozoPayHydratedOrderWithOrg>(order: T, response: {
90
- source?: {
91
- amount?: string;
92
- chainId?: number | string;
93
- tokenAddress?: string;
94
- };
95
- destination?: unknown;
96
- }): T & WalletSourceQuoteOrder;
89
+ export declare function withWalletSourceQuote<T extends RozoPayHydratedOrderWithOrg>(order: T, response: PaymentResponse): T & WalletSourceQuoteOrder;
97
90
  /** Amount authorized by payment/checkout, validated against selected source token. */
98
91
  export declare function resolveWalletPaymentAmount(order: WalletSourceQuoteOrder, option: Pick<WalletPaymentOption, "required">): bigint;
99
92
  export {};
@@ -12,22 +12,23 @@ import { ROZO_EVENTS } from '../../../lib/analytics/events.js';
12
12
  import { useAnalytics } from '../../../provider/AnalyticsProvider.js';
13
13
  import { buildFeeQuoteParams, getCachedFee } from '../../../utils/feeCache.js';
14
14
  import Button from '../../Common/Button/index.js';
15
- import { PageContent, ModalContent, ModalH1, Link } from '../../Common/Modal/styles.js';
15
+ import { PageContent, ModalContent, ModalBody, ModalH1, Link } from '../../Common/Modal/styles.js';
16
16
  import PaymentBreakdown from '../../Common/PaymentBreakdown/index.js';
17
17
  import TokenLogoSpinner from '../../Spinners/TokenLogoSpinner/index.js';
18
18
 
19
19
  var PayState;
20
20
  (function (PayState) {
21
- PayState["WaitingForPayment"] = "Waiting for Payment";
21
+ PayState["WaitingForConfirmation"] = "Waiting for Confirmation";
22
22
  PayState["PreparingTransaction"] = "Preparing Transaction";
23
23
  PayState["RequestCancelled"] = "Payment Cancelled";
24
24
  PayState["RequestSuccessful"] = "Payment Successful";
25
+ PayState["WaitingForWallet"] = "Wallet Confirmation Pending";
25
26
  PayState["RequestFailed"] = "Payment Failed";
26
27
  })(PayState || (PayState = {}));
27
28
  const PayWithToken = () => {
28
29
  const walletChainId = useChainId();
29
30
  const { triggerResize, paymentState, setRoute, log } = usePayContext();
30
- const { payWithToken, setSenderAddress, selectedTokenOption, walletPaymentOptions, } = paymentState;
31
+ const { payWithToken, setSenderAddress, selectedTokenOption, walletPaymentOptions, pendingPaymentAttemptId, tryClaimPaymentAttempt, releasePaymentAttempt, setWalletPaymentState, } = paymentState;
31
32
  const { switchChainAsync } = useSwitchChain();
32
33
  const { address } = useAccount();
33
34
  const { store, setPaymentUnpaid, rozoPaymentId, order, paymentState: rozoPaymentState, } = useRozoPay();
@@ -54,8 +55,10 @@ const PayWithToken = () => {
54
55
  // });
55
56
  };
56
57
  const switchChainErrorRef = useRef(null);
57
- const trySwitchingChain = async (option, forceSwitch = false) => {
58
- if (walletChainId !== option.required.token.chainId || forceSwitch) {
58
+ const transferInFlightRef = useRef(false);
59
+ const autoTransferOrderRef = useRef(null);
60
+ const trySwitchingChain = async (option) => {
61
+ if (walletChainId !== option.required.token.chainId) {
59
62
  const resultChain = await (async () => {
60
63
  try {
61
64
  return await switchChainAsync({
@@ -81,202 +84,237 @@ const PayWithToken = () => {
81
84
  return true;
82
85
  };
83
86
  const handleTransfer = useCallback(async (option) => {
84
- // Read the freshest order straight from the store instead of the React
85
- // closure snapshot. For payId mode this is the getPayment-derived order
86
- // loaded by runSetPayIdEffects, so getFee below runs against the latest
87
- // payment response (correct appId, amount, destination, etc.).
88
- const currentState = store.getState();
89
- const currentOrder = currentState.type !== "idle" ? currentState.order : undefined;
90
- if (!currentOrder) {
91
- throw new Error("Order not initialized");
92
- }
93
- capture(ROZO_EVENTS.PAYMENT_CONFIRMED, {
94
- payment_id: rozoPaymentId ?? order?.externalId,
95
- source_chain: option.required.token.chainId,
96
- token_symbol: option.required.token.symbol,
97
- amount: paymentState.payParams?.toUnits != null
98
- ? String(paymentState.payParams.toUnits)
99
- : order?.destFinalCallTokenAmount?.usd != null
100
- ? String(order.destFinalCallTokenAmount.usd)
101
- : undefined,
102
- });
103
- // Switch chain if necessary
104
- setPayState(PayState.PreparingTransaction);
105
- const switchChain = await trySwitchingChain(option);
106
- if (!switchChain) {
107
- console.error("Switching chain failed");
108
- setFeeLoading(false);
109
- setRoute(ROUTES.ERROR, {
110
- error: switchChainErrorRef.current ?? "switch_chain_failed",
111
- });
87
+ if (transferInFlightRef.current) {
88
+ log("[PayWithToken] transfer already in flight");
112
89
  return;
113
90
  }
91
+ transferInFlightRef.current = true;
92
+ let attemptId;
114
93
  try {
115
- const currentRozoPaymentId = rozoPaymentId ?? currentOrder.externalId ?? undefined;
116
- // Only set unpaid if state is payment_started (for retry scenarios and cross-chain switches)
117
- if (currentRozoPaymentId && rozoPaymentState === "payment_started") {
118
- try {
119
- await setPaymentUnpaid(currentRozoPaymentId);
120
- }
121
- catch (e) {
122
- console.error("Failed to set payment unpaid:", e);
123
- // If already unpaid, continue anyway
124
- }
94
+ // Read the freshest order straight from the store instead of the React
95
+ // closure snapshot. For payId mode this is the getPayment-derived order
96
+ // loaded by runSetPayIdEffects, so getFee below runs against the latest
97
+ // payment response (correct appId, amount, destination, etc.).
98
+ const currentState = store.getState();
99
+ const currentOrder = currentState.type !== "idle" ? currentState.order : undefined;
100
+ if (!currentOrder) {
101
+ throw new Error("Order not initialized");
125
102
  }
126
- // @NOTE: Fee calculation
127
- const request = beginRequestScope(PAYMENT_REQUEST_SCOPE);
128
- setFeeLoading(true);
129
- const destToken = currentOrder.destFinalCallTokenAmount?.token;
130
- const destAmountAtomic = currentOrder.destFinalCallTokenAmount?.amount;
131
- const toUnits = destAmountAtomic && destToken
132
- ? formatUnits(BigInt(destAmountAtomic), destToken.decimals)
133
- : option.required.usd.toString();
134
- const feeParams = buildFeeQuoteParams({
135
- order: currentOrder,
136
- payParams: paymentState.payParams,
137
- destChainId: destToken.chainId,
138
- destTokenAddress: destToken.token,
139
- destAddress: getCanonicalDestination(currentOrder).finalDestinationAddress ??
140
- "",
141
- sourceChainId: option.required.token.chainId,
142
- sourceTokenAddress: option.required.token.token,
143
- toUnits,
144
- });
145
- const feeData = await getCachedFee(feeParams, { signal: request.signal });
146
- setFeeLoading(false);
147
- if (request.signal.aborted) {
148
- return;
149
- }
150
- if (feeData.error) {
151
- if (feeData.error.name === "AbortError") {
152
- return;
153
- }
154
- capture(ROZO_EVENTS.PAYMENT_FAILED, {
155
- payment_id: rozoPaymentId ?? order?.externalId,
156
- error_message: feeData.error.message,
103
+ attemptId = currentOrder.externalId ?? String(currentOrder.id);
104
+ if (!tryClaimPaymentAttempt(attemptId)) {
105
+ log("[PayWithToken] wallet request already pending");
106
+ capture(ROZO_EVENTS.PAYMENT_WALLET_CONFIRMATION_PENDING, {
107
+ payment_id: currentOrder.externalId,
157
108
  source_chain: option.required.token.chainId,
158
- source_token: option.required.token.symbol,
159
- dest_chain: destToken.chainId,
160
- dest_token: destToken.symbol,
109
+ token_symbol: option.required.token.symbol,
161
110
  });
162
- console.error("Fee calculation failed", feeData.error);
163
- setRoute(ROUTES.ERROR, { error: feeData.error.message });
111
+ setPayState(PayState.WaitingForWallet);
164
112
  return;
165
113
  }
166
- setFeeData(feeData.data);
167
- setPayState(PayState.WaitingForPayment);
168
- const result = await payWithToken({
169
- ...option,
170
- fees: {
171
- ...option.fees,
172
- usd: feeData.data?.source.fee != null
173
- ? Number(feeData.data.source.fee)
174
- : option.fees.usd,
175
- },
176
- }, store);
177
- const completedState = store.getState();
178
- const canonicalBreakdown = completedState.type !== "idle"
179
- ? completedState.order.paymentBreakdown
180
- : undefined;
181
- if (canonicalBreakdown)
182
- setFeeData(canonicalBreakdown);
183
- setTxURL(getChainExplorerTxUrl(option.required.token.chainId, result.txHash));
184
- if (result.success) {
185
- capture(ROZO_EVENTS.PAYMENT_SUBMITTED, {
186
- payment_id: rozoPaymentId ?? order?.externalId,
187
- tx_hash: result.txHash,
188
- source_chain: option.required.token.chainId,
189
- token_symbol: option.required.token.symbol,
114
+ capture(ROZO_EVENTS.PAYMENT_CONFIRMED, {
115
+ payment_id: rozoPaymentId ?? order?.externalId,
116
+ source_chain: option.required.token.chainId,
117
+ token_symbol: option.required.token.symbol,
118
+ amount: paymentState.payParams?.toUnits != null
119
+ ? String(paymentState.payParams.toUnits)
120
+ : order?.destFinalCallTokenAmount?.usd != null
121
+ ? String(order.destFinalCallTokenAmount.usd)
122
+ : undefined,
123
+ });
124
+ // Switch chain if necessary
125
+ setPayState(PayState.PreparingTransaction);
126
+ const switchChain = await trySwitchingChain(option);
127
+ if (!switchChain) {
128
+ console.error("Switching chain failed");
129
+ setFeeLoading(false);
130
+ setRoute(ROUTES.ERROR, {
131
+ error: switchChainErrorRef.current ?? "switch_chain_failed",
190
132
  });
191
- try {
192
- sessionStorage.setItem(`rozo_submitted_at:${rozoPaymentId ?? order?.externalId}`, String(Date.now()));
193
- }
194
- catch { }
195
- setSenderAddress(address);
196
- setPayState(PayState.RequestSuccessful);
197
- setTimeout(() => {
198
- setRoute(ROUTES.CONFIRMATION, { event: "wait-pay-with-token" });
199
- }, 200);
200
- // Refresh wallet payment options after 1 second to prevent stale balances
201
- setTimeout(() => {
202
- walletPaymentOptions.refreshOptions();
203
- }, 2000);
133
+ return;
204
134
  }
205
- else {
206
- capture(ROZO_EVENTS.PAYMENT_FAILED, {
207
- payment_id: rozoPaymentId ?? order?.externalId,
208
- error_message: "payment_unsuccessful",
209
- source_chain: option.required.token.chainId,
135
+ try {
136
+ const currentRozoPaymentId = rozoPaymentId ?? currentOrder.externalId ?? undefined;
137
+ // Only set unpaid if state is payment_started (for retry scenarios and cross-chain switches)
138
+ if (currentRozoPaymentId && rozoPaymentState === "payment_started") {
139
+ try {
140
+ await setPaymentUnpaid(currentRozoPaymentId);
141
+ }
142
+ catch (e) {
143
+ console.error("Failed to set payment unpaid:", e);
144
+ // If already unpaid, continue anyway
145
+ }
146
+ }
147
+ // @NOTE: Fee calculation
148
+ const request = beginRequestScope(PAYMENT_REQUEST_SCOPE);
149
+ setFeeLoading(true);
150
+ const destToken = currentOrder.destFinalCallTokenAmount?.token;
151
+ const destAmountAtomic = currentOrder.destFinalCallTokenAmount?.amount;
152
+ const toUnits = destAmountAtomic && destToken
153
+ ? formatUnits(BigInt(destAmountAtomic), destToken.decimals)
154
+ : option.required.usd.toString();
155
+ const feeParams = buildFeeQuoteParams({
156
+ order: currentOrder,
157
+ payParams: paymentState.payParams,
158
+ destChainId: destToken.chainId,
159
+ destTokenAddress: destToken.token,
160
+ destAddress: getCanonicalDestination(currentOrder).finalDestinationAddress ??
161
+ "",
162
+ sourceChainId: option.required.token.chainId,
163
+ sourceTokenAddress: option.required.token.token,
164
+ toUnits,
210
165
  });
211
- setPayState(PayState.RequestFailed);
212
- }
213
- }
214
- catch (e) {
215
- // Abort = user navigated away (Back / reset). Not a payment failure.
216
- if (isAbortError(e))
217
- return;
218
- if (e?.name === "ConnectorChainMismatchError") {
219
- // Workaround for Rainbow wallet bug -- user is able to switch chain without
220
- // the wallet updating the chain ID for wagmi.
221
- log("Chain mismatch detected, attempting to switch and retry");
222
- const switchSuccessful = await trySwitchingChain(option, true);
223
- if (switchSuccessful) {
166
+ const feeData = await getCachedFee(feeParams, { signal: request.signal });
167
+ setFeeLoading(false);
168
+ if (request.signal.aborted) {
169
+ return;
170
+ }
171
+ if (feeData.error) {
172
+ if (feeData.error.name === "AbortError") {
173
+ return;
174
+ }
175
+ capture(ROZO_EVENTS.PAYMENT_FAILED, {
176
+ payment_id: rozoPaymentId ?? order?.externalId,
177
+ error_message: feeData.error.message,
178
+ source_chain: option.required.token.chainId,
179
+ source_token: option.required.token.symbol,
180
+ dest_chain: destToken.chainId,
181
+ dest_token: destToken.symbol,
182
+ });
183
+ console.error("Fee calculation failed", feeData.error);
184
+ setRoute(ROUTES.ERROR, { error: feeData.error.message });
185
+ return;
186
+ }
187
+ setFeeData(feeData.data);
188
+ setPayState(PayState.WaitingForConfirmation);
189
+ const result = await payWithToken({
190
+ ...option,
191
+ fees: {
192
+ ...option.fees,
193
+ usd: feeData.data?.source.fee != null
194
+ ? Number(feeData.data.source.fee)
195
+ : option.fees.usd,
196
+ },
197
+ }, store);
198
+ const completedState = store.getState();
199
+ const canonicalBreakdown = completedState.type !== "idle"
200
+ ? completedState.order.paymentBreakdown
201
+ : undefined;
202
+ if (canonicalBreakdown)
203
+ setFeeData(canonicalBreakdown);
204
+ setTxURL(getChainExplorerTxUrl(option.required.token.chainId, result.txHash));
205
+ if (result.success) {
206
+ capture(ROZO_EVENTS.PAYMENT_SUBMITTED, {
207
+ payment_id: rozoPaymentId ?? order?.externalId,
208
+ tx_hash: result.txHash,
209
+ source_chain: option.required.token.chainId,
210
+ token_symbol: option.required.token.symbol,
211
+ });
224
212
  try {
225
- const retryResult = await payWithToken(option, store);
226
- setTxURL(getChainExplorerTxUrl(option.required.token.chainId, retryResult.txHash));
227
- if (retryResult.success) {
228
- capture(ROZO_EVENTS.PAYMENT_SUBMITTED, {
229
- payment_id: rozoPaymentId ?? order?.externalId,
230
- tx_hash: retryResult.txHash,
231
- source_chain: option.required.token.chainId,
232
- token_symbol: option.required.token.symbol,
233
- });
234
- try {
235
- sessionStorage.setItem(`rozo_submitted_at:${rozoPaymentId ?? order?.externalId}`, String(Date.now()));
213
+ sessionStorage.setItem(`rozo_submitted_at:${rozoPaymentId ?? order?.externalId}`, String(Date.now()));
214
+ }
215
+ catch { }
216
+ setSenderAddress(address);
217
+ setPayState(PayState.RequestSuccessful);
218
+ setTimeout(() => {
219
+ setRoute(ROUTES.CONFIRMATION, { event: "wait-pay-with-token" });
220
+ }, 200);
221
+ // Refresh wallet payment options after 1 second to prevent stale balances
222
+ setTimeout(() => {
223
+ walletPaymentOptions.refreshOptions();
224
+ }, 2000);
225
+ }
226
+ else {
227
+ capture(ROZO_EVENTS.PAYMENT_FAILED, {
228
+ payment_id: rozoPaymentId ?? order?.externalId,
229
+ error_message: "payment_unsuccessful",
230
+ source_chain: option.required.token.chainId,
231
+ });
232
+ setPayState(PayState.RequestFailed);
233
+ }
234
+ }
235
+ catch (e) {
236
+ // Abort = user navigated away (Back / reset). Not a payment failure.
237
+ if (isAbortError(e))
238
+ return;
239
+ if (e?.name === "ConnectorChainMismatchError") {
240
+ // Workaround for Rainbow wallet bug -- user is able to switch chain without
241
+ // the wallet updating the chain ID for wagmi.
242
+ log("Chain mismatch detected, attempting to switch and retry");
243
+ const switchSuccessful = await trySwitchingChain(option);
244
+ if (switchSuccessful) {
245
+ try {
246
+ const retryResult = await payWithToken(option, store);
247
+ setTxURL(getChainExplorerTxUrl(option.required.token.chainId, retryResult.txHash));
248
+ if (retryResult.success) {
249
+ capture(ROZO_EVENTS.PAYMENT_SUBMITTED, {
250
+ payment_id: rozoPaymentId ?? order?.externalId,
251
+ tx_hash: retryResult.txHash,
252
+ source_chain: option.required.token.chainId,
253
+ token_symbol: option.required.token.symbol,
254
+ });
255
+ try {
256
+ sessionStorage.setItem(`rozo_submitted_at:${rozoPaymentId ?? order?.externalId}`, String(Date.now()));
257
+ }
258
+ catch { }
259
+ setSenderAddress(address);
260
+ setPayState(PayState.RequestSuccessful);
261
+ setTimeout(() => {
262
+ setRoute(ROUTES.CONFIRMATION, {
263
+ event: "wait-pay-with-token",
264
+ });
265
+ }, 200);
266
+ // Refresh wallet payment options after 1 second to prevent stale balances
267
+ setTimeout(() => {
268
+ walletPaymentOptions.refreshOptions();
269
+ }, 2000);
236
270
  }
237
- catch { }
238
- setSenderAddress(address);
239
- setPayState(PayState.RequestSuccessful);
240
- setTimeout(() => {
241
- setRoute(ROUTES.CONFIRMATION, {
242
- event: "wait-pay-with-token",
271
+ else {
272
+ capture(ROZO_EVENTS.PAYMENT_FAILED, {
273
+ payment_id: rozoPaymentId ?? order?.externalId,
274
+ error_message: "payment_unsuccessful_after_chain_switch",
275
+ source_chain: option.required.token.chainId,
243
276
  });
244
- }, 200);
245
- // Refresh wallet payment options after 1 second to prevent stale balances
246
- setTimeout(() => {
247
- walletPaymentOptions.refreshOptions();
248
- }, 2000);
277
+ setPayState(PayState.RequestFailed);
278
+ }
279
+ return; // Payment handled after switching chain
249
280
  }
250
- else {
251
- capture(ROZO_EVENTS.PAYMENT_FAILED, {
252
- payment_id: rozoPaymentId ?? order?.externalId,
253
- error_message: "payment_unsuccessful_after_chain_switch",
254
- source_chain: option.required.token.chainId,
255
- });
256
- setPayState(PayState.RequestFailed);
281
+ catch (retryError) {
282
+ console.error("Failed to pay with token after switching chain", retryError);
283
+ throw retryError;
257
284
  }
258
- return; // Payment handled after switching chain
259
- }
260
- catch (retryError) {
261
- console.error("Failed to pay with token after switching chain", retryError);
262
- throw retryError;
263
285
  }
264
286
  }
287
+ capture(ROZO_EVENTS.PAYMENT_FAILED, {
288
+ payment_id: rozoPaymentId ?? order?.externalId,
289
+ error_message: e?.message ?? "unknown_error",
290
+ source_chain: option.required.token.chainId,
291
+ });
292
+ setPayState(PayState.RequestCancelled);
293
+ console.error("Failed to pay with token", e);
265
294
  }
266
- capture(ROZO_EVENTS.PAYMENT_FAILED, {
267
- payment_id: rozoPaymentId ?? order?.externalId,
268
- error_message: e?.message ?? "unknown_error",
269
- source_chain: option.required.token.chainId,
270
- });
271
- setPayState(PayState.RequestCancelled);
272
- console.error("Failed to pay with token", e);
295
+ }
296
+ finally {
297
+ if (attemptId)
298
+ releasePaymentAttempt(attemptId);
299
+ transferInFlightRef.current = false;
273
300
  }
274
301
  },
275
302
  // eslint-disable-next-line react-hooks/exhaustive-deps
276
303
  [walletPaymentOptions, rozoPaymentId, order, rozoPaymentState]);
304
+ useEffect(() => {
305
+ if (!pendingPaymentAttemptId && payState === PayState.WaitingForWallet) {
306
+ setPayState(PayState.RequestCancelled);
307
+ }
308
+ }, [pendingPaymentAttemptId, payState]);
277
309
  useEffect(() => {
278
310
  if (!selectedTokenOption)
279
311
  return;
312
+ const currentState = store.getState();
313
+ const currentOrder = currentState.type !== "idle" ? currentState.order : undefined;
314
+ const orderKey = currentOrder?.externalId ?? String(currentOrder?.id ?? "");
315
+ if (!orderKey || autoTransferOrderRef.current === orderKey)
316
+ return;
317
+ autoTransferOrderRef.current = orderKey;
280
318
  const transferTimeout = setTimeout(() => {
281
319
  handleTransfer(selectedTokenOption);
282
320
  }, 100);
@@ -287,12 +325,20 @@ const PayWithToken = () => {
287
325
  }, [selectedTokenOption]);
288
326
  useEffect(() => {
289
327
  triggerResize();
328
+ setWalletPaymentState(payState === PayState.WaitingForConfirmation ||
329
+ payState === PayState.WaitingForWallet
330
+ ? "waiting"
331
+ : "idle");
332
+ return () => setWalletPaymentState("idle");
290
333
  // eslint-disable-next-line react-hooks/exhaustive-deps
291
334
  }, [payState]);
292
335
  if (selectedTokenOption == null) {
293
336
  return jsx(PageContent, {});
294
337
  }
295
- return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token }), jsxs(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: [txURL ? (jsx(ModalH1, { children: jsx(Link, { href: txURL, target: "_blank", rel: "noopener noreferrer", children: payState }) })) : (jsx(ModalH1, { children: payState })), jsx(PaymentBreakdown, { paymentOption: {
338
+ if (payState === PayState.WaitingForWallet) {
339
+ return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token }), jsx(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: jsx(ModalBody, { children: "Wallet confirmation pending" }) })] }));
340
+ }
341
+ return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token }), jsxs(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: [txURL ? (jsx(ModalH1, { children: jsx(Link, { href: txURL, target: "_blank", rel: "noopener noreferrer", children: payState }) })) : (jsx(ModalH1, { children: payState })), (payState !== PayState.RequestCancelled || (feeData && !feeLoading)) && (jsx(PaymentBreakdown, { paymentOption: {
296
342
  ...selectedTokenOption,
297
343
  fees: {
298
344
  ...selectedTokenOption.fees,
@@ -300,7 +346,7 @@ const PayWithToken = () => {
300
346
  ? Number(feeData.source.fee)
301
347
  : selectedTokenOption.fees.usd,
302
348
  },
303
- }, feeData: feeData, feeLoading: feeLoading }), payState === PayState.RequestCancelled && (jsx(Button, { onClick: () => handleTransfer(selectedTokenOption), children: "Retry Payment" })), payState === PayState.RequestFailed && (jsx(Button, { onClick: handleContactClick, children: "Contact Support" }))] })] }));
349
+ }, feeData: feeData, feeLoading: feeLoading })), payState === PayState.RequestCancelled && (jsx(Button, { onClick: () => handleTransfer(selectedTokenOption), children: "Retry Payment" })), payState === PayState.RequestFailed && (jsx(Button, { onClick: handleContactClick, children: "Contact Support" }))] })] }));
304
350
  };
305
351
 
306
352
  export { PayWithToken as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/PayWithToken/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Pages/PayWithToken/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}