@rhinestone/deposit-modal 0.3.0-alpha.12 → 0.3.0-alpha.14

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 (31) hide show
  1. package/README.md +59 -0
  2. package/dist/{DepositModalReown-EC4DJ3EC.cjs → DepositModalReown-4I47KSPN.cjs} +6 -6
  3. package/dist/{DepositModalReown-QOTUF4JC.mjs → DepositModalReown-DIUIB3MU.mjs} +3 -3
  4. package/dist/{QRCode-KG47KTGX.cjs → QRCode-5DXFNKI2.cjs} +1 -1
  5. package/dist/{QRCode-YJ3EGWQS.mjs → QRCode-WUC652SH.mjs} +1 -1
  6. package/dist/{WithdrawModalReown-QEQPCSWT.mjs → WithdrawModalReown-WRUEALDP.mjs} +3 -3
  7. package/dist/{WithdrawModalReown-Z5JVENP6.cjs → WithdrawModalReown-Y3NRAKXJ.cjs} +6 -6
  8. package/dist/{chunk-YI63OMXN.cjs → chunk-2NUXDEEO.cjs} +57 -57
  9. package/dist/{chunk-I5G5ULRP.cjs → chunk-3CYGTYMY.cjs} +1322 -320
  10. package/dist/{chunk-WVE3JN3C.mjs → chunk-4ZN726P5.mjs} +345 -54
  11. package/dist/{chunk-QXIJLRKC.mjs → chunk-JTMGFWXO.mjs} +1 -1
  12. package/dist/{chunk-FGVSNARE.cjs → chunk-JTULAFMU.cjs} +2 -2
  13. package/dist/{chunk-2TWQGPPB.cjs → chunk-N4XRQPVA.cjs} +374 -83
  14. package/dist/{chunk-7MZNQ4C2.mjs → chunk-VD4WTEHP.mjs} +2 -2
  15. package/dist/{chunk-HR6BABPX.mjs → chunk-XG474KUR.mjs} +1433 -431
  16. package/dist/deposit.cjs +3 -3
  17. package/dist/deposit.d.cts +2 -2
  18. package/dist/deposit.d.ts +2 -2
  19. package/dist/deposit.mjs +2 -2
  20. package/dist/index.cjs +4 -4
  21. package/dist/index.d.cts +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.mjs +3 -3
  24. package/dist/styles.css +525 -66
  25. package/dist/{types-D6wrO4Ow.d.cts → types-C8i2ebY1.d.cts} +25 -0
  26. package/dist/{types-D6wrO4Ow.d.ts → types-C8i2ebY1.d.ts} +25 -0
  27. package/dist/withdraw.cjs +3 -3
  28. package/dist/withdraw.d.cts +2 -2
  29. package/dist/withdraw.d.ts +2 -2
  30. package/dist/withdraw.mjs +2 -2
  31. package/package.json +3 -3
@@ -62,14 +62,14 @@ function Modal({
62
62
  }
63
63
  }, [isOpen]);
