@xyo-network/react-chain-blockchain 1.5.35 → 1.5.36

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 (69) hide show
  1. package/dist/browser/index.mjs +293 -252
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/types/components/block/ChipSkeleton.d.ts +4 -0
  4. package/dist/types/components/block/ChipSkeleton.d.ts.map +1 -0
  5. package/dist/types/components/block/ProducerChip.d.ts.map +1 -1
  6. package/dist/types/components/block/hooks/useDynamicBlockComponents.d.ts +2 -1
  7. package/dist/types/components/block/hooks/useDynamicBlockComponents.d.ts.map +1 -1
  8. package/dist/types/components/block/hooks/useStaticBlockComponents.d.ts +2 -1
  9. package/dist/types/components/block/hooks/useStaticBlockComponents.d.ts.map +1 -1
  10. package/dist/types/components/block/index.d.ts +1 -0
  11. package/dist/types/components/block/index.d.ts.map +1 -1
  12. package/dist/types/components/block/table/cell/Epoch.d.ts.map +1 -1
  13. package/dist/types/components/block/table/cell/Hash.d.ts.map +1 -1
  14. package/dist/types/components/block/table/cell/hooks/useLinkedBlockItem.d.ts.map +1 -1
  15. package/dist/types/components/chain/render/dynamic/flexbox/variants/WithAnalysis.d.ts.map +1 -1
  16. package/dist/types/components/chain/render/dynamic/hooks/useRemoteBlockChainRenderProps.d.ts.map +1 -1
  17. package/dist/types/components/chain/render/static/flexbox/variants/WithAnalysis.d.ts.map +1 -1
  18. package/dist/types/context/chain/Context.d.ts +3 -3
  19. package/dist/types/context/chain/State.d.ts +3 -2
  20. package/dist/types/context/chain/State.d.ts.map +1 -1
  21. package/dist/types/context/chain/use.d.ts +1 -1
  22. package/dist/types/hooks/chain-iterator/ChainIteratorStore.d.ts +2 -1
  23. package/dist/types/hooks/chain-iterator/ChainIteratorStore.d.ts.map +1 -1
  24. package/dist/types/hooks/chain-iterator/useChainIteratorParams.d.ts +6 -4
  25. package/dist/types/hooks/chain-iterator/useChainIteratorParams.d.ts.map +1 -1
  26. package/dist/types/hooks/chain-iterator/useChainIteratorStore.d.ts +1 -1
  27. package/dist/types/hooks/chain-iterator/useChainIteratorStore.d.ts.map +1 -1
  28. package/dist/types/hooks/useIterateChain.d.ts +2 -1
  29. package/dist/types/hooks/useIterateChain.d.ts.map +1 -1
  30. package/dist/types/lib/getChainId.d.ts +4 -0
  31. package/dist/types/lib/getChainId.d.ts.map +1 -0
  32. package/dist/types/lib/index.d.ts +1 -1
  33. package/dist/types/lib/index.d.ts.map +1 -1
  34. package/dist/types/stories/ChainInfoContextDecorator.d.ts.map +1 -1
  35. package/dist/types/types/render/BlockChainRenderProps.d.ts +3 -3
  36. package/dist/types/types/render/BlockChainRenderProps.d.ts.map +1 -1
  37. package/package.json +52 -52
  38. package/src/components/block/ChipSkeleton.tsx +7 -0
  39. package/src/components/block/ProducerChip.tsx +18 -3
  40. package/src/components/block/hooks/useDynamicBlockComponents.ts +2 -1
  41. package/src/components/block/hooks/useStaticBlockComponents.ts +2 -1
  42. package/src/components/block/index.ts +1 -0
  43. package/src/components/block/table/cell/Epoch.tsx +2 -1
  44. package/src/components/block/table/cell/Hash.tsx +18 -20
  45. package/src/components/block/table/cell/hooks/useLinkedBlockItem.tsx +6 -1
  46. package/src/components/chain/render/dynamic/flexbox/Flexbox.stories.tsx +1 -1
  47. package/src/components/chain/render/dynamic/flexbox/Remote.stories.tsx +4 -3
  48. package/src/components/chain/render/dynamic/flexbox/variants/WithAnalysis.tsx +4 -3
  49. package/src/components/chain/render/dynamic/hooks/useDynamicBlockRenderComponents.ts +1 -1
  50. package/src/components/chain/render/dynamic/hooks/useRemoteBlockChainRenderProps.ts +1 -0
  51. package/src/components/chain/render/static/flexbox/Flexbox.stories.tsx +2 -2
  52. package/src/components/chain/render/static/flexbox/variants/WithAnalysis.tsx +4 -3
  53. package/src/components/chain/render/static/hooks/useStaticBlockRenderComponents.ts +1 -1
  54. package/src/components/chain/render/static/table/Ex.stories.tsx +2 -2
  55. package/src/context/chain/Provider.tsx +9 -9
  56. package/src/context/chain/State.ts +3 -2
  57. package/src/hooks/chain-iterator/ChainIteratorStore.ts +2 -2
  58. package/src/hooks/chain-iterator/useChainIteratorParams.ts +5 -4
  59. package/src/hooks/chain-iterator/useChainIteratorStore.ts +1 -1
  60. package/src/hooks/useIterateChain.ts +3 -4
  61. package/src/lib/getChainId.ts +8 -0
  62. package/src/lib/index.ts +1 -1
  63. package/src/stories/ChainArchivistDecorator.tsx +4 -4
  64. package/src/stories/ChainArchivistDelayedInsertDecorator.tsx +4 -4
  65. package/src/stories/ChainInfoContextDecorator.tsx +8 -7
  66. package/src/types/render/BlockChainRenderProps.ts +6 -4
  67. package/dist/types/lib/getChainInformation.d.ts +0 -4
  68. package/dist/types/lib/getChainInformation.d.ts.map +0 -1
  69. package/src/lib/getChainInformation.ts +0 -9
