@xyo-network/react-chain-blockchain 1.20.13 → 1.20.15

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 (27) hide show
  1. package/dist/browser/components/account/table/BalanceHistoryTableRow.d.ts.map +1 -1
  2. package/dist/browser/components/account/table/RawAmountTableCell.d.ts +2 -0
  3. package/dist/browser/components/account/table/RawAmountTableCell.d.ts.map +1 -1
  4. package/dist/browser/components/account/table/cell/AddressTableCell.d.ts +2 -0
  5. package/dist/browser/components/account/table/cell/AddressTableCell.d.ts.map +1 -1
  6. package/dist/browser/components/account/table/cell/BlockNumber.d.ts +14 -0
  7. package/dist/browser/components/account/table/cell/BlockNumber.d.ts.map +1 -0
  8. package/dist/browser/components/account/table/cell/HashTableCell.d.ts +3 -0
  9. package/dist/browser/components/account/table/cell/HashTableCell.d.ts.map +1 -1
  10. package/dist/browser/components/account/table/cell/index.d.ts +1 -0
  11. package/dist/browser/components/account/table/cell/index.d.ts.map +1 -1
  12. package/dist/browser/components/account/table/types/index.d.ts +2 -2
  13. package/dist/browser/components/account/table/types/index.d.ts.map +1 -1
  14. package/dist/browser/components/block/table/cell/BlockNumber.d.ts +2 -0
  15. package/dist/browser/components/block/table/cell/BlockNumber.d.ts.map +1 -1
  16. package/dist/browser/index.mjs +225 -184
  17. package/dist/browser/index.mjs.map +1 -1
  18. package/package.json +8 -8
  19. package/src/components/account/table/BalanceHistoryTableRow.stories.tsx +2 -0
  20. package/src/components/account/table/BalanceHistoryTableRow.tsx +14 -12
  21. package/src/components/account/table/RawAmountTableCell.tsx +5 -5
  22. package/src/components/account/table/cell/AddressTableCell.tsx +6 -5
  23. package/src/components/account/table/cell/BlockNumber.tsx +39 -0
  24. package/src/components/account/table/cell/HashTableCell.tsx +6 -5
  25. package/src/components/account/table/cell/index.ts +1 -0
  26. package/src/components/account/table/types/index.ts +3 -2
  27. package/src/components/block/table/cell/BlockNumber.tsx +9 -10
@@ -2,13 +2,13 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
4
  // src/components/account/BalanceHistoryFlexbox.tsx
5
- import { Typography as Typography7 } from "@mui/material";
5
+ import { Typography as Typography8 } from "@mui/material";
6
6
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
7
7
  import { isDefined as isDefined8 } from "@xylabs/sdk-js";
8
8
  import { useAccountBalanceHistory } from "@xyo-network/react-chain-provider";
9
9
  import { ErrorRender as ErrorRender3 } from "@xyo-network/react-error";
10
10
  import { AttoXL1 } from "@xyo-network/xl1-sdk";
11
- import React30 from "react";
11
+ import React31 from "react";
12
12
 
13
13
  // src/components/account/helpers/formatBalanceMagnitude.ts
14
14
  import { XL1Amount } from "@xyo-network/xl1-sdk";
@@ -29,16 +29,16 @@ var formatBalance = /* @__PURE__ */ __name((balance) => {
29
29
  }, "formatBalance");
30
30
 
31
31
  // src/components/account/table/BalanceHistoryTableEx.tsx
32
- import { TableBody as TableBody2, TableCell as TableCell14, TableHead as TableHead2, TableRow as TableRow3 } from "@mui/material";
32
+ import { TableBody as TableBody2, TableCell as TableCell15, TableHead as TableHead2, TableRow as TableRow3 } from "@mui/material";
33
33
  import { isDefined as isDefined7 } from "@xylabs/sdk-js";
34
34
  import { TableEx as TableEx2 } from "@xyo-network/react-table";
35
- import React29 from "react";
35
+ import React30 from "react";
36
36
 
37
37
  // src/components/account/table/BalanceHistoryTableRow.tsx
38
- import { TableCell as TableCell13 } from "@mui/material";
38
+ import { TableCell as TableCell14 } from "@mui/material";
39
39
  import { isDefined as isDefined6 } from "@xylabs/sdk-js";
40
40
  import { RawInfoIconButton } from "@xyo-network/react-payload-raw-info";
41
- import React28, { useMemo as useMemo7 } from "react";
41
+ import React29, { useMemo as useMemo7 } from "react";
42
42
 
43
43
  // src/components/block/BlockHeadingFlexbox.tsx