64
64
  _react.useEffect.call(void 0, () => {
65
- if (isOpen) {
65
+ if (isOpen && !inline) {
66
66
  const originalOverflow = document.body.style.overflow;
67
67
  document.body.style.overflow = "hidden";
68
68
  return () => {
69
69
  document.body.style.overflow = originalOverflow;
70
70
  };
71
71
  }
72
- }, [isOpen]);
72
+ }, [isOpen, inline]);
73
73
  const handleKeyDown = _react.useCallback.call(void 0,
74
74
  (event) => {
75
75
  if (event.key === "Escape") {
@@ -162,6 +162,9 @@ Modal.displayName = "Modal";
162
162
 
163
163
 
164
164
 
165
+
166
+
167
+
165
168
 
166
169
 
167
170
 
@@ -207,6 +210,9 @@ var PercentIcon = _lucidereact.Percent;
207
210
  var ClockIcon = _lucidereact.Clock;
208
211
  var PlusCircleIcon = _lucidereact.CirclePlus;
209
212
  var CircleArrowOutUpLeftIcon = _lucidereact.CircleArrowOutUpLeft;
213
+ var CardIcon = _lucidereact.CreditCard;
214
+ var BankIcon = _lucidereact.Landmark;
215
+ var AppleIcon = _lucidereact.Apple;
210
216
 
211
217
  // src/core/useLatestRef.ts
212
218
 
@@ -972,6 +978,150 @@ function createDepositService(baseUrl, options) {
972
978
  debugError(debug, scope, "fetchPrices:error", err);
973
979
  return {};
974
980
  }
981
+ },
982
+ async getSwappedWidgetUrl(params) {
983
+ const url = apiUrl("/onramp/swapped/widget-url");
984
+ debugLog(debug, scope, "getSwappedWidgetUrl:request", {
985
+ smartAccount: shortRef(params.smartAccount),
986
+ method: params.method
987
+ });
988
+ const response = await fetch(url, {
989
+ method: "POST",
990
+ headers: { "Content-Type": "application/json" },
991
+ body: JSON.stringify(params)
992
+ });
993
+ if (!response.ok) {
994
+ const error = await response.json().catch(() => ({ error: "Unknown error" }));
995
+ debugError(debug, scope, "getSwappedWidgetUrl:failed", error, {
996
+ status: response.status
997
+ });
998
+ throw new Error(
999
+ error.error || `Swapped widget URL failed: ${response.status}`
1000
+ );
1001
+ }
1002
+ const body = await response.json();
1003
+ if (typeof body.url !== "string" || typeof body.currencyCode !== "string" || typeof body.externalCustomerId !== "string") {
1004
+ throw new Error("Swapped widget URL: malformed response");
1005
+ }
1006
+ return {
1007
+ url: body.url,
1008
+ currencyCode: body.currencyCode,
1009
+ sandbox: body.sandbox === true,
1010
+ externalCustomerId: body.externalCustomerId,
1011
+ expiresAt: body.expiresAt
1012
+ };
1013
+ },
1014
+ async getSwappedConnectUrl(params) {
1015
+ const url = apiUrl("/onramp/swapped/connect-url");
1016
+ debugLog(debug, scope, "getSwappedConnectUrl:request", {
1017
+ smartAccount: shortRef(params.smartAccount),
1018
+ connection: params.connection
1019
+ });
1020
+ const response = await fetch(url, {
1021
+ method: "POST",
1022
+ headers: { "Content-Type": "application/json" },
1023
+ body: JSON.stringify(params)
1024
+ });
1025
+ if (!response.ok) {
1026
+ const error = await response.json().catch(() => ({ error: "Unknown error" }));
1027
+ debugError(debug, scope, "getSwappedConnectUrl:failed", error, {
1028
+ status: response.status
1029
+ });
1030
+ throw new Error(
1031
+ error.error || `Swapped Connect URL failed: ${response.status}`
1032
+ );
1033
+ }
1034
+ const body = await response.json();
1035
+ if (typeof body.url !== "string" || typeof body.currencyCode !== "string" || typeof body.externalCustomerId !== "string") {
1036
+ throw new Error("Swapped Connect URL: malformed response");
1037
+ }
1038
+ return {
1039
+ url: body.url,
1040
+ currencyCode: body.currencyCode,
1041
+ sandbox: body.sandbox === true,
1042
+ externalCustomerId: body.externalCustomerId,
1043
+ expiresAt: body.expiresAt
1044
+ };
1045
+ },
1046
+ async getSwappedConnectExchanges() {
1047
+ const url = apiUrl("/onramp/swapped/connect-exchanges");
1048
+ debugLog(debug, scope, "getSwappedConnectExchanges:request");
1049
+ const response = await fetch(url, {
1050
+ method: "GET",
1051
+ headers: { "Content-Type": "application/json" },
1052
+ cache: "no-store"
1053
+ });
1054
+ if (!response.ok) {
1055
+ const error = await response.json().catch(() => ({ error: "Unknown error" }));
1056
+ debugError(debug, scope, "getSwappedConnectExchanges:failed", error, {
1057
+ status: response.status
1058
+ });
1059
+ throw new Error(
1060
+ error.error || `Swapped Connect exchanges failed: ${response.status}`
1061
+ );
1062
+ }
1063
+ const body = await response.json();
1064
+ const rawExchanges = Array.isArray(body.exchanges) ? body.exchanges : null;
1065
+ const exchanges = [];
1066
+ let hasMalformedExchange = rawExchanges === null;
1067
+ for (const exchange of _nullishCoalesce(rawExchanges, () => ( []))) {
1068
+ if (!exchange || typeof exchange !== "object") {
1069
+ hasMalformedExchange = true;
1070
+ continue;
1071
+ }
1072
+ const raw = exchange;
1073
+ const connection = typeof raw.connection === "string" ? raw.connection : "";
1074
+ const name = typeof raw.name === "string" ? raw.name : "";
1075
+ const logoUrl = typeof raw.logoUrl === "string" || raw.logoUrl === null ? raw.logoUrl : null;
1076
+ if (!connection || !name) {
1077
+ hasMalformedExchange = true;
1078
+ continue;
1079
+ }
1080
+ exchanges.push({ connection, name, logoUrl });
1081
+ }
1082
+ if (hasMalformedExchange || typeof body.fetchedAt !== "string" || typeof body.expiresAt !== "string") {
1083
+ throw new Error("Swapped Connect exchanges: malformed response");
1084
+ }
1085
+ return {
1086
+ exchanges,
1087
+ fetchedAt: body.fetchedAt,
1088
+ expiresAt: body.expiresAt,
1089
+ stale: body.stale === true ? true : void 0
1090
+ };
1091
+ },
1092
+ async fetchSwappedOrderStatus(smartAccount) {
1093
+ const url = apiUrl(
1094
+ `/onramp/swapped/status/${encodeURIComponent(smartAccount)}`
1095
+ );
1096
+ const response = await fetch(url, {
1097
+ method: "GET",
1098
+ headers: { "Content-Type": "application/json" },
1099
+ cache: "no-store"
1100
+ });
1101
+ if (!response.ok) return null;
1102
+ let body = null;
1103
+ try {
1104
+ body = await response.json();
1105
+ } catch (e3) {
1106
+ return null;
1107
+ }
1108
+ if (!body || body.ok !== true) return null;
1109
+ const status = typeof body.status === "string" ? body.status : null;
1110
+ const orderId = typeof body.orderId === "string" ? body.orderId : null;
1111
+ if (!status || !orderId) return null;
1112
+ const numericOrNull = (v) => typeof v === "number" && Number.isFinite(v) ? v : null;
1113
+ return {
1114
+ orderId,
1115
+ status,
1116
+ orderCrypto: typeof body.orderCrypto === "string" ? body.orderCrypto : null,
1117
+ orderCryptoAmount: typeof body.orderCryptoAmount === "string" ? body.orderCryptoAmount : null,
1118
+ transactionId: typeof body.transactionId === "string" ? body.transactionId : null,
1119
+ receivedAt: typeof body.receivedAt === "string" ? body.receivedAt : null,
1120
+ paidAmountUsd: numericOrNull(body.paidAmountUsd),
1121
+ paidAmountEur: numericOrNull(body.paidAmountEur),
1122
+ onrampFeeUsd: numericOrNull(body.onrampFeeUsd),
1123
+ paymentMethod: typeof body.paymentMethod === "string" ? body.paymentMethod : null
1124
+ };
975
1125
  }
976
1126
  };
977
1127
  }
@@ -1833,6 +1983,11 @@ function formatBalanceUsd(value) {
1833
1983
  if (!Number.isFinite(value) || value <= 0) return "$0.00";
1834
1984
  return `$${value.toFixed(2)}`;
1835
1985
  }
1986
+ function fiatIcon(name) {
1987
+ if (name === "apple") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AppleIcon, {});
1988
+ if (name === "bank") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BankIcon, {});
1989
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardIcon, {});
1990
+ }
1836
1991
  function shorten(addr) {
1837
1992
  return addr.length > 12 ? `${addr.slice(0, 6)}...${addr.slice(-4)}` : addr;
1838
1993
  }
