@xyo-network/react-chain-blockchain 1.5.10 → 1.5.12

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 (23) hide show
  1. package/dist/browser/index.mjs +256 -173
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/types/components/block/table/cell/Epoch.d.ts +6 -0
  4. package/dist/types/components/block/table/cell/Epoch.d.ts.map +1 -0
  5. package/dist/types/components/block/table/cell/{BlockNumberChip.d.ts → NumberChip.d.ts} +1 -1
  6. package/dist/types/components/block/table/cell/NumberChip.d.ts.map +1 -0
  7. package/dist/types/components/block/table/cell/index.d.ts +1 -0
  8. package/dist/types/components/block/table/cell/index.d.ts.map +1 -1
  9. package/dist/types/components/block/table/cell/lib/index.d.ts +1 -0
  10. package/dist/types/components/block/table/cell/lib/index.d.ts.map +1 -1
  11. package/dist/types/components/block/table/cell/lib/timeFunctions.d.ts +3 -0
  12. package/dist/types/components/block/table/cell/lib/timeFunctions.d.ts.map +1 -0
  13. package/dist/types/components/block/table/head/TableHead.d.ts.map +1 -1
  14. package/dist/types/components/block/table/row/TableRow.d.ts.map +1 -1
  15. package/package.json +20 -20
  16. package/src/components/block/table/cell/Epoch.tsx +30 -0
  17. package/src/components/block/table/cell/index.ts +1 -0
  18. package/src/components/block/table/cell/lib/index.ts +1 -0
  19. package/src/components/block/table/cell/lib/timeFunctions.ts +44 -0
  20. package/src/components/block/table/head/TableHead.tsx +2 -1
  21. package/src/components/block/table/row/TableRow.tsx +3 -2
  22. package/dist/types/components/block/table/cell/BlockNumberChip.d.ts.map +0 -1
  23. /package/src/components/block/table/cell/{BlockNumberChip.tsx → NumberChip.tsx} +0 -0
@@ -968,17 +968,94 @@ var BlockNumberTableCell = /* @__PURE__ */ __name(({ block, linked, ...props })
968
968
  }, blockNumber)));
969
969
  }, "BlockNumberTableCell");
970
970
 
971
+ // 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";
975
+
976
+ // src/components/block/table/cell/lib/timeFunctions.ts
977
+ var dateFormat = Intl.DateTimeFormat(globalThis.navigator.language ?? "en-US", {
978
+ year: "numeric",
979
+ month: "2-digit",
980
+ day: "2-digit",
981
+ hour: "2-digit",
982
+ minute: "2-digit",
983
+ second: "2-digit"
984
+ });
985
+ var timeAgo = /* @__PURE__ */ __name((epoch, locale = navigator.language ?? "en-US") => {
986
+ const now = Date.now();
987
+ const diffInSeconds = Math.floor((now - epoch) / 1e3);
988
+ const units = [
989
+ {
990
+ max: 60,
991
+ value: 1,
992
+ name: "second"
993
+ },
994
+ {
995
+ max: 3600,
996
+ value: 60,
997
+ name: "minute"
998
+ },
999
+ {
1000
+ max: 86400,
1001
+ value: 3600,
1002
+ name: "hour"
1003
+ },
1004
+ {
1005
+ max: 604800,
1006
+ value: 86400,
1007
+ name: "day"
1008
+ },
1009
+ {
1010
+ max: 2620800,
1011
+ value: 604800,
1012
+ name: "week"
1013
+ },
1014
+ {
1015
+ max: 31449600,
1016
+ value: 2620800,
1017
+ name: "month"
1018
+ },
1019
+ {
1020
+ max: Infinity,
1021
+ value: 31449600,
1022
+ name: "year"
1023
+ }
1024
+ ];
1025
+ for (const unit of units) {
1026
+ if (Math.abs(diffInSeconds) < unit.max) {
1027
+ const value = Math.round(diffInSeconds / unit.value);
1028
+ return new Intl.RelativeTimeFormat(locale, {
1029
+ numeric: "auto"
1030
+ }).format(-value, unit.name);
1031
+ }
1032
+ }
1033
+ }, "timeAgo");
1034
+
1035
+ // src/components/block/table/cell/Epoch.tsx
1036
+ var BlockEpochTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1037
+ const epoch = block?.[0]?.$epoch;
1038
+ 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, {
1041
+ title: `Block Epoch: ${dateTime}`
1042
+ }, /* @__PURE__ */ React15.createElement(Typography4, {
1043
+ component: "span",
1044
+ variant: "body1"
1045
+ }, age)));
1046
+ }, "BlockEpochTableCell");
1047
+
971
1048
  // src/components/block/table/cell/Hash.tsx
972
- import { Avatar, Chip as Chip3, TableCell as TableCell2, Tooltip as Tooltip2 } from "@mui/material";
1049
+ import { Avatar, Chip as Chip3, TableCell as TableCell3, Tooltip as Tooltip3 } from "@mui/material";
973
1050
  import { isHash as isHash2 } from "@xylabs/hex";
974
1051
  import { Identicon } from "@xylabs/react-identicon";
975
1052
  import { usePayloadRootHash } from "@xyo-network/react-shared";
976
- import React16 from "react";
1053
+ import React17 from "react";
977
1054
 
978
1055
  // src/components/FeatureNotAvailable.tsx
979
1056
  import { Button as Button2, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
980
- import React15 from "react";
981
- 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, {
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, {
982
1059
  onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick")
983
1060
  }, "Close"))), "FeatureNotAvailable");
984
1061
 
