@rhinestone/deposit-modal 0.12.2 → 0.14.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.
Files changed (68) hide show
  1. package/README.md +73 -18
  2. package/bridge-transcript.json +653 -0
  3. package/dist/ClaimModal-IKTJU43Y.cjs +13 -0
  4. package/dist/ClaimModal-SEKNWRMA.mjs +13 -0
  5. package/dist/{DepositModalReown-VG66OTIU.cjs → DepositModalReown-46LPVFB6.cjs} +58 -35
  6. package/dist/{DepositModalReown-TEC3MEZ4.mjs → DepositModalReown-Q2JMLT47.mjs} +45 -22
  7. package/dist/{QRCode-WUC652SH.mjs → QRCode-5RGIZZHL.mjs} +1 -1
  8. package/dist/{QRCode-5DXFNKI2.cjs → QRCode-JKXG4RHN.cjs} +2 -2
  9. package/dist/WithdrawModal-5ICGD4HJ.mjs +12 -0
  10. package/dist/WithdrawModal-VP6PMIRO.cjs +12 -0
  11. package/dist/{chunk-O7BCVQ6L.cjs → chunk-4KCSH4T3.cjs} +157 -199
  12. package/dist/chunk-6KG642KH.cjs +31 -0
  13. package/dist/{chunk-PWLEBV5V.cjs → chunk-7ICSHJFE.cjs} +296 -220
  14. package/dist/{chunk-J46WDSRD.mjs → chunk-7SR7ENVJ.mjs} +165 -89
  15. package/dist/{chunk-2TPSF77V.mjs → chunk-CFKC77SV.mjs} +455 -261
  16. package/dist/{chunk-75DVGSAX.cjs → chunk-DW2EQA2U.cjs} +6 -3
  17. package/dist/{chunk-FXXUIK4E.mjs → chunk-IN77XSWO.mjs} +899 -153
  18. package/dist/chunk-K4H6TGBE.mjs +31 -0
  19. package/dist/{chunk-SDSKIJC7.mjs → chunk-KTUVSKR4.mjs} +2410 -1177
  20. package/dist/{chunk-HL5NUKZW.cjs → chunk-LZFRL2AL.cjs} +3 -3
  21. package/dist/{chunk-UQIJU6HV.cjs → chunk-MTFJSE52.cjs} +499 -191
  22. package/dist/{chunk-FLVLYO64.mjs → chunk-PKML3XVS.mjs} +430 -122
  23. package/dist/{chunk-4ZXQPFNU.mjs → chunk-RN5VKWI6.mjs} +4 -1
  24. package/dist/{chunk-BRYNGLDM.cjs → chunk-V2OBGLJD.cjs} +961 -215
  25. package/dist/{chunk-3STTWRAN.mjs → chunk-VUATPOWJ.mjs} +147 -189
  26. package/dist/{chunk-JE4R5VA3.mjs → chunk-WUJIKCFU.mjs} +1 -1
  27. package/dist/chunk-X2IPAPXU.cjs +163 -0
  28. package/dist/{chunk-OIN4CXCP.cjs → chunk-YCQZJQO6.cjs} +2343 -1110
  29. package/dist/{chunk-TM7VGHAG.cjs → chunk-YWMWI7PZ.cjs} +462 -268
  30. package/dist/chunk-ZEO6ADM3.mjs +163 -0
  31. package/dist/claim.cjs +7 -6
  32. package/dist/claim.d.cts +11 -3
  33. package/dist/claim.d.ts +11 -3
  34. package/dist/claim.mjs +6 -5
  35. package/dist/{constants-FuzG3h4m.d.cts → constants-DBrWhJWE.d.cts} +12 -7
  36. package/dist/{constants-FuzG3h4m.d.ts → constants-DBrWhJWE.d.ts} +12 -7
  37. package/dist/constants.cjs +3 -9
  38. package/dist/constants.d.cts +2 -3
  39. package/dist/constants.d.ts +2 -3
  40. package/dist/constants.mjs +4 -10
  41. package/dist/deposit.cjs +8 -8
  42. package/dist/deposit.d.cts +2 -2
  43. package/dist/deposit.d.ts +2 -2
  44. package/dist/deposit.mjs +7 -7
  45. package/dist/embed.cjs +1476 -0
  46. package/dist/embed.d.cts +183 -0
  47. package/dist/embed.d.ts +183 -0
  48. package/dist/embed.mjs +1476 -0
  49. package/dist/index.cjs +11 -16
  50. package/dist/index.d.cts +3 -3
  51. package/dist/index.d.ts +3 -3
  52. package/dist/index.mjs +14 -19
  53. package/dist/modal-ui-state-OD1RmKkK.d.cts +30 -0
  54. package/dist/modal-ui-state-OD1RmKkK.d.ts +30 -0
  55. package/dist/polymarket.cjs +17 -7
  56. package/dist/polymarket.mjs +13 -3
  57. package/dist/styles.css +124 -98
  58. package/dist/types-Bho4OA03.d.ts +982 -0
  59. package/dist/types-DP_3KwlD.d.cts +982 -0
  60. package/dist/withdraw.cjs +6 -6
  61. package/dist/withdraw.d.cts +11 -3
  62. package/dist/withdraw.d.ts +11 -3
  63. package/dist/withdraw.mjs +5 -5
  64. package/package.json +59 -6
  65. package/dist/chunk-IAGFDSNC.mjs +0 -11
  66. package/dist/chunk-L32UI7LA.cjs +0 -11
  67. package/dist/types-BO4iP6fG.d.cts +0 -612
  68. package/dist/types-oFblf65g.d.ts +0 -612
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- var _chunkBRYNGLDMcjs = require('./chunk-BRYNGLDM.cjs');
27
+ var _chunkV2OBGLJDcjs = require('./chunk-V2OBGLJD.cjs');
28
28
 
29
29
 
30
30
 
@@ -33,7 +33,8 @@ var _chunkBRYNGLDMcjs = require('./chunk-BRYNGLDM.cjs');
33
33
 
34
34
 
35
35
 
36
- var _chunkO7BCVQ6Lcjs = require('./chunk-O7BCVQ6L.cjs');
36
+
37
+ var _chunk4KCSH4T3cjs = require('./chunk-4KCSH4T3.cjs');
37
38
 
38
39
  // src/core/removed-props.ts
39
40
  var MANAGED_ACCOUNT_REMOVALS = {
@@ -62,7 +63,7 @@ var REMOVED_PROPS = {
62
63
  }
63
64
  };
64
65
  var REMOVED_UI_CONFIG_KEYS = {
65
- checkLiquidity: "removed \u2014 the liquidity cap is shown on the QR / transfer screen, which checks it directly.",
66
+ checkLiquidity: "removed \u2014 the modal no longer surfaces a liquidity cap. Route capacity is enforced when the deposit is processed.",
66
67
  showHistoryButton: "removed \u2014 deposit history is always offered, from the modal's home screen. There is no way to hide it."
67
68
  };
68
69
  var warned = /* @__PURE__ */ new Set();
@@ -96,77 +97,53 @@ function warnRemovedProps(component, props) {
96
97
  }
97
98
  }
98
99
 
99
- // src/core/useTokenPrices.ts
100
- var _react = require('react');
101
- function isErc20(token) {
102
- return typeof token.chainId === "number" && !!token.address && token.address.toLowerCase() !== _chunkO7BCVQ6Lcjs.NATIVE_TOKEN_ADDRESS.toLowerCase();
100
+ // src/core/analytics-target.ts
101
+ var HEX_TOKEN = /^0x(?:[0-9a-f]{32}|[0-9a-f]{40})$/i;
102
+ var BASE58_TOKEN = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/;
103
+ function analyticsTargetProperties(input) {
104
+ const properties = {};
105
+ const chain = resolveChain(input.targetChain);
106
+ const token = resolveToken(input.targetToken);
107
+ if (chain) properties.target_chain = chain;
108
+ if (token) properties.target_token = token;
109
+ return properties;
103
110
  }
104
- function caip2For(token) {
105
- return `${_chunkO7BCVQ6Lcjs.toEvmCaip2.call(void 0, token.chainId)}:${token.address.toLowerCase()}`;
106
- }
107
- async function fetchTokenPriceUsd(service, token) {
108
- if (isErc20(token)) {
109
- const caip2 = caip2For(token);
110
- const prices2 = await service.fetchPricesByAddress([caip2]);
111
- const price2 = prices2[caip2];
112
- return typeof price2 === "number" && price2 > 0 ? price2 : null;
111
+ function resolveChain(targetChain) {
112
+ if (targetChain === void 0) return void 0;
113
+ if (typeof targetChain === "number" && !(targetChain > 0 && Number.isInteger(targetChain))) {
114
+ return void 0;
113
115
  }
114
- const symbol = token.symbol.toUpperCase();
115
- const prices = await service.fetchPrices([symbol]);
116
- const price = prices[symbol];
117
- return typeof price === "number" && price > 0 ? price : null;
116
+ return _chunk4KCSH4T3cjs.targetChainToCaip2.call(void 0, targetChain);
118
117
  }
119
- function useTokenPrices(service, tokens) {
120
- const [prices, setPrices] = _react.useState.call(void 0, {});
121
- const defined = tokens.filter((t) => Boolean(_optionalChain([t, 'optionalAccess', _ => _.symbol])));
122
- const entries = [
123
- ...new Map(
124
- defined.map((token) => {
125
- const erc20 = isErc20(token);
126
- const caip2 = erc20 ? caip2For(token) : null;
127
- const symbol = token.symbol.toUpperCase();
128
- return [_nullishCoalesce(caip2, () => ( `sym:${symbol}`)), { symbol, caip2 }];
129
- })
130
- ).values()
131
- ].sort(
132
- (a, b) => (_nullishCoalesce(a.caip2, () => ( a.symbol))).localeCompare(_nullishCoalesce(b.caip2, () => ( b.symbol)))
133
- );
134
- const key = JSON.stringify(entries);
135
- _react.useEffect.call(void 0, () => {
136
- if (key === "[]") return;
137
- let cancelled = false;
138
- const parsed = JSON.parse(key);
139
- const symbols = [
140
- ...new Set(parsed.filter((e) => !e.caip2).map((e) => e.symbol))
141
- ];
142
- const caip2Ids = [
143
- ...new Set(
144
- parsed.filter((e) => e.caip2).map((e) => e.caip2)
145
- )
146
- ];
147
- Promise.all([
148
- symbols.length > 0 ? service.fetchPrices(symbols) : Promise.resolve({}),
149
- caip2Ids.length > 0 ? service.fetchPricesByAddress(caip2Ids) : Promise.resolve({})
150
- ]).then(([bySymbol, byAddress]) => {
151
- if (cancelled) return;
152
- const merged = { ...bySymbol };
153
- for (const entry of parsed) {
154
- if (!entry.caip2) continue;
155
- const price = byAddress[entry.caip2];
156
- if (typeof price === "number") merged[entry.symbol] = price;
157
- }
158
- setPrices(merged);
159
- }).catch(() => {
160
- });
161
- return () => {
162
- cancelled = true;
163
- };
164
- }, [service, key]);
165
- return prices;
118
+ function resolveToken(targetToken) {
119
+ const raw = _optionalChain([targetToken, 'optionalAccess', _ => _.trim, 'call', _2 => _2()]);
120
+ if (!raw) return void 0;
121
+ if (HEX_TOKEN.test(raw)) return raw.toLowerCase();
122
+ if (BASE58_TOKEN.test(raw)) return raw;
123
+ return raw.toLowerCase() === "native" ? "native" : void 0;
166
124
  }
167
125
 
168
- // src/components/steps/ProcessingStep.tsx
126
+ // src/core/submission-uncertainty.ts
127
+ var MARKER = "__rhinestoneSubmissionUncertain";
128
+ function markSubmissionUncertain(error) {
129
+ Object.defineProperty(error, MARKER, {
130
+ value: true,
131
+ enumerable: false
132
+ });
133
+ return error;
134
+ }
135
+ function isSubmissionUncertain(error) {
136
+ let current = error;
137
+ for (let depth = 0; depth < 10; depth += 1) {
138
+ if (typeof current !== "object" || current === null) return false;
139
+ if (current[MARKER] === true) return true;
140
+ current = current.cause;
141
+ }
142
+ return false;
143
+ }
169
144
 
145
+ // src/components/steps/ProcessingStep.tsx
146
+ var _react = require('react');
170
147
 
171
148
  // src/components/ui/Tooltip.tsx
172
149
 
@@ -197,8 +174,8 @@ function Tooltip({ content, children, className }) {
197
174
  function handleOutside(event) {
198
175
  const target = event.target;
199
176
  if (!target) return;
200
- if (_optionalChain([triggerRef, 'access', _2 => _2.current, 'optionalAccess', _3 => _3.contains, 'call', _4 => _4(target)])) return;
201
- if (_optionalChain([bubbleRef, 'access', _5 => _5.current, 'optionalAccess', _6 => _6.contains, 'call', _7 => _7(target)])) return;
177
+ if (_optionalChain([triggerRef, 'access', _3 => _3.current, 'optionalAccess', _4 => _4.contains, 'call', _5 => _5(target)])) return;
178
+ if (_optionalChain([bubbleRef, 'access', _6 => _6.current, 'optionalAccess', _7 => _7.contains, 'call', _8 => _8(target)])) return;
202
179
  setOpen(false);
203
180
  }
204
181
  function handleKey(event) {
@@ -275,7 +252,7 @@ function FeesAccordion({ total, rows, tooltip }) {
275
252
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-fees-accordion-summary", children: [
276
253
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-fees-accordion-label", children: [
277
254
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Fees" }),
278
- tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tooltip, { content: tooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-info", "aria-label": "Fees info", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.InfoIcon, {}) }) })
255
+ tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tooltip, { content: tooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-info", "aria-label": "Fees info", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.InfoIcon, {}) }) })
279
256
  ] }),
280
257
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
281
258
  "button",
@@ -293,7 +270,7 @@ function FeesAccordion({ total, rows, tooltip }) {
293
270
  {
294
271
  className: `rs-fees-accordion-chevron${open ? " rs-fees-accordion-chevron--open" : ""}`,
295
272
  "aria-hidden": "true",
296
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.ChevronDownIcon, {})
273
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.ChevronDownIcon, {})
297
274
  }
298
275
  )
299
276
  ]
@@ -315,7 +292,7 @@ function FeesAccordion({ total, rows, tooltip }) {
315
292
  {
316
293
  className: "rs-review-detail-info",
317
294
  "aria-label": `${row.label} info`,
318
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.InfoIcon, {})
295
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.InfoIcon, {})
319
296
  }
320
297
  ) })