@@ -1873,6 +2028,10 @@ function ConnectStep({
1873
2028
  onSelectTransferCrypto,
1874
2029
  transferCryptoState,
1875
2030
  transferCryptoErrorReason,
2031
+ onSelectPayWithCard,
2032
+ fiatPaymentMethods,
2033
+ onSelectFiatMethod,
2034
+ onSelectFundFromExchange,
1876
2035
  onRequestConnect,
1877
2036
  onConnect,
1878
2037
  onDisconnect,
@@ -1904,11 +2063,36 @@ function ConnectStep({
1904
2063
  {
1905
2064
  leading: TRANSFER_CRYPTO_LEADING,
1906
2065
  title: "Transfer crypto",
1907
- subtitle: transferCryptoState === "loading" ? "Preparing\u2026" : transferCryptoState === "error" ? _nullishCoalesce(transferCryptoErrorReason, () => ( "Couldn't prepare account \u2014 tap to retry")) : "Instant - No limit",
2066
+ subtitle: transferCryptoState === "error" ? _nullishCoalesce(transferCryptoErrorReason, () => ( "Couldn't prepare account \u2014 tap to retry")) : "Instant - No limit",
1908
2067
  meta: CHAIN_BADGE_META,
1909
- onClick: onSelectTransferCrypto,
1910
- disabled: transferCryptoState === "loading",
1911
- trailing: transferCryptoState === "loading" ? SMALL_SPINNER : void 0
2068
+ onClick: onSelectTransferCrypto
2069
+ }
2070
+ ),
2071
+ fiatPaymentMethods && fiatPaymentMethods.length > 0 && onSelectFiatMethod ? fiatPaymentMethods.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2072
+ ListRow,
2073
+ {
2074
+ leading: fiatIcon(opt.icon),
2075
+ title: opt.label,
2076
+ subtitle: opt.sublabel,
2077
+ onClick: () => onSelectFiatMethod(opt.method)
2078
+ },
2079
+ opt.method
2080
+ )) : onSelectPayWithCard && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2081
+ ListRow,
2082
+ {
2083
+ leading: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardIcon, {}),
2084
+ title: "Pay with Card",
2085
+ subtitle: "Buy crypto with card or bank",
2086
+ onClick: onSelectPayWithCard
2087
+ }
2088
+ ),
2089
+ onSelectFundFromExchange && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2090
+ ListRow,
2091
+ {
2092
+ leading: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BankIcon, {}),
2093
+ title: "Fund from Exchange",
2094
+ subtitle: "Use Coinbase, Binance, MetaMask\u2026",
2095
+ onClick: onSelectFundFromExchange
1912
2096
  }
1913
2097
  ),
