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

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