@xyo-network/react-chain-blockchain 1.3.7 → 1.3.9

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 (109) hide show
  1. package/dist/browser/index.mjs +99 -98
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/types/components/block/ProducerChip.d.ts +1 -1
  4. package/dist/types/components/block/ProducerChip.d.ts.map +1 -1
  5. package/dist/types/components/block/helpers/blockProducer.d.ts +1 -1
  6. package/dist/types/components/block/helpers/blockProducer.d.ts.map +1 -1
  7. package/dist/types/components/block/helpers/payloadCountsFromBlock.d.ts +1 -1
  8. package/dist/types/components/block/helpers/payloadCountsFromBlock.d.ts.map +1 -1
  9. package/dist/types/components/block/hooks/useBlockProducer.d.ts +1 -1
  10. package/dist/types/components/block/hooks/useBlockProducer.d.ts.map +1 -1
  11. package/dist/types/components/block/hooks/useDynamicBlockComponents.d.ts +1 -1
  12. package/dist/types/components/block/hooks/useDynamicBlockComponents.d.ts.map +1 -1
  13. package/dist/types/components/block/hooks/usePayloadCountsFromBlock.d.ts +1 -1
  14. package/dist/types/components/block/hooks/usePayloadCountsFromBlock.d.ts.map +1 -1
  15. package/dist/types/components/block/hooks/useStaticBlockComponents.d.ts +1 -1
  16. package/dist/types/components/block/hooks/useStaticBlockComponents.d.ts.map +1 -1
  17. package/dist/types/components/block/menu/Expanded.d.ts +1 -1
  18. package/dist/types/components/block/menu/Expanded.d.ts.map +1 -1
  19. package/dist/types/components/block/table/cell/BlockNumber.d.ts.map +1 -1
  20. package/dist/types/components/block/table/cell/BlockNumberChip.d.ts +7 -0
  21. package/dist/types/components/block/table/cell/BlockNumberChip.d.ts.map +1 -0
  22. package/dist/types/components/block/table/cell/PayloadCounts.d.ts.map +1 -1
  23. package/dist/types/components/block/table/cell/Producer.d.ts.map +1 -1
  24. package/dist/types/components/block/table/cell/TransactionCount.d.ts.map +1 -1
  25. package/dist/types/components/block/table/cell/Verification.d.ts +1 -0
  26. package/dist/types/components/block/table/cell/Verification.d.ts.map +1 -1
  27. package/dist/types/components/block/table/cell/hooks/useLinkedBlockItem.d.ts.map +1 -1
  28. package/dist/types/components/block/table/cell/lib/BlockTableCellProps.d.ts +1 -1
  29. package/dist/types/components/block/table/cell/lib/BlockTableCellProps.d.ts.map +1 -1
  30. package/dist/types/components/block/table/row/TableRow.d.ts +1 -0
  31. package/dist/types/components/block/table/row/TableRow.d.ts.map +1 -1
  32. package/dist/types/components/chain/hooks/useOnBlock.d.ts +1 -1
  33. package/dist/types/components/chain/hooks/useOnBlock.d.ts.map +1 -1
  34. package/dist/types/components/chain/render/dynamic/hooks/useDynamicBlockRenderComponents.d.ts +1 -1
  35. package/dist/types/components/transactions/TransactionsQuickTipButton.d.ts +1 -1
  36. package/dist/types/components/transactions/TransactionsQuickTipButton.d.ts.map +1 -1
  37. package/dist/types/components/transactions/submit/Builder.d.ts +1 -1
  38. package/dist/types/components/transactions/submit/Builder.d.ts.map +1 -1
  39. package/dist/types/context/analyzer/state.d.ts +1 -1
  40. package/dist/types/context/analyzer/state.d.ts.map +1 -1
  41. package/dist/types/context/chain/State.d.ts +1 -1
  42. package/dist/types/context/chain/State.d.ts.map +1 -1
  43. package/dist/types/helpers/txsFromBlock.d.ts +2 -2
  44. package/dist/types/helpers/txsFromBlock.d.ts.map +1 -1
  45. package/dist/types/hooks/chain-iterator/ChainIteratorStore.d.ts +1 -1
  46. package/dist/types/hooks/chain-iterator/ChainIteratorStore.d.ts.map +1 -1
  47. package/dist/types/hooks/chain-iterator/useChainIteratorParams.d.ts +3 -3
  48. package/dist/types/hooks/chain-iterator/useChainIteratorParams.d.ts.map +1 -1
  49. package/dist/types/hooks/chain-iterator/useChainIteratorStore.d.ts +1 -1
  50. package/dist/types/hooks/chain-iterator/useChainIteratorStore.d.ts.map +1 -1
  51. package/dist/types/hooks/chain-iterator/useChainIteratorUpdatingHead.d.ts +1 -1
  52. package/dist/types/hooks/chain-iterator/useChainIteratorUpdatingHead.d.ts.map +1 -1
  53. package/dist/types/hooks/useIterateChain.d.ts +1 -1
  54. package/dist/types/hooks/useIterateChain.d.ts.map +1 -1
  55. package/dist/types/hooks/useTxsFromBlock.d.ts +2 -2
  56. package/dist/types/hooks/useTxsFromBlock.d.ts.map +1 -1
  57. package/dist/types/lib/getChainInformation.d.ts +1 -1
  58. package/dist/types/lib/getChainInformation.d.ts.map +1 -1
  59. package/dist/types/stories/buildRandomBlockchain.d.ts +1 -1
  60. package/dist/types/stories/buildRandomBlockchain.d.ts.map +1 -1
  61. package/dist/types/types/BlockComponentProps.d.ts +1 -1
  62. package/dist/types/types/BlockComponentProps.d.ts.map +1 -1
  63. package/dist/types/types/BlockComponents.d.ts +1 -1
  64. package/dist/types/types/BlockComponents.d.ts.map +1 -1
  65. package/dist/types/types/render/BlockChainRenderProps.d.ts +1 -1
  66. package/dist/types/types/render/BlockChainRenderProps.d.ts.map +1 -1
  67. package/package.json +37 -36
  68. package/src/components/block/ProducerChip.tsx +1 -1
  69. package/src/components/block/helpers/blockProducer.ts +1 -1
  70. package/src/components/block/helpers/payloadCountsFromBlock.ts +1 -1
  71. package/src/components/block/hooks/useBlockProducer.ts +1 -1
  72. package/src/components/block/hooks/useDynamicBlockComponents.ts +1 -1
  73. package/src/components/block/hooks/usePayloadCountsFromBlock.ts +1 -1
  74. package/src/components/block/hooks/useStaticBlockComponents.ts +1 -1
  75. package/src/components/block/menu/Expanded.tsx +1 -1
  76. package/src/components/block/table/cell/BlockNumber.tsx +8 -15
  77. package/src/components/block/table/cell/BlockNumberChip.tsx +11 -0
  78. package/src/components/block/table/cell/JsonView.tsx +13 -13
  79. package/src/components/block/table/cell/PayloadCounts.tsx +19 -3
  80. package/src/components/block/table/cell/Producer.tsx +1 -4
  81. package/src/components/block/table/cell/TransactionCount.tsx +2 -8
  82. package/src/components/block/table/cell/Verification.tsx +10 -8
  83. package/src/components/block/table/cell/hooks/useLinkedBlockItem.tsx +1 -0
  84. package/src/components/block/table/cell/lib/BlockTableCellProps.ts +1 -1
  85. package/src/components/block/table/head/TableHead.tsx +4 -4
  86. package/src/components/block/table/row/TableRow.tsx +30 -10
  87. package/src/components/chain/hooks/useOnBlock.ts +1 -1
  88. package/src/components/payload/builder/producer-intent/Form.tsx +1 -1
  89. package/src/components/payload/builder/transfer/Form.tsx +2 -2
  90. package/src/components/transactions/TransactionsQuickTipButton.tsx +1 -1
  91. package/src/components/transactions/submit/Builder.tsx +2 -2
  92. package/src/components/transactions/submit/SubmitChain.tsx +2 -2
  93. package/src/context/analyzer/Provider.tsx +1 -1
  94. package/src/context/analyzer/state.ts +1 -1
  95. package/src/context/chain/State.ts +1 -1
  96. package/src/helpers/txsFromBlock.ts +2 -2
  97. package/src/hooks/chain-iterator/ChainIteratorStore.ts +1 -1
  98. package/src/hooks/chain-iterator/useChainIteratorParams.ts +2 -2
  99. package/src/hooks/chain-iterator/useChainIteratorStore.ts +1 -1
  100. package/src/hooks/chain-iterator/useChainIteratorUpdatingHead.ts +1 -1
  101. package/src/hooks/useIterateChain.ts +2 -2
  102. package/src/hooks/useTxsFromBlock.ts +1 -1
  103. package/src/lib/getChainInformation.ts +1 -1
  104. package/src/stories/ChainArchivistDelayedInsertDecorator.tsx +1 -1
  105. package/src/stories/ChainInfoContextDecorator.tsx +1 -1
  106. package/src/stories/buildRandomBlockchain.ts +1 -1
  107. package/src/types/BlockComponentProps.ts +1 -1
  108. package/src/types/BlockComponents.ts +1 -1
  109. package/src/types/render/BlockChainRenderProps.ts +1 -1
