@xyo-network/react-chain-provider 1.20.2 → 1.20.3

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 (56) hide show
  1. package/dist/browser/contexts/gateway/Provider.d.ts +0 -2
  2. package/dist/browser/contexts/gateway/Provider.d.ts.map +1 -1
  3. package/dist/browser/contexts/gateway/state.d.ts +1 -2
  4. package/dist/browser/contexts/gateway/state.d.ts.map +1 -1
  5. package/dist/browser/contexts/gateway/story/GatewayStats.d.ts.map +1 -1
  6. package/dist/browser/contexts/in-page-gateways/Provider.d.ts +8 -0
  7. package/dist/browser/contexts/in-page-gateways/Provider.d.ts.map +1 -0
  8. package/dist/browser/contexts/in-page-gateways/context.d.ts +8 -0
  9. package/dist/browser/contexts/in-page-gateways/context.d.ts.map +1 -0
  10. package/dist/browser/contexts/in-page-gateways/index.d.ts +5 -0
  11. package/dist/browser/contexts/in-page-gateways/index.d.ts.map +1 -0
  12. package/dist/browser/contexts/in-page-gateways/state.d.ts +10 -0
  13. package/dist/browser/contexts/in-page-gateways/state.d.ts.map +1 -0
  14. package/dist/browser/contexts/in-page-gateways/use.d.ts +4 -0
  15. package/dist/browser/contexts/in-page-gateways/use.d.ts.map +1 -0
  16. package/dist/browser/contexts/index.d.ts +1 -0
  17. package/dist/browser/contexts/index.d.ts.map +1 -1
  18. package/dist/browser/hooks/client/helpers/index.d.ts +0 -1
  19. package/dist/browser/hooks/client/helpers/index.d.ts.map +1 -1
  20. package/dist/browser/hooks/client/index.d.ts +0 -1
  21. package/dist/browser/hooks/client/index.d.ts.map +1 -1
  22. package/dist/browser/index.d.ts +1 -0
  23. package/dist/browser/index.d.ts.map +1 -1
  24. package/dist/browser/index.mjs +177 -132
  25. package/dist/browser/index.mjs.map +1 -1
  26. package/dist/browser/lib/buildGateway.d.ts.map +1 -0
  27. package/dist/browser/lib/index.d.ts +1 -0
  28. package/dist/browser/lib/index.d.ts.map +1 -1
  29. package/dist/browser/types/ContextGatewayType.d.ts +3 -0
  30. package/dist/browser/types/ContextGatewayType.d.ts.map +1 -0
  31. package/dist/browser/types/index.d.ts +1 -0
  32. package/dist/browser/types/index.d.ts.map +1 -1
  33. package/package.json +15 -15
  34. package/src/contexts/gateway/Provider.tsx +26 -17
  35. package/src/contexts/gateway/state.ts +1 -3
  36. package/src/contexts/gateway/story/GatewayStats.tsx +14 -11
  37. package/src/contexts/gateway/story/Provider.stories.tsx +1 -1
  38. package/src/contexts/gateway/story/ProviderWithWallet.stories.tsx +1 -1
  39. package/src/contexts/in-page-gateways/Provider.tsx +82 -0
  40. package/src/contexts/in-page-gateways/context.ts +5 -0
  41. package/src/contexts/in-page-gateways/index.ts +4 -0
  42. package/src/contexts/in-page-gateways/state.ts +12 -0
  43. package/src/contexts/in-page-gateways/use.ts +5 -0
  44. package/src/contexts/index.ts +1 -0
  45. package/src/hooks/client/helpers/index.ts +0 -1
  46. package/src/hooks/client/index.ts +0 -1
  47. package/src/index.ts +1 -0
  48. package/src/lib/index.ts +1 -0
  49. package/src/types/ContextGatewayType.ts +4 -0
  50. package/src/types/index.ts +1 -0
  51. package/dist/browser/hooks/client/helpers/buildGateway.d.ts.map +0 -1
  52. package/dist/browser/hooks/client/useGatewayFromConfig.d.ts +0 -9
  53. package/dist/browser/hooks/client/useGatewayFromConfig.d.ts.map +0 -1
  54. package/src/hooks/client/useGatewayFromConfig.ts +0 -43
  55. /package/dist/browser/{hooks/client/helpers → lib}/buildGateway.d.ts +0 -0
  56. /package/src/{hooks/client/helpers → lib}/buildGateway.ts +0 -0