@@ -5,7 +5,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
5
5
  import { FlexCol as FlexCol2, FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
6
6
  import { BWVerification, HashHeadingPaper } from "@xyo-network/react-boundwitness-plugin";
7
7
  import { usePayloadHash } from "@xyo-network/react-shared";
8
- import React13 from "react";
8
+ import React14 from "react";
9
9
 
10
10
  // src/context/analyzer/context.ts
11
11
  import { createContextEx } from "@xylabs/react-shared";
@@ -66,16 +66,16 @@ var ChainInfoContext = createContextEx2();
66
66
 
67
67
  // src/context/chain/Provider.tsx
68
68
  import React2, { useMemo as useMemo2, useState as useState2 } from "react";
69
- var ChainInfoProvider = /* @__PURE__ */ __name(({ children, chainArchivist: chainArchivistProp, chainInformation: chainInformationProp, chainIterator: chainIteratorProp }) => {
69
+ var ChainInfoProvider = /* @__PURE__ */ __name(({ children, chainArchivist: chainArchivistProp, chainId: chainIdProp, chainIterator: chainIteratorProp }) => {
70
70
  const [chainArchivist, setChainArchivist] = useState2(chainArchivistProp);
71
- const [chainInformation, setChainInformation] = useState2(chainInformationProp);
71
+ const [chainId, setChainId] = useState2(chainIdProp);
72
72
  const [chainIterator, setChainIterator] = useState2(chainIteratorProp);
73
73
  const updateChainArchivist = /* @__PURE__ */ __name((chainArchivist2) => {
74
74
  setChainArchivist(chainArchivist2);
75
75
  }, "updateChainArchivist");
76
- const updateChainInformation = /* @__PURE__ */ __name((chainInformation2) => {
77
- setChainInformation(chainInformation2);
78
- }, "updateChainInformation");
76
+ const updateChainId = /* @__PURE__ */ __name((chainId2) => {
77
+ setChainId(chainId2);
78
+ }, "updateChainId");
79
79
  const updateChainIterator = /* @__PURE__ */ __name((chainIterator2) => {
80
80
  setChainIterator(chainIterator2);
81
81
  }, "updateChainIterator");
@@ -85,9 +85,9 @@ var ChainInfoProvider = /* @__PURE__ */ __name(({ children, chainArchivist: chai
85
85
  chainArchivistProp
86
86
  ]);
87
87
  useMemo2(() => {
88
- updateChainInformation(chainInformationProp);
88
+ updateChainId(chainIdProp);
89
89
  }, [
90
- chainInformationProp
90
+ chainIdProp
91
91
  ]);
92
92
  useMemo2(() => {
93
93
  updateChainIterator(chainIteratorProp);
@@ -96,18 +96,18 @@ var ChainInfoProvider = /* @__PURE__ */ __name(({ children, chainArchivist: chai
96
96
  ]);
97
97
  const chainState = useMemo2(() => ({
98
98
  chainArchivist,
99
- chainInformation,
99
+ chainId,
100
100
  chainIterator,
101
101
  updateChainArchivist,
102
- updateChainInformation,
102
+ updateChainId,
103
103
  updateChainIterator,
104
104
  provided: true
105
105
  }), [
106
106
  chainArchivist,
107
- chainInformation,
107
+ chainId,
108
108
  chainIterator,
109
109
  updateChainArchivist,
110
- updateChainInformation,
110
+ updateChainId,
111
111
  updateChainIterator
112
112
  ]);
113
113
  return /* @__PURE__ */ React2.createElement(ChainInfoContext, {
@@ -341,9 +341,9 @@ import React8, { Fragment, useMemo as useMemo6, useState as useState7 } from "re
341
341
 
342
342
  // src/hooks/chain-iterator/ChainIteratorStore.ts
343
343
  import { assertEx } from "@xylabs/assert";
344
- import { hydrateBlock } from "@xyo-network/chain-protocol";
345
344
  import { ChainBlockNumberIterationService } from "@xyo-network/chain-services";
346
345
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
346
+ import { hydrateBlock } from "@xyo-network/xl1-protocol-sdk";
347
347
  var ChainIteratorStore = class _ChainIteratorStore {
348
348
  static {
349
349
  __name(this, "ChainIteratorStore");
@@ -407,6 +407,7 @@ var ChainIteratorStore = class _ChainIteratorStore {
407
407
  import { assertEx as assertEx2 } from "@xylabs/assert";
408
408
  import { isHash } from "@xylabs/hex";
409
409
  import { usePromise } from "@xylabs/react-promise";
410
+ import { isDefined } from "@xylabs/typeof";
410
411
  import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
411
412
  import { isBlockBoundWitness } from "@xyo-network/xl1-protocol";
412
413
  var resolveDefinedHead = /* @__PURE__ */ __name(async (head, chainArchivist) => {
@@ -420,9 +421,9 @@ var resolveDefinedHead = /* @__PURE__ */ __name(async (head, chainArchivist) =>
420
421
  return assertEx2(isBlockBoundWitness(headPayload) ? headPayload : void 0, () => `Expected a block bound witness: ${JSON.stringify(headPayload)}`);
421
422
  }
422
423
  }, "resolveDefinedHead");
423
- var useChainIteratorParams = /* @__PURE__ */ __name(({ chainArchivist, chainInformation, head }) => {
424
+ var useChainIteratorParams = /* @__PURE__ */ __name(({ chainArchivist, chainId, head, name }) => {
424
425
  return usePromise(async () => {
425
- if (chainArchivist && chainInformation && isHash(head)) {
426
+ if (isDefined(chainArchivist) && isDefined(chainId) && isHash(head)) {
426
427
  const [result] = await chainArchivist.get([
427
428
  head
428
429
  ]);
@@ -430,13 +431,14 @@ var useChainIteratorParams = /* @__PURE__ */ __name(({ chainArchivist, chainInfo
430
431
  const resolvedHead = assertEx2(isBlockBoundWitness(foundResult) ? foundResult : void 0, () => `Head is not a boundwitness: ${JSON.stringify(foundResult)}`);
431
432
  return {
432
433
  chainArchivist,
433
- chainInformation,
434
- head: resolvedHead
434
+ chainId,
435
+ head: resolvedHead,
436
+ name
435
437
  };
436
438
  }
437
439
  }, [
438
440
  chainArchivist,
439
- chainInformation,
441
+ chainId,
440
442
  head
441
443
  ]);
442
444
  }, "useChainIteratorParams");
@@ -545,10 +547,10 @@ var useChainIteratorStore = /* @__PURE__ */ __name((chainIteratorParams) => {
545
547
  // src/hooks/useIterateChain.ts
546
548
  import { assertEx as assertEx3 } from "@xylabs/assert";
547
549
  import { usePromise as usePromise3 } from "@xylabs/react-promise";
548
- import { hydrateBlock as hydrateBlock2 } from "@xyo-network/chain-protocol";
549
550
  import { ChainBlockNumberIterationService as ChainBlockNumberIterationService2 } from "@xyo-network/chain-services";
550
551
  import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
551
552
  import { isBlockBoundWitness as isBlockBoundWitness2 } from "@xyo-network/xl1-protocol";
553
+ import { hydrateBlock as hydrateBlock2 } from "@xyo-network/xl1-protocol-sdk";
552
554
  var getHydratedBlock = /* @__PURE__ */ __name(async (chainArchivist, head) => {
553
555
  const headHash = await PayloadBuilder3.hash(head);
554
556
  return await hydrateBlock2(chainArchivist, headHash);
@@ -798,14 +800,14 @@ var usePayloadCountsFromBlock = /* @__PURE__ */ __name((block) => {
798
800
 
799
801
  // src/components/block/hooks/useStaticBlockComponents.ts
800
802
  import { usePromise as usePromise5 } from "@xylabs/react-promise";
801
- import { isDefined } from "@xylabs/typeof";
803
+ import { isDefined as isDefined2 } from "@xylabs/typeof";
802
804
  var useStaticBlockComponents = /* @__PURE__ */ __name((BlockComponent, params, blocks) => {
803
805
  const { onBlock } = useChainAnalyzersContext();
804
806
  const [blockComponents, blockComponentsError] = usePromise5(async () => {
805
807
  const resolvedBlockWithStorage = blocks ?? [];
806
808
  if (!params?.chainArchivist) return [];
807
809
  return await Promise.all(resolvedBlockWithStorage?.map(async (block) => {
808
- if (isDefined(onBlock)) {
810
+ if (isDefined2(onBlock)) {
809
811
  await onBlock(block);
810
812
  }
811
813
  const blockComponentProps = {
@@ -884,22 +886,48 @@ var BlockMenuExpanded = /* @__PURE__ */ __name(({ block }) => {
884
886
  // src/components/block/ProducerChip.tsx
885
887
  import { Chip as Chip2 } from "@mui/material";
886
888
  import { EthAddress } from "@xylabs/eth-address";
889
+ import { toAddress } from "@xylabs/hex";
890
+ import { isString, isUndefined as isUndefined2 } from "@xylabs/typeof";
887
891
  import { BlockiesAvatar } from "@xyo-network/react-chain-blockies";
888
- import React12, { useMemo as useMemo9 } from "react";
889
- var BlockProducerChip = /* @__PURE__ */ __name(({ block, ...props }) => {
892
+ import React13, { useMemo as useMemo9 } from "react";
893
+
894
+ // src/components/block/ChipSkeleton.tsx
895
+ import { Skeleton } from "@mui/material";
896
+ import React12 from "react";
897
+ var ChipSkeleton = /* @__PURE__ */ __name((props) => {
898
+ return /* @__PURE__ */ React12.createElement(Skeleton, {
899
+ width: 100,
900
+ ...props
901
+ });
902
+ }, "ChipSkeleton");
903
+
904
+ // src/components/block/ProducerChip.tsx
905
+ var formatProducerAddress = /* @__PURE__ */ __name((address) => {
906
+ if (isUndefined2(address) || !isString(address)) return void 0;
907
+ const formattedAddress = toAddress(address);
908
+ return EthAddress.parse(formattedAddress)?.toShortString(4);
909
+ }, "formatProducerAddress");
910
+ var BlockProducerChip = /* @__PURE__ */ __name(({ block, sx, ...props }) => {
890
911
  const blockProducer2 = block?.[0].addresses[0];
891
- const shortedBlockProducer = blockProducer2 === void 0 ? null : EthAddress.parse(blockProducer2)?.toShortString(3);
892
- const avatar = useMemo9(() => blockProducer2 === "" ? void 0 : /* @__PURE__ */ React12.createElement(BlockiesAvatar, {
912
+ const shortedBlockProducer = blockProducer2 === void 0 ? null : formatProducerAddress(blockProducer2);
913
+ const avatar = useMemo9(() => blockProducer2 === "" ? void 0 : /* @__PURE__ */ React13.createElement(BlockiesAvatar, {
893
914
  blockiesOptions: {
894
915
  seed: blockProducer2
895
916
  }
896
917
  }), [
897
918
  blockProducer2
898
919
  ]);
899
- return /* @__PURE__ */ React12.createElement(Chip2, {
920
+ return /* @__PURE__ */ React13.createElement(Chip2, {
900
921
  avatar,
901
- label: typeof shortedBlockProducer === "string" ? `${shortedBlockProducer}` : null,
922
+ label: shortedBlockProducer ?? /* @__PURE__ */ React13.createElement(ChipSkeleton, {
923
+ width: 115
924
+ }),
902
925
  title: `Block producer: ${blockProducer2}`,
926
+ sx: {
927
+ fontFamily: "monospace",
928
+ cursor: "pointer",
929
+ ...sx
930
+ },
903
931
  ...props
904
932
  });
905
933
  }, "BlockProducerChip");
@@ -914,12 +942,12 @@ var BlockHeadingFlexbox = /* @__PURE__ */ __name(({ block, defaultExpanded, tran
914
942
  event.stopPropagation();
915
943
  blockHeadingListener("transaction-count", "click", JSON.stringify(transactions2));
916
944
  }, "handleTransactionCountClick");
917
- return /* @__PURE__ */ React13.createElement(FlexCol2, {
945
+ return /* @__PURE__ */ React14.createElement(FlexCol2, {
918
946
  className: "block-heading-flexbox",
919
947
  alignItems: "stretch",
920
948
  ref: blockHeadingRef,
921
949
  onClick: /* @__PURE__ */ __name(() => blockHeadingListener("block-hash", "click", hash), "onClick")
922
- }, /* @__PURE__ */ React13.createElement(LinkedDivider, null), /* @__PURE__ */ React13.createElement(HashHeadingPaper, {
950
+ }, /* @__PURE__ */ React14.createElement(LinkedDivider, null), /* @__PURE__ */ React14.createElement(HashHeadingPaper, {
923
951
  hash,
924
952
  heading: block?.[0].block === void 0 ? "" : block?.[0].block.toString(),
925
953
  paperProps: {
@@ -928,24 +956,24 @@ var BlockHeadingFlexbox = /* @__PURE__ */ __name(({ block, defaultExpanded, tran
928
956
  width: "100%"
929
957
  }
930
958
  },
931
- AdornmentEnd: /* @__PURE__ */ React13.createElement(FlexRow2, {
959
+ AdornmentEnd: /* @__PURE__ */ React14.createElement(FlexRow2, {
932
960
  gap: 1
933
- }, /* @__PURE__ */ React13.createElement(BlockProducerChip, {
961
+ }, /* @__PURE__ */ React14.createElement(BlockProducerChip, {
934
962
  block
935
- }), /* @__PURE__ */ React13.createElement(TransactionCountChip, {
963
+ }), /* @__PURE__ */ React14.createElement(TransactionCountChip, {
936
964
  onClick: /* @__PURE__ */ __name((e) => handleTransactionCountClick(e, transactions ?? []), "onClick"),
937
965
  transactions
938
- }), /* @__PURE__ */ React13.createElement(BWVerification, {
966
+ }), /* @__PURE__ */ React14.createElement(BWVerification, {
939
967
  iconColors: true,
940
968
  boundwitness: block?.[0]
941
- }), /* @__PURE__ */ React13.createElement("span", {
969
+ }), /* @__PURE__ */ React14.createElement("span", {
942
970
  style: {
943
971
  // maxWidth is required for css animation to work and 28px is the width of the icon button
944
972
  display: "flex",
945
973
  transition: "max-width .5s",
946
974
  maxWidth: expanded ? "28px" : 0
947
975
  }
948
- }, /* @__PURE__ */ React13.createElement(BlockMenuExpanded, {
976
+ }, /* @__PURE__ */ React14.createElement(BlockMenuExpanded, {
949
977
  block
950
978
  }))),
951
979
  identiconProps: {
@@ -957,21 +985,21 @@ var BlockHeadingFlexbox = /* @__PURE__ */ __name(({ block, defaultExpanded, tran
957
985
 
958
986
  // src/components/block/table/cell/BlockNumber.tsx
959
987
  import { TableCell, Tooltip, Typography as Typography3 } from "@mui/material";
960
- import React14 from "react";
988
+ import React15 from "react";
961
989
  var BlockNumberTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
962
990
  const blockNumber = block?.[0].block;
963
- return /* @__PURE__ */ React14.createElement(TableCell, props, /* @__PURE__ */ React14.createElement(Tooltip, {
991
+ return /* @__PURE__ */ React15.createElement(TableCell, props, /* @__PURE__ */ React15.createElement(Tooltip, {
964
992
  title: `Block Number: ${blockNumber}`
965
- }, /* @__PURE__ */ React14.createElement(Typography3, {
993
+ }, /* @__PURE__ */ React15.createElement(Typography3, {
966
994
  component: "span",
967
995
  variant: "body1"
968
996
  }, blockNumber)));
969
997
  }, "BlockNumberTableCell");
970
998
 
971
999
  // src/components/block/table/cell/Epoch.tsx
972
- import { TableCell as TableCell2, Tooltip as Tooltip2, Typography as Typography4 } from "@mui/material";
973
- import { isDefined as isDefined2 } from "@xylabs/typeof";
974
- import React15 from "react";
1000
+ import { Skeleton as Skeleton2, TableCell as TableCell2, Tooltip as Tooltip2, Typography as Typography4 } from "@mui/material";
1001
+ import { isDefined as isDefined3 } from "@xylabs/typeof";
1002
+ import React16 from "react";
975
1003
 
976
1004
  // src/components/block/table/cell/lib/timeFunctions.ts
977
1005
  var dateFormat = Intl.DateTimeFormat(globalThis.navigator.language ?? "en-US", {
@@ -1036,13 +1064,15 @@ var timeAgo = /* @__PURE__ */ __name((epoch, locale = navigator.language ?? "en-
1036
1064
  var BlockEpochTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1037
1065
  const epoch = block?.[0]?.$epoch;
1038
1066
  const dateTime = dateFormat.format(epoch);
1039
- const age = isDefined2(epoch) ? timeAgo(epoch) : void 0;
1040
- return /* @__PURE__ */ React15.createElement(TableCell2, props, /* @__PURE__ */ React15.createElement(Tooltip2, {
1067
+ const age = isDefined3(epoch) ? timeAgo(epoch) : void 0;
1068
+ return /* @__PURE__ */ React16.createElement(TableCell2, props, /* @__PURE__ */ React16.createElement(Tooltip2, {
1041
1069
  title: `Block Epoch: ${dateTime}`
1042
- }, /* @__PURE__ */ React15.createElement(Typography4, {
1070
+ }, /* @__PURE__ */ React16.createElement(Typography4, {
1043
1071
  component: "span",
1044
1072
  variant: "body1"
1045
- }, age)));
1073
+ }, age ?? /* @__PURE__ */ React16.createElement(Skeleton2, {
1074
+ width: 115
1075
+ }))));
1046
1076
  }, "BlockEpochTableCell");
1047
1077
 
1048
1078
  // src/components/block/table/cell/Hash.tsx
@@ -1050,12 +1080,12 @@ import { Avatar, Chip as Chip3, TableCell as TableCell3, Tooltip as Tooltip3 } f
1050
1080
  import { isHash as isHash2 } from "@xylabs/hex";
1051
1081
  import { Identicon } from "@xylabs/react-identicon";
1052
1082
  import { usePayloadRootHash } from "@xyo-network/react-shared";
1053
- import React17 from "react";
1083
+ import React18 from "react";
1054
1084
 
1055
1085
  // src/components/FeatureNotAvailable.tsx
1056
1086
  import { Button as Button2, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
1057
- import React16 from "react";
1058
- var FeatureNotAvailable = /* @__PURE__ */ __name(({ featureName = "Feature", ...props }) => /* @__PURE__ */ React16.createElement(Dialog, props, /* @__PURE__ */ React16.createElement(DialogTitle, null, `${featureName} Not Available`), /* @__PURE__ */ React16.createElement(DialogContent, null, "This feature is not currently available. Either you do not have access to it or it is currently undergoing maintenance."), /* @__PURE__ */ React16.createElement(DialogActions, null, /* @__PURE__ */ React16.createElement(Button2, {
1087
+ import React17 from "react";
1088
+ var FeatureNotAvailable = /* @__PURE__ */ __name(({ featureName = "Feature", ...props }) => /* @__PURE__ */ React17.createElement(Dialog, props, /* @__PURE__ */ React17.createElement(DialogTitle, null, `${featureName} Not Available`), /* @__PURE__ */ React17.createElement(DialogContent, null, "This feature is not currently available. Either you do not have access to it or it is currently undergoing maintenance."), /* @__PURE__ */ React17.createElement(DialogActions, null, /* @__PURE__ */ React17.createElement(Button2, {
1059
1089
  onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick")
1060
1090
  }, "Close"))), "FeatureNotAvailable");
1061
1091
 
@@ -1070,7 +1100,11 @@ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
1070
1100
  console.warn("useLinkedBlockItem: noun is required");
1071
1101
  return;
1072
1102
  }
1073
- dispatch(noun, "click", data);
1103
+ const selection = globalThis.getSelection();
1104
+ const isTextSelected = selection && selection.toString().length > 0;
1105
+ if (!isTextSelected) {
1106
+ dispatch(noun, "click", data);
1107
+ }
1074
1108
  }, "handleClick");
1075
1109
  return [
1076
1110
  ref,
@@ -1082,29 +1116,30 @@ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
1082
1116
  var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAvailableDialog, linked, ...props }) => {
1083
1117
  const hash = usePayloadRootHash(block?.[0]);
1084
1118
  const [ref, handleClick] = useLinkedBlockItem("block-hash", hash);
1085
- const [notAvailable, setNotAvailable] = React17.useState(false);
1086
- const shortenedHash = isHash2(hash) ? `${hash.slice(0, 4)}...${hash.slice(-5, -1)}` : "";
1087
- return /* @__PURE__ */ React17.createElement(TableCell3, {
1119
+ const [notAvailable, setNotAvailable] = React18.useState(false);
1120
+ const shortenedHash = isHash2(hash) ? `${hash.slice(0, 4)}...${hash.slice(-5, -1)}` : void 0;
1121
+ return /* @__PURE__ */ React18.createElement(TableCell3, {
1088
1122
  ref,
1089
1123
  ...props
1090
- }, isHash2(hash) ? /* @__PURE__ */ React17.createElement(Tooltip3, {
1124
+ }, /* @__PURE__ */ React18.createElement(Tooltip3, {
1091
1125
  title: `Block Hash: ${hash}`
1092
- }, /* @__PURE__ */ React17.createElement(Chip3, {
1093
- avatar: /* @__PURE__ */ React17.createElement(Avatar, {
1126
+ }, /* @__PURE__ */ React18.createElement(Chip3, {
1127
+ avatar: /* @__PURE__ */ React18.createElement(Avatar, {
1094
1128
  sx: {
1095
1129
  background: "white"
1096
1130
  }
1097
- }, /* @__PURE__ */ React17.createElement(Identicon, {
1131
+ }, /* @__PURE__ */ React18.createElement(Identicon, {
1098
1132
  size: 16,
1099
1133
  value: hash,
1100
1134
  ...identiconProps
1101
1135
  })),
1102
1136
  sx: {
1103
- cursor: "pointer"
1137
+ cursor: "pointer",
1138
+ fontFamily: "monospace"
1104
1139
  },
1105
- label: shortenedHash,
1140
+ label: shortenedHash ?? /* @__PURE__ */ React18.createElement(ChipSkeleton, null),
1106
1141
  onClick: linked ? handleClick : () => setNotAvailable(true)
1107
- })) : null, notAvailableDialog && notAvailable ? /* @__PURE__ */ React17.createElement(FeatureNotAvailable, {
1142
+ })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React18.createElement(FeatureNotAvailable, {
1108
1143
  featureName: "Block Details",
1109
1144
  open: notAvailable,
1110
1145
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1119,31 +1154,31 @@ import { isHash as isHash3 } from "@xylabs/hex";
1119
1154
  import { FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
1120
1155
  import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
1121
1156
  import { usePayloadRootHash as usePayloadRootHash2 } from "@xyo-network/react-shared";
1122
- import React18, { useState as useState10 } from "react";
1157
+ import React19, { useState as useState10 } from "react";
1123
1158
  var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1124
1159
  const [open, setOpen] = useState10(false);
1125
1160
  const onClose = /* @__PURE__ */ __name(() => setOpen(false), "onClose");
1126
1161
  const hash = usePayloadRootHash2(block?.[0]);
1127
1162
  const title = isHash3(hash) ? `JSON for ${ellipsize(hash, 5)}` : "JSON";
1128
- return /* @__PURE__ */ React18.createElement(TableCell4, props, /* @__PURE__ */ React18.createElement(FlexRow3, {
1163
+ return /* @__PURE__ */ React19.createElement(TableCell4, props, /* @__PURE__ */ React19.createElement(FlexRow3, {
1129
1164
  onClick: /* @__PURE__ */ __name((e) => e.stopPropagation(), "onClick"),
1130
1165
  sx: {
1131
1166
  width: "100%"
1132
1167
  }
1133
- }, /* @__PURE__ */ React18.createElement(IconButton2, {
1168
+ }, /* @__PURE__ */ React19.createElement(IconButton2, {
1134
1169
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1135
- }, /* @__PURE__ */ React18.createElement(DataObject, null)), /* @__PURE__ */ React18.createElement(Dialog2, {
1170
+ }, /* @__PURE__ */ React19.createElement(DataObject, null)), /* @__PURE__ */ React19.createElement(Dialog2, {
1136
1171
  open,
1137
1172
  onClose
1138
- }, /* @__PURE__ */ React18.createElement(DialogTitle2, null, title), /* @__PURE__ */ React18.createElement(DialogContent2, null, /* @__PURE__ */ React18.createElement(JsonViewerEx, {
1173
+ }, /* @__PURE__ */ React19.createElement(DialogTitle2, null, title), /* @__PURE__ */ React19.createElement(DialogContent2, null, /* @__PURE__ */ React19.createElement(JsonViewerEx, {
1139
1174
  value: block
1140
- })), /* @__PURE__ */ React18.createElement(DialogActions2, {
1175
+ })), /* @__PURE__ */ React19.createElement(DialogActions2, {
1141
1176
  sx: {
1142
1177
  display: "flex",
1143
1178
  flexDirection: "row",
1144
1179
  justifyContent: "end"
1145
1180
  }
1146
- }, /* @__PURE__ */ React18.createElement(Button3, {
1181
+ }, /* @__PURE__ */ React19.createElement(Button3, {
1147
1182
  variant: "contained",
1148
1183
  onClick: onClose
1149
1184
  }, "Close")))));
@@ -1152,7 +1187,7 @@ var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1152
1187
  // src/components/block/table/cell/PayloadCounts.tsx
1153
1188
  import { Error as Error2 } from "@mui/icons-material";
1154
1189
  import { Link, TableCell as TableCell5, Tooltip as Tooltip4 } from "@mui/material";
1155
- import React19 from "react";
1190
+ import React20 from "react";
1156
1191
  var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1157
1192
  const [publicPayloads, privatePayloads, error] = usePayloadCountsFromBlock(block);
1158
1193
  const data = block && privatePayloads !== void 0 && publicPayloads !== void 0 ? {
@@ -1162,45 +1197,45 @@ var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...pr
1162
1197
  } : void 0;
1163
1198
  const payloadCount = (publicPayloads ?? 0) + (privatePayloads ?? 0);
1164
1199
  const [ref, handleClick] = useLinkedBlockItem("payload-counts", data);
1165
- return /* @__PURE__ */ React19.createElement(TableCell5, {
1200
+ return /* @__PURE__ */ React20.createElement(TableCell5, {
1166
1201
  ref,
1167
1202
  ...props
1168
- }, /* @__PURE__ */ React19.createElement("span", null, error ? /* @__PURE__ */ React19.createElement(Tooltip4, {
1203
+ }, /* @__PURE__ */ React20.createElement("span", null, error ? /* @__PURE__ */ React20.createElement(Tooltip4, {
1169
1204
  title: error.message
1170
- }, /* @__PURE__ */ React19.createElement(Error2, {
1205
+ }, /* @__PURE__ */ React20.createElement(Error2, {
1171
1206
  color: "error"
1172
- })) : null, linked ? /* @__PURE__ */ React19.createElement(Tooltip4, {
1207
+ })) : null, linked ? /* @__PURE__ */ React20.createElement(Tooltip4, {
1173
1208
  title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1174
- }, /* @__PURE__ */ React19.createElement(Link, {
1209
+ }, /* @__PURE__ */ React20.createElement(Link, {
1175
1210
  onClick: handleClick,
1176
1211
  sx: {
1177
1212
  cursor: "pointer"
1178
1213
  }
1179
- }, payloadCount)) : /* @__PURE__ */ React19.createElement(Tooltip4, {
1214
+ }, payloadCount)) : /* @__PURE__ */ React20.createElement(Tooltip4, {
1180
1215
  title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1181
- }, /* @__PURE__ */ React19.createElement("span", null, payloadCount))));
1216
+ }, /* @__PURE__ */ React20.createElement("span", null, payloadCount))));
1182
1217
  }, "BlockPayloadCountsTableCell");
1183
1218
 
1184
1219
  // src/components/block/table/cell/Producer.tsx
1185
1220
  import { TableCell as TableCell6, Tooltip as Tooltip5 } from "@mui/material";
1186
- import React20 from "react";
1221
+ import React21 from "react";
1187
1222
  var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailableDialog, producerChipProps, ...props }) => {
1188
1223
  const [ref, handleClick] = useLinkedBlockItem("block-producer", JSON.stringify(block));
1189
1224
  const producer = useBlockProducer(block);
1190
- const [notAvailable, setNotAvailable] = React20.useState(false);
1191
- return /* @__PURE__ */ React20.createElement(TableCell6, {
1225
+ const [notAvailable, setNotAvailable] = React21.useState(false);
1226
+ return /* @__PURE__ */ React21.createElement(TableCell6, {
1192
1227
  ref,
1193
1228
  ...props
1194
- }, /* @__PURE__ */ React20.createElement(Tooltip5, {
1229
+ }, /* @__PURE__ */ React21.createElement(Tooltip5, {
1195
1230
  title: `Block Producer: ${producer}`
1196
- }, /* @__PURE__ */ React20.createElement(BlockProducerChip, {
1231
+ }, /* @__PURE__ */ React21.createElement(BlockProducerChip, {
1197
1232
  sx: {
1198
1233
  cursor: "pointer"
1199
1234
  },
1200
1235
  onClick: linked ? handleClick : () => setNotAvailable(true),
1201
1236
  block,
1202
1237
  ...producerChipProps
1203
- })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React20.createElement(FeatureNotAvailable, {
1238
+ })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React21.createElement(FeatureNotAvailable, {
1204
1239
  featureName: "Producer Details",
1205
1240
  open: notAvailable,
1206
1241
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1210,7 +1245,7 @@ var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailab
1210
1245
  // src/components/block/table/cell/TransactionCount.tsx
1211
1246
  import { Error as Error3 } from "@mui/icons-material";
1212
1247
  import { Link as Link2, TableCell as TableCell7, Tooltip as Tooltip6 } from "@mui/material";
1213
- import React21, { useMemo as useMemo10 } from "react";
1248
+ import React22, { useMemo as useMemo10 } from "react";
1214
1249
  var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1215
1250
  const [transactions, error] = useTxsFromBlock(block);
1216
1251
  const txHashes = useMemo10(() => transactions?.map(([, hash]) => hash), [
@@ -1221,14 +1256,14 @@ var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ..
1221
1256
  block: block[0]._hash
1222
1257
  } : void 0;
1223
1258
  const [ref, handleClick] = useLinkedBlockItem("transaction-count", data);
1224
- return /* @__PURE__ */ React21.createElement(TableCell7, {
1259
+ return /* @__PURE__ */ React22.createElement(TableCell7, {
1225
1260
  ref,
1226
1261
  ...props
1227
- }, /* @__PURE__ */ React21.createElement("span", null, error ? /* @__PURE__ */ React21.createElement(Tooltip6, {
1262
+ }, /* @__PURE__ */ React22.createElement("span", null, error ? /* @__PURE__ */ React22.createElement(Tooltip6, {
1228
1263
  title: error.message
1229
- }, /* @__PURE__ */ React21.createElement(Error3, {
1264
+ }, /* @__PURE__ */ React22.createElement(Error3, {
1230
1265
  color: "error"
1231
- })) : null, linked ? /* @__PURE__ */ React21.createElement(Link2, {
1266
+ })) : null, linked ? /* @__PURE__ */ React22.createElement(Link2, {
1232
1267
  onClick: handleClick,
1233
1268
  sx: {
1234
1269
  cursor: "pointer"
@@ -1241,17 +1276,17 @@ import { CheckCircleOutlineRounded } from "@mui/icons-material";
1241
1276
  import { TableCell as TableCell8 } from "@mui/material";
1242
1277
  import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
1243
1278
  import { BWVerification as BWVerification2 } from "@xyo-network/react-boundwitness-plugin";
1244
- import React22 from "react";
1279
+ import React23 from "react";
1245
1280
  var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, deepValidation, ...props }) => {
1246
- return /* @__PURE__ */ React22.createElement(TableCell8, props, /* @__PURE__ */ React22.createElement(FlexRow4, {
1281
+ return /* @__PURE__ */ React23.createElement(TableCell8, props, /* @__PURE__ */ React23.createElement(FlexRow4, {
1247
1282
  onClick: /* @__PURE__ */ __name((e) => e.stopPropagation(), "onClick"),
1248
1283
  sx: {
1249
1284
  width: "100%"
1250
1285
  }
1251
- }, deepValidation ? /* @__PURE__ */ React22.createElement(BWVerification2, {
1286
+ }, deepValidation ? /* @__PURE__ */ React23.createElement(BWVerification2, {
1252
1287
  iconColors: true,
1253
1288
  boundwitness: block?.[0]
1254
- }) : /* @__PURE__ */ React22.createElement(CheckCircleOutlineRounded, {
1289
+ }) : /* @__PURE__ */ React23.createElement(CheckCircleOutlineRounded, {
1255
1290
  color: "success"
1256
1291
  })));
1257
1292
  }, "BlockVerificationTableCell");
@@ -1259,45 +1294,45 @@ var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, deepVa
1259
1294
  // src/components/block/table/Ex.tsx
1260
1295
  import { TableBody } from "@mui/material";
1261
1296
  import { TableEx } from "@xyo-network/react-table";
1262
- import React24 from "react";
1297
+ import React25 from "react";
1263
1298
 
1264
1299
  // src/components/block/table/head/TableHead.tsx
1265
1300
  import { InfoOutline } from "@mui/icons-material";
1266
1301
  import { TableCell as TableCell9, TableHead, TableRow, Tooltip as Tooltip7, Typography as Typography5 } from "@mui/material";
1267
1302
  import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
1268
- import React23 from "react";
1303
+ import React24 from "react";
1269
1304
  var ToolTipTableCell = /* @__PURE__ */ __name(({ children, align, title, ...props }) => {
1270
- return /* @__PURE__ */ React23.createElement(TableCell9, {
1305
+ return /* @__PURE__ */ React24.createElement(TableCell9, {
1271
1306
  title,
1272
1307
  ...props
1273
- }, /* @__PURE__ */ React23.createElement(Tooltip7, {
1308
+ }, /* @__PURE__ */ React24.createElement(Tooltip7, {
1274
1309
  title
1275
- }, /* @__PURE__ */ React23.createElement(FlexRow5, {
1310
+ }, /* @__PURE__ */ React24.createElement(FlexRow5, {
1276
1311
  justifyContent: align
1277
- }, /* @__PURE__ */ React23.createElement(Typography5, {
1312
+ }, /* @__PURE__ */ React24.createElement(Typography5, {
1278
1313
  variant: "body2"
1279
- }, children), "\xA0", /* @__PURE__ */ React23.createElement(InfoOutline, {
1314
+ }, children), "\xA0", /* @__PURE__ */ React24.createElement(InfoOutline, {
1280
1315
  fontSize: "small"
1281
1316
  }))));
1282
1317
  }, "ToolTipTableCell");
1283
1318
  var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1284
- return /* @__PURE__ */ React23.createElement(TableHead, null, /* @__PURE__ */ React23.createElement(TableRow, null, /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1319
+ return /* @__PURE__ */ React24.createElement(TableHead, null, /* @__PURE__ */ React24.createElement(TableRow, null, /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1285
1320
  align: "left",
1286
1321
  title: "The block number that is included in the block"
1287
- }, "Block"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1322
+ }, "Block"), /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1288
1323
  title: "The hash of the block"
1289
- }, "Hash"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1324
+ }, "Hash"), /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1290
1325
  title: "The epoch of the block"
1291
- }, "Epoch"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1326
+ }, "Epoch"), /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1292
1327
  align: "left",
1293
1328
  title: "Count of transactions that are included in the block"
1294
- }, "Transactions"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1329
+ }, "Transactions"), /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1295
1330
  align: "left",
1296
1331
  title: "Count of public and private payload counts for the block"
1297
- }, "Payloads"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1332
+ }, "Payloads"), /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1298
1333
  align: "center",
1299
1334
  title: "The result of the local validation check for the block"
1300
- }, "Valid"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1335
+ }, "Valid"), /* @__PURE__ */ React24.createElement(ToolTipTableCell, {
1301
1336
  align: "center",
1302
1337
  title: "Link to display the raw JSON of the block"
1303
1338
  }, "JSON")));
@@ -1305,10 +1340,10 @@ var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1305
1340
 
1306
1341
  // src/components/block/table/Ex.tsx
1307
1342
  var BlockchainTableEx = /* @__PURE__ */ __name(({ ref, children, ...props }) => {
1308
- return /* @__PURE__ */ React24.createElement(TableEx, {
1343
+ return /* @__PURE__ */ React25.createElement(TableEx, {
1309
1344
  ref,
1310
1345
  ...props
1311
- }, /* @__PURE__ */ React24.createElement(BlockchainTableHead, null), /* @__PURE__ */ React24.createElement(TableBody, null, children));
1346
+ }, /* @__PURE__ */ React25.createElement(BlockchainTableHead, null), /* @__PURE__ */ React25.createElement(TableBody, null, children));
1312
1347
  }, "BlockchainTableEx");
1313
1348
  BlockchainTableEx.displayName = "BlockchainTableEx";
1314
1349
 
@@ -1316,7 +1351,7 @@ BlockchainTableEx.displayName = "BlockchainTableEx";
1316
1351
  import { TableRow as TableRow2, useTheme } from "@mui/material";
1317
1352
  import { alphaCss } from "@xylabs/react-theme";
1318
1353
  import { usePayloadRootHash as usePayloadRootHash3 } from "@xyo-network/react-shared";
1319
- import React25, { useMemo as useMemo11 } from "react";
1354
+ import React26, { useMemo as useMemo11 } from "react";
1320
1355
  var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaultExpanded, linked, sx, ...props }) => {
1321
1356
  const linkedTableCellProps = useMemo11(() => ({
1322
1357
  block,
@@ -1333,7 +1368,7 @@ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaul
1333
1368
  const hash = usePayloadRootHash3(block?.[0]);
1334
1369
  const [ref, handleClick] = useLinkedBlockItem("block-hash", hash);
1335
1370
  const theme = useTheme();
1336
- return /* @__PURE__ */ React25.createElement(TableRow2, {
1371
+ return /* @__PURE__ */ React26.createElement(TableRow2, {
1337
1372
  onClick: linked ? handleClick : void 0,
1338
1373
  ref,
1339
1374
  sx: {
@@ -1345,54 +1380,54 @@ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaul
1345
1380
  ...sx
1346
1381
  },
1347
1382
  ...props
1348
- }, /* @__PURE__ */ React25.createElement(BlockNumberTableCell, {
1383
+ }, /* @__PURE__ */ React26.createElement(BlockNumberTableCell, {
1349
1384
  align: "left",
1350
1385
  ...linkedTableCellProps
1351
- }), /* @__PURE__ */ React25.createElement(BlockHashTableCell, {
1386
+ }), /* @__PURE__ */ React26.createElement(BlockHashTableCell, {
1352
1387
  align: "left",
1353
1388
  ...linkedTableCellProps
1354
- }), /* @__PURE__ */ React25.createElement(BlockEpochTableCell, {
1389
+ }), /* @__PURE__ */ React26.createElement(BlockEpochTableCell, {
1355
1390
  align: "left",
1356
1391
  ...linkedTableCellProps
1357
- }), /* @__PURE__ */ React25.createElement(BlockTransactionCountTableCell, {
1392
+ }), /* @__PURE__ */ React26.createElement(BlockTransactionCountTableCell, {
1358
1393
  align: "left",
1359
1394
  ...linkedTableCellProps
1360
- }), /* @__PURE__ */ React25.createElement(BlockPayloadCountsTableCell, {
1395
+ }), /* @__PURE__ */ React26.createElement(BlockPayloadCountsTableCell, {
1361
1396
  align: "left",
1362
1397
  ...linkedTableCellProps
1363
- }), /* @__PURE__ */ React25.createElement(BlockVerificationTableCell, {
1398
+ }), /* @__PURE__ */ React26.createElement(BlockVerificationTableCell, {
1364
1399
  deepValidation,
1365
1400
  ...defaultTableCellProps
1366
- }), /* @__PURE__ */ React25.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1401
+ }), /* @__PURE__ */ React26.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1367
1402
  }, "BlockChainTableRow");
1368
1403
 
1369
1404
  // src/components/chain/controls/PollingControlsFlexbox.tsx
1370
1405
  import { Autorenew, Pause } from "@mui/icons-material";
1371
1406
  import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip8 } from "@mui/material";
1372
1407
  import { FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
1373
- import React30, { memo } from "react";
1408
+ import React31, { memo } from "react";
1374
1409
 
1375
1410
  // src/components/chain/stats/Dialog.tsx
1376
1411
  import { QueryStats } from "@mui/icons-material";
1377
1412
  import { Dialog as Dialog3, DialogContent as DialogContent3, DialogTitle as DialogTitle3, IconButton as IconButton3 } from "@mui/material";
1378
- import React28, { useState as useState11 } from "react";
1413
+ import React29, { useState as useState11 } from "react";
1379
1414
 
1380
1415
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
1381
1416
  import { ListItem, styled, Typography as Typography6 } from "@mui/material";
1382
1417
  import { ErrorRender as ErrorRender3 } from "@xylabs/react-error";
1383
1418
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
1384
1419
  import { isChainSummaryProducers } from "@xyo-network/chain-analyze";
1385
- import React27, { useMemo as useMemo12 } from "react";
1420
+ import React28, { useMemo as useMemo12 } from "react";
1386
1421
 
1387
1422
  // src/components/chain/stats/producer/Table.tsx
1388
1423
  import { Table, TableBody as TableBody2, TableCell as TableCell10, TableHead as TableHead2, TableRow as TableRow3, useTheme as useTheme2 } from "@mui/material";
1389
1424
  import { BlockiesAvatar as BlockiesAvatar2 } from "@xyo-network/react-chain-blockies";
1390
- import React26 from "react";
1425
+ import React27 from "react";
1391
1426
  var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) => {
1392
1427
  const theme = useTheme2();
1393
- return /* @__PURE__ */ React26.createElement(Table, props, /* @__PURE__ */ React26.createElement(TableHead2, null, /* @__PURE__ */ React26.createElement(TableRow3, null, /* @__PURE__ */ React26.createElement(TableCell10, null, "Address"), /* @__PURE__ */ React26.createElement(TableCell10, null, "Blocks Produced"), /* @__PURE__ */ React26.createElement(TableCell10, null, "Rewards Earned Produced"))), /* @__PURE__ */ React26.createElement(TableBody2, null, producers?.map((producer) => /* @__PURE__ */ React26.createElement(TableRow3, {
1428
+ return /* @__PURE__ */ React27.createElement(Table, props, /* @__PURE__ */ React27.createElement(TableHead2, null, /* @__PURE__ */ React27.createElement(TableRow3, null, /* @__PURE__ */ React27.createElement(TableCell10, null, "Address"), /* @__PURE__ */ React27.createElement(TableCell10, null, "Blocks Produced"), /* @__PURE__ */ React27.createElement(TableCell10, null, "Rewards Earned Produced"))), /* @__PURE__ */ React27.createElement(TableBody2, null, producers?.map((producer) => /* @__PURE__ */ React27.createElement(TableRow3, {
1394
1429
  key: producer.address
1395
- }, /* @__PURE__ */ React26.createElement(TableCell10, null, /* @__PURE__ */ React26.createElement(BlockiesAvatar2, {
1430
+ }, /* @__PURE__ */ React27.createElement(TableCell10, null, /* @__PURE__ */ React27.createElement(BlockiesAvatar2, {
1396
1431
  blockiesOptions: {
1397
1432
  seed: producer.address
1398
1433
  },
@@ -1400,7 +1435,7 @@ var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) =
1400
1435
  height: theme.spacing(2.75),
1401
1436
  width: theme.spacing(2.75)
1402
1437
  }
1403
- })), /* @__PURE__ */ React26.createElement(TableCell10, null, producer.blocksProduced.toString()), /* @__PURE__ */ React26.createElement(TableCell10, null, producer.rewardsEarned.toString())))));
1438
+ })), /* @__PURE__ */ React27.createElement(TableCell10, null, producer.blocksProduced.toString()), /* @__PURE__ */ React27.createElement(TableCell10, null, producer.rewardsEarned.toString())))));
1404
1439
  }, "ChainProducerStatsTable");
1405
1440
 
1406
1441
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
@@ -1422,16 +1457,16 @@ var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) =
1422
1457
  const producersArray = useMemo12(() => Object.values(producer?.producers ?? {}), [
1423
1458
  producer
1424
1459
  ]);
1425
- return /* @__PURE__ */ React27.createElement(FlexCol3, {
1460
+ return /* @__PURE__ */ React28.createElement(FlexCol3, {
1426
1461
  alignItems: "start",
1427
1462
  gap: 1,
1428
1463
  ...props
1429
- }, /* @__PURE__ */ React27.createElement(ErrorRender3, {
1464
+ }, /* @__PURE__ */ React28.createElement(ErrorRender3, {
1430
1465
  error: producerError,
1431
1466
  scope: "BlockProducerStatsFlexbox"
1432
- }), /* @__PURE__ */ React27.createElement(Typography6, {
1467
+ }), /* @__PURE__ */ React28.createElement(Typography6, {
1433
1468
  fontSize: "1rem"
1434
- }, "Block Producers"), /* @__PURE__ */ React27.createElement(ChainProducerStatsTable, {
1469
+ }, "Block Producers"), /* @__PURE__ */ React28.createElement(ChainProducerStatsTable, {
1435
1470
  producers: producersArray
1436
1471
  }));
1437
1472
  }, "BlockProducerStatsFlexbox");
@@ -1443,18 +1478,18 @@ var StyledListItem = styled(ListItem)(() => ({
1443
1478
  // src/components/chain/stats/Dialog.tsx
1444
1479
  var ChainAnalyzerStatsDialog = /* @__PURE__ */ __name((props) => {
1445
1480
  const { analyzers, statsUpdated } = useChainAnalyzersContext();
1446
- return /* @__PURE__ */ React28.createElement(Dialog3, props, /* @__PURE__ */ React28.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React28.createElement(DialogContent3, null, statsUpdated > 0 && Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React28.createElement("div", {
1481
+ return /* @__PURE__ */ React29.createElement(Dialog3, props, /* @__PURE__ */ React29.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React29.createElement(DialogContent3, null, statsUpdated > 0 && Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React29.createElement("div", {
1447
1482
  key: id2
1448
- }, id2 === "producers" && /* @__PURE__ */ React28.createElement(BlockProducerStatsFlexbox, {
1483
+ }, id2 === "producers" && /* @__PURE__ */ React29.createElement(BlockProducerStatsFlexbox, {
1449
1484
  payload: analyzer.result()
1450
1485
  })))));
1451
1486
  }, "ChainAnalyzerStatsDialog");
1452
1487
  var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1453
1488
  const [open, setOpen] = useState11(false);
1454
1489
  const handleClose = /* @__PURE__ */ __name(() => setOpen(false), "handleClose");
1455
- return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(IconButton3, {
1490
+ return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(IconButton3, {
1456
1491
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1457
- }, /* @__PURE__ */ React28.createElement(QueryStats, null)), /* @__PURE__ */ React28.createElement(ChainAnalyzerStatsDialog, {
1492
+ }, /* @__PURE__ */ React29.createElement(QueryStats, null)), /* @__PURE__ */ React29.createElement(ChainAnalyzerStatsDialog, {
1458
1493
  onClose: handleClose,
1459
1494
  open,
1460
1495
  ...props
@@ -1463,19 +1498,19 @@ var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1463
1498
 
1464
1499
  // src/components/chain/controls/PulseSvgIcon.tsx
1465
1500
  import { createSvgIcon, keyframes, styled as styled2 } from "@mui/material";
1466
- import React29 from "react";
1467
- var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React29.createElement("svg", {
1501
+ import React30 from "react";
1502
+ var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React30.createElement("svg", {
1468
1503
  viewBox: "0 0 80 80",
1469
1504
  version: "1.1",
1470
1505
  xmlns: "http://www.w3.org/2000/svg"
1471
- }, /* @__PURE__ */ React29.createElement("g", {
1506
+ }, /* @__PURE__ */ React30.createElement("g", {
1472
1507
  transform: "translate(34,34)"
1473
- }, /* @__PURE__ */ React29.createElement("circle", {
1508
+ }, /* @__PURE__ */ React30.createElement("circle", {
1474
1509
  className: "core",
1475
1510
  cx: "0",
1476
1511
  cy: "0",
1477
1512
  r: "6"
1478
- }), /* @__PURE__ */ React29.createElement("circle", {
1513
+ }), /* @__PURE__ */ React30.createElement("circle", {
1479
1514
  className: "radar",
1480
1515
  cx: "0",
1481
1516
  cy: "0",
@@ -1539,24 +1574,24 @@ var StyledPulseSvgIcon = styled2(PulseSvgIcon)(({ theme }) => {
1539
1574
  var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingState, setPollingState }) => {
1540
1575
  const paused = pollingState === "paused";
1541
1576
  const running = pollingState === "running";
1542
- return /* @__PURE__ */ React30.createElement(FlexRow6, {
1577
+ return /* @__PURE__ */ React31.createElement(FlexRow6, {
1543
1578
  justifyContent: "space-between",
1544
1579
  width: "100%"
1545
- }, /* @__PURE__ */ React30.createElement(FlexRow6, {
1580
+ }, /* @__PURE__ */ React31.createElement(FlexRow6, {
1546
1581
  gap: 2
1547
- }, running && /* @__PURE__ */ React30.createElement(IconButton4, {
1582
+ }, running && /* @__PURE__ */ React31.createElement(IconButton4, {
1548
1583
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("paused"), "onClick"),
1549
1584
  title: "Pause Block Stream"
1550
- }, /* @__PURE__ */ React30.createElement(Pause, null)), paused && /* @__PURE__ */ React30.createElement(IconButton4, {
1585
+ }, /* @__PURE__ */ React31.createElement(Pause, null)), paused && /* @__PURE__ */ React31.createElement(IconButton4, {
1551
1586
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick"),
1552
1587
  title: "Re-Sync Block Stream"
1553
- }, /* @__PURE__ */ React30.createElement(Autorenew, null)), /* @__PURE__ */ React30.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React30.createElement(FlexRow6, {
1588
+ }, /* @__PURE__ */ React31.createElement(Autorenew, null)), /* @__PURE__ */ React31.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React31.createElement(FlexRow6, {
1554
1589
  gap: 2
1555
- }, /* @__PURE__ */ React30.createElement(Grow, {
1590
+ }, /* @__PURE__ */ React31.createElement(Grow, {
1556
1591
  in: (blocksBehind ?? 0) > 0
1557
- }, /* @__PURE__ */ React30.createElement(Tooltip8, {
1592
+ }, /* @__PURE__ */ React31.createElement(Tooltip8, {
1558
1593
  title: "Click to Re-Sync"
1559
- }, /* @__PURE__ */ React30.createElement(Alert3, {
1594
+ }, /* @__PURE__ */ React31.createElement(Alert3, {
1560
1595
  sx: {
1561
1596
  py: 0,
1562
1597
  px: 1,
@@ -1564,11 +1599,11 @@ var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingStat
1564
1599
  },
1565
1600
  severity: "warning",
1566
1601
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick")
1567
- }, /* @__PURE__ */ React30.createElement(AlertTitle2, {
1602
+ }, /* @__PURE__ */ React31.createElement(AlertTitle2, {
1568
1603
  sx: {
1569
1604
  mb: 0
1570
1605
  }
1571
- }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React30.createElement(Icon2, null, /* @__PURE__ */ React30.createElement(StyledPulseSvgIcon, {
1606
+ }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React31.createElement(Icon2, null, /* @__PURE__ */ React31.createElement(StyledPulseSvgIcon, {
1572
1607
  className: running ? "" : "paused"
1573
1608
  }))));
1574
1609
  }, "PollingControlsFlexbox");
@@ -1576,9 +1611,9 @@ var MemoizedPollingControlsFlexbox = /* @__PURE__ */ memo(PollingControlsFlexbox
1576
1611
 
1577
1612
  // src/components/chain/dialog/Dialog.tsx
1578
1613
  import { Button as Button4, Dialog as Dialog4, DialogActions as DialogActions3, DialogContent as DialogContent4 } from "@mui/material";
1579
- import React31 from "react";
1614
+ import React32 from "react";
1580
1615
  var TransactionsDialog = /* @__PURE__ */ __name((props) => {
1581
- return /* @__PURE__ */ React31.createElement(Dialog4, props, /* @__PURE__ */ React31.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React31.createElement(DialogActions3, null, /* @__PURE__ */ React31.createElement(Button4, {
1616
+ return /* @__PURE__ */ React32.createElement(Dialog4, props, /* @__PURE__ */ React32.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React32.createElement(DialogActions3, null, /* @__PURE__ */ React32.createElement(Button4, {
1582
1617
  variant: "outlined",
1583
1618
  onClick: /* @__PURE__ */ __name((e) => props?.onClose?.(e, "escapeKeyDown"), "onClick")
1584
1619
  }, "Close")));
@@ -1618,9 +1653,9 @@ var useOnBlock = /* @__PURE__ */ __name((initialHeadNumber, onAddBlock, liveHead
1618
1653
 
1619
1654
  // src/components/chain/pagination/BlockChainPagination.tsx
1620
1655
  import { TablePaginationActions } from "@xyo-network/react-payload-table";
1621
- import React32 from "react";
1656
+ import React33 from "react";
1622
1657
  var BlockChainPagination = /* @__PURE__ */ __name(({ count = 0, onPageChange, page, rowsPerPage = 10 }) => {
1623
- return /* @__PURE__ */ React32.createElement(TablePaginationActions, {
1658
+ return /* @__PURE__ */ React33.createElement(TablePaginationActions, {
1624
1659
  count,
1625
1660
  onPageChange,
1626
1661
  page,
@@ -1654,11 +1689,11 @@ var useChainPagination = /* @__PURE__ */ __name((pageSize, blockComponents) => {
1654
1689
  // src/components/chain/render/dynamic/flexbox/variants/Base.tsx
1655
1690
  import { ErrorRender as ErrorRender4 } from "@xylabs/react-error";
1656
1691
  import { FlexCol as FlexCol5 } from "@xylabs/react-flexbox";
1657
- import React34 from "react";
1692
+ import React35 from "react";
1658
1693
 
1659
1694
  // src/components/chain/list/Animated.tsx
1660
1695
  import { AnimatedList } from "@xylabs/react-animation";
1661
- import React33 from "react";
1696
+ import React34 from "react";
1662
1697
 
1663
1698
  // src/components/chain/styled/BlockListWrapperFlexbox.tsx
1664
1699
  import { styled as styled3 } from "@mui/material";
@@ -1679,10 +1714,10 @@ var BlockListWrapperFlexBox = styled3(FlexCol4, {
1679
1714
 
1680
1715
  // src/components/chain/list/Animated.tsx
1681
1716
  var BlockListAnimated = /* @__PURE__ */ __name(({ blockChainRenderComponents }) => {
1682
- return /* @__PURE__ */ React33.createElement(BlockListWrapperFlexBox, {
1717
+ return /* @__PURE__ */ React34.createElement(BlockListWrapperFlexBox, {
1683
1718
  alignItems: "stretch",
1684
1719
  width: "100%"
1685
- }, /* @__PURE__ */ React33.createElement(AnimatedList, {
1720
+ }, /* @__PURE__ */ React34.createElement(AnimatedList, {
1686
1721
  fullWidth: true,
1687
1722
  items: blockChainRenderComponents
1688
1723
  }));
@@ -1692,7 +1727,9 @@ var BlockListAnimated = /* @__PURE__ */ __name(({ blockChainRenderComponents })
1692
1727
  import { useMemo as useMemo14 } from "react";
1693
1728
  var useDynamicBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blockChainRenderProps) => {
1694
1729
  const { maxBlocks } = blockChainRenderProps ?? {};
1695
- const chainIteratorParams = useMemo14(() => blockChainRenderProps ?? {}, [
1730
+ const chainIteratorParams = useMemo14(() => blockChainRenderProps ?? {
1731
+ name: "unknown"
1732
+ }, [
1696
1733
  blockChainRenderProps
1697
1734
  ]);
1698
1735
  const [params, paramsError] = useChainIteratorParams(chainIteratorParams);
@@ -1735,14 +1772,11 @@ var getChainArchivistFromBridge = /* @__PURE__ */ __name(async (params) => {
1735
1772
  return assertEx4(asArchivistInstance(mod), () => `Module ${chainArchivistModuleId} is not an archivist`);
1736
1773
  }, "getChainArchivistFromBridge");
1737
1774
 
1738
- // src/lib/getChainInformation.ts
1775
+ // src/lib/getChainId.ts
1739
1776
  var id = "ce080bf3043a40c6c8838c7e813c00ab53df1684";
1740
- var getChainInformation = /* @__PURE__ */ __name(() => {
1741
- const chainInformation = {
1742
- id
1743
- };
1744
- return chainInformation;
1745
- }, "getChainInformation");
1777
+ var getChainId = /* @__PURE__ */ __name(() => {
1778
+ return id;
1779
+ }, "getChainId");
1746
1780
 
1747
1781
  // src/components/chain/render/dynamic/hooks/useRemoteBlockChainRenderProps.ts
1748
1782
  var useRemoteBlockChainRenderProps = /* @__PURE__ */ __name((chainArchivistModuleId, url, blockChainRenderPropsArg) => {
@@ -1759,7 +1793,8 @@ var useRemoteBlockChainRenderProps = /* @__PURE__ */ __name((chainArchivistModul
1759
1793
  ]);
1760
1794
  const blockChainRenderProps = useMemo15(() => ({
1761
1795
  ...blockChainRenderPropsArg,
1762
- chainArchivist
1796
+ chainArchivist,
1797
+ name: "blockChainRenderProps"
1763
1798
  }), [
1764
1799
  blockChainRenderPropsArg,
1765
1800
  chainArchivist
@@ -1773,39 +1808,40 @@ var useRemoteBlockChainRenderProps = /* @__PURE__ */ __name((chainArchivistModul
1773
1808
  // src/components/chain/render/dynamic/flexbox/variants/Base.tsx
1774
1809
  var DynamicListBase = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1775
1810
  const { errors, blockChainRenderComponents, blocksWhilePaused, pollingState, updatePollingState } = useDynamicBlockRenderComponents(BlockHeadingFlexbox, blockChainRenderProps);
1776
- return /* @__PURE__ */ React34.createElement(FlexCol5, {
1811
+ return /* @__PURE__ */ React35.createElement(FlexCol5, {
1777
1812
  alignItems: "start",
1778
1813
  ...props
1779
- }, errors?.map((error) => /* @__PURE__ */ React34.createElement(ErrorRender4, {
1814
+ }, errors?.map((error) => /* @__PURE__ */ React35.createElement(ErrorRender4, {
1780
1815
  error,
1781
1816
  key: error?.name,
1782
1817
  scope: "DynamicBlockchainRenderFlexboxInner"
1783
- })), /* @__PURE__ */ React34.createElement(MemoizedPollingControlsFlexbox, {
1818
+ })), /* @__PURE__ */ React35.createElement(MemoizedPollingControlsFlexbox, {
1784
1819
  blocksBehind: blocksWhilePaused?.length,
1785
1820
  pollingState,
1786
1821
  setPollingState: updatePollingState
1787
- }), /* @__PURE__ */ React34.createElement(BlockListAnimated, {
1822
+ }), /* @__PURE__ */ React35.createElement(BlockListAnimated, {
1788
1823
  blockChainRenderComponents
1789
1824
  }));
1790
1825
  }, "DynamicListBase");
1791
1826
 
1792
1827
  // src/components/chain/render/dynamic/flexbox/variants/WithAnalysis.tsx
1828
+ import { isAddress } from "@xylabs/hex";
1793
1829
  import { ChainProducersAnalyzer } from "@xyo-network/chain-analyze";
1794
- import React35, { useMemo as useMemo16 } from "react";
1830
+ import React36, { useMemo as useMemo16 } from "react";
1795
1831
  var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1796
- const { chainInformation } = blockChainRenderProps ?? {};
1832
+ const { chainId } = blockChainRenderProps ?? {};
1797
1833
  const analyzers = useMemo16(() => {
1798
- if (chainInformation) {
1834
+ if (isAddress(chainId)) {
1799
1835
  return {
1800
1836
  producers: new ChainProducersAnalyzer()
1801
1837
  };
1802
1838
  }
1803
1839
  }, [
1804
- chainInformation
1840
+ chainId
1805
1841
  ]);
1806
- return /* @__PURE__ */ React35.createElement(ChainAnalyzersProvider, {
1842
+ return /* @__PURE__ */ React36.createElement(ChainAnalyzersProvider, {
1807
1843
  analyzers
1808
- }, /* @__PURE__ */ React35.createElement(ChainPollingProvider, null, /* @__PURE__ */ React35.createElement(DynamicListBase, {
1844
+ }, /* @__PURE__ */ React36.createElement(ChainPollingProvider, null, /* @__PURE__ */ React36.createElement(DynamicListBase, {
1809
1845
  blockChainRenderProps,
1810
1846
  ...props
1811
1847
  })));
@@ -1813,13 +1849,13 @@ var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1813
1849
 
1814
1850
  // src/components/chain/render/dynamic/flexbox/variants/WithRemote.tsx
1815
1851
  import { ErrorRender as ErrorRender5 } from "@xylabs/react-error";
1816
- import React36 from "react";
1852
+ import React37 from "react";
1817
1853
  var WithRemote = /* @__PURE__ */ __name(({ url, chainArchivistModuleId, blockChainRenderProps: blockChainRenderPropsArg, ...props }) => {
1818
1854
  const { error, blockChainRenderProps } = useRemoteBlockChainRenderProps(chainArchivistModuleId, url, blockChainRenderPropsArg);
1819
- return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(ErrorRender5, {
1855
+ return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(ErrorRender5, {
1820
1856
  error,
1821
1857
  scope: "RemoteChainProviderFlexbox"
1822
- }), /* @__PURE__ */ React36.createElement(WithAnalysis, {
1858
+ }), /* @__PURE__ */ React37.createElement(WithAnalysis, {
1823
1859
  blockChainRenderProps,
1824
1860
  ...props
1825
1861
  }));
@@ -1835,7 +1871,7 @@ var DynamicBlockchainRenderFlexbox = {
1835
1871
  // src/components/chain/render/static/flexbox/variants/Base.tsx
1836
1872
  import { ErrorRender as ErrorRender6 } from "@xylabs/react-error";
1837
1873
  import { FlexCol as FlexCol6, FlexGrowRow as FlexGrowRow2 } from "@xylabs/react-flexbox";
1838
- import React37 from "react";
1874
+ import React38 from "react";
1839
1875
 
1840
1876
  // src/components/chain/render/static/hooks/useStaticBlockRenderComponents.ts
1841
1877
  import { exists } from "@xylabs/exists";
@@ -1844,7 +1880,9 @@ var DEFAULT_PAGE_SIZE = 25;
1844
1880
  var useStaticBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blockChainRenderProps) => {
1845
1881
  const { maxBlocks } = blockChainRenderProps ?? {};
1846
1882
  const pageSize = blockChainRenderProps?.pageSize ?? DEFAULT_PAGE_SIZE;
1847
- const chainIteratorParams = useMemo17(() => blockChainRenderProps ?? {}, [
1883
+ const chainIteratorParams = useMemo17(() => blockChainRenderProps ?? {
1884
+ name: "unknown"
1885
+ }, [
1848
1886
  blockChainRenderProps
1849
1887
  ]);
1850
1888
  const [params, paramsError] = useChainIteratorParams(chainIteratorParams);
@@ -1868,45 +1906,46 @@ var useStaticBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blo
1868
1906
  // src/components/chain/render/static/flexbox/variants/Base.tsx
1869
1907
  var StaticListBase = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1870
1908
  const { blockComponents, errors, paginatedBlockComponents, onPageChange, page, pageSize } = useStaticBlockRenderComponents(BlockHeadingFlexbox, blockChainRenderProps);
1871
- return /* @__PURE__ */ React37.createElement(FlexCol6, {
1909
+ return /* @__PURE__ */ React38.createElement(FlexCol6, {
1872
1910
  alignItems: "start",
1873
1911
  gap: 2,
1874
1912
  width: "100%",
1875
1913
  ...props
1876
- }, errors?.map((error) => /* @__PURE__ */ React37.createElement(ErrorRender6, {
1914
+ }, errors?.map((error) => /* @__PURE__ */ React38.createElement(ErrorRender6, {
1877
1915
  error,
1878
1916
  key: error.name,
1879
1917
  scope: "StaticBlockchainFlexboxInner"
1880
- })), (paginatedBlockComponents?.length ?? 0) > 0 ? /* @__PURE__ */ React37.createElement(FlexGrowRow2, {
1918
+ })), (paginatedBlockComponents?.length ?? 0) > 0 ? /* @__PURE__ */ React38.createElement(FlexGrowRow2, {
1881
1919
  justifyContent: "space-between",
1882
1920
  width: "100%"
1883
- }, /* @__PURE__ */ React37.createElement(ChainAnalyzerStatsDialogFromContext, null), /* @__PURE__ */ React37.createElement(BlockChainPagination, {
1921
+ }, /* @__PURE__ */ React38.createElement(ChainAnalyzerStatsDialogFromContext, null), /* @__PURE__ */ React38.createElement(BlockChainPagination, {
1884
1922
  count: blockComponents?.length ?? 0,
1885
1923
  onPageChange,
1886
1924
  page,
1887
1925
  rowsPerPage: pageSize
1888
- })) : null, /* @__PURE__ */ React37.createElement(BlockListAnimated, {
1926
+ })) : null, /* @__PURE__ */ React38.createElement(BlockListAnimated, {
1889
1927
  blockChainRenderComponents: paginatedBlockComponents
1890
1928
  }));
1891
1929
  }, "StaticListBase");
1892
1930
 
1893
1931
  // src/components/chain/render/static/flexbox/variants/WithAnalysis.tsx
1932
+ import { isAddress as isAddress2 } from "@xylabs/hex";
1894
1933
  import { ChainProducersAnalyzer as ChainProducersAnalyzer2 } from "@xyo-network/chain-analyze";
1895
- import React38, { useMemo as useMemo18 } from "react";
1934
+ import React39, { useMemo as useMemo18 } from "react";
1896
1935
  var WithAnalysis2 = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1897
- const { chainInformation } = blockChainRenderProps ?? {};
1936
+ const { chainId } = blockChainRenderProps ?? {};
1898
1937
  const analyzers = useMemo18(() => {
1899
- if (chainInformation) {
1938
+ if (isAddress2(chainId)) {
1900
1939
  return {
1901
1940
  producers: new ChainProducersAnalyzer2()
1902
1941
  };
1903
1942
  }
1904
1943
  }, [
1905
- chainInformation
1944
+ chainId
1906
1945
  ]);
1907
- return /* @__PURE__ */ React38.createElement(ChainAnalyzersProvider, {
1946
+ return /* @__PURE__ */ React39.createElement(ChainAnalyzersProvider, {
1908
1947
  analyzers
1909
- }, /* @__PURE__ */ React38.createElement(StaticListBase, {
1948
+ }, /* @__PURE__ */ React39.createElement(StaticListBase, {
1910
1949
  blockChainRenderProps,
1911
1950
  ...props
1912
1951
  }));
@@ -1921,19 +1960,19 @@ var StaticBlockchainRenderFlexBox = {
1921
1960
  // src/components/payload/builder/Flexbox.tsx
1922
1961
  import { FlexCol as FlexCol7 } from "@xylabs/react-flexbox";
1923
1962
  import { JsonViewerEx as JsonViewerEx2 } from "@xyo-network/react-payload-raw-info";
1924
- import React39, { useState as useState13 } from "react";
1963
+ import React40, { useState as useState13 } from "react";
1925
1964
  var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild, ...props }) => {
1926
1965
  const [payload, setPayload] = useState13();
1927
1966
  const onBuildLocal = /* @__PURE__ */ __name((payload2) => {
1928
1967
  onBuild?.(payload2);
1929
1968
  setPayload(payload2);
1930
1969
  }, "onBuildLocal");
1931
- return /* @__PURE__ */ React39.createElement(FlexCol7, {
1970
+ return /* @__PURE__ */ React40.createElement(FlexCol7, {
1932
1971
  gap: 2,
1933
1972
  ...props
1934
- }, /* @__PURE__ */ React39.createElement(BuilderComponent, {
1973
+ }, /* @__PURE__ */ React40.createElement(BuilderComponent, {
1935
1974
  onBuild: onBuildLocal
1936
- }), payload && /* @__PURE__ */ React39.createElement(JsonViewerEx2, {
1975
+ }), payload && /* @__PURE__ */ React40.createElement(JsonViewerEx2, {
1937
1976
  value: payload
1938
1977
  }));
1939
1978
  }, "PayloadBuilderFlexbox");
@@ -1941,11 +1980,11 @@ var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild,
1941
1980
  // src/components/payload/builder/producer-intent/Form.tsx
1942
1981
  import { Button as Button5, FormControl as FormControl5 } from "@mui/material";
1943
1982
  import { createProducerChainStakeIntent } from "@xyo-network/chain-protocol";
1944
- import React42, { useMemo as useMemo20, useState as useState16 } from "react";
1983
+ import React43, { useMemo as useMemo20, useState as useState16 } from "react";
1945
1984
 
1946
1985
  // src/components/payload/fields/BlockNumberTextField.tsx
1947
1986
  import { FormControl as FormControl3, FormHelperText as FormHelperText2, TextField as TextField3 } from "@mui/material";
1948
- import React40, { useState as useState14 } from "react";
1987
+ import React41, { useState as useState14 } from "react";
1949
1988
  var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumberChanged, onChange, ...props }) => {
1950
1989
  const [blockNumber, setBlockNumber] = useState14();
1951
1990
  const handleChange = /* @__PURE__ */ __name((e) => {
@@ -1955,15 +1994,15 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1955
1994
  onChange?.(e);
1956
1995
  }, "handleChange");
1957
1996
  const errored = errorMessage !== void 0;
1958
- return /* @__PURE__ */ React40.createElement(FormControl3, {
1997
+ return /* @__PURE__ */ React41.createElement(FormControl3, {
1959
1998
  fullWidth: true
1960
- }, /* @__PURE__ */ React40.createElement(TextField3, {
1999
+ }, /* @__PURE__ */ React41.createElement(TextField3, {
1961
2000
  error: errored,
1962
2001
  onChange: handleChange,
1963
2002
  type: "number",
1964
2003
  value: blockNumber ?? "",
1965
2004
  ...props
1966
- }), errored && /* @__PURE__ */ React40.createElement(FormHelperText2, {
2005
+ }), errored && /* @__PURE__ */ React41.createElement(FormHelperText2, {
1967
2006
  sx: {
1968
2007
  color: "error.main"
1969
2008
  }
@@ -1972,8 +2011,8 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1972
2011
 
1973
2012
  // src/components/payload/fields/XyoAddressTextField.tsx
1974
2013
  import { FormControl as FormControl4, FormHelperText as FormHelperText3, TextField as TextField4 } from "@mui/material";
1975
- import { asAddress, isAddress } from "@xylabs/hex";
1976
- import React41, { useMemo as useMemo19, useState as useState15 } from "react";
2014
+ import { asAddress, isAddress as isAddress3 } from "@xylabs/hex";
2015
+ import React42, { useMemo as useMemo19, useState as useState15 } from "react";
1977
2016
  var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange, resetValue, ...props }) => {
1978
2017
  const [address, setAddress] = useState15("");
1979
2018
  const [addressError, setAddressError] = useState15();
@@ -1984,7 +2023,7 @@ var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange,
1984
2023
  const { value } = event.target;
1985
2024
  onChange?.(event);
1986
2025
  const xyoAddress = asAddress(value);
1987
- if (isAddress(xyoAddress)) {
2026
+ if (isAddress3(xyoAddress)) {
1988
2027
  onAddressChanged?.(xyoAddress);
1989
2028
  }
1990
2029
  setAddressError(void 0);
@@ -1992,20 +2031,20 @@ var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange,
1992
2031
  }, "handleChange");
1993
2032
  const handleBlur = /* @__PURE__ */ __name(() => {
1994
2033
  const xyoAddress = asAddress(address);
1995
- if (!isAddress(xyoAddress)) {
2034
+ if (!isAddress3(xyoAddress)) {
1996
2035
  setAddressError(new Error("Invalid address"));
1997
2036
  onAddressChanged?.();
1998
2037
  }
1999
2038
  }, "handleBlur");
2000
- return /* @__PURE__ */ React41.createElement(FormControl4, {
2039
+ return /* @__PURE__ */ React42.createElement(FormControl4, {
2001
2040
  fullWidth: true
2002
- }, /* @__PURE__ */ React41.createElement(TextField4, {
2041
+ }, /* @__PURE__ */ React42.createElement(TextField4, {
2003
2042
  error: !!addressError,
2004
2043
  onBlur: handleBlur,
2005
2044
  onChange: handleChange,
2006
2045
  value: address,
2007
2046
  ...props
2008
- }), addressError && /* @__PURE__ */ React41.createElement(FormHelperText3, {
2047
+ }), addressError && /* @__PURE__ */ React42.createElement(FormHelperText3, {
2009
2048
  sx: {
2010
2049
  color: "error.main"
2011
2050
  }
@@ -2038,33 +2077,33 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2038
2077
  const onBuildLocal = /* @__PURE__ */ __name(() => {
2039
2078
  if (onBuild && intentPayload) onBuild?.(intentPayload);
2040
2079
  }, "onBuildLocal");
2041
- return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(FormControl5, {
2080
+ return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(FormControl5, {
2042
2081
  fullWidth: true
2043
- }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
2082
+ }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
2044
2083
  label: "Delegate",
2045
2084
  name: "delegate",
2046
2085
  onAddressChanged: setDelegate,
2047
2086
  required: true,
2048
2087
  size: "small"
2049
- })), /* @__PURE__ */ React42.createElement(FormControl5, {
2088
+ })), /* @__PURE__ */ React43.createElement(FormControl5, {
2050
2089
  fullWidth: true
2051
- }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
2090
+ }, /* @__PURE__ */ React43.createElement(BlockNumberTextField, {
2052
2091
  errorMessage: blockRangeError?.message,
2053
2092
  label: "Expires",
2054
2093
  name: "exp",
2055
2094
  onBlockNumberChanged: setExp,
2056
2095
  required: true,
2057
2096
  size: "small"
2058
- })), /* @__PURE__ */ React42.createElement(FormControl5, {
2097
+ })), /* @__PURE__ */ React43.createElement(FormControl5, {
2059
2098
  fullWidth: true
2060
- }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
2099
+ }, /* @__PURE__ */ React43.createElement(BlockNumberTextField, {
2061
2100
  errorMessage: blockRangeError?.message,
2062
2101
  label: "Not Before",
2063
2102
  name: "nbf",
2064
2103
  onBlockNumberChanged: setNbf,
2065
2104
  required: true,
2066
2105
  size: "small"
2067
- })), /* @__PURE__ */ React42.createElement(Button5, {
2106
+ })), /* @__PURE__ */ React43.createElement(Button5, {
2068
2107
  disabled: !intentPayload,
2069
2108
  variant: "contained",
2070
2109
  onClick: onBuildLocal
@@ -2072,34 +2111,34 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2072
2111
  }, "ProducerIntentBuilderForm");
2073
2112
 
2074
2113
  // src/components/payload/builder/transfer/Flexbox.tsx
2075
- import React45 from "react";
2114
+ import React46 from "react";
2076
2115
 
2077
2116
  // src/components/payload/builder/transfer/Form.tsx
2078
2117
  import { Button as Button6, FormControl as FormControl7 } from "@mui/material";
2079
- import { isAddress as isAddress3 } from "@xylabs/hex";
2118
+ import { isAddress as isAddress5 } from "@xylabs/hex";
2080
2119
  import { TransferSchema } from "@xyo-network/xl1-protocol";
2081
- import React44, { useMemo as useMemo22, useState as useState18 } from "react";
2120
+ import React45, { useMemo as useMemo22, useState as useState18 } from "react";
2082
2121
 
2083
2122
  // src/components/payload/builder/transfer/builder/SingleFlexbox.tsx
2084
2123
  import { RemoveCircle } from "@mui/icons-material";
2085
2124
  import { FormControl as FormControl6, Icon as Icon3, IconButton as IconButton5 } from "@mui/material";
2086
- import { isAddress as isAddress2, toHex as toHex3 } from "@xylabs/hex";
2125
+ import { isAddress as isAddress4, toHex as toHex3 } from "@xylabs/hex";
2087
2126
  import { FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
2088
2127
  import { BigIntInput } from "@xyo-network/react-shared";
2089
- import React43, { useEffect as useEffect4, useMemo as useMemo21, useState as useState17 } from "react";
2128
+ import React44, { useEffect as useEffect4, useMemo as useMemo21, useState as useState17 } from "react";
2090
2129
  var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated, onRemoveTransfer, singleTransfer, ...props }) => {
2091
- const [toAddress, setToAddress] = useState17();
2130
+ const [toAddress2, setToAddress] = useState17();
2092
2131
  const [amount, setAmount] = useState17();
2093
2132
  const transferAmount = useMemo21(() => {
2094
- if (isAddress2(toAddress) && amount !== void 0) {
2133
+ if (isAddress4(toAddress2) && amount !== void 0) {
2095
2134
  return {
2096
2135
  ...singleTransfer,
2097
2136
  amount: toHex3(amount),
2098
- to: toAddress
2137
+ to: toAddress2
2099
2138
  };
2100
2139
  }
2101
2140
  }, [
2102
- toAddress,
2141
+ toAddress2,
2103
2142
  amount
2104
2143
  ]);
2105
2144
  useEffect4(() => {
@@ -2107,29 +2146,29 @@ var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated,
2107
2146
  }, [
2108
2147
  transferAmount
2109
2148
  ]);
2110
- return /* @__PURE__ */ React43.createElement(FlexRow7, {
2149
+ return /* @__PURE__ */ React44.createElement(FlexRow7, {
2111
2150
  alignItems: "start",
2112
2151
  gap: 1,
2113
2152
  ...props
2114
- }, /* @__PURE__ */ React43.createElement(FormControl6, {
2153
+ }, /* @__PURE__ */ React44.createElement(FormControl6, {
2115
2154
  fullWidth: true
2116
- }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
2155
+ }, /* @__PURE__ */ React44.createElement(XyoAddressTextField, {
2117
2156
  label: "To",
2118
2157
  name: "to",
2119
2158
  onAddressChanged: setToAddress,
2120
2159
  required: true,
2121
2160
  size: "small"
2122
- })), /* @__PURE__ */ React43.createElement(FormControl6, {
2161
+ })), /* @__PURE__ */ React44.createElement(FormControl6, {
2123
2162
  fullWidth: true
2124
- }, /* @__PURE__ */ React43.createElement(BigIntInput.TextField, {
2163
+ }, /* @__PURE__ */ React44.createElement(BigIntInput.TextField, {
2125
2164
  label: "Amount",
2126
2165
  name: "amount",
2127
2166
  onChangeFixedPoint: setAmount,
2128
2167
  required: true,
2129
2168
  size: "small"
2130
- })), /* @__PURE__ */ React43.createElement(IconButton5, {
2169
+ })), /* @__PURE__ */ React44.createElement(IconButton5, {
2131
2170
  onClick: /* @__PURE__ */ __name(() => onRemoveTransfer?.(singleTransfer.transferId), "onClick")
2132
- }, /* @__PURE__ */ React43.createElement(Icon3, null, /* @__PURE__ */ React43.createElement(RemoveCircle, null))));
2171
+ }, /* @__PURE__ */ React44.createElement(Icon3, null, /* @__PURE__ */ React44.createElement(RemoveCircle, null))));
2133
2172
  }, "SingleTransferBuilderFlexbox");
2134
2173
 
2135
2174
  // src/components/payload/builder/transfer/Form.tsx
@@ -2137,7 +2176,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2137
2176
  const [fromAddress, setFromAddress] = useState18();
2138
2177
  const [transfers, setTransfers] = useState18([]);
2139
2178
  const transferPayload = useMemo22(() => {
2140
- if (isAddress3(fromAddress) && transfers.length > 0) {
2179
+ if (isAddress5(fromAddress) && transfers.length > 0) {
2141
2180
  const transfersRecord = {};
2142
2181
  for (const transfer of transfers) {
2143
2182
  transfersRecord[transfer.to] = transfer.amount;
@@ -2178,19 +2217,19 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2178
2217
  return transfer;
2179
2218
  }));
2180
2219
  }, "onTransferUpdated");
2181
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(FormControl7, {
2220
+ return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(FormControl7, {
2182
2221
  fullWidth: true
2183
- }, /* @__PURE__ */ React44.createElement(XyoAddressTextField, {
2222
+ }, /* @__PURE__ */ React45.createElement(XyoAddressTextField, {
2184
2223
  label: "From",
2185
2224
  name: "from",
2186
2225
  onAddressChanged: setFromAddress,
2187
2226
  required: true,
2188
2227
  size: "small"
2189
- })), /* @__PURE__ */ React44.createElement(Button6, {
2228
+ })), /* @__PURE__ */ React45.createElement(Button6, {
2190
2229
  onClick: onTransferAdded,
2191
2230
  size: "small",
2192
2231
  variant: "contained"
2193
- }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React44.createElement(SingleTransferBuilderFlexbox, {
2232
+ }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React45.createElement(SingleTransferBuilderFlexbox, {
2194
2233
  key: transfer.transferId,
2195
2234
  onTransferUpdated,
2196
2235
  onRemoveTransfer: onTransferRemoved,
@@ -2198,7 +2237,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2198
2237
  sx: {
2199
2238
  width: "100%"
2200
2239
  }
2201
- })), /* @__PURE__ */ React44.createElement(Button6, {
2240
+ })), /* @__PURE__ */ React45.createElement(Button6, {
2202
2241
  disabled: !transferPayload,
2203
2242
  variant: "contained",
2204
2243
  onClick: onBuildLocal
@@ -2206,7 +2245,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2206
2245
  }, "TransferBuilderForm");
2207
2246
 
2208
2247
  // src/components/payload/builder/transfer/Flexbox.tsx
2209
- var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React45.createElement(PayloadBuilderFlexbox, {
2248
+ var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React46.createElement(PayloadBuilderFlexbox, {
2210
2249
  gap: 4,
2211
2250
  alignItems: "start",
2212
2251
  BuilderComponent: TransferBuilderForm,
@@ -2219,9 +2258,9 @@ import { CircularProgress } from "@mui/material";
2219
2258
  import { usePromise as usePromise7 } from "@xylabs/react-promise";
2220
2259
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
2221
2260
  import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
2222
- import { flattenHydratedBlocks } from "@xyo-network/chain-protocol";
2223
2261
  import { buildRandomBlockChain } from "@xyo-network/react-chain-shared";
2224
- import React46, { useEffect as useEffect5 } from "react";
2262
+ import { flattenHydratedBlocks } from "@xyo-network/xl1-protocol-sdk";
2263
+ import React47, { useEffect as useEffect5 } from "react";
2225
2264
  var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2226
2265
  const [randomBlockChain] = usePromise7(async () => await buildRandomBlockChain(), []);
2227
2266
  const [blockChainRenderProps, blockChainRenderPropsError] = usePromise7(async () => {
@@ -2234,10 +2273,10 @@ var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2234
2273
  });
2235
2274
  const flattened = flattenHydratedBlocks(randomBlockChain);
2236
2275
  await chainArchivist.insert(flattened);
2237
- const chainInformation = await getChainInformation();
2276
+ const chainId = await getChainId();
2238
2277
  return {
2239
2278
  chainArchivist,
2240
- chainInformation
2279
+ chainId
2241
2280
  };
2242
2281
  }
2243
2282
  }, [
@@ -2261,7 +2300,7 @@ var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2261
2300
  }
2262
2301
  }
2263
2302
  };
2264
- return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress, null);
2303
+ return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React47.createElement(Story, props) : /* @__PURE__ */ React47.createElement(CircularProgress, null);
2265
2304
  }, "ChainArchivistDecorator");
2266
2305
 
2267
2306
  // src/stories/ChainArchivistDelayedInsertDecorator.tsx
@@ -2270,9 +2309,9 @@ import { delay } from "@xylabs/delay";
2270
2309
  import { usePromise as usePromise8 } from "@xylabs/react-promise";
2271
2310
  import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
2272
2311
  import { ArchivistConfigSchema as ArchivistConfigSchema2 } from "@xyo-network/archivist-model";
2273
- import { flattenHydratedBlock } from "@xyo-network/chain-protocol";
2274
2312
  import { buildRandomBlockChain as buildRandomBlockChain2 } from "@xyo-network/react-chain-shared";
2275
- import React47, { useEffect as useEffect6, useState as useState19 } from "react";
2313
+ import { flattenHydratedBlock } from "@xyo-network/xl1-protocol-sdk";
2314
+ import React48, { useEffect as useEffect6, useState as useState19 } from "react";
2276
2315
  var chainArchivistRef;
2277
2316
  var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, context) => {
2278
2317
  const [firstBlock, setFirstBlock] = useState19();
@@ -2311,10 +2350,10 @@ var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, contex
2311
2350
  delayedInsertError
2312
2351
  ]);
2313
2352
  const [blockChainRenderProps] = usePromise8(async () => {
2314
- const chainInformation = await getChainInformation();
2353
+ const chainId = await getChainId();
2315
2354
  return {
2316
2355
  chainArchivist,
2317
- chainInformation
2356
+ chainId
2318
2357
  };
2319
2358
  }, [
2320
2359
  chainArchivist
@@ -2330,30 +2369,31 @@ var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, contex
2330
2369
  }
2331
2370
  }
2332
2371
  };
2333
- return firstBlock ? /* @__PURE__ */ React47.createElement(Story, props) : /* @__PURE__ */ React47.createElement(CircularProgress2, null);
2372
+ return firstBlock ? /* @__PURE__ */ React48.createElement(Story, props) : /* @__PURE__ */ React48.createElement(CircularProgress2, null);
2334
2373
  }, "ChainArchivistDelayedInsertDecorator");
2335
2374
 
2336
2375
  // src/stories/ChainInfoContextDecorator.tsx
2337
2376
  import { assertEx as assertEx5 } from "@xylabs/assert";
2338
2377
  import { usePromise as usePromise9 } from "@xylabs/react-promise";
2378
+ import { isDefined as isDefined4 } from "@xylabs/typeof";
2339
2379
  import { ChainBlockNumberIterationService as ChainBlockNumberIterationService3 } from "@xyo-network/chain-services";
2340
2380
  import { findFirstMatching } from "@xyo-network/chain-utils";
2341
2381
  import { isBlockBoundWitness as isBlockBoundWitness3 } from "@xyo-network/xl1-protocol";
2342
- import React48 from "react";
2382
+ import React49 from "react";
2343
2383
  var archivistConfig = {
2344
2384
  url: "http://localhost:8080",
2345
2385
  chainArchivistModuleId: "XYOPublic:XYOChain:Chain"
2346
2386
  };
2347
2387
  var ChainInfoContextDecorator = /* @__PURE__ */ __name((Story, context) => {
2348
- const [chainInformationResponse] = usePromise9(async () => {
2349
- return await getChainInformation();
2388
+ const [chainIdResponse] = usePromise9(async () => {
2389
+ return await getChainId();
2350
2390
  }, []);
2351
- const chainInformation = chainInformationResponse;
2391
+ const chainId = chainIdResponse;
2352
2392
  const [chainArchivist] = usePromise9(async () => {
2353
2393
  return await getChainArchivistFromBridge(archivistConfig);
2354
2394
  }, []);
2355
2395
  const [chainIterator] = usePromise9(async () => {
2356
- if (chainArchivist && chainInformation) {
2396
+ if (isDefined4(chainArchivist) && isDefined4(chainId)) {
2357
2397
  const firstMatch = assertEx5(await findFirstMatching(chainArchivist), () => `No head found in archivist: ${chainArchivist.id} `);
2358
2398
  const head = assertEx5(isBlockBoundWitness3(firstMatch) ? firstMatch : void 0, () => `Expected a block bound witness: ${JSON.stringify(firstMatch)}`);
2359
2399
  return await ChainBlockNumberIterationService3.create({
@@ -2363,13 +2403,13 @@ var ChainInfoContextDecorator = /* @__PURE__ */ __name((Story, context) => {
2363
2403
  }
2364
2404
  }, [
2365
2405
  chainArchivist,
2366
- chainInformation
2406
+ chainId
2367
2407
  ]);
2368
- return /* @__PURE__ */ React48.createElement(ChainInfoProvider, {
2408
+ return /* @__PURE__ */ React49.createElement(ChainInfoProvider, {
2369
2409
  chainArchivist,
2370
- chainInformation,
2410
+ chainId,
2371
2411
  chainIterator
2372
- }, /* @__PURE__ */ React48.createElement(Story, context));
2412
+ }, /* @__PURE__ */ React49.createElement(Story, context));
2373
2413
  }, "ChainInfoContextDecorator");
2374
2414
  export {
2375
2415
  BlockChainPagination,
@@ -2396,6 +2436,7 @@ export {
2396
2436
  ChainIteratorStore,
2397
2437
  ChainTransactionBuilder,
2398
2438
  ChainTransactionNetwork,
2439
+ ChipSkeleton,
2399
2440
  DynamicBlockchainRenderFlexbox,
2400
2441
  FeatureNotAvailable,
2401
2442
  MemoizedPollingControlsFlexbox,