1914
2098
  rows.map((row) => {
@@ -2271,6 +2455,9 @@ function getEventSourceDetails(event) {
2271
2455
  function isDepositEvent(event) {
2272
2456
  return _optionalChain([event, 'optionalAccess', _101 => _101.type]) === "deposit-received" || _optionalChain([event, 'optionalAccess', _102 => _102.type]) === "bridge-started" || _optionalChain([event, 'optionalAccess', _103 => _103.type]) === "bridge-complete" || _optionalChain([event, 'optionalAccess', _104 => _104.type]) === "bridge-failed" || _optionalChain([event, 'optionalAccess', _105 => _105.type]) === "post-bridge-swap-complete" || _optionalChain([event, 'optionalAccess', _106 => _106.type]) === "post-bridge-swap-failed" || _optionalChain([event, 'optionalAccess', _107 => _107.type]) === "error";
2273
2457
  }
2458
+ function isFailedEvent(event) {
2459
+ return _optionalChain([event, 'optionalAccess', _108 => _108.type]) === "bridge-failed" || _optionalChain([event, 'optionalAccess', _109 => _109.type]) === "post-bridge-swap-failed" || _optionalChain([event, 'optionalAccess', _110 => _110.type]) === "error";
2460
+ }
2274
2461
  function isHexString(value) {
2275
2462
  return value.startsWith("0x") || value.startsWith("0X");
2276
2463
  }
@@ -2280,6 +2467,41 @@ function txRefsMatch(a, b) {
2280
2467
  }
2281
2468
  return a === b;
2282
2469
  }
2470
+ function formatBridgeFailedMessage(event) {
2471
+ const eventData = _nullishCoalesce(_optionalChain([event, 'optionalAccess', _111 => _111.data]), () => ( {}));
2472
+ const code = typeof eventData.errorCode === "string" ? eventData.errorCode : void 0;
2473
+ const backendMessage = typeof eventData.message === "string" ? eventData.message.trim() : "";
2474
+ function toUserFacingFailure(raw) {
2475
+ const lower = raw.toLowerCase();
2476
+ if (lower.includes("insufficient funds")) {
2477
+ return "Deposit was received, but processing could not continue due to insufficient funds. Please retry.";
2478
+ }
2479
+ if (lower.includes("no valid quote available")) {
2480
+ return "No bridge route is currently available for this transfer. Please try again shortly.";
2481
+ }
2482
+ if (lower.includes("simulation failed")) {
2483
+ return "Transfer processing failed during simulation. Please retry.";
2484
+ }
2485
+ if (raw.length > 220) {
2486
+ return "Transfer processing failed. Please retry.";
2487
+ }
2488
+ return raw;
2489
+ }
2490
+ if (backendMessage.length > 0) {
2491
+ return { message: toUserFacingFailure(backendMessage), code };
2492
+ }
2493
+ if (code) {
2494
+ return { message: `Bridge failed (${code})`, code };
2495
+ }
2496
+ return { message: "Bridge failed" };
2497
+ }
2498
+ function failureMessageForEvent(event) {
2499
+ if (_optionalChain([event, 'optionalAccess', _112 => _112.type]) === "error") {
2500
+ const message = isRecord(event.data) ? asString(event.data.message) : void 0;
2501
+ return _nullishCoalesce(message, () => ( "Unknown error"));
2502
+ }
2503
+ return formatBridgeFailedMessage(event).message;
2504
+ }
2283
2505
 
2284
2506
  // src/components/steps/ProcessingStep.tsx
2285
2507
 
@@ -2353,6 +2575,24 @@ var SOFT_DELAY_MS = {
2353
2575
  bridging: 4 * 60 * 1e3
2354
2576
  };
2355
2577
  var PHASE_TIMINGS_PREFIX = "rhinestone:phase-timings";
2578
+ var STABLECOIN_SYMBOLS = /* @__PURE__ */ new Set([
2579
+ "USDC",
2580
+ "USDT",
2581
+ "DAI",
2582
+ "FRAX",
2583
+ "PYUSD",
2584
+ "USDP",
2585
+ "TUSD",
2586
+ "GUSD",
2587
+ "USDS",
2588
+ "LUSD",
2589
+ "BUSD",
2590
+ "USDE"
2591
+ ]);
2592
+ function maxFractionDigitsFor(symbol) {
2593
+ if (!symbol) return 6;
2594
+ return STABLECOIN_SYMBOLS.has(symbol.toUpperCase()) ? 3 : 6;
2595
+ }
2356
2596
  function loadPhaseTimings(txHash) {
2357
2597
  if (typeof window === "undefined") return null;
2358
2598
  try {
@@ -2361,7 +2601,7 @@ function loadPhaseTimings(txHash) {
2361
2601
  const parsed = JSON.parse(raw);
2362
2602
  if (typeof parsed.startedAt !== "number") return null;
2363
2603
  return parsed;
2364
- } catch (e3) {
2604
+ } catch (e4) {
2365
2605
  return null;
2366
2606
  }
2367
2607
  }
@@ -2372,7 +2612,7 @@ function savePhaseTimings(txHash, timings) {
2372
2612
  `${PHASE_TIMINGS_PREFIX}:${txHash}`,
2373
2613
  JSON.stringify(timings)
2374
2614
  );
2375
- } catch (e4) {
2615
+ } catch (e5) {
2376
2616
  }
2377
2617
  }
2378
2618
  function isEventForTx(event, txHash) {
@@ -2380,45 +2620,13 @@ function isEventForTx(event, txHash) {
2380
2620
  if (!eventTxHash) return false;
2381
2621
  return txRefsMatch(eventTxHash, txHash);
2382
2622
  }
2383
- function formatBridgeFailedMessage(event) {
2384
- const eventData = _nullishCoalesce(_optionalChain([event, 'optionalAccess', _108 => _108.data]), () => ( {}));
2385
- const code = typeof eventData.errorCode === "string" ? eventData.errorCode : void 0;
2386
- const backendMessage = typeof eventData.message === "string" ? eventData.message.trim() : "";
2387
- function toUserFacingFailure(raw) {
2388
- const lower = raw.toLowerCase();
2389
- if (lower.includes("insufficient funds")) {
2390
- return "Deposit was received, but processing could not continue due to insufficient funds. Please retry.";
2391
- }
2392
- if (lower.includes("no valid quote available")) {
2393
- return "No bridge route is currently available for this transfer. Please try again shortly.";
2394
- }
2395
- if (lower.includes("simulation failed")) {
2396
- return "Transfer processing failed during simulation. Please retry.";
2397
- }
2398
- if (raw.length > 220) {
2399
- return "Transfer processing failed. Please retry.";
2400
- }
2401
- return raw;
2402
- }
2403
- if (backendMessage.length > 0) {
2404
- const userMessage = toUserFacingFailure(backendMessage);
2405
- return {
2406
- message: userMessage,
2407
- code
2408
- };
2409
- }
2410
- if (code) {
2411
- return { message: `Bridge failed (${code})`, code };
2412
- }
2413
- return { message: "Bridge failed" };
2414
- }
2415
2623
  function parseWebhookTimestamp(event) {
2416
- if (typeof _optionalChain([event, 'optionalAccess', _109 => _109.time]) !== "string") return void 0;
2624
+ if (typeof _optionalChain([event, 'optionalAccess', _113 => _113.time]) !== "string") return void 0;
2417
2625
  const timestamp = Date.parse(event.time);
2418
2626
  return Number.isFinite(timestamp) ? timestamp : void 0;
2419
2627
  }
2420
2628
  function syncPhaseTimings(previous, event) {
2421
- if (!_optionalChain([event, 'optionalAccess', _110 => _110.type])) return previous;
2629
+ if (!_optionalChain([event, 'optionalAccess', _114 => _114.type])) return previous;
2422
2630
  const timestamp = _nullishCoalesce(parseWebhookTimestamp(event), () => ( Date.now()));
2423
2631
  const setReceived = (event.type === "deposit-received" || event.type === "bridge-started" || event.type === "bridge-complete" || event.type === "bridge-failed" || event.type === "post-bridge-swap-complete" || event.type === "post-bridge-swap-failed" || event.type === "error") && previous.receivedAt === void 0;
2424
2632
  const setBridging = (event.type === "bridge-started" || event.type === "bridge-complete" || event.type === "post-bridge-swap-complete") && previous.bridgingAt === void 0;
@@ -2480,9 +2688,9 @@ function getCurrentPhaseId(state, phaseTimings) {
2480
2688
  if (state.type === "complete") {
2481
2689
  return void 0;
2482
2690
  }
2483
- if (_optionalChain([state, 'access', _111 => _111.lastEvent, 'optionalAccess', _112 => _112.type]) === "bridge-started" || _optionalChain([state, 'access', _113 => _113.lastEvent, 'optionalAccess', _114 => _114.type]) === "bridge-complete")
2691
+ if (_optionalChain([state, 'access', _115 => _115.lastEvent, 'optionalAccess', _116 => _116.type]) === "bridge-started" || _optionalChain([state, 'access', _117 => _117.lastEvent, 'optionalAccess', _118 => _118.type]) === "bridge-complete")
2484
2692
  return "bridging";
2485
- if (_optionalChain([state, 'access', _115 => _115.lastEvent, 'optionalAccess', _116 => _116.type]) === "deposit-received") return "received";
2693
+ if (_optionalChain([state, 'access', _119 => _119.lastEvent, 'optionalAccess', _120 => _120.type]) === "deposit-received") return "received";
2486
2694
  return "confirming";
2487
2695
  }
2488
2696
  function ProcessingStep({
@@ -2502,7 +2710,7 @@ function ProcessingStep({
2502
2710
  debug,
2503
2711
  targetToken,
2504
2712
  uiConfig,
2505
- quotedFeeAmount = "0.1",
2713
+ quotedFeeAmount,
2506
2714
  quotedFeeSymbol,
2507
2715
  balanceAfterUsd,
2508
2716
  onClose,
@@ -2563,7 +2771,7 @@ function ProcessingStep({
2563
2771
  flowLabel
2564
2772
  });
2565
2773
  const context = processingContextRef.current;
2566
- _optionalChain([onDepositCompleteRef, 'access', _117 => _117.current, 'optionalCall', _118 => _118(txHash, void 0, {
2774
+ _optionalChain([onDepositCompleteRef, 'access', _121 => _121.current, 'optionalCall', _122 => _122(txHash, void 0, {
2567
2775
  amount: context.amount,
2568
2776
  sourceChain: context.sourceChain,
2569
2777
  sourceToken: context.sourceToken,
@@ -2603,7 +2811,26 @@ function ProcessingStep({
2603
2811
  updatePhaseTimings(
2604
2812
  (previous) => syncPhaseTimings(previous, state.lastEvent)
2605
2813
  );
2606
- }, [_optionalChain([state, 'access', _119 => _119.lastEvent, 'optionalAccess', _120 => _120.time]), _optionalChain([state, 'access', _121 => _121.lastEvent, 'optionalAccess', _122 => _122.type]), updatePhaseTimings]);
2814
+ }, [_optionalChain([state, 'access', _123 => _123.lastEvent, 'optionalAccess', _124 => _124.time]), _optionalChain([state, 'access', _125 => _125.lastEvent, 'optionalAccess', _126 => _126.type]), updatePhaseTimings]);
2815
+ const [swappedFiatContext, setSwappedFiatContext] = _react.useState.call(void 0, null);
2816
+ _react.useEffect.call(void 0, () => {
2817
+ let cancelled = false;
2818
+ service.fetchSwappedOrderStatus(smartAccount).then((res) => {
2819
+ if (cancelled || !res) return;
2820
+ if (!res.transactionId) return;
2821
+ if (res.transactionId.toLowerCase() !== txHash.toLowerCase()) return;
2822
+ setSwappedFiatContext({
2823
+ paidAmountUsd: res.paidAmountUsd,
2824
+ paidAmountEur: res.paidAmountEur,
2825
+ onrampFeeUsd: res.onrampFeeUsd,
2826
+ paymentMethod: res.paymentMethod
2827
+ });
2828
+ }).catch(() => {
2829
+ });
2830
+ return () => {
2831
+ cancelled = true;
2832
+ };
2833
+ }, [service, smartAccount, txHash]);
2607
2834
  _react.useEffect.call(void 0, () => {
2608
2835
  if (directTransfer) return;
2609
2836
  if (state.type !== "processing") {
@@ -2628,21 +2855,21 @@ function ProcessingStep({
2628
2855
  debugLog(debug, "processing", "poll:event", {
2629
2856
  type: lastEvent2.type,
2630
2857
  matchesTx: eventMatchesTx,
2631
- intentId: _optionalChain([eventData, 'optionalAccess', _123 => _123.intentId])
2858
+ intentId: _optionalChain([eventData, 'optionalAccess', _127 => _127.intentId])
2632
2859
  });
2633
2860
  }
2634
2861
  if (!isMounted) return;
2635
2862
  const awaitingPostBridgeSwap = processingContextRef.current.hasPostBridgeActions;
2636
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _124 => _124.type]) === "post-bridge-swap-complete") {
2863
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _128 => _128.type]) === "post-bridge-swap-complete") {
2637
2864
  setState({ type: "complete", lastEvent: eventForCurrentTx });
2638
- const swapTxHash = _optionalChain([eventForCurrentTx, 'access', _125 => _125.data, 'optionalAccess', _126 => _126.swap, 'optionalAccess', _127 => _127.transactionHash]);
2865
+ const swapTxHash = _optionalChain([eventForCurrentTx, 'access', _129 => _129.data, 'optionalAccess', _130 => _130.swap, 'optionalAccess', _131 => _131.transactionHash]);
2639
2866
  debugLog(debug, "processing", "state:complete", {
2640
2867
  txHash,
2641
2868
  destinationTxHash: swapTxHash,
2642
2869
  event: eventForCurrentTx.type
2643
2870
  });
2644
2871
  const context = processingContextRef.current;
2645
- _optionalChain([onDepositCompleteRef, 'access', _128 => _128.current, 'optionalCall', _129 => _129(txHash, swapTxHash, {
2872
+ _optionalChain([onDepositCompleteRef, 'access', _132 => _132.current, 'optionalCall', _133 => _133(txHash, swapTxHash, {
2646
2873
  amount: context.amount,
2647
2874
  sourceChain: context.sourceChain,
2648
2875
  sourceToken: context.sourceToken,
@@ -2651,7 +2878,7 @@ function ProcessingStep({
2651
2878
  })]);
2652
2879
  return;
2653
2880
  }
2654
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _130 => _130.type]) === "post-bridge-swap-failed") {
2881
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _134 => _134.type]) === "post-bridge-swap-failed") {
2655
2882
  const formatted = formatBridgeFailedMessage(eventForCurrentTx);
2656
2883
  setState({
2657
2884
  type: "failed",
@@ -2663,19 +2890,19 @@ function ProcessingStep({
2663
2890
  message: formatted.message,
2664
2891
  code: formatted.code
2665
2892
  });
2666
- _optionalChain([onDepositFailedRef, 'access', _131 => _131.current, 'optionalCall', _132 => _132(txHash, formatted.message)]);
2893
+ _optionalChain([onDepositFailedRef, 'access', _135 => _135.current, 'optionalCall', _136 => _136(txHash, formatted.message)]);
2667
2894
  return;
2668
2895
  }
2669
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _133 => _133.type]) === "bridge-complete" && !awaitingPostBridgeSwap) {
2896
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _137 => _137.type]) === "bridge-complete" && !awaitingPostBridgeSwap) {
2670
2897
  setState({ type: "complete", lastEvent: eventForCurrentTx });
2671
- const destinationTxHash2 = _optionalChain([eventForCurrentTx, 'access', _134 => _134.data, 'optionalAccess', _135 => _135.destination, 'optionalAccess', _136 => _136.transactionHash]);
2898
+ const destinationTxHash2 = _optionalChain([eventForCurrentTx, 'access', _138 => _138.data, 'optionalAccess', _139 => _139.destination, 'optionalAccess', _140 => _140.transactionHash]);
2672
2899
  debugLog(debug, "processing", "state:complete", {
2673
2900
  txHash,
2674
2901
  destinationTxHash: destinationTxHash2,
2675
2902
  event: eventForCurrentTx.type
2676
2903
  });
2677
2904
  const context = processingContextRef.current;
2678
- _optionalChain([onDepositCompleteRef, 'access', _137 => _137.current, 'optionalCall', _138 => _138(txHash, destinationTxHash2, {
2905
+ _optionalChain([onDepositCompleteRef, 'access', _141 => _141.current, 'optionalCall', _142 => _142(txHash, destinationTxHash2, {
2679
2906
  amount: context.amount,
2680
2907
  sourceChain: context.sourceChain,
2681
2908
  sourceToken: context.sourceToken,
@@ -2684,7 +2911,7 @@ function ProcessingStep({
2684
2911
  })]);
2685
2912
  return;
2686
2913
  }
2687
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _139 => _139.type]) === "bridge-failed") {
2914
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _143 => _143.type]) === "bridge-failed") {
2688
2915
  const formatted = formatBridgeFailedMessage(eventForCurrentTx);
2689
2916
  setState({
2690
2917
  type: "failed",
@@ -2696,11 +2923,11 @@ function ProcessingStep({
2696
2923
  message: formatted.message,
2697
2924
  code: formatted.code
2698
2925
  });
2699
- _optionalChain([onDepositFailedRef, 'access', _140 => _140.current, 'optionalCall', _141 => _141(txHash, formatted.message)]);
2926
+ _optionalChain([onDepositFailedRef, 'access', _144 => _144.current, 'optionalCall', _145 => _145(txHash, formatted.message)]);
2700
2927
  return;
2701
2928
  }
2702
- if (_optionalChain([eventForCurrentTx, 'optionalAccess', _142 => _142.type]) === "error") {
2703
- const errorMessage = _nullishCoalesce(_optionalChain([eventForCurrentTx, 'access', _143 => _143.data, 'optionalAccess', _144 => _144.message]), () => ( "Unknown error"));
2929
+ if (_optionalChain([eventForCurrentTx, 'optionalAccess', _146 => _146.type]) === "error") {
2930
+ const errorMessage = _nullishCoalesce(_optionalChain([eventForCurrentTx, 'access', _147 => _147.data, 'optionalAccess', _148 => _148.message]), () => ( "Unknown error"));
2704
2931
  setState({
2705
2932
  type: "failed",
2706
2933
  message: errorMessage,
@@ -2710,7 +2937,7 @@ function ProcessingStep({
2710
2937
  txHash,
2711
2938
  message: errorMessage
2712
2939
  });
2713
- _optionalChain([onDepositFailedRef, 'access', _145 => _145.current, 'optionalCall', _146 => _146(txHash, errorMessage)]);
2940
+ _optionalChain([onDepositFailedRef, 'access', _149 => _149.current, 'optionalCall', _150 => _150(txHash, errorMessage)]);
2714
2941
  return;
2715
2942
  }
2716
2943
  setState((previous) => ({
@@ -2771,7 +2998,7 @@ function ProcessingStep({
2771
2998
  txHash,
2772
2999
  timeoutMs: ESCALATED_DELAY_MS
2773
3000
  });
2774
- _optionalChain([onErrorRef, 'access', _147 => _147.current, 'optionalCall', _148 => _148(message, "PROCESS_TIMEOUT")]);
3001
+ _optionalChain([onErrorRef, 'access', _151 => _151.current, 'optionalCall', _152 => _152(message, "PROCESS_TIMEOUT")]);
2775
3002
  }, ESCALATED_DELAY_MS);
2776
3003
  return () => clearTimeout(timeoutId);
2777
3004
  }, [debug, directTransfer, onErrorRef, state.type, txHash]);
@@ -2783,8 +3010,8 @@ function ProcessingStep({
2783
3010
  const timelineNowMs = _nullishCoalesce(phaseTimings.endedAt, () => ( Date.now()));
2784
3011
  const flowNoun = flowLabel === "withdraw" ? "withdrawal" : "deposit";
2785
3012
  const flowCapitalized = flowLabel === "withdraw" ? "Withdrawal" : "Deposit";
2786
- const isPostBridgeSwapEvent = _optionalChain([lastEvent, 'optionalAccess', _149 => _149.type]) === "post-bridge-swap-complete" || _optionalChain([lastEvent, 'optionalAccess', _150 => _150.type]) === "post-bridge-swap-failed";
2787
- const destinationTxHash = isPostBridgeSwapEvent ? _optionalChain([lastEvent, 'optionalAccess', _151 => _151.data, 'optionalAccess', _152 => _152.swap, 'optionalAccess', _153 => _153.transactionHash]) || null : _optionalChain([lastEvent, 'optionalAccess', _154 => _154.data, 'optionalAccess', _155 => _155.destination, 'optionalAccess', _156 => _156.transactionHash]) || null;
3013
+ const isPostBridgeSwapEvent = _optionalChain([lastEvent, 'optionalAccess', _153 => _153.type]) === "post-bridge-swap-complete" || _optionalChain([lastEvent, 'optionalAccess', _154 => _154.type]) === "post-bridge-swap-failed";
3014
+ const destinationTxHash = isPostBridgeSwapEvent ? _optionalChain([lastEvent, 'optionalAccess', _155 => _155.data, 'optionalAccess', _156 => _156.swap, 'optionalAccess', _157 => _157.transactionHash]) || null : _optionalChain([lastEvent, 'optionalAccess', _158 => _158.data, 'optionalAccess', _159 => _159.destination, 'optionalAccess', _160 => _160.transactionHash]) || null;
2788
3015
  const sourceDetails = getEventSourceDetails(lastEvent);
2789
3016
  const displaySourceChain = _nullishCoalesce(sourceDetails.chainId, () => ( sourceChain));
2790
3017
  const displaySourceToken = _nullishCoalesce(sourceDetails.token, () => ( sourceToken));
@@ -2797,6 +3024,7 @@ function ProcessingStep({
2797
3024
  displaySourceToken,
2798
3025
  displaySourceChain
2799
3026
  ) : _nullishCoalesce(providedSourceDecimals, () => ( 18));
3027
+ const amountMaxDigits = maxFractionDigitsFor(sourceSymbol);
2800
3028
  const formattedReceivedAmount = (() => {
2801
3029
  try {
2802
3030
  const raw = _viem.formatUnits.call(void 0, BigInt(displayAmount), sourceDecimals);
@@ -2804,15 +3032,56 @@ function ProcessingStep({
2804
3032
  if (!Number.isFinite(numeric)) return raw;
2805
3033
  return numeric.toLocaleString("en-US", {
2806
3034
  minimumFractionDigits: 2,
2807
- maximumFractionDigits: 6
3035
+ maximumFractionDigits: amountMaxDigits
2808
3036
  });
2809
- } catch (e5) {
3037
+ } catch (e6) {
2810
3038
  return Number(displayAmount).toLocaleString("en-US", {
2811
3039
  minimumFractionDigits: 2,
2812
- maximumFractionDigits: 6
3040
+ maximumFractionDigits: amountMaxDigits
2813
3041
  });
2814
3042
  }
2815
3043
  })();
3044
+ const destinationAmountRaw = (() => {
3045
+ const dest = _optionalChain([lastEvent, 'optionalAccess', _161 => _161.data, 'optionalAccess', _162 => _162.destination]);
3046
+ if (!dest || dest.amount === void 0) return void 0;
3047
+ try {
3048
+ return BigInt(dest.amount);
3049
+ } catch (e7) {
3050
+ return void 0;
3051
+ }
3052
+ })();
3053
+ const sourceAmountRaw = (() => {
3054
+ try {
3055
+ return BigInt(displayAmount);
3056
+ } catch (e8) {
3057
+ return void 0;
3058
+ }
3059
+ })();
3060
+ const bridgingCostRaw = sourceAmountRaw !== void 0 && destinationAmountRaw !== void 0 && sourceAmountRaw > destinationAmountRaw ? sourceAmountRaw - destinationAmountRaw : void 0;
3061
+ const formattedDestinationAmount = destinationAmountRaw !== void 0 ? (() => {
3062
+ try {
3063
+ const raw = _viem.formatUnits.call(void 0, destinationAmountRaw, sourceDecimals);
3064
+ const numeric = Number(raw);
3065
+ if (!Number.isFinite(numeric)) return raw;
3066
+ return numeric.toLocaleString("en-US", {
3067
+ maximumFractionDigits: amountMaxDigits
3068
+ });
3069
+ } catch (e9) {
3070
+ return void 0;
3071
+ }
3072
+ })() : void 0;
3073
+ const formattedBridgingCost = bridgingCostRaw !== void 0 ? (() => {
3074
+ try {
3075
+ const raw = _viem.formatUnits.call(void 0, bridgingCostRaw, sourceDecimals);
3076
+ const numeric = Number(raw);
3077
+ if (!Number.isFinite(numeric)) return raw;
3078
+ return numeric.toLocaleString("en-US", {
3079
+ maximumFractionDigits: amountMaxDigits
3080
+ });
3081
+ } catch (e10) {
3082
+ return void 0;
3083
+ }
3084
+ })() : void 0;
2816
3085
  const currentPhaseId = getCurrentPhaseId(state, phaseTimings);
2817
3086
  const activePhaseStartedAt = currentPhaseId ? getPhaseStartTime(currentPhaseId, phaseTimings) : void 0;
2818
3087
  const activePhaseElapsedMs = isProcessing && activePhaseStartedAt !== void 0 ? timelineNowMs - activePhaseStartedAt : 0;
@@ -2830,8 +3099,8 @@ function ProcessingStep({
2830
3099
  const sourceChainName = _chunk7JIDIX27cjs.getChainName.call(void 0, displaySourceChain);
2831
3100
  const targetChainName = _chunk7JIDIX27cjs.getChainName.call(void 0, targetChain);
2832
3101
  const timerText = formatTimer(elapsedSeconds);
2833
- const feeSponsored = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _157 => _157.feeSponsored]), () => ( false));
2834
- const feeTooltip = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _158 => _158.feeTooltip]), () => ( (feeSponsored ? "Network fees are sponsored for this deposit." : "Network fees apply.")));
3102
+ const feeSponsored = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _163 => _163.feeSponsored]), () => ( false));
3103
+ const feeTooltip = _nullishCoalesce(_optionalChain([uiConfig, 'optionalAccess', _164 => _164.feeTooltip]), () => ( (feeSponsored ? "Network fees are sponsored for this deposit." : "Network fees apply.")));
2835
3104
  const stateTitle = isComplete ? `${flowCapitalized} successful` : isFailed ? `${flowCapitalized} failed` : "Processing...";
2836
3105
  const handleRetry = _nullishCoalesce(onRetry, () => ( onNewDeposit));
2837
3106
  const headerContent = isComplete ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-body-header", children: [
@@ -2885,11 +3154,29 @@ function ProcessingStep({
2885
3154
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: isProcessing ? "Time elapsed" : "Total time" }),
2886
3155
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-value", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Ticker, { value: timerText }) })
2887
3156
  ] }),
2888
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
2889
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "You send" }),
3157
+ _optionalChain([swappedFiatContext, 'optionalAccess', _165 => _165.paidAmountUsd]) != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
3158
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Paid" }),
3159
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
3160
+ "$",
3161
+ swappedFiatContext.paidAmountUsd.toFixed(2),
3162
+ swappedFiatContext.paymentMethod && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { style: { color: "#71717b", marginLeft: 6 }, children: [
3163
+ "via ",
3164
+ swappedFiatContext.paymentMethod
3165
+ ] })
3166
+ ] })
3167
+ ] }),
3168
+ _optionalChain([swappedFiatContext, 'optionalAccess', _166 => _166.onrampFeeUsd]) != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
3169
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "On-ramp fee" }),
3170
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
3171
+ "$",
3172
+ swappedFiatContext.onrampFeeUsd.toFixed(2)
3173
+ ] })
3174
+ ] }),
3175
+ formattedBridgingCost && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
3176
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Bridging cost" }),
2890
3177
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
2891
3178
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
2892
- formattedReceivedAmount,
3179
+ formattedBridgingCost,
2893
3180
  " ",
