@xyo-network/react-chain-blockchain 1.2.2 → 1.2.4
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.
- package/dist/browser/index.mjs +270 -171
- package/dist/browser/index.mjs.map +1 -1
- package/dist/types/components/block/helpers/index.d.ts +1 -0
- package/dist/types/components/block/helpers/index.d.ts.map +1 -1
- package/dist/types/components/block/helpers/payloadCountsFromBlock.d.ts +3 -0
- package/dist/types/components/block/helpers/payloadCountsFromBlock.d.ts.map +1 -0
- package/dist/types/components/block/helpers/tsxFromBlock.d.ts +2 -2
- package/dist/types/components/block/helpers/tsxFromBlock.d.ts.map +1 -1
- package/dist/types/components/block/hooks/index.d.ts +1 -0
- package/dist/types/components/block/hooks/index.d.ts.map +1 -1
- package/dist/types/components/block/hooks/useBlockHeadingEvents.d.ts +1 -1
- package/dist/types/components/block/hooks/useBlockHeadingEvents.d.ts.map +1 -1
- package/dist/types/components/block/hooks/usePayloadCountsFromBlock.d.ts +3 -0
- package/dist/types/components/block/hooks/usePayloadCountsFromBlock.d.ts.map +1 -0
- package/dist/types/components/block/hooks/useTxsFromBlock.d.ts +1 -1
- package/dist/types/components/block/table/cell/JsonView.d.ts.map +1 -1
- package/dist/types/components/block/table/cell/PayloadCounts.d.ts +6 -0
- package/dist/types/components/block/table/cell/PayloadCounts.d.ts.map +1 -0
- package/dist/types/components/block/table/cell/index.d.ts +1 -0
- package/dist/types/components/block/table/cell/index.d.ts.map +1 -1
- package/dist/types/components/block/table/head/TableHead.d.ts.map +1 -1
- package/dist/types/components/block/table/row/TableRow.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/block/helpers/index.ts +1 -0
- package/src/components/block/helpers/payloadCountsFromBlock.ts +12 -0
- package/src/components/block/helpers/tsxFromBlock.ts +2 -3
- package/src/components/block/hooks/index.ts +1 -0
- package/src/components/block/hooks/useBlockHeadingEvents.ts +1 -1
- package/src/components/block/hooks/usePayloadCountsFromBlock.ts +13 -0
- package/src/components/block/table/cell/Hash.tsx +2 -2
- package/src/components/block/table/cell/JsonView.tsx +4 -6
- package/src/components/block/table/cell/PayloadCounts.tsx +34 -0
- package/src/components/block/table/cell/index.ts +1 -0
- package/src/components/block/table/head/TableHead.tsx +28 -6
- package/src/components/block/table/row/TableRow.tsx +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,sCAAsC,CAAA;AACpD,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,sCAAsC,CAAA;AACpD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payloadCountsFromBlock.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/helpers/payloadCountsFromBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,wBAAwB,CAAA;AAEtF,eAAO,MAAM,sBAAsB,GAAI,mBAAmB,aAAa,KAAG,CAAC,MAAM,EAAE,MAAM,CAQxF,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type HydratedBlock } from '@xyo-network/xl1-model';
|
|
2
2
|
export declare const txsFromBlock: (block: HydratedBlock) => Promise<[import("@xylabs/object").DeepRestrictToStringKeys<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
3
3
|
schema: string;
|
|
4
|
-
}> & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & import("@xyo-network/payload-model").StorageMeta & import("@xylabs/object").DeepRestrictToStringKeys<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
4
|
+
}> & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & import("@xyo-network/payload-model").StorageMeta & import("@xylabs/object").DeepRestrictToStringKeys<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & import("@xyo-network/xl1-model").TransactionBoundWitnessFields & import("@xyo-network/xl1-model").ExecutableFields & import("@xyo-network/xl1-model").FromFields & {
|
|
5
5
|
schema: "network.xyo.boundwitness";
|
|
6
6
|
}> & import("@xyo-network/boundwitness-model").BoundWitnessMeta & {
|
|
7
7
|
$signatures: import("@xylabs/hex").Hex[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsxFromBlock.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/helpers/tsxFromBlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tsxFromBlock.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/helpers/tsxFromBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAA6B,MAAM,wBAAwB,CAAA;AAEtF,eAAO,MAAM,YAAY,GAAU,OAAO,aAAa;;;;;;wBAGtD,CAAA"}
|
|
@@ -2,6 +2,7 @@ export * from './useAnchorElement.ts';
|
|
|
2
2
|
export * from './useBlockHeadingEvents.ts';
|
|
3
3
|
export * from './useBlockProducer.ts';
|
|
4
4
|
export * from './useDynamicBlockComponents.ts';
|
|
5
|
+
export * from './usePayloadCountsFromBlock.ts';
|
|
5
6
|
export * from './useStaticBlockComponents.ts';
|
|
6
7
|
export * from './useTxsFromBlock.ts';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEvent } from '@xyo-network/react-event';
|
|
2
|
-
export type BlockHeaderEventNouns = 'transaction-count' | 'block-hash' | 'block-number' | 'block-producer' | 'block-verification';
|
|
2
|
+
export type BlockHeaderEventNouns = 'transaction-count' | 'block-hash' | 'block-number' | 'block-producer' | 'block-verification' | 'payload-counts';
|
|
3
3
|
type HookArgs<TElement extends HTMLElement> = Parameters<typeof useEvent<TElement, BlockHeaderEventNouns>>;
|
|
4
4
|
export declare const useBlockHeadingEvents: <TElement extends HTMLElement>(...args: HookArgs<TElement>) => [import("react").RefObject<TElement | null>, import("@xyo-network/react-event").EventDispatch<BlockHeaderEventNouns, import("@xyo-network/react-event").EventVerb, string>];
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBlockHeadingEvents.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/hooks/useBlockHeadingEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,YAAY,GAAG,cAAc,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"useBlockHeadingEvents.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/hooks/useBlockHeadingEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,YAAY,GAAG,cAAc,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,gBAAgB,CAAA;AAIpJ,KAAK,QAAQ,CAAC,QAAQ,SAAS,WAAW,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAA;AAE1G,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,gLAE9F,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePayloadCountsFromBlock.d.ts","sourceRoot":"","sources":["../../../../../src/components/block/hooks/usePayloadCountsFromBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAK3D,eAAO,MAAM,yBAAyB,GAAI,QAAQ,aAAa,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAO3H,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HydratedBlock } from '@xyo-network/xl1-model';
|
|
2
2
|
export declare const useTxsFromBlock: (block?: HydratedBlock) => [[import("@xylabs/object").DeepRestrictToStringKeys<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
3
3
|
schema: string;
|
|
4
|
-
}> & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & import("@xyo-network/payload-model").StorageMeta & import("@xylabs/object").DeepRestrictToStringKeys<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
4
|
+
}> & Partial<import("@xyo-network/payload-model").PayloadMetaFields> & import("@xyo-network/payload-model").StorageMeta & import("@xylabs/object").DeepRestrictToStringKeys<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & import("@xyo-network/xl1-model").TransactionBoundWitnessFields & import("@xyo-network/xl1-model").ExecutableFields & import("@xyo-network/xl1-model").FromFields & {
|
|
5
5
|
schema: "network.xyo.boundwitness";
|
|
6
6
|
}> & import("@xyo-network/boundwitness-model").BoundWitnessMeta & {
|
|
7
7
|
$signatures: import("@xylabs/hex").Hex[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonView.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/cell/JsonView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonView.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/cell/JsonView.tsx"],"names":[],"mappings":"AASA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEzD,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;CAAG;AAE3E,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA4BxE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BlockTableCellProps } from './lib/index.ts';
|
|
3
|
+
export interface BlockPayloadCountsTableCellProps extends BlockTableCellProps {
|
|
4
|
+
}
|
|
5
|
+
export declare const BlockPayloadCountsTableCell: React.FC<BlockPayloadCountsTableCellProps>;
|
|
6
|
+
//# sourceMappingURL=PayloadCounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayloadCounts.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/cell/PayloadCounts.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEzD,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;CAAG;AAEhF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,gCAAgC,CAqBlF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/cell/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/cell/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/head/TableHead.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/head/TableHead.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAcvC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/row/TableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAOrE,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB,EAAE,aAAa;IACjF,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../../../../../src/components/block/table/row/TableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAOrE,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB,EAAE,aAAa;IACjF,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgBhE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/react-chain-blockchain",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.4",
|
|
5
5
|
"description": "XYO Layer One React SDK Blockchain",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -34,38 +34,38 @@
|
|
|
34
34
|
"module": "dist/browser/index.mjs",
|
|
35
35
|
"types": "dist/types/index.d.ts",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@xylabs/assert": "^4.8.
|
|
38
|
-
"@xylabs/axios": "^4.8.
|
|
39
|
-
"@xylabs/eth-address": "^4.8.
|
|
40
|
-
"@xylabs/exists": "^4.8.
|
|
41
|
-
"@xylabs/hex": "^4.8.
|
|
42
|
-
"@xylabs/promise": "^4.8.
|
|
37
|
+
"@xylabs/assert": "^4.8.5",
|
|
38
|
+
"@xylabs/axios": "^4.8.5",
|
|
39
|
+
"@xylabs/eth-address": "^4.8.5",
|
|
40
|
+
"@xylabs/exists": "^4.8.5",
|
|
41
|
+
"@xylabs/hex": "^4.8.5",
|
|
42
|
+
"@xylabs/promise": "^4.8.5",
|
|
43
43
|
"@xylabs/react-animation": "^6.1.15",
|
|
44
44
|
"@xylabs/react-error": "^6.1.15",
|
|
45
45
|
"@xylabs/react-flexbox": "^6.1.15",
|
|
46
46
|
"@xylabs/react-identicon": "^6.1.15",
|
|
47
47
|
"@xylabs/react-promise": "^6.1.15",
|
|
48
48
|
"@xylabs/react-quick-tip-button": "^6.1.15",
|
|
49
|
-
"@xyo-network/account": "^3.12.
|
|
50
|
-
"@xyo-network/api-models": "^3.12.
|
|
51
|
-
"@xyo-network/archivist-model": "^3.12.
|
|
52
|
-
"@xyo-network/boundwitness-builder": "^3.12.
|
|
53
|
-
"@xyo-network/boundwitness-model": "^3.12.
|
|
54
|
-
"@xyo-network/bridge-http": "^3.12.
|
|
55
|
-
"@xyo-network/chain-ethereum": "^1.2.
|
|
56
|
-
"@xyo-network/chain-protocol": "^1.2.
|
|
57
|
-
"@xyo-network/chain-services": "^1.2.
|
|
58
|
-
"@xyo-network/module-model": "^3.12.
|
|
59
|
-
"@xyo-network/payload-builder": "^3.12.
|
|
60
|
-
"@xyo-network/payload-model": "^3.12.
|
|
61
|
-
"@xyo-network/react-chain-blockies": "^1.2.
|
|
62
|
-
"@xyo-network/react-chain-boundwitness": "^1.2.
|
|
63
|
-
"@xyo-network/react-event": "^5.1.
|
|
64
|
-
"@xyo-network/react-payload-raw-info": "^5.1.
|
|
65
|
-
"@xyo-network/react-payload-table": "^5.1.
|
|
66
|
-
"@xyo-network/react-shared": "^5.1.
|
|
67
|
-
"@xyo-network/react-table": "^5.1.
|
|
68
|
-
"@xyo-network/xl1-model": "^1.2.
|
|
49
|
+
"@xyo-network/account": "^3.12.4",
|
|
50
|
+
"@xyo-network/api-models": "^3.12.4",
|
|
51
|
+
"@xyo-network/archivist-model": "^3.12.4",
|
|
52
|
+
"@xyo-network/boundwitness-builder": "^3.12.4",
|
|
53
|
+
"@xyo-network/boundwitness-model": "^3.12.4",
|
|
54
|
+
"@xyo-network/bridge-http": "^3.12.4",
|
|
55
|
+
"@xyo-network/chain-ethereum": "^1.2.4",
|
|
56
|
+
"@xyo-network/chain-protocol": "^1.2.4",
|
|
57
|
+
"@xyo-network/chain-services": "^1.2.4",
|
|
58
|
+
"@xyo-network/module-model": "^3.12.4",
|
|
59
|
+
"@xyo-network/payload-builder": "^3.12.4",
|
|
60
|
+
"@xyo-network/payload-model": "^3.12.4",
|
|
61
|
+
"@xyo-network/react-chain-blockies": "^1.2.4",
|
|
62
|
+
"@xyo-network/react-chain-boundwitness": "^1.2.4",
|
|
63
|
+
"@xyo-network/react-event": "^5.1.7",
|
|
64
|
+
"@xyo-network/react-payload-raw-info": "^5.1.7",
|
|
65
|
+
"@xyo-network/react-payload-table": "^5.1.7",
|
|
66
|
+
"@xyo-network/react-shared": "^5.1.7",
|
|
67
|
+
"@xyo-network/react-table": "^5.1.7",
|
|
68
|
+
"@xyo-network/xl1-model": "^1.2.4"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@emotion/react": "^11.14.0",
|
|
@@ -73,13 +73,13 @@
|
|
|
73
73
|
"@mui/icons-material": "^7.0.2",
|
|
74
74
|
"@mui/material": "^7.0.2",
|
|
75
75
|
"@storybook/react": "^8.6.12",
|
|
76
|
-
"@types/react": "^19.1.
|
|
77
|
-
"@xylabs/delay": "^4.8.
|
|
78
|
-
"@xylabs/hex": "^4.8.
|
|
76
|
+
"@types/react": "^19.1.2",
|
|
77
|
+
"@xylabs/delay": "^4.8.5",
|
|
78
|
+
"@xylabs/hex": "^4.8.5",
|
|
79
79
|
"@xylabs/ts-scripts-yarn3": "^6.2.1",
|
|
80
80
|
"@xylabs/tsconfig-react": "^6.2.1",
|
|
81
|
-
"@xyo-network/archivist-memory": "^3.12.
|
|
82
|
-
"@xyo-network/chain-utils": "^1.2.
|
|
81
|
+
"@xyo-network/archivist-memory": "^3.12.4",
|
|
82
|
+
"@xyo-network/chain-utils": "^1.2.4",
|
|
83
83
|
"react": "^19.1.0",
|
|
84
84
|
"react-dom": "^19.1.0",
|
|
85
85
|
"react-router-dom": "^7.5.0",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'
|
|
2
|
+
import { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-model'
|
|
3
|
+
|
|
4
|
+
export const payloadCountsFromBlock = ([block, payloads]: HydratedBlock): [number, number] => {
|
|
5
|
+
const privPayloads = block.payload_schemas.filter(schema => schema !== BoundWitnessSchema)
|
|
6
|
+
const transactionPayloads = payloads.filter(payload => isTransactionBoundWitness(payload))
|
|
7
|
+
let privPayloadsCount = 0
|
|
8
|
+
for (let tx of transactionPayloads) {
|
|
9
|
+
privPayloadsCount += tx.payload_hashes.length - tx.$opCodes.filter(opCode => !opCode.startsWith('elevate|')).length
|
|
10
|
+
}
|
|
11
|
+
return [privPayloads.length, privPayloadsCount]
|
|
12
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { isBoundWitness } from '@xyo-network/boundwitness-model'
|
|
2
1
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
3
|
-
import type
|
|
2
|
+
import { type HydratedBlock, isTransactionBoundWitness } from '@xyo-network/xl1-model'
|
|
4
3
|
|
|
5
4
|
export const txsFromBlock = async (block: HydratedBlock) => {
|
|
6
|
-
const transactionPayloads = block[1].filter(payload =>
|
|
5
|
+
const transactionPayloads = block[1].filter(payload => isTransactionBoundWitness(payload))
|
|
7
6
|
return await PayloadBuilder.hashPairs(transactionPayloads)
|
|
8
7
|
}
|
|
@@ -2,5 +2,6 @@ export * from './useAnchorElement.ts'
|
|
|
2
2
|
export * from './useBlockHeadingEvents.ts'
|
|
3
3
|
export * from './useBlockProducer.ts'
|
|
4
4
|
export * from './useDynamicBlockComponents.ts'
|
|
5
|
+
export * from './usePayloadCountsFromBlock.ts'
|
|
5
6
|
export * from './useStaticBlockComponents.ts'
|
|
6
7
|
export * from './useTxsFromBlock.ts'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEvent } from '@xyo-network/react-event'
|
|
2
2
|
|
|
3
|
-
export type BlockHeaderEventNouns = 'transaction-count' | 'block-hash' | 'block-number' | 'block-producer' | 'block-verification'
|
|
3
|
+
export type BlockHeaderEventNouns = 'transaction-count' | 'block-hash' | 'block-number' | 'block-producer' | 'block-verification' | 'payload-counts'
|
|
4
4
|
|
|
5
5
|
// NOTE: extracting the type so compilers can easily strip it off vs inlining it withing the hook
|
|
6
6
|
// which causes compilation warnings.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HydratedBlock } from '@xyo-network/xl1-model'
|
|
2
|
+
import { useMemo } from 'react'
|
|
3
|
+
|
|
4
|
+
import { payloadCountsFromBlock } from '../helpers/index.ts'
|
|
5
|
+
|
|
6
|
+
export const usePayloadCountsFromBlock = (block?: HydratedBlock): [number | undefined, number | undefined, Error | undefined] => {
|
|
7
|
+
return useMemo(() => {
|
|
8
|
+
if (block) {
|
|
9
|
+
return [...payloadCountsFromBlock(block), undefined]
|
|
10
|
+
}
|
|
11
|
+
return [undefined, undefined, undefined]
|
|
12
|
+
}, [block])
|
|
13
|
+
}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from '@mui/material'
|
|
6
6
|
import type { IdenticonProps } from '@xylabs/react-identicon'
|
|
7
7
|
import { Identicon } from '@xylabs/react-identicon'
|
|
8
|
-
import {
|
|
8
|
+
import { usePayloadRootHash } from '@xyo-network/react-shared'
|
|
9
9
|
import React from 'react'
|
|
10
10
|
|
|
11
11
|
import { FeatureNotAvailable } from '../../../FeatureNotAvailable.tsx'
|
|
@@ -20,7 +20,7 @@ export interface BlockHashTableCellProps extends BlockTableCellProps {
|
|
|
20
20
|
export const BlockHashTableCell: React.FC<BlockHashTableCellProps> = ({
|
|
21
21
|
block, identiconProps, notAvailableDialog, linked, ...props
|
|
22
22
|
}) => {
|
|
23
|
-
const hash =
|
|
23
|
+
const hash = usePayloadRootHash(block?.[0])
|
|
24
24
|
|
|
25
25
|
const [ref, handleClick] = useLinkedBlockItem('block-hash', hash)
|
|
26
26
|
const [notAvailable, setNotAvailable] = React.useState(false)
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataObject } from '@mui/icons-material'
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
4
|
Dialog, DialogActions, DialogContent, DialogTitle, IconButton, TableCell,
|
|
5
5
|
} from '@mui/material'
|
|
6
6
|
import { ellipsize } from '@xylabs/eth-address'
|
|
7
7
|
import { FlexRow } from '@xylabs/react-flexbox'
|
|
8
|
-
import { useIsDark } from '@xylabs/react-theme'
|
|
9
8
|
import { JsonViewerEx } from '@xyo-network/react-payload-raw-info'
|
|
10
|
-
import {
|
|
9
|
+
import { usePayloadRootHash } from '@xyo-network/react-shared'
|
|
11
10
|
import React, { useState } from 'react'
|
|
12
11
|
|
|
13
12
|
import type { BlockTableCellProps } from './lib/index.ts'
|
|
@@ -17,16 +16,15 @@ export interface BlockJsonViewTableCellProps extends BlockTableCellProps {}
|
|
|
17
16
|
export const BlockJsonViewTableCell: React.FC<BlockJsonViewTableCellProps> = ({ block, ...props }) => {
|
|
18
17
|
const [open, setOpen] = useState(false)
|
|
19
18
|
const onClose = () => setOpen(false)
|
|
20
|
-
const isDark = useIsDark()
|
|
21
19
|
|
|
22
|
-
const hash =
|
|
20
|
+
const hash = usePayloadRootHash(block?.[0])
|
|
23
21
|
const title = hash ? `JSON for ${ellipsize(hash, 5)}` : 'JSON'
|
|
24
22
|
|
|
25
23
|
return (
|
|
26
24
|
<TableCell {...props}>
|
|
27
25
|
<FlexRow sx={{ width: '100%' }}>
|
|
28
26
|
<IconButton onClick={() => setOpen(true)}>
|
|
29
|
-
<
|
|
27
|
+
<DataObject />
|
|
30
28
|
</IconButton>
|
|
31
29
|
</FlexRow>
|
|
32
30
|
<Dialog open={open} onClose={onClose}>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Error } from '@mui/icons-material'
|
|
2
|
+
import {
|
|
3
|
+
Link, TableCell, Tooltip,
|
|
4
|
+
} from '@mui/material'
|
|
5
|
+
import React from 'react'
|
|
6
|
+
|
|
7
|
+
import { usePayloadCountsFromBlock } from '../../hooks/index.ts'
|
|
8
|
+
import { useLinkedBlockItem } from './hooks/index.ts'
|
|
9
|
+
import type { BlockTableCellProps } from './lib/index.ts'
|
|
10
|
+
|
|
11
|
+
export interface BlockPayloadCountsTableCellProps extends BlockTableCellProps {}
|
|
12
|
+
|
|
13
|
+
export const BlockPayloadCountsTableCell: React.FC<BlockPayloadCountsTableCellProps> = ({
|
|
14
|
+
block, linked, ...props
|
|
15
|
+
}) => {
|
|
16
|
+
const [pubPayloads, privPayloads, error] = usePayloadCountsFromBlock(block)
|
|
17
|
+
const data = `${pubPayloads}/${privPayloads}`
|
|
18
|
+
const [ref, handleClick] = useLinkedBlockItem('payload-counts', data)
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<TableCell ref={ref} {...props}>
|
|
22
|
+
<span>
|
|
23
|
+
{error
|
|
24
|
+
? (
|
|
25
|
+
<Tooltip title={error.message}>
|
|
26
|
+
<Error color="error" />
|
|
27
|
+
</Tooltip>
|
|
28
|
+
)
|
|
29
|
+
: null}
|
|
30
|
+
{linked ? <Link onClick={handleClick} sx={{ cursor: 'pointer' }}>{data ?? '--/--'}</Link> : data ?? '--/--'}
|
|
31
|
+
</span>
|
|
32
|
+
</TableCell>
|
|
33
|
+
)
|
|
34
|
+
}
|
|
@@ -1,18 +1,40 @@
|
|
|
1
|
+
import { InfoOutline } from '@mui/icons-material'
|
|
2
|
+
import type { TableCellProps } from '@mui/material'
|
|
1
3
|
import {
|
|
2
4
|
TableCell, TableHead, TableRow,
|
|
5
|
+
Tooltip,
|
|
6
|
+
Typography,
|
|
3
7
|
} from '@mui/material'
|
|
8
|
+
import { FlexRow } from '@xylabs/react-flexbox'
|
|
4
9
|
import React from 'react'
|
|
5
10
|
|
|
11
|
+
const ToolTipTableCell: React.FC<TableCellProps> = ({
|
|
12
|
+
children, align, title, ...props
|
|
13
|
+
}) => {
|
|
14
|
+
return (
|
|
15
|
+
<TableCell title={title} {...props}>
|
|
16
|
+
<Tooltip title={title}>
|
|
17
|
+
<FlexRow justifyContent={align}>
|
|
18
|
+
<Typography variant="body2">{children}</Typography>
|
|
19
|
+
|
|
20
|
+
<InfoOutline fontSize="small" />
|
|
21
|
+
</FlexRow>
|
|
22
|
+
</Tooltip>
|
|
23
|
+
</TableCell>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
6
27
|
export const BlockchainTableHead: React.FC = () => {
|
|
7
28
|
return (
|
|
8
29
|
<TableHead>
|
|
9
30
|
<TableRow>
|
|
10
|
-
<
|
|
11
|
-
<
|
|
12
|
-
<
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
<
|
|
31
|
+
<ToolTipTableCell title="The hash of the block">Block Hash</ToolTipTableCell>
|
|
32
|
+
<ToolTipTableCell align="center" title="The block number that is included in the block">Block Number</ToolTipTableCell>
|
|
33
|
+
<ToolTipTableCell align="center" title="Count of transactions that are included in the block">Transactions</ToolTipTableCell>
|
|
34
|
+
<ToolTipTableCell align="center" title="Count of public and private payload counts for the block">Payloads</ToolTipTableCell>
|
|
35
|
+
<ToolTipTableCell align="center" title="The address of the block producer that produced the block">Block Producer</ToolTipTableCell>
|
|
36
|
+
<ToolTipTableCell align="center" title="The result of the local validation check for the block">Valid</ToolTipTableCell>
|
|
37
|
+
<ToolTipTableCell align="center" title="Link to display the raw JSON of the block">JSON</ToolTipTableCell>
|
|
16
38
|
</TableRow>
|
|
17
39
|
</TableHead>
|
|
18
40
|
)
|
|
@@ -4,7 +4,7 @@ import React, { useMemo } from 'react'
|
|
|
4
4
|
|
|
5
5
|
import type { BlockComponentProps } from '../../../../types/index.ts'
|
|
6
6
|
import {
|
|
7
|
-
BlockHashTableCell, BlockJsonViewTableCell, BlockNumberTableCell, BlockProducerTableCell,
|
|
7
|
+
BlockHashTableCell, BlockJsonViewTableCell, BlockNumberTableCell, BlockPayloadCountsTableCell, BlockProducerTableCell,
|
|
8
8
|
BlockTransactionCountTableCell,
|
|
9
9
|
BlockVerificationTableCell,
|
|
10
10
|
} from '../cell/index.ts'
|
|
@@ -20,10 +20,11 @@ export const BlockChainTableRow: React.FC<BlockChainTableRowProps> = ({
|
|
|
20
20
|
const defaultTableCellProps = useMemo(() => ({ block }), [block])
|
|
21
21
|
return (
|
|
22
22
|
<TableRow sx={{ overflowY: 'scroll', ...sx }} {...props}>
|
|
23
|
-
<BlockHashTableCell {...
|
|
24
|
-
<BlockNumberTableCell {...linkedTableCellProps} />
|
|
25
|
-
<BlockTransactionCountTableCell {...linkedTableCellProps} />
|
|
26
|
-
<
|
|
23
|
+
<BlockHashTableCell {...linkedTableCellProps} />
|
|
24
|
+
<BlockNumberTableCell align="center" {...linkedTableCellProps} />
|
|
25
|
+
<BlockTransactionCountTableCell align="center" {...linkedTableCellProps} />
|
|
26
|
+
<BlockPayloadCountsTableCell align="center" {...linkedTableCellProps} />
|
|
27
|
+
<BlockProducerTableCell {...linkedTableCellProps} />
|
|
27
28
|
<BlockVerificationTableCell {...defaultTableCellProps} />
|
|
28
29
|
<BlockJsonViewTableCell {...defaultTableCellProps} />
|
|
29
30
|
</TableRow>
|