@xyo-network/react-chain-blockchain 1.3.6 → 1.3.8

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.
@@ -305,7 +305,7 @@ var SubmitChainTransaction = /* @__PURE__ */ __name(() => {
305
305
  }, "SubmitChainTransaction");
306
306
 
307
307
  // src/components/transactions/TransactionCountChip.tsx
308
- import { Difference } from "@mui/icons-material";
308
+ import CompareArrowsIcon from "@mui/icons-material/CompareArrows";
309
309
  import { Chip, Icon } from "@mui/material";
310
310
  import React7, { useMemo as useMemo4 } from "react";
311
311
  var TransactionCountChip = /* @__PURE__ */ __name(({ transactions, sx, ...props }) => {
@@ -316,8 +316,8 @@ var TransactionCountChip = /* @__PURE__ */ __name(({ transactions, sx, ...props
316
316
  transactions
317
317
  ]);
318
318
  return /* @__PURE__ */ React7.createElement(Chip, {
319
- avatar: /* @__PURE__ */ React7.createElement(Icon, null, /* @__PURE__ */ React7.createElement(Difference, null)),
320
- label: `tx: ${label}`,
319
+ avatar: /* @__PURE__ */ React7.createElement(Icon, null, /* @__PURE__ */ React7.createElement(CompareArrowsIcon, null)),
320
+ label,
321
321
  title: transactions ? `Block contains ${transactions.length} transactions` : void 0,
322
322
  sx: {
323
323
  display: "inline-flex",
@@ -955,7 +955,18 @@ var BlockHeadingFlexbox = /* @__PURE__ */ __name(({ block, defaultExpanded, tran
955
955
 
956
956
  // src/components/block/table/cell/BlockNumber.tsx
957
957
  import { Link, TableCell, Tooltip } from "@mui/material";
958
+ import React15 from "react";
959
+
960
+ // src/components/block/table/cell/BlockNumberChip.tsx
961
+ import { Chip as Chip3 } from "@mui/material";
958
962
  import React14 from "react";
963
+ var BlockNumberChip = /* @__PURE__ */ __name(({ blockNumber, ...props }) => {
964
+ return /* @__PURE__ */ React14.createElement(Chip3, {
965
+ avatar: /* @__PURE__ */ React14.createElement(React14.Fragment, null),
966
+ label: blockNumber,
967
+ ...props
968
+ });
969
+ }, "BlockNumberChip");
959
970
 
960
971
  // src/components/block/table/cell/hooks/useLinkedBlockItem.tsx
961
972
  import { useEvent as useEvent2 } from "@xyo-network/react-event";
@@ -977,32 +988,38 @@ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
977
988
 
978
989
  // src/components/block/table/cell/BlockNumber.tsx
979
990
  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, {
991
+ const blockNumber = block?.[0].block;
992
+ const [ref, handleClick] = useLinkedBlockItem("block-number", blockNumber?.toString());
993
+ return /* @__PURE__ */ React15.createElement(TableCell, {
983
994
  ref,
984
995
  ...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(),
996
+ }, /* @__PURE__ */ React15.createElement(Tooltip, {
997
+ title: `Block Number: ${blockNumber}`
998
+ }, /* @__PURE__ */ React15.createElement("span", null, linked && blockNumber !== void 0 ? /* @__PURE__ */ React15.createElement(Link, {
999
+ title: blockNumber?.toString(),
989
1000
  onClick: handleClick,
990
1001
  sx: {
991
1002
  cursor: "pointer"
992
1003
  }
993
- }, block[0].block.toString()) : null, !linked && blockNumberBigInt)));
1004
+ }, /* @__PURE__ */ React15.createElement(BlockNumberChip, {
1005
+ blockNumber,
1006
+ size: "small"
1007
+ })) : null, !linked && /* @__PURE__ */ React15.createElement(BlockNumberChip, {
1008
+ blockNumber,
1009
+ size: "small"
1010
+ }))));
994
1011
  }, "BlockNumberTableCell");
995
1012
 
996
1013
  // src/components/block/table/cell/Hash.tsx
997
- import { Avatar, Chip as Chip3, TableCell as TableCell2, Tooltip as Tooltip2 } from "@mui/material";
1014
+ import { Avatar, Chip as Chip4, TableCell as TableCell2, Tooltip as Tooltip2 } from "@mui/material";
998
1015
  import { Identicon } from "@xylabs/react-identicon";
999
1016
  import { usePayloadRootHash } from "@xyo-network/react-shared";
1000
- import React16 from "react";
1017
+ import React17 from "react";
1001
1018
 
1002
1019
  // src/components/FeatureNotAvailable.tsx
1003
1020
  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, {
1021
+ import React16 from "react";
1022
+ 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, {
1006
1023
  onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick")
1007
1024
  }, "Close"))), "FeatureNotAvailable");
1008
1025
 