321
298
  ] })
@@ -341,13 +318,13 @@ function SwappedReceipt({
341
318
  }) {
342
319
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-screen", children: [
343
320
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-screen-body rs-screen-body--gap-32", children: [
344
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.BodyHeader, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.CheckIcon, {}), title: "Deposit successful" }),
321
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.BodyHeader, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.CheckIcon, {}), title: "Deposit successful" }),
345
322
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-details", children: [
346
323
  onrampMethod && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
347
324
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Onramp method" }),
348
325
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
349
326
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: onrampMethod }),
350
- onrampMethodIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon rs-review-detail-icon--square", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.CdnIcon, { src: onrampMethodIcon }) })
327
+ onrampMethodIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon rs-review-detail-icon--square", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.CdnIcon, { src: onrampMethodIcon }) })
351
328
  ] })
352
329
  ] }),
353
330
  amountPaid && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
@@ -358,7 +335,7 @@ function SwappedReceipt({
358
335
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Deposited amount" }),
359
336
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
360
337
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: depositedAmount }),
361
- depositedSymbol && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.TokenIcon, { symbol: depositedSymbol }) })
338
+ depositedSymbol && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.TokenIcon, { symbol: depositedSymbol }) })
362
339
  ] })
363
340
  ] }),
364
341
  feesTotal != null && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -371,11 +348,11 @@ function SwappedReceipt({
371
348
  )
372
349
  ] }),
373
350
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-screen-button-row", children: [
374
- onNewDeposit && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.Button, { variant: "outline", onClick: onNewDeposit, fullWidth: true, children: newLabel }),
375
- onClose && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.Button, { onClick: onClose, fullWidth: true, children: "Done" })
351
+ onNewDeposit && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.Button, { variant: "outline", onClick: onNewDeposit, fullWidth: true, children: newLabel }),
352
+ onClose && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.Button, { onClick: onClose, fullWidth: true, children: "Done" })
376
353
  ] })
377
354
  ] }),
378
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.PoweredBy, {})
355
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.PoweredBy, {})
379
356
  ] });
380
357
  }
381
358
  SwappedReceipt.displayName = "SwappedReceipt";
@@ -394,7 +371,7 @@ var EXCHANGE_SLUGS = [
394
371
  "kucoin"
395
372
  ];
396
373
  var EXCHANGE_LOGO_SOURCES = Object.fromEntries(
397
- EXCHANGE_SLUGS.map((slug) => [slug, _chunkO7BCVQ6Lcjs.cdnIconUrl.call(void 0, "exchanges", slug)])
374
+ EXCHANGE_SLUGS.map((slug) => [slug, _chunk4KCSH4T3cjs.cdnIconUrl.call(void 0, "exchanges", slug)])
398
375
  );
399
376
  var EXCHANGE_LOGO_ALIASES = {
400
377
  gate: "gateio"
@@ -411,7 +388,7 @@ function getExchangeLogoSrc(name, connection) {
411
388
  }
412
389
  function getExchangeLogo(name, connection) {
413
390
  const src = getExchangeLogoSrc(name, connection);
414
- return src ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.CdnIcon, { src }) : null;
391
+ return src ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.CdnIcon, { src }) : null;
415
392
  }
416
393
 
417
394
  // src/core/webhook.ts