2894
3181
  sourceSymbol
2895
3182
  ] }),
@@ -2899,12 +3186,7 @@ function ProcessingStep({
2899
3186
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
2900
3187
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Receive" }),
2901
3188
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
2902
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
2903
- "~",
2904
- formattedReceivedAmount,
2905
- " ",
2906
- targetSymbol
2907
- ] }),
3189
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: formattedDestinationAmount ? `${formattedDestinationAmount} ${targetSymbol}` : `~${formattedReceivedAmount} ${targetSymbol}` }),
2908
3190
  targetTokenIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: targetTokenIcon, alt: "" }) })
2909
3191
  ] })
2910
3192
  ] }),
@@ -2915,14 +3197,18 @@ function ProcessingStep({
2915
3197
  balanceAfterUsd.toFixed(2)
2916
3198
  ] })
2917
3199
  ] }),
2918
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
3200
+ quotedFeeAmount !== void 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rs-review-detail-row", children: [
2919
3201
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Fees" }),
2920
3202
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "rs-review-detail-value", children: [
2921
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3203
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2922
3204
  "span",
2923
3205
  {
2924
3206
  style: feeSponsored ? { textDecoration: "line-through" } : void 0,
2925
- children: "$0.04"
3207
+ children: [
3208
+ quotedFeeAmount,
3209
+ " ",
3210
+ _nullishCoalesce(quotedFeeSymbol, () => ( sourceSymbol))
3211
+ ]
2926
3212
  }
2927
3213
  ),
