@rhinestone/deposit-modal 0.14.1 → 0.15.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 +6 -0
  2. package/bridge-transcript.json +14 -0
  3. package/dist/ClaimModal-GFDBVCN5.cjs +11 -0
  4. package/dist/ClaimModal-VQS3AKEL.mjs +11 -0
  5. package/dist/{DepositModalReown-2EVV64OA.mjs → DepositModalReown-KOJ7VEY7.mjs} +6 -7
  6. package/dist/{DepositModalReown-GAD45GIC.cjs → DepositModalReown-R37SSHUF.cjs} +21 -22
  7. package/dist/WithdrawModal-QVXHMH43.mjs +12 -0
  8. package/dist/WithdrawModal-RY2NMFLE.cjs +12 -0
  9. package/dist/{caip-D8aRWdEY.d.cts → caip-BMi-9t09.d.cts} +27 -3
  10. package/dist/{caip-D8aRWdEY.d.ts → caip-BMi-9t09.d.ts} +27 -3
  11. package/dist/{chunk-HAQOFI3D.cjs → chunk-3OOY67VJ.cjs} +1046 -226
  12. package/dist/{chunk-AQVJUXSG.cjs → chunk-5P2PVLS4.cjs} +1 -1
  13. package/dist/{chunk-UX35GYLM.mjs → chunk-5VONFVQN.mjs} +918 -98
  14. package/dist/chunk-6HUHVXCY.cjs +704 -0
  15. package/dist/{chunk-GZ4GQ5MC.mjs → chunk-7UQ6OUEE.mjs} +166 -45
  16. package/dist/{chunk-LMG46EP2.mjs → chunk-CXBMIZUF.mjs} +1 -1
  17. package/dist/{chunk-A6JPBMYY.cjs → chunk-DTVZUBHI.cjs} +236 -115
  18. package/dist/{chunk-VUATPOWJ.mjs → chunk-EAGMY3QE.mjs} +74 -17
  19. package/dist/{chunk-RN5VKWI6.mjs → chunk-FTWKAJGN.mjs} +1 -1
  20. package/dist/{chunk-5Q5CSVKF.mjs → chunk-IKUYZA7A.mjs} +195 -495
  21. package/dist/{chunk-DW2EQA2U.cjs → chunk-LVCD6RHF.cjs} +2 -2
  22. package/dist/{chunk-4KCSH4T3.cjs → chunk-OY5N3E6L.cjs} +86 -29
  23. package/dist/chunk-QJ7RCCU7.mjs +704 -0
  24. package/dist/{chunk-XCTRKCNM.mjs → chunk-UCBUCX2W.mjs} +1515 -194
  25. package/dist/{chunk-NQMC5VKQ.cjs → chunk-VPDCGD2D.cjs} +552 -852
  26. package/dist/{chunk-4J5ADVIN.cjs → chunk-X4D52IZK.cjs} +1496 -175
  27. package/dist/claim.cjs +5 -7
  28. package/dist/claim.d.cts +3 -3
  29. package/dist/claim.d.ts +3 -3
  30. package/dist/claim.mjs +4 -6
  31. package/dist/{constants-DBrWhJWE.d.cts → constants-BT4ctuHo.d.cts} +7 -6
  32. package/dist/{constants-DBrWhJWE.d.ts → constants-D21ZdNOP.d.ts} +7 -6
  33. package/dist/constants.cjs +3 -3
  34. package/dist/constants.d.cts +3 -3
  35. package/dist/constants.d.ts +3 -3
  36. package/dist/constants.mjs +2 -2
  37. package/dist/deposit.cjs +7 -8
  38. package/dist/deposit.d.cts +3 -3
  39. package/dist/deposit.d.ts +3 -3
  40. package/dist/deposit.mjs +6 -7
  41. package/dist/embed.cjs +135 -44
  42. package/dist/embed.d.cts +2 -2
  43. package/dist/embed.d.ts +2 -2
  44. package/dist/embed.mjs +116 -25
  45. package/dist/index.cjs +13 -11
  46. package/dist/index.d.cts +3 -3
  47. package/dist/index.d.ts +3 -3
  48. package/dist/index.mjs +12 -10
  49. package/dist/polymarket.cjs +6 -6
  50. package/dist/polymarket.mjs +2 -2
  51. package/dist/styles.css +132 -100
  52. package/dist/{types-DP_3KwlD.d.cts → types-CQ0NHqCy.d.ts} +146 -11
  53. package/dist/{types-Bho4OA03.d.ts → types-CxiLX5sv.d.cts} +146 -11
  54. package/dist/withdraw.cjs +6 -6
  55. package/dist/withdraw.d.cts +4 -4
  56. package/dist/withdraw.d.ts +4 -4
  57. package/dist/withdraw.mjs +5 -5
  58. package/package.json +6 -6
  59. package/dist/ClaimModal-GDFENSLV.mjs +0 -13
  60. package/dist/ClaimModal-L3FUBI5U.cjs +0 -13
  61. package/dist/WithdrawModal-FAQH35NG.cjs +0 -12
  62. package/dist/WithdrawModal-IKUHF5CF.mjs +0 -12
  63. package/dist/chunk-62UCV2LG.cjs +0 -81
  64. package/dist/chunk-7AZFT2MV.cjs +0 -163
  65. package/dist/chunk-QACOOLOE.mjs +0 -1062
  66. package/dist/chunk-R5UQ3TN4.mjs +0 -81
  67. package/dist/chunk-VALXN5IO.mjs +0 -163
  68. package/dist/chunk-YP7QVKQ6.cjs +0 -1062
package/dist/embed.cjs CHANGED
@@ -1,23 +1,21 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkNQMC5VKQcjs = require('./chunk-NQMC5VKQ.cjs');
3
+ var _chunkVPDCGD2Dcjs = require('./chunk-VPDCGD2D.cjs');
4
4
 
5
5
 
6
- var _chunk4J5ADVINcjs = require('./chunk-4J5ADVIN.cjs');
7
- require('./chunk-7AZFT2MV.cjs');
8
- require('./chunk-62UCV2LG.cjs');
6
+ var _chunkX4D52IZKcjs = require('./chunk-X4D52IZK.cjs');
9
7
 
10
8
 
11
- var _chunkHAQOFI3Dcjs = require('./chunk-HAQOFI3D.cjs');
9
+ var _chunk3OOY67VJcjs = require('./chunk-3OOY67VJ.cjs');
12
10
 