@@ -146,7 +146,7 @@ var useChainPollingContext = /* @__PURE__ */ __name((required = false) => useCon
146
146
  import { Button, FormControl, TextField } from "@mui/material";
147
147
  import { toHex } from "@xylabs/hex";
148
148
  import { FlexCol } from "@xylabs/react-flexbox";
149
- import { defaultFees } from "@xyo-network/xl1-protocol";
149
+ import { defaultFees } from "@xyo-network/xl1-protocol-sdk";
150
150
  import React4 from "react";
151
151
  var ChainTransactionBuilder = /* @__PURE__ */ __name(({ onSubmitTx }) => {
152
152
  const handleSubmit = /* @__PURE__ */ __name(async (event) => {
@@ -242,7 +242,7 @@ import { Account } from "@xyo-network/account";
242
242
  import { ArchivistInsertQuerySchema } from "@xyo-network/archivist-model";
243
243
  import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
244
244
  import { PayloadBuilder } from "@xyo-network/payload-builder";
245
- import { buildTransaction } from "@xyo-network/xl1-protocol";
245
+ import { buildTransaction } from "@xyo-network/xl1-protocol-sdk";
246
246
  import React6, { useState as useState5 } from "react";
247
247
  var BETA_PENDING_TRANSACTIONS_ARCHIVIST = "https://beta.api.chain.xyo.network/8050fee682a2762f504d5449d8269a6f17f0b693";
248
248
  var defaultNetwork = new URL(BETA_PENDING_TRANSACTIONS_ARCHIVIST);
@@ -405,7 +405,7 @@ var ChainIteratorStore = class _ChainIteratorStore {
405
405
  import { assertEx as assertEx2 } from "@xylabs/assert";
406
406
  import { usePromise } from "@xylabs/react-promise";
407
407
  import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
408
- import { isBlockBoundWitness } from "@xyo-network/xl1-model";
408
+ import { isBlockBoundWitness } from "@xyo-network/xl1-protocol";
409
409
  var resolveDefinedHead = /* @__PURE__ */ __name(async (head, chainArchivist) => {
410
410
  const [headPayload] = await chainArchivist.get([
411
411
  head
@@ -545,7 +545,7 @@ import { usePromise as usePromise3 } from "@xylabs/react-promise";
545
545
  import { hydrateBlock as hydrateBlock2 } from "@xyo-network/chain-protocol";
546
546
  import { XyoChainBlockNumberIterator as XyoChainBlockNumberIterator2 } from "@xyo-network/chain-services";
547
547
  import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
548
- import { isBlockBoundWitness as isBlockBoundWitness2 } from "@xyo-network/xl1-model";
548
+ import { isBlockBoundWitness as isBlockBoundWitness2 } from "@xyo-network/xl1-protocol";
549
549
  var getHydratedBlock = /* @__PURE__ */ __name(async (chainArchivist, head) => {
550
550
  const headHash = await PayloadBuilder3.hash(head);
551
551
  return await hydrateBlock2(chainArchivist, headHash);
@@ -591,7 +591,7 @@ import { usePromise as usePromise4 } from "@xylabs/react-promise";
591
591
 
592
592
  // src/helpers/txsFromBlock.ts
593
593
  import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
594
- import { isTransactionBoundWitness } from "@xyo-network/xl1-model";
594
+ import { isTransactionBoundWitness } from "@xyo-network/xl1-protocol";
595
595
  var txsFromBlock = /* @__PURE__ */ __name(async (block) => {
596
596
  const transactionPayloads = block[1].filter((payload) => isTransactionBoundWitness(payload));
597
597
  return await PayloadBuilder4.hashPairs(transactionPayloads);
@@ -732,7 +732,7 @@ var buildBlockChainRenderComponent = /* @__PURE__ */ __name(async (BlockComponen
732
732
 
733
733
  // src/components/block/helpers/payloadCountsFromBlock.ts
734
734
  import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
735
- import { isTransactionBoundWitness as isTransactionBoundWitness2 } from "@xyo-network/xl1-model";
735
+ import { isTransactionBoundWitness as isTransactionBoundWitness2 } from "@xyo-network/xl1-protocol";
736
736
  var payloadCountsFromBlock = /* @__PURE__ */ __name(([block, payloads]) => {
737
737
  const publicPayloads = block.payload_schemas.filter((schema) => schema !== BoundWitnessSchema);
738
738
  const transactionHashes = payloads.filter((payload) => isTransactionBoundWitness2(payload)).flatMap((payload) => payload.payload_hashes);
@@ -954,8 +954,30 @@ var BlockHeadingFlexbox = /* @__PURE__ */ __name(({ block, defaultExpanded, tran
954
954
  }, "BlockHeadingFlexbox");
955
955
 
956
956
  // src/components/block/table/cell/BlockNumber.tsx
957
- import { Link, TableCell, Tooltip } from "@mui/material";
957
+ import { TableCell, Tooltip, Typography as Typography3 } from "@mui/material";
958
958
  import React14 from "react";
959
+ var BlockNumberTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
960
+ const blockNumber = block?.[0].block;
961
+ return /* @__PURE__ */ React14.createElement(TableCell, props, /* @__PURE__ */ React14.createElement(Tooltip, {
962
+ title: `Block Number: ${blockNumber}`
963
+ }, /* @__PURE__ */ React14.createElement(Typography3, {
964
+ component: "span",
965
+ variant: "body1"
966
+ }, blockNumber)));
967
+ }, "BlockNumberTableCell");
968
+
969
+ // src/components/block/table/cell/Hash.tsx
970
+ import { Avatar, Chip as Chip3, TableCell as TableCell2, Tooltip as Tooltip2 } from "@mui/material";
971
+ import { Identicon } from "@xylabs/react-identicon";
972
+ import { usePayloadRootHash } from "@xyo-network/react-shared";
973
+ import React16 from "react";
974
+
975
+ // src/components/FeatureNotAvailable.tsx
976
+ import { Button as Button2, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
977
+ import React15 from "react";
978
+ var FeatureNotAvailable = /* @__PURE__ */ __name(({ featureName = "Feature", ...props }) => /* @__PURE__ */ React15.createElement(Dialog, props, /* @__PURE__ */ React15.createElement(DialogTitle, null, `${featureName} Not Available`), /* @__PURE__ */ React15.createElement(DialogContent, null, "This feature is not currently available. Either you do not have access to it or it is currently undergoing maintenance."), /* @__PURE__ */ React15.createElement(DialogActions, null, /* @__PURE__ */ React15.createElement(Button2, {
979
+ onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick")
980
+ }, "Close"))), "FeatureNotAvailable");
959
981
 
960
982
  // src/components/block/table/cell/hooks/useLinkedBlockItem.tsx
961
983
  import { useEvent as useEvent2 } from "@xyo-network/react-event";
@@ -963,6 +985,7 @@ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
963
985
  const [ref, dispatch] = useEvent2();
964
986
  const handleClick = /* @__PURE__ */ __name((event) => {
965
987
  event.preventDefault();
988
+ event.stopPropagation();
966
989
  if (!noun) {
967
990
  console.warn("useLinkedBlockItem: noun is required");
968
991
  return;
@@ -975,37 +998,6 @@ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
975
998
  ];
976
999
  }, "useLinkedBlockItem");
977
1000
 
978
- // src/components/block/table/cell/BlockNumber.tsx
979
- var BlockNumberTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
980
- const [ref, handleClick] = useLinkedBlockItem("block-number", block?.[0].block.toString());
981
- const blockNumberBigInt = block ? block[0].block.toString() : "";
982
- return /* @__PURE__ */ React14.createElement(TableCell, {
983
- ref,
984
- ...props
985
- }, /* @__PURE__ */ React14.createElement(Tooltip, {
986
- title: `Block Number: ${blockNumberBigInt}`
987
- }, /* @__PURE__ */ React14.createElement("span", null, linked && block ? /* @__PURE__ */ React14.createElement(Link, {
988
- title: block[0].block.toString(),
989
- onClick: handleClick,
990
- sx: {
991
- cursor: "pointer"
992
- }
993
- }, block[0].block.toString()) : null, !linked && blockNumberBigInt)));
994
- }, "BlockNumberTableCell");
995
-
996
- // src/components/block/table/cell/Hash.tsx
997
- import { Avatar, Chip as Chip3, TableCell as TableCell2, Tooltip as Tooltip2 } from "@mui/material";
998
- import { Identicon } from "@xylabs/react-identicon";
999
- import { usePayloadRootHash } from "@xyo-network/react-shared";
1000
- import React16 from "react";
1001
-
1002
- // src/components/FeatureNotAvailable.tsx
1003
- import { Button as Button2, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
1004
- import React15 from "react";
1005
- var FeatureNotAvailable = /* @__PURE__ */ __name(({ featureName = "Feature", ...props }) => /* @__PURE__ */ React15.createElement(Dialog, props, /* @__PURE__ */ React15.createElement(DialogTitle, null, `${featureName} Not Available`), /* @__PURE__ */ React15.createElement(DialogContent, null, "This feature is not currently available. Either you do not have access to it or it is currently undergoing maintenance."), /* @__PURE__ */ React15.createElement(DialogActions, null, /* @__PURE__ */ React15.createElement(Button2, {
1006
- onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick")
1007
- }, "Close"))), "FeatureNotAvailable");
1008
-
1009
1001
  // src/components/block/table/cell/Hash.tsx
1010
1002
  var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAvailableDialog, linked, ...props }) => {
1011
1003
  const hash = usePayloadRootHash(block?.[0]);
@@ -1053,12 +1045,13 @@ var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1053
1045
  const hash = usePayloadRootHash2(block?.[0]);
1054
1046
  const title = hash ? `JSON for ${ellipsize(hash, 5)}` : "JSON";
1055
1047
  return /* @__PURE__ */ React17.createElement(TableCell3, props, /* @__PURE__ */ React17.createElement(FlexRow3, {
1048
+ onClick: /* @__PURE__ */ __name((e) => e.stopPropagation(), "onClick"),
1056
1049
  sx: {
1057
1050
  width: "100%"
1058
1051
  }
1059
1052
  }, /* @__PURE__ */ React17.createElement(IconButton2, {
1060
1053
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1061
- }, /* @__PURE__ */ React17.createElement(DataObject, null))), /* @__PURE__ */ React17.createElement(Dialog2, {
1054
+ }, /* @__PURE__ */ React17.createElement(DataObject, null)), /* @__PURE__ */ React17.createElement(Dialog2, {
1062
1055
  open,
1063
1056
  onClose
1064
1057
  }, /* @__PURE__ */ React17.createElement(DialogTitle2, null, title), /* @__PURE__ */ React17.createElement(DialogContent2, null, /* @__PURE__ */ React17.createElement(JsonViewerEx, {
@@ -1072,12 +1065,12 @@ var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1072
1065
  }, /* @__PURE__ */ React17.createElement(Button3, {
1073
1066
  variant: "contained",
1074
1067
  onClick: onClose
1075
- }, "Close"))));
1068
+ }, "Close")))));
1076
1069
  }, "BlockJsonViewTableCell");
1077
1070
 
1078
1071
  // src/components/block/table/cell/PayloadCounts.tsx
1079
1072
  import { Error as Error2 } from "@mui/icons-material";
1080
- import { Link as Link2, TableCell as TableCell4, Tooltip as Tooltip3 } from "@mui/material";
1073
+ import { Link, TableCell as TableCell4, Tooltip as Tooltip3 } from "@mui/material";
1081
1074
  import React18 from "react";
1082
1075
  var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1083
1076
  const [publicPayloads, privatePayloads, error] = usePayloadCountsFromBlock(block);
@@ -1086,8 +1079,8 @@ var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...pr
1086
1079
  privatePayloads,
1087
1080
  block: block[0]._hash
1088
1081
  } : void 0;
1082
+ const payloadCount = (publicPayloads ?? 0) + (privatePayloads ?? 0);
1089
1083
  const [ref, handleClick] = useLinkedBlockItem("payload-counts", data);
1090
- const renderText = `${publicPayloads ?? "--"} / ${privatePayloads ?? "--"}`;
1091
1084
  return /* @__PURE__ */ React18.createElement(TableCell4, {
1092
1085
  ref,
1093
1086
  ...props
@@ -1095,17 +1088,20 @@ var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...pr
1095
1088
  title: error.message
1096
1089
  }, /* @__PURE__ */ React18.createElement(Error2, {
1097
1090
  color: "error"
1098
- })) : null, linked ? /* @__PURE__ */ React18.createElement(Link2, {
1091
+ })) : null, linked ? /* @__PURE__ */ React18.createElement(Tooltip3, {
1092
+ title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1093
+ }, /* @__PURE__ */ React18.createElement(Link, {
1099
1094
  onClick: handleClick,
1100
1095
  sx: {
1101
1096
  cursor: "pointer"
1102
1097
  }
1103
- }, renderText) : renderText));
1098
+ }, payloadCount)) : /* @__PURE__ */ React18.createElement(Tooltip3, {
1099
+ title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1100
+ }, /* @__PURE__ */ React18.createElement("span", null, payloadCount))));
1104
1101
  }, "BlockPayloadCountsTableCell");