@@ -427,7 +404,7 @@ function asNumber(value) {
427
404
  const trimmed = value.trim();
428
405
  if (!trimmed) return void 0;
429
406
  const caipMatch = trimmed.match(/^eip155:(\d+)$/);
430
- if (_optionalChain([caipMatch, 'optionalAccess', _8 => _8[1]])) {
407
+ if (_optionalChain([caipMatch, 'optionalAccess', _9 => _9[1]])) {
431
408
  const parsed2 = Number(caipMatch[1]);
432
409
  return Number.isFinite(parsed2) ? parsed2 : void 0;
433
410
  }
@@ -446,24 +423,24 @@ function asAddress(value) {
446
423
  return /^0x[a-fA-F0-9]{40}$/.test(value) ? value : void 0;
447
424
  }
448
425
  function getEventTxHash(event) {
449
- if (!_optionalChain([event, 'optionalAccess', _9 => _9.type])) return void 0;
426
+ if (!_optionalChain([event, 'optionalAccess', _10 => _10.type])) return void 0;
450
427
  if (event.type === "deposit-received") {
451
- return asString(_optionalChain([event, 'access', _10 => _10.data, 'optionalAccess', _11 => _11.transactionHash]));
428
+ return asString(_optionalChain([event, 'access', _11 => _11.data, 'optionalAccess', _12 => _12.transactionHash]));
452
429
  }
453
430
  if (event.type === "bridge-started" || event.type === "bridge-complete") {
454
- const deposit = isRecord(_optionalChain([event, 'access', _12 => _12.data, 'optionalAccess', _13 => _13.deposit])) ? event.data.deposit : void 0;
455
- const source = isRecord(_optionalChain([event, 'access', _14 => _14.data, 'optionalAccess', _15 => _15.source])) ? event.data.source : void 0;
456
- return _nullishCoalesce(asString(_optionalChain([deposit, 'optionalAccess', _16 => _16.transactionHash])), () => ( asString(_optionalChain([source, 'optionalAccess', _17 => _17.transactionHash]))));
431
+ const deposit = isRecord(_optionalChain([event, 'access', _13 => _13.data, 'optionalAccess', _14 => _14.deposit])) ? event.data.deposit : void 0;
432
+ const source = isRecord(_optionalChain([event, 'access', _15 => _15.data, 'optionalAccess', _16 => _16.source])) ? event.data.source : void 0;
433
+ return _nullishCoalesce(asString(_optionalChain([deposit, 'optionalAccess', _17 => _17.transactionHash])), () => ( asString(_optionalChain([source, 'optionalAccess', _18 => _18.transactionHash]))));
457
434
  }
458
435
  if (event.type === "bridge-failed" || event.type === "error") {
459
- const deposit = isRecord(_optionalChain([event, 'access', _18 => _18.data, 'optionalAccess', _19 => _19.deposit])) ? event.data.deposit : void 0;
460
- const source = isRecord(_optionalChain([event, 'access', _20 => _20.data, 'optionalAccess', _21 => _21.source])) ? event.data.source : void 0;
461
- return _nullishCoalesce(asString(_optionalChain([deposit, 'optionalAccess', _22 => _22.transactionHash])), () => ( asString(_optionalChain([source, 'optionalAccess', _23 => _23.transactionHash]))));
436
+ const deposit = isRecord(_optionalChain([event, 'access', _19 => _19.data, 'optionalAccess', _20 => _20.deposit])) ? event.data.deposit : void 0;
437
+ const source = isRecord(_optionalChain([event, 'access', _21 => _21.data, 'optionalAccess', _22 => _22.source])) ? event.data.source : void 0;
438
+ return _nullishCoalesce(asString(_optionalChain([deposit, 'optionalAccess', _23 => _23.transactionHash])), () => ( asString(_optionalChain([source, 'optionalAccess', _24 => _24.transactionHash]))));
462
439
  }
463
440
  return void 0;
464
441
  }
465
442
  function getEventSourceDetails(event) {
466
- if (!_optionalChain([event, 'optionalAccess', _24 => _24.type]) || !isRecord(event.data)) return {};
443
+ if (!_optionalChain([event, 'optionalAccess', _25 => _25.type]) || !isRecord(event.data)) return {};
467
444
  if (event.type === "deposit-received") {
468
445
  return {
469
446
  chainId: asNumber(event.data.chain),
@@ -475,9 +452,9 @@ function getEventSourceDetails(event) {
475
452
  const deposit = isRecord(event.data.deposit) ? event.data.deposit : void 0;
476
453
  if (event.type === "bridge-started" || event.type === "bridge-complete" || event.type === "bridge-failed" || event.type === "error") {
477
454
  return {
478
- chainId: _nullishCoalesce(asNumber(_optionalChain([source, 'optionalAccess', _25 => _25.chain])), () => ( asNumber(_optionalChain([deposit, 'optionalAccess', _26 => _26.chain])))),
479
- amount: _nullishCoalesce(asAmount(_optionalChain([source, 'optionalAccess', _27 => _27.amount])), () => ( asAmount(_optionalChain([deposit, 'optionalAccess', _28 => _28.amount])))),
480
- token: _nullishCoalesce(_nullishCoalesce(asAddress(_optionalChain([source, 'optionalAccess', _29 => _29.asset])), () => ( asAddress(_optionalChain([deposit, 'optionalAccess', _30 => _30.asset])))), () => ( asAddress(_optionalChain([deposit, 'optionalAccess', _31 => _31.token]))))
455
+ chainId: _nullishCoalesce(asNumber(_optionalChain([source, 'optionalAccess', _26 => _26.chain])), () => ( asNumber(_optionalChain([deposit, 'optionalAccess', _27 => _27.chain])))),
456
+ amount: _nullishCoalesce(asAmount(_optionalChain([source, 'optionalAccess', _28 => _28.amount])), () => ( asAmount(_optionalChain([deposit, 'optionalAccess', _29 => _29.amount])))),
457
+ token: _nullishCoalesce(_nullishCoalesce(asAddress(_optionalChain([source, 'optionalAccess', _30 => _30.asset])), () => ( asAddress(_optionalChain([deposit, 'optionalAccess', _31 => _31.asset])))), () => ( asAddress(_optionalChain([deposit, 'optionalAccess', _32 => _32.token]))))
481
458
  };
482
459
  }
483
460
  return {};
@@ -491,7 +468,7 @@ function asChain(value) {
491
468
  return asNumber(value);
492
469
  }
493
470
  function getEventDestinationDetails(event) {
494
- if (!_optionalChain([event, 'optionalAccess', _32 => _32.type]) || !isRecord(event.data)) return {};
471
+ if (!_optionalChain([event, 'optionalAccess', _33 => _33.type]) || !isRecord(event.data)) return {};
495
472
  if (event.type !== "bridge-started" && event.type !== "bridge-complete") {
496
473
  return {};
497
474
  }
@@ -501,14 +478,14 @@ function getEventDestinationDetails(event) {
501
478
  return {
502
479
  chainId: asChain(destination.chain),
503
480
  amount: asAmount(destination.amount),
504
- token: _optionalChain([token, 'optionalAccess', _33 => _33.trim, 'call', _34 => _34()]) || void 0
481
+ token: _optionalChain([token, 'optionalAccess', _34 => _34.trim, 'call', _35 => _35()]) || void 0
505
482
  };
506
483
  }
507
484
  function isDepositEvent(event) {
508
- return _optionalChain([event, 'optionalAccess', _35 => _35.type]) === "deposit-received" || _optionalChain([event, 'optionalAccess', _36 => _36.type]) === "bridge-started" || _optionalChain([event, 'optionalAccess', _37 => _37.type]) === "bridge-complete" || _optionalChain([event, 'optionalAccess', _38 => _38.type]) === "bridge-failed" || _optionalChain([event, 'optionalAccess', _39 => _39.type]) === "error";
485
+ return _optionalChain([event, 'optionalAccess', _36 => _36.type]) === "deposit-received" || _optionalChain([event, 'optionalAccess', _37 => _37.type]) === "bridge-started" || _optionalChain([event, 'optionalAccess', _38 => _38.type]) === "bridge-complete" || _optionalChain([event, 'optionalAccess', _39 => _39.type]) === "bridge-failed" || _optionalChain([event, 'optionalAccess', _40 => _40.type]) === "error";
509
486
  }
510
487
  function isFailedEvent(event) {
511
- return _optionalChain([event, 'optionalAccess', _40 => _40.type]) === "bridge-failed" || _optionalChain([event, 'optionalAccess', _41 => _41.type]) === "error";
488
+ return _optionalChain([event, 'optionalAccess', _41 => _41.type]) === "bridge-failed" || _optionalChain([event, 'optionalAccess', _42 => _42.type]) === "error";
512
489
  }
513
490
  function isHexString(value) {
514
491
  return value.startsWith("0x") || value.startsWith("0X");
@@ -520,7 +497,7 @@ function txRefsMatch(a, b) {
520
497
  return a === b;
521
498
  }
522
499
  function formatBridgeFailedMessage(event) {
523
- const eventData = _nullishCoalesce(_optionalChain([event, 'optionalAccess', _42 => _42.data]), () => ( {}));
500
+ const eventData = _nullishCoalesce(_optionalChain([event, 'optionalAccess', _43 => _43.data]), () => ( {}));
524
501
  const code = typeof eventData.errorCode === "string" ? eventData.errorCode : void 0;
525
502
  const backendMessage = typeof eventData.message === "string" ? eventData.message.trim() : "";
526
503
  function toUserFacingFailure(raw) {
@@ -548,13 +525,77 @@ function formatBridgeFailedMessage(event) {
548
525
  return { message: "Bridge failed" };
549
526
  }
550
527
  function failureMessageForEvent(event) {
551
- if (_optionalChain([event, 'optionalAccess', _43 => _43.type]) === "error") {
528
+ if (_optionalChain([event, 'optionalAccess', _44 => _44.type]) === "error") {
552
529
  const message = isRecord(event.data) ? asString(event.data.message) : void 0;
553
530
  return _nullishCoalesce(message, () => ( "Unknown error"));
554
531
  }
555
532
  return formatBridgeFailedMessage(event).message;
556
533
  }
557
534
 
535
+ // src/core/useTokenPrices.ts
536
+
537
+ var PRICE_SERVICE_NATIVE = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
538
+ var WRAPPED_SOL_MINT = "So11111111111111111111111111111111111111112";
539
+ var SOL_SYSTEM_PROGRAM = "11111111111111111111111111111111";
540
+ function isSolanaNativeAddress(address) {
541
+ if (!address) return true;
542
+ const lower = address.toLowerCase();
543
+ return lower === "native" || lower === SOL_SYSTEM_PROGRAM;
544
+ }
545
+ function isNativeAddress(address) {
546
+ if (!address) return true;
547
+ return address.toLowerCase() === _chunk4KCSH4T3cjs.NATIVE_TOKEN_ADDRESS.toLowerCase();
548
+ }
549
+ function caip2For(token) {
550
+ if (token.chainId === "solana") {
551
+ const mint = isSolanaNativeAddress(token.address) ? WRAPPED_SOL_MINT : token.address;
552
+ return mint ? `${_chunk4KCSH4T3cjs.SOLANA_MAINNET_CAIP2}:${mint}` : void 0;
553
+ }
554
+ if (typeof token.chainId !== "number") return void 0;
555
+ const address = isNativeAddress(token.address) ? PRICE_SERVICE_NATIVE : token.address;
556
+ return `${_chunk4KCSH4T3cjs.toEvmCaip2.call(void 0, token.chainId)}:${address.toLowerCase()}`;
557
+ }
558
+ async function fetchTokenPriceUsd(service, token) {
559
+ const caip2 = caip2For(token);
560
+ if (!caip2) return null;
561
+ const prices = await service.fetchPricesByAddress([caip2]);
562
+ const price = prices[caip2];
563
+ return typeof price === "number" && price > 0 ? price : null;
564
+ }
565
+ function useTokenPrices(service, tokens) {
566
+ const [prices, setPrices] = _react.useState.call(void 0, {});
567
+ const defined = tokens.filter((t) => Boolean(_optionalChain([t, 'optionalAccess', _45 => _45.symbol])));
568
+ const entries = [
569
+ ...new Map(
570
+ defined.flatMap((token) => {
571
+ const caip2 = caip2For(token);
572
+ return caip2 ? [{ symbol: token.symbol.toUpperCase(), caip2 }] : [];
573
+ }).map((entry) => [entry.caip2, entry])
574
+ ).values()
575
+ ].sort((a, b) => a.caip2.localeCompare(b.caip2));
576
+ const key = JSON.stringify(entries);
577
+ _react.useEffect.call(void 0, () => {
578
+ if (key === "[]") return;
579
+ let cancelled = false;
580
+ const parsed = JSON.parse(key);
581
+ const caip2Ids = [...new Set(parsed.map((e) => e.caip2))];
582
+ service.fetchPricesByAddress(caip2Ids).then((byAddress) => {
583
+ if (cancelled) return;
584
+ const merged = {};
585
+ for (const entry of parsed) {
586
+ const price = byAddress[entry.caip2];
587
+ if (typeof price === "number") merged[entry.symbol] = price;
588
+ }
589
+ setPrices(merged);
590
+ }).catch(() => {
591
+ });
592
+ return () => {
593
+ cancelled = true;
594
+ };
595
+ }, [service, key]);
596
+ return prices;
597
+ }
598
+
558
599
  // src/components/steps/ProcessingStep.tsx
559
600
 
560
601
  function SuccessBadge() {
@@ -656,14 +697,14 @@ function buildQuoteFeeRows(breakdown, sponsoredTooltip) {
656
697
  if (!breakdown) return { rows: [], chargeableUsd: 0 };
657
698
  const rows = [];
658
699
  let chargeableUsd = 0;
659
- for (const group of _chunkBRYNGLDMcjs.quoteFeeGroups.call(void 0, breakdown)) {
700
+ for (const group of _chunkV2OBGLJDcjs.quoteFeeGroups.call(void 0, breakdown)) {
660
701
  if (group.chargedUsd > 0) {
661
702
  chargeableUsd += group.chargedUsd;
662
- rows.push({ label: group.label, value: _chunkBRYNGLDMcjs.formatFeeUsd.call(void 0, group.chargedUsd) });
703
+ rows.push({ label: group.label, value: _chunkV2OBGLJDcjs.formatFeeUsd.call(void 0, group.chargedUsd) });
663
704
  } else if (group.sponsoredUsd > 0) {
664
705
  rows.push({
665
706
  label: group.label,
666
- value: _chunkBRYNGLDMcjs.formatFeeUsd.call(void 0, group.sponsoredUsd),
707
+ value: _chunkV2OBGLJDcjs.formatFeeUsd.call(void 0, group.sponsoredUsd),
667
708
  strike: true,
668
709
  tooltip: sponsoredTooltip
669
710
  });
@@ -712,12 +753,12 @@ function isEventForTx(event, txHash) {
712
753
  return txRefsMatch(eventTxHash, txHash);
713
754
  }
714
755
  function parseWebhookTimestamp(event) {
715
- if (typeof _optionalChain([event, 'optionalAccess', _44 => _44.time]) !== "string") return void 0;
756
+ if (typeof _optionalChain([event, 'optionalAccess', _46 => _46.time]) !== "string") return void 0;
716
757
  const timestamp = Date.parse(event.time);
717
758
  return Number.isFinite(timestamp) ? timestamp : void 0;
718
759
  }
719
760
  function syncPhaseTimings(previous, event) {
720
- if (!_optionalChain([event, 'optionalAccess', _45 => _45.type])) return previous;
761
+ if (!_optionalChain([event, 'optionalAccess', _47 => _47.type])) return previous;
721
762
  const timestamp = _nullishCoalesce(parseWebhookTimestamp(event), () => ( Date.now()));
722
763
  const setReceived = (event.type === "deposit-received" || event.type === "bridge-started" || event.type === "bridge-complete" || event.type === "bridge-failed" || event.type === "error") && previous.receivedAt === void 0;
723
764
  const setBridging = (event.type === "bridge-started" || event.type === "bridge-complete") && previous.bridgingAt === void 0;
@@ -779,46 +820,46 @@ function getCurrentPhaseId(state, phaseTimings) {
779
820
  if (state.type === "complete") {
780
821
  return void 0;
781
822
  }
782
- if (_optionalChain([state, 'access', _46 => _46.lastEvent, 'optionalAccess', _47 => _47.type]) === "bridge-started" || _optionalChain([state, 'access', _48 => _48.lastEvent, 'optionalAccess', _49 => _49.type]) === "bridge-complete")
823
+ if (_optionalChain([state, 'access', _48 => _48.lastEvent, 'optionalAccess', _49 => _49.type]) === "bridge-started" || _optionalChain([state, 'access', _50 => _50.lastEvent, 'optionalAccess', _51 => _51.type]) === "bridge-complete")
783
824
  return "bridging";
784
- if (_optionalChain([state, 'access', _50 => _50.lastEvent, 'optionalAccess', _51 => _51.type]) === "deposit-received") return "received";
825
+ if (_optionalChain([state, 'access', _52 => _52.lastEvent, 'optionalAccess', _53 => _53.type]) === "deposit-received") return "received";
785
826
  return "confirming";
786
827
  }
787
828
  function getCompletionDestinationTxHash(event) {
788
- const eventData = _optionalChain([event, 'optionalAccess', _52 => _52.data]);
789
- const swapTxHash = _optionalChain([eventData, 'optionalAccess', _53 => _53.swap, 'optionalAccess', _54 => _54.transactionHash]);
790
- const destinationTxHash = _optionalChain([eventData, 'optionalAccess', _55 => _55.destination, 'optionalAccess', _56 => _56.transactionHash]);
829
+ const eventData = _optionalChain([event, 'optionalAccess', _54 => _54.data]);
830
+ const swapTxHash = _optionalChain([eventData, 'optionalAccess', _55 => _55.swap, 'optionalAccess', _56 => _56.transactionHash]);
831
+ const destinationTxHash = _optionalChain([eventData, 'optionalAccess', _57 => _57.destination, 'optionalAccess', _58 => _58.transactionHash]);
791
832
  return _nullishCoalesce(swapTxHash, () => ( destinationTxHash));
792
833
  }
793
834
  function getTerminalProcessingOutcome(event) {
794
- if (_optionalChain([event, 'optionalAccess', _57 => _57.type]) === "post-bridge-swap-complete") {
835
+ if (_optionalChain([event, 'optionalAccess', _59 => _59.type]) === "post-bridge-swap-complete") {
795
836
  return {
796
837
  type: "complete",
797
838
  destinationTxHash: getCompletionDestinationTxHash(event)
798
839
  };
799
840
  }
800
- if (_optionalChain([event, 'optionalAccess', _58 => _58.type]) === "post-bridge-swap-failed") {
841
+ if (_optionalChain([event, 'optionalAccess', _60 => _60.type]) === "post-bridge-swap-failed") {
801
842
  return {
802
843
  type: "failed",
803
844
  message: formatBridgeFailedMessage(event).message
804
845
  };
805
846
  }
806
- if (_optionalChain([event, 'optionalAccess', _59 => _59.type]) === "bridge-complete") {
847
+ if (_optionalChain([event, 'optionalAccess', _61 => _61.type]) === "bridge-complete") {
807
848
  return {
808
849
  type: "complete",
809
850
  destinationTxHash: getCompletionDestinationTxHash(event)
810
851
  };
811
852
  }
812
- if (_optionalChain([event, 'optionalAccess', _60 => _60.type]) === "bridge-failed") {
853
+ if (_optionalChain([event, 'optionalAccess', _62 => _62.type]) === "bridge-failed") {
813
854
  return {
814
855
  type: "failed",
815
856
  message: formatBridgeFailedMessage(event).message
816
857
  };
817
858
  }
818
- if (_optionalChain([event, 'optionalAccess', _61 => _61.type]) === "error") {
859
+ if (_optionalChain([event, 'optionalAccess', _63 => _63.type]) === "error") {
819
860
  return {
820
861
  type: "failed",
821
- message: _nullishCoalesce(_optionalChain([event, 'access', _62 => _62.data, 'optionalAccess', _63 => _63.message]), () => ( "Unknown error"))
862
+ message: _nullishCoalesce(_optionalChain([event, 'access', _64 => _64.data, 'optionalAccess', _65 => _65.message]), () => ( "Unknown error"))
822
863
  };
823
864
  }
824
865
  return null;
@@ -826,10 +867,10 @@ function getTerminalProcessingOutcome(event) {
826
867
  function getInitialProcessingState(event, txHash) {
827
868
  if (!event || !isEventForTx(event, txHash)) return null;
828
869
  const terminal = getTerminalProcessingOutcome(event);
829
- if (_optionalChain([terminal, 'optionalAccess', _64 => _64.type]) === "complete") {
870
+ if (_optionalChain([terminal, 'optionalAccess', _66 => _66.type]) === "complete") {
830
871
  return { type: "complete", lastEvent: event };
831
872
  }
832
- if (_optionalChain([terminal, 'optionalAccess', _65 => _65.type]) === "failed") {
873
+ if (_optionalChain([terminal, 'optionalAccess', _67 => _67.type]) === "failed") {
833
874
  return { type: "failed", message: terminal.message, lastEvent: event };
834
875
  }
835
876
  if (isDepositEvent(event)) {
@@ -837,6 +878,9 @@ function getInitialProcessingState(event, txHash) {
837
878
  }
838
879
  return null;
839
880
  }
881
+ function getSettledSourceTxHash(event, fallbackTxHash) {
882
+ return _nullishCoalesce(_optionalChain([event, 'optionalAccess', _68 => _68.data, 'optionalAccess', _69 => _69.source, 'optionalAccess', _70 => _70.transactionHash]), () => ( fallbackTxHash));
883
+ }
840
884
  function ProcessingStep({
841
885
  smartAccount,
842
886
  solanaDepositAddress,
@@ -850,6 +894,7 @@ function ProcessingStep({
850
894
  amountUsd,
851
895
  service,
852
896
  directTransfer,
897
+ sourceTxHashPending,
853
898
  initialEvent,
854
899
  flowLabel = "deposit",
855
900
  debug,
@@ -866,13 +911,14 @@ function ProcessingStep({
866
911
  onRetry,
867
912
  onDepositComplete,
868
913
  onDepositFailed,
914
+ onSourceTransactionObserved,
869
915
  onError
870
916
  }) {
871
917
  const startTimeRef = _react.useRef.call(void 0, Date.now());
872
918
  const pollIntervalRef = _react.useRef.call(void 0, INITIAL_POLL_INTERVAL);
873
919
  const pollTimeoutRef = _react.useRef.call(void 0, null);
874
920
  const escalatedDelayRef = _react.useRef.call(void 0, false);
875
- const processingContextRef = _chunkBRYNGLDMcjs.useLatestRef.call(void 0, {
921
+ const processingContextRef = _chunkV2OBGLJDcjs.useLatestRef.call(void 0, {
876
922
  amount,
877
923
  sourceChain,
878
924
  sourceToken,
@@ -881,10 +927,10 @@ function ProcessingStep({
881
927
  targetChain,
882
928
  targetToken
883
929
  });
884
- const onDepositCompleteRef = _chunkBRYNGLDMcjs.useLatestRef.call(void 0, onDepositComplete);
885
- const onDepositFailedRef = _chunkBRYNGLDMcjs.useLatestRef.call(void 0, onDepositFailed);
886
- const onErrorRef = _chunkBRYNGLDMcjs.useLatestRef.call(void 0, onError);
887
- const explorerTxUrl = _chunkBRYNGLDMcjs.useExplorerTxUrl.call(void 0, );
930
+ const onDepositCompleteRef = _chunkV2OBGLJDcjs.useLatestRef.call(void 0, onDepositComplete);
931
+ const onDepositFailedRef = _chunkV2OBGLJDcjs.useLatestRef.call(void 0, onDepositFailed);
932
+ const onErrorRef = _chunkV2OBGLJDcjs.useLatestRef.call(void 0, onError);
933
+ const explorerTxUrl = _chunkV2OBGLJDcjs.useExplorerTxUrl.call(void 0, );
888
934
  const initialTerminalEventRef = _react.useRef.call(void 0, null);
889
935
  const [state, setState] = _react.useState.call(void 0, () => {
890
936
  if (directTransfer) return { type: "complete" };
@@ -928,12 +974,12 @@ function ProcessingStep({
928
974
  completedAt,
929
975
  endedAt: completedAt
930
976
  }));
931
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "direct-transfer:complete", {
977
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "direct-transfer:complete", {
932
978
  txHash,
933
979
  flowLabel
934
980
  });
935
981
  const context = processingContextRef.current;
936
- _optionalChain([onDepositCompleteRef, 'access', _66 => _66.current, 'optionalCall', _67 => _67(txHash, void 0, {
982
+ _optionalChain([onDepositCompleteRef, 'access', _71 => _71.current, 'optionalCall', _72 => _72(txHash, void 0, {
937
983
  amount: context.amount,
938
984
  sourceChain: context.sourceChain,
939
985
  sourceToken: context.sourceToken,
@@ -959,28 +1005,34 @@ function ProcessingStep({
959
1005
  if (!outcome) return;
960
1006
  if (outcome.type === "complete") {
961
1007
  const context = processingContextRef.current;
962
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "initial-event:complete", {
1008
+ const sourceTxHash2 = getSettledSourceTxHash(event, txHash);
1009
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "initial-event:complete", {
963
1010
  txHash,
1011
+ sourceTxHash: sourceTxHash2,
964
1012
  destinationTxHash: outcome.destinationTxHash,
965
1013
  event: event.type
966
1014
  });
967
- _optionalChain([onDepositCompleteRef, 'access', _68 => _68.current, 'optionalCall', _69 => _69(txHash, outcome.destinationTxHash, {
968
- amount: context.amount,
969
- sourceChain: context.sourceChain,
970
- sourceToken: context.sourceToken,
971
- sourceDecimals: context.sourceDecimals,
972
- amountUsd: context.amountUsd,
973
- targetChain: context.targetChain,
974
- targetToken: context.targetToken
975
- })]);
1015
+ _optionalChain([onDepositCompleteRef, 'access', _73 => _73.current, 'optionalCall', _74 => _74(
1016
+ sourceTxHash2,
1017
+ outcome.destinationTxHash,
1018
+ {
1019
+ amount: context.amount,
1020
+ sourceChain: context.sourceChain,
1021
+ sourceToken: context.sourceToken,
1022
+ sourceDecimals: context.sourceDecimals,
1023
+ amountUsd: context.amountUsd,
1024
+ targetChain: context.targetChain,
1025
+ targetToken: context.targetToken
1026
+ }
1027
+ )]);
976
1028
  return;
977
1029
  }
978
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "initial-event:failed", {
1030
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "initial-event:failed", {
979
1031
  txHash,
980
1032
  message: outcome.message,
981
1033
  event: event.type
982
1034
  });
983
- _optionalChain([onDepositFailedRef, 'access', _70 => _70.current, 'optionalCall', _71 => _71(txHash, outcome.message)]);
1035
+ _optionalChain([onDepositFailedRef, 'access', _75 => _75.current, 'optionalCall', _76 => _76(txHash, outcome.message)]);
984
1036
  }, [
985
1037
  debug,
986
1038
  onDepositCompleteRef,
@@ -1012,13 +1064,13 @@ function ProcessingStep({
1012
1064
  updatePhaseTimings(
1013
1065
  (previous) => syncPhaseTimings(previous, state.lastEvent)
1014
1066
  );
1015
- }, [_optionalChain([state, 'access', _72 => _72.lastEvent, 'optionalAccess', _73 => _73.time]), _optionalChain([state, 'access', _74 => _74.lastEvent, 'optionalAccess', _75 => _75.type]), updatePhaseTimings]);
1067
+ }, [_optionalChain([state, 'access', _77 => _77.lastEvent, 'optionalAccess', _78 => _78.time]), _optionalChain([state, 'access', _79 => _79.lastEvent, 'optionalAccess', _80 => _80.type]), updatePhaseTimings]);
1016
1068
  const [swappedFiatContext, setSwappedFiatContext] = _react.useState.call(void 0, null);
1017
1069
  _react.useEffect.call(void 0, () => {
1018
1070
  let cancelled = false;
1019
1071
  let timeoutId;
1020
- const isFiatSwappedOrder = isSwappedOrder && _optionalChain([swappedContext, 'optionalAccess', _76 => _76.variant]) === "fiat";
1021
- const expectedOrderUuid = _nullishCoalesce(_optionalChain([swappedContext, 'optionalAccess', _77 => _77.expectedOrderUuid]), () => ( null));
1072
+ const isFiatSwappedOrder = isSwappedOrder && _optionalChain([swappedContext, 'optionalAccess', _81 => _81.variant]) === "fiat";
1073
+ const expectedOrderUuid = _nullishCoalesce(_optionalChain([swappedContext, 'optionalAccess', _82 => _82.expectedOrderUuid]), () => ( null));
1022
1074
  setSwappedFiatContext(null);
1023
1075
  if (isFiatSwappedOrder && !expectedOrderUuid) {
1024
1076
  return () => {
@@ -1068,8 +1120,8 @@ function ProcessingStep({
1068
1120
  smartAccount,
1069
1121
  txHash,
1070
1122
  isSwappedOrder,
1071
- _optionalChain([swappedContext, 'optionalAccess', _78 => _78.variant]),
1072
- _optionalChain([swappedContext, 'optionalAccess', _79 => _79.expectedOrderUuid])
1123
+ _optionalChain([swappedContext, 'optionalAccess', _83 => _83.variant]),
1124
+ _optionalChain([swappedContext, 'optionalAccess', _84 => _84.expectedOrderUuid])
1073
1125
  ]);
1074
1126
  _react.useEffect.call(void 0, () => {
1075
1127
  if (directTransfer) return;
@@ -1081,7 +1133,7 @@ function ProcessingStep({
1081
1133
  async function pollStatus() {
1082
1134
  try {
1083
1135
  const account = sourceChain === "solana" && solanaDepositAddress ? solanaDepositAddress : smartAccount;
1084
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "poll:request", {
1136
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "poll:request", {
1085
1137
  account,
1086
1138
  txHash,
1087
1139
  intervalMs: pollIntervalRef.current
@@ -1092,23 +1144,28 @@ function ProcessingStep({
1092
1144
  const eventForCurrentTx = eventMatchesTx ? lastEvent2 : void 0;
1093
1145
  if (lastEvent2) {
1094
1146
  const eventData = lastEvent2.data;
1095
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "poll:event", {
1147
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "poll:event", {
1096
1148
  type: lastEvent2.type,
1097
1149
  matchesTx: eventMatchesTx,
1098
- intentId: _optionalChain([eventData, 'optionalAccess', _80 => _80.intentId])
1150
+ intentId: _optionalChain([eventData, 'optionalAccess', _85 => _85.intentId])
1099
1151
  });
1100
1152
  }
1101
1153
  if (!isMounted) return;
1102
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _81 => _81.type]) === "bridge-complete") {
1154
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _86 => _86.type]) === "bridge-complete") {
1103
1155
  setState({ type: "complete", lastEvent: eventForCurrentTx });
1104
- const destinationTxHash2 = _optionalChain([eventForCurrentTx, 'access', _82 => _82.data, 'optionalAccess', _83 => _83.destination, 'optionalAccess', _84 => _84.transactionHash]);
1105
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "state:complete", {
1156
+ const sourceTxHash2 = getSettledSourceTxHash(
1157
+ eventForCurrentTx,
1158
+ txHash
1159
+ );
1160
+ const destinationTxHash2 = _optionalChain([eventForCurrentTx, 'access', _87 => _87.data, 'optionalAccess', _88 => _88.destination, 'optionalAccess', _89 => _89.transactionHash]);
1161
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "state:complete", {
1106
1162
  txHash,
1163
+ sourceTxHash: sourceTxHash2,
1107
1164
  destinationTxHash: destinationTxHash2,
1108
1165
  event: eventForCurrentTx.type
1109
1166
  });
1110
1167
  const context = processingContextRef.current;
1111
- _optionalChain([onDepositCompleteRef, 'access', _85 => _85.current, 'optionalCall', _86 => _86(txHash, destinationTxHash2, {
1168
+ _optionalChain([onDepositCompleteRef, 'access', _90 => _90.current, 'optionalCall', _91 => _91(sourceTxHash2, destinationTxHash2, {
1112
1169
  amount: context.amount,
1113
1170
  sourceChain: context.sourceChain,
1114
1171
  sourceToken: context.sourceToken,
@@ -1119,33 +1176,33 @@ function ProcessingStep({
1119
1176
  })]);
1120
1177
  return;
1121
1178
  }
1122
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _87 => _87.type]) === "bridge-failed") {
1179
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _92 => _92.type]) === "bridge-failed") {
1123
1180
  const formatted = formatBridgeFailedMessage(eventForCurrentTx);
1124
1181
  setState({
1125
1182
  type: "failed",
1126
1183
  message: formatted.message,
1127
1184
  lastEvent: eventForCurrentTx
1128
1185
  });
1129
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "state:failed", {
1186
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "state:failed", {
1130
1187
  txHash,
1131
1188
  message: formatted.message,
1132
1189
  code: formatted.code
1133
1190
  });
1134
- _optionalChain([onDepositFailedRef, 'access', _88 => _88.current, 'optionalCall', _89 => _89(txHash, formatted.message)]);
1191
+ _optionalChain([onDepositFailedRef, 'access', _93 => _93.current, 'optionalCall', _94 => _94(txHash, formatted.message)]);
1135
1192
  return;
1136
1193
  }
1137
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _90 => _90.type]) === "error") {
1138
- const errorMessage = _nullishCoalesce(_optionalChain([eventForCurrentTx, 'access', _91 => _91.data, 'optionalAccess', _92 => _92.message]), () => ( "Unknown error"));
1194
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _95 => _95.type]) === "error") {
1195
+ const errorMessage = _nullishCoalesce(_optionalChain([eventForCurrentTx, 'access', _96 => _96.data, 'optionalAccess', _97 => _97.message]), () => ( "Unknown error"));
1139
1196
  setState({
1140
1197
  type: "failed",
1141
1198
  message: errorMessage,
1142
1199
  lastEvent: eventForCurrentTx
1143
1200
  });
1144
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "state:error-event", {
1201
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "state:error-event", {
1145
1202
  txHash,
1146
1203
  message: errorMessage
1147
1204
  });
1148
- _optionalChain([onDepositFailedRef, 'access', _93 => _93.current, 'optionalCall', _94 => _94(txHash, errorMessage)]);
1205
+ _optionalChain([onDepositFailedRef, 'access', _98 => _98.current, 'optionalCall', _99 => _99(txHash, errorMessage)]);
1149
1206
  return;
1150
1207
  }
1151
1208
  setState((previous) => ({
@@ -1154,7 +1211,7 @@ function ProcessingStep({
1154
1211
  }));
1155
1212
  scheduleNextPoll();
1156
1213
  } catch (error) {
1157
- _chunkBRYNGLDMcjs.debugError.call(void 0, debug, "processing", "poll:failure", error, {
1214
+ _chunkV2OBGLJDcjs.debugError.call(void 0, debug, "processing", "poll:failure", error, {
1158
1215
  smartAccount,
1159
1216
  txHash,
1160
1217
  intervalMs: pollIntervalRef.current
@@ -1169,7 +1226,7 @@ function ProcessingStep({
1169
1226
  pollIntervalRef.current * BACKOFF_MULTIPLIER,
1170
1227
  MAX_POLL_INTERVAL
1171
1228
  );
1172
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "poll:scheduled", {
1229
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "poll:scheduled", {
1173
1230
  nextIntervalMs: pollIntervalRef.current
1174
1231
  });
1175
1232
  pollStatus();
@@ -1202,11 +1259,11 @@ function ProcessingStep({
1202
1259
  escalatedDelayRef.current = true;
1203
1260
  setHasEscalatedDelay(true);
1204
1261
  const message = "Transfer is taking longer than expected. Your funds are safe and processing will continue automatically.";
1205
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "processing", "state:delay-escalated", {
1262
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "processing", "state:delay-escalated", {
1206
1263
  txHash,
1207
1264
  timeoutMs: ESCALATED_DELAY_MS
1208
1265
  });
1209
- _optionalChain([onErrorRef, 'access', _95 => _95.current, 'optionalCall', _96 => _96(message, "PROCESS_TIMEOUT")]);
1266
+ _optionalChain([onErrorRef, 'access', _100 => _100.current, 'optionalCall', _101 => _101(message, "PROCESS_TIMEOUT")]);
1210
1267
  }, ESCALATED_DELAY_MS);
1211
1268
  return () => clearTimeout(timeoutId);
1212
1269
  }, [debug, directTransfer, onErrorRef, state.type, txHash]);
@@ -1218,16 +1275,24 @@ function ProcessingStep({
1218
1275
  const timelineNowMs = _nullishCoalesce(phaseTimings.endedAt, () => ( Date.now()));
1219
1276
  const flowNoun = flowLabel === "withdraw" ? "withdrawal" : "deposit";
1220
1277
  const flowCapitalized = flowLabel === "withdraw" ? "Withdrawal" : "Deposit";
1221
- const destinationTxHash = _optionalChain([lastEvent, 'optionalAccess', _97 => _97.data, 'optionalAccess', _98 => _98.destination, 'optionalAccess', _99 => _99.transactionHash]) || null;
1278
+ const destinationTxHash = _optionalChain([lastEvent, 'optionalAccess', _102 => _102.data, 'optionalAccess', _103 => _103.destination, 'optionalAccess', _104 => _104.transactionHash]) || null;
1279
+ const sourceTxHash = getSettledSourceTxHash(lastEvent, txHash);
1222
1280
  const sourceDetails = getEventSourceDetails(lastEvent);
1223
1281
  const displaySourceChain = _nullishCoalesce(sourceDetails.chainId, () => ( sourceChain));
1224
1282
  const displaySourceToken = _nullishCoalesce(sourceDetails.token, () => ( sourceToken));
1225
1283
  const displayAmount = _nullishCoalesce(sourceDetails.amount, () => ( amount));
1226
- const targetChainId = _chunkO7BCVQ6Lcjs.targetChainToChainId.call(void 0, targetChain);
1227
- const sourceExplorerUrl = explorerTxUrl(displaySourceChain, txHash);
1284
+ const targetChainId = _chunk4KCSH4T3cjs.targetChainToChainId.call(void 0, targetChain);
1285
+ const settledSourceTxHash = _optionalChain([lastEvent, 'optionalAccess', _105 => _105.data, 'optionalAccess', _106 => _106.source, 'optionalAccess', _107 => _107.transactionHash]);
1286
+ const sourceExplorerHash = _nullishCoalesce(settledSourceTxHash, () => ( (sourceTxHashPending ? null : sourceTxHash)));
1287
+ _react.useEffect.call(void 0, () => {
1288
+ if (sourceTxHashPending && settledSourceTxHash) {
1289
+ _optionalChain([onSourceTransactionObserved, 'optionalCall', _108 => _108(settledSourceTxHash)]);
1290
+ }
1291
+ }, [onSourceTransactionObserved, settledSourceTxHash, sourceTxHashPending]);
1292
+ const sourceExplorerUrl = sourceExplorerHash ? explorerTxUrl(displaySourceChain, sourceExplorerHash) : null;
1228
1293
  const destExplorerUrl = destinationTxHash ? explorerTxUrl(targetChainId, destinationTxHash) : null;
1229
1294
  const sourceDisplay = (() => {
1230
- const resolved = _chunkBRYNGLDMcjs.resolveTokenDisplay.call(void 0, displaySourceToken, displaySourceChain, {
1295
+ const resolved = _chunkV2OBGLJDcjs.resolveTokenDisplay.call(void 0, displaySourceToken, displaySourceChain, {
1231
1296
  symbol: _nullishCoalesce(providedSourceSymbol, () => ( (displaySourceChain === "solana" ? "SOL" : "Token"))),
1232
1297
  decimals: providedSourceDecimals
1233
1298
  });
@@ -1237,10 +1302,10 @@ function ProcessingStep({
1237
1302
  };
1238
1303
  })();
1239
1304
  const sourceSymbol = sourceDisplay.symbol;
1240
- const formattedSentAmount = _nullishCoalesce(_nullishCoalesce(_chunkBRYNGLDMcjs.formatRawTokenAmount.call(void 0, displayAmount, sourceDisplay), () => ( // Not raw base units (e.g. a decimal string) — render the number as-is.
1241
- _chunkBRYNGLDMcjs.formatTokenAmount.call(void 0, Number(displayAmount), sourceDisplay.symbol))), () => ( displayAmount));
1305
+ const formattedSentAmount = _nullishCoalesce(_nullishCoalesce(_chunkV2OBGLJDcjs.formatRawTokenAmount.call(void 0, displayAmount, sourceDisplay), () => ( // Not raw base units (e.g. a decimal string) — render the number as-is.
1306
+ _chunkV2OBGLJDcjs.formatTokenAmount.call(void 0, Number(displayAmount), sourceDisplay.symbol))), () => ( displayAmount));
1242
1307
  const eventDestination = getEventDestinationDetails(lastEvent);
1243
- const targetDisplay = _chunkBRYNGLDMcjs.resolveTokenDisplay.call(void 0,
1308
+ const targetDisplay = _chunkV2OBGLJDcjs.resolveTokenDisplay.call(void 0,
1244
1309
  _nullishCoalesce(eventDestination.token, () => ( targetToken)),
1245
1310
  _nullishCoalesce(eventDestination.chainId, () => ( targetChainId)),
1246
1311
  // Dapp deposits default to USDC targets; mirror the source symbol last so
@@ -1248,7 +1313,7 @@ function ProcessingStep({
1248
1313
  { symbol: _nullishCoalesce(providedSourceSymbol, () => ( "USDC")) }
1249
1314
  );
1250
1315
  const targetSymbol = targetDisplay.symbol;
1251
- const formattedDestinationAmount = eventDestination.amount !== void 0 ? _chunkBRYNGLDMcjs.formatRawTokenAmount.call(void 0, eventDestination.amount, targetDisplay) : void 0;
1316
+ const formattedDestinationAmount = eventDestination.amount !== void 0 ? _chunkV2OBGLJDcjs.formatRawTokenAmount.call(void 0, eventDestination.amount, targetDisplay) : void 0;
1252
1317
  const amountUsdNumber = amountUsd !== void 0 && Number(amountUsd) > 0 ? Number(amountUsd) : void 0;
1253
1318
  const prices = useTokenPrices(service, [
1254
1319
  {
@@ -1263,17 +1328,17 @@ function ProcessingStep({
1263
1328
  }
1264
1329
  ]);
1265
1330
  const estimatedReceiveAmount = (() => {
1266
- const estimate = _chunkBRYNGLDMcjs.estimateReceiveAmount.call(void 0, {
1267
- sourceAmount: _chunkBRYNGLDMcjs.tokenAmountToNumber.call(void 0, displayAmount, sourceDisplay.decimals),
1331
+ const estimate = _chunkV2OBGLJDcjs.estimateReceiveAmount.call(void 0, {
1332
+ sourceAmount: _chunkV2OBGLJDcjs.tokenAmountToNumber.call(void 0, displayAmount, sourceDisplay.decimals),
1268
1333
  sourceSymbol: sourceDisplay.symbol,
1269
1334
  targetSymbol: targetDisplay.symbol,
1270
1335
  sourceAmountUsd: amountUsdNumber,
1271
- sourceTrusted: _chunkBRYNGLDMcjs.isRecognizedToken.call(void 0, displaySourceToken, displaySourceChain),
1336
+ sourceTrusted: _chunkV2OBGLJDcjs.isRecognizedToken.call(void 0, displaySourceToken, displaySourceChain),
1272
1337
  prices
1273
1338
  });
1274
- return estimate !== void 0 ? _chunkBRYNGLDMcjs.formatTokenAmount.call(void 0, estimate, targetDisplay.symbol) : void 0;
1339
+ return estimate !== void 0 ? _chunkV2OBGLJDcjs.formatTokenAmount.call(void 0, estimate, targetDisplay.symbol) : void 0;
1275
1340
  })();
1276
- const quotedReceive = quote ? _chunkBRYNGLDMcjs.formatQuotedReceive.call(void 0, quote.output, targetSymbol) : void 0;
1341
+ const quotedReceive = quote ? _chunkV2OBGLJDcjs.formatQuotedReceive.call(void 0, quote.output, targetSymbol) : void 0;
1277
1342
  const receiveDisplay = formattedDestinationAmount ? (
1278
1343
  // The delivered amount, once the bridge reports it — actual, not an
1279
1344
  // estimate, so it wins over the quote and carries no "~".
@@ -1287,12 +1352,12 @@ function ProcessingStep({
1287
1352
  if (sourceSymbol.toUpperCase() !== targetSymbol.toUpperCase()) {
1288
1353
  return void 0;
1289
1354
  }
1290
- const sentValue = _chunkBRYNGLDMcjs.tokenAmountToNumber.call(void 0, displayAmount, sourceDisplay.decimals);
1291
- const receivedValue = eventDestination.amount !== void 0 ? _chunkBRYNGLDMcjs.tokenAmountToNumber.call(void 0, eventDestination.amount, targetDisplay.decimals) : void 0;
1355
+ const sentValue = _chunkV2OBGLJDcjs.tokenAmountToNumber.call(void 0, displayAmount, sourceDisplay.decimals);
1356
+ const receivedValue = eventDestination.amount !== void 0 ? _chunkV2OBGLJDcjs.tokenAmountToNumber.call(void 0, eventDestination.amount, targetDisplay.decimals) : void 0;
1292
1357
  if (sentValue === void 0 || receivedValue === void 0 || sentValue <= receivedValue) {
1293
1358
  return void 0;
1294
1359
  }
1295
- const formatted = _chunkBRYNGLDMcjs.formatTokenAmount.call(void 0, sentValue - receivedValue, sourceSymbol);
1360
+ const formatted = _chunkV2OBGLJDcjs.formatTokenAmount.call(void 0, sentValue - receivedValue, sourceSymbol);
1296
1361
  if (formatted === void 0 || Number(formatted.replace(/,/g, "")) === 0) {
1297
1362
  return void 0;
1298
1363
  }
@@ -1304,13 +1369,13 @@ function ProcessingStep({
1304
1369
  const delayPhaseId = isProcessing && currentPhaseId && activePhaseElapsedMs >= SOFT_DELAY_MS[currentPhaseId] ? currentPhaseId : void 0;
1305
1370
  void delayPhaseId;
1306
1371
  void hasEscalatedDelay;
1307
- const sourceChainIcon = _chunkO7BCVQ6Lcjs.getChainIcon.call(void 0, displaySourceChain);
1308
- const targetChainIcon = _chunkO7BCVQ6Lcjs.getChainIcon.call(void 0, targetChainId);
1309
- const sourceChainName = _chunkO7BCVQ6Lcjs.getChainName.call(void 0, displaySourceChain);
1310
- const targetChainName = _chunkO7BCVQ6Lcjs.getChainName.call(void 0, targetChainId);
1372
+ const sourceChainIcon = _chunk4KCSH4T3cjs.getChainIcon.call(void 0, displaySourceChain);
1373
+ const targetChainIcon = _chunk4KCSH4T3cjs.getChainIcon.call(void 0, targetChainId);
1374
+ const sourceChainName = _chunk4KCSH4T3cjs.getChainName.call(void 0, displaySourceChain);
1375
+ const targetChainName = _chunk4KCSH4T3cjs.getChainName.call(void 0, targetChainId);
1311
1376
  const timerText = formatTimer(elapsedSeconds);
1312
- const feeSponsored = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _100 => _100.feeSponsored]), () => ( false));
1313
- const feeTooltip = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _101 => _101.feeTooltip]), () => ( (feeSponsored ? "Network fees are sponsored for this deposit." : "Network fees apply.")));
1377
+ const feeSponsored = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _109 => _109.feeSponsored]), () => ( false));
1378
+ const feeTooltip = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _110 => _110.feeTooltip]), () => ( (feeSponsored ? "Network fees are sponsored for this deposit." : "Network fees apply.")));
1314
1379
  const stateTitle = isComplete ? `${flowCapitalized} successful` : isFailed ? `${flowCapitalized} failed` : "Processing...";
1315
1380
  const handleRetry = _nullishCoalesce(onRetry, () => ( onNewDeposit));
1316
1381
  const headerContent = isComplete ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-body-header", children: [
@@ -1319,29 +1384,29 @@ function ProcessingStep({
1319
1384
  ] }) : isFailed ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-body-header", children: [
1320
1385
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FailedBadge, {}),
1321
1386
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rs-body-header-text", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "rs-body-header-title", children: stateTitle }) })
1322
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.BodyHeader, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.WalletIcon, {}), title: stateTitle });
1387
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.BodyHeader, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.WalletIcon, {}), title: stateTitle });
1323
1388
  if (isComplete && isSwappedOrder) {
1324
- const effectivePaymentMethod = _nullishCoalesce(_nullishCoalesce(_optionalChain([swappedContext, 'optionalAccess', _102 => _102.method]), () => ( _optionalChain([swappedFiatContext, 'optionalAccess', _103 => _103.paymentMethod]))), () => ( null));
1389
+ const effectivePaymentMethod = _nullishCoalesce(_nullishCoalesce(_optionalChain([swappedContext, 'optionalAccess', _111 => _111.method]), () => ( _optionalChain([swappedFiatContext, 'optionalAccess', _112 => _112.paymentMethod]))), () => ( null));
1325
1390
  const onrampMethod = effectivePaymentMethod ? formatPaymentMethod(effectivePaymentMethod) : null;
1326
- const onrampMethodIcon = _optionalChain([swappedContext, 'optionalAccess', _104 => _104.variant]) === "connect" && effectivePaymentMethod ? getExchangeLogoSrc(
1391
+ const onrampMethodIcon = _optionalChain([swappedContext, 'optionalAccess', _113 => _113.variant]) === "connect" && effectivePaymentMethod ? getExchangeLogoSrc(
1327
1392
  _nullishCoalesce(onrampMethod, () => ( effectivePaymentMethod)),
1328
1393
  effectivePaymentMethod
1329
1394
  ) : null;
1330
- const connectPaidAmount = _optionalChain([swappedContext, 'optionalAccess', _105 => _105.variant]) === "connect" ? `${formattedSentAmount} ${sourceSymbol}` : null;
1331
- const amountPaid = _nullishCoalesce(connectPaidAmount, () => ( (_optionalChain([swappedFiatContext, 'optionalAccess', _106 => _106.paidAmountUsd]) != null ? `$${swappedFiatContext.paidAmountUsd.toFixed(2)}` : null)));
1395
+ const connectPaidAmount = _optionalChain([swappedContext, 'optionalAccess', _114 => _114.variant]) === "connect" ? `${formattedSentAmount} ${sourceSymbol}` : null;
1396
+ const amountPaid = _nullishCoalesce(connectPaidAmount, () => ( (_optionalChain([swappedFiatContext, 'optionalAccess', _115 => _115.paidAmountUsd]) != null ? `$${swappedFiatContext.paidAmountUsd.toFixed(2)}` : null)));
1332
1397
  const depositedAmount = receiveDisplay;
1333
- const onrampFeeUsd = _nullishCoalesce(_optionalChain([swappedFiatContext, 'optionalAccess', _107 => _107.onrampFeeUsd]), () => ( null));
1398
+ const onrampFeeUsd = _nullishCoalesce(_optionalChain([swappedFiatContext, 'optionalAccess', _116 => _116.onrampFeeUsd]), () => ( null));
1334
1399
  const sponsoredFeeTooltip = "This fee is sponsored for this deposit.";
1335
1400
  const feesTooltip = feeSponsored ? "On-ramp fees are charged by the payment provider. Market and network fees are sponsored for this deposit." : "Fees include on-ramp, market, and network costs for this deposit.";
1336
1401
  const { rows: quoteFeeRows, chargeableUsd } = buildQuoteFeeRows(
1337
- _optionalChain([quote, 'optionalAccess', _108 => _108.fees, 'access', _109 => _109.breakdown]),
1402
+ _optionalChain([quote, 'optionalAccess', _117 => _117.fees, 'access', _118 => _118.breakdown]),
1338
1403
  sponsoredFeeTooltip
1339
1404
  );
1340
1405
  const feeRows = [];
1341
1406
  if (onrampFeeUsd != null) {
1342
1407
  feeRows.push({
1343
1408
  label: "On-ramp fee",
1344
- value: _chunkBRYNGLDMcjs.formatFeeUsd.call(void 0, onrampFeeUsd)
1409
+ value: _chunkV2OBGLJDcjs.formatFeeUsd.call(void 0, onrampFeeUsd)
1345
1410
  });
1346
1411
  }
1347
1412
  const hasFallbackFee = quoteFeeRows.length === 0 && quotedFeeAmount !== void 0 && Number.isFinite(Number(quotedFeeAmount));
@@ -1350,13 +1415,13 @@ function ProcessingStep({
1350
1415
  } else if (hasFallbackFee) {
1351
1416
  feeRows.push({
1352
1417
  label: "Network fee",
1353
- value: _chunkBRYNGLDMcjs.formatFeeUsd.call(void 0, Number(quotedFeeAmount)),
1418
+ value: _chunkV2OBGLJDcjs.formatFeeUsd.call(void 0, Number(quotedFeeAmount)),
1354
1419
  strike: feeSponsored,
1355
1420
  tooltip: feeSponsored ? sponsoredFeeTooltip : void 0
1356
1421
  });
1357
1422
  }
1358
1423
  const fallbackChargeableUsd = hasFallbackFee && !feeSponsored ? Number(quotedFeeAmount) : 0;
1359
- const feesTotal = feeRows.length > 0 ? _chunkBRYNGLDMcjs.formatFeeUsd.call(void 0,
1424
+ const feesTotal = feeRows.length > 0 ? _chunkV2OBGLJDcjs.formatFeeUsd.call(void 0,
1360
1425
  (_nullishCoalesce(onrampFeeUsd, () => ( 0))) + chargeableUsd + fallbackChargeableUsd
1361
1426
  ) : null;
1362
1427
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1372,7 +1437,7 @@ function ProcessingStep({
1372
1437
  feesTooltip,
1373
1438
  newLabel: `New ${flowNoun}`,
1374
1439
  onNewDeposit,
1375
- onClose
1440
+ onClose: onClose ? () => onClose("success_done") : void 0
1376
1441
  }
1377
1442
  );
1378
1443
  }
@@ -1384,7 +1449,7 @@ function ProcessingStep({
1384
1449
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Source chain" }),
1385
1450
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
1386
1451
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: sourceChainName }),
1387
- sourceChainIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.CdnIcon, { src: sourceChainIcon }) }),
1452
+ sourceChainIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.CdnIcon, { src: sourceChainIcon }) }),
1388
1453
  sourceExplorerUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1389
1454
  "a",
1390
1455
  {
@@ -1393,7 +1458,7 @@ function ProcessingStep({
1393
1458
  rel: "noopener noreferrer",
1394
1459
  className: "rs-review-detail-link",
1395
1460
  "aria-label": "View source transaction",
1396
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.ExternalLinkIcon, {})
1461
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.ExternalLinkIcon, {})
1397
1462
  }
1398
1463
  )
1399
1464
  ] })
@@ -1402,7 +1467,7 @@ function ProcessingStep({
1402
1467
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Destination chain" }),
1403
1468
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
1404
1469
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: targetChainName }),
1405
- targetChainIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.CdnIcon, { src: targetChainIcon }) }),
1470
+ targetChainIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.CdnIcon, { src: targetChainIcon }) }),
1406
1471
  destExplorerUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1407
1472
  "a",
1408
1473
  {
@@ -1411,7 +1476,7 @@ function ProcessingStep({
1411
1476
  rel: "noopener noreferrer",
1412
1477
  className: "rs-review-detail-link",
1413
1478
  "aria-label": "View destination transaction",
1414
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.ExternalLinkIcon, {})
1479
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.ExternalLinkIcon, {})
1415
1480
  }
1416
1481
  )
1417
1482
  ] })
@@ -1421,7 +1486,7 @@ function ProcessingStep({
1421
1486
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-value", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Ticker, { value: timerText }) })
1422
1487
  ] }),
1423
1488
  isSwappedOrder ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1424
- _optionalChain([swappedFiatContext, 'optionalAccess', _110 => _110.paidAmountUsd]) != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
1489
+ _optionalChain([swappedFiatContext, 'optionalAccess', _119 => _119.paidAmountUsd]) != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
1425
1490
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "You pay" }),
1426
1491
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
1427
1492
  "$",
@@ -1433,7 +1498,7 @@ function ProcessingStep({
1433
1498
  ] })
1434
1499
  ] })
1435
1500
  ] }),
1436
- _optionalChain([swappedFiatContext, 'optionalAccess', _111 => _111.onrampFeeUsd]) != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
1501
+ _optionalChain([swappedFiatContext, 'optionalAccess', _120 => _120.onrampFeeUsd]) != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
1437
1502
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "On-ramp fee" }),
1438
1503
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
1439
1504
  "$",
@@ -1448,7 +1513,7 @@ function ProcessingStep({
1448
1513
  " ",
1449
1514
  sourceSymbol
1450
1515
  ] }),
1451
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.TokenIcon, { symbol: sourceSymbol }) })
1516
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.TokenIcon, { symbol: sourceSymbol }) })
1452
1517
  ] })
1453
1518
  ] })
1454
1519
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
@@ -1459,14 +1524,14 @@ function ProcessingStep({
1459
1524
  " ",
1460
1525
  sourceSymbol
1461
1526
  ] }),
1462
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.TokenIcon, { symbol: sourceSymbol }) })
1527
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.TokenIcon, { symbol: sourceSymbol }) })
1463
1528
  ] })