@@ -1010,19 +1027,19 @@ var FeatureNotAvailable = /* @__PURE__ */ __name(({ featureName = "Feature", ...
1010
1027
  var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAvailableDialog, linked, ...props }) => {
1011
1028
  const hash = usePayloadRootHash(block?.[0]);
1012
1029
  const [ref, handleClick] = useLinkedBlockItem("block-hash", hash);
1013
- const [notAvailable, setNotAvailable] = React16.useState(false);
1030
+ const [notAvailable, setNotAvailable] = React17.useState(false);
1014
1031
  const shortenedHash = hash ? `${hash.slice(0, 4)}...${hash.slice(-5, -1)}` : "";
1015
- return /* @__PURE__ */ React16.createElement(TableCell2, {
1032
+ return /* @__PURE__ */ React17.createElement(TableCell2, {
1016
1033
  ref,
1017
1034
  ...props
1018
- }, hash ? /* @__PURE__ */ React16.createElement(Tooltip2, {
1035
+ }, hash ? /* @__PURE__ */ React17.createElement(Tooltip2, {
1019
1036
  title: `Block Hash: ${hash}`
1020
- }, /* @__PURE__ */ React16.createElement(Chip3, {
1021
- avatar: /* @__PURE__ */ React16.createElement(Avatar, {
1037
+ }, /* @__PURE__ */ React17.createElement(Chip4, {
1038
+ avatar: /* @__PURE__ */ React17.createElement(Avatar, {
1022
1039
  sx: {
1023
1040
  background: "white"
1024
1041
  }
1025
- }, /* @__PURE__ */ React16.createElement(Identicon, {
1042
+ }, /* @__PURE__ */ React17.createElement(Identicon, {
1026
1043
  size: 16,
1027
1044
  value: hash,
1028
1045
  ...identiconProps
@@ -1032,7 +1049,7 @@ var BlockHashTableCell = /* @__PURE__ */ __name(({ block, identiconProps, notAva
1032
1049
  },
1033
1050
  label: shortenedHash,
1034
1051
  onClick: linked ? handleClick : () => setNotAvailable(true)
1035
- })) : null, notAvailableDialog && notAvailable ? /* @__PURE__ */ React16.createElement(FeatureNotAvailable, {
1052
+ })) : null, notAvailableDialog && notAvailable ? /* @__PURE__ */ React17.createElement(FeatureNotAvailable, {
1036
1053
  featureName: "Block Details",
1037
1054
  open: notAvailable,
1038
1055
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1046,39 +1063,40 @@ import { ellipsize } from "@xylabs/eth-address";
1046
1063
  import { FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
1047
1064
  import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
1048
1065
  import { usePayloadRootHash as usePayloadRootHash2 } from "@xyo-network/react-shared";
1049
- import React17, { useState as useState10 } from "react";
1066
+ import React18, { useState as useState10 } from "react";
1050
1067
  var BlockJsonViewTableCell = /* @__PURE__ */ __name(({ block, ...props }) => {
1051
1068
  const [open, setOpen] = useState10(false);
1052
1069
  const onClose = /* @__PURE__ */ __name(() => setOpen(false), "onClose");
1053
1070
  const hash = usePayloadRootHash2(block?.[0]);
1054
1071
  const title = hash ? `JSON for ${ellipsize(hash, 5)}` : "JSON";
1055
- return /* @__PURE__ */ React17.createElement(TableCell3, props, /* @__PURE__ */ React17.createElement(FlexRow3, {
1072
+ return /* @__PURE__ */ React18.createElement(TableCell3, props, /* @__PURE__ */ React18.createElement(FlexRow3, {
1056
1073
  sx: {
1057
1074
  width: "100%"
1058
1075
  }
1059
- }, /* @__PURE__ */ React17.createElement(IconButton2, {
1076
+ }, /* @__PURE__ */ React18.createElement(IconButton2, {
1060
1077
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1061
- }, /* @__PURE__ */ React17.createElement(DataObject, null))), /* @__PURE__ */ React17.createElement(Dialog2, {
1078
+ }, /* @__PURE__ */ React18.createElement(DataObject, null))), /* @__PURE__ */ React18.createElement(Dialog2, {
1062
1079
  open,
1063
1080
  onClose
1064
- }, /* @__PURE__ */ React17.createElement(DialogTitle2, null, title), /* @__PURE__ */ React17.createElement(DialogContent2, null, /* @__PURE__ */ React17.createElement(JsonViewerEx, {
1081
+ }, /* @__PURE__ */ React18.createElement(DialogTitle2, null, title), /* @__PURE__ */ React18.createElement(DialogContent2, null, /* @__PURE__ */ React18.createElement(JsonViewerEx, {
1065
1082
  value: block
1066
- })), /* @__PURE__ */ React17.createElement(DialogActions2, {
1083
+ })), /* @__PURE__ */ React18.createElement(DialogActions2, {
1067
1084
  sx: {
1068
1085
  display: "flex",
1069
1086
  flexDirection: "row",
1070
1087
  justifyContent: "end"
1071
1088
  }
1072
- }, /* @__PURE__ */ React17.createElement(Button3, {
1089
+ }, /* @__PURE__ */ React18.createElement(Button3, {
1073
1090
  variant: "contained",
1074
1091
  onClick: onClose
1075
1092
  }, "Close"))));
1076
1093
  }, "BlockJsonViewTableCell");
1077
1094
 
1078
1095
  // src/components/block/table/cell/PayloadCounts.tsx
1079
- import { Error as Error2 } from "@mui/icons-material";
1080
- import { Link as Link2, TableCell as TableCell4, Tooltip as Tooltip3 } from "@mui/material";
1081
- import React18 from "react";
1096
+ import { Error as Error2, Public, PublicOff } from "@mui/icons-material";
1097
+ import { Chip as Chip5, Link as Link2, TableCell as TableCell4, Tooltip as Tooltip3 } from "@mui/material";
1098
+ import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
1099
+ import React19 from "react";
1082
1100
  var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1083
1101
  const [publicPayloads, privatePayloads, error] = usePayloadCountsFromBlock(block);
1084
1102
  const data = block && privatePayloads !== void 0 && publicPayloads !== void 0 ? {
@@ -1087,47 +1105,70 @@ var BlockPayloadCountsTableCell = /* @__PURE__ */ __name(({ block, linked, ...pr
1087
1105
  block: block[0]._hash
1088
1106
  } : void 0;
1089
1107
  const [ref, handleClick] = useLinkedBlockItem("payload-counts", data);
1090
- const renderText = `${publicPayloads ?? "--"} / ${privatePayloads ?? "--"}`;
1091
- return /* @__PURE__ */ React18.createElement(TableCell4, {
1108
+ return /* @__PURE__ */ React19.createElement(TableCell4, {
1092
1109
  ref,
1093
1110
  ...props
1094
- }, /* @__PURE__ */ React18.createElement("span", null, error ? /* @__PURE__ */ React18.createElement(Tooltip3, {
1111
+ }, /* @__PURE__ */ React19.createElement("span", null, error ? /* @__PURE__ */ React19.createElement(Tooltip3, {
1095
1112
  title: error.message
1096
- }, /* @__PURE__ */ React18.createElement(Error2, {
1113
+ }, /* @__PURE__ */ React19.createElement(Error2, {
1097
1114
  color: "error"
1098
- })) : null, linked ? /* @__PURE__ */ React18.createElement(Link2, {
1115
+ })) : null, linked ? /* @__PURE__ */ React19.createElement(Tooltip3, {
1116
+ title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1117
+ }, /* @__PURE__ */ React19.createElement(Link2, {
1099
1118
  onClick: handleClick,
1100
1119
  sx: {
1101
- cursor: "pointer"
1120
+ cursor: "pointer",
1121
+ display: "inline-flex",
1122
+ gap: 0.5
1102
1123
  }
1103
- }, renderText) : renderText));
1124
+ }, /* @__PURE__ */ React19.createElement(Chip5, {
1125
+ avatar: /* @__PURE__ */ React19.createElement(Public, {
1126
+ fontSize: "small"
1127
+ }),
1128
+ label: publicPayloads ?? "--"
1129
+ }), /* @__PURE__ */ React19.createElement(Chip5, {
1130
+ avatar: /* @__PURE__ */ React19.createElement(PublicOff, {
1131
+ fontSize: "small"
1132
+ }),
1133
+ label: privatePayloads ?? "--"
1134
+ }))) : /* @__PURE__ */ React19.createElement(Tooltip3, {
1135
+ title: `Public Payloads: ${publicPayloads ?? "--"} Private Payloads: ${privatePayloads ?? "--"}`
1136
+ }, /* @__PURE__ */ React19.createElement(FlexRow4, {
1137
+ gap: 0.5,
1138
+ justifyContent: "left"
1139
+ }, /* @__PURE__ */ React19.createElement(Chip5, {
1140
+ avatar: /* @__PURE__ */ React19.createElement(Public, {
1141
+ fontSize: "small"
1142
+ }),
1143
+ label: publicPayloads ?? "--"
1144
+ }), /* @__PURE__ */ React19.createElement(Chip5, {
1145
+ avatar: /* @__PURE__ */ React19.createElement(PublicOff, {
1146
+ fontSize: "small"
1147
+ }),
1148
+ label: privatePayloads ?? "--"
1149
+ })))));
1104
1150
  }, "BlockPayloadCountsTableCell");
1105
1151
 
1106
1152
  // src/components/block/table/cell/Producer.tsx
1107
1153
  import { TableCell as TableCell5, Tooltip as Tooltip4 } from "@mui/material";
1108
- import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
1109
- import React19 from "react";
1154
+ import React20 from "react";
1110
1155
  var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailableDialog, producerChipProps, ...props }) => {
1111
1156
  const [ref, handleClick] = useLinkedBlockItem("block-producer", JSON.stringify(block));
1112
1157
  const producer = useBlockProducer(block);
1113
- const [notAvailable, setNotAvailable] = React19.useState(false);
1114
- return /* @__PURE__ */ React19.createElement(TableCell5, {
1158
+ const [notAvailable, setNotAvailable] = React20.useState(false);
1159
+ return /* @__PURE__ */ React20.createElement(TableCell5, {
1115
1160
  ref,
1116
1161
  ...props
1117
- }, /* @__PURE__ */ React19.createElement(Tooltip4, {
1162
+ }, /* @__PURE__ */ React20.createElement(Tooltip4, {
1118
1163
  title: `Block Producer: ${producer}`
1119
- }, /* @__PURE__ */ React19.createElement(FlexRow4, {
1120
- sx: {
1121
- width: "100%"
1122
- }
1123
- }, /* @__PURE__ */ React19.createElement(BlockProducerChip, {
1164
+ }, /* @__PURE__ */ React20.createElement(BlockProducerChip, {
1124
1165
  sx: {
1125
1166
  cursor: "pointer"
1126
1167
  },
1127
1168
  onClick: linked ? handleClick : () => setNotAvailable(true),
1128
1169
  block,
1129
1170
  ...producerChipProps
1130
- }))), notAvailableDialog && notAvailable ? /* @__PURE__ */ React19.createElement(FeatureNotAvailable, {
1171
+ })), notAvailableDialog && notAvailable ? /* @__PURE__ */ React20.createElement(FeatureNotAvailable, {
1131
1172
  featureName: "Producer Details",
1132
1173
  open: notAvailable,
1133
1174
  onClick: /* @__PURE__ */ __name(() => setNotAvailable(false), "onClick")
@@ -1137,44 +1178,51 @@ var BlockProducerTableCell = /* @__PURE__ */ __name(({ block, linked, notAvailab
1137
1178
  // src/components/block/table/cell/TransactionCount.tsx
1138
1179
  import { Error as Error3 } from "@mui/icons-material";
1139
1180
  import { Link as Link3, TableCell as TableCell6, Tooltip as Tooltip5 } from "@mui/material";
1140
- import React20 from "react";
1181
+ import React21, { useMemo as useMemo10 } from "react";
1141
1182
  var BlockTransactionCountTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1142
1183
  const [transactions, error] = useTxsFromBlock(block);
1184
+ const txHashes = useMemo10(() => transactions?.map(([, hash]) => hash), [
1185
+ transactions
1186
+ ]);
1143
1187
  const data = block && transactions !== void 0 ? {
1144
1188
  transactions: transactions.length,
1145
1189
  block: block[0]._hash
1146
1190
  } : void 0;
1147
1191
  const [ref, handleClick] = useLinkedBlockItem("transaction-count", data);
1148
- return /* @__PURE__ */ React20.createElement(TableCell6, {
1192
+ return /* @__PURE__ */ React21.createElement(TableCell6, {
1149
1193
  ref,
1150
1194
  ...props
1151
- }, /* @__PURE__ */ React20.createElement("span", null, error ? /* @__PURE__ */ React20.createElement(Tooltip5, {
1195
+ }, /* @__PURE__ */ React21.createElement("span", null, error ? /* @__PURE__ */ React21.createElement(Tooltip5, {
1152
1196
  title: error.message
1153
- }, /* @__PURE__ */ React20.createElement(Error3, {
1197
+ }, /* @__PURE__ */ React21.createElement(Error3, {
1154
1198
  color: "error"
1155
- })) : null, linked ? /* @__PURE__ */ React20.createElement(Link3, {
1199
+ })) : null, linked ? /* @__PURE__ */ React21.createElement(Link3, {
1156
1200
  onClick: handleClick,
1157
1201
  sx: {
1158
1202
  cursor: "pointer"
1159
1203
  }
1160
- }, transactions?.length ?? "--") : transactions?.length ?? "--"));
1204
+ }, /* @__PURE__ */ React21.createElement(TransactionCountChip, {
1205
+ transactions: txHashes
1206
+ })) : /* @__PURE__ */ React21.createElement(TransactionCountChip, {
1207
+ transactions: txHashes
1208
+ })));
1161
1209
  }, "BlockTransactionCountTableCell");
1162
1210
 
1163
1211
  // src/components/block/table/cell/Verification.tsx
1164
1212
  import { TableCell as TableCell7 } from "@mui/material";
1165
1213
  import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
1166
1214
  import { BWVerification as BWVerification2 } from "@xyo-network/react-boundwitness-plugin";
1167
- import React21 from "react";
1215
+ import React22 from "react";
1168
1216
  var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
1169
1217
  const [ref, handleClick] = useLinkedBlockItem("block-verification", block?.[0].block.toString());
1170
- return /* @__PURE__ */ React21.createElement(TableCell7, {
1218
+ return /* @__PURE__ */ React22.createElement(TableCell7, {
1171
1219
  ref,
1172
1220
  ...props
1173
- }, /* @__PURE__ */ React21.createElement(FlexRow5, {
1221
+ }, /* @__PURE__ */ React22.createElement(FlexRow5, {
1174
1222
  sx: {
1175
1223
  width: "100%"
1176
1224
  }
1177
- }, /* @__PURE__ */ React21.createElement(BWVerification2, {
1225
+ }, /* @__PURE__ */ React22.createElement(BWVerification2, {
1178
1226
  onClick: linked ? handleClick : void 0,
1179
1227
  iconColors: true,
1180
1228
  boundwitness: block?.[0]
@@ -1184,46 +1232,46 @@ var BlockVerificationTableCell = /* @__PURE__ */ __name(({ block, linked, ...pro
1184
1232
  // src/components/block/table/Ex.tsx
1185
1233
  import { TableBody } from "@mui/material";
1186
1234
  import { TableEx } from "@xyo-network/react-table";
1187
- import React23 from "react";
1235
+ import React24 from "react";
1188
1236
 
1189
1237
  // src/components/block/table/head/TableHead.tsx
1190
1238
  import { InfoOutline } from "@mui/icons-material";
1191
1239
  import { TableCell as TableCell8, TableHead, TableRow, Tooltip as Tooltip6, Typography as Typography3 } from "@mui/material";
1192
1240
  import { FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
1193
- import React22 from "react";
1241
+ import React23 from "react";
1194
1242
  var ToolTipTableCell = /* @__PURE__ */ __name(({ children, align, title, ...props }) => {
1195
- return /* @__PURE__ */ React22.createElement(TableCell8, {
1243
+ return /* @__PURE__ */ React23.createElement(TableCell8, {
1196
1244
  title,
1197
1245
  ...props
1198
- }, /* @__PURE__ */ React22.createElement(Tooltip6, {
1246
+ }, /* @__PURE__ */ React23.createElement(Tooltip6, {
1199
1247
  title
1200
- }, /* @__PURE__ */ React22.createElement(FlexRow6, {
1248
+ }, /* @__PURE__ */ React23.createElement(FlexRow6, {
1201
1249
  justifyContent: align
1202
- }, /* @__PURE__ */ React22.createElement(Typography3, {
1250
+ }, /* @__PURE__ */ React23.createElement(Typography3, {
1203
1251
  variant: "body2"
1204
- }, children), "\xA0", /* @__PURE__ */ React22.createElement(InfoOutline, {
1252
+ }, children), "\xA0", /* @__PURE__ */ React23.createElement(InfoOutline, {
1205
1253
  fontSize: "small"
1206
1254
  }))));
1207
1255
  }, "ToolTipTableCell");
1208
1256
  var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1209
- return /* @__PURE__ */ React22.createElement(TableHead, null, /* @__PURE__ */ React22.createElement(TableRow, null, /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1210
- title: "The hash of the block"
1211
- }, "Block Hash"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1212
- align: "center",
1257
+ return /* @__PURE__ */ React23.createElement(TableHead, null, /* @__PURE__ */ React23.createElement(TableRow, null, /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1258
+ align: "left",
1213
1259
  title: "The block number that is included in the block"
1214
- }, "Block Number"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1215
- align: "center",
1260
+ }, "Block"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1261
+ title: "The hash of the block"
1262
+ }, "Block Hash"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1263
+ align: "left",
1264
+ title: "The address of the block producer that produced the block"
1265
+ }, "Block Producer"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1266
+ align: "left",
1216
1267
  title: "Count of transactions that are included in the block"
1217
- }, "Transactions"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1218
- align: "center",
1268
+ }, "Transactions"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1269
+ align: "left",
1219
1270
  title: "Count of public and private payload counts for the block"
1220
- }, "Payloads"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1221
- align: "center",
1222
- title: "The address of the block producer that produced the block"
1223
- }, "Block Producer"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1271
+ }, "Payloads"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1224
1272
  align: "center",
1225
1273
  title: "The result of the local validation check for the block"
1226
- }, "Valid"), /* @__PURE__ */ React22.createElement(ToolTipTableCell, {
1274
+ }, "Valid"), /* @__PURE__ */ React23.createElement(ToolTipTableCell, {
1227
1275
  align: "center",
1228
1276
  title: "Link to display the raw JSON of the block"
1229
1277
  }, "JSON")));
@@ -1231,74 +1279,85 @@ var BlockchainTableHead = /* @__PURE__ */ __name(() => {
1231
1279
 
1232
1280
  // src/components/block/table/Ex.tsx
1233
1281
  var BlockchainTableEx = /* @__PURE__ */ __name(({ ref, children, ...props }) => {
1234
- return /* @__PURE__ */ React23.createElement(TableEx, {
1282
+ return /* @__PURE__ */ React24.createElement(TableEx, {
1235
1283
  ref,
1236
1284
  ...props
1237
- }, /* @__PURE__ */ React23.createElement(BlockchainTableHead, null), /* @__PURE__ */ React23.createElement(TableBody, null, children));
1285
+ }, /* @__PURE__ */ React24.createElement(BlockchainTableHead, null), /* @__PURE__ */ React24.createElement(TableBody, null, children));
1238
1286
  }, "BlockchainTableEx");
1239
1287
  BlockchainTableEx.displayName = "BlockchainTableEx";
1240
1288
 
1241
1289
  // src/components/block/table/row/TableRow.tsx
1242
- import { TableRow as TableRow2 } from "@mui/material";
1243
- import React24, { useMemo as useMemo10 } from "react";
1290
+ import { TableRow as TableRow2, useTheme } from "@mui/material";
1291
+ import { alphaCss } from "@xylabs/react-theme";
1292
+ import React25, { useMemo as useMemo11 } from "react";
1244
1293
  var BlockChainTableRow = /* @__PURE__ */ __name(({ block, defaultExpanded, linked, sx, ...props }) => {
1245
- const linkedTableCellProps = useMemo10(() => ({
1294
+ const linkedTableCellProps = useMemo11(() => ({
1246
1295
  block,
1247
1296
  linked
1248
1297
  }), [
1249
1298
  block,
1250
1299
  linked
1251
1300
  ]);
1252
- const defaultTableCellProps = useMemo10(() => ({
1301
+ const defaultTableCellProps = useMemo11(() => ({
1253
1302
  block
1254
1303
  }), [
1255
1304
  block
1256
1305
  ]);
1257
- return /* @__PURE__ */ React24.createElement(TableRow2, {
1306
+ const theme = useTheme();
1307
+ return /* @__PURE__ */ React25.createElement(TableRow2, {
1258
1308
  sx: {
1259
- overflowY: "scroll",
1309
+ "overflowY": "scroll",
1310
+ "&:hover": {
1311
+ backgroundColor: alphaCss(theme.vars.palette.secondary.light, 0.85)
1312
+ },
1260
1313
  ...sx
1261
1314
  },
1262
1315
  ...props
1263
- }, /* @__PURE__ */ React24.createElement(BlockHashTableCell, linkedTableCellProps), /* @__PURE__ */ React24.createElement(BlockNumberTableCell, {
1264
- align: "center",
1316
+ }, /* @__PURE__ */ React25.createElement(BlockNumberTableCell, {
1317
+ align: "left",
1265
1318
  ...linkedTableCellProps
1266
- }), /* @__PURE__ */ React24.createElement(BlockTransactionCountTableCell, {
1267
- align: "center",
1319
+ }), /* @__PURE__ */ React25.createElement(BlockHashTableCell, {
1320
+ align: "left",
1268
1321
  ...linkedTableCellProps
1269
- }), /* @__PURE__ */ React24.createElement(BlockPayloadCountsTableCell, {
1270
- align: "center",
1322
+ }), /* @__PURE__ */ React25.createElement(BlockProducerTableCell, {
1323
+ align: "left",
1324
+ ...linkedTableCellProps
1325
+ }), /* @__PURE__ */ React25.createElement(BlockTransactionCountTableCell, {
1326
+ align: "left",
1271
1327
  ...linkedTableCellProps
1272
- }), /* @__PURE__ */ React24.createElement(BlockProducerTableCell, linkedTableCellProps), /* @__PURE__ */ React24.createElement(BlockVerificationTableCell, defaultTableCellProps), /* @__PURE__ */ React24.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1328
+ }), /* @__PURE__ */ React25.createElement(BlockPayloadCountsTableCell, {
1329
+ align: "left",
1330
+ ...linkedTableCellProps
1331
+ }), /* @__PURE__ */ React25.createElement(BlockVerificationTableCell, defaultTableCellProps), /* @__PURE__ */ React25.createElement(BlockJsonViewTableCell, defaultTableCellProps));
1273
1332
  }, "BlockChainTableRow");
1274
1333
 
1275
1334
  // src/components/chain/controls/PollingControlsFlexbox.tsx
1276
1335
  import { Autorenew, Pause } from "@mui/icons-material";
1277
1336
  import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip7 } from "@mui/material";
1278
1337
  import { FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
1279
- import React29, { memo } from "react";
1338
+ import React30, { memo } from "react";
1280
1339
 
1281
1340
  // src/components/chain/stats/Dialog.tsx
1282
1341
  import { QueryStats } from "@mui/icons-material";
1283
1342
  import { Dialog as Dialog3, DialogContent as DialogContent3, DialogTitle as DialogTitle3, IconButton as IconButton3 } from "@mui/material";
1284
- import React27, { useState as useState11 } from "react";
1343
+ import React28, { useState as useState11 } from "react";
1285
1344
 
1286
1345
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
1287
1346
  import { ListItem, styled, Typography as Typography4 } from "@mui/material";
1288
1347
  import { ErrorRender as ErrorRender3 } from "@xylabs/react-error";
1289
1348
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
1290
1349
  import { isChainSummaryProducers } from "@xyo-network/chain-protocol";
1291
- import React26, { useMemo as useMemo11 } from "react";
1350
+ import React27, { useMemo as useMemo12 } from "react";
1292
1351
 
1293
1352
  // src/components/chain/stats/producer/Table.tsx
1294
- import { Table, TableBody as TableBody2, TableCell as TableCell9, TableHead as TableHead2, TableRow as TableRow3, useTheme } from "@mui/material";
1353
+ import { Table, TableBody as TableBody2, TableCell as TableCell9, TableHead as TableHead2, TableRow as TableRow3, useTheme as useTheme2 } from "@mui/material";
1295
1354
  import { BlockiesAvatar as BlockiesAvatar2 } from "@xyo-network/react-chain-blockies";
1296
- import React25 from "react";
1355
+ import React26 from "react";
1297
1356
  var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) => {
1298
- const theme = useTheme();
1299
- 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, {
1357
+ const theme = useTheme2();
1358
+ return /* @__PURE__ */ React26.createElement(Table, props, /* @__PURE__ */ React26.createElement(TableHead2, null, /* @__PURE__ */ React26.createElement(TableRow3, null, /* @__PURE__ */ React26.createElement(TableCell9, null, "Address"), /* @__PURE__ */ React26.createElement(TableCell9, null, "Blocks Produced"), /* @__PURE__ */ React26.createElement(TableCell9, null, "Rewards Earned Produced"))), /* @__PURE__ */ React26.createElement(TableBody2, null, producers?.map((producer) => /* @__PURE__ */ React26.createElement(TableRow3, {
1300
1359
  key: producer.address
1301
- }, /* @__PURE__ */ React25.createElement(TableCell9, null, /* @__PURE__ */ React25.createElement(BlockiesAvatar2, {
1360
+ }, /* @__PURE__ */ React26.createElement(TableCell9, null, /* @__PURE__ */ React26.createElement(BlockiesAvatar2, {
1302
1361
  blockiesOptions: {
1303
1362
  seed: producer.address
1304
1363
  },
@@ -1306,12 +1365,12 @@ var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) =
1306
1365
  height: theme.spacing(2.75),
1307
1366
  width: theme.spacing(2.75)
1308
1367
  }
1309
- })), /* @__PURE__ */ React25.createElement(TableCell9, null, producer.blocksProduced.toString()), /* @__PURE__ */ React25.createElement(TableCell9, null, producer.rewardsEarned.toString())))));
1368
+ })), /* @__PURE__ */ React26.createElement(TableCell9, null, producer.blocksProduced.toString()), /* @__PURE__ */ React26.createElement(TableCell9, null, producer.rewardsEarned.toString())))));
1310
1369
  }, "ChainProducerStatsTable");
1311
1370
 
1312
1371
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
1313
1372
  var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) => {
1314
- const [producer, producerError] = useMemo11(() => {
1373
+ const [producer, producerError] = useMemo12(() => {
1315
1374
  if (payload) {
1316
1375
  return isChainSummaryProducers(payload) ? [
1317
1376
  payload
@@ -1325,19 +1384,19 @@ var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) =
1325
1384
  }, [
1326
1385
  payload
1327
1386
  ]);
1328
- const producersArray = useMemo11(() => Object.values(producer?.producers ?? {}), [
1387
+ const producersArray = useMemo12(() => Object.values(producer?.producers ?? {}), [
1329
1388
  producer
1330
1389
  ]);
1331
- return /* @__PURE__ */ React26.createElement(FlexCol3, {
1390
+ return /* @__PURE__ */ React27.createElement(FlexCol3, {
1332
1391
  alignItems: "start",
1333
1392
  gap: 1,
1334
1393
  ...props
1335
- }, /* @__PURE__ */ React26.createElement(ErrorRender3, {
1394
+ }, /* @__PURE__ */ React27.createElement(ErrorRender3, {
1336
1395
  error: producerError,
1337
1396
  scope: "BlockProducerStatsFlexbox"
1338
- }), /* @__PURE__ */ React26.createElement(Typography4, {
1397
+ }), /* @__PURE__ */ React27.createElement(Typography4, {
1339
1398
  fontSize: "1rem"
1340
- }, "Block Producers"), /* @__PURE__ */ React26.createElement(ChainProducerStatsTable, {
1399
+ }, "Block Producers"), /* @__PURE__ */ React27.createElement(ChainProducerStatsTable, {
1341
1400
  producers: producersArray
1342
1401
  }));
1343
1402
  }, "BlockProducerStatsFlexbox");
@@ -1349,18 +1408,18 @@ var StyledListItem = styled(ListItem)(() => ({
1349
1408
  // src/components/chain/stats/Dialog.tsx
1350
1409
  var ChainAnalyzerStatsDialog = /* @__PURE__ */ __name((props) => {
1351
1410
  const { analyzers, statsUpdated } = useChainAnalyzersContext();
1352
- return /* @__PURE__ */ React27.createElement(Dialog3, props, /* @__PURE__ */ React27.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React27.createElement(DialogContent3, null, !!statsUpdated && Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React27.createElement("div", {
1411
+ return /* @__PURE__ */ React28.createElement(Dialog3, props, /* @__PURE__ */ React28.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React28.createElement(DialogContent3, null, !!statsUpdated && Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React28.createElement("div", {
1353
1412
  key: id2
1354
- }, id2 === "producers" && /* @__PURE__ */ React27.createElement(BlockProducerStatsFlexbox, {
1413
+ }, id2 === "producers" && /* @__PURE__ */ React28.createElement(BlockProducerStatsFlexbox, {
1355
1414
  payload: analyzer.result()
1356
1415
  })))));
1357
1416
  }, "ChainAnalyzerStatsDialog");
1358
1417
  var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1359
1418
  const [open, setOpen] = useState11(false);
1360
1419
  const handleClose = /* @__PURE__ */ __name(() => setOpen(false), "handleClose");
1361
- return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(IconButton3, {
1420
+ return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(IconButton3, {
1362
1421
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1363
- }, /* @__PURE__ */ React27.createElement(QueryStats, null)), /* @__PURE__ */ React27.createElement(ChainAnalyzerStatsDialog, {
1422
+ }, /* @__PURE__ */ React28.createElement(QueryStats, null)), /* @__PURE__ */ React28.createElement(ChainAnalyzerStatsDialog, {
1364
1423
  onClose: handleClose,
1365
1424
  open,
1366
1425
  ...props
@@ -1369,19 +1428,19 @@ var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1369
1428
 
1370
1429
  // src/components/chain/controls/PulseSvgIcon.tsx
1371
1430
  import { createSvgIcon, keyframes, styled as styled2 } from "@mui/material";
1372
- import React28 from "react";
1373
- var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React28.createElement("svg", {
1431
+ import React29 from "react";
1432
+ var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React29.createElement("svg", {
1374
1433
  viewBox: "0 0 80 80",
1375
1434
  version: "1.1",
1376
1435
  xmlns: "http://www.w3.org/2000/svg"
1377
- }, /* @__PURE__ */ React28.createElement("g", {
1436
+ }, /* @__PURE__ */ React29.createElement("g", {
1378
1437
  transform: "translate(34,34)"
1379
- }, /* @__PURE__ */ React28.createElement("circle", {
1438
+ }, /* @__PURE__ */ React29.createElement("circle", {
1380
1439
  className: "core",
1381
1440
  cx: "0",
1382
1441
  cy: "0",
1383
1442
  r: "6"
1384
- }), /* @__PURE__ */ React28.createElement("circle", {
1443
+ }), /* @__PURE__ */ React29.createElement("circle", {
1385
1444
  className: "radar",
1386
1445
  cx: "0",
1387
1446
  cy: "0",
@@ -1445,24 +1504,24 @@ var StyledPulseSvgIcon = styled2(PulseSvgIcon)(({ theme }) => {
1445
1504
  var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingState, setPollingState }) => {
1446
1505
  const paused = pollingState === "paused";
1447
1506
  const running = pollingState === "running";
1448
- return /* @__PURE__ */ React29.createElement(FlexRow7, {
1507
+ return /* @__PURE__ */ React30.createElement(FlexRow7, {
1449
1508
  justifyContent: "space-between",
1450
1509
  width: "100%"
1451
- }, /* @__PURE__ */ React29.createElement(FlexRow7, {
1510
+ }, /* @__PURE__ */ React30.createElement(FlexRow7, {
1452
1511
  gap: 2
1453
- }, running && /* @__PURE__ */ React29.createElement(IconButton4, {
1512
+ }, running && /* @__PURE__ */ React30.createElement(IconButton4, {
1454
1513
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("paused"), "onClick"),
1455
1514
  title: "Pause Block Stream"
1456
- }, /* @__PURE__ */ React29.createElement(Pause, null)), paused && /* @__PURE__ */ React29.createElement(IconButton4, {
1515
+ }, /* @__PURE__ */ React30.createElement(Pause, null)), paused && /* @__PURE__ */ React30.createElement(IconButton4, {
1457
1516
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick"),
1458
1517
  title: "Re-Sync Block Stream"
1459
- }, /* @__PURE__ */ React29.createElement(Autorenew, null)), /* @__PURE__ */ React29.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React29.createElement(FlexRow7, {
1518
+ }, /* @__PURE__ */ React30.createElement(Autorenew, null)), /* @__PURE__ */ React30.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React30.createElement(FlexRow7, {
1460
1519
  gap: 2
1461
- }, /* @__PURE__ */ React29.createElement(Grow, {
1520
+ }, /* @__PURE__ */ React30.createElement(Grow, {
1462
1521
  in: (blocksBehind ?? 0) > 0
1463
- }, /* @__PURE__ */ React29.createElement(Tooltip7, {
1522
+ }, /* @__PURE__ */ React30.createElement(Tooltip7, {
1464
1523
  title: "Click to Re-Sync"
1465
- }, /* @__PURE__ */ React29.createElement(Alert3, {
1524
+ }, /* @__PURE__ */ React30.createElement(Alert3, {
1466
1525
  sx: {
1467
1526
  py: 0,
1468
1527
  px: 1,
@@ -1470,11 +1529,11 @@ var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingStat
1470
1529
  },
1471
1530
  severity: "warning",
1472
1531
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick")
1473
- }, /* @__PURE__ */ React29.createElement(AlertTitle2, {
1532
+ }, /* @__PURE__ */ React30.createElement(AlertTitle2, {
1474
1533
  sx: {
1475
1534
  mb: 0
1476
1535
  }
1477
- }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React29.createElement(Icon2, null, /* @__PURE__ */ React29.createElement(StyledPulseSvgIcon, {
1536
+ }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React30.createElement(Icon2, null, /* @__PURE__ */ React30.createElement(StyledPulseSvgIcon, {
1478
1537
  className: running ? "" : "paused"
1479
1538
  }))));
1480
1539
  }, "PollingControlsFlexbox");
@@ -1482,9 +1541,9 @@ var MemoizedPollingControlsFlexbox = /* @__PURE__ */ memo(PollingControlsFlexbox
1482
1541
 
1483
1542
  // src/components/chain/dialog/Dialog.tsx
1484
1543
  import { Button as Button4, Dialog as Dialog4, DialogActions as DialogActions3, DialogContent as DialogContent4 } from "@mui/material";
1485
- import React30 from "react";
1544
+ import React31 from "react";
1486
1545
  var TransactionsDialog = /* @__PURE__ */ __name((props) => {
1487
- return /* @__PURE__ */ React30.createElement(Dialog4, props, /* @__PURE__ */ React30.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React30.createElement(DialogActions3, null, /* @__PURE__ */ React30.createElement(Button4, {
1546
+ return /* @__PURE__ */ React31.createElement(Dialog4, props, /* @__PURE__ */ React31.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React31.createElement(DialogActions3, null, /* @__PURE__ */ React31.createElement(Button4, {
1488
1547
  variant: "outlined",
1489
1548
  onClick: /* @__PURE__ */ __name((e) => props?.onClose?.(e, "escapeKeyDown"), "onClick")
1490
1549
  }, "Close")));
@@ -1524,9 +1583,9 @@ var useOnBlock = /* @__PURE__ */ __name((initialHeadNumber, onAddBlock, liveHead
1524
1583
 
1525
1584
  // src/components/chain/pagination/BlockChainPagination.tsx
1526
1585
  import { TablePaginationActions } from "@xyo-network/react-payload-table";
1527
- import React31 from "react";
1586
+ import React32 from "react";
1528
1587
  var BlockChainPagination = /* @__PURE__ */ __name(({ count = 0, onPageChange, page, rowsPerPage = 10 }) => {
1529
- return /* @__PURE__ */ React31.createElement(TablePaginationActions, {
1588
+ return /* @__PURE__ */ React32.createElement(TablePaginationActions, {
1530
1589
  count,
1531
1590
  onPageChange,
1532
1591
  page,
@@ -1535,10 +1594,10 @@ var BlockChainPagination = /* @__PURE__ */ __name(({ count = 0, onPageChange, pa
1535
1594
  }, "BlockChainPagination");
1536
1595
 
1537
1596
  // src/components/chain/pagination/hooks/usePagination.tsx
1538
- import { useMemo as useMemo12, useState as useState12 } from "react";
1597
+ import { useMemo as useMemo13, useState as useState12 } from "react";
1539
1598
  var useChainPagination = /* @__PURE__ */ __name((pageSize, blockComponents) => {
1540
1599
  const [page, setPage] = useState12(0);
1541
- const paginatedBlockComponents = useMemo12(() => {
1600
+ const paginatedBlockComponents = useMemo13(() => {
1542
1601
  const startIndex = page * pageSize;
1543
1602
  const endIndex = startIndex + pageSize;
1544
1603
  return blockComponents?.slice(startIndex, endIndex);
@@ -1560,11 +1619,11 @@ var useChainPagination = /* @__PURE__ */ __name((pageSize, blockComponents) => {
1560
1619
  // src/components/chain/render/dynamic/flexbox/variants/Base.tsx
1561
1620
  import { ErrorRender as ErrorRender4 } from "@xylabs/react-error";
1562
1621
  import { FlexCol as FlexCol5 } from "@xylabs/react-flexbox";
1563
- import React33 from "react";
1622
+ import React34 from "react";
1564
1623
 
1565
1624
  // src/components/chain/list/Animated.tsx
1566
1625
  import { AnimatedList } from "@xylabs/react-animation";
1567
- import React32 from "react";
1626
+ import React33 from "react";
1568
1627
 
1569
1628
  // src/components/chain/styled/BlockListWrapperFlexbox.tsx
1570
1629
  import { styled as styled3 } from "@mui/material";
@@ -1585,20 +1644,20 @@ var BlockListWrapperFlexBox = styled3(FlexCol4, {
1585
1644
 
1586
1645
  // src/components/chain/list/Animated.tsx
1587
1646
  var BlockListAnimated = /* @__PURE__ */ __name(({ blockChainRenderComponents }) => {
1588
- return /* @__PURE__ */ React32.createElement(BlockListWrapperFlexBox, {
1647
+ return /* @__PURE__ */ React33.createElement(BlockListWrapperFlexBox, {
1589
1648
  alignItems: "stretch",
1590
1649
  width: "100%"
1591
- }, /* @__PURE__ */ React32.createElement(AnimatedList, {
1650
+ }, /* @__PURE__ */ React33.createElement(AnimatedList, {
1592
1651
  fullWidth: true,
1593
1652
  items: blockChainRenderComponents
1594
1653
  }));
1595
1654
  }, "BlockListAnimated");
1596
1655
 
1597
1656
  // src/components/chain/render/dynamic/hooks/useDynamicBlockRenderComponents.ts
1598
- import { useMemo as useMemo13 } from "react";
1657
+ import { useMemo as useMemo14 } from "react";
1599
1658
  var useDynamicBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blockChainRenderProps) => {
1600
1659
  const { maxBlocks } = blockChainRenderProps ?? {};
1601
- const chainIteratorParams = useMemo13(() => blockChainRenderProps ?? {}, [
1660
+ const chainIteratorParams = useMemo14(() => blockChainRenderProps ?? {}, [
1602
1661
  blockChainRenderProps
1603
1662
  ]);
1604
1663
  const [params, paramsError] = useChainIteratorParams(chainIteratorParams);
@@ -1619,7 +1678,7 @@ var useDynamicBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, bl
1619
1678
 
1620
1679
  // src/components/chain/render/dynamic/hooks/useRemoteBlockChainRenderProps.ts
1621
1680
  import { usePromise as usePromise6 } from "@xylabs/react-promise";
1622
- import { useMemo as useMemo14 } from "react";
1681
+ import { useMemo as useMemo15 } from "react";
1623
1682
 
1624
1683
  // src/lib/getChainArchivist.ts
1625
1684
  import { assertEx as assertEx4 } from "@xylabs/assert";
@@ -1663,7 +1722,7 @@ var useRemoteBlockChainRenderProps = /* @__PURE__ */ __name((chainArchivistModul
1663
1722
  url,
1664
1723
  chainArchivistModuleId
1665
1724
  ]);
1666
- const blockChainRenderProps = useMemo14(() => ({
1725
+ const blockChainRenderProps = useMemo15(() => ({
1667
1726
  ...blockChainRenderPropsArg,
1668
1727
  chainArchivist
1669
1728
  }), [
@@ -1679,28 +1738,28 @@ var useRemoteBlockChainRenderProps = /* @__PURE__ */ __name((chainArchivistModul
1679
1738
  // src/components/chain/render/dynamic/flexbox/variants/Base.tsx
1680
1739
  var DynamicListBase = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1681
1740
  const { errors, blockChainRenderComponents, blocksWhilePaused, pollingState, updatePollingState } = useDynamicBlockRenderComponents(BlockHeadingFlexbox, blockChainRenderProps);
1682
- return /* @__PURE__ */ React33.createElement(FlexCol5, {
1741
+ return /* @__PURE__ */ React34.createElement(FlexCol5, {
1683
1742
  alignItems: "start",
1684
1743
  ...props
1685
- }, errors?.map((error) => /* @__PURE__ */ React33.createElement(ErrorRender4, {
1744
+ }, errors?.map((error) => /* @__PURE__ */ React34.createElement(ErrorRender4, {
1686
1745
  error,
1687
1746
  key: error?.name,
1688
1747
  scope: "DynamicBlockchainRenderFlexboxInner"
1689
- })), /* @__PURE__ */ React33.createElement(MemoizedPollingControlsFlexbox, {
1748
+ })), /* @__PURE__ */ React34.createElement(MemoizedPollingControlsFlexbox, {
1690
1749
  blocksBehind: blocksWhilePaused?.length,
1691
1750
  pollingState,
1692
1751
  setPollingState: updatePollingState
1693
- }), /* @__PURE__ */ React33.createElement(BlockListAnimated, {
1752
+ }), /* @__PURE__ */ React34.createElement(BlockListAnimated, {
1694
1753
  blockChainRenderComponents
1695
1754
  }));
1696
1755
  }, "DynamicListBase");
1697
1756
 
1698
1757
  // src/components/chain/render/dynamic/flexbox/variants/WithAnalysis.tsx
1699
1758
  import { ChainProducersAnalyzer } from "@xyo-network/chain-protocol";
1700
- import React34, { useMemo as useMemo15 } from "react";
1759
+ import React35, { useMemo as useMemo16 } from "react";
1701
1760
  var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1702
1761
  const { chainInformation } = blockChainRenderProps ?? {};
1703
- const analyzers = useMemo15(() => {
1762
+ const analyzers = useMemo16(() => {
1704
1763
  if (chainInformation) {
1705
1764
  return {
1706
1765
  producers: new ChainProducersAnalyzer()
@@ -1709,9 +1768,9 @@ var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1709
1768
  }, [
1710
1769
  chainInformation
1711
1770
  ]);
1712
- return /* @__PURE__ */ React34.createElement(ChainAnalyzersProvider, {
1771
+ return /* @__PURE__ */ React35.createElement(ChainAnalyzersProvider, {
1713
1772
  analyzers
1714
- }, /* @__PURE__ */ React34.createElement(ChainPollingProvider, null, /* @__PURE__ */ React34.createElement(DynamicListBase, {
1773
+ }, /* @__PURE__ */ React35.createElement(ChainPollingProvider, null, /* @__PURE__ */ React35.createElement(DynamicListBase, {
1715
1774
  blockChainRenderProps,
1716
1775
  ...props
1717
1776
  })));
@@ -1719,13 +1778,13 @@ var WithAnalysis = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1719
1778
 
1720
1779
  // src/components/chain/render/dynamic/flexbox/variants/WithRemote.tsx
1721
1780
  import { ErrorRender as ErrorRender5 } from "@xylabs/react-error";
1722
- import React35 from "react";
1781
+ import React36 from "react";
1723
1782
  var WithRemote = /* @__PURE__ */ __name(({ url, chainArchivistModuleId, blockChainRenderProps: blockChainRenderPropsArg, ...props }) => {
1724
1783
  const { error, blockChainRenderProps } = useRemoteBlockChainRenderProps(chainArchivistModuleId, url, blockChainRenderPropsArg);
1725
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(ErrorRender5, {
1784
+ return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(ErrorRender5, {
1726
1785
  error,
1727
1786
  scope: "RemoteChainProviderFlexbox"
1728
- }), /* @__PURE__ */ React35.createElement(WithAnalysis, {
1787
+ }), /* @__PURE__ */ React36.createElement(WithAnalysis, {
1729
1788
  blockChainRenderProps,
1730
1789
  ...props
1731
1790
  }));
@@ -1741,16 +1800,16 @@ var DynamicBlockchainRenderFlexbox = {
1741
1800
  // src/components/chain/render/static/flexbox/variants/Base.tsx
1742
1801
  import { ErrorRender as ErrorRender6 } from "@xylabs/react-error";
1743
1802
  import { FlexCol as FlexCol6, FlexGrowRow as FlexGrowRow2 } from "@xylabs/react-flexbox";
1744
- import React36 from "react";
1803
+ import React37 from "react";
1745
1804
 
1746
1805
  // src/components/chain/render/static/hooks/useStaticBlockRenderComponents.ts
1747
1806
  import { exists } from "@xylabs/exists";
1748
- import { useMemo as useMemo16 } from "react";
1807
+ import { useMemo as useMemo17 } from "react";
1749
1808
  var DEFAULT_PAGE_SIZE = 25;
1750
1809
  var useStaticBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blockChainRenderProps) => {
1751
1810
  const { maxBlocks } = blockChainRenderProps ?? {};
1752
1811
  const pageSize = blockChainRenderProps?.pageSize ?? DEFAULT_PAGE_SIZE;
1753
- const chainIteratorParams = useMemo16(() => blockChainRenderProps ?? {}, [
1812
+ const chainIteratorParams = useMemo17(() => blockChainRenderProps ?? {}, [
1754
1813
  blockChainRenderProps
1755
1814
  ]);
1756
1815
  const [params, paramsError] = useChainIteratorParams(chainIteratorParams);
@@ -1774,34 +1833,34 @@ var useStaticBlockRenderComponents = /* @__PURE__ */ __name((BlockComponent, blo
1774
1833
  // src/components/chain/render/static/flexbox/variants/Base.tsx
1775
1834
  var StaticListBase = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1776
1835
  const { blockComponents, errors, paginatedBlockComponents, onPageChange, page, pageSize } = useStaticBlockRenderComponents(BlockHeadingFlexbox, blockChainRenderProps);
1777
- return /* @__PURE__ */ React36.createElement(FlexCol6, {
1836
+ return /* @__PURE__ */ React37.createElement(FlexCol6, {
1778
1837
  alignItems: "start",
1779
1838
  gap: 2,
1780
1839
  width: "100%",
1781
1840
  ...props
1782
- }, errors?.map((error) => /* @__PURE__ */ React36.createElement(ErrorRender6, {
1841
+ }, errors?.map((error) => /* @__PURE__ */ React37.createElement(ErrorRender6, {
1783
1842
  error,
1784
1843
  key: error.name,
1785
1844
  scope: "StaticBlockchainFlexboxInner"
1786
- })), paginatedBlockComponents?.length ? /* @__PURE__ */ React36.createElement(FlexGrowRow2, {
1845
+ })), paginatedBlockComponents?.length ? /* @__PURE__ */ React37.createElement(FlexGrowRow2, {
1787
1846
  justifyContent: "space-between",
1788
1847
  width: "100%"
1789
- }, /* @__PURE__ */ React36.createElement(ChainAnalyzerStatsDialogFromContext, null), /* @__PURE__ */ React36.createElement(BlockChainPagination, {
1848
+ }, /* @__PURE__ */ React37.createElement(ChainAnalyzerStatsDialogFromContext, null), /* @__PURE__ */ React37.createElement(BlockChainPagination, {
1790
1849
  count: blockComponents?.length ?? 0,
1791
1850
  onPageChange,
1792
1851
  page,
1793
1852
  rowsPerPage: pageSize
1794
- })) : null, /* @__PURE__ */ React36.createElement(BlockListAnimated, {
1853
+ })) : null, /* @__PURE__ */ React37.createElement(BlockListAnimated, {
1795
1854
  blockChainRenderComponents: paginatedBlockComponents
1796
1855
  }));
1797
1856
  }, "StaticListBase");
1798
1857
 
1799
1858
  // src/components/chain/render/static/flexbox/variants/WithAnalysis.tsx
1800
1859
  import { ChainProducersAnalyzer as ChainProducersAnalyzer2 } from "@xyo-network/chain-protocol";
1801
- import React37, { useMemo as useMemo17 } from "react";
1860
+ import React38, { useMemo as useMemo18 } from "react";
1802
1861
  var WithAnalysis2 = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props }) => {
1803
1862
  const { chainInformation } = blockChainRenderProps ?? {};
1804
- const analyzers = useMemo17(() => {
1863
+ const analyzers = useMemo18(() => {
1805
1864
  if (chainInformation) {
1806
1865
  return {
1807
1866
  producers: new ChainProducersAnalyzer2()
@@ -1810,9 +1869,9 @@ var WithAnalysis2 = /* @__PURE__ */ __name(({ blockChainRenderProps, ...props })
1810
1869
  }, [
1811
1870
  chainInformation
1812
1871
  ]);
1813
- return /* @__PURE__ */ React37.createElement(ChainAnalyzersProvider, {
1872
+ return /* @__PURE__ */ React38.createElement(ChainAnalyzersProvider, {
1814
1873
  analyzers
1815
- }, /* @__PURE__ */ React37.createElement(StaticListBase, {
1874
+ }, /* @__PURE__ */ React38.createElement(StaticListBase, {
1816
1875
  blockChainRenderProps,
1817
1876
  ...props
1818
1877
  }));
@@ -1827,19 +1886,19 @@ var StaticBlockchainRenderFlexBox = {
1827
1886
  // src/components/payload/builder/Flexbox.tsx
1828
1887
  import { FlexCol as FlexCol7 } from "@xylabs/react-flexbox";
1829
1888
  import { JsonViewerEx as JsonViewerEx2 } from "@xyo-network/react-payload-raw-info";
1830
- import React38, { useState as useState13 } from "react";
1889
+ import React39, { useState as useState13 } from "react";
1831
1890
  var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild, ...props }) => {
1832
1891
  const [payload, setPayload] = useState13();
1833
1892
  const onBuildLocal = /* @__PURE__ */ __name((payload2) => {
1834
1893
  onBuild?.(payload2);
1835
1894
  setPayload(payload2);
1836
1895
  }, "onBuildLocal");
1837
- return /* @__PURE__ */ React38.createElement(FlexCol7, {
1896
+ return /* @__PURE__ */ React39.createElement(FlexCol7, {
1838
1897
  gap: 2,
1839
1898
  ...props
1840
- }, /* @__PURE__ */ React38.createElement(BuilderComponent, {
1899
+ }, /* @__PURE__ */ React39.createElement(BuilderComponent, {
1841
1900
  onBuild: onBuildLocal
1842
- }), payload && /* @__PURE__ */ React38.createElement(JsonViewerEx2, {
1901
+ }), payload && /* @__PURE__ */ React39.createElement(JsonViewerEx2, {
1843
1902
  value: payload
1844
1903
  }));
1845
1904
  }, "PayloadBuilderFlexbox");
@@ -1847,11 +1906,11 @@ var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild,
1847
1906
  // src/components/payload/builder/producer-intent/Form.tsx
1848
1907
  import { Button as Button5, FormControl as FormControl5 } from "@mui/material";
1849
1908
  import { createProducerChainStakeIntent } from "@xyo-network/chain-ethereum";
1850
- import React41, { useMemo as useMemo19, useState as useState16 } from "react";
1909
+ import React42, { useMemo as useMemo20, useState as useState16 } from "react";
1851
1910
 
1852
1911
  // src/components/payload/fields/BlockNumberTextField.tsx
1853
1912
  import { FormControl as FormControl3, FormHelperText as FormHelperText2, TextField as TextField3 } from "@mui/material";
1854
- import React39, { useState as useState14 } from "react";
1913
+ import React40, { useState as useState14 } from "react";
1855
1914
  var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumberChanged, onChange, ...props }) => {
1856
1915
  const [blockNumber, setBlockNumber] = useState14();
1857
1916
  const handleChange = /* @__PURE__ */ __name((e) => {
@@ -1860,15 +1919,15 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1860
1919
  onBlockNumberChanged?.(Number.parseInt(value));
1861
1920
  onChange?.(e);
1862
1921
  }, "handleChange");
1863
- return /* @__PURE__ */ React39.createElement(FormControl3, {
1922
+ return /* @__PURE__ */ React40.createElement(FormControl3, {
1864
1923
  fullWidth: true
1865
- }, /* @__PURE__ */ React39.createElement(TextField3, {
1924
+ }, /* @__PURE__ */ React40.createElement(TextField3, {
1866
1925
  error: !!errorMessage,
1867
1926
  onChange: handleChange,
1868
1927
  type: "number",
1869
1928
  value: blockNumber ?? "",
1870
1929
  ...props
1871
- }), errorMessage && /* @__PURE__ */ React39.createElement(FormHelperText2, {
1930
+ }), errorMessage && /* @__PURE__ */ React40.createElement(FormHelperText2, {
1872
1931
  sx: {
1873
1932
  color: "error.main"
1874
1933
  }
@@ -1878,11 +1937,11 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1878
1937
  // src/components/payload/fields/XyoAddressTextField.tsx
1879
1938
  import { FormControl as FormControl4, FormHelperText as FormHelperText3, TextField as TextField4 } from "@mui/material";
1880
1939
  import { asAddress } from "@xylabs/hex";
1881
- import React40, { useMemo as useMemo18, useState as useState15 } from "react";
1940
+ import React41, { useMemo as useMemo19, useState as useState15 } from "react";
1882
1941
  var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange, resetValue, ...props }) => {
1883
1942
  const [address, setAddress] = useState15("");
1884
1943
  const [addressError, setAddressError] = useState15();
1885
- useMemo18(() => setAddress(""), [
1944
+ useMemo19(() => setAddress(""), [
1886
1945
  resetValue
1887
1946
  ]);
1888
1947
  const handleChange = /* @__PURE__ */ __name((event) => {
@@ -1902,15 +1961,15 @@ var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange,
1902
1961
  onAddressChanged?.();
1903
1962
  }
1904
1963
  }, "handleBlur");
1905
- return /* @__PURE__ */ React40.createElement(FormControl4, {
1964
+ return /* @__PURE__ */ React41.createElement(FormControl4, {
1906
1965
  fullWidth: true
1907
- }, /* @__PURE__ */ React40.createElement(TextField4, {
1966
+ }, /* @__PURE__ */ React41.createElement(TextField4, {
1908
1967
  error: !!addressError,
1909
1968
  onBlur: handleBlur,
1910
1969
  onChange: handleChange,
1911
1970
  value: address,
1912
1971
  ...props
1913
- }), addressError && /* @__PURE__ */ React40.createElement(FormHelperText3, {
1972
+ }), addressError && /* @__PURE__ */ React41.createElement(FormHelperText3, {
1914
1973
  sx: {
1915
1974
  color: "error.main"
1916
1975
  }
@@ -1923,7 +1982,7 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1923
1982
  const [exp, setExp] = useState16();
1924
1983
  const [nbf, setNbf] = useState16();
1925
1984
  const [blockRangeError, setBlockRangeError] = useState16();
1926
- const intentPayload = useMemo19(() => {
1985
+ const intentPayload = useMemo20(() => {
1927
1986
  if (exp !== void 0 && nbf !== void 0) {
1928
1987
  if (exp <= nbf) {
1929
1988
  setBlockRangeError(new Error("Expires must be greater than Not Before"));
@@ -1943,33 +2002,33 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1943
2002
  const onBuildLocal = /* @__PURE__ */ __name(() => {
1944
2003
  if (onBuild && intentPayload) onBuild?.(intentPayload);
1945
2004
  }, "onBuildLocal");
1946
- return /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(FormControl5, {
2005
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(FormControl5, {
1947
2006
  fullWidth: true
1948
- }, /* @__PURE__ */ React41.createElement(XyoAddressTextField, {
2007
+ }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
1949
2008
  label: "Delegate",
1950
2009
  name: "delegate",
1951
2010
  onAddressChanged: setDelegate,
1952
2011
  required: true,
1953
2012
  size: "small"
1954
- })), /* @__PURE__ */ React41.createElement(FormControl5, {
2013
+ })), /* @__PURE__ */ React42.createElement(FormControl5, {
1955
2014
  fullWidth: true
1956
- }, /* @__PURE__ */ React41.createElement(BlockNumberTextField, {
2015
+ }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
1957
2016
  errorMessage: blockRangeError?.message,
1958
2017
  label: "Expires",
1959
2018
  name: "exp",
1960
2019
  onBlockNumberChanged: setExp,
1961
2020
  required: true,
1962
2021
  size: "small"
1963
- })), /* @__PURE__ */ React41.createElement(FormControl5, {
2022
+ })), /* @__PURE__ */ React42.createElement(FormControl5, {
1964
2023
  fullWidth: true
1965
- }, /* @__PURE__ */ React41.createElement(BlockNumberTextField, {
2024
+ }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
1966
2025
  errorMessage: blockRangeError?.message,
1967
2026
  label: "Not Before",
1968
2027
  name: "nbf",
1969
2028
  onBlockNumberChanged: setNbf,
1970
2029
  required: true,
1971
2030
  size: "small"
1972
- })), /* @__PURE__ */ React41.createElement(Button5, {
2031
+ })), /* @__PURE__ */ React42.createElement(Button5, {
1973
2032
  disabled: !intentPayload,
1974
2033
  variant: "contained",
1975
2034
  onClick: onBuildLocal
@@ -1977,12 +2036,12 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1977
2036
  }, "ProducerIntentBuilderForm");
1978
2037
 
1979
2038
  // src/components/payload/builder/transfer/Flexbox.tsx
1980
- import React44 from "react";
2039
+ import React45 from "react";
1981
2040
 
1982
2041
  // src/components/payload/builder/transfer/Form.tsx
1983
2042
  import { Button as Button6, FormControl as FormControl7 } from "@mui/material";
1984
2043
  import { TransferSchema } from "@xyo-network/xl1-model";
1985
- import React43, { useMemo as useMemo21, useState as useState18 } from "react";
2044
+ import React44, { useMemo as useMemo22, useState as useState18 } from "react";
1986
2045
 
1987
2046
  // src/components/payload/builder/transfer/builder/SingleFlexbox.tsx
1988
2047
  import { RemoveCircle } from "@mui/icons-material";
@@ -1990,11 +2049,11 @@ import { FormControl as FormControl6, Icon as Icon3, IconButton as IconButton5 }
1990
2049
  import { toHex as toHex3 } from "@xylabs/hex";
1991
2050
  import { FlexRow as FlexRow8 } from "@xylabs/react-flexbox";
1992
2051
  import { BigIntInput } from "@xyo-network/react-shared";
1993
- import React42, { useEffect as useEffect4, useMemo as useMemo20, useState as useState17 } from "react";
2052
+ import React43, { useEffect as useEffect4, useMemo as useMemo21, useState as useState17 } from "react";
1994
2053
  var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated, onRemoveTransfer, singleTransfer, ...props }) => {
1995
2054
  const [toAddress, setToAddress] = useState17();
1996
2055
  const [amount, setAmount] = useState17();
1997
- const transferAmount = useMemo20(() => {
2056
+ const transferAmount = useMemo21(() => {
1998
2057
  if (toAddress && amount) {
1999
2058
  return {
2000
2059
  ...singleTransfer,
@@ -2011,36 +2070,36 @@ var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated,
2011
2070
  }, [
2012
2071
  transferAmount
2013
2072
  ]);
2014
- return /* @__PURE__ */ React42.createElement(FlexRow8, {
2073
+ return /* @__PURE__ */ React43.createElement(FlexRow8, {
2015
2074
  alignItems: "start",
2016
2075
  gap: 1,
2017
2076
  ...props
2018
- }, /* @__PURE__ */ React42.createElement(FormControl6, {
2077
+ }, /* @__PURE__ */ React43.createElement(FormControl6, {
2019
2078
  fullWidth: true
2020
- }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
2079
+ }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
2021
2080
  label: "To",
2022
2081
  name: "to",
2023
2082
  onAddressChanged: setToAddress,
2024
2083
  required: true,
2025
2084
  size: "small"
2026
- })), /* @__PURE__ */ React42.createElement(FormControl6, {
2085
+ })), /* @__PURE__ */ React43.createElement(FormControl6, {
2027
2086
  fullWidth: true
2028
- }, /* @__PURE__ */ React42.createElement(BigIntInput.TextField, {
2087
+ }, /* @__PURE__ */ React43.createElement(BigIntInput.TextField, {
2029
2088
  label: "Amount",
2030
2089
  name: "amount",
2031
2090
  onChangeFixedPoint: setAmount,
2032
2091
  required: true,
2033
2092
  size: "small"
2034
- })), /* @__PURE__ */ React42.createElement(IconButton5, {
2093
+ })), /* @__PURE__ */ React43.createElement(IconButton5, {
2035
2094
  onClick: /* @__PURE__ */ __name(() => onRemoveTransfer?.(singleTransfer.transferId), "onClick")
2036
- }, /* @__PURE__ */ React42.createElement(Icon3, null, /* @__PURE__ */ React42.createElement(RemoveCircle, null))));
2095
+ }, /* @__PURE__ */ React43.createElement(Icon3, null, /* @__PURE__ */ React43.createElement(RemoveCircle, null))));
2037
2096
  }, "SingleTransferBuilderFlexbox");
2038
2097
 
2039
2098
  // src/components/payload/builder/transfer/Form.tsx
2040
2099
  var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2041
2100
  const [fromAddress, setFromAddress] = useState18();
2042
2101
  const [transfers, setTransfers] = useState18([]);
2043
- const transferPayload = useMemo21(() => {
2102
+ const transferPayload = useMemo22(() => {
2044
2103
  if (fromAddress && transfers.length > 0) {
2045
2104
  const transfersRecord = {};
2046
2105
  for (const transfer of transfers) {
@@ -2082,19 +2141,19 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2082
2141
  return transfer;
2083
2142
  }));
2084
2143
  }, "onTransferUpdated");
2085
- return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(FormControl7, {
2144
+ return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(FormControl7, {
2086
2145
  fullWidth: true
2087
- }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
2146
+ }, /* @__PURE__ */ React44.createElement(XyoAddressTextField, {
2088
2147
  label: "From",
2089
2148
  name: "from",
2090
2149
  onAddressChanged: setFromAddress,
2091
2150
  required: true,
2092
2151
  size: "small"
2093
- })), /* @__PURE__ */ React43.createElement(Button6, {
2152
+ })), /* @__PURE__ */ React44.createElement(Button6, {
2094
2153
  onClick: onTransferAdded,
2095
2154
  size: "small",
2096
2155
  variant: "contained"
2097
- }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React43.createElement(SingleTransferBuilderFlexbox, {
2156
+ }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React44.createElement(SingleTransferBuilderFlexbox, {
2098
2157
  key: transfer.transferId,
2099
2158
  onTransferUpdated,
2100
2159
  onRemoveTransfer: onTransferRemoved,
@@ -2102,7 +2161,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2102
2161
  sx: {
2103
2162
  width: "100%"
2104
2163
  }
2105
- })), /* @__PURE__ */ React43.createElement(Button6, {
2164
+ })), /* @__PURE__ */ React44.createElement(Button6, {
2106
2165
  disabled: !transferPayload,
2107
2166
  variant: "contained",
2108
2167
  onClick: onBuildLocal
@@ -2110,7 +2169,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
2110
2169
  }, "TransferBuilderForm");
2111
2170
 
2112
2171
  // src/components/payload/builder/transfer/Flexbox.tsx
2113
- var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React44.createElement(PayloadBuilderFlexbox, {
2172
+ var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React45.createElement(PayloadBuilderFlexbox, {
2114
2173
  gap: 4,
2115
2174
  alignItems: "start",
2116
2175
  BuilderComponent: TransferBuilderForm,
@@ -2137,7 +2196,7 @@ import { usePromise as usePromise7 } from "@xylabs/react-promise";
2137
2196
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
2138
2197
  import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
2139
2198
  import { flattenHydratedBlocks } from "@xyo-network/chain-protocol";
2140
- import React45, { useEffect as useEffect5 } from "react";
2199
+ import React46, { useEffect as useEffect5 } from "react";
2141
2200
  var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2142
2201
  const [randomBlockChain] = usePromise7(async () => await buildRandomBlockChain(), []);
2143
2202
  const [blockChainRenderProps, blockChainRenderPropsError] = usePromise7(async () => {
@@ -2177,7 +2236,7 @@ var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, context) => {
2177
2236
  }
2178
2237
  }
2179
2238
  };
2180
- return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React45.createElement(Story, props) : /* @__PURE__ */ React45.createElement(CircularProgress, null);
2239
+ return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress, null);
2181
2240
  }, "ChainArchivistDecorator");
2182
2241
 
2183
2242
  // src/stories/ChainArchivistDelayedInsertDecorator.tsx
@@ -2187,7 +2246,7 @@ import { usePromise as usePromise8 } from "@xylabs/react-promise";
2187
2246
  import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
2188
2247
  import { ArchivistConfigSchema as ArchivistConfigSchema2 } from "@xyo-network/archivist-model";
2189
2248
  import { flattenHydratedBlock } from "@xyo-network/chain-protocol";
2190
- import React46, { useEffect as useEffect6, useState as useState19 } from "react";
2249
+ import React47, { useEffect as useEffect6, useState as useState19 } from "react";
2191
2250
  var chainArchivistRef;
2192
2251
  var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, context) => {
2193
2252
  const [firstBlock, setFirstBlock] = useState19();
@@ -2245,7 +2304,7 @@ var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, contex
2245
2304
  }
2246
2305
  }
2247
2306
  };
2248
- return firstBlock ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress2, null);
2307
+ return firstBlock ? /* @__PURE__ */ React47.createElement(Story, props) : /* @__PURE__ */ React47.createElement(CircularProgress2, null);
2249
2308
  }, "ChainArchivistDelayedInsertDecorator");
2250
2309
 
2251
2310
  // src/stories/ChainInfoContextDecorator.tsx
@@ -2254,7 +2313,7 @@ import { usePromise as usePromise9 } from "@xylabs/react-promise";
2254
2313
  import { XyoChainBlockNumberIterator as XyoChainBlockNumberIterator3 } from "@xyo-network/chain-services";
2255
2314
  import { findFirstMatching } from "@xyo-network/chain-utils";
2256
2315
  import { isBlockBoundWitness as isBlockBoundWitness3 } from "@xyo-network/xl1-model";
2257
- import React47 from "react";
2316
+ import React48 from "react";
2258
2317
  var archivistConfig = {
2259
2318
  url: "http://localhost:8080",
2260
2319
  chainArchivistModuleId: "XYOPublic:XYOChain:Chain"
@@ -2280,11 +2339,11 @@ var ChainInfoContextDecorator = /* @__PURE__ */ __name((Story, context) => {
2280
2339
  chainArchivist,
2281
2340
  chainInformation
2282
2341
  ]);
2283
- return /* @__PURE__ */ React47.createElement(ChainInfoProvider, {
2342
+ return /* @__PURE__ */ React48.createElement(ChainInfoProvider, {
2284
2343
  chainArchivist,
2285
2344
  chainInformation,
2286
2345
  chainIterator
2287
- }, /* @__PURE__ */ React47.createElement(Story, context));
2346
+ }, /* @__PURE__ */ React48.createElement(Story, context));
2288
2347
  }, "ChainInfoContextDecorator");
2289
2348
  export {
2290
2349
  BlockChainPagination,