@xyo-network/react-chain-boundwitness 1.5.19 → 1.5.20
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
CHANGED
|
@@ -170,7 +170,7 @@ var useBlockDetails = /* @__PURE__ */ __name((wrapper, viewer) => {
|
|
|
170
170
|
const blockNumber = block[0].block;
|
|
171
171
|
const stepWindow = stepWindowCalculatorFromBlock(blockNumber);
|
|
172
172
|
step++;
|
|
173
|
-
stepHashes2[`Step ${step}`] = stepWindow.join(" - ") + ` (${ellipsize(hash,
|
|
173
|
+
stepHashes2[`Step ${step}`] = stepWindow.join(" - ") + ` (${ellipsize(hash, 4)})`;
|
|
174
174
|
} catch (e) {
|
|
175
175
|
console.error(`Error fetching block for step hash ${hash}:`, e);
|
|
176
176
|
step++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/block/BlockBoundWitnessDetails.tsx","../../src/lib/formatFees.ts","../../src/lib/formatPayloadsForTable.ts","../../src/lib/formatResults.ts","../../src/components/BwPayloadTable.tsx","../../src/components/block/card/Card.tsx","../../src/components/block/card/CardHeader.tsx","../../src/components/block/card/hooks/useDetails.ts","../../src/components/transactions/card/Card.tsx","../../src/components/transactions/card/hooks/useDetails.ts","../../src/components/transactions/TransactionDetails.tsx"],"sourcesContent":["import { filterAs } from '@xylabs/array'\nimport { ErrorRender } from '@xylabs/react-error'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { SignedHydratedBlockWrapper } from '@xyo-network/chain-wrappers'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport {\n BoundWitnessPayloadsTable,\n BoundWitnessSignatureTable,\n BWActions,\n HashHeadingPaper,\n HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport { useTxsFromBlock } from '@xyo-network/react-chain-blockchain'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport type { SignedHydratedBlock, XyoViewer } from '@xyo-network/xl1-protocol'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'\nimport React, { useMemo } from 'react'\nimport { FaSignature } from 'react-icons/fa'\nimport { GrTransaction } from 'react-icons/gr'\nimport { VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc'\n\nimport { formatPayloadsForTable } from '../../lib/index.ts'\nimport type { TransactionBoundWitnessEvents } from '../../types/index.ts'\nimport { BWPayloadTableFlexbox } from '../BwPayloadTable.tsx'\nimport { BlockBoundWitnessCard } from './card/Card.tsx'\n\nexport interface BoundWitnessDetailsProps extends FlexBoxProps {\n block?: SignedHydratedBlock\n viewer?: XyoViewer\n}\n\nexport const BlockBoundWitnessDetails = ({\n block, paper, viewer, children, ...props\n}: BoundWitnessDetailsProps) => {\n const [wrapper, wrapperError] = usePromise(async () => {\n if (block) {\n return await SignedHydratedBlockWrapper.parse(block)\n }\n }, [block])\n\n const boundWitness = block?.[0]\n const payloads = block?.[1]\n\n const hash = usePayloadHash(boundWitness)\n\n const [transactions, txFromBlockError] = useTxsFromBlock(block)\n\n const { hashes: txHashes, schemas: txSchemas } = useMemo(() => formatPayloadsForTable(transactions ?? []), [transactions])\n\n const [nonTxBoundWitnesses, bwsFromBlockError] = usePromise(async () => {\n const bws = filterAs(payloads ?? [], payload =>\n (!isTransactionBoundWitness(payload) && isBoundWitness(payload)) ? payload : undefined)\n return await PayloadBuilder.hashPairs(bws)\n }, [payloads])\n\n const { hashes: nonTxBwHashes, schemas: nonTxBwSchemas } = useMemo(() => formatPayloadsForTable(nonTxBoundWitnesses ?? []), [nonTxBoundWitnesses])\n const hasNonTxBoundWitnesses = (nonTxBoundWitnesses?.length ?? 0) > 0\n\n return (\n <FlexCol alignItems=\"stretch\" rowGap={4} {...props}>\n <ErrorRender error={txFromBlockError ?? bwsFromBlockError} scope=\"BlockBoundWitnessDetails.tsx\" />\n <ErrorRender error={wrapperError} scope=\"BlockBoundWitnessDetails.tsx:wrapperError\" />\n <HashHeadingPaper\n hash={hash}\n paperProps={{ sx: { p: 2 } }}\n AdornmentEnd={<BWActions boundwitness={boundWitness} />}\n identiconProps={{ p: 0.75, size: 24 }}\n />\n <BlockBoundWitnessCard elevation={4} viewer={viewer} wrapper={wrapper} />\n {(transactions?.length ?? 0) > 0 && (\n <BWPayloadTableFlexbox<TransactionBoundWitnessEvents>\n IconComponent={<GrTransaction />}\n eventNoun=\"transaction\"\n hashes={txHashes}\n headingTitle=\"Transactions\"\n schemas={txSchemas}\n sx={{ mb: 1 }}\n />\n )}\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<VscSymbolNamespace />} heading=\"Payloads\" />\n <BoundWitnessPayloadsTable boundwitness={boundWitness} />\n </FlexCol>\n {hasNonTxBoundWitnesses\n ? (\n <BWPayloadTableFlexbox<TransactionBoundWitnessEvents>\n IconComponent={<VscSymbolMethod />}\n eventNoun=\"boundwitness\"\n hashes={nonTxBwHashes}\n headingTitle=\"Bound Witnesses\"\n schemas={nonTxBwSchemas}\n sx={{ mb: 1 }}\n />\n )\n : null}\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<FaSignature />} heading=\"Signatures\" />\n <BoundWitnessSignatureTable block={boundWitness} />\n </FlexCol>\n </FlexCol>\n )\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport { bigIntToFixedPointString } from '@xyo-network/chain-utils'\n\nexport const formatFee = (fee?: bigint) => {\n if (isUndefined(fee)) return 'N/A'\n const stringValue = bigIntToFixedPointString(fee, 12)\n if (stringValue === '0') return stringValue\n return stringValue\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport const formatPayloadsForTable = (pairs: [Payload, Hash][]) => {\n let hashes: Hash[] = []\n let schemas: string[] = []\n for (const [bw, hash] of pairs ?? []) {\n hashes.push(hash)\n schemas.push(bw?.schema ?? '')\n }\n return { hashes, schemas }\n}\n","export const formatResults = (results: Record<string, string>) => {\n const result = { labels: [] as string[], values: [] as string[] }\n for (const [label, value] of Object.entries(results)) {\n result.labels.push(label)\n result.values.push(value)\n }\n return result\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport {\n BoundWitnessPayloadTableBody, BoundWitnessPayloadTableHead, HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport type { EventNoun, ExtendEventNoun } from '@xyo-network/react-event'\nimport { TableEx } from '@xyo-network/react-table'\nimport React from 'react'\nimport { VscSymbolMethod } from 'react-icons/vsc'\n\nconst clickableFields = 'hash'\n\nexport interface BWPayloadTableFlexboxProps<TNoun extends ExtendEventNoun = EventNoun> extends FlexBoxProps {\n IconComponent?: React.ReactNode\n eventNoun?: TNoun\n hashes?: Hash[]\n headingTitle?: string\n schemas?: string[]\n}\n\nexport const BWPayloadTableFlexbox = <TNoun extends ExtendEventNoun = EventNoun>({\n IconComponent,\n eventNoun,\n hashes,\n schemas,\n headingTitle,\n ...props\n}: BWPayloadTableFlexboxProps<TNoun>) => {\n const resolvedIconComponent = IconComponent ?? <VscSymbolMethod />\n return (\n <FlexCol alignItems=\"stretch\" rowGap={1} {...props}>\n <HeadingPaper IconComponent={resolvedIconComponent} heading={headingTitle} />\n <TableEx>\n <BoundWitnessPayloadTableHead />\n <BoundWitnessPayloadTableBody<TNoun> payloadHashes={hashes} payloadSchemas={schemas} eventNoun={eventNoun} clickableFields={[clickableFields]} />\n </TableEx>\n </FlexCol>\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, Grid,\n} from '@mui/material'\nimport { ErrorRender } from '@xylabs/react-error'\nimport { DetailsStack, LabelValueStack } from '@xyo-network/react-chain-shared'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\nimport type { SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk'\nimport React from 'react'\nimport { GrSteps } from 'react-icons/gr'\nimport { IoStatsChartOutline } from 'react-icons/io5'\nimport { VscSymbolNamespace } from 'react-icons/vsc'\n\nimport { BlockBoundWitnessCardHeader } from './CardHeader.tsx'\nimport { useBlockDetails } from './hooks/index.ts'\n\nexport interface BlockBoundWitnessCardProps extends CardProps {\n linkedAddress?: boolean\n viewer?: XyoViewer\n wrapper?: SignedHydratedBlockInstance\n}\n\nexport const BlockBoundWitnessCard: React.FC<BlockBoundWitnessCardProps> = ({\n linkedAddress = true, viewer, wrapper, ...props\n}) => {\n if (!wrapper) return null\n\n const {\n stats, payloads, stepHashes, stepHashesError,\n } = useBlockDetails(wrapper, viewer)\n\n return (\n <Card {...props}>\n {wrapper?.boundWitness.addresses.map(address => <BlockBoundWitnessCardHeader key={address} address={address} linked={linkedAddress} />)}\n <ErrorRender error={stepHashesError} scope=\"BlockBoundWitnessCard.tsx:stepHashesError\" />\n <CardContent>\n <Grid container spacing={6} sx={{ width: '100%' }}>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={IoStatsChartOutline} heading=\"Stats\" tooltipTitle=\"Transaction Statistics\">\n <LabelValueStack labels={stats.labels} values={stats.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={VscSymbolNamespace} heading=\"Payloads\" tooltipTitle=\"Payloads within the Block\">\n <LabelValueStack labels={payloads.labels} values={payloads.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={GrSteps} heading=\"Step Hashes\" tooltipTitle=\"Step Hashes for the Block\">\n <LabelValueStack labels={stepHashes?.labels ?? []} values={stepHashes?.values ?? []} />\n </DetailsStack>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n )\n}\n","import type { CardHeaderProps } from '@mui/material'\nimport {\n CardHeader, Link,\n Tooltip, Typography,\n} from '@mui/material'\nimport type { Address } from '@xylabs/hex'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport { useEvent } from '@xyo-network/react-event'\nimport React from 'react'\n\nexport interface BlockBoundWitnessCardHeaderProps extends CardHeaderProps {\n address?: Address\n linked?: boolean\n}\n\nexport const BlockBoundWitnessCardHeader: React.FC<BlockBoundWitnessCardHeaderProps> = ({ linked = true, address }) => {\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n\n return (\n <CardHeader\n ref={ref}\n title={(\n <Typography\n onClick={() => linked && dispatch('address', 'click', address)}\n variant=\"body2\"\n sx={{\n maxWidth: '100%', textOverflow: 'ellipsis', overflow: 'hidden', fontFamily: 'monospace',\n }}\n >\n {linked\n ? (\n <Link sx={{ cursor: 'pointer' }}>{address}</Link>\n )\n : address}\n </Typography>\n )}\n avatar={(\n <Tooltip title={`Address - ${address}`}>\n <BlockiesAvatarAddress\n address={address}\n onClick={() => dispatch('address', 'click', address)}\n size={21}\n sx={{ cursor: 'pointer' }}\n />\n </Tooltip>\n )}\n />\n )\n}\n","import { ellipsize } from '@xylabs/eth-address'\nimport { usePromise } from '@xylabs/react-promise'\nimport { stepWindowCalculatorFromBlock } from '@xyo-network/chain-utils'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\nimport type { SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk'\nimport { useMemo } from 'react'\n\nimport { formatResults } from '../../../../lib/index.ts'\n\nexport const useBlockDetails = (wrapper: SignedHydratedBlockInstance, viewer?: XyoViewer) => {\n const stats = useMemo(() => {\n const stats = {\n Height: wrapper.boundWitness.block.toLocaleString(navigator.language ?? 'en-US'),\n Protocol: wrapper.boundWitness.protocol.toString(),\n Signatures: wrapper.signatureCount.toLocaleString(navigator.language ?? 'en-US'),\n $epoch: wrapper.boundWitness.$epoch.toString(),\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const payloads = useMemo(() => {\n const payloads = {\n 'Transactions': wrapper.transactionCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Public Payloads': wrapper.publicPayloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Private Payloads': wrapper.privatePayloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Total Payloads': wrapper.payloadCount.toLocaleString(navigator.language ?? 'en-US'),\n }\n\n return formatResults(payloads)\n }, [wrapper])\n\n const [stepHashes, stepHashesError] = usePromise(async () => {\n if (viewer) {\n const stepHashes = {} as Record<string, string>\n let step = 0\n for (const hash of wrapper.boundWitness.step_hashes) {\n try {\n const block = await viewer.blockByHash(hash)\n if (block === null) {\n console.warn(`Block not found for step hash ${hash}`)\n step++\n stepHashes[`Step ${step}`] = 'N/A'\n continue\n }\n const blockNumber = block[0].block\n const stepWindow = stepWindowCalculatorFromBlock(blockNumber)\n step++\n stepHashes[`Step ${step}`] = stepWindow.join(' - ') + ` (${ellipsize(hash, 7)})`\n } catch (e) {\n console.error(`Error fetching block for step hash ${hash}:`, e)\n step++\n stepHashes[`Step ${step}`] = 'N/A'\n }\n }\n\n return formatResults(stepHashes)\n }\n }, [wrapper, viewer], { defaultValue: { labels: [], values: [] } })\n\n return {\n stats, payloads, stepHashes, stepHashesError,\n }\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, CardHeader, Grid, Link, Tooltip, Typography,\n} from '@mui/material'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport { DetailsStack, LabelValueStack } from '@xyo-network/react-chain-shared'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'\nimport React from 'react'\nimport { GiReceiveMoney, GiSandsOfTime } from 'react-icons/gi'\nimport { IoStatsChartOutline } from 'react-icons/io5'\n\nimport { useTransactionDetails } from './hooks/index.ts'\n\nexport interface TransactionBoundWitnessCardProps extends CardProps {\n linkedAddress?: boolean\n wrapper?: SignedHydratedTransactionInstance\n}\n\nexport const TransactionBoundWitnessCard: React.FC<TransactionBoundWitnessCardProps> = ({\n linkedAddress = true, wrapper, ...props\n}) => {\n if (!wrapper) return null\n\n const {\n stats, fees, blockDuration,\n } = useTransactionDetails(wrapper)\n\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n\n return (\n <Card ref={ref} {...props}>\n <CardHeader\n title={(\n <Typography\n onClick={() => linkedAddress && dispatch('address', 'click', wrapper.boundWitness.from)}\n variant=\"body2\"\n sx={{\n maxWidth: '100%', textOverflow: 'ellipsis', overflow: 'hidden', fontFamily: 'monospace',\n }}\n >\n {linkedAddress\n ? (\n <Link sx={{ cursor: 'pointer' }}>{wrapper?.boundWitness.from}</Link>\n )\n : wrapper?.boundWitness.from}\n </Typography>\n )}\n avatar={(\n <Tooltip title={`From Address - ${wrapper?.boundWitness.from}`}>\n <BlockiesAvatarAddress\n address={wrapper?.boundWitness.from}\n onClick={() => dispatch('address', 'click', wrapper.boundWitness.from)}\n size={21}\n sx={{ cursor: 'pointer' }}\n />\n </Tooltip>\n )}\n />\n <CardContent>\n <Grid container spacing={6} sx={{ width: '100%' }}>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={IoStatsChartOutline} heading=\"Stats\" tooltipTitle=\"Transaction Statistics\">\n <LabelValueStack labels={stats.labels} values={stats.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={GiReceiveMoney} heading=\"Fees\" tooltipTitle=\"Fees offered to the producer\">\n <LabelValueStack labels={fees.labels} values={fees.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={GiSandsOfTime} heading=\"Block Duration\" tooltipTitle=\"Block window for the transaction to be valid\">\n <LabelValueStack labels={blockDuration.labels} values={blockDuration.values} />\n </DetailsStack>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n )\n}\n","import type { SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'\nimport { useMemo } from 'react'\n\nimport { formatFee, formatResults } from '../../../../lib/index.ts'\n\nexport const useTransactionDetails = (wrapper: SignedHydratedTransactionInstance) => {\n const stats = useMemo(() => {\n const stats = {\n 'Reward': wrapper.reward().toLocaleString(navigator.language ?? 'en-US'),\n 'Elevated Payloads': wrapper.elevatedPayloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Total Payloads': wrapper.payloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Signatures': wrapper.signatureCount.toLocaleString(navigator.language ?? 'en-US'),\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const fees = useMemo(() => {\n const fees = {\n 'Base': formatFee(wrapper.fees.base),\n 'Gas': formatFee(wrapper.fees.gasPrice),\n 'Priority': formatFee(wrapper.fees.priority),\n 'Gas Limit': formatFee(wrapper.fees.gasLimit),\n }\n\n return formatResults(fees)\n }, [wrapper])\n\n const blockDuration = useMemo(() => {\n const blockDuration = {\n 'Expiration': wrapper.boundWitness.exp.toLocaleString(navigator.language ?? 'en-US'),\n 'Not Before': wrapper.boundWitness.nbf.toLocaleString(navigator.language ?? 'en-US'),\n }\n\n return formatResults(blockDuration)\n }, [wrapper])\n\n return {\n stats, fees, blockDuration,\n }\n}\n","import { ErrorRender } from '@xylabs/react-error'\nimport { type FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport { SignedHydratedTransactionWrapper } from '@xyo-network/chain-wrappers'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport {\n BoundWitnessSignatureTable, BWActions, HashHeadingPaper, HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'\nimport React from 'react'\nimport { FaSignature } from 'react-icons/fa'\nimport { VscSymbolMethod } from 'react-icons/vsc'\n\nimport { formatPayloadsForTable } from '../../lib/index.ts'\nimport { BWPayloadTableFlexbox } from '../BwPayloadTable.tsx'\nimport { TransactionBoundWitnessCard } from './card/index.ts'\n\nexport interface TransactionBoundWitnessDetailsProps extends FlexBoxProps {\n transaction?: SignedHydratedTransaction | null\n}\n\nexport const TransactionBoundWitnessDetails: React.FC<TransactionBoundWitnessDetailsProps> = ({ transaction, ...props }) => {\n const [wrapper, wrapperError] = usePromise(async () => {\n if (transaction) {\n return await SignedHydratedTransactionWrapper.parse(transaction)\n }\n }, [transaction])\n\n const [elevatedPayloadSets, elevatedPayloadSetsError] = usePromise(async () => {\n if (isDefined(wrapper)) {\n const elevatedPayloads = wrapper.elevatedPayloads\n const pairs = await PayloadBuilder.hashPairs(elevatedPayloads)\n return formatPayloadsForTable(pairs)\n } else {\n return { hashes: [], schemas: [] }\n }\n }, [wrapper])\n\n const { hashes: elevatedPayloadHashes, schemas: elevatedPayloadSchemas } = elevatedPayloadSets ?? {}\n\n return (\n <FlexCol alignItems=\"stretch\" rowGap={2} {...props}>\n <HashHeadingPaper\n hash={wrapper?.boundWitness?._hash}\n paperProps={{ sx: { p: 2 } }}\n AdornmentEnd={<BWActions boundwitness={wrapper?.boundWitness} />}\n identiconProps={{ p: 0.75, size: 24 }}\n />\n <ErrorRender error={wrapperError} scope=\"wrapperError:TransactionBoundWitnessDetails.tsx\" />\n <ErrorRender error={elevatedPayloadSetsError} scope=\"elevatedPayloadSetsError:TransactionBoundWitnessDetails.tsx\" />\n <TransactionBoundWitnessCard elevation={4} wrapper={wrapper} />\n <BWPayloadTableFlexbox\n IconComponent={<VscSymbolMethod />}\n hashes={elevatedPayloadHashes}\n headingTitle=\"Elevated Payloads\"\n schemas={elevatedPayloadSchemas}\n sx={{ mb: 1 }}\n />\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<FaSignature />} heading=\"Signatures\" />\n <BoundWitnessSignatureTable block={wrapper?.boundWitness} />\n </FlexCol>\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["filterAs","ErrorRender","FlexCol","usePromise","isBoundWitness","SignedHydratedBlockWrapper","PayloadBuilder","BoundWitnessPayloadsTable","BoundWitnessSignatureTable","BWActions","HashHeadingPaper","HeadingPaper","useTxsFromBlock","usePayloadHash","isTransactionBoundWitness","React","useMemo","FaSignature","GrTransaction","VscSymbolMethod","VscSymbolNamespace","isUndefined","bigIntToFixedPointString","formatFee","fee","isUndefined","stringValue","bigIntToFixedPointString","formatPayloadsForTable","pairs","hashes","schemas","bw","hash","push","schema","formatResults","results","result","labels","values","label","value","Object","entries","push","FlexCol","BoundWitnessPayloadTableBody","BoundWitnessPayloadTableHead","HeadingPaper","TableEx","React","VscSymbolMethod","clickableFields","BWPayloadTableFlexbox","IconComponent","eventNoun","hashes","schemas","headingTitle","props","resolvedIconComponent","VscSymbolMethod","FlexCol","alignItems","rowGap","HeadingPaper","heading","TableEx","BoundWitnessPayloadTableHead","BoundWitnessPayloadTableBody","payloadHashes","payloadSchemas","Card","CardContent","Grid","ErrorRender","DetailsStack","LabelValueStack","React","GrSteps","IoStatsChartOutline","VscSymbolNamespace","CardHeader","Link","Tooltip","Typography","BlockiesAvatarAddress","useEvent","React","BlockBoundWitnessCardHeader","linked","address","ref","dispatch","useEvent","React","CardHeader","title","Typography","onClick","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","avatar","Tooltip","BlockiesAvatarAddress","size","ellipsize","usePromise","stepWindowCalculatorFromBlock","useMemo","useBlockDetails","wrapper","viewer","stats","useMemo","Height","boundWitness","block","toLocaleString","navigator","language","Protocol","protocol","toString","Signatures","signatureCount","$epoch","formatResults","payloads","transactionCount","publicPayloadCount","privatePayloadCount","payloadCount","stepHashes","stepHashesError","usePromise","step","hash","step_hashes","blockByHash","console","warn","blockNumber","stepWindow","stepWindowCalculatorFromBlock","join","ellipsize","e","error","defaultValue","labels","values","BlockBoundWitnessCard","linkedAddress","viewer","wrapper","props","stats","payloads","stepHashes","stepHashesError","useBlockDetails","React","Card","boundWitness","addresses","map","address","BlockBoundWitnessCardHeader","key","linked","ErrorRender","error","scope","CardContent","Grid","container","spacing","sx","width","size","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","VscSymbolNamespace","GrSteps","BlockBoundWitnessDetails","block","paper","viewer","children","props","wrapper","wrapperError","usePromise","SignedHydratedBlockWrapper","parse","boundWitness","payloads","hash","usePayloadHash","transactions","txFromBlockError","useTxsFromBlock","hashes","txHashes","schemas","txSchemas","useMemo","formatPayloadsForTable","nonTxBoundWitnesses","bwsFromBlockError","bws","filterAs","payload","isTransactionBoundWitness","isBoundWitness","undefined","PayloadBuilder","hashPairs","nonTxBwHashes","nonTxBwSchemas","hasNonTxBoundWitnesses","length","React","FlexCol","alignItems","rowGap","ErrorRender","error","scope","HashHeadingPaper","paperProps","sx","p","AdornmentEnd","BWActions","boundwitness","identiconProps","size","BlockBoundWitnessCard","elevation","BWPayloadTableFlexbox","IconComponent","GrTransaction","eventNoun","headingTitle","mb","HeadingPaper","VscSymbolNamespace","heading","BoundWitnessPayloadsTable","VscSymbolMethod","FaSignature","BoundWitnessSignatureTable","Card","CardContent","CardHeader","Grid","Link","Tooltip","Typography","BlockiesAvatarAddress","DetailsStack","LabelValueStack","useEvent","React","GiReceiveMoney","GiSandsOfTime","IoStatsChartOutline","useMemo","useTransactionDetails","wrapper","stats","useMemo","reward","toLocaleString","navigator","language","elevatedPayloadCount","payloadCount","signatureCount","formatResults","fees","formatFee","base","gasPrice","priority","gasLimit","blockDuration","boundWitness","exp","nbf","TransactionBoundWitnessCard","linkedAddress","wrapper","props","stats","fees","blockDuration","useTransactionDetails","ref","dispatch","useEvent","React","Card","CardHeader","title","Typography","onClick","boundWitness","from","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","avatar","Tooltip","BlockiesAvatarAddress","address","size","CardContent","Grid","container","spacing","width","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","GiReceiveMoney","GiSandsOfTime","ErrorRender","FlexCol","usePromise","isDefined","SignedHydratedTransactionWrapper","PayloadBuilder","BoundWitnessSignatureTable","BWActions","HashHeadingPaper","HeadingPaper","React","FaSignature","VscSymbolMethod","TransactionBoundWitnessDetails","transaction","props","wrapper","wrapperError","usePromise","SignedHydratedTransactionWrapper","parse","elevatedPayloadSets","elevatedPayloadSetsError","isDefined","elevatedPayloads","pairs","PayloadBuilder","hashPairs","formatPayloadsForTable","hashes","schemas","elevatedPayloadHashes","elevatedPayloadSchemas","React","FlexCol","alignItems","rowGap","HashHeadingPaper","hash","boundWitness","_hash","paperProps","sx","p","AdornmentEnd","BWActions","boundwitness","identiconProps","size","ErrorRender","error","scope","TransactionBoundWitnessCard","elevation","BWPayloadTableFlexbox","IconComponent","VscSymbolMethod","headingTitle","mb","HeadingPaper","FaSignature","heading","BoundWitnessSignatureTable","block"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/block/BlockBoundWitnessDetails.tsx","../../src/lib/formatFees.ts","../../src/lib/formatPayloadsForTable.ts","../../src/lib/formatResults.ts","../../src/components/BwPayloadTable.tsx","../../src/components/block/card/Card.tsx","../../src/components/block/card/CardHeader.tsx","../../src/components/block/card/hooks/useDetails.ts","../../src/components/transactions/card/Card.tsx","../../src/components/transactions/card/hooks/useDetails.ts","../../src/components/transactions/TransactionDetails.tsx"],"sourcesContent":["import { filterAs } from '@xylabs/array'\nimport { ErrorRender } from '@xylabs/react-error'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { SignedHydratedBlockWrapper } from '@xyo-network/chain-wrappers'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport {\n BoundWitnessPayloadsTable,\n BoundWitnessSignatureTable,\n BWActions,\n HashHeadingPaper,\n HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport { useTxsFromBlock } from '@xyo-network/react-chain-blockchain'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport type { SignedHydratedBlock, XyoViewer } from '@xyo-network/xl1-protocol'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'\nimport React, { useMemo } from 'react'\nimport { FaSignature } from 'react-icons/fa'\nimport { GrTransaction } from 'react-icons/gr'\nimport { VscSymbolMethod, VscSymbolNamespace } from 'react-icons/vsc'\n\nimport { formatPayloadsForTable } from '../../lib/index.ts'\nimport type { TransactionBoundWitnessEvents } from '../../types/index.ts'\nimport { BWPayloadTableFlexbox } from '../BwPayloadTable.tsx'\nimport { BlockBoundWitnessCard } from './card/Card.tsx'\n\nexport interface BoundWitnessDetailsProps extends FlexBoxProps {\n block?: SignedHydratedBlock\n viewer?: XyoViewer\n}\n\nexport const BlockBoundWitnessDetails = ({\n block, paper, viewer, children, ...props\n}: BoundWitnessDetailsProps) => {\n const [wrapper, wrapperError] = usePromise(async () => {\n if (block) {\n return await SignedHydratedBlockWrapper.parse(block)\n }\n }, [block])\n\n const boundWitness = block?.[0]\n const payloads = block?.[1]\n\n const hash = usePayloadHash(boundWitness)\n\n const [transactions, txFromBlockError] = useTxsFromBlock(block)\n\n const { hashes: txHashes, schemas: txSchemas } = useMemo(() => formatPayloadsForTable(transactions ?? []), [transactions])\n\n const [nonTxBoundWitnesses, bwsFromBlockError] = usePromise(async () => {\n const bws = filterAs(payloads ?? [], payload =>\n (!isTransactionBoundWitness(payload) && isBoundWitness(payload)) ? payload : undefined)\n return await PayloadBuilder.hashPairs(bws)\n }, [payloads])\n\n const { hashes: nonTxBwHashes, schemas: nonTxBwSchemas } = useMemo(() => formatPayloadsForTable(nonTxBoundWitnesses ?? []), [nonTxBoundWitnesses])\n const hasNonTxBoundWitnesses = (nonTxBoundWitnesses?.length ?? 0) > 0\n\n return (\n <FlexCol alignItems=\"stretch\" rowGap={4} {...props}>\n <ErrorRender error={txFromBlockError ?? bwsFromBlockError} scope=\"BlockBoundWitnessDetails.tsx\" />\n <ErrorRender error={wrapperError} scope=\"BlockBoundWitnessDetails.tsx:wrapperError\" />\n <HashHeadingPaper\n hash={hash}\n paperProps={{ sx: { p: 2 } }}\n AdornmentEnd={<BWActions boundwitness={boundWitness} />}\n identiconProps={{ p: 0.75, size: 24 }}\n />\n <BlockBoundWitnessCard elevation={4} viewer={viewer} wrapper={wrapper} />\n {(transactions?.length ?? 0) > 0 && (\n <BWPayloadTableFlexbox<TransactionBoundWitnessEvents>\n IconComponent={<GrTransaction />}\n eventNoun=\"transaction\"\n hashes={txHashes}\n headingTitle=\"Transactions\"\n schemas={txSchemas}\n sx={{ mb: 1 }}\n />\n )}\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<VscSymbolNamespace />} heading=\"Payloads\" />\n <BoundWitnessPayloadsTable boundwitness={boundWitness} />\n </FlexCol>\n {hasNonTxBoundWitnesses\n ? (\n <BWPayloadTableFlexbox<TransactionBoundWitnessEvents>\n IconComponent={<VscSymbolMethod />}\n eventNoun=\"boundwitness\"\n hashes={nonTxBwHashes}\n headingTitle=\"Bound Witnesses\"\n schemas={nonTxBwSchemas}\n sx={{ mb: 1 }}\n />\n )\n : null}\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<FaSignature />} heading=\"Signatures\" />\n <BoundWitnessSignatureTable block={boundWitness} />\n </FlexCol>\n </FlexCol>\n )\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport { bigIntToFixedPointString } from '@xyo-network/chain-utils'\n\nexport const formatFee = (fee?: bigint) => {\n if (isUndefined(fee)) return 'N/A'\n const stringValue = bigIntToFixedPointString(fee, 12)\n if (stringValue === '0') return stringValue\n return stringValue\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport const formatPayloadsForTable = (pairs: [Payload, Hash][]) => {\n let hashes: Hash[] = []\n let schemas: string[] = []\n for (const [bw, hash] of pairs ?? []) {\n hashes.push(hash)\n schemas.push(bw?.schema ?? '')\n }\n return { hashes, schemas }\n}\n","export const formatResults = (results: Record<string, string>) => {\n const result = { labels: [] as string[], values: [] as string[] }\n for (const [label, value] of Object.entries(results)) {\n result.labels.push(label)\n result.values.push(value)\n }\n return result\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport {\n BoundWitnessPayloadTableBody, BoundWitnessPayloadTableHead, HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport type { EventNoun, ExtendEventNoun } from '@xyo-network/react-event'\nimport { TableEx } from '@xyo-network/react-table'\nimport React from 'react'\nimport { VscSymbolMethod } from 'react-icons/vsc'\n\nconst clickableFields = 'hash'\n\nexport interface BWPayloadTableFlexboxProps<TNoun extends ExtendEventNoun = EventNoun> extends FlexBoxProps {\n IconComponent?: React.ReactNode\n eventNoun?: TNoun\n hashes?: Hash[]\n headingTitle?: string\n schemas?: string[]\n}\n\nexport const BWPayloadTableFlexbox = <TNoun extends ExtendEventNoun = EventNoun>({\n IconComponent,\n eventNoun,\n hashes,\n schemas,\n headingTitle,\n ...props\n}: BWPayloadTableFlexboxProps<TNoun>) => {\n const resolvedIconComponent = IconComponent ?? <VscSymbolMethod />\n return (\n <FlexCol alignItems=\"stretch\" rowGap={1} {...props}>\n <HeadingPaper IconComponent={resolvedIconComponent} heading={headingTitle} />\n <TableEx>\n <BoundWitnessPayloadTableHead />\n <BoundWitnessPayloadTableBody<TNoun> payloadHashes={hashes} payloadSchemas={schemas} eventNoun={eventNoun} clickableFields={[clickableFields]} />\n </TableEx>\n </FlexCol>\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, Grid,\n} from '@mui/material'\nimport { ErrorRender } from '@xylabs/react-error'\nimport { DetailsStack, LabelValueStack } from '@xyo-network/react-chain-shared'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\nimport type { SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk'\nimport React from 'react'\nimport { GrSteps } from 'react-icons/gr'\nimport { IoStatsChartOutline } from 'react-icons/io5'\nimport { VscSymbolNamespace } from 'react-icons/vsc'\n\nimport { BlockBoundWitnessCardHeader } from './CardHeader.tsx'\nimport { useBlockDetails } from './hooks/index.ts'\n\nexport interface BlockBoundWitnessCardProps extends CardProps {\n linkedAddress?: boolean\n viewer?: XyoViewer\n wrapper?: SignedHydratedBlockInstance\n}\n\nexport const BlockBoundWitnessCard: React.FC<BlockBoundWitnessCardProps> = ({\n linkedAddress = true, viewer, wrapper, ...props\n}) => {\n if (!wrapper) return null\n\n const {\n stats, payloads, stepHashes, stepHashesError,\n } = useBlockDetails(wrapper, viewer)\n\n return (\n <Card {...props}>\n {wrapper?.boundWitness.addresses.map(address => <BlockBoundWitnessCardHeader key={address} address={address} linked={linkedAddress} />)}\n <ErrorRender error={stepHashesError} scope=\"BlockBoundWitnessCard.tsx:stepHashesError\" />\n <CardContent>\n <Grid container spacing={6} sx={{ width: '100%' }}>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={IoStatsChartOutline} heading=\"Stats\" tooltipTitle=\"Transaction Statistics\">\n <LabelValueStack labels={stats.labels} values={stats.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={VscSymbolNamespace} heading=\"Payloads\" tooltipTitle=\"Payloads within the Block\">\n <LabelValueStack labels={payloads.labels} values={payloads.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={GrSteps} heading=\"Step Hashes\" tooltipTitle=\"Step Hashes for the Block\">\n <LabelValueStack labels={stepHashes?.labels ?? []} values={stepHashes?.values ?? []} />\n </DetailsStack>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n )\n}\n","import type { CardHeaderProps } from '@mui/material'\nimport {\n CardHeader, Link,\n Tooltip, Typography,\n} from '@mui/material'\nimport type { Address } from '@xylabs/hex'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport { useEvent } from '@xyo-network/react-event'\nimport React from 'react'\n\nexport interface BlockBoundWitnessCardHeaderProps extends CardHeaderProps {\n address?: Address\n linked?: boolean\n}\n\nexport const BlockBoundWitnessCardHeader: React.FC<BlockBoundWitnessCardHeaderProps> = ({ linked = true, address }) => {\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n\n return (\n <CardHeader\n ref={ref}\n title={(\n <Typography\n onClick={() => linked && dispatch('address', 'click', address)}\n variant=\"body2\"\n sx={{\n maxWidth: '100%', textOverflow: 'ellipsis', overflow: 'hidden', fontFamily: 'monospace',\n }}\n >\n {linked\n ? (\n <Link sx={{ cursor: 'pointer' }}>{address}</Link>\n )\n : address}\n </Typography>\n )}\n avatar={(\n <Tooltip title={`Address - ${address}`}>\n <BlockiesAvatarAddress\n address={address}\n onClick={() => dispatch('address', 'click', address)}\n size={21}\n sx={{ cursor: 'pointer' }}\n />\n </Tooltip>\n )}\n />\n )\n}\n","import { ellipsize } from '@xylabs/eth-address'\nimport { usePromise } from '@xylabs/react-promise'\nimport { stepWindowCalculatorFromBlock } from '@xyo-network/chain-utils'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\nimport type { SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk'\nimport { useMemo } from 'react'\n\nimport { formatResults } from '../../../../lib/index.ts'\n\nexport const useBlockDetails = (wrapper: SignedHydratedBlockInstance, viewer?: XyoViewer) => {\n const stats = useMemo(() => {\n const stats = {\n Height: wrapper.boundWitness.block.toLocaleString(navigator.language ?? 'en-US'),\n Protocol: wrapper.boundWitness.protocol.toString(),\n Signatures: wrapper.signatureCount.toLocaleString(navigator.language ?? 'en-US'),\n $epoch: wrapper.boundWitness.$epoch.toString(),\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const payloads = useMemo(() => {\n const payloads = {\n 'Transactions': wrapper.transactionCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Public Payloads': wrapper.publicPayloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Private Payloads': wrapper.privatePayloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Total Payloads': wrapper.payloadCount.toLocaleString(navigator.language ?? 'en-US'),\n }\n\n return formatResults(payloads)\n }, [wrapper])\n\n const [stepHashes, stepHashesError] = usePromise(async () => {\n if (viewer) {\n const stepHashes = {} as Record<string, string>\n let step = 0\n for (const hash of wrapper.boundWitness.step_hashes) {\n try {\n const block = await viewer.blockByHash(hash)\n if (block === null) {\n console.warn(`Block not found for step hash ${hash}`)\n step++\n stepHashes[`Step ${step}`] = 'N/A'\n continue\n }\n const blockNumber = block[0].block\n const stepWindow = stepWindowCalculatorFromBlock(blockNumber)\n step++\n stepHashes[`Step ${step}`] = stepWindow.join(' - ') + ` (${ellipsize(hash, 4)})`\n } catch (e) {\n console.error(`Error fetching block for step hash ${hash}:`, e)\n step++\n stepHashes[`Step ${step}`] = 'N/A'\n }\n }\n\n return formatResults(stepHashes)\n }\n }, [wrapper, viewer], { defaultValue: { labels: [], values: [] } })\n\n return {\n stats, payloads, stepHashes, stepHashesError,\n }\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, CardHeader, Grid, Link, Tooltip, Typography,\n} from '@mui/material'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport { DetailsStack, LabelValueStack } from '@xyo-network/react-chain-shared'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'\nimport React from 'react'\nimport { GiReceiveMoney, GiSandsOfTime } from 'react-icons/gi'\nimport { IoStatsChartOutline } from 'react-icons/io5'\n\nimport { useTransactionDetails } from './hooks/index.ts'\n\nexport interface TransactionBoundWitnessCardProps extends CardProps {\n linkedAddress?: boolean\n wrapper?: SignedHydratedTransactionInstance\n}\n\nexport const TransactionBoundWitnessCard: React.FC<TransactionBoundWitnessCardProps> = ({\n linkedAddress = true, wrapper, ...props\n}) => {\n if (!wrapper) return null\n\n const {\n stats, fees, blockDuration,\n } = useTransactionDetails(wrapper)\n\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n\n return (\n <Card ref={ref} {...props}>\n <CardHeader\n title={(\n <Typography\n onClick={() => linkedAddress && dispatch('address', 'click', wrapper.boundWitness.from)}\n variant=\"body2\"\n sx={{\n maxWidth: '100%', textOverflow: 'ellipsis', overflow: 'hidden', fontFamily: 'monospace',\n }}\n >\n {linkedAddress\n ? (\n <Link sx={{ cursor: 'pointer' }}>{wrapper?.boundWitness.from}</Link>\n )\n : wrapper?.boundWitness.from}\n </Typography>\n )}\n avatar={(\n <Tooltip title={`From Address - ${wrapper?.boundWitness.from}`}>\n <BlockiesAvatarAddress\n address={wrapper?.boundWitness.from}\n onClick={() => dispatch('address', 'click', wrapper.boundWitness.from)}\n size={21}\n sx={{ cursor: 'pointer' }}\n />\n </Tooltip>\n )}\n />\n <CardContent>\n <Grid container spacing={6} sx={{ width: '100%' }}>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={IoStatsChartOutline} heading=\"Stats\" tooltipTitle=\"Transaction Statistics\">\n <LabelValueStack labels={stats.labels} values={stats.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={GiReceiveMoney} heading=\"Fees\" tooltipTitle=\"Fees offered to the producer\">\n <LabelValueStack labels={fees.labels} values={fees.values} />\n </DetailsStack>\n </Grid>\n <Grid size={{\n xs: 12, sm: 6, md: 4,\n }}\n >\n <DetailsStack IconComponent={GiSandsOfTime} heading=\"Block Duration\" tooltipTitle=\"Block window for the transaction to be valid\">\n <LabelValueStack labels={blockDuration.labels} values={blockDuration.values} />\n </DetailsStack>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n )\n}\n","import type { SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'\nimport { useMemo } from 'react'\n\nimport { formatFee, formatResults } from '../../../../lib/index.ts'\n\nexport const useTransactionDetails = (wrapper: SignedHydratedTransactionInstance) => {\n const stats = useMemo(() => {\n const stats = {\n 'Reward': wrapper.reward().toLocaleString(navigator.language ?? 'en-US'),\n 'Elevated Payloads': wrapper.elevatedPayloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Total Payloads': wrapper.payloadCount.toLocaleString(navigator.language ?? 'en-US'),\n 'Signatures': wrapper.signatureCount.toLocaleString(navigator.language ?? 'en-US'),\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const fees = useMemo(() => {\n const fees = {\n 'Base': formatFee(wrapper.fees.base),\n 'Gas': formatFee(wrapper.fees.gasPrice),\n 'Priority': formatFee(wrapper.fees.priority),\n 'Gas Limit': formatFee(wrapper.fees.gasLimit),\n }\n\n return formatResults(fees)\n }, [wrapper])\n\n const blockDuration = useMemo(() => {\n const blockDuration = {\n 'Expiration': wrapper.boundWitness.exp.toLocaleString(navigator.language ?? 'en-US'),\n 'Not Before': wrapper.boundWitness.nbf.toLocaleString(navigator.language ?? 'en-US'),\n }\n\n return formatResults(blockDuration)\n }, [wrapper])\n\n return {\n stats, fees, blockDuration,\n }\n}\n","import { ErrorRender } from '@xylabs/react-error'\nimport { type FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport { SignedHydratedTransactionWrapper } from '@xyo-network/chain-wrappers'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport {\n BoundWitnessSignatureTable, BWActions, HashHeadingPaper, HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'\nimport React from 'react'\nimport { FaSignature } from 'react-icons/fa'\nimport { VscSymbolMethod } from 'react-icons/vsc'\n\nimport { formatPayloadsForTable } from '../../lib/index.ts'\nimport { BWPayloadTableFlexbox } from '../BwPayloadTable.tsx'\nimport { TransactionBoundWitnessCard } from './card/index.ts'\n\nexport interface TransactionBoundWitnessDetailsProps extends FlexBoxProps {\n transaction?: SignedHydratedTransaction | null\n}\n\nexport const TransactionBoundWitnessDetails: React.FC<TransactionBoundWitnessDetailsProps> = ({ transaction, ...props }) => {\n const [wrapper, wrapperError] = usePromise(async () => {\n if (transaction) {\n return await SignedHydratedTransactionWrapper.parse(transaction)\n }\n }, [transaction])\n\n const [elevatedPayloadSets, elevatedPayloadSetsError] = usePromise(async () => {\n if (isDefined(wrapper)) {\n const elevatedPayloads = wrapper.elevatedPayloads\n const pairs = await PayloadBuilder.hashPairs(elevatedPayloads)\n return formatPayloadsForTable(pairs)\n } else {\n return { hashes: [], schemas: [] }\n }\n }, [wrapper])\n\n const { hashes: elevatedPayloadHashes, schemas: elevatedPayloadSchemas } = elevatedPayloadSets ?? {}\n\n return (\n <FlexCol alignItems=\"stretch\" rowGap={2} {...props}>\n <HashHeadingPaper\n hash={wrapper?.boundWitness?._hash}\n paperProps={{ sx: { p: 2 } }}\n AdornmentEnd={<BWActions boundwitness={wrapper?.boundWitness} />}\n identiconProps={{ p: 0.75, size: 24 }}\n />\n <ErrorRender error={wrapperError} scope=\"wrapperError:TransactionBoundWitnessDetails.tsx\" />\n <ErrorRender error={elevatedPayloadSetsError} scope=\"elevatedPayloadSetsError:TransactionBoundWitnessDetails.tsx\" />\n <TransactionBoundWitnessCard elevation={4} wrapper={wrapper} />\n <BWPayloadTableFlexbox\n IconComponent={<VscSymbolMethod />}\n hashes={elevatedPayloadHashes}\n headingTitle=\"Elevated Payloads\"\n schemas={elevatedPayloadSchemas}\n sx={{ mb: 1 }}\n />\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<FaSignature />} heading=\"Signatures\" />\n <BoundWitnessSignatureTable block={wrapper?.boundWitness} />\n </FlexCol>\n </FlexCol>\n )\n}\n"],"mappings":"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","names":["filterAs","ErrorRender","FlexCol","usePromise","isBoundWitness","SignedHydratedBlockWrapper","PayloadBuilder","BoundWitnessPayloadsTable","BoundWitnessSignatureTable","BWActions","HashHeadingPaper","HeadingPaper","useTxsFromBlock","usePayloadHash","isTransactionBoundWitness","React","useMemo","FaSignature","GrTransaction","VscSymbolMethod","VscSymbolNamespace","isUndefined","bigIntToFixedPointString","formatFee","fee","isUndefined","stringValue","bigIntToFixedPointString","formatPayloadsForTable","pairs","hashes","schemas","bw","hash","push","schema","formatResults","results","result","labels","values","label","value","Object","entries","push","FlexCol","BoundWitnessPayloadTableBody","BoundWitnessPayloadTableHead","HeadingPaper","TableEx","React","VscSymbolMethod","clickableFields","BWPayloadTableFlexbox","IconComponent","eventNoun","hashes","schemas","headingTitle","props","resolvedIconComponent","VscSymbolMethod","FlexCol","alignItems","rowGap","HeadingPaper","heading","TableEx","BoundWitnessPayloadTableHead","BoundWitnessPayloadTableBody","payloadHashes","payloadSchemas","Card","CardContent","Grid","ErrorRender","DetailsStack","LabelValueStack","React","GrSteps","IoStatsChartOutline","VscSymbolNamespace","CardHeader","Link","Tooltip","Typography","BlockiesAvatarAddress","useEvent","React","BlockBoundWitnessCardHeader","linked","address","ref","dispatch","useEvent","React","CardHeader","title","Typography","onClick","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","avatar","Tooltip","BlockiesAvatarAddress","size","ellipsize","usePromise","stepWindowCalculatorFromBlock","useMemo","useBlockDetails","wrapper","viewer","stats","useMemo","Height","boundWitness","block","toLocaleString","navigator","language","Protocol","protocol","toString","Signatures","signatureCount","$epoch","formatResults","payloads","transactionCount","publicPayloadCount","privatePayloadCount","payloadCount","stepHashes","stepHashesError","usePromise","step","hash","step_hashes","blockByHash","console","warn","blockNumber","stepWindow","stepWindowCalculatorFromBlock","join","ellipsize","e","error","defaultValue","labels","values","BlockBoundWitnessCard","linkedAddress","viewer","wrapper","props","stats","payloads","stepHashes","stepHashesError","useBlockDetails","React","Card","boundWitness","addresses","map","address","BlockBoundWitnessCardHeader","key","linked","ErrorRender","error","scope","CardContent","Grid","container","spacing","sx","width","size","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","VscSymbolNamespace","GrSteps","BlockBoundWitnessDetails","block","paper","viewer","children","props","wrapper","wrapperError","usePromise","SignedHydratedBlockWrapper","parse","boundWitness","payloads","hash","usePayloadHash","transactions","txFromBlockError","useTxsFromBlock","hashes","txHashes","schemas","txSchemas","useMemo","formatPayloadsForTable","nonTxBoundWitnesses","bwsFromBlockError","bws","filterAs","payload","isTransactionBoundWitness","isBoundWitness","undefined","PayloadBuilder","hashPairs","nonTxBwHashes","nonTxBwSchemas","hasNonTxBoundWitnesses","length","React","FlexCol","alignItems","rowGap","ErrorRender","error","scope","HashHeadingPaper","paperProps","sx","p","AdornmentEnd","BWActions","boundwitness","identiconProps","size","BlockBoundWitnessCard","elevation","BWPayloadTableFlexbox","IconComponent","GrTransaction","eventNoun","headingTitle","mb","HeadingPaper","VscSymbolNamespace","heading","BoundWitnessPayloadsTable","VscSymbolMethod","FaSignature","BoundWitnessSignatureTable","Card","CardContent","CardHeader","Grid","Link","Tooltip","Typography","BlockiesAvatarAddress","DetailsStack","LabelValueStack","useEvent","React","GiReceiveMoney","GiSandsOfTime","IoStatsChartOutline","useMemo","useTransactionDetails","wrapper","stats","useMemo","reward","toLocaleString","navigator","language","elevatedPayloadCount","payloadCount","signatureCount","formatResults","fees","formatFee","base","gasPrice","priority","gasLimit","blockDuration","boundWitness","exp","nbf","TransactionBoundWitnessCard","linkedAddress","wrapper","props","stats","fees","blockDuration","useTransactionDetails","ref","dispatch","useEvent","React","Card","CardHeader","title","Typography","onClick","boundWitness","from","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","avatar","Tooltip","BlockiesAvatarAddress","address","size","CardContent","Grid","container","spacing","width","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","GiReceiveMoney","GiSandsOfTime","ErrorRender","FlexCol","usePromise","isDefined","SignedHydratedTransactionWrapper","PayloadBuilder","BoundWitnessSignatureTable","BWActions","HashHeadingPaper","HeadingPaper","React","FaSignature","VscSymbolMethod","TransactionBoundWitnessDetails","transaction","props","wrapper","wrapperError","usePromise","SignedHydratedTransactionWrapper","parse","elevatedPayloadSets","elevatedPayloadSetsError","isDefined","elevatedPayloads","pairs","PayloadBuilder","hashPairs","formatPayloadsForTable","hashes","schemas","elevatedPayloadHashes","elevatedPayloadSchemas","React","FlexCol","alignItems","rowGap","HashHeadingPaper","hash","boundWitness","_hash","paperProps","sx","p","AdornmentEnd","BWActions","boundwitness","identiconProps","size","ErrorRender","error","scope","TransactionBoundWitnessCard","elevation","BWPayloadTableFlexbox","IconComponent","VscSymbolMethod","headingTitle","mb","HeadingPaper","FaSignature","heading","BoundWitnessSignatureTable","block"]}
|
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-boundwitness",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.20",
|
|
5
5
|
"description": "XYO Layer One React SDK BoundWitness",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"@xylabs/react-promise": "^6.3.4",
|
|
43
43
|
"@xylabs/typeof": "^4.11.14",
|
|
44
44
|
"@xyo-network/boundwitness-model": "^3.18.4",
|
|
45
|
-
"@xyo-network/chain-utils": "^1.5.
|
|
46
|
-
"@xyo-network/chain-wrappers": "^1.5.
|
|
45
|
+
"@xyo-network/chain-utils": "^1.5.20",
|
|
46
|
+
"@xyo-network/chain-wrappers": "^1.5.20",
|
|
47
47
|
"@xyo-network/payload-builder": "^3.18.4",
|
|
48
48
|
"@xyo-network/payload-model": "^3.18.4",
|
|
49
49
|
"@xyo-network/react-boundwitness-plugin": "^5.3.7",
|
|
50
|
-
"@xyo-network/react-chain-blockchain": "^1.5.
|
|
51
|
-
"@xyo-network/react-chain-blockies": "^1.5.
|
|
52
|
-
"@xyo-network/react-chain-provider": "^1.5.
|
|
53
|
-
"@xyo-network/react-chain-shared": "^1.5.
|
|
50
|
+
"@xyo-network/react-chain-blockchain": "^1.5.20",
|
|
51
|
+
"@xyo-network/react-chain-blockies": "^1.5.20",
|
|
52
|
+
"@xyo-network/react-chain-provider": "^1.5.20",
|
|
53
|
+
"@xyo-network/react-chain-shared": "^1.5.20",
|
|
54
54
|
"@xyo-network/react-event": "^5.3.7",
|
|
55
55
|
"@xyo-network/react-shared": "^5.3.7",
|
|
56
56
|
"@xyo-network/react-table": "^5.3.7",
|
|
57
57
|
"@xyo-network/xl1-protocol": "^1.4.19",
|
|
58
|
-
"@xyo-network/xl1-protocol-sdk": "^1.5.
|
|
58
|
+
"@xyo-network/xl1-protocol-sdk": "^1.5.20",
|
|
59
59
|
"react-icons": "^5.5.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"@storybook/react-vite": "^9.0.5",
|
|
67
67
|
"@xylabs/ts-scripts-yarn3": "^6.5.8",
|
|
68
68
|
"@xylabs/tsconfig-react": "^6.5.8",
|
|
69
|
-
"@xyo-network/chain-protocol": "^1.5.
|
|
70
|
-
"@xyo-network/react-chain-network": "^1.5.
|
|
71
|
-
"@xyo-network/react-chain-shared": "^1.5.
|
|
69
|
+
"@xyo-network/chain-protocol": "^1.5.20",
|
|
70
|
+
"@xyo-network/react-chain-network": "^1.5.20",
|
|
71
|
+
"@xyo-network/react-chain-shared": "^1.5.20",
|
|
72
72
|
"knip": "^5.60.2",
|
|
73
73
|
"react": "^19.1.0",
|
|
74
74
|
"react-dom": "^19.1.0",
|
|
@@ -46,7 +46,7 @@ export const useBlockDetails = (wrapper: SignedHydratedBlockInstance, viewer?: X
|
|
|
46
46
|
const blockNumber = block[0].block
|
|
47
47
|
const stepWindow = stepWindowCalculatorFromBlock(blockNumber)
|
|
48
48
|
step++
|
|
49
|
-
stepHashes[`Step ${step}`] = stepWindow.join(' - ') + ` (${ellipsize(hash,
|
|
49
|
+
stepHashes[`Step ${step}`] = stepWindow.join(' - ') + ` (${ellipsize(hash, 4)})`
|
|
50
50
|
} catch (e) {
|
|
51
51
|
console.error(`Error fetching block for step hash ${hash}:`, e)
|
|
52
52
|
step++
|