1464
1529
  ] }),
1465
1530
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
1466
1531
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: isProcessing ? "Receive" : "Received" }),
1467
1532
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
1468
1533
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: receiveDisplay }),
1469
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.TokenIcon, { symbol: targetSymbol }) })
1534
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.TokenIcon, { symbol: targetSymbol }) })
1470
1535
  ] })
1471
1536
  ] }),
1472
1537
  isFailed && balanceAfterUsd !== void 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
@@ -1495,12 +1560,12 @@ function ProcessingStep({
1495
1560
  {
1496
1561
  className: "rs-review-detail-info",
1497
1562
  "aria-label": "Fee info",
1498
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.InfoIcon, {})
1563
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.InfoIcon, {})
1499
1564
  }
1500
1565
  ) })
1501
1566
  ] })
1502
1567
  ] }) : (() => {
1503
- const { display, struck } = _chunkBRYNGLDMcjs.quoteFeeRow.call(void 0, _optionalChain([quote, 'optionalAccess', _112 => _112.fees]));
1568
+ const { display, struck } = _chunkV2OBGLJDcjs.quoteFeeRow.call(void 0, _optionalChain([quote, 'optionalAccess', _121 => _121.fees]));
1504
1569
  if (display !== null) {
1505
1570
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
1506
1571
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Fees" }),
@@ -1531,9 +1596,9 @@ function ProcessingStep({
1531
1596
  ] });
1532
1597
  })()