2928
3214
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tooltip, { content: feeTooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "rs-review-detail-info", "aria-label": "Fee info", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoIcon, {}) }) })
@@ -3279,7 +3565,7 @@ function loadSessionOwnerFromStorage(eoaAddress) {
3279
3565
  privateKey: parsed.privateKey,
3280
3566
  address: account.address
3281
3567
  };
3282
- } catch (e6) {
3568
+ } catch (e11) {
3283
3569
  return null;
3284
3570
  }
3285
3571
  }
@@ -3361,4 +3647,9 @@ function accountFromPrivateKey(privateKey) {
3361
3647
 
3362
3648
 
3363
3649
 
3364
- exports.Modal = Modal; exports.WalletIcon = WalletIcon; exports.ExternalLinkIcon = ExternalLinkIcon; exports.CheckIcon = CheckIcon; exports.TransferCryptoIcon = TransferCryptoIcon; exports.ChevronLeftIcon = ChevronLeftIcon; exports.ChevronDownIcon = ChevronDownIcon; exports.CloseIcon = CloseIcon; exports.HistoryIcon = HistoryIcon; exports.InfoIcon = InfoIcon; exports.CopyIcon = CopyIcon; exports.ArrowUpRightIcon = ArrowUpRightIcon; exports.AlertTriangleIcon = AlertTriangleIcon; exports.PercentIcon = PercentIcon; exports.ClockIcon = ClockIcon; exports.PlusCircleIcon = PlusCircleIcon; exports.CircleArrowOutUpLeftIcon = CircleArrowOutUpLeftIcon; exports.BodyHeader = BodyHeader; exports.PoweredBy = PoweredBy; exports.Spinner = Spinner; exports.ConnectStep = ConnectStep; exports.useLatestRef = useLatestRef; exports.Button = Button; exports.Callout = Callout; exports.debugLog = debugLog; exports.debugError = debugError; exports.toEvmCaip2 = toEvmCaip2; exports.targetChainToCaip2 = targetChainToCaip2; exports.parseEvmChainId = parseEvmChainId; exports.isSolanaCaip2 = isSolanaCaip2; exports.getAssetId = getAssetId; exports.portfolioToAssets = portfolioToAssets; exports.isNativeAsset = isNativeAsset; exports.buildSessionDetails = buildSessionDetails; exports.createDepositService = createDepositService; exports.currencyFormatter = currencyFormatter; exports.tokenFormatter = tokenFormatter; exports.isUnsupportedChainSwitchError = isUnsupportedChainSwitchError; exports.formatUserError = formatUserError; exports.Tooltip = Tooltip; exports.getEventTxHash = getEventTxHash; exports.isDepositEvent = isDepositEvent; exports.txRefsMatch = txRefsMatch; exports.ProcessingStep = ProcessingStep; exports.SAFE_ABI = SAFE_ABI; exports.executeSafeEthTransfer = executeSafeEthTransfer; exports.executeSafeErc20Transfer = executeSafeErc20Transfer; exports.buildSafeTransaction = buildSafeTransaction; exports.getPublicClient = getPublicClient; exports.loadSessionOwnerFromStorage = loadSessionOwnerFromStorage; exports.saveSessionOwnerToStorage = saveSessionOwnerToStorage; exports.createSessionOwnerKey = createSessionOwnerKey; exports.accountFromPrivateKey = accountFromPrivateKey; exports.applyTheme = applyTheme;
3650
+
3651
+
3652
+
3653
+
3654
+
3655
+ exports.Modal = Modal; exports.WalletIcon = WalletIcon; exports.ExternalLinkIcon = ExternalLinkIcon; exports.CheckIcon = CheckIcon; exports.TransferCryptoIcon = TransferCryptoIcon; exports.ChevronLeftIcon = ChevronLeftIcon; exports.ChevronDownIcon = ChevronDownIcon; exports.CloseIcon = CloseIcon; exports.HandCoinsIcon = HandCoinsIcon; exports.HistoryIcon = HistoryIcon; exports.InfoIcon = InfoIcon; exports.CopyIcon = CopyIcon; exports.ArrowUpRightIcon = ArrowUpRightIcon; exports.AlertTriangleIcon = AlertTriangleIcon; exports.PercentIcon = PercentIcon; exports.ClockIcon = ClockIcon; exports.PlusCircleIcon = PlusCircleIcon; exports.CircleArrowOutUpLeftIcon = CircleArrowOutUpLeftIcon; exports.BankIcon = BankIcon; exports.BodyHeader = BodyHeader; exports.PoweredBy = PoweredBy; exports.Spinner = Spinner; exports.ConnectStep = ConnectStep; exports.useLatestRef = useLatestRef; exports.Button = Button; exports.Callout = Callout; exports.debugLog = debugLog; exports.debugError = debugError; exports.toEvmCaip2 = toEvmCaip2; exports.targetChainToCaip2 = targetChainToCaip2; exports.parseEvmChainId = parseEvmChainId; exports.isSolanaCaip2 = isSolanaCaip2; exports.getAssetId = getAssetId; exports.portfolioToAssets = portfolioToAssets; exports.isNativeAsset = isNativeAsset; exports.buildSessionDetails = buildSessionDetails; exports.createDepositService = createDepositService; exports.currencyFormatter = currencyFormatter; exports.tokenFormatter = tokenFormatter; exports.isUnsupportedChainSwitchError = isUnsupportedChainSwitchError; exports.formatUserError = formatUserError; exports.Tooltip = Tooltip; exports.getEventTxHash = getEventTxHash; exports.getEventSourceDetails = getEventSourceDetails; exports.isDepositEvent = isDepositEvent; exports.isFailedEvent = isFailedEvent; exports.txRefsMatch = txRefsMatch; exports.failureMessageForEvent = failureMessageForEvent; exports.ProcessingStep = ProcessingStep; exports.SAFE_ABI = SAFE_ABI; exports.executeSafeEthTransfer = executeSafeEthTransfer; exports.executeSafeErc20Transfer = executeSafeErc20Transfer; exports.buildSafeTransaction = buildSafeTransaction; exports.getPublicClient = getPublicClient; exports.loadSessionOwnerFromStorage = loadSessionOwnerFromStorage; exports.saveSessionOwnerToStorage = saveSessionOwnerToStorage; exports.createSessionOwnerKey = createSessionOwnerKey; exports.accountFromPrivateKey = accountFromPrivateKey; exports.applyTheme = applyTheme;