13
11
 
14
12
 
15
- var _chunkAQVJUXSGcjs = require('./chunk-AQVJUXSG.cjs');
16
- require('./chunk-DW2EQA2U.cjs');
13
+ var _chunk5P2PVLS4cjs = require('./chunk-5P2PVLS4.cjs');
14
+ require('./chunk-LVCD6RHF.cjs');
17
15
 
18
16
 
19
17
 
20
- var _chunk4KCSH4T3cjs = require('./chunk-4KCSH4T3.cjs');
18
+ var _chunkOY5N3E6Lcjs = require('./chunk-OY5N3E6L.cjs');
21
19
 
22
20
  // src/embed.tsx
23
21
  var _react = require('react');
@@ -681,7 +679,7 @@ function switchTargetChainId(params) {
681
679
  function syntheticChain(chainId) {
682
680
  return {
683
681
  id: chainId,
684
- name: _chunk4KCSH4T3cjs.getChainName.call(void 0, chainId),
682
+ name: _chunkOY5N3E6Lcjs.getChainName.call(void 0, chainId),
685
683
  nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
686
684
  rpcUrls: { default: { http: [] } }
687
685
  };
@@ -695,7 +693,7 @@ function assertResultShape(method, result) {
695
693
  `${method}: ${detail}`
696
694
  )
697
695
  );
698
- throw SUBMITTING_WALLET_METHODS.includes(method) ? _chunk4J5ADVINcjs.markSubmissionUncertain.call(void 0, error) : error;
696
+ throw SUBMITTING_WALLET_METHODS.includes(method) ? _chunkX4D52IZKcjs.markSubmissionUncertain.call(void 0, error) : error;
699
697
  };