1105
1102
 
1106
1103
  // src/components/block/table/cell/Producer.tsx
1107
1104
  import { TableCell as TableCell5, Tooltip as Tooltip4 } from "@mui/material";
1108
- import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
1109
1105
  import React19 from "react";
1110
1106
  var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailableDialog, producerChipProps, ...props }) => {
1111
1107
  const [ref, handleClick] = useLinkedBlockItem("block-producer", JSON.stringify(block));
@@ -1116,10 +1112,6 @@ var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailab
1116
1112
  ...props
1117
1113
  }, /* @__PURE__ */ React19.createElement(Tooltip4, {
1118
1114
  title: `Block Producer: ${producer}`
1119
- }, /* @__PURE__ */ React19.createElement(FlexRow4, {
1120
- sx: {
1121
- width: "100%"
1122
- }
1123
1115
  }, /* @__PURE__ */ React19.createElement(BlockProducerChip, {
1124
1116
  sx: {
1125
1117
  cursor: "pointer"
@@ -1127,7 +1119,7 @@ var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailab
1127
1119
  onClick: linked ? handleClick : () => setNotAvailable(true),
1128
1120
  block,
1129
1121
  ...producerChipProps
1130
- }))), notAvailableDialog && notAvailable ? /* @__PURE__ */ React19.createElement(FeatureNotAvailable, {
1122
+ })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React19.createElement(FeatureNotAvailable, {
1131
1123
  featureName: "Producer Details",
1132
1124
  open: notAvailable,
1133
1125
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1136,7 +1128,7 @@ var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailab
1136
1128
 
1137
1129
  // src/components/block/table/cell/TransactionCount.tsx
1138
1130
  import { Error as Error3 } from "@mui/icons-material";
1139
- import { Link as Link3, TableCell as TableCell6, Tooltip as Tooltip5 } from "@mui/material";
1131
+ import { Link as Link2, TableCell as TableCell6, Tooltip as Tooltip5 } from "@mui/material";
1140
1132
  import React20, { useMemo as useMemo10 } from "react";
1141
1133
  var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1142
1134
  const [transactions, error] = useTxsFromBlock(block);
@@ -1155,36 +1147,31 @@ var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ..
1155
1147
  title: error.message
1156
1148
  }, /* @__PURE__ */ React20.createElement(Error3, {
1157
1149
  color: "error"
1158
- })) : null, linked ? /* @__PURE__ */ React20.createElement(Link3, {
1150
+ })) : null, linked ? /* @__PURE__ */ React20.createElement(Link2, {
1159
1151
  onClick: handleClick,
1160
1152
  sx: {
1161
1153
  cursor: "pointer"
1162
1154
  }
1163
- }, /* @__PURE__ */ React20.createElement(TransactionCountChip, {
1164
- transactions: txHashes
1165
- })) : /* @__PURE__ */ React20.createElement(TransactionCountChip, {
1166
- transactions: txHashes
1167
- })));
1155
+ }, txHashes?.length) : txHashes?.length));
1168
1156
  }, "BlockTransactionCountTableCell");