@@ -1005,19 +1082,19 @@ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
1005
1082
  var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAvailableDialog, linked, ...props }) => {
1006
1083
  const hash = usePayloadRootHash(block?.[0]);
1007
1084
  const [ref, handleClick] = useLinkedBlockItem("block-hash", hash);
1008
- const [notAvailable, setNotAvailable] = React16.useState(false);
1085
+ const [notAvailable, setNotAvailable] = React17.useState(false);
1009
1086
  const shortenedHash = isHash2(hash) ? `${hash.slice(0, 4)}...${hash.slice(-5, -1)}` : "";
1010
- return /* @__PURE__ */ React16.createElement(TableCell2, {
1087
+ return /* @__PURE__ */ React17.createElement(TableCell3, {
1011
1088
  ref,
1012
1089
  ...props
1013
- }, isHash2(hash) ? /* @__PURE__ */ React16.createElement(Tooltip2, {
1090
+ }, isHash2(hash) ? /* @__PURE__ */ React17.createElement(Tooltip3, {
1014
1091
  title: `Block Hash: ${hash}`
1015
- }, /* @__PURE__ */ React16.createElement(Chip3, {
1016
- avatar: /* @__PURE__ */ React16.createElement(Avatar, {
1092
+ }, /* @__PURE__ */ React17.createElement(Chip3, {
1093
+ avatar: /* @__PURE__ */ React17.createElement(Avatar, {
1017
1094
  sx: {
1018
1095
  background: "white"
1019
1096
  }
1020
- }, /* @__PURE__ */ React16.createElement(Identicon, {
1097
+ }, /* @__PURE__ */ React17.createElement(Identicon, {
1021
1098
  size: 16,
1022
1099
  value: hash,
1023
1100
  ...identiconProps
@@ -1027,7 +1104,7 @@ var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAva
1027
1104
  },
1028
1105
  label: shortenedHash,
1029
1106
  onClick: linked ? handleClick : () => setNotAvailable(true)
1030
- })) : null, notAvailableDialog && notAvailable ? /* @__PURE__ */ React16.createElement(FeatureNotAvailable, {
1107
+ })) : null, notAvailableDialog && notAvailable ? /* @__PURE__ */ React17.createElement(FeatureNotAvailable, {
1031
1108
  featureName: "Block Details",
1032
1109
  open: notAvailable,
1033
1110
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1036,37 +1113,37 @@ var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAva
1036
1113
 
1037
1114
  // src/components/block/table/cell/JsonView.tsx
1038
1115
  import { DataObject } from "@mui/icons-material";
1039
- import { Button as Button3, Dialog as Dialog2, DialogActions as DialogActions2, DialogContent as DialogContent2, DialogTitle as DialogTitle2, IconButton as IconButton2, TableCell as TableCell3 } from "@mui/material";
1116
+ import { Button as Button3, Dialog as Dialog2, DialogActions as DialogActions2, DialogContent as DialogContent2, DialogTitle as DialogTitle2, IconButton as IconButton2, TableCell as TableCell4 } from "@mui/material";
1040
1117
  import { ellipsize } from "@xylabs/eth-address";
1041
1118
  import { isHash as isHash3 } from "@xylabs/hex";
1042
1119
  import { FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
1043
1120
  import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
1044
1121
  import { usePayloadRootHash as usePayloadRootHash2 } from "@xyo-network/react-shared";
1045
- import React17, { useState as useState10 } from "react";
1122
+ import React18, { useState as useState10 } from "react";
1046
1123
  var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1047
1124
  const [open, setOpen] = useState10(false);
1048
1125
  const onClose = /* @__PURE__ */ __name(() => setOpen(false), "onClose");
1049
1126
  const hash = usePayloadRootHash2(block?.[0]);
1050
1127
  const title = isHash3(hash) ? `JSON for ${ellipsize(hash, 5)}` : "JSON";
1051
- return /* @__PURE__ */ React17.createElement(TableCell3, props, /* @__PURE__ */ React17.createElement(FlexRow3, {
1128
+ return /* @__PURE__ */ React18.createElement(TableCell4, props, /* @__PURE__ */ React18.createElement(FlexRow3, {
1052
1129
  onClick: /* @__PURE__ */ __name((e) => e.stopPropagation(), "onClick"),
1053
1130
  sx: {
1054
1131
  width: "100%"
1055
1132
  }
1056
- }, /* @__PURE__ */ React17.createElement(IconButton2, {
1133
+ }, /* @__PURE__ */ React18.createElement(IconButton2, {
1057
1134
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1058
- }, /* @__PURE__ */ React17.createElement(DataObject, null)), /* @__PURE__ */ React17.createElement(Dialog2, {
1135
+ }, /* @__PURE__ */ React18.createElement(DataObject, null)), /* @__PURE__ */ React18.createElement(Dialog2, {
1059
1136
  open,
1060
1137
  onClose
1061
- }, /* @__PURE__ */ React17.createElement(DialogTitle2, null, title), /* @__PURE__ */ React17.createElement(DialogContent2, null, /* @__PURE__ */ React17.createElement(JsonViewerEx, {
1138
+ }, /* @__PURE__ */ React18.createElement(DialogTitle2, null, title), /* @__PURE__ */ React18.createElement(DialogContent2, null, /* @__PURE__ */ React18.createElement(JsonViewerEx, {
1062
1139
  value: block
1063
- })), /* @__PURE__ */ React17.createElement(DialogActions2, {
1140
+ })), /* @__PURE__ */ React18.createElement(DialogActions2, {
1064
1141
  sx: {
1065
1142
  display: "flex",
1066
1143
  flexDirection: "row",
1067
1144
  justifyContent: "end"
1068
1145
  }
1069
- }, /* @__PURE__ */ React17.createElement(Button3, {
1146
+ }, /* @__PURE__ */ React18.createElement(Button3, {
1070
1147
  variant: "contained",
1071
1148
  onClick: onClose
1072
1149
  }, "Close")))));
@@ -1074,8 +1151,8 @@ var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1074
1151
 
1075
1152
  // src/components/block/table/cell/PayloadCounts.tsx
1076
1153
  import { Error as Error2 } from "@mui/icons-material";
1077
- import { Link, TableCell as TableCell4, Tooltip as Tooltip3 } from "@mui/material";
1078
- import React18 from "react";
1154
+ import { Link, TableCell as TableCell5, Tooltip as Tooltip4 } from "@mui/material";
1155
+ import React19 from "react";
1079
1156
  var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1080
1157
  const [publicPayloads, privatePayloads, error] = usePayloadCountsFromBlock(block);
1081
1158
  const data = block && privatePayloads !== void 0 && publicPayloads !== void 0 ? {
@@ -1085,45 +1162,45 @@ var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...pr
1085
1162
  } : void 0;
1086
1163
  const payloadCount = (publicPayloads ?? 0) + (privatePayloads ?? 0);
1087
1164
  const [ref, handleClick] = useLinkedBlockItem("payload-counts", data);
1088
- return /* @__PURE__ */ React18.createElement(TableCell4, {
1165
+ return /* @__PURE__ */ React19.createElement(TableCell5, {
1089
1166
  ref,
1090
1167
  ...props
1091
- }, /* @__PURE__ */ React18.createElement("span", null, error ? /* @__PURE__ */ React18.createElement(Tooltip3, {
1168
+ }, /* @__PURE__ */ React19.createElement("span", null, error ? /* @__PURE__ */ React19.createElement(Tooltip4, {
1092
1169
  title: error.message
1093
- }, /* @__PURE__ */ React18.createElement(Error2, {
1170
+ }, /* @__PURE__ */ React19.createElement(Error2, {
1094
1171
  color: "error"
1095
- })) : null, linked ? /* @__PURE__ */ React18.createElement(Tooltip3, {
1172
+ })) : null, linked ? /* @__PURE__ */ React19.createElement(Tooltip4, {
1096
1173
  title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1097
- }, /* @__PURE__ */ React18.createElement(Link, {
1174
+ }, /* @__PURE__ */ React19.createElement(Link, {
1098
1175
  onClick: handleClick,
1099
1176
  sx: {
1100
1177
  cursor: "pointer"
1101
1178
  }
1102
- }, payloadCount)) : /* @__PURE__ */ React18.createElement(Tooltip3, {
1179
+ }, payloadCount)) : /* @__PURE__ */ React19.createElement(Tooltip4, {
1103
1180
  title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1104
- }, /* @__PURE__ */ React18.createElement("span", null, payloadCount))));
1181
+ }, /* @__PURE__ */ React19.createElement("span", null, payloadCount))));
1105
1182
  }, "BlockPayloadCountsTableCell");
1106
1183
 
1107
1184
  // src/components/block/table/cell/Producer.tsx
1108
- import { TableCell as TableCell5, Tooltip as Tooltip4 } from "@mui/material";
1109
- import React19 from "react";
1185
+ import { TableCell as TableCell6, Tooltip as Tooltip5 } from "@mui/material";
1186
+ import React20 from "react";
1110
1187
  var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailableDialog, producerChipProps, ...props }) => {
1111
1188
  const [ref, handleClick] = useLinkedBlockItem("block-producer", JSON.stringify(block));
1112
1189
  const producer = useBlockProducer(block);
1113
- const [notAvailable, setNotAvailable] = React19.useState(false);
1114
- return /* @__PURE__ */ React19.createElement(TableCell5, {
1190
+ const [notAvailable, setNotAvailable] = React20.useState(false);
1191
+ return /* @__PURE__ */ React20.createElement(TableCell6, {
1115
1192
  ref,
1116
1193
  ...props
1117
- }, /* @__PURE__ */ React19.createElement(Tooltip4, {
1194
+ }, /* @__PURE__ */ React20.createElement(Tooltip5, {
1118
1195
  title: `Block Producer: ${producer}`
1119
- }, /* @__PURE__ */ React19.createElement(BlockProducerChip, {
1196
+ }, /* @__PURE__ */ React20.createElement(BlockProducerChip, {
1120
1197
  sx: {
1121
1198
  cursor: "pointer"
1122
1199
  },
1123
1200
  onClick: linked ? handleClick : () => setNotAvailable(true),
1124
1201
  block,
1125
1202
  ...producerChipProps
1126
- })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React19.createElement(FeatureNotAvailable, {
1203
+ })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React20.createElement(FeatureNotAvailable, {
1127
1204
  featureName: "Producer Details",
1128
1205
  open: notAvailable,
1129
1206
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1132,8 +1209,8 @@ var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailab
1132
1209
 
1133
1210
  // src/components/block/table/cell/TransactionCount.tsx
1134
1211
  import { Error as Error3 } from "@mui/icons-material";
1135
- import { Link as Link2, TableCell as TableCell6, Tooltip as Tooltip5 } from "@mui/material";
1136
- import React20, { useMemo as useMemo10 } from "react";
1212
+ import { Link as Link2, TableCell as TableCell7, Tooltip as Tooltip6 } from "@mui/material";
1213
+ import React21, { useMemo as useMemo10 } from "react";
1137
1214
  var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1138
1215
  const [transactions, error] = useTxsFromBlock(block);
1139
1216
  const txHashes = useMemo10(() => transactions?.map(([, hash]) => hash), [
@@ -1144,14 +1221,14 @@ var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ..
1144
1221
  block: block[0]._hash
1145
1222
  } : void 0;
1146
1223
  const [ref, handleClick] = useLinkedBlockItem("transaction-count", data);
1147
- return /* @__PURE__ */ React20.createElement(TableCell6, {
1224
+ return /* @__PURE__ */ React21.createElement(TableCell7, {
1148
1225
  ref,
1149
1226
  ...props
1150
- }, /* @__PURE__ */ React20.createElement("span", null, error ? /* @__PURE__ */ React20.createElement(Tooltip5, {
1227
+ }, /* @__PURE__ */ React21.createElement("span", null, error ? /* @__PURE__ */ React21.createElement(Tooltip6, {
1151
1228
  title: error.message
1152
- }, /* @__PURE__ */ React20.createElement(Error3, {
1229
+ }, /* @__PURE__ */ React21.createElement(Error3, {
1153
1230
  color: "error"
1154
- })) : null, linked ? /* @__PURE__ */ React20.createElement(Link2, {
1231
+ })) : null, linked ? /* @__PURE__ */ React21.createElement(Link2, {
1155
1232
  onClick: handleClick,
1156
1233
  sx: {
1157
1234
  cursor: "pointer"
@@ -1161,20 +1238,20 @@ var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ..
1161
1238
 
1162
1239
  // src/components/block/table/cell/Verification.tsx
1163
1240
  import { CheckCircleOutlineRounded } from "@mui/icons-material";
1164
- import { TableCell as TableCell7 } from "@mui/material";
1241
+ import { TableCell as TableCell8 } from "@mui/material";
1165
1242
  import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
1166
1243
  import { BWVerification as BWVerification2 } from "@xyo-network/react-boundwitness-plugin";
1167
- import React21 from "react";
1244
+ import React22 from "react";
1168
1245
  var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, deepValidation, ...props }) => {
1169
- return /* @__PURE__ */ React21.createElement(TableCell7, props, /* @__PURE__ */ React21.createElement(FlexRow4, {
1246
+ return /* @__PURE__ */ React22.createElement(TableCell8, props, /* @__PURE__ */ React22.createElement(FlexRow4, {
1170
1247
  onClick: /* @__PURE__ */ __name((e) => e.stopPropagation(), "onClick"),
1171
1248
  sx: {
1172
1249
  width: "100%"
1173
1250
  }
1174
- }, deepValidation ? /* @__PURE__ */ React21.createElement(BWVerification2, {
1251
+ }, deepValidation ? /* @__PURE__ */ React22.createElement(BWVerification2, {
1175
1252
  iconColors: true,
1176
1253
  boundwitness: block?.[0]
1177
- }) : /* @__PURE__ */ React21.createElement(CheckCircleOutlineRounded, {
1254
+ }) : /* @__PURE__ */ React22.createElement(CheckCircleOutlineRounded, {
1178
1255
  color: "success"
1179
1256
  })));
1180
1257
  }, "BlockVerificationTableCell");
@@ -1182,43 +1259,45 @@ var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, deepVa
1182
1259
  // src/components/block/table/Ex.tsx
1183
1260
  import { TableBody } from "@mui/material";
1184
1261
  import { TableEx } from "@xyo-network/react-table";
1185
- import React23 from "react";
1262
+ import React24 from "react";
1186
1263
 
1187
1264
  // src/components/block/table/head/TableHead.tsx
1188
1265
  import { InfoOutline } from "@mui/icons-material";
1189
- import { TableCell as TableCell8, TableHead, TableRow, Tooltip as Tooltip6, Typography as Typography4 } from "@mui/material";
1266
+ import { TableCell as TableCell9, TableHead, TableRow, Tooltip as Tooltip7, Typography as Typography5 } from "@mui/material";
1190
1267
  import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
1191
- import React22 from "react";
1268
+ import React23 from "react";
1192
1269
  var ToolTipTableCell = /* @__PURE__ */ __name(({ children, align, title, ...props }) => {
1193
- return /* @__PURE__ */ React22.createElement(TableCell8, {
1270
+ return /* @__PURE__ */ React23.createElement(TableCell9, {
1194
1271
  title,
1195
1272
  ...props
1196
- }, /* @__PURE__ */ React22.createElement(Tooltip6, {
1273
+ }, /* @__PURE__ */ React23.createElement(Tooltip7, {
1197
1274
  title
1198
- }, /* @__PURE__ */ React22.createElement(FlexRow5, {
1275
+ }, /* @__PURE__ */ React23.createElement(FlexRow5, {
1199
1276
  justifyContent: align
1200
- }, /* @__PURE__ */ React22.createElement(Typography4, {
1277
+ }, /* @__PURE__ */ React23.createElement(Typography5, {
1201
1278
  variant: "body2"
1202
- }, children), "\xA0", /* @__PURE__ */ React22.createElement(InfoOutline, {
1279
+ }, children), "\xA0", /* @__PURE__ */ React23.createElement(InfoOutline, {
1203
1280
  fontSize: "small"
1204
1281
  }))));
1205
1282
  }, "ToolTipTableCell");
1206
1283
  var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1207
- return /* @__PURE__ */ React22.createElement(TableHead, null, /* @__PURE__ */ React22.createElement(TableRow, null, /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1284
+ return /* @__PURE__ */ React23.createElement(TableHead, null, /* @__PURE__ */ React23.createElement(TableRow, null, /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1208
1285
  align: "left",
1209
1286
  title: "The block number that is included in the block"
1210
- }, "Block"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1287
+ }, "Block"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1211
1288
  title: "The hash of the block"
1212
- }, "Block Hash"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1289
+ }, "Hash"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1290
+ title: "The epoch of the block"
1291
+ }, "Epoch"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1213
1292
  align: "left",
1214
1293
  title: "Count of transactions that are included in the block"
1215
- }, "Transactions"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1294
+ }, "Transactions"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1216
1295
  align: "left",
1217
1296
  title: "Count of public and private payload counts for the block"
1218
- }, "Payloads"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1297
+ }, "Payloads"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1219
1298
  align: "center",
1220
1299
  title: "The result of the local validation check for the block"
1221
- }, "Valid"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1300
+ }, "Valid"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1222
1301
  align: "center",
1223
1302
  title: "Link to display the raw JSON of the block"
1224
1303
  }, "JSON")));
@@ -1226,10 +1305,10 @@ var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1226
1305
 
1227
1306
  // src/components/block/table/Ex.tsx
1228
1307
  var BlockchainTableEx = /* @__PURE__ */ __name(({ ref, children, ...props }) => {
1229
- return /* @__PURE__ */ React23.createElement(TableEx, {
1308
+ return /* @__PURE__ */ React24.createElement(TableEx, {
1230
1309
  ref,
1231
1310
  ...props
1232
- }, /* @__PURE__ */ React23.createElement(BlockchainTableHead, null), /* @__PURE__ */ React23.createElement(TableBody, null, children));
1311
+ }, /* @__PURE__ */ React24.createElement(BlockchainTableHead, null), /* @__PURE__ */ React24.createElement(TableBody, null, children));
1233
1312
  }, "BlockchainTableEx");
1234
1313
  BlockchainTableEx.displayName = "BlockchainTableEx";
1235
1314
 
@@ -1237,7 +1316,7 @@ BlockchainTableEx.displayName = "BlockchainTableEx";
1237
1316
  import { TableRow as TableRow2, useTheme } from "@mui/material";
1238
1317
  import { alphaCss } from "@xylabs/react-theme";
1239
1318
  import { usePayloadRootHash as usePayloadRootHash3 } from "@xyo-network/react-shared";
1240
- import React24, { useMemo as useMemo11 } from "react";
1319
+ import React25, { useMemo as useMemo11 } from "react";
1241
1320
  var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaultExpanded, linked, sx, ...props }) => {
1242
1321
  const linkedTableCellProps = useMemo11(() => ({
1243
1322
  block,
@@ -1254,7 +1333,7 @@ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaul
1254
1333
  const hash = usePayloadRootHash3(block?.[0]);
1255
1334
  const [ref, handleClick] = useLinkedBlockItem("block-hash", hash);
1256
1335
  const theme = useTheme();
1257
- return /* @__PURE__ */ React24.createElement(TableRow2, {
1336
+ return /* @__PURE__ */ React25.createElement(TableRow2, {
1258
1337
  onClick: linked ? handleClick : void 0,
1259
1338
  ref,
1260
1339
  sx: {
@@ -1266,51 +1345,54 @@ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaul
1266
1345
  ...sx
1267
1346
  },
1268
1347
  ...props
1269
- }, /* @__PURE__ */ React24.createElement(BlockNumberTableCell, {
1348
+ }, /* @__PURE__ */ React25.createElement(BlockNumberTableCell, {
1349
+ align: "left",
1350
+ ...linkedTableCellProps
1351
+ }), /* @__PURE__ */ React25.createElement(BlockHashTableCell, {
1270
1352
  align: "left",
1271
1353
  ...linkedTableCellProps
1272
- }), /* @__PURE__ */ React24.createElement(BlockHashTableCell, {
1354
+ }), /* @__PURE__ */ React25.createElement(BlockEpochTableCell, {
1273
1355
  align: "left",
1274
1356
  ...linkedTableCellProps
1275
- }), /* @__PURE__ */ React24.createElement(BlockTransactionCountTableCell, {
1357
+ }), /* @__PURE__ */ React25.createElement(BlockTransactionCountTableCell, {
1276
1358
  align: "left",
1277
1359
  ...linkedTableCellProps
1278
- }), /* @__PURE__ */ React24.createElement(BlockPayloadCountsTableCell, {
1360
+ }), /* @__PURE__ */ React25.createElement(BlockPayloadCountsTableCell, {
1279
1361
  align: "left",
1280
1362
  ...linkedTableCellProps
1281
- }), /* @__PURE__ */ React24.createElement(BlockVerificationTableCell, {
1363
+ }), /* @__PURE__ */ React25.createElement(BlockVerificationTableCell, {
1282
1364
  deepValidation,
1283
1365
  ...defaultTableCellProps
1284
- }), /* @__PURE__ */ React24.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1366
+ }), /* @__PURE__ */ React25.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1285
1367
  }, "BlockChainTableRow");
1286
1368
 
1287
1369
  // src/components/chain/controls/PollingControlsFlexbox.tsx
1288
1370
  import { Autorenew, Pause } from "@mui/icons-material";
1289
- import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip7 } from "@mui/material";
1371
+ import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip8 } from "@mui/material";
1290
1372
  import { FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
1291
- import React29, { memo } from "react";
1373
+ import React30, { memo } from "react";
1292
1374
 
1293
1375
  // src/components/chain/stats/Dialog.tsx
1294
1376
  import { QueryStats } from "@mui/icons-material";
1295
1377
  import { Dialog as Dialog3, DialogContent as DialogContent3, DialogTitle as DialogTitle3, IconButton as IconButton3 } from "@mui/material";
1296
- import React27, { useState as useState11 } from "react";
1378
+ import React28, { useState as useState11 } from "react";
1297
1379
 
1298
1380
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
1299
- import { ListItem, styled, Typography as Typography5 } from "@mui/material";
1381
+ import { ListItem, styled, Typography as Typography6 } from "@mui/material";
1300
1382
  import { ErrorRender as ErrorRender3 } from "@xylabs/react-error";
1301
1383
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
1302
1384
  import { isChainSummaryProducers } from "@xyo-network/chain-analyze";
1303
- import React26, { useMemo as useMemo12 } from "react";
1385
+ import React27, { useMemo as useMemo12 } from "react";
1304
1386
 
1305
1387
  // src/components/chain/stats/producer/Table.tsx
1306
- import { Table, TableBody as TableBody2, TableCell as TableCell9, TableHead as TableHead2, TableRow as TableRow3, useTheme as useTheme2 } from "@mui/material";
1388
+ import { Table, TableBody as TableBody2, TableCell as TableCell10, TableHead as TableHead2, TableRow as TableRow3, useTheme as useTheme2 } from "@mui/material";
1307
1389
  import { BlockiesAvatar as BlockiesAvatar2 } from "@xyo-network/react-chain-blockies";
1308
- import React25 from "react";
1390
+ import React26 from "react";
1309
1391
  var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) => {
1310
1392
  const theme = useTheme2();
1311
- 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, {
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, {
1312
1394
  key: producer.address
1313
- }, /* @__PURE__ */ React25.createElement(TableCell9, null, /* @__PURE__ */ React25.createElement(BlockiesAvatar2, {
1395
+ }, /* @__PURE__ */ React26.createElement(TableCell10, null, /* @__PURE__ */ React26.createElement(BlockiesAvatar2, {
1314
1396
  blockiesOptions: {
1315
1397
  seed: producer.address
1316
1398
  },
@@ -1318,7 +1400,7 @@ var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) =
1318
1400
  height: theme.spacing(2.75),
1319
1401
  width: theme.spacing(2.75)
1320
1402
  }
1321
- })), /* @__PURE__ */ React25.createElement(TableCell9, null, producer.blocksProduced.toString()), /* @__PURE__ */ React25.createElement(TableCell9, null, producer.rewardsEarned.toString())))));
1403
+ })), /* @__PURE__ */ React26.createElement(TableCell10, null, producer.blocksProduced.toString()), /* @__PURE__ */ React26.createElement(TableCell10, null, producer.rewardsEarned.toString())))));
1322
1404
  }, "ChainProducerStatsTable");
1323
1405
 
1324
1406
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
@@ -1340,16 +1422,16 @@ var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) =
1340
1422
  const producersArray = useMemo12(() => Object.values(producer?.producers ?? {}), [
1341
1423
  producer
1342
1424
  ]);
1343
- return /* @__PURE__ */ React26.createElement(FlexCol3, {
1425
+ return /* @__PURE__ */ React27.createElement(FlexCol3, {
1344
1426
  alignItems: "start",
1345
1427
  gap: 1,
1346
1428
  ...props
1347
- }, /* @__PURE__ */ React26.createElement(ErrorRender3, {
1429
+ }, /* @__PURE__ */ React27.createElement(ErrorRender3, {
1348
1430
  error: producerError,
1349
1431
  scope: "BlockProducerStatsFlexbox"
1350
- }), /* @__PURE__ */ React26.createElement(Typography5, {
1432
+ }), /* @__PURE__ */ React27.createElement(Typography6, {
1351
1433
  fontSize: "1rem"
1352
- }, "Block Producers"), /* @__PURE__ */ React26.createElement(ChainProducerStatsTable, {
1434
+ }, "Block Producers"), /* @__PURE__ */ React27.createElement(ChainProducerStatsTable, {
1353
1435
  producers: producersArray
1354
1436
  }));
1355
1437
  }, "BlockProducerStatsFlexbox");
@@ -1361,18 +1443,18 @@ var StyledListItem = styled(ListItem)(() => ({
1361
1443
  // src/components/chain/stats/Dialog.tsx
1362
1444
  var ChainAnalyzerStatsDialog = /* @__PURE__ */ __name((props) => {
1363
1445
  const { analyzers, statsUpdated } = useChainAnalyzersContext();
1364
- return /* @__PURE__ */ React27.createElement(Dialog3, props, /* @__PURE__ */ React27.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React27.createElement(DialogContent3, null, statsUpdated > 0 && Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React27.createElement("div", {
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", {
1365
1447
  key: id2
1366
- }, id2 === "producers" && /* @__PURE__ */ React27.createElement(BlockProducerStatsFlexbox, {
1448
+ }, id2 === "producers" && /* @__PURE__ */ React28.createElement(BlockProducerStatsFlexbox, {
1367
1449
  payload: analyzer.result()
1368
1450
  })))));
1369
1451
  }, "ChainAnalyzerStatsDialog");
1370
1452
  var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1371
1453
  const [open, setOpen] = useState11(false);
1372
1454
  const handleClose = /* @__PURE__ */ __name(() => setOpen(false), "handleClose");
1373
- return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(IconButton3, {
1455
+ return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(IconButton3, {
1374
1456
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1375
- }, /* @__PURE__ */ React27.createElement(QueryStats, null)), /* @__PURE__ */ React27.createElement(ChainAnalyzerStatsDialog, {
1457
+ }, /* @__PURE__ */ React28.createElement(QueryStats, null)), /* @__PURE__ */ React28.createElement(ChainAnalyzerStatsDialog, {
1376
1458
  onClose: handleClose,
1377
1459
  open,
1378
1460
  ...props
@@ -1381,19 +1463,19 @@ var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1381
1463
 
1382
1464
  // src/components/chain/controls/PulseSvgIcon.tsx
1383
1465
  import { createSvgIcon, keyframes, styled as styled2 } from "@mui/material";
1384
- import React28 from "react";
1385
- var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React28.createElement("svg", {
1466
+ import React29 from "react";
1467
+ var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React29.createElement("svg", {
1386
1468
  viewBox: "0 0 80 80",
1387
1469
  version: "1.1",
1388
1470
  xmlns: "http://www.w3.org/2000/svg"
1389
- }, /* @__PURE__ */ React28.createElement("g", {
1471
+ }, /* @__PURE__ */ React29.createElement("g", {
1390
1472
  transform: "translate(34,34)"
1391
- }, /* @__PURE__ */ React28.createElement("circle", {
1473
+ }, /* @__PURE__ */ React29.createElement("circle", {
1392
1474
  className: "core",
1393
1475
  cx: "0",
1394
1476
  cy: "0",
1395
1477
  r: "6"
1396
- }), /* @__PURE__ */ React28.createElement("circle", {
1478
+ }), /* @__PURE__ */ React29.createElement("circle", {
1397
1479
  className: "radar",
1398
1480
  cx: "0",
1399
1481
  cy: "0",
@@ -1457,24 +1539,24 @@ var StyledPulseSvgIcon = styled2(PulseSvgIcon)(({ theme }) => {
1457
1539
  var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingState, setPollingState }) => {
1458
1540
  const paused = pollingState === "paused";
1459
1541
  const running = pollingState === "running";
1460
- return /* @__PURE__ */ React29.createElement(FlexRow6, {
1542
+ return /* @__PURE__ */ React30.createElement(FlexRow6, {
1461
1543
  justifyContent: "space-between",
1462
1544
  width: "100%"
1463
- }, /* @__PURE__ */ React29.createElement(FlexRow6, {
1545
+ }, /* @__PURE__ */ React30.createElement(FlexRow6, {
1464
1546
  gap: 2
1465
- }, running && /* @__PURE__ */ React29.createElement(IconButton4, {
1547
+ }, running && /* @__PURE__ */ React30.createElement(IconButton4, {
1466
1548
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("paused"), "onClick"),
1467
1549
  title: "Pause Block Stream"
1468
- }, /* @__PURE__ */ React29.createElement(Pause, null)), paused && /* @__PURE__ */ React29.createElement(IconButton4, {
1550
+ }, /* @__PURE__ */ React30.createElement(Pause, null)), paused && /* @__PURE__ */ React30.createElement(IconButton4, {
1469
1551
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick"),
1470
1552
  title: "Re-Sync Block Stream"
1471
- }, /* @__PURE__ */ React29.createElement(Autorenew, null)), /* @__PURE__ */ React29.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React29.createElement(FlexRow6, {
1553
+ }, /* @__PURE__ */ React30.createElement(Autorenew, null)), /* @__PURE__ */ React30.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React30.createElement(FlexRow6, {
1472
1554
  gap: 2
1473
- }, /* @__PURE__ */ React29.createElement(Grow, {
1555
+ }, /* @__PURE__ */ React30.createElement(Grow, {
1474
1556
  in: (blocksBehind ?? 0) > 0
1475
- }, /* @__PURE__ */ React29.createElement(Tooltip7, {
1557
+ }, /* @__PURE__ */ React30.createElement(Tooltip8, {
1476
1558
  title: "Click to Re-Sync"
1477
- }, /* @__PURE__ */ React29.createElement(Alert3, {
1559
+ }, /* @__PURE__ */ React30.createElement(Alert3, {
1478
1560
  sx: {
1479
1561
  py: 0,
1480
1562
  px: 1,
@@ -1482,11 +1564,11 @@ var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingStat
1482
1564
  },
1483
1565
  severity: "warning",
1484
1566
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick")
1485
- }, /* @__PURE__ */ React29.createElement(AlertTitle2, {
1567
+ }, /* @__PURE__ */ React30.createElement(AlertTitle2, {
1486
1568
  sx: {
1487
1569
  mb: 0
1488
1570
  }
1489
- }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React29.createElement(Icon2, null, /* @__PURE__ */ React29.createElement(StyledPulseSvgIcon, {
1571
+ }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React30.createElement(Icon2, null, /* @__PURE__ */ React30.createElement(StyledPulseSvgIcon, {
1490
1572
  className: running ? "" : "paused"
1491
1573
  }))));
1492
1574
  }, "PollingControlsFlexbox");
@@ -1494,9 +1576,9 @@ var MemoizedPollingControlsFlexbox = /* @__PURE__ */ memo(PollingControlsFlexbox
1494
1576
 
1495
1577
  // src/components/chain/dialog/Dialog.tsx
1496
1578
  import { Button as Button4, Dialog as Dialog4, DialogActions as DialogActions3, DialogContent as DialogContent4 } from "@mui/material";
1497
- import React30 from "react";
1579
+ import React31 from "react";
1498
1580
  var TransactionsDialog = /* @__PURE__ */ __name((props) => {
1499
- return /* @__PURE__ */ React30.createElement(Dialog4, props, /* @__PURE__ */ React30.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React30.createElement(DialogActions3, null, /* @__PURE__ */ React30.createElement(Button4, {
1581
+ return /* @__PURE__ */ React31.createElement(Dialog4, props, /* @__PURE__ */ React31.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React31.createElement(DialogActions3, null, /* @__PURE__ */ React31.createElement(Button4, {
1500
1582
  variant: "outlined",
1501
1583
  onClick: /* @__PURE__ */ __name((e) => props?.onClose?.(e, "escapeKeyDown"), "onClick")
1502
1584
  }, "Close")));
@@ -1536,9 +1618,9 @@ var useOnBlock = /* @__PURE__ */ __name((initialHeadNumber, onAddBlock, liveHead
1536
1618
 
1537
1619
  // src/components/chain/pagination/BlockChainPagination.tsx
1538
1620
  import { TablePaginationActions } from "@xyo-network/react-payload-table";
1539
- import React31 from "react";
1621
+ import React32 from "react";
1540
1622
  var BlockChainPagination = /* @__PURE__ */ __name(({ count = 0, onPageChange, page, rowsPerPage = 10 }) => {
1541
- return /* @__PURE__ */ React31.createElement(TablePaginationActions, {
1623
+ return /* @__PURE__ */ React32.createElement(TablePaginationActions, {
1542
1624
  count,
1543
1625
  onPageChange,
1544
1626
  page,
@@ -1572,11 +1654,11 @@ var useChainPagination = /* @__PURE__ */ __name((pageSize, blockComponents) => {
1572
1654
  // src/components/chain/render/dynamic/flexbox/variants/Base.tsx
1573
1655
  import { ErrorRender as ErrorRender4 } from "@xylabs/react-error";
1574
1656
  import { FlexCol as FlexCol5 } from "@xylabs/react-flexbox";
1575
- import React33 from "react";
1657
+ import React34 from "react";
1576
1658
 
1577
1659
  // src/components/chain/list/Animated.tsx
1578
1660
  import { AnimatedList } from "@xylabs/react-animation";
1579
- import React32 from "react";
1661
+ import React33 from "react";
1580
1662
 
1581
1663
  // src/components/chain/styled/BlockListWrapperFlexbox.tsx
1582
1664
  import { styled as styled3 } from "@mui/material";
@@ -1597,10 +1679,10 @@ var BlockListWrapperFlexBox = styled3(FlexCol4, {
1597
1679
 
1598
1680
  // src/components/chain/list/Animated.tsx
1599
1681
  var BlockListAnimated = /* @__PURE__ */ __name(({ blockChainRenderComponents }) => {
1600
- return /* @__PURE__ */ React32.createElement(BlockListWrapperFlexBox, {
1682
+ return /* @__PURE__ */ React33.createElement(BlockListWrapperFlexBox, {
1601
1683
  alignItems: "stretch",
1602
1684
  width: "100%"
1603
- }, /* @__PURE__ */ React32.createElement(AnimatedList, {
1685
+ }, /* @__PURE__ */ React33.createElement(AnimatedList, {
1604
1686
  fullWidth: true,
1605
1687
  items: blockChainRenderComponents
1606
1688
  }));
@@ -1691,25 +1773,25 @@ var useRemoteBlockChainRenderProps = /* @__PURE__ */ __name((chainArchivistModul
1691
1773
  // src/components/chain/render/dynamic/flexbox/variants/Base.tsx
1692
1774
  var DynamicListBase = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1693
1775
  const { errors, blockChainRenderComponents, blocksWhilePaused, pollingState, updatePollingState } = useDynamicBlockRenderComponents(BlockHeadingFlexbox, blockChainRenderProps);
1694
- return /* @__PURE__ */ React33.createElement(FlexCol5, {
1776
+ return /* @__PURE__ */ React34.createElement(FlexCol5, {
1695
1777
  alignItems: "start",
1696
1778
  ...props
1697
- }, errors?.map((error) => /* @__PURE__ */ React33.createElement(ErrorRender4, {
1779
+ }, errors?.map((error) => /* @__PURE__ */ React34.createElement(ErrorRender4, {
1698
1780
  error,
1699
1781
  key: error?.name,
1700
1782
  scope: "DynamicBlockchainRenderFlexboxInner"
1701
- })), /* @__PURE__ */ React33.createElement(MemoizedPollingControlsFlexbox, {
1783
+ })), /* @__PURE__ */ React34.createElement(MemoizedPollingControlsFlexbox, {
1702
1784
  blocksBehind: blocksWhilePaused?.length,
1703
1785
  pollingState,
1704
1786
  setPollingState: updatePollingState
1705
- }), /* @__PURE__ */ React33.createElement(BlockListAnimated, {
1787
+ }), /* @__PURE__ */ React34.createElement(BlockListAnimated, {
1706
1788
  blockChainRenderComponents
1707
1789
  }));
1708
1790
  }, "DynamicListBase");
1709
1791
 
1710
1792
  // src/components/chain/render/dynamic/flexbox/variants/WithAnalysis.tsx
1711
1793
  import { ChainProducersAnalyzer } from "@xyo-network/chain-analyze";
1712
- import React34, { useMemo as useMemo16 } from "react";
1794
+ import React35, { useMemo as useMemo16 } from "react";
1713
1795
  var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1714
1796
  const { chainInformation } = blockChainRenderProps ?? {};
1715
1797
  const analyzers = useMemo16(() => {
@@ -1721,9 +1803,9 @@ var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1721
1803
  }, [
1722
1804
  chainInformation
1723
1805
  ]);
1724
- return /* @__PURE__ */ React34.createElement(ChainAnalyzersProvider, {
1806
+ return /* @__PURE__ */ React35.createElement(ChainAnalyzersProvider, {
1725
1807
  analyzers
1726
- }, /* @__PURE__ */ React34.createElement(ChainPollingProvider, null, /* @__PURE__ */ React34.createElement(DynamicListBase, {
1808
+ }, /* @__PURE__ */ React35.createElement(ChainPollingProvider, null, /* @__PURE__ */ React35.createElement(DynamicListBase, {
1727
1809
  blockChainRenderProps,
1728
1810
  ...props
1729
1811
  })));
@@ -1731,13 +1813,13 @@ var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1731
1813
 
1732
1814
  // src/components/chain/render/dynamic/flexbox/variants/WithRemote.tsx
1733
1815
  import { ErrorRender as ErrorRender5 } from "@xylabs/react-error";
1734
- import React35 from "react";
1816
+ import React36 from "react";
1735
1817
  var WithRemote = /* @__PURE__ */ __name(({ url, chainArchivistModuleId, blockChainRenderProps: blockChainRenderPropsArg, ...props }) => {
1736
1818
  const { error, blockChainRenderProps } = useRemoteBlockChainRenderProps(chainArchivistModuleId, url, blockChainRenderPropsArg);
1737
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(ErrorRender5, {
1819
+ return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(ErrorRender5, {
1738
1820
  error,
1739
1821
  scope: "RemoteChainProviderFlexbox"
1740
- }), /* @__PURE__ */ React35.createElement(WithAnalysis, {
1822
+ }), /* @__PURE__ */ React36.createElement(WithAnalysis, {
1741
1823
  blockChainRenderProps,
1742
1824
  ...props
1743
1825
  }));
@@ -1753,7 +1835,7 @@ var DynamicBlockchainRenderFlexbox = {
1753
1835
  // src/components/chain/render/static/flexbox/variants/Base.tsx
1754
1836
  import { ErrorRender as ErrorRender6 } from "@xylabs/react-error";
1755
1837
  import { FlexCol as FlexCol6, FlexGrowRow as FlexGrowRow2 } from "@xylabs/react-flexbox";
1756
- import React36 from "react";
1838
+ import React37 from "react";
1757
1839
 
1758
1840
  // src/components/chain/render/static/hooks/useStaticBlockRenderComponents.ts
1759
1841
  import { exists } from "@xylabs/exists";
@@ -1786,31 +1868,31 @@ var useStaticBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blo
1786
1868
  // src/components/chain/render/static/flexbox/variants/Base.tsx
1787
1869
  var StaticListBase = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1788
1870
  const { blockComponents, errors, paginatedBlockComponents, onPageChange, page, pageSize } = useStaticBlockRenderComponents(BlockHeadingFlexbox, blockChainRenderProps);
1789
- return /* @__PURE__ */ React36.createElement(FlexCol6, {
1871
+ return /* @__PURE__ */ React37.createElement(FlexCol6, {
1790
1872
  alignItems: "start",
1791
1873
  gap: 2,
1792
1874
  width: "100%",
1793
1875
  ...props
1794
- }, errors?.map((error) => /* @__PURE__ */ React36.createElement(ErrorRender6, {
1876
+ }, errors?.map((error) => /* @__PURE__ */ React37.createElement(ErrorRender6, {
1795
1877
  error,
1796
1878
  key: error.name,
1797
1879
  scope: "StaticBlockchainFlexboxInner"
1798
- })), (paginatedBlockComponents?.length ?? 0) > 0 ? /* @__PURE__ */ React36.createElement(FlexGrowRow2, {
1880
+ })), (paginatedBlockComponents?.length ?? 0) > 0 ? /* @__PURE__ */ React37.createElement(FlexGrowRow2, {
1799
1881
  justifyContent: "space-between",
1800
1882
  width: "100%"
1801
- }, /* @__PURE__ */ React36.createElement(ChainAnalyzerStatsDialogFromContext, null), /* @__PURE__ */ React36.createElement(BlockChainPagination, {
1883
+ }, /* @__PURE__ */ React37.createElement(ChainAnalyzerStatsDialogFromContext, null), /* @__PURE__ */ React37.createElement(BlockChainPagination, {
1802
1884
  count: blockComponents?.length ?? 0,
1803
1885
  onPageChange,
1804
1886
  page,
1805
1887
  rowsPerPage: pageSize
1806
- })) : null, /* @__PURE__ */ React36.createElement(BlockListAnimated, {
1888
+ })) : null, /* @__PURE__ */ React37.createElement(BlockListAnimated, {
1807
1889
  blockChainRenderComponents: paginatedBlockComponents
1808
1890
  }));
1809
1891
  }, "StaticListBase");
1810
1892
 
1811
1893
  // src/components/chain/render/static/flexbox/variants/WithAnalysis.tsx
1812
1894
  import { ChainProducersAnalyzer as ChainProducersAnalyzer2 } from "@xyo-network/chain-analyze";
1813
- import React37, { useMemo as useMemo18 } from "react";
1895
+ import React38, { useMemo as useMemo18 } from "react";
1814
1896
  var WithAnalysis2 = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1815
1897
  const { chainInformation } = blockChainRenderProps ?? {};
1816
1898
  const analyzers = useMemo18(() => {
@@ -1822,9 +1904,9 @@ var WithAnalysis2 = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1822
1904
  }, [
1823
1905
  chainInformation
1824
1906
  ]);
1825
- return /* @__PURE__ */ React37.createElement(ChainAnalyzersProvider, {
1907
+ return /* @__PURE__ */ React38.createElement(ChainAnalyzersProvider, {
1826
1908
  analyzers
1827
- }, /* @__PURE__ */ React37.createElement(StaticListBase, {
1909
+ }, /* @__PURE__ */ React38.createElement(StaticListBase, {
1828
1910
  blockChainRenderProps,
1829
1911
  ...props
1830
1912
  }));
@@ -1839,19 +1921,19 @@ var StaticBlockchainRenderFlexBox = {
1839
1921
  // src/components/payload/builder/Flexbox.tsx
1840
1922
  import { FlexCol as FlexCol7 } from "@xylabs/react-flexbox";
1841
1923
  import { JsonViewerEx as JsonViewerEx2 } from "@xyo-network/react-payload-raw-info";
1842
- import React38, { useState as useState13 } from "react";
1924
+ import React39, { useState as useState13 } from "react";
1843
1925
  var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild, ...props }) => {
1844
1926
  const [payload, setPayload] = useState13();
1845
1927
  const onBuildLocal = /* @__PURE__ */ __name((payload2) => {
1846
1928
  onBuild?.(payload2);
1847
1929
  setPayload(payload2);
1848
1930
  }, "onBuildLocal");
1849
- return /* @__PURE__ */ React38.createElement(FlexCol7, {
1931
+ return /* @__PURE__ */ React39.createElement(FlexCol7, {
1850
1932
  gap: 2,
1851
1933
  ...props
1852
- }, /* @__PURE__ */ React38.createElement(BuilderComponent, {
1934
+ }, /* @__PURE__ */ React39.createElement(BuilderComponent, {
1853
1935
  onBuild: onBuildLocal
1854
- }), payload && /* @__PURE__ */ React38.createElement(JsonViewerEx2, {
1936
+ }), payload && /* @__PURE__ */ React39.createElement(JsonViewerEx2, {
1855
1937
  value: payload
1856
1938
  }));
1857
1939
  }, "PayloadBuilderFlexbox");
@@ -1859,11 +1941,11 @@ var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild,
1859
1941
  // src/components/payload/builder/producer-intent/Form.tsx
1860
1942
  import { Button as Button5, FormControl as FormControl5 } from "@mui/material";
1861
1943
  import { createProducerChainStakeIntent } from "@xyo-network/chain-protocol";
1862
- import React41, { useMemo as useMemo20, useState as useState16 } from "react";
1944
+ import React42, { useMemo as useMemo20, useState as useState16 } from "react";
1863
1945
 
1864
1946
  // src/components/payload/fields/BlockNumberTextField.tsx
1865
1947
  import { FormControl as FormControl3, FormHelperText as FormHelperText2, TextField as TextField3 } from "@mui/material";
1866
- import React39, { useState as useState14 } from "react";
1948
+ import React40, { useState as useState14 } from "react";
1867
1949
  var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumberChanged, onChange, ...props }) => {
1868
1950
  const [blockNumber, setBlockNumber] = useState14();
1869
1951
  const handleChange = /* @__PURE__ */ __name((e) => {
@@ -1873,15 +1955,15 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1873
1955
  onChange?.(e);
1874
1956
  }, "handleChange");
1875
1957
  const errored = errorMessage !== void 0;
1876
- return /* @__PURE__ */ React39.createElement(FormControl3, {
1958
+ return /* @__PURE__ */ React40.createElement(FormControl3, {
1877
1959
  fullWidth: true
1878
- }, /* @__PURE__ */ React39.createElement(TextField3, {
1960
+ }, /* @__PURE__ */ React40.createElement(TextField3, {
1879
1961
  error: errored,
1880
1962
  onChange: handleChange,
1881
1963
  type: "number",
1882
1964
  value: blockNumber ?? "",
1883
1965
  ...props
1884
- }), errored && /* @__PURE__ */ React39.createElement(FormHelperText2, {
1966
+ }), errored && /* @__PURE__ */ React40.createElement(FormHelperText2, {
1885
1967
  sx: {
1886
1968
  color: "error.main"
1887
1969
  }
@@ -1891,7 +1973,7 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1891
1973
  // src/components/payload/fields/XyoAddressTextField.tsx
1892
1974
  import { FormControl as FormControl4, FormHelperText as FormHelperText3, TextField as TextField4 } from "@mui/material";
1893
1975
  import { asAddress, isAddress } from "@xylabs/hex";
1894
- import React40, { useMemo as useMemo19, useState as useState15 } from "react";
1976
+ import React41, { useMemo as useMemo19, useState as useState15 } from "react";
1895
1977
  var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange, resetValue, ...props }) => {
1896
1978
  const [address, setAddress] = useState15("");
1897
1979
  const [addressError, setAddressError] = useState15();
@@ -1915,15 +1997,15 @@ var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange,
1915
1997
  onAddressChanged?.();
1916
1998
  }
1917
1999
  }, "handleBlur");
1918
- return /* @__PURE__ */ React40.createElement(FormControl4, {
2000
+ return /* @__PURE__ */ React41.createElement(FormControl4, {
1919
2001
  fullWidth: true
1920
- }, /* @__PURE__ */ React40.createElement(TextField4, {
2002
+ }, /* @__PURE__ */ React41.createElement(TextField4, {
1921
2003
  error: !!addressError,
1922
2004
  onBlur: handleBlur,
1923
2005
  onChange: handleChange,
1924
2006
  value: address,
1925
2007
  ...props
1926
- }), addressError && /* @__PURE__ */ React40.createElement(FormHelperText3, {
2008
+ }), addressError && /* @__PURE__ */ React41.createElement(FormHelperText3, {
1927
2009
  sx: {
1928
2010
  color: "error.main"
1929
2011
  }
@@ -1956,33 +2038,33 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1956
2038
  const onBuildLocal = /* @__PURE__ */ __name(() => {
1957
2039
  if (onBuild && intentPayload) onBuild?.(intentPayload);
1958
2040
  }, "onBuildLocal");
1959
- return /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(FormControl5, {
2041
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(FormControl5, {
1960
2042
  fullWidth: true
1961
- }, /* @__PURE__ */ React41.createElement(XyoAddressTextField, {
2043
+ }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
1962
2044
  label: "Delegate",
1963
2045
  name: "delegate",
1964
2046
  onAddressChanged: setDelegate,
1965
2047
  required: true,
1966
2048
  size: "small"
1967
- })), /* @__PURE__ */ React41.createElement(FormControl5, {
2049
+ })), /* @__PURE__ */ React42.createElement(FormControl5, {
1968
2050
  fullWidth: true
1969
- }, /* @__PURE__ */ React41.createElement(BlockNumberTextField, {
2051
+ }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
1970
2052
  errorMessage: blockRangeError?.message,
1971
2053
  label: "Expires",
1972
2054
  name: "exp",
1973
2055
  onBlockNumberChanged: setExp,
1974
2056
  required: true,
1975
2057
  size: "small"
1976
- })), /* @__PURE__ */ React41.createElement(FormControl5, {
2058
+ })), /* @__PURE__ */ React42.createElement(FormControl5, {
1977
2059
  fullWidth: true
1978
- }, /* @__PURE__ */ React41.createElement(BlockNumberTextField, {
2060
+ }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
1979
2061
  errorMessage: blockRangeError?.message,
1980
2062
  label: "Not Before",
1981
2063
  name: "nbf",
1982
2064
  onBlockNumberChanged: setNbf,
1983
2065
  required: true,
1984
2066
  size: "small"
1985
- })), /* @__PURE__ */ React41.createElement(Button5, {
2067
+ })), /* @__PURE__ */ React42.createElement(Button5, {
1986
2068
  disabled: !intentPayload,
1987
2069
  variant: "contained",
1988
2070
  onClick: onBuildLocal
@@ -1990,13 +2072,13 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1990
2072
  }, "ProducerIntentBuilderForm");
1991
2073
 
1992
2074
  // src/components/payload/builder/transfer/Flexbox.tsx
1993
- import React44 from "react";
2075
+ import React45 from "react";
1994
2076
 
1995
2077
  // src/components/payload/builder/transfer/Form.tsx
1996
2078
  import { Button as Button6, FormControl as FormControl7 } from "@mui/material";
1997
2079
  import { isAddress as isAddress3 } from "@xylabs/hex";
1998
2080
  import { TransferSchema } from "@xyo-network/xl1-protocol";
1999
- import React43, { useMemo as useMemo22, useState as useState18 } from "react";
2081
+ import React44, { useMemo as useMemo22, useState as useState18 } from "react";
2000
2082
 
2001
2083
  // src/components/payload/builder/transfer/builder/SingleFlexbox.tsx
2002
2084
  import { RemoveCircle } from "@mui/icons-material";
@@ -2004,7 +2086,7 @@ import { FormControl as FormControl6, Icon as Icon3, IconButton as IconButton5 }
2004
2086
  import { isAddress as isAddress2, toHex as toHex3 } from "@xylabs/hex";
2005
2087
  import { FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
2006
2088
  import { BigIntInput } from "@xyo-network/react-shared";
2007
- import React42, { useEffect as useEffect4, useMemo as useMemo21, useState as useState17 } from "react";
2089
+ import React43, { useEffect as useEffect4, useMemo as useMemo21, useState as useState17 } from "react";
2008
2090
  var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated, onRemoveTransfer, singleTransfer, ...props }) => {
2009
2091
  const [toAddress, setToAddress] = useState17();
2010
2092
  const [amount, setAmount] = useState17();
@@ -2025,29 +2107,29 @@ var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated,
2025
2107
  }, [
2026
2108
  transferAmount
2027
2109
  ]);
2028
- return /* @__PURE__ */ React42.createElement(FlexRow7, {
2110
+ return /* @__PURE__ */ React43.createElement(FlexRow7, {
2029
2111
  alignItems: "start",
2030
2112
  gap: 1,
2031
2113
  ...props
2032
- }, /* @__PURE__ */ React42.createElement(FormControl6, {
2114
+ }, /* @__PURE__ */ React43.createElement(FormControl6, {
2033
2115
  fullWidth: true
2034
- }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
2116
+ }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
2035
2117
  label: "To",
2036
2118
  name: "to",
2037
2119
  onAddressChanged: setToAddress,
2038
2120
  required: true,
2039
2121
  size: "small"
2040
- })), /* @__PURE__ */ React42.createElement(FormControl6, {
2122
+ })), /* @__PURE__ */ React43.createElement(FormControl6, {
2041
2123
  fullWidth: true
2042
- }, /* @__PURE__ */ React42.createElement(BigIntInput.TextField, {
2124
+ }, /* @__PURE__ */ React43.createElement(BigIntInput.TextField, {
2043
2125
  label: "Amount",
2044
2126
  name: "amount",
2045
2127
  onChangeFixedPoint: setAmount,
2046
2128
  required: true,
2047
2129
  size: "small"
2048
- })), /* @__PURE__ */ React42.createElement(IconButton5, {
2130
+ })), /* @__PURE__ */ React43.createElement(IconButton5, {
2049
2131
  onClick: /* @__PURE__ */ __name(() => onRemoveTransfer?.(singleTransfer.transferId), "onClick")
2050
- }, /* @__PURE__ */ React42.createElement(Icon3, null, /* @__PURE__ */ React42.createElement(RemoveCircle, null))));
2132
+ }, /* @__PURE__ */ React43.createElement(Icon3, null, /* @__PURE__ */ React43.createElement(RemoveCircle, null))));
2051
2133
  }, "SingleTransferBuilderFlexbox");
2052
2134
 
2053
2135
  // src/components/payload/builder/transfer/Form.tsx
@@ -2096,19 +2178,19 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2096
2178
  return transfer;
2097
2179
  }));
2098
2180
  }, "onTransferUpdated");
2099
- return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(FormControl7, {
2181
+ return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(FormControl7, {
2100
2182
  fullWidth: true
2101
- }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
2183
+ }, /* @__PURE__ */ React44.createElement(XyoAddressTextField, {
2102
2184
  label: "From",
2103
2185
  name: "from",
2104
2186
  onAddressChanged: setFromAddress,
2105
2187
  required: true,
2106
2188
  size: "small"
2107
- })), /* @__PURE__ */ React43.createElement(Button6, {
2189
+ })), /* @__PURE__ */ React44.createElement(Button6, {
2108
2190
  onClick: onTransferAdded,
2109
2191
  size: "small",
2110
2192
  variant: "contained"
2111
- }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React43.createElement(SingleTransferBuilderFlexbox, {
2193
+ }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React44.createElement(SingleTransferBuilderFlexbox, {
2112
2194
  key: transfer.transferId,
2113
2195
  onTransferUpdated,
2114
2196
  onRemoveTransfer: onTransferRemoved,
@@ -2116,7 +2198,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2116
2198
  sx: {
2117
2199
  width: "100%"
2118
2200
  }
2119
- })), /* @__PURE__ */ React43.createElement(Button6, {
2201
+ })), /* @__PURE__ */ React44.createElement(Button6, {
2120
2202
  disabled: !transferPayload,
2121
2203
  variant: "contained",
2122
2204
  onClick: onBuildLocal
@@ -2124,7 +2206,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2124
2206
  }, "TransferBuilderForm");
2125
2207
 
2126
2208
  // src/components/payload/builder/transfer/Flexbox.tsx
2127
- var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React44.createElement(PayloadBuilderFlexbox, {
2209
+ var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React45.createElement(PayloadBuilderFlexbox, {
2128
2210
  gap: 4,
2129
2211
  alignItems: "start",
2130
2212
  BuilderComponent: TransferBuilderForm,
@@ -2139,7 +2221,7 @@ import { MemoryArchivist } from "@xyo-network/archivist-memory";
2139
2221
  import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
2140
2222
  import { flattenHydratedBlocks } from "@xyo-network/chain-protocol";
2141
2223
  import { buildRandomBlockChain } from "@xyo-network/react-chain-shared";
2142
- import React45, { useEffect as useEffect5 } from "react";
2224
+ import React46, { useEffect as useEffect5 } from "react";
2143
2225
  var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2144
2226
  const [randomBlockChain] = usePromise7(async () => await buildRandomBlockChain(), []);
2145
2227
  const [blockChainRenderProps, blockChainRenderPropsError] = usePromise7(async () => {
@@ -2179,7 +2261,7 @@ var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2179
2261
  }
2180
2262
  }
2181
2263
  };
2182
- return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React45.createElement(Story, props) : /* @__PURE__ */ React45.createElement(CircularProgress, null);
2264
+ return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress, null);
2183
2265
  }, "ChainArchivistDecorator");
2184
2266
 
2185
2267
  // src/stories/ChainArchivistDelayedInsertDecorator.tsx
@@ -2190,7 +2272,7 @@ import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memo
2190
2272
  import { ArchivistConfigSchema as ArchivistConfigSchema2 } from "@xyo-network/archivist-model";
2191
2273
  import { flattenHydratedBlock } from "@xyo-network/chain-protocol";
2192
2274
  import { buildRandomBlockChain as buildRandomBlockChain2 } from "@xyo-network/react-chain-shared";
2193
- import React46, { useEffect as useEffect6, useState as useState19 } from "react";
2275
+ import React47, { useEffect as useEffect6, useState as useState19 } from "react";
2194
2276
  var chainArchivistRef;
2195
2277
  var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, context) => {
2196
2278
  const [firstBlock, setFirstBlock] = useState19();
@@ -2248,7 +2330,7 @@ var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, contex
2248
2330
  }
2249
2331
  }
2250
2332
  };
2251
- return firstBlock ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress2, null);
2333
+ return firstBlock ? /* @__PURE__ */ React47.createElement(Story, props) : /* @__PURE__ */ React47.createElement(CircularProgress2, null);
2252
2334
  }, "ChainArchivistDelayedInsertDecorator");
2253
2335
 
2254
2336
  // src/stories/ChainInfoContextDecorator.tsx
@@ -2257,7 +2339,7 @@ import { usePromise as usePromise9 } from "@xylabs/react-promise";
2257
2339
  import { XyoChainBlockNumberIterator as XyoChainBlockNumberIterator3 } from "@xyo-network/chain-services";
2258
2340
  import { findFirstMatching } from "@xyo-network/chain-utils";
2259
2341
  import { isBlockBoundWitness as isBlockBoundWitness3 } from "@xyo-network/xl1-protocol";
2260
- import React47 from "react";
2342
+ import React48 from "react";
2261
2343
  var archivistConfig = {
2262
2344
  url: "http://localhost:8080",
2263
2345
  chainArchivistModuleId: "XYOPublic:XYOChain:Chain"
@@ -2283,15 +2365,16 @@ var ChainInfoContextDecorator = /* @__PURE__ */ __name((Story, context) => {
2283
2365
  chainArchivist,
2284
2366
  chainInformation
2285
2367
  ]);
2286
- return /* @__PURE__ */ React47.createElement(ChainInfoProvider, {
2368
+ return /* @__PURE__ */ React48.createElement(ChainInfoProvider, {
2287
2369
  chainArchivist,
2288
2370
  chainInformation,
2289
2371
  chainIterator
2290
- }, /* @__PURE__ */ React47.createElement(Story, context));
2372
+ }, /* @__PURE__ */ React48.createElement(Story, context));
2291
2373
  }, "ChainInfoContextDecorator");
2292
2374
  export {
2293
2375
  BlockChainPagination,
2294
2376
  BlockChainTableRow,
2377
+ BlockEpochTableCell,
2295
2378
  BlockHashTableCell,
2296
2379
  BlockHeadingFlexbox,
2297
2380
  BlockJsonViewTableCell,