700
698
  switch (method) {
701
699
  case "eth_sendTransaction":
@@ -747,7 +745,7 @@ function createBridgedWalletSession(options) {
747
745
  );
748
746
  } catch (error) {
749
747
  if (submitting && isBridgeRequestError(error) && error.code === -32603) {
750
- throw _chunk4J5ADVINcjs.markSubmissionUncertain.call(void 0,
748
+ throw _chunkX4D52IZKcjs.markSubmissionUncertain.call(void 0,
751
749
  new BridgeRequestError(
752
750
  bridgeError(
753
751
  BridgeErrorCode.SUBMISSION_UNCERTAIN,
@@ -758,7 +756,7 @@ function createBridgedWalletSession(options) {
758
756
  );
759
757
  }
760
758
  if (submitting && isBridgeCode(error, BridgeErrorCode.SUBMISSION_UNCERTAIN)) {
761
- throw _chunk4J5ADVINcjs.markSubmissionUncertain.call(void 0, error);
759
+ throw _chunkX4D52IZKcjs.markSubmissionUncertain.call(void 0, error);
762
760
  }
763
761
  throw error;
764
762
  }
@@ -799,7 +797,7 @@ function createBridgedWalletSession(options) {
799
797
  stateWaiters.delete(waiter);
800
798
  reject(
801
799
  new Error(
802
- `Switch to ${_nullishCoalesce(_optionalChain([resolveChain, 'call', _17 => _17(chainId), 'optionalAccess', _18 => _18.name]), () => ( _chunk4KCSH4T3cjs.getChainName.call(void 0, chainId)))} in your wallet to continue`
800
+ `Switch to ${_nullishCoalesce(_optionalChain([resolveChain, 'call', _17 => _17(chainId), 'optionalAccess', _18 => _18.name]), () => ( _chunkOY5N3E6Lcjs.getChainName.call(void 0, chainId)))} in your wallet to continue`
803
801
  )
804
802
  );
805
803
  }, SWITCH_CONFIRMATION_TIMEOUT_MS);
@@ -877,7 +875,7 @@ async function connectToHost(options) {
877
875
  });
878
876
  const params = {
879
877
  protocol: PROTOCOL_VERSION,
880
- modalVersion: _chunkAQVJUXSGcjs.MODAL_VERSION
878
+ modalVersion: _chunk5P2PVLS4cjs.MODAL_VERSION
881
879
  };
882
880
  let raw;
883
881
  try {
@@ -963,12 +961,12 @@ async function requestHostTransfer(transport, params) {
963
961
  );
964
962
  } catch (error) {
965
963
  if (error instanceof Error && isBridgeCode(error, BridgeErrorCode.SUBMISSION_UNCERTAIN)) {
966
- throw _chunk4J5ADVINcjs.markSubmissionUncertain.call(void 0, error);
964
+ throw _chunkX4D52IZKcjs.markSubmissionUncertain.call(void 0, error);
967
965
  }
968
966
  throw error;
969
967
  }
970
968
  if (!isTxHash(_optionalChain([result, 'optionalAccess', _25 => _25.txHash]))) {
971
- throw _chunk4J5ADVINcjs.markSubmissionUncertain.call(void 0,
969
+ throw _chunkX4D52IZKcjs.markSubmissionUncertain.call(void 0,
972
970
  new Error(
973
971
  "The app did not return a transaction hash. Check your activity before trying again."
974
972
  )
@@ -1035,16 +1033,63 @@ function dismissalFor(input) {
1035
1033
  function canGoBackNow(input) {
1036
1034
  return dismissalFor(input).state !== "blocked";
1037
1035
  }
1038
- function uiStateFor(input) {
1039
- return { screen: input.screen, dismissal: dismissalFor(input) };
1036
+ function uiStateFor(input, contentHeight) {
1037
+ return {
1038
+ screen: input.screen,
1039
+ dismissal: dismissalFor(input),
1040
+ ...contentHeight === void 0 ? {} : { contentHeight }
1041
+ };
1042
+ }
1043
+
1044
+ // src/core/bridge/content-height.ts
1045
+ function measureContentHeight(shell) {
1046
+ const modal = shell.firstElementChild;
1047
+ const last = _optionalChain([modal, 'optionalAccess', _27 => _27.lastElementChild]);
1048
+ if (!modal || !last) return void 0;
1049
+ const view = modal.ownerDocument.defaultView;
1050
+ const padding = view ? Number.parseFloat(view.getComputedStyle(modal).paddingBottom) : Number.NaN;
1051
+ const height = last.getBoundingClientRect().bottom - modal.getBoundingClientRect().top + (Number.isFinite(padding) ? padding : 0) + // The shell's own borders sit outside the modal and inside the sheet, so
1052
+ // they belong to the height a host is being asked for.
1053
+ (shell.offsetHeight - shell.clientHeight);
1054
+ return height > 0 ? Math.ceil(height) : void 0;
1055
+ }
1056
+ function observeContentHeight(shell, onChange) {
1057
+ const view = shell.ownerDocument.defaultView;
1058
+ if (!_optionalChain([view, 'optionalAccess', _28 => _28.ResizeObserver]) || !view.MutationObserver) return () => {
1059
+ };
1060
+ let last;
1061
+ const report = () => {
1062
+ const height = measureContentHeight(shell);
1063
+ if (height === void 0 || height === last) return;
1064
+ last = height;
1065
+ onChange(height);
1066
+ };
1067
+ const sizes = new view.ResizeObserver(report);
1068
+ const structure = new view.MutationObserver(() => rearm());
1069
+ function rearm() {
1070
+ sizes.disconnect();
1071
+ structure.disconnect();
1072
+ structure.observe(shell, { childList: true });
1073
+ const modal = shell.firstElementChild;
1074
+ if (modal) {
1075
+ structure.observe(modal, { childList: true });
1076
+ for (const child of Array.from(modal.children)) sizes.observe(child);
1077
+ }
1078
+ report();
1079
+ }
1080
+ rearm();
1081
+ return () => {
1082
+ sizes.disconnect();
1083
+ structure.disconnect();
1084
+ };
1040
1085
  }
1041
1086
 
1042
1087
  // src/core/bridge/viewport.ts
1043
1088
  var VIEWPORT_HEIGHT_PROPERTY = "--rs-embed-viewport-height";
1044
1089
  function trackVisualViewport(win) {
1045
1090
  const target = win;
1046
- const viewport = _optionalChain([target, 'optionalAccess', _27 => _27.visualViewport]);
1047
- const style = _optionalChain([target, 'optionalAccess', _28 => _28.document, 'optionalAccess', _29 => _29.documentElement, 'optionalAccess', _30 => _30.style]);
1091
+ const viewport = _optionalChain([target, 'optionalAccess', _29 => _29.visualViewport]);
1092
+ const style = _optionalChain([target, 'optionalAccess', _30 => _30.document, 'optionalAccess', _31 => _31.documentElement, 'optionalAccess', _32 => _32.style]);
1048
1093
  if (!viewport || !style) return () => {
1049
1094
  };
1050
1095
  const apply = () => {
@@ -1066,10 +1111,10 @@ var UNKNOWN_SCREEN = "unknown";
1066
1111
  // src/embed.tsx
1067
1112
  var _jsxruntime = require('react/jsx-runtime');
1068
1113
  var WithdrawModal = _react.lazy.call(void 0,
1069
- () => Promise.resolve().then(() => _interopRequireWildcard(require("./WithdrawModal-FAQH35NG.cjs"))).then((m) => ({ default: m.WithdrawModal }))
1114
+ () => Promise.resolve().then(() => _interopRequireWildcard(require("./WithdrawModal-RY2NMFLE.cjs"))).then((m) => ({ default: m.WithdrawModal }))
1070
1115
  );
1071
1116
  var ClaimModal = _react.lazy.call(void 0,
1072
- () => Promise.resolve().then(() => _interopRequireWildcard(require("./ClaimModal-L3FUBI5U.cjs"))).then((m) => ({ default: m.ClaimModal }))
1117
+ () => Promise.resolve().then(() => _interopRequireWildcard(require("./ClaimModal-GFDBVCN5.cjs"))).then((m) => ({ default: m.ClaimModal }))
1073
1118
  );
1074
1119
  function missingField(config, keys) {
1075
1120
  const missing = keys.find(
@@ -1115,8 +1160,7 @@ function refusal(config, capabilities, channelScope) {
1115
1160
  ]);
1116
1161
  if (missing) return missing;
1117
1162
  const { targetChain } = config;
1118
- const validTarget = typeof targetChain === "number" && Number.isInteger(targetChain) && targetChain > 0 || targetChain === "solana" || targetChain === _chunk4KCSH4T3cjs.HYPERCORE_SPOT_CAIP2;
1119
- return validTarget ? null : {
1163
+ return _chunkOY5N3E6Lcjs.isTargetChain.call(void 0, targetChain) ? null : {
1120
1164
  code: "EMBED_CONFIG_INVALID",
1121
1165
  message: `The app supplied a targetChain this page cannot resolve: ${JSON.stringify(targetChain)}.`
1122
1166
  };
@@ -1158,12 +1202,7 @@ function sanitizeConfig(config) {
1158
1202
  const bool = (value) => typeof value === "boolean" ? value : void 0;
1159
1203
  const arr = (value) => Array.isArray(value) ? value : void 0;
1160
1204
  const obj = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
1161
- const target = (value) => {
1162
- if (typeof value === "number" && Number.isInteger(value) && value > 0) {
1163
- return value;
1164
- }
1165
- return value === "solana" || value === _chunk4KCSH4T3cjs.HYPERCORE_SPOT_CAIP2 ? value : void 0;
1166
- };
1205
+ const target = (value) => _chunkOY5N3E6Lcjs.isTargetChain.call(void 0, value) ? value : void 0;
1167
1206
  return {
1168
1207
  // Raw, because it is the discriminant `refusal` switches on — anything
1169
1208
  // else has to reach it to be named in the error.
@@ -1253,6 +1292,9 @@ function toModalProps(config, canOpenExternally, walletWithheld) {
1253
1292
  debug: config.debug
1254
1293
  };
1255
1294
  }
1295
+ function currentShell() {
1296
+ return document.querySelector(".rs-modal-content.rs-embed");
1297
+ }
1256
1298
  function DepositEmbed({ target, onFatal }) {
1257
1299
  const [session, setSession] = _react.useState.call(void 0, null);
1258
1300
  const [config, setConfig] = _react.useState.call(void 0, null);
@@ -1264,8 +1306,15 @@ function DepositEmbed({ target, onFatal }) {
1264
1306
  screen: UNKNOWN_SCREEN,
1265
1307
  submitting: false
1266
1308
  });
1309
+ const contentHeightRef = _react.useRef.call(void 0, void 0);
1310
+ const shellRef = _react.useRef.call(void 0, null);
1311
+ const [shellToken, setShellToken] = _react.useState.call(void 0, 0);
1267
1312
  const onFatalRef = _react.useRef.call(void 0, onFatal);
1268
1313
  onFatalRef.current = onFatal;
1314
+ const measuredHeight = _react.useCallback.call(void 0,
1315
+ () => currentShell() === shellRef.current ? contentHeightRef.current : void 0,
1316
+ []
1317
+ );
1269
1318
  _react.useEffect.call(void 0,
1270
1319
  () => trackVisualViewport(_nullishCoalesce(target, () => ( globalThis.window))),
1271
1320
  [target]
@@ -1303,33 +1352,37 @@ function DepositEmbed({ target, onFatal }) {
1303
1352
  return { handled: true };
1304
1353
  }
1305
1354
  const back = uiRef.current.back;
1306
- _optionalChain([back, 'optionalCall', _31 => _31()]);
1355
+ _optionalChain([back, 'optionalCall', _33 => _33()]);
1307
1356
  return { handled: Boolean(back) };
1308
1357
  });
1309
- _chunkAQVJUXSGcjs.setEmbedHost.call(void 0, next.hello.host);
1358
+ _chunk5P2PVLS4cjs.setEmbedHost.call(void 0, next.hello.host);
1310
1359
  setSession(next);
1311
1360
  setChannelScope(next.channelScope);
1312
1361
  setConfig(sanitizeConfig(next.hello.config));
1313
- void _chunkHAQOFI3Dcjs.primeRuntimeChains.call(void 0, next.hello.config.backendUrl).then((result) => {
1362
+ void _chunk3OOY67VJcjs.primeRuntimeChains.call(void 0, next.hello.config.backendUrl).then((result) => {
1314
1363
  chains = result;
1315
1364
  });
1316
1365
  } catch (error) {
1317
- if (live) _optionalChain([onFatalRef, 'access', _32 => _32.current, 'optionalCall', _33 => _33(error)]);
1366
+ if (live) _optionalChain([onFatalRef, 'access', _34 => _34.current, 'optionalCall', _35 => _35(error)]);
1318
1367
  }
1319
1368
  })();
1320
1369
  return () => {
1321
1370
  live = false;
1322
- _optionalChain([opened, 'optionalAccess', _34 => _34.close, 'call', _35 => _35()]);
1323
- _chunkAQVJUXSGcjs.setEmbedHost.call(void 0, null);
1371
+ _optionalChain([opened, 'optionalAccess', _36 => _36.close, 'call', _37 => _37()]);
1372
+ _chunk5P2PVLS4cjs.setEmbedHost.call(void 0, null);
1324
1373
  };
1325
1374
  }, [target]);
1326
1375
  const handleUiState = _react.useCallback.call(void 0,
1327
1376
  (state) => {
1328
1377
  if (isHomeScreen(state.screen)) completedRef.current = false;
1329
1378
  uiRef.current = state;
1330
- _optionalChain([session, 'optionalAccess', _36 => _36.transport, 'access', _37 => _37.emit, 'call', _38 => _38(
1379
+ if (currentShell() !== shellRef.current) setShellToken((token) => token + 1);
1380
+ _optionalChain([session, 'optionalAccess', _38 => _38.transport, 'access', _39 => _39.emit, 'call', _40 => _40(
1331
1381
  "ui.state",
1332
- uiStateFor({ ...state, walletRequestPending: walletPending })
1382
+ uiStateFor(
1383
+ { ...state, walletRequestPending: walletPending },
1384
+ measuredHeight()
1385
+ )
1333
1386
  )]);
1334
1387
  },
1335
1388
  [session, walletPending]
@@ -1345,9 +1398,29 @@ function DepositEmbed({ target, onFatal }) {
1345
1398
  if (!session) return;
1346
1399
  session.transport.emit(
1347
1400
  "ui.state",
1348
- uiStateFor({ ...uiRef.current, walletRequestPending: walletPending })
1401
+ uiStateFor(
1402
+ { ...uiRef.current, walletRequestPending: walletPending },
1403
+ measuredHeight()
1404
+ )
1349
1405
  );
1350
- }, [session, walletPending]);
1406
+ }, [session, walletPending, measuredHeight]);
1407
+ _react.useEffect.call(void 0, () => {
1408
+ if (!session) return;
1409
+ const shell = currentShell();
1410
+ shellRef.current = shell;
1411
+ if (!shell) return;
1412
+ const stop = observeContentHeight(shell, (height) => {
1413
+ contentHeightRef.current = height;
1414
+ session.transport.emit(
1415
+ "ui.state",
1416
+ uiStateFor(
1417
+ { ...uiRef.current, walletRequestPending: pendingRef.current },
1418
+ height
1419
+ )
1420
+ );
1421
+ });
1422
+ return stop;
1423
+ }, [session, shellToken]);
1351
1424
  const refused = config && session ? refusal(config, session.hello.capabilities, channelScope) : null;
1352
1425
  const walletWithheld = channelScope === "all-frames" || channelScope === "probing";
1353
1426
  const refuseIfUnscoped = _react.useCallback.call(void 0, async () => {
@@ -1358,12 +1431,12 @@ function DepositEmbed({ target, onFatal }) {
1358
1431
  _react.useEffect.call(void 0, () => {
1359
1432
  if (!session || !refused) return;
1360
1433
  session.transport.emit("error", refused);
1361
- }, [session, _optionalChain([refused, 'optionalAccess', _39 => _39.code]), _optionalChain([refused, 'optionalAccess', _40 => _40.message])]);
1434
+ }, [session, _optionalChain([refused, 'optionalAccess', _41 => _41.code]), _optionalChain([refused, 'optionalAccess', _42 => _42.message])]);
1362
1435
  const onrampHidden = config && session && !refused ? onrampUnavailable(config, session.hello.capabilities) : null;
1363
1436
  _react.useEffect.call(void 0, () => {
1364
1437
  if (!session || !onrampHidden) return;
1365
1438
  session.transport.emit("error", onrampHidden);
1366
- }, [session, _optionalChain([onrampHidden, 'optionalAccess', _41 => _41.code]), _optionalChain([onrampHidden, 'optionalAccess', _42 => _42.message])]);
1439
+ }, [session, _optionalChain([onrampHidden, 'optionalAccess', _43 => _43.code]), _optionalChain([onrampHidden, 'optionalAccess', _44 => _44.message])]);
1367
1440
  const walletHidden = session && !refused && channelScope === "all-frames" ? {
1368
1441
  code: UNSCOPED_CHANNEL_CODE,
1369
1442
  message: "Wallet funding is hidden: every frame in this app's web view can reach the bridge channel. Scope the injected channel to the main frame."
@@ -1371,7 +1444,7 @@ function DepositEmbed({ target, onFatal }) {
1371
1444
  _react.useEffect.call(void 0, () => {
1372
1445
  if (!session || !walletHidden) return;
1373
1446
  session.transport.emit("error", walletHidden);
1374
- }, [session, _optionalChain([walletHidden, 'optionalAccess', _43 => _43.code]), _optionalChain([walletHidden, 'optionalAccess', _44 => _44.message])]);
1447
+ }, [session, _optionalChain([walletHidden, 'optionalAccess', _45 => _45.code]), _optionalChain([walletHidden, 'optionalAccess', _46 => _46.message])]);
1375
1448
  if (!session || !config || refused) return null;
1376
1449
  const ready = config;
1377
1450
  const { transport } = session;
@@ -1417,6 +1490,15 @@ function DepositEmbed({ target, onFatal }) {
1417
1490
  })
1418
1491
  };
1419
1492
  },
1493
+ signRecovery: !walletWithheld && session.hello.capabilities.includes(CAPABILITY.SIGN_RECOVERY) ? async ({ chainId, signer, depositId, destination }) => {
1494
+ await refuseIfUnscoped();
1495
+ return await requestHostRecoverySignature(transport, {
1496
+ chainId,
1497
+ signer,
1498
+ depositId,
1499
+ destination
1500
+ });
1501
+ } : void 0,
1420
1502
  onUiState: handleUiState,
1421
1503
  onLifecycle: (event) => {
1422
1504
  if (event.type === "complete") completedRef.current = true;
@@ -1450,10 +1532,19 @@ function DepositEmbed({ target, onFatal }) {
1450
1532
  ) });
1451
1533
  }
1452
1534
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1453
- _chunkNQMC5VKQcjs.DepositModalInner,
1535
+ _chunkVPDCGD2Dcjs.DepositModalInner,
1454
1536
  {
1455
1537
  ...toModalProps(ready, canOpenExternally, walletWithheld),
1456
1538
  openExternally: canOpenExternally ? openExternally : void 0,
1539
+ signRecovery: !walletWithheld && session.hello.capabilities.includes(CAPABILITY.SIGN_RECOVERY) ? async ({ chainId, signer, depositId, destination }) => {
1540
+ await refuseIfUnscoped();
1541
+ return await requestHostRecoverySignature(transport, {
1542
+ chainId,
1543
+ signer,
1544
+ depositId,
1545
+ destination
1546
+ });
1547
+ } : void 0,
1457
1548
  walletSession: walletWithheld ? void 0 : session.wallet.session,
1458
1549
  walletIntegration: "host_supplied",
1459
1550
  hasWalletClientProp: false,
package/dist/embed.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
- import { T as TargetChain } from './caip-D8aRWdEY.cjs';
3
- import { Y as OutputTokenRule, W as FiatMethodsConfig, d as AssetMigrationsConfig, P as DepositModalTheme, Q as DepositModalUIConfig } from './types-DP_3KwlD.cjs';
2
+ import { d as TargetChain } from './caip-BMi-9t09.cjs';
3
+ import { a1 as OutputTokenRule, Y as FiatMethodsConfig, d as AssetMigrationsConfig, R as DepositModalTheme, S as DepositModalUIConfig } from './types-CxiLX5sv.cjs';
4
4
  import { WalletClient, PublicClient, Address } from 'viem';
5
5
  import { Transaction, Connection } from '@solana/web3.js';
6
6
 
package/dist/embed.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
- import { T as TargetChain } from './caip-D8aRWdEY.js';
3
- import { Y as OutputTokenRule, W as FiatMethodsConfig, d as AssetMigrationsConfig, P as DepositModalTheme, Q as DepositModalUIConfig } from './types-Bho4OA03.js';
2
+ import { d as TargetChain } from './caip-BMi-9t09.js';
3
+ import { a1 as OutputTokenRule, Y as FiatMethodsConfig, d as AssetMigrationsConfig, R as DepositModalTheme, S as DepositModalUIConfig } from './types-CQ0NHqCy.js';
4
4
  import { WalletClient, PublicClient, Address } from 'viem';
5
5
  import { Transaction, Connection } from '@solana/web3.js';
6
6
 
package/dist/embed.mjs CHANGED
@@ -1,23 +1,21 @@
1
1
  import {
2
2
  DepositModalInner
3
- } from "./chunk-5Q5CSVKF.mjs";
3
+ } from "./chunk-IKUYZA7A.mjs";
4
4
  import {
5
5
  markSubmissionUncertain
6
- } from "./chunk-XCTRKCNM.mjs";
7
- import "./chunk-VALXN5IO.mjs";
8
- import "./chunk-R5UQ3TN4.mjs";
6
+ } from "./chunk-UCBUCX2W.mjs";
9
7
  import {
10
8
  primeRuntimeChains
11
- } from "./chunk-UX35GYLM.mjs";
9
+ } from "./chunk-5VONFVQN.mjs";
12
10
  import {
13
11
  MODAL_VERSION,
14
12
  setEmbedHost
15
- } from "./chunk-LMG46EP2.mjs";
16
- import "./chunk-RN5VKWI6.mjs";
13
+ } from "./chunk-CXBMIZUF.mjs";
14
+ import "./chunk-FTWKAJGN.mjs";
17
15
  import {
18
- HYPERCORE_SPOT_CAIP2,
19
- getChainName
20
- } from "./chunk-VUATPOWJ.mjs";
16
+ getChainName,
17
+ isTargetChain
18
+ } from "./chunk-EAGMY3QE.mjs";
21
19
 