1533
1598
  ] }),
1534
- isFailed && failureMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.Callout, { variant: "error", children: failureMessage }),
1599
+ isFailed && failureMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.Callout, { variant: "error", children: failureMessage }),
1535
1600
  isProcessing && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1536
- _chunkBRYNGLDMcjs.Button,
1601
+ _chunkV2OBGLJDcjs.Button,
1537
1602
  {
1538
1603
  fullWidth: true,
1539
1604
  disabled: true,
@@ -1543,18 +1608,26 @@ function ProcessingStep({
1543
1608
  }
1544
1609
  ),
1545
1610
  isComplete && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-screen-button-row", children: [
1546
- onNewDeposit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBRYNGLDMcjs.Button, { variant: "outline", onClick: onNewDeposit, fullWidth: true, children: [
1611
+ onNewDeposit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkV2OBGLJDcjs.Button, { variant: "outline", onClick: onNewDeposit, fullWidth: true, children: [
1547
1612
  "New ",
1548
1613
  flowNoun
1549
1614
  ] }),
1550
- onClose && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.Button, { onClick: onClose, fullWidth: true, children: "Done" })
1615
+ onClose && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.Button, { onClick: () => onClose("success_done"), fullWidth: true, children: "Done" })
1551
1616
  ] }),