44
44
  import { FlexCol as FlexCol2, FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
@@ -651,19 +651,43 @@ var BlockHeadingFlexbox = /* @__PURE__ */ __name(({ block, defaultExpanded, tran
651
651
 
652
652
  // src/components/block/table/cell/BlockNumber.tsx
653
653
  import { Link, TableCell, Tooltip, Typography as Typography3 } from "@mui/material";
654
- import { useEvent as useEvent2 } from "@xyo-network/react-event";
655
654
  import React13 from "react";
656
- var BlockNumberTableCell = /* @__PURE__ */ __name(({ block, linked, ...props }) => {
655
+
656
+ // src/components/block/table/cell/hooks/useLinkedBlockItem.tsx
657
+ import { useEvent as useEvent2 } from "@xyo-network/react-event";
658
+ var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
659
+ const [ref, dispatch] = useEvent2();
660
+ const handleClick = /* @__PURE__ */ __name((event) => {
661
+ event.preventDefault();
662
+ event.stopPropagation();
663
+ if (noun === void 0) {
664
+ console.warn("useLinkedBlockItem: noun is required");
665
+ return;
666
+ }
667
+ const selection = globalThis.getSelection();
668
+ const isTextSelected = selection && selection.toString().length > 0;
669
+ if (!isTextSelected) {
670
+ dispatch(noun, "click", data, event.nativeEvent);
671
+ }
672
+ }, "handleClick");
673
+ return [
674
+ ref,
675
+ handleClick
676
+ ];
677
+ }, "useLinkedBlockItem");
678
+
679
+ // src/components/block/table/cell/BlockNumber.tsx
680
+ var BlockNumberTableCell = /* @__PURE__ */ __name(({ block, eventNoun = "block-number", linked, ...props }) => {
657
681
  const blockNumber = block?.[0].block;
658
682
  return /* @__PURE__ */ React13.createElement(BlockNumberTableCellInner, {
659
683
  blockNumber,
684
+ eventNoun,
660
685
  linked,
661
686
  ...props
662
687
  });
663
688
  }, "BlockNumberTableCell");
664
- var BlockNumberTableCellInner = /* @__PURE__ */ __name(({ blockNumber, linked, ...props }) => {
665
- const [ref, dispatch] = useEvent2();
666
- const handleClick = /* @__PURE__ */ __name((event) => dispatch("block-number", "click", blockNumber?.toString() ?? "", event.nativeEvent), "handleClick");
689
+ var BlockNumberTableCellInner = /* @__PURE__ */ __name(({ blockNumber, eventNoun = "block-number", linked, ...props }) => {
690
+ const [ref, handleClick] = useLinkedBlockItem(eventNoun, blockNumber?.toLocaleString());
667
691
  return /* @__PURE__ */ React13.createElement(TableCell, {
668
692
  ref,
669
693
  ...props
@@ -784,29 +808,6 @@ var FeatureNotAvailable = /* @__PURE__ */ __name(({ featureName = "Feature", ...
784
808
  onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick")
785
809
  }, "Close"))), "FeatureNotAvailable");
786
810
 
787
- // src/components/block/table/cell/hooks/useLinkedBlockItem.tsx
788
- import { useEvent as useEvent3 } from "@xyo-network/react-event";
789
- var useLinkedBlockItem = /* @__PURE__ */ __name((noun, data) => {
790
- const [ref, dispatch] = useEvent3();
791
- const handleClick = /* @__PURE__ */ __name((event) => {
792
- event.preventDefault();
793
- event.stopPropagation();
794
- if (noun === void 0) {
795
- console.warn("useLinkedBlockItem: noun is required");
796
- return;
797
- }
798
- const selection = globalThis.getSelection();
799
- const isTextSelected = selection && selection.toString().length > 0;
800
- if (!isTextSelected) {
801
- dispatch(noun, "click", data, event.nativeEvent);
802
- }
803
- }, "handleClick");
804
- return [
805
- ref,
806
- handleClick
807
- ];
808
- }, "useLinkedBlockItem");
809
-
810
811
  // src/components/block/table/cell/Hash.tsx
811
812
  var BlockHashTableCell = /* @__PURE__ */ __name(({ block, notAvailableDialog, linked, ...props }) => {
812
813
  const hash = usePayloadRootHash(block?.[0]);
@@ -1115,11 +1116,34 @@ var BlockChainTableRow = /* @__PURE__ */ __name(({ block, deepValidation, defaul
1115
1116
 
1116
1117
  // src/components/account/table/cell/AddressTableCell.tsx
1117
1118
  import { TableCell as TableCell10, Tooltip as Tooltip8 } from "@mui/material";
1118
- import { useEvent as useEvent4 } from "@xyo-network/react-event";
1119
1119
  import React25 from "react";
1120
- var AddressTableCell = /* @__PURE__ */ __name(({ address, linked, toolTipTitle, sx, ...props }) => {
1121
- const [ref, dispatch] = useEvent4();
1122
- const handleClick = /* @__PURE__ */ __name((event) => dispatch("address", "click", address, event.nativeEvent), "handleClick");
1120
+
1121
+ // src/components/account/table/hooks/useLinkedBalanceHistoryItem.tsx
1122
+ import { useEvent as useEvent3 } from "@xyo-network/react-event";
1123
+ var useLinkedBalanceHistoryItem = /* @__PURE__ */ __name(() => {
1124
+ const [ref, dispatch] = useEvent3();
1125
+ const handleClick = /* @__PURE__ */ __name((event, noun, data) => {
1126
+ event.preventDefault();
1127
+ event.stopPropagation();
1128
+ if (noun === void 0) {
1129
+ console.warn("useLinkedBalanceHistoryItem: noun is required");
1130
+ return;
1131
+ }
1132
+ const selection = globalThis.getSelection();
1133
+ const isTextSelected = selection && selection.toString().length > 0;
1134
+ if (!isTextSelected) {
1135
+ dispatch(noun, "click", data, event.nativeEvent);
1136
+ }
1137
+ }, "handleClick");
1138
+ return [
1139
+ ref,
1140
+ handleClick
1141
+ ];
1142
+ }, "useLinkedBalanceHistoryItem");
1143
+
1144
+ // src/components/account/table/cell/AddressTableCell.tsx
1145
+ var AddressTableCell = /* @__PURE__ */ __name(({ address, eventNoun, linked, toolTipTitle, sx, ...props }) => {
1146
+ const [ref, handleClick] = useLinkedBalanceHistoryItem();
1123
1147
  return /* @__PURE__ */ React25.createElement(TableCell10, {
1124
1148
  ref,
1125
1149
  sx: {
@@ -1131,67 +1155,70 @@ var AddressTableCell = /* @__PURE__ */ __name(({ address, linked, toolTipTitle,
1131
1155
  title: toolTipTitle
1132
1156
  }, /* @__PURE__ */ React25.createElement(BlockAddressChip, {
1133
1157
  address,
1134
- onClick: handleClick
1158
+ onClick: linked ? (e) => handleClick(e, eventNoun, address) : void 0
1135
1159
  })));
1136
1160
  }, "AddressTableCell");
1137
1161
 
1138
- // src/components/account/table/cell/HashTableCell.tsx
1162
+ // src/components/account/table/cell/BlockNumber.tsx
1139
1163
  import { Link as Link5, TableCell as TableCell11, Tooltip as Tooltip9, Typography as Typography6 } from "@mui/material";
1140
- import { ellipsize as ellipsize2, isDefined as isDefined4 } from "@xylabs/sdk-js";
1141
- import { useEvent as useEvent5 } from "@xyo-network/react-event";
1142
1164
  import React26 from "react";
1143
- var HashTableCell = /* @__PURE__ */ __name(({ hash, linked, toolTipTitle, sx, ...props }) => {
1144
- const [ref, dispatch] = useEvent5();
1145
- const handleClick = /* @__PURE__ */ __name((event) => dispatch("tx-hash", "click", hash, event.nativeEvent), "handleClick");
1146
- const shortenedHash = isDefined4(hash) ? ellipsize2(hash, 6) : "N/A";
1165
+ var BalanceHistoryBlockNumberTableCell = /* @__PURE__ */ __name(({ block, eventNoun = "block-number", linked, ...props }) => {
1166
+ const blockNumber = block?.[0].block;
1167
+ return /* @__PURE__ */ React26.createElement(BalanceHistoryBlockNumberTableCellInner, {
1168
+ blockNumber,
1169
+ eventNoun,
1170
+ linked,
1171
+ ...props
1172
+ });
1173
+ }, "BalanceHistoryBlockNumberTableCell");
1174
+ var BalanceHistoryBlockNumberTableCellInner = /* @__PURE__ */ __name(({ blockNumber, eventNoun = "block-number", linked, ...props }) => {
1175
+ const [ref, handleClick] = useLinkedBalanceHistoryItem();
1147
1176
  return /* @__PURE__ */ React26.createElement(TableCell11, {
1148
1177
  ref,
1149
1178
  ...props
1150
- }, hash ? /* @__PURE__ */ React26.createElement(Tooltip9, {
1151
- title: toolTipTitle
1179
+ }, /* @__PURE__ */ React26.createElement(Tooltip9, {
1180
+ title: `Block Number: ${blockNumber}`
1152
1181
  }, /* @__PURE__ */ React26.createElement(Typography6, {
1153
1182
  component: "span",
1154
1183
  variant: "body1"
1155
1184
  }, linked ? /* @__PURE__ */ React26.createElement(Link5, {
1156
- onClick: handleClick,
1185
+ onClick: /* @__PURE__ */ __name((e) => handleClick(e, eventNoun, blockNumber?.toString() ?? ""), "onClick"),
1157
1186
  sx: {
1158
1187
  cursor: "pointer"
1159
1188
  }
1160
- }, shortenedHash) : shortenedHash)) : "N/A");
1161
- }, "HashTableCell");
1189
+ }, blockNumber) : blockNumber)));
1190
+ }, "BalanceHistoryBlockNumberTableCellInner");
1162
1191
 
1163
- // src/components/account/table/hooks/useLinkedBalanceHistoryItem.tsx
1164
- import { useEvent as useEvent6 } from "@xyo-network/react-event";
1165
- var useLinkedBalanceHistoryItem = /* @__PURE__ */ __name(() => {
1166
- const [ref, dispatch] = useEvent6();
1167
- const handleClick = /* @__PURE__ */ __name((event, noun, data) => {
1168
- event.preventDefault();
1169
- event.stopPropagation();
1170
- if (noun === void 0) {
1171
- console.warn("useLinkedBalanceHistoryItem: noun is required");
1172
- return;
1173
- }
1174
- const selection = globalThis.getSelection();
1175
- const isTextSelected = selection && selection.toString().length > 0;
1176
- if (!isTextSelected) {
1177
- dispatch(noun, "click", data, event.nativeEvent);
1178
- }
1179
- }, "handleClick");
1180
- return [
1192
+ // src/components/account/table/cell/HashTableCell.tsx
1193
+ import { Link as Link6, TableCell as TableCell12, Tooltip as Tooltip10, Typography as Typography7 } from "@mui/material";
1194
+ import { ellipsize as ellipsize2, isDefined as isDefined4 } from "@xylabs/sdk-js";
1195
+ import React27 from "react";
1196
+ var HashTableCell = /* @__PURE__ */ __name(({ eventData, eventNoun = "tx-hash", hash, linked, toolTipTitle, sx, ...props }) => {
1197
+ const [ref, handleClick] = useLinkedBalanceHistoryItem();
1198
+ const shortenedHash = isDefined4(hash) ? ellipsize2(hash, 6) : "N/A";
1199
+ return /* @__PURE__ */ React27.createElement(TableCell12, {
1181
1200
  ref,
1182
- handleClick
1183
- ];
1184
- }, "useLinkedBalanceHistoryItem");
1201
+ ...props
1202
+ }, hash ? /* @__PURE__ */ React27.createElement(Tooltip10, {
1203
+ title: toolTipTitle
1204
+ }, /* @__PURE__ */ React27.createElement(Typography7, {
1205
+ component: "span",
1206
+ variant: "body1"
1207
+ }, linked ? /* @__PURE__ */ React27.createElement(Link6, {
1208
+ onClick: /* @__PURE__ */ __name((e) => handleClick(e, eventNoun, eventData), "onClick"),
1209
+ sx: {
1210
+ cursor: "pointer"
1211
+ }
1212
+ }, shortenedHash) : shortenedHash)) : "N/A");
1213
+ }, "HashTableCell");
1185
1214
 
1186
1215
  // src/components/account/table/RawAmountTableCell.tsx
1187
- import { Link as Link6, TableCell as TableCell12, Tooltip as Tooltip10 } from "@mui/material";
1216
+ import { Link as Link7, TableCell as TableCell13, Tooltip as Tooltip11 } from "@mui/material";
1188
1217
  import { isDefined as isDefined5, toHex as toHex2 } from "@xylabs/sdk-js";
1189
- import { useEvent as useEvent7 } from "@xyo-network/react-event";
1190
1218
  import { XL1Amount as XL1Amount2 } from "@xyo-network/xl1-sdk";
1191
- import React27 from "react";
1192
- var RawAmountTableCell = /* @__PURE__ */ __name(({ amount, linked, sx, type, ...props }) => {
1193
- const [ref, dispatch] = useEvent7();
1194
- const handleClick = /* @__PURE__ */ __name((event) => dispatch("amount", "click", isDefined5(amount) ? toHex2(amount) : "", event.nativeEvent), "handleClick");
1219
+ import React28 from "react";
1220
+ var RawAmountTableCell = /* @__PURE__ */ __name(({ amount, eventNoun = "amount", linked, sx, type, ...props }) => {
1221
+ const [ref, handleClick] = useLinkedBalanceHistoryItem();
1195
1222
  const formatAmount = /* @__PURE__ */ __name((amount2) => {
1196
1223
  if (!isDefined5(amount2)) {
1197
1224
  return "N/A";
@@ -1205,58 +1232,69 @@ var RawAmountTableCell = /* @__PURE__ */ __name(({ amount, linked, sx, type, ...
1205
1232
  locale: navigator.language
1206
1233
  });
1207
1234
  }, "formatAmount");
1208
- return /* @__PURE__ */ React27.createElement(TableCell12, {
1235
+ return /* @__PURE__ */ React28.createElement(TableCell13, {
1209
1236
  ref,
1210
1237
  ...props
1211
- }, /* @__PURE__ */ React27.createElement(Tooltip10, {
1238
+ }, /* @__PURE__ */ React28.createElement(Tooltip11, {
1212
1239
  title: `Raw Amount: ${amount}`
1213
- }, linked ? /* @__PURE__ */ React27.createElement(Link6, {
1214
- onClick: handleClick,
1240
+ }, linked ? /* @__PURE__ */ React28.createElement(Link7, {
1241
+ onClick: /* @__PURE__ */ __name((e) => handleClick(e, eventNoun, isDefined5(amount) ? toHex2(amount) : ""), "onClick"),
1215
1242
  sx: {
1216
1243
  cursor: "pointer"
1217
1244
  }
1218
- }, type === "send" ? "-" : "", formatAmount(amount)) : /* @__PURE__ */ React27.createElement("span", null, type === "send" ? "-" : "", formatAmount(amount))));
1245
+ }, type === "send" ? "-" : "", formatAmount(amount)) : /* @__PURE__ */ React28.createElement("span", null, type === "send" ? "-" : "", formatAmount(amount))));
1219
1246
  }, "RawAmountTableCell");
1220
1247
 
1221
1248
  // src/components/account/table/BalanceHistoryTableRow.tsx
1222
1249
  var BalanceHistoryTableRow = /* @__PURE__ */ __name(({ linked, row, ...props }) => {
1223
- const { amount, blockNumber, debug, from, key, timestamp, to, type, txHash } = row ?? {};
1250
+ const { amount, blockHash, blockNumber, debug, from, key, timestamp, to, type, txHash, transferHash } = row ?? {};
1224
1251
  const linkedTableCallProps = useMemo7(() => ({
1225
1252
  linked
1226
1253
  }), [
1227
1254
  linked
1228
1255
  ]);
1229
1256
  const [ref, handleClick] = useLinkedBalanceHistoryItem();
1230
- const noun = isDefined6(txHash) ? "tx-hash" : "blockNumber";
1231
- const data = isDefined6(txHash) ? txHash : blockNumber;
1232
- return /* @__PURE__ */ React28.createElement(StyledLinkableTableRow, {
1257
+ const noun = isDefined6(txHash) ? "tx-hash|transfer-hash" : "block-hash|transfer-hash";
1258
+ const data = isDefined6(txHash) ? `${txHash}|${transferHash}` : `${blockHash}|${transferHash}`;
1259
+ return /* @__PURE__ */ React29.createElement(StyledLinkableTableRow, {
1233
1260
  linked,
1234
1261
  key,
1235
1262
  onClick: linked ? (e) => handleClick(e, noun, data) : void 0,
1236
1263
  ref,
1237
1264
  ...props
1238
- }, /* @__PURE__ */ React28.createElement(HashTableCell, {
1265
+ }, /* @__PURE__ */ React29.createElement(HashTableCell, {
1239
1266
  hash: txHash,
1240
1267
  toolTipTitle: `Transaction Hash: ${txHash}`,
1268
+ eventNoun: "tx-hash",
1241
1269
  ...linkedTableCallProps
1242
- }), /* @__PURE__ */ React28.createElement(BlockNumberTableCellInner, {
1270
+ }), /* @__PURE__ */ React29.createElement(BalanceHistoryBlockNumberTableCellInner, {
1243
1271
  blockNumber,
1272
+ eventNoun: "block-number",
1244
1273
  ...linkedTableCallProps
1245
- }), /* @__PURE__ */ React28.createElement(BlockEpochTableCellInner, {
1274
+ }), /* @__PURE__ */ React29.createElement(BlockEpochTableCellInner, {
1246
1275
  epoch: timestamp,
1247
1276
  ...linkedTableCallProps
1248
- }), /* @__PURE__ */ React28.createElement(AddressTableCell, {
1277
+ }), /* @__PURE__ */ React29.createElement(AddressTableCell, {
1249
1278
  address: from,
1250
1279
  toolTipTitle: `From Address: ${from}`,
1280
+ eventNoun: "from-address",
1251
1281
  ...linkedTableCallProps
1252
- }), /* @__PURE__ */ React28.createElement(AddressTableCell, {
1282
+ }), /* @__PURE__ */ React29.createElement(AddressTableCell, {
1253
1283
  address: to,
1254
1284
  toolTipTitle: `To Address: ${to}`,
1285
+ eventNoun: "to-address",
1255
1286
  ...linkedTableCallProps
1256
- }), /* @__PURE__ */ React28.createElement(RawAmountTableCell, {
1287
+ }), /* @__PURE__ */ React29.createElement(RawAmountTableCell, {
1257
1288
  amount,
1258
- type
1259
- }), /* @__PURE__ */ React28.createElement(TableCell13, null, /* @__PURE__ */ React28.createElement(RawInfoIconButton, {
1289
+ type,
1290
+ eventNoun: "amount"
1291
+ }), /* @__PURE__ */ React29.createElement(HashTableCell, {
1292
+ hash: transferHash,
1293
+ toolTipTitle: `Transfer Hash: ${transferHash}`,
1294
+ eventNoun: noun,
1295
+ eventData: data,
1296
+ ...linkedTableCallProps
1297
+ }), /* @__PURE__ */ React29.createElement(TableCell14, null, /* @__PURE__ */ React29.createElement(RawInfoIconButton, {
1260
1298
  rawValue: debug
1261
1299
  })));
1262
1300
  }, "BalanceHistoryTableRow");
@@ -1269,14 +1307,15 @@ var TableHeadingLabels = [
1269
1307
  "From",
1270
1308
  "To",
1271
1309
  "Amount",
1310
+ "TransferHash",
1272
1311
  "Debug"
1273
1312
  ];
1274
1313
 
1275
1314
  // src/components/account/table/BalanceHistoryTableEx.tsx
1276
1315
  var AccountBalanceHistoryTableEx = /* @__PURE__ */ __name(({ history, linked, ...props }) => {
1277
- return isDefined7(history) ? /* @__PURE__ */ React29.createElement(TableEx2, props, /* @__PURE__ */ React29.createElement(TableHead2, null, /* @__PURE__ */ React29.createElement(TableRow3, null, TableHeadingLabels.map((heading) => /* @__PURE__ */ React29.createElement(TableCell14, {
1316
+ return isDefined7(history) ? /* @__PURE__ */ React30.createElement(TableEx2, props, /* @__PURE__ */ React30.createElement(TableHead2, null, /* @__PURE__ */ React30.createElement(TableRow3, null, TableHeadingLabels.map((heading) => /* @__PURE__ */ React30.createElement(TableCell15, {
1278
1317
  key: heading
1279
- }, heading)))), /* @__PURE__ */ React29.createElement(TableBody2, null, history?.map((row) => /* @__PURE__ */ React29.createElement(BalanceHistoryTableRow, {
1318
+ }, heading)))), /* @__PURE__ */ React30.createElement(TableBody2, null, history?.map((row) => /* @__PURE__ */ React30.createElement(BalanceHistoryTableRow, {
1280
1319
  key: row.key,
1281
1320
  linked,
1282
1321
  row
@@ -1293,16 +1332,16 @@ var AccountBalanceHistoryFlexBox = /* @__PURE__ */ __name(({ address, refresh, v
1293
1332
  ],
1294
1333
  history: void 0
1295
1334
  };
1296
- return isDefined8(history) && isDefined8(address) ? /* @__PURE__ */ React30.createElement(FlexCol3, props, /* @__PURE__ */ React30.createElement(ErrorRender3, {
1335
+ return isDefined8(history) && isDefined8(address) ? /* @__PURE__ */ React31.createElement(FlexCol3, props, /* @__PURE__ */ React31.createElement(ErrorRender3, {
1297
1336
  error,
1298
1337
  scope: "AccountBalanceHistoryTable"
1299
- }), /* @__PURE__ */ React30.createElement(Typography7, {
1338
+ }), /* @__PURE__ */ React31.createElement(Typography8, {
1300
1339
  variant: "h6",
1301
1340
  gutterBottom: true
1302
- }, formatBalanceMagnitude(balance)), truncated ? /* @__PURE__ */ React30.createElement(Typography7, {
1341
+ }, formatBalanceMagnitude(balance)), truncated ? /* @__PURE__ */ React31.createElement(Typography8, {
1303
1342
  variant: "caption",
1304
1343
  gutterBottom: true
1305
- }, "Ranged Balance from", " ", history.at(-1).blockNumber, " ", "-", " ", history[0].blockNumber) : null, /* @__PURE__ */ React30.createElement(AccountBalanceHistoryTableEx, {
1344
+ }, "Ranged Balance from", " ", history.at(-1).blockNumber, " ", "-", " ", history[0].blockNumber) : null, /* @__PURE__ */ React31.createElement(AccountBalanceHistoryTableEx, {
1306
1345
  history
1307
1346
  })) : null;
1308
1347
  }, "AccountBalanceHistoryFlexBox");
@@ -1349,31 +1388,31 @@ var usePagedAccountBalanceHistory = /* @__PURE__ */ __name((address, viewer, max
1349
1388
 
1350
1389
  // src/components/chain/controls/PollingControlsFlexbox.tsx
1351
1390
  import { Autorenew, Pause } from "@mui/icons-material";
1352
- import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip11 } from "@mui/material";
1391
+ import { Alert as Alert3, AlertTitle as AlertTitle2, Grow, Icon as Icon2, IconButton as IconButton4, Tooltip as Tooltip12 } from "@mui/material";
1353
1392
  import { FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
1354
- import React35, { memo } from "react";
1393
+ import React36, { memo } from "react";
1355
1394
 
1356
1395
  // src/components/chain/stats/Dialog.tsx
1357
1396
  import { QueryStats } from "@mui/icons-material";
1358
1397
  import { Dialog as Dialog3, DialogContent as DialogContent3, DialogTitle as DialogTitle3, IconButton as IconButton3 } from "@mui/material";
1359
- import React33, { useState as useState10 } from "react";
1398
+ import React34, { useState as useState10 } from "react";
1360
1399
 
1361
1400
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
1362
- import { Typography as Typography8 } from "@mui/material";
1401
+ import { Typography as Typography9 } from "@mui/material";
1363
1402
  import { ErrorRender as ErrorRender4 } from "@xylabs/react-error";
1364
1403
  import { FlexCol as FlexCol4 } from "@xylabs/react-flexbox";
1365
1404
  import { isChainSummaryProducers } from "@xyo-network/chain-analyze";
1366
- import React32, { useMemo as useMemo8 } from "react";
1405
+ import React33, { useMemo as useMemo8 } from "react";
1367
1406
 
1368
1407
  // src/components/chain/stats/producer/Table.tsx
1369
- import { Table, TableBody as TableBody3, TableCell as TableCell15, TableHead as TableHead3, TableRow as TableRow4, useTheme } from "@mui/material";
1408
+ import { Table, TableBody as TableBody3, TableCell as TableCell16, TableHead as TableHead3, TableRow as TableRow4, useTheme } from "@mui/material";
1370
1409
  import { BlockiesAvatar as BlockiesAvatar2 } from "@xyo-network/react-chain-blockies";
1371
- import React31 from "react";
1410
+ import React32 from "react";
1372
1411
  var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) => {
1373
1412
  const theme = useTheme();
1374
- return /* @__PURE__ */ React31.createElement(Table, props, /* @__PURE__ */ React31.createElement(TableHead3, null, /* @__PURE__ */ React31.createElement(TableRow4, null, /* @__PURE__ */ React31.createElement(TableCell15, null, "Address"), /* @__PURE__ */ React31.createElement(TableCell15, null, "Blocks Produced"), /* @__PURE__ */ React31.createElement(TableCell15, null, "Rewards Earned Produced"))), /* @__PURE__ */ React31.createElement(TableBody3, null, producers?.map((producer) => /* @__PURE__ */ React31.createElement(TableRow4, {
1413
+ return /* @__PURE__ */ React32.createElement(Table, props, /* @__PURE__ */ React32.createElement(TableHead3, null, /* @__PURE__ */ React32.createElement(TableRow4, null, /* @__PURE__ */ React32.createElement(TableCell16, null, "Address"), /* @__PURE__ */ React32.createElement(TableCell16, null, "Blocks Produced"), /* @__PURE__ */ React32.createElement(TableCell16, null, "Rewards Earned Produced"))), /* @__PURE__ */ React32.createElement(TableBody3, null, producers?.map((producer) => /* @__PURE__ */ React32.createElement(TableRow4, {
1375
1414
  key: producer.address
1376
- }, /* @__PURE__ */ React31.createElement(TableCell15, null, /* @__PURE__ */ React31.createElement(BlockiesAvatar2, {
1415
+ }, /* @__PURE__ */ React32.createElement(TableCell16, null, /* @__PURE__ */ React32.createElement(BlockiesAvatar2, {
1377
1416
  blockiesOptions: {
1378
1417
  seed: producer.address
1379
1418
  },
@@ -1381,7 +1420,7 @@ var ChainProducerStatsTable = /* @__PURE__ */ __name(({ producers, ...props }) =
1381
1420
  height: theme.spacing(2.75),
1382
1421
  width: theme.spacing(2.75)
1383
1422
  }
1384
- })), /* @__PURE__ */ React31.createElement(TableCell15, null, producer.blocksProduced.toString()), /* @__PURE__ */ React31.createElement(TableCell15, null, producer.rewardsEarned.toString())))));
1423
+ })), /* @__PURE__ */ React32.createElement(TableCell16, null, producer.blocksProduced.toString()), /* @__PURE__ */ React32.createElement(TableCell16, null, producer.rewardsEarned.toString())))));
1385
1424
  }, "ChainProducerStatsTable");
1386
1425
 
1387
1426
  // src/components/chain/stats/producer/ProducerFlexbox.tsx
@@ -1403,16 +1442,16 @@ var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) =
1403
1442
  const producersArray = useMemo8(() => Object.values(producer?.producers ?? {}), [
1404
1443
  producer
1405
1444
  ]);
1406
- return /* @__PURE__ */ React32.createElement(FlexCol4, {
1445
+ return /* @__PURE__ */ React33.createElement(FlexCol4, {
1407
1446
  alignItems: "start",
1408
1447
  gap: 1,
1409
1448
  ...props
1410
- }, /* @__PURE__ */ React32.createElement(ErrorRender4, {
1449
+ }, /* @__PURE__ */ React33.createElement(ErrorRender4, {
1411
1450
  error: producerError,
1412
1451
  scope: "BlockProducerStatsFlexbox"
1413
- }), /* @__PURE__ */ React32.createElement(Typography8, {
1452
+ }), /* @__PURE__ */ React33.createElement(Typography9, {
1414
1453
  fontSize: "1rem"
1415
- }, "Block Producers"), /* @__PURE__ */ React32.createElement(ChainProducerStatsTable, {
1454
+ }, "Block Producers"), /* @__PURE__ */ React33.createElement(ChainProducerStatsTable, {
1416
1455
  producers: producersArray
1417
1456
  }));
1418
1457
  }, "BlockProducerStatsFlexbox");
@@ -1420,18 +1459,18 @@ var BlockProducerStatsFlexbox = /* @__PURE__ */ __name(({ payload, ...props }) =
1420
1459
  // src/components/chain/stats/Dialog.tsx
1421
1460
  var ChainAnalyzerStatsDialog = /* @__PURE__ */ __name((props) => {
1422
1461
  const { analyzers, statsUpdated } = useChainAnalyzersContext();
1423
- return /* @__PURE__ */ React33.createElement(Dialog3, props, /* @__PURE__ */ React33.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React33.createElement(DialogContent3, null, statsUpdated > 0 ? Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React33.createElement("div", {
1462
+ return /* @__PURE__ */ React34.createElement(Dialog3, props, /* @__PURE__ */ React34.createElement(DialogTitle3, null, "Chain Analysis"), /* @__PURE__ */ React34.createElement(DialogContent3, null, statsUpdated > 0 ? Object.entries(analyzers).map(([id2, analyzer]) => /* @__PURE__ */ React34.createElement("div", {
1424
1463
  key: id2
1425
- }, id2 === "producers" ? /* @__PURE__ */ React33.createElement(BlockProducerStatsFlexbox, {
1464
+ }, id2 === "producers" ? /* @__PURE__ */ React34.createElement(BlockProducerStatsFlexbox, {
1426
1465
  payload: analyzer.result()
1427
1466
  }) : null)) : null));
1428
1467
  }, "ChainAnalyzerStatsDialog");
1429
1468
  var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1430
1469
  const [open, setOpen] = useState10(false);
1431
1470
  const handleClose = /* @__PURE__ */ __name(() => setOpen(false), "handleClose");
1432
- return /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(IconButton3, {
1471
+ return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(IconButton3, {
1433
1472
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
1434
- }, /* @__PURE__ */ React33.createElement(QueryStats, null)), /* @__PURE__ */ React33.createElement(ChainAnalyzerStatsDialog, {
1473
+ }, /* @__PURE__ */ React34.createElement(QueryStats, null)), /* @__PURE__ */ React34.createElement(ChainAnalyzerStatsDialog, {
1435
1474
  onClose: handleClose,
1436
1475
  open,
1437
1476
  ...props
@@ -1440,19 +1479,19 @@ var ChainAnalyzerStatsDialogFromContext = /* @__PURE__ */ __name((props) => {
1440
1479
 
1441
1480
  // src/components/chain/controls/PulseSvgIcon.tsx
1442
1481
  import { createSvgIcon, keyframes, styled as styled2 } from "@mui/material";
1443
- import React34 from "react";
1444
- var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React34.createElement("svg", {
1482
+ import React35 from "react";
1483
+ var PulseSvgIcon = createSvgIcon(/* @__PURE__ */ React35.createElement("svg", {
1445
1484
  viewBox: "0 0 80 80",
1446
1485
  version: "1.1",
1447
1486
  xmlns: "http://www.w3.org/2000/svg"
1448
- }, /* @__PURE__ */ React34.createElement("g", {
1487
+ }, /* @__PURE__ */ React35.createElement("g", {
1449
1488
  transform: "translate(34,34)"
1450
- }, /* @__PURE__ */ React34.createElement("circle", {
1489
+ }, /* @__PURE__ */ React35.createElement("circle", {
1451
1490
  className: "core",
1452
1491
  cx: "0",
1453
1492
  cy: "0",
1454
1493
  r: "6"
1455
- }), /* @__PURE__ */ React34.createElement("circle", {
1494
+ }), /* @__PURE__ */ React35.createElement("circle", {
1456
1495
  className: "radar",
1457
1496
  cx: "0",
1458
1497
  cy: "0",
@@ -1516,24 +1555,24 @@ var StyledPulseSvgIcon = styled2(PulseSvgIcon)(({ theme }) => {
1516
1555
  var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingState, setPollingState }) => {
1517
1556
  const paused = pollingState === "paused";
1518
1557
  const running = pollingState === "running";
1519
- return /* @__PURE__ */ React35.createElement(FlexRow6, {
1558
+ return /* @__PURE__ */ React36.createElement(FlexRow6, {
1520
1559
  justifyContent: "space-between",
1521
1560
  width: "100%"
1522
- }, /* @__PURE__ */ React35.createElement(FlexRow6, {
1561
+ }, /* @__PURE__ */ React36.createElement(FlexRow6, {
1523
1562
  gap: 2
1524
- }, running ? /* @__PURE__ */ React35.createElement(IconButton4, {
1563
+ }, running ? /* @__PURE__ */ React36.createElement(IconButton4, {
1525
1564
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("paused"), "onClick"),
1526
1565
  title: "Pause Block Stream"
1527
- }, /* @__PURE__ */ React35.createElement(Pause, null)) : null, paused ? /* @__PURE__ */ React35.createElement(IconButton4, {
1566
+ }, /* @__PURE__ */ React36.createElement(Pause, null)) : null, paused ? /* @__PURE__ */ React36.createElement(IconButton4, {
1528
1567
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick"),
1529
1568
  title: "Re-Sync Block Stream"
1530
- }, /* @__PURE__ */ React35.createElement(Autorenew, null)) : null, /* @__PURE__ */ React35.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React35.createElement(FlexRow6, {
1569
+ }, /* @__PURE__ */ React36.createElement(Autorenew, null)) : null, /* @__PURE__ */ React36.createElement(ChainAnalyzerStatsDialogFromContext, null)), /* @__PURE__ */ React36.createElement(FlexRow6, {
1531
1570
  gap: 2
1532
- }, /* @__PURE__ */ React35.createElement(Grow, {
1571
+ }, /* @__PURE__ */ React36.createElement(Grow, {
1533
1572
  in: (blocksBehind ?? 0) > 0
1534
- }, /* @__PURE__ */ React35.createElement(Tooltip11, {
1573
+ }, /* @__PURE__ */ React36.createElement(Tooltip12, {
1535
1574
  title: "Click to Re-Sync"
1536
- }, /* @__PURE__ */ React35.createElement(Alert3, {
1575
+ }, /* @__PURE__ */ React36.createElement(Alert3, {
1537
1576
  sx: {
1538
1577
  py: 0,
1539
1578
  px: 1,
@@ -1541,11 +1580,11 @@ var PollingControlsFlexbox = /* @__PURE__ */ __name(({ blocksBehind, pollingStat
1541
1580
  },
1542
1581
  severity: "warning",
1543
1582
  onClick: /* @__PURE__ */ __name(() => setPollingState?.("running"), "onClick")
1544
- }, /* @__PURE__ */ React35.createElement(AlertTitle2, {
1583
+ }, /* @__PURE__ */ React36.createElement(AlertTitle2, {
1545
1584
  sx: {
1546
1585
  mb: 0
1547
1586
  }
1548
- }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React35.createElement(Icon2, null, /* @__PURE__ */ React35.createElement(StyledPulseSvgIcon, {
1587
+ }, "Behind:", " ", blocksBehind)))), /* @__PURE__ */ React36.createElement(Icon2, null, /* @__PURE__ */ React36.createElement(StyledPulseSvgIcon, {
1549
1588
  className: running ? "" : "paused"
1550
1589
  }))));
1551
1590
  }, "PollingControlsFlexbox");
@@ -1553,12 +1592,12 @@ var MemoizedPollingControlsFlexbox = /* @__PURE__ */ memo(PollingControlsFlexbox
1553
1592
 
1554
1593
  // src/components/chain/dialog/Dialog.tsx
1555
1594
  import { Button as Button4, Dialog as Dialog4, DialogActions as DialogActions3, DialogContent as DialogContent4 } from "@mui/material";
1556
- import React36 from "react";
1595
+ import React37 from "react";
1557
1596
  var TransactionsDialog = /* @__PURE__ */ __name(({ onClose, ...props }) => {
1558
- return /* @__PURE__ */ React36.createElement(Dialog4, {
1597
+ return /* @__PURE__ */ React37.createElement(Dialog4, {
1559
1598
  onClose,
1560
1599
  ...props
1561
- }, /* @__PURE__ */ React36.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React36.createElement(DialogActions3, null, /* @__PURE__ */ React36.createElement(Button4, {
1600
+ }, /* @__PURE__ */ React37.createElement(DialogContent4, null, "Transactions Dialog"), /* @__PURE__ */ React37.createElement(DialogActions3, null, /* @__PURE__ */ React37.createElement(Button4, {
1562
1601
  variant: "outlined",
1563
1602
  onClick: /* @__PURE__ */ __name((e) => onClose?.(e, "escapeKeyDown"), "onClick")
1564
1603
  }, "Close")));
@@ -1600,9 +1639,9 @@ var useOnBlock = /* @__PURE__ */ __name((initialHeadNumber, onAddBlock, liveHead
1600
1639
 
1601
1640
  // src/components/chain/pagination/BlockChainPagination.tsx
1602
1641
  import { TablePaginationActions } from "@xyo-network/react-payload-table";
1603
- import React37 from "react";
1642
+ import React38 from "react";
1604
1643
  var BlockChainPagination = /* @__PURE__ */ __name(({ count = 0, onPageChange, page, rowsPerPage = 10 }) => {
1605
- return /* @__PURE__ */ React37.createElement(TablePaginationActions, {
1644
+ return /* @__PURE__ */ React38.createElement(TablePaginationActions, {
1606
1645
  count,
1607
1646
  onPageChange,
1608
1647
  page,
@@ -1653,19 +1692,19 @@ var BlockListWrapperFlexBox = styled3(FlexCol5, {
1653
1692
  // src/components/payload/builder/Flexbox.tsx
1654
1693
  import { FlexCol as FlexCol6 } from "@xylabs/react-flexbox";
1655
1694
  import { JsonViewerEx as JsonViewerEx2 } from "@xyo-network/react-payload-raw-info";
1656
- import React38, { useState as useState12 } from "react";
1695
+ import React39, { useState as useState12 } from "react";
1657
1696
  var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild, ...props }) => {
1658
1697
  const [payload, setPayload] = useState12();
1659
1698
  const onBuildLocal = /* @__PURE__ */ __name((payload2) => {
1660
1699
  onBuild?.(payload2);
1661
1700
  setPayload(payload2);
1662
1701
  }, "onBuildLocal");
1663
- return /* @__PURE__ */ React38.createElement(FlexCol6, {
1702
+ return /* @__PURE__ */ React39.createElement(FlexCol6, {
1664
1703
  gap: 2,
1665
1704
  ...props
1666
- }, /* @__PURE__ */ React38.createElement(BuilderComponent, {
1705
+ }, /* @__PURE__ */ React39.createElement(BuilderComponent, {
1667
1706
  onBuild: onBuildLocal
1668
- }), payload ? /* @__PURE__ */ React38.createElement(JsonViewerEx2, {
1707
+ }), payload ? /* @__PURE__ */ React39.createElement(JsonViewerEx2, {
1669
1708
  value: payload
1670
1709
  }) : null);
1671
1710
  }, "PayloadBuilderFlexbox");
@@ -1674,12 +1713,12 @@ var PayloadBuilderFlexbox = /* @__PURE__ */ __name(({ BuilderComponent, onBuild,
1674
1713
  import { Button as Button5, FormControl as FormControl5 } from "@mui/material";
1675
1714
  import { usePromise as usePromise3 } from "@xylabs/react-promise";
1676
1715
  import { createProducerChainStakeIntent } from "@xyo-network/chain-protocol";
1677
- import React41, { useState as useState15 } from "react";
1716
+ import React42, { useState as useState15 } from "react";
1678
1717
 
1679
1718
  // src/components/payload/fields/BlockNumberTextField.tsx
1680
1719
  import { FormControl as FormControl3, FormHelperText as FormHelperText2, TextField as TextField3 } from "@mui/material";
1681
1720
  import { toXL1BlockNumber as toXL1BlockNumber2 } from "@xyo-network/xl1-sdk";
1682
- import React39, { useState as useState13 } from "react";
1721
+ import React40, { useState as useState13 } from "react";
1683
1722
  var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumberChanged, onChange, ...props }) => {
1684
1723
  const [blockNumber, setBlockNumber] = useState13();
1685
1724
  const handleChange = /* @__PURE__ */ __name((e) => {
@@ -1689,15 +1728,15 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1689
1728
  onChange?.(e);
1690
1729
  }, "handleChange");
1691
1730
  const errored = errorMessage !== void 0;
1692
- return /* @__PURE__ */ React39.createElement(FormControl3, {
1731
+ return /* @__PURE__ */ React40.createElement(FormControl3, {
1693
1732
  fullWidth: true
1694
- }, /* @__PURE__ */ React39.createElement(TextField3, {
1733
+ }, /* @__PURE__ */ React40.createElement(TextField3, {
1695
1734
  error: errored,
1696
1735
  onChange: handleChange,
1697
1736
  type: "number",
1698
1737
  value: blockNumber ?? "",
1699
1738
  ...props
1700
- }), errored ? /* @__PURE__ */ React39.createElement(FormHelperText2, {
1739
+ }), errored ? /* @__PURE__ */ React40.createElement(FormHelperText2, {
1701
1740
  sx: {
1702
1741
  color: "error.main"
1703
1742
  }
@@ -1707,7 +1746,7 @@ var BlockNumberTextField = /* @__PURE__ */ __name(({ errorMessage, onBlockNumber
1707
1746
  // src/components/payload/fields/XyoAddressTextField.tsx
1708
1747
  import { FormControl as FormControl4, FormHelperText as FormHelperText3, TextField as TextField4 } from "@mui/material";
1709
1748
  import { asAddress, isAddress, isDefined as isDefined10 } from "@xylabs/sdk-js";
1710
- import React40, { useState as useState14 } from "react";
1749
+ import React41, { useState as useState14 } from "react";
1711
1750
  var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange, resetValue, ...props }) => {
1712
1751
  const [address, setAddress] = useState14("");
1713
1752
  const [addressError, setAddressError] = useState14();
@@ -1737,15 +1776,15 @@ var XyoAddressTextField = /* @__PURE__ */ __name(({ onAddressChanged, onChange,
1737
1776
  onAddressChanged?.();
1738
1777
  }
1739
1778
  }, "handleBlur");
1740
- return /* @__PURE__ */ React40.createElement(FormControl4, {
1779
+ return /* @__PURE__ */ React41.createElement(FormControl4, {
1741
1780
  fullWidth: true
1742
- }, /* @__PURE__ */ React40.createElement(TextField4, {
1781
+ }, /* @__PURE__ */ React41.createElement(TextField4, {
1743
1782
  error: !!addressError,
1744
1783
  onBlur: handleBlur,
1745
1784
  onChange: handleChange,
1746
1785
  value: address,
1747
1786
  ...props
1748
- }), addressError ? /* @__PURE__ */ React40.createElement(FormHelperText3, {
1787
+ }), addressError ? /* @__PURE__ */ React41.createElement(FormHelperText3, {
1749
1788
  sx: {
1750
1789
  color: "error.main"
1751
1790
  }
@@ -1778,33 +1817,33 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1778
1817
  const onBuildLocal = /* @__PURE__ */ __name(() => {
1779
1818
  if (onBuild && intentPayload) onBuild?.(intentPayload);
1780
1819
  }, "onBuildLocal");
1781
- return /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(FormControl5, {
1820
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(FormControl5, {
1782
1821
  fullWidth: true
1783
- }, /* @__PURE__ */ React41.createElement(XyoAddressTextField, {
1822
+ }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
1784
1823
  label: "Delegate",
1785
1824
  name: "delegate",
1786
1825
  onAddressChanged: setDelegate,
1787
1826
  required: true,
1788
1827
  size: "small"
1789
- })), /* @__PURE__ */ React41.createElement(FormControl5, {
1828
+ })), /* @__PURE__ */ React42.createElement(FormControl5, {
1790
1829
  fullWidth: true
1791
- }, /* @__PURE__ */ React41.createElement(BlockNumberTextField, {
1830
+ }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
1792
1831
  errorMessage: blockRangeError?.message,
1793
1832
  label: "Expires",
1794
1833
  name: "exp",
1795
1834
  onBlockNumberChanged: setExp,
1796
1835
  required: true,
1797
1836
  size: "small"
1798
- })), /* @__PURE__ */ React41.createElement(FormControl5, {
1837
+ })), /* @__PURE__ */ React42.createElement(FormControl5, {
1799
1838
  fullWidth: true
1800
- }, /* @__PURE__ */ React41.createElement(BlockNumberTextField, {
1839
+ }, /* @__PURE__ */ React42.createElement(BlockNumberTextField, {
1801
1840
  errorMessage: blockRangeError?.message,
1802
1841
  label: "Not Before",
1803
1842
  name: "nbf",
1804
1843
  onBlockNumberChanged: setNbf,
1805
1844
  required: true,
1806
1845
  size: "small"
1807
- })), /* @__PURE__ */ React41.createElement(Button5, {
1846
+ })), /* @__PURE__ */ React42.createElement(Button5, {
1808
1847
  disabled: !intentPayload,
1809
1848
  variant: "contained",
1810
1849
  onClick: onBuildLocal
@@ -1812,13 +1851,13 @@ var ProducerIntentBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1812
1851
  }, "ProducerIntentBuilderForm");
1813
1852
 
1814
1853
  // src/components/payload/builder/transfer/Flexbox.tsx
1815
- import React44 from "react";
1854
+ import React45 from "react";
1816
1855
 
1817
1856
  // src/components/payload/builder/transfer/Form.tsx
1818
1857
  import { Button as Button6, FormControl as FormControl7 } from "@mui/material";
1819
1858
  import { isAddress as isAddress3 } from "@xylabs/sdk-js";
1820
1859
  import { TransferSchema } from "@xyo-network/xl1-sdk";
1821
- import React43, { useMemo as useMemo10, useState as useState17 } from "react";
1860
+ import React44, { useMemo as useMemo10, useState as useState17 } from "react";
1822
1861
 
1823
1862
  // src/components/payload/builder/transfer/builder/SingleFlexbox.tsx
1824
1863
  import { RemoveCircle } from "@mui/icons-material";
@@ -1826,7 +1865,7 @@ import { FormControl as FormControl6, Icon as Icon3, IconButton as IconButton5 }
1826
1865
  import { FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
1827
1866
  import { isAddress as isAddress2, isDefinedNotNull, toHex as toHex3 } from "@xylabs/sdk-js";
1828
1867
  import { BigIntInput } from "@xyo-network/react-shared";
1829
- import React42, { useEffect as useEffect2, useState as useState16 } from "react";
1868
+ import React43, { useEffect as useEffect2, useState as useState16 } from "react";
1830
1869
  var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated, onRemoveTransfer, singleTransfer, ...props }) => {
1831
1870
  const [toAddress3, setToAddress] = useState16();
1832
1871
  const [amount, setAmount] = useState16();
@@ -1843,29 +1882,29 @@ var SingleTransferBuilderFlexbox = /* @__PURE__ */ __name(({ onTransferUpdated,
1843
1882
  singleTransfer,
1844
1883
  toAddress3
1845
1884
  ]);
1846
- return /* @__PURE__ */ React42.createElement(FlexRow7, {
1885
+ return /* @__PURE__ */ React43.createElement(FlexRow7, {
1847
1886
  alignItems: "start",
1848
1887
  gap: 1,
1849
1888
  ...props
1850
- }, /* @__PURE__ */ React42.createElement(FormControl6, {
1889
+ }, /* @__PURE__ */ React43.createElement(FormControl6, {
1851
1890
  fullWidth: true
1852
- }, /* @__PURE__ */ React42.createElement(XyoAddressTextField, {
1891
+ }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
1853
1892
  label: "To",
1854
1893
  name: "to",
1855
1894
  onAddressChanged: setToAddress,
1856
1895
  required: true,
1857
1896
  size: "small"
1858
- })), /* @__PURE__ */ React42.createElement(FormControl6, {
1897
+ })), /* @__PURE__ */ React43.createElement(FormControl6, {
1859
1898
  fullWidth: true
1860
- }, /* @__PURE__ */ React42.createElement(BigIntInput.TextField, {
1899
+ }, /* @__PURE__ */ React43.createElement(BigIntInput.TextField, {
1861
1900
  label: "Amount",
1862
1901
  name: "amount",
1863
1902
  onChangeFixedPoint: setAmount,
1864
1903
  required: true,
1865
1904
  size: "small"
1866
- })), /* @__PURE__ */ React42.createElement(IconButton5, {
1905
+ })), /* @__PURE__ */ React43.createElement(IconButton5, {
1867
1906
  onClick: /* @__PURE__ */ __name(() => onRemoveTransfer?.(singleTransfer.transferId), "onClick")
1868
- }, /* @__PURE__ */ React42.createElement(Icon3, null, /* @__PURE__ */ React42.createElement(RemoveCircle, null))));
1907
+ }, /* @__PURE__ */ React43.createElement(Icon3, null, /* @__PURE__ */ React43.createElement(RemoveCircle, null))));
1869
1908
  }, "SingleTransferBuilderFlexbox");
1870
1909
 
1871
1910
  // src/components/payload/builder/transfer/Form.tsx
@@ -1916,19 +1955,19 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1916
1955
  return transfer;
1917
1956
  }));
1918
1957
  }, "onTransferUpdated");
1919
- return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(FormControl7, {
1958
+ return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(FormControl7, {
1920
1959
  fullWidth: true
1921
- }, /* @__PURE__ */ React43.createElement(XyoAddressTextField, {
1960
+ }, /* @__PURE__ */ React44.createElement(XyoAddressTextField, {
1922
1961
  label: "From",
1923
1962
  name: "from",
1924
1963
  onAddressChanged: setFromAddress,
1925
1964
  required: true,
1926
1965
  size: "small"
1927
- })), /* @__PURE__ */ React43.createElement(Button6, {
1966
+ })), /* @__PURE__ */ React44.createElement(Button6, {
1928
1967
  onClick: onTransferAdded,
1929
1968
  size: "small",
1930
1969
  variant: "contained"
1931
- }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React43.createElement(SingleTransferBuilderFlexbox, {
1970
+ }, "Add Transfer"), transfers.map((transfer) => /* @__PURE__ */ React44.createElement(SingleTransferBuilderFlexbox, {
1932
1971
  key: transfer.transferId,
1933
1972
  onTransferUpdated,
1934
1973
  onRemoveTransfer: onTransferRemoved,
@@ -1936,7 +1975,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1936
1975
  sx: {
1937
1976
  width: "100%"
1938
1977
  }
1939
- })), /* @__PURE__ */ React43.createElement(Button6, {
1978
+ })), /* @__PURE__ */ React44.createElement(Button6, {
1940
1979
  disabled: !transferPayload,
1941
1980
  variant: "contained",
1942
1981
  onClick: onBuildLocal
@@ -1944,7 +1983,7 @@ var TransferBuilderForm = /* @__PURE__ */ __name(({ onBuild }) => {
1944
1983
  }, "TransferBuilderForm");
1945
1984
 
1946
1985
  // src/components/payload/builder/transfer/Flexbox.tsx
1947
- var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React44.createElement(PayloadBuilderFlexbox, {
1986
+ var TransferBuilderFlexbox = /* @__PURE__ */ __name(({ onBuild, ...props }) => /* @__PURE__ */ React45.createElement(PayloadBuilderFlexbox, {
1948
1987
  gap: 4,
1949
1988
  alignItems: "start",
1950
1989
  BuilderComponent: TransferBuilderForm,
@@ -1985,10 +2024,10 @@ var rateUnitToLabel = /* @__PURE__ */ __name((rateUnit) => {
1985
2024
 
1986
2025
  // src/components/rate/SpanTypography.tsx
1987
2026
  import { ViewAgendaOutlined } from "@mui/icons-material";
1988
- import { Tooltip as Tooltip12 } from "@mui/material";
2027
+ import { Tooltip as Tooltip13 } from "@mui/material";
1989
2028
 
1990
2029
  // src/components/rate/support/MetricTypography.tsx
1991
- import { Icon as Icon4, Typography as Typography9 } from "@mui/material";
2030
+ import { Icon as Icon4, Typography as Typography10 } from "@mui/material";
1992
2031
  import { isUndefined as isUndefined2 } from "@xylabs/sdk-js";
1993
2032
  import { useEffect as useEffect3, useState as useState18 } from "react";
1994
2033
  var MetricTypography = /* @__PURE__ */ __name(({ animationDurationMs = 1e3, disableAnimation, icon, label, metric, sx, ...props }) => {
@@ -2023,7 +2062,7 @@ var MetricTypography = /* @__PURE__ */ __name(({ animationDurationMs = 1e3, disa
2023
2062
  minimumFractionDigits: 0,
2024
2063
  maximumFractionDigits: isWholeNumber ? 0 : 2
2025
2064
  });
2026
- return /* @__PURE__ */ React.createElement(Typography9, {
2065
+ return /* @__PURE__ */ React.createElement(Typography10, {
2027
2066
  variant: "h4",
2028
2067
  mb: 1,
2029
2068
  sx: {
@@ -2035,7 +2074,7 @@ var MetricTypography = /* @__PURE__ */ __name(({ animationDurationMs = 1e3, disa
2035
2074
  ...props
2036
2075
  }, /* @__PURE__ */ React.createElement(Icon4, {
2037
2076
  fontSize: "large"
2038
- }, icon), formattedValue, " ", /* @__PURE__ */ React.createElement(Typography9, {
2077
+ }, icon), formattedValue, " ", /* @__PURE__ */ React.createElement(Typography10, {
2039
2078
  component: "span",
2040
2079
  variant: "caption",
2041
2080
  lineHeight: 1.86
@@ -2044,7 +2083,7 @@ var MetricTypography = /* @__PURE__ */ __name(({ animationDurationMs = 1e3, disa
2044
2083
 
2045
2084
  // src/components/rate/SpanTypography.tsx
2046
2085
  var BlockRateSpanTypography = /* @__PURE__ */ __name(({ range, span, sx, ...props }) => {
2047
- return /* @__PURE__ */ React.createElement(Tooltip12, {
2086
+ return /* @__PURE__ */ React.createElement(Tooltip13, {
2048
2087
  title: `Block Range: ${range?.join(" - ")}`
2049
2088
  }, /* @__PURE__ */ React.createElement(MetricTypography, {
2050
2089
  icon: /* @__PURE__ */ React.createElement(ViewAgendaOutlined, {
@@ -2343,7 +2382,7 @@ import { usePromise as usePromise4 } from "@xylabs/react-promise";
2343
2382
  import { buildRandomBlockChain } from "@xyo-network/react-chain-shared";
2344
2383
  import { ArchivistConfigSchema, MemoryArchivist } from "@xyo-network/sdk-js";
2345
2384
  import { flattenHydratedBlocks } from "@xyo-network/xl1-sdk";
2346
- import React45, { useEffect as useEffect5 } from "react";
2385
+ import React46, { useEffect as useEffect5 } from "react";
2347
2386
 
2348
2387
  // src/lib/getChainId.ts
2349
2388
  import { toAddress as toAddress2 } from "@xylabs/sdk-js";
@@ -2392,7 +2431,7 @@ var ChainArchivistDecorator = /* @__PURE__ */ __name((Story, { args, ...context
2392
2431
  }
2393
2432
  }
2394
2433
  };
2395
- return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React45.createElement(Story, props) : /* @__PURE__ */ React45.createElement(CircularProgress, null);
2434
+ return blockChainRenderProps?.chainArchivist ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress, null);
2396
2435
  }, "ChainArchivistDecorator");
2397
2436
 
2398
2437
  // src/stories/ChainArchivistDelayedInsertDecorator.tsx
@@ -2402,7 +2441,7 @@ import { delay } from "@xylabs/sdk-js";
2402
2441
  import { buildRandomBlockChain as buildRandomBlockChain2 } from "@xyo-network/react-chain-shared";
2403
2442
  import { ArchivistConfigSchema as ArchivistConfigSchema2, MemoryArchivist as MemoryArchivist2 } from "@xyo-network/sdk-js";
2404
2443
  import { flattenHydratedBlock } from "@xyo-network/xl1-sdk";
2405
- import React46, { useEffect as useEffect6, useState as useState20 } from "react";
2444
+ import React47, { useEffect as useEffect6, useState as useState20 } from "react";
2406
2445
  var chainArchivistRef;
2407
2446
  var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, context) => {
2408
2447
  const [firstBlock, setFirstBlock] = useState20();
@@ -2461,12 +2500,14 @@ var ChainArchivistDelayedInsertDecorator = /* @__PURE__ */ __name((Story, contex
2461
2500
  }
2462
2501
  }
2463
2502
  };
2464
- return firstBlock ? /* @__PURE__ */ React46.createElement(Story, props) : /* @__PURE__ */ React46.createElement(CircularProgress2, null);
2503
+ return firstBlock ? /* @__PURE__ */ React47.createElement(Story, props) : /* @__PURE__ */ React47.createElement(CircularProgress2, null);
2465
2504
  }, "ChainArchivistDelayedInsertDecorator");
2466
2505
  export {
2467
2506
  AccountBalanceHistoryFlexBox,
2468
2507
  AccountBalanceHistoryTableEx,
2469
2508
  AddressTableCell,
2509
+ BalanceHistoryBlockNumberTableCell,
2510
+ BalanceHistoryBlockNumberTableCellInner,
2470
2511
  BalanceHistoryTableRow,
2471
2512
  BlockAddressChip,
2472
2513
  BlockChainPagination,