@@ -27,9 +27,9 @@ var ConnectedAccount = /* @__PURE__ */ __name(({ address }) => {
27
27
  // src/components/connected/ConnectAccountsStack.tsx
28
28
  import { Alert, AlertTitle, Button, Stack as Stack2, Typography as Typography2 } from "@mui/material";
29
29
  import { ButtonEx } from "@xylabs/react-button";
30
- import { isDefined as isDefined11, isUndefined as isUndefined8 } from "@xylabs/sdk-js";
31
- import { ErrorRender } from "@xyo-network/react-error";
32
- import React4, { useEffect as useEffect6 } from "react";
30
+ import { isDefined as isDefined10, isUndefined as isUndefined8 } from "@xylabs/sdk-js";
31
+ import { ErrorRender as ErrorRender2 } from "@xyo-network/react-error";
32
+ import React5, { useEffect as useEffect7 } from "react";
33
33
 
34
34
  // src/hooks/account/helpers/formatAccountBalanceHistory.ts
35
35
  import { hexToBigInt } from "@xylabs/sdk-js";
@@ -87,6 +87,24 @@ var balanceForRange = /* @__PURE__ */ __name((address, results) => {
87
87
  ];
88
88
  }, "balanceForRange");
89
89
 
90
+ // src/lib/buildGateway.ts
91
+ import { assertEx, isDefined } from "@xylabs/sdk-js";
92
+ import { basicRemoteRunnerLocator, basicRemoteViewerLocator } from "@xyo-network/chain-orchestration";
93
+ import { DefaultNetworks, NetworkDataLakeUrls, XyoGatewayMoniker } from "@xyo-network/xl1-sdk";
94
+ var buildGateway = /* @__PURE__ */ __name(async (gatewayName, account) => {
95
+ const network = DefaultNetworks.find((network2) => network2.id === gatewayName);
96
+ const resolvedNetwork = assertEx(network, () => `No network found for id ${gatewayName}`);
97
+ const remoteConfig = {
98
+ rpc: {
99
+ protocol: "http",
100
+ url: `${resolvedNetwork.url}/rpc`
101
+ }
102
+ };
103
+ const dataLakeEndpoint = NetworkDataLakeUrls[gatewayName];
104
+ const locator = isDefined(account) ? await basicRemoteRunnerLocator(gatewayName, remoteConfig, account, dataLakeEndpoint) : await basicRemoteViewerLocator(gatewayName, remoteConfig, dataLakeEndpoint);
105
+ return await locator.getInstance(XyoGatewayMoniker);
106
+ }, "buildGateway");
107
+
90
108
  // src/lib/findMinimumBlock.ts
91
109
  var findMinimumBlock = /* @__PURE__ */ __name((history) => {
92
110
  if (history.length === 0) return 0;
@@ -176,7 +194,7 @@ async function getXyoClient(timeout = CLIENT_LISTENER_TIMEOUT) {
176
194
  __name(getXyoClient, "getXyoClient");
177
195
 
178
196
  // src/hooks/helpers/transaction/Confirmation.ts
179
- import { assertEx, delay, forget, isDefined, isNull } from "@xylabs/sdk-js";
197
+ import { assertEx as assertEx2, delay, forget, isDefined as isDefined2, isNull } from "@xylabs/sdk-js";
180
198
  var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
181
199
  static {
182
200
  __name(this, "TransactionConfirmationStatus");
@@ -187,10 +205,10 @@ var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
187
205
  this._params = params;
188
206
  }
189
207
  get exp() {
190
- return assertEx(this.transaction[0].exp, () => "exp is not found, transaction is not set");
208
+ return assertEx2(this.transaction[0].exp, () => "exp is not found, transaction is not set");
191
209
  }
192
210
  get nbf() {
193
- return assertEx(this.transaction[0].nbf, () => "nbf is not found, transaction is not set");
211
+ return assertEx2(this.transaction[0].nbf, () => "nbf is not found, transaction is not set");
194
212
  }
195
213
  get onStatusUpdate() {
196
214
  return this._params.onStatusUpdate;
@@ -214,7 +232,7 @@ var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
214
232
  this.active = true;
215
233
  try {
216
234
  const currentBlockNumber = await this.viewer.currentBlockNumber();
217
- while (isDefined(currentBlockNumber) && this.active) {
235
+ while (isDefined2(currentBlockNumber) && this.active) {
218
236
  await this.checkBlock(currentBlockNumber);
219
237
  await delay(1e3);
220
238
  }
@@ -374,24 +392,6 @@ var usePermissions = /* @__PURE__ */ __name(() => {
374
392
  import { usePromise as usePromise2 } from "@xylabs/react-promise";
375
393
  import { isArray, isDefined as isDefined4, isDefinedNotNull, isString } from "@xylabs/sdk-js";
376
394
 
377
- // src/hooks/client/helpers/buildGateway.ts
378
- import { assertEx as assertEx2, isDefined as isDefined2 } from "@xylabs/sdk-js";
379
- import { basicRemoteRunnerLocator, basicRemoteViewerLocator } from "@xyo-network/chain-orchestration";
380
- import { DefaultNetworks, NetworkDataLakeUrls, XyoGatewayMoniker } from "@xyo-network/xl1-sdk";
381
- var buildGateway = /* @__PURE__ */ __name(async (gatewayName, account) => {
382
- const network = DefaultNetworks.find((network2) => network2.id === gatewayName);
383
- const resolvedNetwork = assertEx2(network, () => `No network found for id ${gatewayName}`);
384
- const remoteConfig = {
385
- rpc: {
386
- protocol: "http",
387
- url: `${resolvedNetwork.url}/rpc`
388
- }
389
- };
390
- const dataLakeEndpoint = NetworkDataLakeUrls[gatewayName];
391
- const locator = isDefined2(account) ? await basicRemoteRunnerLocator(gatewayName, remoteConfig, account, dataLakeEndpoint) : await basicRemoteViewerLocator(gatewayName, remoteConfig, dataLakeEndpoint);
392
- return await locator.getInstance(XyoGatewayMoniker);
393
- }, "buildGateway");
394
-
395
395
  // src/hooks/client/helpers/findCaveat.ts
396
396
  import { isDefined as isDefined3 } from "@xylabs/sdk-js";
397
397
  var findCaveat = /* @__PURE__ */ __name(async (permissions, targetCapability, targetCaveatType) => {
@@ -435,52 +435,13 @@ var useAccountPermissions = /* @__PURE__ */ __name(() => {
435
435
  ]);
436
436
  }, "useAccountPermissions");
437
437
 
438
- // src/hooks/client/useGatewayFromConfig.ts
439
- import { usePromise as usePromise3 } from "@xylabs/react-promise";
440
- import { isDefined as isDefined5 } from "@xylabs/sdk-js";
441
- import { useState } from "react";
442
- var useGatewayFromConfig = /* @__PURE__ */ __name((gatewayName, account) => {
443
- const [gatewayCache, setGatewayCache] = useState({});
444
- const clearGateways = /* @__PURE__ */ __name(() => setGatewayCache({}), "clearGateways");
445
- const [previousAccount, setPreviousAccount] = useState(account);
446
- if (previousAccount !== account) {
447
- clearGateways();
448
- setPreviousAccount(account);
449
- }
450
- const builtGatewayResults = usePromise3(async () => {
451
- if (isDefined5(gatewayName)) {
452
- if (isDefined5(gatewayCache[gatewayName])) {
453
- return gatewayCache[gatewayName];
454
- } else {
455
- const gateway2 = await buildGateway(gatewayName, account);
456
- setGatewayCache((prev) => ({
457
- ...prev,
458
- [gatewayName]: gateway2
459
- }));
460
- return gateway2;
461
- }
462
- }
463
- }, [
464
- gatewayName,
465
- account,
466
- gatewayCache
467
- ]);
468
- const [gateway, error, state] = builtGatewayResults;
469
- return {
470
- gateway,
471
- error,
472
- state,
473
- clearGateways
474
- };
475
- }, "useGatewayFromConfig");
476
-
477
438
  // src/hooks/client/useGatewayFromWallet.ts
478
- import { isDefined as isDefined6, isNull as isNull3 } from "@xylabs/sdk-js";
439
+ import { isDefined as isDefined5, isNull as isNull3 } from "@xylabs/sdk-js";
479
440
  var useGatewayFromWallet = /* @__PURE__ */ __name((gatewayName, timeout) => {
480
441
  const { client, isLoading, error, timedout } = useClientFromWallet(timeout);
481
442
  const resolveGateway = /* @__PURE__ */ __name(() => {
482
443
  if (isNull3(client)) return null;
483
- if (timedout && !isLoading && isDefined6(gatewayName)) {
444
+ if (timedout && !isLoading && isDefined5(gatewayName)) {
484
445
  return null;
485
446
  }
486
447
  return client?.gateways?.[gatewayName];
@@ -503,11 +464,11 @@ import React2, { useMemo } from "react";
503
464
 
504
465
  // src/contexts/current-block/usePollCurrentBlock.ts
505
466
  import { isDefinedNotNull as isDefinedNotNull2, isUndefinedOrNull } from "@xylabs/sdk-js";
506
- import { startTransition, useEffect as useEffect2, useState as useState2 } from "react";
467
+ import { startTransition, useEffect as useEffect2, useState } from "react";
507
468
  var DEFAULT_POLL_INTERVAL = 1e4;
508
469
  var usePollCurrentBlock = /* @__PURE__ */ __name((viewer, interval = DEFAULT_POLL_INTERVAL, pause = false) => {
509
- const [currentBlock, setCurrentBlock] = useState2(null);
510
- const [error, setError] = useState2();
470
+ const [currentBlock, setCurrentBlock] = useState(null);
471
+ const [error, setError] = useState();
511
472
  useEffect2(() => {
512
473
  let isMounted = true;
513
474
  const fetchBlock = /* @__PURE__ */ __name(async () => {
@@ -591,16 +552,95 @@ var GatewayContext = createContextEx2();
591
552
 
592
553
  // src/contexts/gateway/Provider.tsx
593
554
  import { isDefinedNotNull as isDefinedNotNull3, isNull as isNull4 } from "@xylabs/sdk-js";
594
- import React3, { useEffect as useEffect3, useMemo as useMemo2, useState as useState3 } from "react";
595
- var GatewayProvider = /* @__PURE__ */ __name(({ account, gatewayName, children }) => {
555
+ import { ErrorRender } from "@xyo-network/react-error";
556
+ import React4, { useEffect as useEffect4, useMemo as useMemo3, useState as useState3 } from "react";
557
+
558
+ // src/contexts/in-page-gateways/context.ts
559
+ import { createContextEx as createContextEx3 } from "@xylabs/react-shared";
560
+ var InPageGatewaysContext = createContextEx3();
561
+
562
+ // src/contexts/in-page-gateways/Provider.tsx
563
+ import { DefaultNetworks as DefaultNetworks2 } from "@xyo-network/xl1-sdk";
564
+ import React3, { startTransition as startTransition2, useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo2, useState as useState2 } from "react";
565
+ var InPageGatewaysProvider = /* @__PURE__ */ __name(({ account, children }) => {
566
+ const [gateways, setGateways] = useState2({});
567
+ const [errors, setErrors] = useState2({});
568
+ const [previousAccount, setPreviousAccount] = useState2(account);
569
+ const clearAll = useCallback2(() => {
570
+ setGateways({});
571
+ setErrors({});
572
+ }, []);
573
+ if (previousAccount !== account) {
574
+ clearAll();
575
+ setPreviousAccount(account);
576
+ }
577
+ useEffect3(() => {
578
+ let cancelled = false;
579
+ const buildAll = /* @__PURE__ */ __name(async () => {
580
+ const results = await Promise.allSettled(DefaultNetworks2.map(async (network) => {
581
+ const gateway = await buildGateway(network.id, account);
582
+ return {
583
+ id: network.id,
584
+ gateway
585
+ };
586
+ }));
587
+ if (cancelled) return;
588
+ const nextGateways = {};
589
+ const nextErrors = {};
590
+ for (const [index, result] of results.entries()) {
591
+ const networkId = DefaultNetworks2[index].id;
592
+ if (result.status === "fulfilled") {
593
+ nextGateways[networkId] = result.value.gateway;
594
+ } else {
595
+ nextErrors[networkId] = result.reason instanceof Error ? result.reason : new Error(String(result.reason));
596
+ }
597
+ }
598
+ startTransition2(() => {
599
+ setGateways(nextGateways);
600
+ setErrors(nextErrors);
601
+ });
602
+ }, "buildAll");
603
+ void buildAll();
604
+ return () => {
605
+ cancelled = true;
606
+ };
607
+ }, [
608
+ account
609
+ ]);
610
+ const value = useMemo2(() => {
611
+ const value2 = {
612
+ clearAll,
613
+ errors,
614
+ gateways,
615
+ provided: true
616
+ };
617
+ return value2;
618
+ }, [
619
+ clearAll,
620
+ errors,
621
+ gateways
622
+ ]);
623
+ return /* @__PURE__ */ React3.createElement(InPageGatewaysContext, {
624
+ value
625
+ }, children);
626
+ }, "InPageGatewaysProvider");
627
+
628
+ // src/contexts/in-page-gateways/use.ts
629
+ import { useContextEx as useContextEx2 } from "@xylabs/react-shared";
630
+ var useProvidedInPageGateways = /* @__PURE__ */ __name((required = true) => useContextEx2(InPageGatewaysContext, "InPageGateways", required), "useProvidedInPageGateways");
631
+
632
+ // src/contexts/gateway/Provider.tsx
633
+ var GatewayProvider = /* @__PURE__ */ __name(({ gatewayName, children }) => {
596
634
  const [defaultGateway, setDefaultGateway] = useState3();
597
635
  const [gateways, setGateways] = useState3({
598
636
  inPageGateway: void 0,
599
637
  walletGateway: void 0
600
638
  });
601
639
  const { gateway: gatewayFromWallet, error: gatewayFromWalletError } = useGatewayFromWallet(gatewayName);
602
- const { gateway: gatewayFromConfig, error: gatewayFromConfigError, clearGateways: clearGatewaysFromConfig } = useGatewayFromConfig(gatewayName, account);
603
- useEffect3(() => {
640
+ const { gateways: allGateways, errors: allGatewayErrors, clearAll } = useProvidedInPageGateways(true);
641
+ const gatewayFromConfig = gatewayName ? allGateways[gatewayName] : void 0;
642
+ const gatewayFromConfigError = gatewayName ? allGatewayErrors[gatewayName] : void 0;
643
+ useEffect4(() => {
604
644
  if (isNull4(gatewayFromWallet)) {
605
645
  setDefaultGateway(gatewayFromConfig);
606
646
  setGateways({
@@ -618,13 +658,13 @@ var GatewayProvider = /* @__PURE__ */ __name(({ account, gatewayName, children }
618
658
  gatewayFromConfig,
619
659
  gatewayFromWallet
620
660
  ]);
621
- const value = useMemo2(() => {
661
+ const value = useMemo3(() => {
622
662
  const value2 = {
623
663
  defaultGateway,
624
664
  error: gatewayFromWalletError || gatewayFromConfigError,
625
665
  gateways,
626
666
  provided: true,
627
- resetGatewaysFromConfig: clearGatewaysFromConfig
667
+ resetGatewaysFromConfig: clearAll
628
668
  };
629
669
  return value2;
630
670
  }, [
@@ -632,16 +672,18 @@ var GatewayProvider = /* @__PURE__ */ __name(({ account, gatewayName, children }
632
672
  gatewayFromWalletError,
633
673
  gatewayFromConfigError,
634
674
  gateways,
635
- clearGatewaysFromConfig
675
+ clearAll
636
676
  ]);
637
- return /* @__PURE__ */ React3.createElement(GatewayContext, {
677
+ return /* @__PURE__ */ React4.createElement(GatewayContext, {
638
678
  value
639
- }, children);
679
+ }, /* @__PURE__ */ React4.createElement(ErrorRender, {
680
+ error: gatewayFromConfigError
681
+ }), children);
640
682
  }, "GatewayProvider");
641
683
 
642
684
  // src/contexts/gateway/use.ts
643
- import { useContextEx as useContextEx2 } from "@xylabs/react-shared";
644
- var useProvidedGateway = /* @__PURE__ */ __name((required = true) => useContextEx2(GatewayContext, "Gateway", required), "useProvidedGateway");
685
+ import { useContextEx as useContextEx3 } from "@xylabs/react-shared";
686
+ var useProvidedGateway = /* @__PURE__ */ __name((required = true) => useContextEx3(GatewayContext, "Gateway", required), "useProvidedGateway");
645
687
 
646
688
  // src/hooks/gateway/useNetwork.ts
647
689
  var useNetworkFromGateway = /* @__PURE__ */ __name(() => {
@@ -662,16 +704,16 @@ var useViewerFromGateway = /* @__PURE__ */ __name(() => {
662
704
  }, "useViewerFromGateway");
663
705
 
664
706
  // src/hooks/useAddressBalance.ts
665
- import { usePromise as usePromise4 } from "@xylabs/react-promise";
707
+ import { usePromise as usePromise3 } from "@xylabs/react-promise";
666
708
  import { isUndefined as isUndefined3, isUndefinedOrNull as isUndefinedOrNull2 } from "@xylabs/sdk-js";
667
709
  import { ShiftedBigInt } from "@xyo-network/xl1-sdk";
668
- import { useMemo as useMemo3, useRef, useState as useState4 } from "react";
710
+ import { useMemo as useMemo4, useRef, useState as useState4 } from "react";
669
711
  var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
670
712
  const [balancesResult, setBalancesResult] = useState4();
671
713
  const [loading, setLoading] = useState4(false);
672
714
  const [balancesError, setBalancesError] = useState4();
673
715
  const balancePromiseRef = useRef(null);
674
- usePromise4(async () => {
716
+ usePromise3(async () => {
675
717
  if (isUndefined3(viewer) || isUndefined3(address)) return;
676
718
  setLoading(true);
677
719
  setBalancesError(void 0);
@@ -696,14 +738,14 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
696
738
  viewer,
697
739
  refresh
698
740
  ]);
699
- useMemo3(() => {
741
+ useMemo4(() => {
700
742
  if (balancesError) {
701
743
  setLoading(false);
702
744
  }
703
745
  }, [
704
746
  balancesError
705
747
  ]);
706
- const shiftedBigInt = useMemo3(() => {
748
+ const shiftedBigInt = useMemo4(() => {
707
749
  if (typeof balancesResult !== "bigint") return;
708
750
  return new ShiftedBigInt(balancesResult, {
709
751
  places: 18,
@@ -715,12 +757,12 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
715
757
  }, [
716
758
  balancesResult
717
759
  ]);
718
- const balanceIntlFriendly = useMemo3(() => {
760
+ const balanceIntlFriendly = useMemo4(() => {
719
761
  return shiftedBigInt?.toFullString();
720
762
  }, [
721
763
  shiftedBigInt
722
764
  ]);
723
- const shortBalanceIntlFriendly = useMemo3(() => {
765
+ const shortBalanceIntlFriendly = useMemo4(() => {
724
766
  return isUndefinedOrNull2(balancesResult) ? void 0 : balancesResult < 1000000000000n && balancesResult > 0n ? "<0.00001" : shiftedBigInt?.toShortString();
725
767
  }, [
726
768
  balancesResult,
@@ -737,22 +779,22 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
737
779
  }, "useAddressBalance");
738
780
 
739
781
  // src/hooks/useConfirmTransactionBase.ts
740
- import { usePromise as usePromise5 } from "@xylabs/react-promise";
741
- import { forget as forget2, isDefined as isDefined7, isHash } from "@xylabs/sdk-js";
782
+ import { usePromise as usePromise4 } from "@xylabs/react-promise";
783
+ import { forget as forget2, isDefined as isDefined6, isHash } from "@xylabs/sdk-js";
742
784
  import { PayloadBuilder } from "@xyo-network/sdk-js";
743
- import { useEffect as useEffect4, useState as useState5 } from "react";
785
+ import { useEffect as useEffect5, useState as useState5 } from "react";
744
786
  var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast, onStatusUpdate, runner, viewer) => {
745
787
  const [status, setStatus] = useState5();
746
788
  const onStatusUpdateLocal = /* @__PURE__ */ __name((newStatus) => {
747
789
  setStatus(newStatus);
748
790
  onStatusUpdate?.(newStatus);
749
791
  }, "onStatusUpdateLocal");
750
- const [transactionConfirmationStatus, transactionConfirmationError] = usePromise5(async () => {
751
- const hasRunner = isDefined7(runner);
792
+ const [transactionConfirmationStatus, transactionConfirmationError] = usePromise4(async () => {
793
+ const hasRunner = isDefined6(runner);
752
794
  if (transaction && viewer) {
753
795
  const hash = hasRunner ? await runner.broadcastTransaction(transaction) : await PayloadBuilder.hash(transaction[0]);
754
796
  if (isHash(hash)) {
755
- if (hasRunner && isDefined7(onBroadcast)) onBroadcast(hash);
797
+ if (hasRunner && isDefined6(onBroadcast)) onBroadcast(hash);
756
798
  const params = {
757
799
  onStatusUpdate: onStatusUpdateLocal,
758
800
  transaction,
@@ -771,7 +813,7 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
771
813
  runner,
772
814
  viewer
773
815
  ]);
774
- useEffect4(() => {
816
+ useEffect5(() => {
775
817
  return () => {
776
818
  if (transactionConfirmationStatus) {
777
819
  forget2(transactionConfirmationStatus.stop());
@@ -790,13 +832,13 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
790
832
  import { asAddress } from "@xylabs/sdk-js";
791
833
  import { assertEx as assertEx3 } from "@xylabs/sdk-js";
792
834
  import { MainNetwork } from "@xyo-network/xl1-sdk";
793
- import { useCallback as useCallback2, useState as useState6 } from "react";
835
+ import { useCallback as useCallback3, useState as useState6 } from "react";
794
836
  var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, timeout) => {
795
837
  const [connectError, setConnectError] = useState6();
796
838
  const { gateway, error, timedout } = useGatewayFromWallet(gatewayName, timeout);
797
839
  const [accountPermissions, accountPermissionsError] = useAccountPermissions();
798
840
  const [address, setAddress] = useState6();
799
- const connectSigner = useCallback2(async () => {
841
+ const connectSigner = useCallback3(async () => {
800
842
  try {
801
843
  setConnectError(void 0);
802
844
  const assertedGateway = assertEx3(gateway, () => `Gateway ${gatewayName} is not available`);
@@ -821,10 +863,10 @@ var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, ti
821
863
  }, "useConnectAccount");
822
864
 
823
865
  // src/hooks/useCurrentBlock.ts
824
- import { usePromise as usePromise6 } from "@xylabs/react-promise";
866
+ import { usePromise as usePromise5 } from "@xylabs/react-promise";
825
867
  import { isDefinedNotNull as isDefinedNotNull4 } from "@xylabs/sdk-js";
826
868
  var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
827
- return usePromise6(async () => {
869
+ return usePromise5(async () => {
828
870
  if (isDefinedNotNull4(viewer) && refresh > 0) {
829
871
  const block = await viewer.currentBlock();
830
872
  return block;
@@ -836,7 +878,7 @@ var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
836
878
  }, "useCurrentBlock");
837
879
  var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
838
880
  const viewer = useViewerFromGateway();
839
- return usePromise6(async () => {
881
+ return usePromise5(async () => {
840
882
  if (isDefinedNotNull4(viewer) && refresh > 0) {
841
883
  const block = await viewer.currentBlock();
842
884
  return block;
@@ -848,11 +890,11 @@ var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
848
890
  }, "useCurrentBlockFromGateway");
849
891
 
850
892
  // src/hooks/useHttpRpcRunner.ts
851
- import { usePromise as usePromise7 } from "@xylabs/react-promise";
893
+ import { usePromise as usePromise6 } from "@xylabs/react-promise";
852
894
  import { isUndefined as isUndefined4 } from "@xylabs/sdk-js";
853
895
  import { AccountBalanceViewerRpcSchemas, buildJsonRpcProviderLocator, HttpRpcTransport, JsonRpcAccountBalanceViewer, SimpleTransactionViewer, XyoRunnerMoniker } from "@xyo-network/xl1-sdk";
854
896
  var useHttpRpcRunner = /* @__PURE__ */ __name((url) => {
855
- return usePromise7(async () => {
897
+ return usePromise6(async () => {
856
898
  if (isUndefined4(url)) {
857
899
  return;
858
900
  }
@@ -873,9 +915,9 @@ var useHttpRpcRunner = /* @__PURE__ */ __name((url) => {
873
915
  // src/hooks/useNetwork.ts
874
916
  import { isUndefined as isUndefined5 } from "@xylabs/sdk-js";
875
917
  import { SimpleXyoNetwork } from "@xyo-network/xl1-sdk";
876
- import { useMemo as useMemo4 } from "react";
918
+ import { useMemo as useMemo5 } from "react";
877
919
  var useNetwork = /* @__PURE__ */ __name((id) => {
878
- const network = useMemo4(() => {
920
+ const network = useMemo5(() => {
879
921
  if (isUndefined5(id)) return;
880
922
  return new SimpleXyoNetwork(id);
881
923
  }, [
@@ -885,10 +927,10 @@ var useNetwork = /* @__PURE__ */ __name((id) => {
885
927
  }, "useNetwork");
886
928
 
887
929
  // src/hooks/useSigner.ts
888
- import { usePromise as usePromise8 } from "@xylabs/react-promise";
930
+ import { usePromise as usePromise7 } from "@xylabs/react-promise";
889
931
  import { SimpleXyoSigner } from "@xyo-network/xl1-sdk";
890
932
  var useSigner = /* @__PURE__ */ __name((_provider, account) => {
891
- return usePromise8(async () => account ? await SimpleXyoSigner.create({
933
+ return usePromise7(async () => account ? await SimpleXyoSigner.create({
892
934
  account
893
935
  }) : void 0, [
894
936
  account
@@ -896,11 +938,11 @@ var useSigner = /* @__PURE__ */ __name((_provider, account) => {
896
938
  }, "useSigner");
897
939
 
898
940
  // src/hooks/viewer/useCheckRpc.ts
899
- import { usePromise as usePromise9 } from "@xylabs/react-promise";
900
- import { delay as delay2, isDefined as isDefined8, isUndefined as isUndefined6 } from "@xylabs/sdk-js";
941
+ import { usePromise as usePromise8 } from "@xylabs/react-promise";
942
+ import { delay as delay2, isDefined as isDefined7, isUndefined as isUndefined6 } from "@xylabs/sdk-js";
901
943
  import { basicRemoteViewerLocator as basicRemoteViewerLocator2 } from "@xyo-network/chain-orchestration";
902
944
  import { LocalNetwork, SequenceNetwork, XyoViewerMoniker } from "@xyo-network/xl1-sdk";
903
- import { useEffect as useEffect5, useState as useState7 } from "react";
945
+ import { useEffect as useEffect6, useState as useState7 } from "react";
904
946
  var INTERVAL = 5e3;
905
947
  var localRpcEndpoint = `${LocalNetwork.url}/rpc`;
906
948
  var sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`;
@@ -915,7 +957,7 @@ var useCheckSequenceRpc = /* @__PURE__ */ __name(() => {
915
957
  var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
916
958
  const [isLocalProducer, setIsLocalProducer] = useState7(false);
917
959
  const [error, setError] = useState7();
918
- const [viewer] = usePromise9(async () => {
960
+ const [viewer] = usePromise8(async () => {
919
961
  if (isUndefined6(endpoint)) return;
920
962
  const locator = await basicRemoteViewerLocator2(endpoint, {
921
963
  rpc: {
@@ -928,14 +970,14 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
928
970
  }, [
929
971
  endpoint
930
972
  ]);
931
- useEffect5(() => {
973
+ useEffect6(() => {
932
974
  if (isUndefined6(viewer)) return;
933
975
  void (async () => {
934
976
  setError(void 0);
935
977
  while (!isLocalProducer) {
936
978
  try {
937
979
  const block = await viewer.currentBlock();
938
- setIsLocalProducer(isDefined8(block));
980
+ setIsLocalProducer(isDefined7(block));
939
981
  } catch (err) {
940
982
  setError(err);
941
983
  setIsLocalProducer(false);
@@ -954,8 +996,8 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
954
996
  }, "useCheckRpc");
955
997
 
956
998
  // src/hooks/viewer/useHttpRpcViewer.ts
957
- import { usePromise as usePromise10 } from "@xylabs/react-promise";
958
- import { isDefined as isDefined9, isString as isString2, isUndefined as isUndefined7 } from "@xylabs/sdk-js";
999
+ import { usePromise as usePromise9 } from "@xylabs/react-promise";
1000
+ import { isDefined as isDefined8, isString as isString2, isUndefined as isUndefined7 } from "@xylabs/sdk-js";
959
1001
  import { AccountBalanceViewerRpcSchemas as AccountBalanceViewerRpcSchemas2, buildJsonRpcProviderLocator as buildJsonRpcProviderLocator2, HttpRpcTransport as HttpRpcTransport2, JsonRpcAccountBalanceViewer as JsonRpcAccountBalanceViewer2, JsonRpcXyoViewer as JsonRpcXyoViewer2, NetworkDataLakeUrls as NetworkDataLakeUrls2, RestDataLakeViewer, SimpleTransactionViewer as SimpleTransactionViewer2, XyoViewerMoniker as XyoViewerMoniker2, XyoViewerRpcSchemas } from "@xyo-network/xl1-sdk";
960
1002
 
961
1003
  // src/hooks/viewer/ViewerWithDataLake.ts
@@ -1022,7 +1064,7 @@ var buildLocator = /* @__PURE__ */ __name(async (transportFactory, dataLakeViewe
1022
1064
  transport: await transportFactory(AccountBalanceViewerRpcSchemas2)
1023
1065
  }));
1024
1066
  locator.register(SimpleTransactionViewer2.factory(SimpleTransactionViewer2.dependencies, {}));
1025
- if (isDefined9(dataLakeViewerParams)) {
1067
+ if (isDefined8(dataLakeViewerParams)) {
1026
1068
  locator.register(RestDataLakeViewer.factory(RestDataLakeViewer.dependencies, dataLakeViewerParams));
1027
1069
  }
1028
1070
  locator.register(ViewerWithDataLake.factory(JsonRpcXyoViewer2.dependencies, {
@@ -1031,7 +1073,7 @@ var buildLocator = /* @__PURE__ */ __name(async (transportFactory, dataLakeViewe
1031
1073
  return locator;
1032
1074
  }, "buildLocator");
1033
1075
  var useHttpRpcViewer = /* @__PURE__ */ __name((urlOrNetwork) => {
1034
- const [resolvedViewer] = usePromise10(async () => {
1076
+ const [resolvedViewer] = usePromise9(async () => {
1035
1077
  if (isUndefined7(urlOrNetwork)) {
1036
1078
  return;
1037
1079
  }
@@ -1045,16 +1087,16 @@ var useHttpRpcViewer = /* @__PURE__ */ __name((urlOrNetwork) => {
1045
1087
  }, "useHttpRpcViewer");
1046
1088
 
1047
1089
  // src/hooks/viewer/useViewerFromWallet.ts
1048
- import { usePromise as usePromise11 } from "@xylabs/react-promise";
1049
- import { isDefined as isDefined10, isDefinedNotNull as isDefinedNotNull5, isNull as isNull6 } from "@xylabs/sdk-js";
1090
+ import { usePromise as usePromise10 } from "@xylabs/react-promise";
1091
+ import { isDefined as isDefined9, isDefinedNotNull as isDefinedNotNull5, isNull as isNull6 } from "@xylabs/sdk-js";
1050
1092
  var useViewerFromWallet = /* @__PURE__ */ __name((networkId, timeout) => {
1051
1093
  const { gateway, error, isLoading, timedout } = useGatewayFromWallet(networkId, timeout);
1052
- const result = usePromise11(async () => {
1094
+ const result = usePromise10(async () => {
1053
1095
  await Promise.resolve();
1054
1096
  if (isDefinedNotNull5(error)) return null;
1055
1097
  if (timedout && isNull6(gateway)) return null;
1056
1098
  if (isLoading) return;
1057
- if (isDefined10(gateway) && isDefined10(networkId)) {
1099
+ if (isDefined9(gateway) && isDefined9(networkId)) {
1058
1100
  const connection = gateway?.connection;
1059
1101
  return connection?.viewer;
1060
1102
  }
@@ -1067,16 +1109,16 @@ var useViewerFromWallet = /* @__PURE__ */ __name((networkId, timeout) => {
1067
1109
  }, "useViewerFromWallet");
1068
1110
 
1069
1111
  // src/components/connected/ConnectAccountsStack.tsx
1070
- var DefaultConnectComponent = /* @__PURE__ */ __name((props) => /* @__PURE__ */ React4.createElement(ButtonEx, {
1112
+ var DefaultConnectComponent = /* @__PURE__ */ __name((props) => /* @__PURE__ */ React5.createElement(ButtonEx, {
1071
1113
  variant: "contained",
1072
1114
  size: "small",
1073
1115
  ...props
1074
1116
  }), "DefaultConnectComponent");
1075
- var DefaultNoWalletInstalledComponent = /* @__PURE__ */ __name(() => /* @__PURE__ */ React4.createElement(Alert, {
1117
+ var DefaultNoWalletInstalledComponent = /* @__PURE__ */ __name(() => /* @__PURE__ */ React5.createElement(Alert, {
1076
1118
  severity: "warning"
1077
- }, /* @__PURE__ */ React4.createElement(AlertTitle, null, "XL1 Wallet Not Found"), /* @__PURE__ */ React4.createElement(Typography2, {
1119
+ }, /* @__PURE__ */ React5.createElement(AlertTitle, null, "XL1 Wallet Not Found"), /* @__PURE__ */ React5.createElement(Typography2, {
1078
1120
  gutterBottom: true
1079
- }, "Please ensure that your XL1 Wallet is installed to connect your account."), /* @__PURE__ */ React4.createElement(Button, {
1121
+ }, "Please ensure that your XL1 Wallet is installed to connect your account."), /* @__PURE__ */ React5.createElement(Button, {
1080
1122
  sx: {
1081
1123
  display: "flex",
1082
1124
  justifySelf: "end"
@@ -1089,32 +1131,32 @@ var DefaultNoWalletInstalledComponent = /* @__PURE__ */ __name(() => /* @__PURE_
1089
1131
  }, "Get XL1 Wallet")), "DefaultNoWalletInstalledComponent");
1090
1132
  var ConnectAccountsStack = /* @__PURE__ */ __name(({ AccountComponent = ConnectedAccount, ConnectComponent = DefaultConnectComponent, NoWalletInstalledComponent = DefaultNoWalletInstalledComponent, onAccountConnected, onCancel, timeout, ...props }) => {
1091
1133
  const { address, connectSigner, error, timedout } = useConnectAccount(void 0, timeout);
1092
- useEffect6(() => {
1093
- if (isDefined11(error) && isDefined11(onCancel)) {
1134
+ useEffect7(() => {
1135
+ if (isDefined10(error) && isDefined10(onCancel)) {
1094
1136
  onCancel();
1095
1137
  }
1096
1138
  }, [
1097
1139
  error,
1098
1140
  onCancel
1099
1141
  ]);
1100
- useEffect6(() => {
1101
- if (isDefined11(address) && isDefined11(onAccountConnected)) {
1142
+ useEffect7(() => {
1143
+ if (isDefined10(address) && isDefined10(onAccountConnected)) {
1102
1144
  onAccountConnected(address);
1103
1145
  }
1104
1146
  }, [
1105
1147
  address,
1106
1148
  onAccountConnected
1107
1149
  ]);
1108
- return /* @__PURE__ */ React4.createElement(Stack2, {
1150
+ return /* @__PURE__ */ React5.createElement(Stack2, {
1109
1151
  direction: "row",
1110
1152
  alignItems: "start",
1111
1153
  spacing: 2,
1112
1154
  ...props
1113
- }, isDefined11(address) ? /* @__PURE__ */ React4.createElement(AccountComponent, {
1155
+ }, isDefined10(address) ? /* @__PURE__ */ React5.createElement(AccountComponent, {
1114
1156
  address
1115
- }) : null, isUndefined8(address) && !timedout ? /* @__PURE__ */ React4.createElement(ConnectComponent, {
1157
+ }) : null, isUndefined8(address) && !timedout ? /* @__PURE__ */ React5.createElement(ConnectComponent, {
1116
1158
  onClick: /* @__PURE__ */ __name(() => void connectSigner(), "onClick")
1117
- }, "Connect") : null, isUndefined8(address) && timedout ? /* @__PURE__ */ React4.createElement(NoWalletInstalledComponent, null) : null, /* @__PURE__ */ React4.createElement(ErrorRender, {
1159
+ }, "Connect") : null, isUndefined8(address) && timedout ? /* @__PURE__ */ React5.createElement(NoWalletInstalledComponent, null) : null, /* @__PURE__ */ React5.createElement(ErrorRender2, {
1118
1160
  error,
1119
1161
  scope: "ConnectSigner:error"
1120
1162
  }));
@@ -1125,11 +1167,14 @@ export {
1125
1167
  DEFAULT_POLLING_INTERVAL,
1126
1168
  GatewayContext,
1127
1169
  GatewayProvider,
1170
+ InPageGatewaysContext,
1171
+ InPageGatewaysProvider,
1128
1172
  TransactionConfirmationStatus,
1129
1173
  ViewerWithDataLake,
1130
1174
  XL1CurrentBlockContext,
1131
1175
  XL1CurrentBlockProvider,
1132
1176
  balanceForRange,
1177
+ buildGateway,
1133
1178
  findMinimumBlock,
1134
1179
  formatAccountBalanceHistory,
1135
1180
  getXyoClient,
@@ -1147,7 +1192,6 @@ export {
1147
1192
  useCurrentBlock,
1148
1193
  useCurrentBlockFromGateway,
1149
1194
  useGateway,
1150
- useGatewayFromConfig,
1151
1195
  useGatewayFromWallet,
1152
1196
  useHttpRpcRunner,
1153
1197
  useHttpRpcViewer,
@@ -1156,6 +1200,7 @@ export {
1156
1200
  usePermissions,
1157
1201
  usePollCurrentBlock,
1158
1202
  useProvidedGateway,
1203
+ useProvidedInPageGateways,
1159
1204
  useRunnerFromGateway,
1160
1205
  useSigner,
1161
1206
  useViewerFromGateway,