1552
1617
  isFailed && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-screen-button-row", children: [
1553
- onClose && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.Button, { variant: "outline", onClick: onClose, fullWidth: true, children: "Cancel" }),
1554
- handleRetry && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.Button, { onClick: handleRetry, fullWidth: true, children: "Try again" })
1618
+ onClose && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1619
+ _chunkV2OBGLJDcjs.Button,
1620
+ {
1621
+ variant: "outline",
1622
+ onClick: () => onClose("failure_cancel"),
1623
+ fullWidth: true,
1624
+ children: "Cancel"
1625
+ }
1626
+ ),
1627
+ handleRetry && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.Button, { onClick: handleRetry, fullWidth: true, children: "Try again" })
1555
1628
  ] })
1556
1629
  ] }),
1557
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBRYNGLDMcjs.PoweredBy, {})
1630
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV2OBGLJDcjs.PoweredBy, {})
1558
1631
  ] });
1559
1632
  }
1560
1633
 
@@ -1585,13 +1658,13 @@ function normalizeKeyToken(value) {
1585
1658
  }
1586
1659
  var SOLANA_ADDRESS_PATTERN = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/;
1587
1660
  function recipientMatchesTarget(recipient, targetChain) {
1588
- return _chunkO7BCVQ6Lcjs.targetChainToCaip2.call(void 0, targetChain).startsWith("solana:") ? SOLANA_ADDRESS_PATTERN.test(recipient) : _viem.isAddress.call(void 0, recipient);
1661
+ return _chunk4KCSH4T3cjs.targetChainToCaip2.call(void 0, targetChain).startsWith("solana:") ? SOLANA_ADDRESS_PATTERN.test(recipient) : _viem.isAddress.call(void 0, recipient);
1589
1662
  }