22
20
  // src/embed.tsx
23
21
  import { Suspense, lazy, useCallback, useEffect, useRef, useState } from "react";
@@ -1035,8 +1033,55 @@ function dismissalFor(input) {
1035
1033
  function canGoBackNow(input) {
1036
1034
  return dismissalFor(input).state !== "blocked";
1037
1035
  }
1038
- function uiStateFor(input) {
1039
- return { screen: input.screen, dismissal: dismissalFor(input) };
1036
+ function uiStateFor(input, contentHeight) {
1037
+ return {
1038
+ screen: input.screen,
1039
+ dismissal: dismissalFor(input),
1040
+ ...contentHeight === void 0 ? {} : { contentHeight }
1041
+ };
1042
+ }
1043
+
1044
+ // src/core/bridge/content-height.ts
1045
+ function measureContentHeight(shell) {
1046
+ const modal = shell.firstElementChild;
1047
+ const last = modal?.lastElementChild;
1048
+ if (!modal || !last) return void 0;
1049
+ const view = modal.ownerDocument.defaultView;
1050
+ const padding = view ? Number.parseFloat(view.getComputedStyle(modal).paddingBottom) : Number.NaN;
1051
+ const height = last.getBoundingClientRect().bottom - modal.getBoundingClientRect().top + (Number.isFinite(padding) ? padding : 0) + // The shell's own borders sit outside the modal and inside the sheet, so
1052
+ // they belong to the height a host is being asked for.
1053
+ (shell.offsetHeight - shell.clientHeight);
1054
+ return height > 0 ? Math.ceil(height) : void 0;
1055
+ }
1056
+ function observeContentHeight(shell, onChange) {
1057
+ const view = shell.ownerDocument.defaultView;
1058
+ if (!view?.ResizeObserver || !view.MutationObserver) return () => {
1059
+ };
1060
+ let last;
1061
+ const report = () => {
1062
+ const height = measureContentHeight(shell);
1063
+ if (height === void 0 || height === last) return;
1064
+ last = height;
1065
+ onChange(height);
1066
+ };
1067
+ const sizes = new view.ResizeObserver(report);
1068
+ const structure = new view.MutationObserver(() => rearm());
1069
+ function rearm() {
1070
+ sizes.disconnect();
1071
+ structure.disconnect();
1072
+ structure.observe(shell, { childList: true });
1073
+ const modal = shell.firstElementChild;
1074
+ if (modal) {
1075
+ structure.observe(modal, { childList: true });
1076
+ for (const child of Array.from(modal.children)) sizes.observe(child);
1077
+ }
1078
+ report();
1079
+ }
1080
+ rearm();
1081
+ return () => {
1082
+ sizes.disconnect();
1083
+ structure.disconnect();
1084
+ };
1040
1085
  }
1041
1086
 
1042
1087
  // src/core/bridge/viewport.ts
@@ -1066,10 +1111,10 @@ var UNKNOWN_SCREEN = "unknown";
1066
1111
  // src/embed.tsx
1067
1112
  import { jsx } from "react/jsx-runtime";
1068
1113
  var WithdrawModal = lazy(
1069
- () => import("./WithdrawModal-IKUHF5CF.mjs").then((m) => ({ default: m.WithdrawModal }))
1114
+ () => import("./WithdrawModal-QVXHMH43.mjs").then((m) => ({ default: m.WithdrawModal }))
1070
1115
  );
1071
1116
  var ClaimModal = lazy(
1072
- () => import("./ClaimModal-GDFENSLV.mjs").then((m) => ({ default: m.ClaimModal }))
1117
+ () => import("./ClaimModal-VQS3AKEL.mjs").then((m) => ({ default: m.ClaimModal }))
1073
1118
  );
1074
1119
  function missingField(config, keys) {
1075
1120
  const missing = keys.find(
@@ -1115,8 +1160,7 @@ function refusal(config, capabilities, channelScope) {
1115
1160
  ]);
1116
1161
  if (missing) return missing;
1117
1162
  const { targetChain } = config;
1118
- const validTarget = typeof targetChain === "number" && Number.isInteger(targetChain) && targetChain > 0 || targetChain === "solana" || targetChain === HYPERCORE_SPOT_CAIP2;
1119
- return validTarget ? null : {
1163
+ return isTargetChain(targetChain) ? null : {
1120
1164
  code: "EMBED_CONFIG_INVALID",
1121
1165
  message: `The app supplied a targetChain this page cannot resolve: ${JSON.stringify(targetChain)}.`
1122
1166
  };
@@ -1158,12 +1202,7 @@ function sanitizeConfig(config) {
1158
1202
  const bool = (value) => typeof value === "boolean" ? value : void 0;
1159
1203
  const arr = (value) => Array.isArray(value) ? value : void 0;
1160
1204
  const obj = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
1161
- const target = (value) => {
1162
- if (typeof value === "number" && Number.isInteger(value) && value > 0) {
1163
- return value;
1164
- }
1165
- return value === "solana" || value === HYPERCORE_SPOT_CAIP2 ? value : void 0;
1166
- };
1205
+ const target = (value) => isTargetChain(value) ? value : void 0;
1167
1206
  return {
1168
1207
  // Raw, because it is the discriminant `refusal` switches on — anything
1169
1208
  // else has to reach it to be named in the error.
@@ -1253,6 +1292,9 @@ function toModalProps(config, canOpenExternally, walletWithheld) {
1253
1292
  debug: config.debug
1254
1293
  };
1255
1294
  }
1295
+ function currentShell() {
1296
+ return document.querySelector(".rs-modal-content.rs-embed");
1297
+ }
1256
1298
  function DepositEmbed({ target, onFatal }) {
1257
1299
  const [session, setSession] = useState(null);
1258
1300
  const [config, setConfig] = useState(null);
@@ -1264,8 +1306,15 @@ function DepositEmbed({ target, onFatal }) {
1264
1306
  screen: UNKNOWN_SCREEN,
1265
1307
  submitting: false
1266
1308
  });
1309
+ const contentHeightRef = useRef(void 0);
1310
+ const shellRef = useRef(null);
1311
+ const [shellToken, setShellToken] = useState(0);
1267
1312
  const onFatalRef = useRef(onFatal);
1268
1313
  onFatalRef.current = onFatal;
1314
+ const measuredHeight = useCallback(
1315
+ () => currentShell() === shellRef.current ? contentHeightRef.current : void 0,
1316
+ []
1317
+ );
1269
1318
  useEffect(
1270
1319
  () => trackVisualViewport(target ?? globalThis.window),
1271
1320
  [target]
@@ -1327,9 +1376,13 @@ function DepositEmbed({ target, onFatal }) {
1327
1376
  (state) => {
1328
1377
  if (isHomeScreen(state.screen)) completedRef.current = false;
1329
1378
  uiRef.current = state;
1379
+ if (currentShell() !== shellRef.current) setShellToken((token) => token + 1);
1330
1380
  session?.transport.emit(
1331
1381
  "ui.state",
1332
- uiStateFor({ ...state, walletRequestPending: walletPending })
1382
+ uiStateFor(
1383
+ { ...state, walletRequestPending: walletPending },
1384
+ measuredHeight()
1385
+ )
1333
1386
  );
1334
1387
  },
1335
1388
  [session, walletPending]
@@ -1345,9 +1398,29 @@ function DepositEmbed({ target, onFatal }) {
1345
1398
  if (!session) return;
1346
1399
  session.transport.emit(
1347
1400
  "ui.state",
1348
- uiStateFor({ ...uiRef.current, walletRequestPending: walletPending })
1401
+ uiStateFor(
1402
+ { ...uiRef.current, walletRequestPending: walletPending },
1403
+ measuredHeight()
1404
+ )
1349
1405
  );
1350
- }, [session, walletPending]);
1406
+ }, [session, walletPending, measuredHeight]);
1407
+ useEffect(() => {
1408
+ if (!session) return;
1409
+ const shell = currentShell();
1410
+ shellRef.current = shell;
1411
+ if (!shell) return;
1412
+ const stop = observeContentHeight(shell, (height) => {
1413
+ contentHeightRef.current = height;
1414
+ session.transport.emit(
1415
+ "ui.state",
1416
+ uiStateFor(
1417
+ { ...uiRef.current, walletRequestPending: pendingRef.current },
1418
+ height
1419
+ )
1420
+ );
1421
+ });
1422
+ return stop;
1423
+ }, [session, shellToken]);
1351
1424
  const refused = config && session ? refusal(config, session.hello.capabilities, channelScope) : null;
1352
1425
  const walletWithheld = channelScope === "all-frames" || channelScope === "probing";
1353
1426
  const refuseIfUnscoped = useCallback(async () => {
@@ -1417,6 +1490,15 @@ function DepositEmbed({ target, onFatal }) {
1417
1490
  })
1418
1491
  };
1419
1492
  },
1493
+ signRecovery: !walletWithheld && session.hello.capabilities.includes(CAPABILITY.SIGN_RECOVERY) ? async ({ chainId, signer, depositId, destination }) => {
1494
+ await refuseIfUnscoped();
1495
+ return await requestHostRecoverySignature(transport, {
1496
+ chainId,
1497
+ signer,
1498
+ depositId,
1499
+ destination
1500
+ });
1501
+ } : void 0,
1420
1502
  onUiState: handleUiState,
1421
1503
  onLifecycle: (event) => {
1422
1504
  if (event.type === "complete") completedRef.current = true;
@@ -1454,6 +1536,15 @@ function DepositEmbed({ target, onFatal }) {
1454
1536
  {
1455
1537
  ...toModalProps(ready, canOpenExternally, walletWithheld),
1456
1538
  openExternally: canOpenExternally ? openExternally : void 0,
1539
+ signRecovery: !walletWithheld && session.hello.capabilities.includes(CAPABILITY.SIGN_RECOVERY) ? async ({ chainId, signer, depositId, destination }) => {
1540
+ await refuseIfUnscoped();
1541
+ return await requestHostRecoverySignature(transport, {
1542
+ chainId,
1543
+ signer,
1544
+ depositId,
1545
+ destination
1546
+ });
1547
+ } : void 0,
1457
1548
  walletSession: walletWithheld ? void 0 : session.wallet.session,
1458
1549
  walletIntegration: "host_supplied",
1459
1550
  hasWalletClientProp: false,
package/dist/index.cjs CHANGED
@@ -1,18 +1,16 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
2
2
 
3
- var _chunkA6JPBMYYcjs = require('./chunk-A6JPBMYY.cjs');
3
+ var _chunkDTVZUBHIcjs = require('./chunk-DTVZUBHI.cjs');
4
4
 
5
5
 
6
- var _chunkYP7QVKQ6cjs = require('./chunk-YP7QVKQ6.cjs');
6
+ var _chunk6HUHVXCYcjs = require('./chunk-6HUHVXCY.cjs');
7
7
 
8
8
 
9
- var _chunkNQMC5VKQcjs = require('./chunk-NQMC5VKQ.cjs');
10
- require('./chunk-4J5ADVIN.cjs');
11
- require('./chunk-7AZFT2MV.cjs');
12
- require('./chunk-62UCV2LG.cjs');
13
- require('./chunk-HAQOFI3D.cjs');
14
- require('./chunk-AQVJUXSG.cjs');
15
- require('./chunk-DW2EQA2U.cjs');
9
+ var _chunkVPDCGD2Dcjs = require('./chunk-VPDCGD2D.cjs');
10
+ require('./chunk-X4D52IZK.cjs');
11
+ require('./chunk-3OOY67VJ.cjs');
12
+ require('./chunk-5P2PVLS4.cjs');
13
+ require('./chunk-LVCD6RHF.cjs');
16
14
 
17
15
 
18
16
 
@@ -42,7 +40,9 @@ require('./chunk-DW2EQA2U.cjs');
42
40
 
43
41
 
44
42
 
45
- var _chunk4KCSH4T3cjs = require('./chunk-4KCSH4T3.cjs');
43
+
44
+
45
+ var _chunkOY5N3E6Lcjs = require('./chunk-OY5N3E6L.cjs');
46
46
 
47
47
  // src/core/reown-disconnect.ts
48
48
  async function disconnectWallet() {
@@ -96,4 +96,6 @@ async function disconnectWallet() {
96
96
 
97
97
 
98
98
 
99
- exports.ClaimModal = _chunkYP7QVKQ6cjs.ClaimModal; exports.DepositModal = _chunkNQMC5VKQcjs.DepositModal; exports.HYPERCORE_CHAIN_ID = _chunk4KCSH4T3cjs.HYPERCORE_CHAIN_ID; exports.HYPERCORE_SPOT_CAIP2 = _chunk4KCSH4T3cjs.HYPERCORE_SPOT_CAIP2; exports.HYPERCORE_USDC_ADDRESS = _chunk4KCSH4T3cjs.HYPERCORE_USDC_ADDRESS; exports.HYPERCORE_USDT0_ADDRESS = _chunk4KCSH4T3cjs.HYPERCORE_USDT0_ADDRESS; exports.NATIVE_TOKEN_ADDRESS = _chunk4KCSH4T3cjs.NATIVE_TOKEN_ADDRESS; exports.SUPPORTED_CHAIN_IDS = _chunk4KCSH4T3cjs.SUPPORTED_CHAIN_IDS; exports.WithdrawModal = _chunkA6JPBMYYcjs.WithdrawModal; exports.chainRegistry = _chunk4KCSH4T3cjs.chainRegistry; exports.disconnectWallet = disconnectWallet; exports.findChainIdForToken = _chunk4KCSH4T3cjs.findChainIdForToken; exports.getChainBadge = _chunk4KCSH4T3cjs.getChainBadge; exports.getChainIcon = _chunk4KCSH4T3cjs.getChainIcon; exports.getChainId = _chunk4KCSH4T3cjs.getChainId; exports.getChainName = _chunk4KCSH4T3cjs.getChainName; exports.getExplorerName = _chunk4KCSH4T3cjs.getExplorerName; exports.getExplorerTxUrl = _chunk4KCSH4T3cjs.getExplorerTxUrl; exports.getExplorerUrl = _chunk4KCSH4T3cjs.getExplorerUrl; exports.getSupportedChainIds = _chunk4KCSH4T3cjs.getSupportedChainIds; exports.getSupportedTargetTokens = _chunk4KCSH4T3cjs.getSupportedTargetTokens; exports.getSupportedTokenSymbolsForChain = _chunk4KCSH4T3cjs.getSupportedTokenSymbolsForChain; exports.getTargetTokenSymbolsForChain = _chunk4KCSH4T3cjs.getTargetTokenSymbolsForChain; exports.getTokenAddress = _chunk4KCSH4T3cjs.getTokenAddress; exports.getTokenDecimals = _chunk4KCSH4T3cjs.getTokenDecimals; exports.getTokenDecimalsByAddress = _chunk4KCSH4T3cjs.getTokenDecimalsByAddress; exports.getTokenIcon = _chunk4KCSH4T3cjs.getTokenIcon; exports.getTokenSymbol = _chunk4KCSH4T3cjs.getTokenSymbol; exports.getUsdcAddress = _chunk4KCSH4T3cjs.getUsdcAddress; exports.getUsdcDecimals = _chunk4KCSH4T3cjs.getUsdcDecimals; exports.isSupportedTokenAddressForChain = _chunk4KCSH4T3cjs.isSupportedTokenAddressForChain; exports.tokenIconUrl = _chunk4KCSH4T3cjs.tokenIconUrl;
99
+
100
+
101
+ exports.ClaimModal = _chunk6HUHVXCYcjs.ClaimModal; exports.DepositModal = _chunkVPDCGD2Dcjs.DepositModal; exports.HYPERCORE_CHAIN_ID = _chunkOY5N3E6Lcjs.HYPERCORE_CHAIN_ID; exports.HYPERCORE_SPOT_CAIP2 = _chunkOY5N3E6Lcjs.HYPERCORE_SPOT_CAIP2; exports.HYPERCORE_USDC_ADDRESS = _chunkOY5N3E6Lcjs.HYPERCORE_USDC_ADDRESS; exports.HYPERCORE_USDT0_ADDRESS = _chunkOY5N3E6Lcjs.HYPERCORE_USDT0_ADDRESS; exports.NATIVE_TOKEN_ADDRESS = _chunkOY5N3E6Lcjs.NATIVE_TOKEN_ADDRESS; exports.STELLAR_PUBNET_CAIP2 = _chunkOY5N3E6Lcjs.STELLAR_PUBNET_CAIP2; exports.SUPPORTED_CHAIN_IDS = _chunkOY5N3E6Lcjs.SUPPORTED_CHAIN_IDS; exports.TRON_MAINNET_CAIP2 = _chunkOY5N3E6Lcjs.TRON_MAINNET_CAIP2; exports.WithdrawModal = _chunkDTVZUBHIcjs.WithdrawModal; exports.chainRegistry = _chunkOY5N3E6Lcjs.chainRegistry; exports.disconnectWallet = disconnectWallet; exports.findChainIdForToken = _chunkOY5N3E6Lcjs.findChainIdForToken; exports.getChainBadge = _chunkOY5N3E6Lcjs.getChainBadge; exports.getChainIcon = _chunkOY5N3E6Lcjs.getChainIcon; exports.getChainId = _chunkOY5N3E6Lcjs.getChainId; exports.getChainName = _chunkOY5N3E6Lcjs.getChainName; exports.getExplorerName = _chunkOY5N3E6Lcjs.getExplorerName; exports.getExplorerTxUrl = _chunkOY5N3E6Lcjs.getExplorerTxUrl; exports.getExplorerUrl = _chunkOY5N3E6Lcjs.getExplorerUrl; exports.getSupportedChainIds = _chunkOY5N3E6Lcjs.getSupportedChainIds; exports.getSupportedTargetTokens = _chunkOY5N3E6Lcjs.getSupportedTargetTokens; exports.getSupportedTokenSymbolsForChain = _chunkOY5N3E6Lcjs.getSupportedTokenSymbolsForChain; exports.getTargetTokenSymbolsForChain = _chunkOY5N3E6Lcjs.getTargetTokenSymbolsForChain; exports.getTokenAddress = _chunkOY5N3E6Lcjs.getTokenAddress; exports.getTokenDecimals = _chunkOY5N3E6Lcjs.getTokenDecimals; exports.getTokenDecimalsByAddress = _chunkOY5N3E6Lcjs.getTokenDecimalsByAddress; exports.getTokenIcon = _chunkOY5N3E6Lcjs.getTokenIcon; exports.getTokenSymbol = _chunkOY5N3E6Lcjs.getTokenSymbol; exports.getUsdcAddress = _chunkOY5N3E6Lcjs.getUsdcAddress; exports.getUsdcDecimals = _chunkOY5N3E6Lcjs.getUsdcDecimals; exports.isSupportedTokenAddressForChain = _chunkOY5N3E6Lcjs.isSupportedTokenAddressForChain; exports.tokenIconUrl = _chunkOY5N3E6Lcjs.tokenIconUrl;