1169
1157
 
1170
1158
  // src/components/block/table/cell/Verification.tsx
1159
+ import { CheckCircleOutlineRounded } from "@mui/icons-material";
1171
1160
  import { TableCell as TableCell7 } from "@mui/material";
1172
- import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
1161
+ import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
1173
1162
  import { BWVerification as BWVerification2 } from "@xyo-network/react-boundwitness-plugin";
1174
1163
  import React21 from "react";
1175
- var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1176
- const [ref, handleClick] = useLinkedBlockItem("block-verification", block?.[0].block.toString());
1177
- return /* @__PURE__ */ React21.createElement(TableCell7, {
1178
- ref,
1179
- ...props
1180
- }, /* @__PURE__ */ React21.createElement(FlexRow5, {
1164
+ var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, deepValidation, ...props }) => {
1165
+ return /* @__PURE__ */ React21.createElement(TableCell7, props, /* @__PURE__ */ React21.createElement(FlexRow4, {
1166
+ onClick: /* @__PURE__ */ __name((e) => e.stopPropagation(), "onClick"),
1181
1167
  sx: {
1182
1168
  width: "100%"
1183
1169
  }
1184
- }, /* @__PURE__ */ React21.createElement(BWVerification2, {
1185
- onClick: linked ? handleClick : void 0,
1170
+ }, deepValidation ? /* @__PURE__ */ React21.createElement(BWVerification2, {
1186
1171
  iconColors: true,
1187
1172
  boundwitness: block?.[0]
1173
+ }) : /* @__PURE__ */ React21.createElement(CheckCircleOutlineRounded, {
1174
+ color: "success"
1188
1175
  })));
1189
1176
  }, "BlockVerificationTableCell");
1190
1177
 
@@ -1195,8 +1182,8 @@ import React23 from "react";
1195
1182
 
1196
1183
  // src/components/block/table/head/TableHead.tsx
1197
1184
  import { InfoOutline } from "@mui/icons-material";
1198
- import { TableCell as TableCell8, TableHead, TableRow, Tooltip as Tooltip6, Typography as Typography3 } from "@mui/material";
1199
- import { FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
1185
+ import { TableCell as TableCell8, TableHead, TableRow, Tooltip as Tooltip6, Typography as Typography4 } from "@mui/material";
1186
+ import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
1200
1187
  import React22 from "react";
1201
1188
  var ToolTipTableCell = /* @__PURE__ */ __name(({ children, align, title, ...props }) => {
1202
1189
  return /* @__PURE__ */ React22.createElement(TableCell8, {
@@ -1204,9 +1191,9 @@ var ToolTipTableCell = /* @__PURE__ */ __name(({ children, align, title, ...prop
1204
1191
  ...props
1205
1192
  }, /* @__PURE__ */ React22.createElement(Tooltip6, {
1206
1193
  title
1207
- }, /* @__PURE__ */ React22.createElement(FlexRow6, {
1194
+ }, /* @__PURE__ */ React22.createElement(FlexRow5, {
1208
1195
  justifyContent: align
1209
- }, /* @__PURE__ */ React22.createElement(Typography3, {
1196
+ }, /* @__PURE__ */ React22.createElement(Typography4, {
1210
1197
  variant: "body2"
1211
1198
  }, children), "\xA0", /* @__PURE__ */ React22.createElement(InfoOutline, {
1212
1199
  fontSize: "small"
@@ -1214,20 +1201,17 @@ var ToolTipTableCell = /* @__PURE__ */ __name(({ children, align, title, ...prop
1214
1201
  }, "ToolTipTableCell");
1215
1202
  var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1216
1203
  return /* @__PURE__ */ React22.createElement(TableHead, null, /* @__PURE__ */ React22.createElement(TableRow, null, /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1204
+ align: "left",
1205
+ title: "The block number that is included in the block"
1206
+ }, "Block"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1217
1207
  title: "The hash of the block"
1218
1208
  }, "Block Hash"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1219
- align: "center",
1220
- title: "The block number that is included in the block"
1221
- }, "Block Number"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1222
- align: "center",
1209
+ align: "left",
1223
1210
  title: "Count of transactions that are included in the block"
1224
1211
  }, "Transactions"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1225
- align: "center",
1212
+ align: "left",
1226
1213
  title: "Count of public and private payload counts for the block"
1227
1214
  }, "Payloads"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1228
- align: "center",
1229
- title: "The address of the block producer that produced the block"
1230
- }, "Block Producer"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1231
1215
  align: "center",
1232
1216
  title: "The result of the local validation check for the block"
1233
1217
  }, "Valid"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
@@ -1246,9 +1230,11 @@ var BlockchainTableEx = /* @__PURE__ */ __name(({ ref, children, ...props }) =>
1246
1230
  BlockchainTableEx.displayName = "BlockchainTableEx";
1247
1231
 
1248
1232
  // src/components/block/table/row/TableRow.tsx
1249
- import { TableRow as TableRow2 } from "@mui/material";
1233
+ import { TableRow as TableRow2, useTheme } from "@mui/material";
1234
+ import { alphaCss } from "@xylabs/react-theme";
1235
+ import { usePayloadRootHash as usePayloadRootHash3 } from "@xyo-network/react-shared";
1250
1236
  import React24, { useMemo as useMemo11 } from "react";
1251
- var BlockChainTableRow = /* @__PURE__ */ __name(({ block, defaultExpanded, linked, sx, ...props }) => {
1237
+ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaultExpanded, linked, sx, ...props }) => {
1252
1238
  const linkedTableCellProps = useMemo11(() => ({
1253
1239
  block,
1254
1240
  linked
@@ -1261,28 +1247,43 @@ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, defaultExpanded, linke
1261
1247
  }), [
1262
1248
  block
1263
1249
  ]);
1250
+ const hash = usePayloadRootHash3(block?.[0]);
1251
+ const [ref, handleClick] = useLinkedBlockItem("block-hash", hash);
1252
+ const theme = useTheme();
1264
1253
  return /* @__PURE__ */ React24.createElement(TableRow2, {
1254
+ onClick: linked ? handleClick : void 0,
1255
+ ref,
1265
1256
  sx: {
1266
- overflowY: "scroll",
1257
+ "cursor": linked ? "pointer" : "default",
1258
+ "overflowY": "scroll",
1259
+ "&:hover": {
1260
+ backgroundColor: alphaCss(theme.vars.palette.secondary.light, 0.85)
1261
+ },
1267
1262
  ...sx
1268
1263
  },
1269
1264
  ...props
1270
- }, /* @__PURE__ */ React24.createElement(BlockHashTableCell, linkedTableCellProps), /* @__PURE__ */ React24.createElement(BlockNumberTableCell, {
1271
- align: "center",
1265
+ }, /* @__PURE__ */ React24.createElement(BlockNumberTableCell, {
1266
+ align: "left",
1267
+ ...linkedTableCellProps
1268
+ }), /* @__PURE__ */ React24.createElement(BlockHashTableCell, {
1269
+ align: "left",
1272
1270
  ...linkedTableCellProps
1273
1271
  }), /* @__PURE__ */ React24.createElement(BlockTransactionCountTableCell, {
1274
- align: "center",
1272
+ align: "left",
1275
1273
  ...linkedTableCellProps
1276
1274
  }), /* @__PURE__ */ React24.createElement(BlockPayloadCountsTableCell, {
1277
- align: "center",
1275
+ align: "left",
1278
1276
  ...linkedTableCellProps
1279
- }), /* @__PURE__ */ React24.createElement(BlockProducerTableCell, linkedTableCellProps), /* @__PURE__ */ React24.createElement(BlockVerificationTableCell, defaultTableCellProps), /* @__PURE__ */ React24.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1277
+ }), /* @__PURE__ */ React24.createElement(BlockVerificationTableCell, {
1278
+ deepValidation,
1279
+ ...defaultTableCellProps
1280
+ }), /* @__PURE__ */ React24.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1280
1281
  }, "BlockChainTableRow");
1281
1282
 
1282
1283
  // src/components/chain/controls/PollingControlsFlexbox.tsx
1283
1284
  import { Autorenew, Pause } from "@mui/icons-material";
1284
1285
  import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip7 } from "@mui/material";
1285
- import { FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
1286
+ import { FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
1286
1287
  import React29, { memo } from "react";
1287
1288
 
1288
1289
  // src/components/chain/stats/Dialog.tsx
@@ -1291,18 +1292,18 @@ import { Dialog as Dialog3, DialogContent as DialogContent3, DialogTitle as Dial
1291
1292
  import React27, { useState as useState11 } from "react";
1292
1293
 
1293
1294
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
1294
- import { ListItem, styled, Typography as Typography4 } from "@mui/material";
1295
+ import { ListItem, styled, Typography as Typography5 } from "@mui/material";
1295
1296
  import { ErrorRender as ErrorRender3 } from "@xylabs/react-error";
1296
1297
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
1297
1298
  import { isChainSummaryProducers } from "@xyo-network/chain-protocol";
1298
1299
  import React26, { useMemo as useMemo12 } from "react";
1299
1300
 
1300
1301
  // src/components/chain/stats/producer/Table.tsx
1301
- import { Table, TableBody as TableBody2, TableCell as TableCell9, TableHead as TableHead2, TableRow as TableRow3, useTheme } from "@mui/material";
1302
+ import { Table, TableBody as TableBody2, TableCell as TableCell9, TableHead as TableHead2, TableRow as TableRow3, useTheme as useTheme2 } from "@mui/material";
1302
1303
  import { BlockiesAvatar as BlockiesAvatar2 } from "@xyo-network/react-chain-blockies";
1303
1304
  import React25 from "react";
1304
1305
  var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) => {
1305
- const theme = useTheme();
1306
+ const theme = useTheme2();
1306
1307
  return /* @__PURE__ */ React25.createElement(Table, props, /* @__PURE__ */ React25.createElement(TableHead2, null, /* @__PURE__ */ React25.createElement(TableRow3, null, /* @__PURE__ */ React25.createElement(TableCell9, null, "Address"), /* @__PURE__ */ React25.createElement(TableCell9, null, "Blocks Produced"), /* @__PURE__ */ React25.createElement(TableCell9, null, "Rewards Earned Produced"))), /* @__PURE__ */ React25.createElement(TableBody2, null, producers?.map((producer) => /* @__PURE__ */ React25.createElement(TableRow3, {
1307
1308
  key: producer.address
1308
1309
  }, /* @__PURE__ */ React25.createElement(TableCell9, null, /* @__PURE__ */ React25.createElement(BlockiesAvatar2, {
@@ -1342,7 +1343,7 @@ var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) =
1342
1343
  }, /* @__PURE__ */ React26.createElement(ErrorRender3, {
1343
1344
  error: producerError,
1344
1345
  scope: "BlockProducerStatsFlexbox"
1345
- }), /* @__PURE__ */ React26.createElement(Typography4, {
1346
+ }), /* @__PURE__ */ React26.createElement(Typography5, {
1346
1347
  fontSize: "1rem"
1347
1348
  }, "Block Producers"), /* @__PURE__ */ React26.createElement(ChainProducerStatsTable, {
1348
1349
  producers: producersArray
@@ -1452,10 +1453,10 @@ var StyledPulseSvgIcon = styled2(PulseSvgIcon)(({ theme }) => {
1452
1453
  var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingState, setPollingState }) => {
1453
1454
  const paused = pollingState === "paused";
1454
1455
  const running = pollingState === "running";
1455
- return /* @__PURE__ */ React29.createElement(FlexRow7, {
1456
+ return /* @__PURE__ */ React29.createElement(FlexRow6, {
1456
1457
  justifyContent: "space-between",
1457
1458
  width: "100%"
1458
- }, /* @__PURE__ */ React29.createElement(FlexRow7, {
1459
+ }, /* @__PURE__ */ React29.createElement(FlexRow6, {
1459
1460
  gap: 2
1460
1461
  }, running && /* @__PURE__ */ React29.createElement(IconButton4, {
1461
1462
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("paused"), "onClick"),
@@ -1463,7 +1464,7 @@ var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingStat
1463
1464
  }, /* @__PURE__ */ React29.createElement(Pause, null)), paused && /* @__PURE__ */ React29.createElement(IconButton4, {
1464
1465
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick"),
1465
1466
  title: "Re-Sync Block Stream"
1466
- }, /* @__PURE__ */ React29.createElement(Autorenew, null)), /* @__PURE__ */ React29.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React29.createElement(FlexRow7, {
1467
+ }, /* @__PURE__ */ React29.createElement(Autorenew, null)), /* @__PURE__ */ React29.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React29.createElement(FlexRow6, {
1467
1468
  gap: 2
1468
1469
  }, /* @__PURE__ */ React29.createElement(Grow, {
1469
1470
  in: (blocksBehind ?? 0) > 0
@@ -1988,14 +1989,14 @@ import React44 from "react";
1988
1989
 
1989
1990
  // src/components/payload/builder/transfer/Form.tsx
1990
1991
  import { Button as Button6, FormControl as FormControl7 } from "@mui/material";
1991
- import { TransferSchema } from "@xyo-network/xl1-model";
1992
+ import { TransferSchema } from "@xyo-network/xl1-protocol";
1992
1993
  import React43, { useMemo as useMemo22, useState as useState18 } from "react";
1993
1994
 
1994
1995
  // src/components/payload/builder/transfer/builder/SingleFlexbox.tsx
1995
1996
  import { RemoveCircle } from "@mui/icons-material";
1996
1997
  import { FormControl as FormControl6, Icon as Icon3, IconButton as IconButton5 } from "@mui/material";
1997
1998
  import { toHex as toHex3 } from "@xylabs/hex";
1998
- import { FlexRow as FlexRow8 } from "@xylabs/react-flexbox";
1999
+ import { FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
1999
2000
  import { BigIntInput } from "@xyo-network/react-shared";
2000
2001
  import React42, { useEffect as useEffect4, useMemo as useMemo21, useState as useState17 } from "react";
2001
2002
  var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated, onRemoveTransfer, singleTransfer, ...props }) => {
@@ -2018,7 +2019,7 @@ var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated,
2018
2019
  }, [
2019
2020
  transferAmount
2020
2021
  ]);
2021
- return /* @__PURE__ */ React42.createElement(FlexRow8, {
2022
+ return /* @__PURE__ */ React42.createElement(FlexRow7, {
2022
2023
  alignItems: "start",
2023
2024
  gap: 1,
2024
2025
  ...props
@@ -2260,7 +2261,7 @@ import { assertEx as assertEx5 } from "@xylabs/assert";
2260
2261
  import { usePromise as usePromise9 } from "@xylabs/react-promise";
2261
2262
  import { XyoChainBlockNumberIterator as XyoChainBlockNumberIterator3 } from "@xyo-network/chain-services";
2262
2263
  import { findFirstMatching } from "@xyo-network/chain-utils";
2263
- import { isBlockBoundWitness as isBlockBoundWitness3 } from "@xyo-network/xl1-model";
2264
+ import { isBlockBoundWitness as isBlockBoundWitness3 } from "@xyo-network/xl1-protocol";
2264
2265
  import React47 from "react";
2265
2266
  var archivistConfig = {
2266
2267
  url: "http://localhost:8080",