1590
1663
  function deriveAccountSalt(input) {
1591
1664
  return _viem.keccak256.call(void 0,
1592
1665
  _viem.concat.call(void 0, [
1593
1666
  _viem.keccak256.call(void 0, _viem.toHex.call(void 0, _nullishCoalesce(normalizeKeyToken(input.recipient), () => ( "")))),
1594
- _viem.keccak256.call(void 0, _viem.toHex.call(void 0, _chunkO7BCVQ6Lcjs.targetChainToCaip2.call(void 0, input.targetChain))),
1667
+ _viem.keccak256.call(void 0, _viem.toHex.call(void 0, _chunk4KCSH4T3cjs.targetChainToCaip2.call(void 0, input.targetChain))),
1595
1668
  _viem.keccak256.call(void 0, _viem.toHex.call(void 0, _nullishCoalesce(normalizeKeyToken(input.targetToken), () => ( ""))))
1596
1669
  ])
1597
1670
  );
@@ -1623,7 +1696,7 @@ var setupRequestDedupe = /* @__PURE__ */ new Map();
1623
1696
  function readDedupedAccountSetupResult(requestKey) {
1624
1697
  const now = Date.now();
1625
1698
  const existing = setupRequestDedupe.get(requestKey);
1626
- if (_optionalChain([existing, 'optionalAccess', _113 => _113.settled]) && existing.expiresAt > now && existing.result) {
1699
+ if (_optionalChain([existing, 'optionalAccess', _122 => _122.settled]) && existing.expiresAt > now && existing.result) {
1627
1700
  return existing.result;
1628
1701
  }
1629
1702
  return null;
@@ -1645,7 +1718,7 @@ async function runAccountSetup(input, deps) {
1645
1718
  }
1646
1719
  try {
1647
1720
  const salt = deriveAccountSalt(input);
1648
- _chunkBRYNGLDMcjs.debugLog.call(void 0, debug, "account-setup", "setup:start", {
1721
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, debug, "account-setup", "setup:start", {
1649
1722
  salt,
1650
1723
  recipient: input.recipient,
1651
1724
  targetChain: input.targetChain,
@@ -1654,10 +1727,10 @@ async function runAccountSetup(input, deps) {
1654
1727
  const result = await service.registerManagedAccount({
1655
1728
  salt,
1656
1729
  target: {
1657
- chain: _chunkO7BCVQ6Lcjs.targetChainToCaip2.call(void 0, input.targetChain),
1730
+ chain: _chunk4KCSH4T3cjs.targetChainToCaip2.call(void 0, input.targetChain),
1658
1731
  token: input.targetToken,
1659
1732
  recipient: input.recipient,
1660
- ..._optionalChain([input, 'access', _114 => _114.outputTokenRules, 'optionalAccess', _115 => _115.length]) && {
1733
+ ..._optionalChain([input, 'access', _123 => _123.outputTokenRules, 'optionalAccess', _124 => _124.length]) && {
1661
1734
  outputTokenRules: input.outputTokenRules
1662
1735
  },
1663
1736
  ...input.rejectUnmapped != null && {
@@ -1671,7 +1744,7 @@ async function runAccountSetup(input, deps) {
1671
1744
  cacheKey
1672
1745
  };
1673
1746
  } catch (error) {
1674
- _chunkBRYNGLDMcjs.debugError.call(void 0, debug, "account-setup", "setup:failed", error, {
1747
+ _chunkV2OBGLJDcjs.debugError.call(void 0, debug, "account-setup", "setup:failed", error, {
1675
1748
  recipient: input.recipient
1676
1749
  });
1677
1750
  if (error instanceof SetupError) throw error;
@@ -1682,7 +1755,7 @@ function runAccountSetupDeduped(input, deps, requestKey) {
1682
1755
  const now = Date.now();
1683
1756
  const existing = setupRequestDedupe.get(requestKey);
1684
1757
  if (existing && (!existing.settled || existing.expiresAt > now)) {
1685
- _chunkBRYNGLDMcjs.debugLog.call(void 0, deps.debug, "account-setup", "setup:dedupe-hit", {
1758
+ _chunkV2OBGLJDcjs.debugLog.call(void 0, deps.debug, "account-setup", "setup:dedupe-hit", {
1686
1759
  recipient: input.recipient,
1687
1760
  forceRegister: _nullishCoalesce(input.forceRegister, () => ( false))
1688
1761
  });
@@ -1765,4 +1838,7 @@ function mapError(error) {
1765
1838
 
1766
1839
 
1767
1840
 
1768
- exports.getExchangeLogoSrc = getExchangeLogoSrc; exports.getExchangeLogo = getExchangeLogo; exports.Tooltip = Tooltip; exports.getEventTxHash = getEventTxHash; exports.getEventSourceDetails = getEventSourceDetails; exports.isDepositEvent = isDepositEvent; exports.isFailedEvent = isFailedEvent; exports.txRefsMatch = txRefsMatch; exports.failureMessageForEvent = failureMessageForEvent; exports.fetchTokenPriceUsd = fetchTokenPriceUsd; exports.useTokenPrices = useTokenPrices; exports.ProcessingStep = ProcessingStep; exports.SetupError = SetupError; exports.deriveAccountSalt = deriveAccountSalt; exports.computeRequestKey = computeRequestKey; exports.computeCacheKey = computeCacheKey; exports.computeIsCacheable = computeIsCacheable; exports.readDedupedAccountSetupResult = readDedupedAccountSetupResult; exports.runAccountSetupDeduped = runAccountSetupDeduped; exports.warnRemovedProps = warnRemovedProps;
1841
+
1842
+
1843
+
1844
+ exports.getExchangeLogoSrc = getExchangeLogoSrc; exports.getExchangeLogo = getExchangeLogo; exports.Tooltip = Tooltip; exports.markSubmissionUncertain = markSubmissionUncertain; exports.isSubmissionUncertain = isSubmissionUncertain; exports.getEventTxHash = getEventTxHash; exports.getEventSourceDetails = getEventSourceDetails; exports.isDepositEvent = isDepositEvent; exports.isFailedEvent = isFailedEvent; exports.txRefsMatch = txRefsMatch; exports.failureMessageForEvent = failureMessageForEvent; exports.fetchTokenPriceUsd = fetchTokenPriceUsd; exports.useTokenPrices = useTokenPrices; exports.ProcessingStep = ProcessingStep; exports.SetupError = SetupError; exports.deriveAccountSalt = deriveAccountSalt; exports.computeRequestKey = computeRequestKey; exports.computeCacheKey = computeCacheKey; exports.computeIsCacheable = computeIsCacheable; exports.readDedupedAccountSetupResult = readDedupedAccountSetupResult; exports.runAccountSetupDeduped = runAccountSetupDeduped; exports.warnRemovedProps = warnRemovedProps; exports.analyticsTargetProperties = analyticsTargetProperties;