@xyo-network/react-chain-boundwitness 1.20.27 → 1.20.29

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.
@@ -1 +1 @@
1
- {"version":3,"file":"usePayloadTypes.d.ts","sourceRoot":"","sources":["../../../../../src/components/transactions/hooks/usePayloadTypes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAKvE,eAAO,MAAM,0BAA0B,GAAI,UAAU,2BAA2B;;;;;;;;;;CA2D/E,CAAA"}
1
+ {"version":3,"file":"usePayloadTypes.d.ts","sourceRoot":"","sources":["../../../../../src/components/transactions/hooks/usePayloadTypes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAKvE,eAAO,MAAM,0BAA0B,GAAI,UAAU,2BAA2B;;;;;;;;;;CAsD/E,CAAA"}
@@ -776,16 +776,11 @@ var useTransactionPayloadTypes = /* @__PURE__ */ __name((wrapper) => {
776
776
  if (isDefined6(wrapper)) {
777
777
  const referencedPayloads2 = wrapper.privateExternalPayloads;
778
778
  for (const [hash, schema] of Object.entries(referencedPayloads2)) {
779
- let resolved = false;
780
- if (isHash(hash)) {
781
- ret.hashes.push(hash);
782
- resolved = true;
783
- }
784
- if (isSchema(schema)) {
785
- ret.schemas.push(schema);
786
- resolved = true;
787
- }
788
- if (!resolved) {
779
+ const hashValid = isHash(hash);
780
+ const schemaValid = isSchema(schema);
781
+ if (hashValid) ret.hashes.push(hash);
782
+ if (schemaValid) ret.schemas.push(schema);
783
+ if (!hashValid && !schemaValid) {
789
784
  errors.push(new Error(`Unexpected payload or schema type for hash ${hash}: ${schema}`));
790
785
  }
791
786
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/block/BlockBoundWitnessDetails.tsx","../../src/lib/formatFees.ts","../../src/lib/formatNumber.ts","../../src/lib/formatPayloadsForTable.ts","../../src/lib/formatResults.ts","../../src/components/PayloadTable.tsx","../../src/components/block/card/actions/BlockBoundWitnessActions.tsx","../../src/components/block/card/actions/BlockBoundWitnessVerification.tsx","../../src/components/block/card/Card.tsx","../../src/components/block/card/CardHeader.tsx","../../src/components/block/card/hooks/useDetails.ts","../../src/components/transactions/card/actions/TransactionActions.tsx","../../src/components/transactions/card/actions/TransactionVerification.tsx","../../src/components/transactions/card/Card.tsx","../../src/components/transactions/card/hooks/useDetails.ts","../../src/components/transactions/TransactionBoundWitnessDetails.tsx","../../src/components/transactions/hooks/usePayloadTypes.ts"],"sourcesContent":["import { 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 { filterAs } from '@xylabs/sdk-js'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { HydratedBlockWrapper } from '@xyo-network/chain-wrappers'\nimport {\n BoundWitnessPayloadsTable,\n BoundWitnessSignatureTable,\n HashHeadingPaper,\n HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport { useTxsFromBlock } from '@xyo-network/react-chain-blockchain'\nimport type { EventNoun } from '@xyo-network/react-event'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { SignedHydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-sdk'\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 { PayloadTableFlexbox } from '../PayloadTable.tsx'\nimport { BlockBoundWitnessActions, BlockBoundWitnessCard } from './card/index.ts'\n\nexport interface BoundWitnessDetailsProps extends FlexBoxProps {\n block?: SignedHydratedBlockWithHashMeta\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 HydratedBlockWrapper.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={<BlockBoundWitnessActions boundwitness={boundWitness} />}\n identiconProps={{ p: 0.75, size: 24 }}\n />\n <BlockBoundWitnessCard elevation={4} viewer={viewer} wrapper={wrapper} />\n {(transactions?.length ?? 0) > 0\n ? (\n <PayloadTableFlexbox<TransactionBoundWitnessEvents>\n IconComponent={<GrTransaction />}\n eventNoun=\"transaction\"\n clickableFields={['hash']}\n hashes={txHashes}\n headingTitle=\"Transactions\"\n schemas={txSchemas}\n sx={{ mb: 1 }}\n />\n )\n : null}\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<VscSymbolNamespace />} heading=\"Payloads\" />\n <BoundWitnessPayloadsTable boundwitness={boundWitness} eventNoun=\"payload\" clickableFields={['hash']} />\n </FlexCol>\n {hasNonTxBoundWitnesses\n ? (\n <PayloadTableFlexbox<EventNoun>\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/sdk-js'\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","export const formatNumber = (num: number | bigint): string => {\n return num.toLocaleString(navigator.language ?? 'en-US')\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nexport const formatPayloadsForTable = (pairs: [Payload, Hash][]) => {\n const hashes: Hash[] = []\n const 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 { InfoOutline } from '@mui/icons-material'\nimport { Tooltip } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Hash } from '@xylabs/sdk-js'\nimport { isDefined } from '@xylabs/sdk-js'\nimport type { ClickableFields } from '@xyo-network/react-boundwitness-plugin'\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\nexport interface BWPayloadTableFlexboxProps<TNoun extends ExtendEventNoun<string> = EventNoun> extends FlexBoxProps {\n IconComponent?: React.ReactNode\n clickableFields?: ClickableFields[]\n eventNoun?: TNoun\n hashes?: Hash[]\n headingTitle?: string\n schemas?: string[]\n tooltip?: string\n}\n\nexport const PayloadTableFlexbox = <TNoun extends ExtendEventNoun<string> = EventNoun>({\n IconComponent,\n eventNoun,\n hashes,\n schemas,\n headingTitle,\n clickableFields,\n tooltip,\n ...props\n}: BWPayloadTableFlexboxProps<TNoun>) => {\n const resolvedIconComponent = IconComponent ?? <VscSymbolMethod />\n return (\n <FlexCol alignItems=\"stretch\" rowGap={1} {...props}>\n <HeadingPaper\n AdornmentEnd={isDefined(tooltip)\n ? (\n <Tooltip title={tooltip}>\n <InfoOutline fontSize=\"small\" sx={{ py: 2, px: 1 }} />\n </Tooltip>\n )\n : null}\n IconComponent={resolvedIconComponent}\n heading={headingTitle}\n />\n <TableEx>\n <BoundWitnessPayloadTableHead />\n <BoundWitnessPayloadTableBody<TNoun> payloadHashes={hashes} payloadSchemas={schemas} eventNoun={eventNoun} clickableFields={clickableFields} />\n </TableEx>\n </FlexCol>\n )\n}\n","import { DataObject as DataObjectIcon } from '@mui/icons-material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { ellipsize } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BWPreviousHashQuickTipButton } from '@xyo-network/react-boundwitness-plugin'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport React from 'react'\n\nimport { BlockBoundWitnessVerification } from './BlockBoundWitnessVerification.tsx'\n\nexport interface BlockBoundWitnessActionsProps extends FlexBoxProps {\n boundwitness?: BoundWitness\n validationIconColors?: boolean\n}\n\nexport const BlockBoundWitnessActions: React.FC<BlockBoundWitnessActionsProps> = ({\n boundwitness,\n validationIconColors = false,\n ...props\n}) => {\n const hash = usePayloadHash(boundwitness)\n\n return (\n <FlexRow {...props}>\n {boundwitness?.previous_hashes.length === 0 ? null : <BWPreviousHashQuickTipButton boundwitness={boundwitness} />}\n <BlockBoundWitnessVerification iconColors={validationIconColors} block={boundwitness} />\n <QuickTipButton\n Icon={DataObjectIcon}\n title={`JSON for ${ellipsize(hash ?? '', 8)}`}\n dialogProps={{ fullWidth: true, maxWidth: 'md' }}\n >\n <pre style={{ wordBreak: 'break-all' }}>{boundwitness ? JSON.stringify(boundwitness, null, 2) : null}</pre>\n </QuickTipButton>\n </FlexRow>\n )\n}\n","import { CancelRounded as CancelRoundedIcon } from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport { ErrorQuickTipButton } from '@xylabs/react-error'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { QuickTipButtonProps } from '@xylabs/react-quick-tip-button'\nimport { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { validateBlock } from '@xyo-network/chain-validation'\nimport { useBaseContext } from '@xyo-network/react-chain-blockchain'\nimport type { BlockValidationError } from '@xyo-network/xl1-sdk'\nimport { isBlockBoundWitness } from '@xyo-network/xl1-sdk'\nimport React, { useMemo } from 'react'\n\nconst InvalidIcon = ({ ref, ...props }: SvgIconProps\n & { ref?: React.Ref<SVGSVGElement | null> }) => <CancelRoundedIcon color=\"error\" ref={ref} {...props} />\nInvalidIcon.displayName = 'InvalidIcon'\n\nexport interface BWVerification extends QuickTipButtonProps {\n block?: BoundWitness\n iconColors?: boolean\n}\n\nexport const BlockBoundWitnessVerification: React.FC<BWVerification> = ({ block, ...props }) => {\n const context = useBaseContext()\n const [validationErrors, validateError] = usePromise(async () => {\n if (isDefined(block)) {\n const resolvedBlock = assertEx(isBlockBoundWitness(block) ? block : undefined, () => 'Block must be a BlockBoundWitness')\n return await validateBlock(context, resolvedBlock)\n }\n }, [block, context])\n\n const resolvedErrors = useMemo(() => {\n const errors: (Error | BlockValidationError)[] = []\n if (isDefined(validationErrors)) {\n if (Array.isArray(validationErrors)) errors.push(...validationErrors)\n if (validationErrors instanceof Error) errors.push(validationErrors)\n if (isDefined(validateError)) errors.push(validateError)\n return errors\n }\n }, [validateError, validationErrors])\n\n return (\n <ErrorQuickTipButton boundWitnessType=\"Block\" errors={resolvedErrors} {...props} />\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, Grid,\n Skeleton,\n Stack,\n} from '@mui/material'\nimport { ErrorRender } from '@xylabs/react-error'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport { DetailsStack, LabelValueStack } from '@xyo-network/react-chain-shared'\nimport type { HydratedBlockInstance, XyoViewer } from '@xyo-network/xl1-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?: HydratedBlockInstance\n}\n\nexport const BlockBoundWitnessCard: React.FC<BlockBoundWitnessCardProps> = ({\n linkedAddress = true, viewer, wrapper, ...props\n}) => {\n const {\n stats, payloads, stepHashes, stepHashesError, stepHashesLoading,\n } = useBlockDetails(wrapper, viewer)\n\n if (isUndefined(wrapper) || isUndefined(stats) || isUndefined(payloads) || isUndefined(stepHashes)) return null\n return (\n <Card {...props}>\n {wrapper?.boundWitness.addresses.map(address => (\n <BlockBoundWitnessCardHeader\n key={address}\n address={address}\n linked={linkedAddress}\n chainId={wrapper.boundWitness.chain}\n />\n ))}\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=\"Block 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 {stepHashesLoading === 'pending'\n ? (\n <Stack gap={0.25}>\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n </Stack>\n )\n : null}\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, Icon, IconButton, Link,\n Tooltip, Typography,\n} from '@mui/material'\nimport type { Address } from '@xylabs/sdk-js'\nimport { ellipsize, isDefined } from '@xylabs/sdk-js'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { ChainId } from '@xyo-network/xl1-sdk'\nimport React from 'react'\nimport { FaCopy } from 'react-icons/fa'\n\nexport interface BlockBoundWitnessCardHeaderProps extends CardHeaderProps {\n address?: Address\n chainId?: ChainId\n linked?: boolean\n}\n\nexport const BlockBoundWitnessCardHeader: React.FC<BlockBoundWitnessCardHeaderProps> = ({\n linked = true, address, chainId,\n}) => {\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 subheader={isDefined(chainId)\n ? (\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontFamily: 'monospace', fontSize: 12, opacity: 0.5, mt: 0.25,\n }}\n title={`chain: ${chainId}`}\n >\n {ellipsize(chainId, 8)}\n <IconButton size=\"small\" onClick={() => void navigator.clipboard.writeText(chainId)}>\n <Icon sx={{ fontSize: '0.7rem' }}>\n <FaCopy />\n </Icon>\n </IconButton>\n </Typography>\n )\n : null}\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 { usePromise } from '@xylabs/react-promise'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport type { HydratedBlockInstance, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { StepSizes } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nimport { formatNumber, formatResults } from '../../../../lib/index.ts'\n\nconst generateStepHashText = (blockNumber: number, stepHashIndex: number): [string, string] => {\n const stepSize = StepSizes[stepHashIndex]\n const stepStart = blockNumber - stepSize + 1\n const stepStop = blockNumber\n\n return [`Step ${stepHashIndex} (${stepSize})`, `${formatNumber(stepStart)} - ${formatNumber(stepStop)}`]\n}\n\nexport const useBlockDetails = (wrapper: HydratedBlockInstance | undefined, viewer?: XyoViewer) => {\n const stats = useMemo(() => {\n if (isUndefined(wrapper)) return\n const epochDate = new Date(wrapper.boundWitness.$epoch)\n const stats = {\n Height: formatNumber(wrapper.boundWitness.block),\n // protocol should always be defined except for malformed blocks and very early blocks in the chain\n Protocol: wrapper.boundWitness.protocol?.toString() ?? 'N/A',\n Signatures: formatNumber(wrapper.signatureCount),\n $epoch: `${epochDate.toLocaleDateString()} ${epochDate.toLocaleTimeString()}`,\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const payloads = useMemo(() => {\n if (isUndefined(wrapper)) return\n const payloads = {\n 'Transactions': formatNumber(wrapper.transactionCount),\n 'Total Payloads': formatNumber(wrapper.payloadCount),\n }\n\n return formatResults(payloads)\n }, [wrapper])\n\n const [stepHashes, stepHashesError, stepHashesLoading] = usePromise(async () => {\n if (isUndefined(wrapper) || isUndefined(viewer)) return\n const stepHashes: Record<string, string> = {}\n for (const [index, hash] of (wrapper.boundWitness.step_hashes ?? []).entries()) {\n try {\n const block = await viewer.blockByHash(hash)\n if (block === null) {\n console.warn(`Block not found for step hash ${hash}`)\n stepHashes[`Step ${index}`] = 'N/A'\n continue\n }\n\n const blockNumber = block[0].block\n const [label, value] = generateStepHashText(blockNumber, index)\n stepHashes[label] = value\n } catch (e) {\n console.error(`Error fetching block for step hash ${hash}:`, e)\n stepHashes[`Step ${index}`] = 'N/A'\n }\n }\n\n return formatResults(stepHashes)\n }, [wrapper, viewer], { defaultValue: { labels: [], values: [] } })\n\n return {\n stats, payloads, stepHashes, stepHashesError, stepHashesLoading,\n }\n}\n","import { DataObject as DataObjectIcon } from '@mui/icons-material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { ellipsize } from '@xylabs/sdk-js'\nimport { BWPreviousHashQuickTipButton } from '@xyo-network/react-boundwitness-plugin'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-sdk'\nimport React from 'react'\n\nimport { TransactionVerification } from './TransactionVerification.tsx'\n\nexport interface TransactionActionsProps extends FlexBoxProps {\n transaction?: SignedHydratedTransactionWithStorageMeta | null\n validationIconColors?: boolean\n}\n\nexport const TransactionActions: React.FC<TransactionActionsProps> = ({\n transaction,\n validationIconColors = false,\n ...props\n}) => {\n const txBw = transaction?.[0]\n const hash = usePayloadHash(txBw)\n return (\n <FlexRow {...props}>\n {txBw?.previous_hashes.length === 0 ? null : <BWPreviousHashQuickTipButton boundwitness={txBw} />}\n <TransactionVerification iconColors={validationIconColors} transaction={transaction} />\n <QuickTipButton\n Icon={DataObjectIcon}\n title={`JSON for ${ellipsize(hash ?? '', 8)}`}\n dialogProps={{ fullWidth: true, maxWidth: 'md' }}\n >\n <pre style={{ wordBreak: 'break-all' }}>{transaction ? JSON.stringify(transaction, null, 2) : null}</pre>\n </QuickTipButton>\n </FlexRow>\n )\n}\n","import { CancelRounded as CancelRoundedIcon } from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport { ErrorQuickTipButton } from '@xylabs/react-error'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { QuickTipButtonProps } from '@xylabs/react-quick-tip-button'\nimport { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type { HydratedTransactionValidationError, SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-sdk'\nimport { isSignedHydratedTransactionWithStorageMeta, validateTransaction } from '@xyo-network/xl1-sdk'\nimport React, { useMemo } from 'react'\n\nconst InvalidIcon = ({ ref, ...props }: SvgIconProps\n & { ref?: React.Ref<SVGSVGElement | null> }) => <CancelRoundedIcon color=\"error\" ref={ref} {...props} />\nInvalidIcon.displayName = 'InvalidIcon'\n\nexport interface TxVerification extends QuickTipButtonProps {\n iconColors?: boolean\n transaction?: SignedHydratedTransactionWithStorageMeta | null\n}\n\nexport const TransactionVerification: React.FC<TxVerification> = ({ transaction, ...props }) => {\n const [validationErrors, validateError] = usePromise(async () => {\n if (isDefined(transaction)) {\n const resolvedTransaction = assertEx(isSignedHydratedTransactionWithStorageMeta(transaction)\n ? transaction\n : undefined, () => 'Transaction must be a SignedHydratedTransactionWithStorageMeta')\n return await validateTransaction({ singletons: {}, chainId: resolvedTransaction[0].chain }, resolvedTransaction)\n }\n }, [transaction])\n\n const resolvedErrors = useMemo(() => {\n const errors: (Error | HydratedTransactionValidationError)[] = []\n if (isDefined(validationErrors)) {\n if (Array.isArray(validationErrors)) errors.push(...validationErrors)\n if (validationErrors instanceof Error) errors.push(validationErrors)\n if (isDefined(validateError)) errors.push(validateError)\n return errors\n }\n }, [validateError, validationErrors])\n\n return (\n <ErrorQuickTipButton boundWitnessType=\"Transaction\" errors={resolvedErrors} {...props} />\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, CardHeader, Grid, Icon, IconButton, Link, Tooltip, Typography,\n} from '@mui/material'\nimport {\n ellipsize, isDefined, isUndefined,\n} from '@xylabs/sdk-js'\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 { HydratedTransactionInstance } from '@xyo-network/xl1-sdk'\nimport React from 'react'\nimport { FaCopy } from 'react-icons/fa'\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?: HydratedTransactionInstance\n}\n\nexport const TransactionBoundWitnessCard: React.FC<TransactionBoundWitnessCardProps> = ({\n linkedAddress = true, wrapper, ...props\n}) => {\n const chainId = wrapper?.boundWitness.chain\n\n const {\n stats, fees, blockDuration,\n } = useTransactionDetails(wrapper)\n\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n\n if (isUndefined(wrapper) || isUndefined(stats) || isUndefined(fees) || isUndefined(blockDuration)) return null\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 subheader={isDefined(chainId)\n ? (\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontFamily: 'monospace', fontSize: 12, opacity: 0.5, mt: 0.25,\n }}\n title={`chain: ${chainId}`}\n >\n {ellipsize(chainId, 8)}\n <IconButton size=\"small\" onClick={() => void navigator.clipboard.writeText(chainId)}>\n <Icon sx={{ fontSize: '0.7rem' }}>\n <FaCopy />\n </Icon>\n </IconButton>\n </Typography>\n )\n : null}\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 { isUndefined } from '@xylabs/sdk-js'\nimport type { HydratedTransactionInstance } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nimport {\n formatFee, formatNumber, formatResults,\n} from '../../../../lib/index.ts'\n\nexport const useTransactionDetails = (wrapper: HydratedTransactionInstance | undefined) => {\n const stats = useMemo(() => {\n if (isUndefined(wrapper)) return\n const stats = {\n 'Reward': formatNumber(wrapper.reward()),\n 'On Chain Payloads': formatNumber(wrapper.elevatedPayloadCount),\n 'Public Payloads': formatNumber(Object.values(wrapper.publicExternalPayloads).length),\n 'Referenced Payloads': formatNumber(Object.entries(wrapper.privateExternalPayloads).length),\n 'Signatures': formatNumber(wrapper.signatureCount),\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const fees = useMemo(() => {\n if (isUndefined(wrapper)) return\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 if (isUndefined(wrapper)) return\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 {\n BoundWitnessSignatureTable, HashHeadingPaper, HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-sdk'\nimport { HydratedTransactionWrapper } from '@xyo-network/xl1-sdk'\nimport React from 'react'\nimport { FaSignature } from 'react-icons/fa'\nimport { VscSymbolNamespace } from 'react-icons/vsc'\n\nimport { PayloadTableFlexbox } from '../PayloadTable.tsx'\nimport { TransactionActions, TransactionBoundWitnessCard } from './card/index.ts'\nimport { useTransactionPayloadTypes } from './hooks/index.ts'\n\nexport interface TransactionBoundWitnessDetailsProps extends FlexBoxProps {\n linkedProducerAddress?: boolean\n transaction?: SignedHydratedTransactionWithStorageMeta | null\n}\n\nexport const TransactionBoundWitnessDetails: React.FC<TransactionBoundWitnessDetailsProps> = ({\n linkedProducerAddress, transaction, ...props\n}) => {\n const [wrapper, wrapperError] = usePromise(async () => {\n if (transaction) {\n return await HydratedTransactionWrapper.parse(transaction)\n }\n }, [transaction])\n\n const {\n elevatedPayloadHashes, elevatedPayloadSchemas, elevatedPayloadSetsError,\n publicPayloadHashes, publicPayloadSchemas, publicPayloadsError,\n referencedPayloadHashes, referencedPayloadSchemas, referencedPayloadsError,\n } = useTransactionPayloadTypes(wrapper)\n\n return (\n <FlexCol alignItems=\"stretch\" rowGap={2} {...props}>\n <HashHeadingPaper\n hash={wrapper?.boundWitness?._hash}\n paperProps={{ sx: { p: 2 } }}\n AdornmentEnd={<TransactionActions transaction={transaction} />}\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 <ErrorRender error={publicPayloadsError} scope=\"publicPayloadsError:TransactionBoundWitnessDetails.tsx\" />\n {referencedPayloadsError.map(error =>\n <ErrorRender key={error.message} error={error} scope=\"referencedPayloadsError:TransactionBoundWitnessDetails.tsx\" />)}\n <TransactionBoundWitnessCard elevation={4} linkedAddress={linkedProducerAddress} wrapper={wrapper} />\n <PayloadTableFlexbox\n eventNoun=\"payload\"\n clickableFields={['hash']}\n tooltip=\"Payloads included in the transaction that are elevated and validated.\"\n IconComponent={<VscSymbolNamespace />}\n hashes={elevatedPayloadHashes}\n headingTitle=\"On Chain Payloads\"\n schemas={elevatedPayloadSchemas}\n sx={{ mb: 1 }}\n />\n {(publicPayloadHashes?.length ?? 0) > 0\n ? (\n <PayloadTableFlexbox\n eventNoun=\"payload\"\n clickableFields={['hash']}\n tooltip=\"Public payloads included in the transaction.\"\n IconComponent={<VscSymbolNamespace />}\n hashes={publicPayloadHashes}\n headingTitle=\"Public Payloads\"\n schemas={publicPayloadSchemas}\n sx={{ mb: 1 }}\n />\n )\n : null}\n {(referencedPayloadHashes?.length ?? 0) > 0\n ? (\n <PayloadTableFlexbox\n eventNoun=\"payload\"\n clickableFields={['hash']}\n tooltip=\"Payload hashes referenced by the transaction but not included.\"\n IconComponent={<VscSymbolNamespace />}\n hashes={referencedPayloadHashes}\n headingTitle=\"Referenced Payloads\"\n schemas={referencedPayloadSchemas}\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={wrapper?.boundWitness} />\n </FlexCol>\n </FlexCol>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Hash } from '@xylabs/sdk-js'\nimport { isDefined, isHash } from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/sdk-js'\nimport { isSchema, PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { HydratedTransactionInstance } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nimport { formatPayloadsForTable } from '../../../lib/index.ts'\n\nexport const useTransactionPayloadTypes = (wrapper?: HydratedTransactionInstance) => {\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 [publicPayloads, publicPayloadsError] = usePromise(async () => {\n if (isDefined(wrapper)) {\n const publicPayloads = wrapper.publicExternalPayloads\n const pairs = await PayloadBuilder.hashPairs(publicPayloads)\n return formatPayloadsForTable(pairs)\n } else {\n return { hashes: [], schemas: [] }\n }\n }, [wrapper])\n\n const [referencedPayloads, referencedPayloadsError] = useMemo(() => {\n const ret = { hashes: [] as Hash[], schemas: [] as Schema[] }\n const errors: Error[] = []\n if (isDefined(wrapper)) {\n const referencedPayloads = wrapper.privateExternalPayloads\n for (const [hash, schema] of Object.entries(referencedPayloads)) {\n let resolved = false\n if (isHash(hash)) {\n ret.hashes.push(hash)\n resolved = true\n }\n if (isSchema(schema)) {\n ret.schemas.push(schema)\n resolved = true\n }\n if (!resolved) {\n errors.push(new Error(`Unexpected payload or schema type for hash ${hash}: ${schema}`))\n }\n }\n }\n return [ret, errors] as const\n }, [wrapper])\n\n const { hashes: elevatedPayloadHashes, schemas: elevatedPayloadSchemas } = elevatedPayloadSets ?? {}\n const { hashes: publicPayloadHashes, schemas: publicPayloadSchemas } = publicPayloads ?? {}\n const { hashes: referencedPayloadHashes, schemas: referencedPayloadSchemas } = referencedPayloads ?? {}\n\n return {\n elevatedPayloadHashes,\n elevatedPayloadSchemas,\n elevatedPayloadSetsError,\n publicPayloadHashes,\n publicPayloadSchemas,\n publicPayloadsError,\n referencedPayloadHashes,\n referencedPayloadSchemas,\n referencedPayloadsError,\n }\n}\n"],"mappings":"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","names":["ErrorRender","FlexCol","usePromise","filterAs","isBoundWitness","HydratedBlockWrapper","BoundWitnessPayloadsTable","BoundWitnessSignatureTable","HashHeadingPaper","HeadingPaper","useTxsFromBlock","usePayloadHash","PayloadBuilder","isTransactionBoundWitness","React","useMemo","FaSignature","GrTransaction","VscSymbolMethod","VscSymbolNamespace","isUndefined","bigIntToFixedPointString","formatFee","fee","isUndefined","stringValue","bigIntToFixedPointString","formatNumber","num","toLocaleString","navigator","language","formatPayloadsForTable","pairs","hashes","schemas","bw","hash","push","schema","formatResults","results","result","labels","values","label","value","Object","entries","push","InfoOutline","Tooltip","FlexCol","isDefined","BoundWitnessPayloadTableBody","BoundWitnessPayloadTableHead","HeadingPaper","TableEx","React","VscSymbolMethod","PayloadTableFlexbox","IconComponent","eventNoun","hashes","schemas","headingTitle","clickableFields","tooltip","props","resolvedIconComponent","VscSymbolMethod","FlexCol","alignItems","rowGap","HeadingPaper","AdornmentEnd","isDefined","Tooltip","title","InfoOutline","fontSize","sx","py","px","heading","TableEx","BoundWitnessPayloadTableHead","BoundWitnessPayloadTableBody","payloadHashes","payloadSchemas","DataObject","DataObjectIcon","FlexRow","QuickTipButton","ellipsize","BWPreviousHashQuickTipButton","usePayloadHash","React","CancelRounded","CancelRoundedIcon","ErrorQuickTipButton","usePromise","assertEx","isDefined","validateBlock","useBaseContext","isBlockBoundWitness","React","useMemo","InvalidIcon","ref","props","React","CancelRoundedIcon","color","displayName","BlockBoundWitnessVerification","block","context","useBaseContext","validationErrors","validateError","usePromise","isDefined","resolvedBlock","assertEx","isBlockBoundWitness","undefined","validateBlock","resolvedErrors","useMemo","errors","Array","isArray","push","Error","ErrorQuickTipButton","boundWitnessType","BlockBoundWitnessActions","boundwitness","validationIconColors","props","hash","usePayloadHash","React","FlexRow","previous_hashes","length","BWPreviousHashQuickTipButton","BlockBoundWitnessVerification","iconColors","block","QuickTipButton","Icon","DataObjectIcon","title","ellipsize","dialogProps","fullWidth","maxWidth","pre","style","wordBreak","JSON","stringify","Card","CardContent","Grid","Skeleton","Stack","ErrorRender","isUndefined","DetailsStack","LabelValueStack","React","GrSteps","IoStatsChartOutline","VscSymbolNamespace","CardHeader","Icon","IconButton","Link","Tooltip","Typography","ellipsize","isDefined","BlockiesAvatarAddress","useEvent","React","FaCopy","BlockBoundWitnessCardHeader","linked","address","chainId","ref","dispatch","useEvent","React","CardHeader","title","Typography","onClick","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","subheader","isDefined","fontSize","opacity","mt","ellipsize","IconButton","size","navigator","clipboard","writeText","Icon","FaCopy","avatar","Tooltip","BlockiesAvatarAddress","usePromise","isUndefined","StepSizes","useMemo","generateStepHashText","blockNumber","stepHashIndex","stepSize","StepSizes","stepStart","stepStop","formatNumber","useBlockDetails","wrapper","viewer","stats","useMemo","isUndefined","epochDate","Date","boundWitness","$epoch","Height","block","Protocol","protocol","toString","Signatures","signatureCount","toLocaleDateString","toLocaleTimeString","formatResults","payloads","transactionCount","payloadCount","stepHashes","stepHashesError","stepHashesLoading","usePromise","index","hash","step_hashes","entries","blockByHash","console","warn","label","value","e","error","defaultValue","labels","values","BlockBoundWitnessCard","linkedAddress","viewer","wrapper","props","stats","payloads","stepHashes","stepHashesError","stepHashesLoading","useBlockDetails","isUndefined","React","Card","boundWitness","addresses","map","address","BlockBoundWitnessCardHeader","key","linked","chainId","chain","ErrorRender","error","scope","CardContent","Grid","container","spacing","sx","width","size","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","VscSymbolNamespace","GrSteps","Stack","gap","Skeleton","variant","height","BlockBoundWitnessDetails","block","paper","viewer","children","props","wrapper","wrapperError","usePromise","HydratedBlockWrapper","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","BlockBoundWitnessActions","boundwitness","identiconProps","size","BlockBoundWitnessCard","elevation","PayloadTableFlexbox","IconComponent","GrTransaction","eventNoun","clickableFields","headingTitle","mb","HeadingPaper","VscSymbolNamespace","heading","BoundWitnessPayloadsTable","VscSymbolMethod","FaSignature","BoundWitnessSignatureTable","DataObject","DataObjectIcon","FlexRow","QuickTipButton","ellipsize","BWPreviousHashQuickTipButton","usePayloadHash","React","CancelRounded","CancelRoundedIcon","ErrorQuickTipButton","usePromise","assertEx","isDefined","isSignedHydratedTransactionWithStorageMeta","validateTransaction","React","useMemo","InvalidIcon","ref","props","React","CancelRoundedIcon","color","displayName","TransactionVerification","transaction","validationErrors","validateError","usePromise","isDefined","resolvedTransaction","assertEx","isSignedHydratedTransactionWithStorageMeta","undefined","validateTransaction","singletons","chainId","chain","resolvedErrors","useMemo","errors","Array","isArray","push","Error","ErrorQuickTipButton","boundWitnessType","TransactionActions","transaction","validationIconColors","props","txBw","hash","usePayloadHash","React","FlexRow","previous_hashes","length","BWPreviousHashQuickTipButton","boundwitness","TransactionVerification","iconColors","QuickTipButton","Icon","DataObjectIcon","title","ellipsize","dialogProps","fullWidth","maxWidth","pre","style","wordBreak","JSON","stringify","Card","CardContent","CardHeader","Grid","Icon","IconButton","Link","Tooltip","Typography","ellipsize","isDefined","isUndefined","BlockiesAvatarAddress","DetailsStack","LabelValueStack","useEvent","React","FaCopy","GiReceiveMoney","GiSandsOfTime","IoStatsChartOutline","isUndefined","useMemo","useTransactionDetails","wrapper","stats","useMemo","isUndefined","formatNumber","reward","elevatedPayloadCount","Object","values","publicExternalPayloads","length","entries","privateExternalPayloads","signatureCount","formatResults","fees","formatFee","base","gasPrice","priority","gasLimit","blockDuration","boundWitness","exp","toLocaleString","navigator","language","nbf","TransactionBoundWitnessCard","linkedAddress","wrapper","props","chainId","boundWitness","chain","stats","fees","blockDuration","useTransactionDetails","ref","dispatch","useEvent","isUndefined","React","Card","CardHeader","title","Typography","onClick","from","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","subheader","isDefined","fontSize","opacity","mt","ellipsize","IconButton","size","navigator","clipboard","writeText","Icon","FaCopy","avatar","Tooltip","BlockiesAvatarAddress","address","CardContent","Grid","container","spacing","width","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","GiReceiveMoney","GiSandsOfTime","ErrorRender","FlexCol","usePromise","BoundWitnessSignatureTable","HashHeadingPaper","HeadingPaper","HydratedTransactionWrapper","React","FaSignature","VscSymbolNamespace","usePromise","isDefined","isHash","isSchema","PayloadBuilder","useMemo","useTransactionPayloadTypes","wrapper","elevatedPayloadSets","elevatedPayloadSetsError","usePromise","isDefined","elevatedPayloads","pairs","PayloadBuilder","hashPairs","formatPayloadsForTable","hashes","schemas","publicPayloads","publicPayloadsError","publicExternalPayloads","referencedPayloads","referencedPayloadsError","useMemo","ret","errors","privateExternalPayloads","hash","schema","Object","entries","resolved","isHash","push","isSchema","Error","elevatedPayloadHashes","elevatedPayloadSchemas","publicPayloadHashes","publicPayloadSchemas","referencedPayloadHashes","referencedPayloadSchemas","TransactionBoundWitnessDetails","linkedProducerAddress","transaction","props","wrapper","wrapperError","usePromise","HydratedTransactionWrapper","parse","elevatedPayloadHashes","elevatedPayloadSchemas","elevatedPayloadSetsError","publicPayloadHashes","publicPayloadSchemas","publicPayloadsError","referencedPayloadHashes","referencedPayloadSchemas","referencedPayloadsError","useTransactionPayloadTypes","React","FlexCol","alignItems","rowGap","HashHeadingPaper","hash","boundWitness","_hash","paperProps","sx","p","AdornmentEnd","TransactionActions","identiconProps","size","ErrorRender","error","scope","map","key","message","TransactionBoundWitnessCard","elevation","linkedAddress","PayloadTableFlexbox","eventNoun","clickableFields","tooltip","IconComponent","VscSymbolNamespace","hashes","headingTitle","schemas","mb","length","HeadingPaper","FaSignature","heading","BoundWitnessSignatureTable","block"]}
1
+ {"version":3,"sources":["../../src/components/block/BlockBoundWitnessDetails.tsx","../../src/lib/formatFees.ts","../../src/lib/formatNumber.ts","../../src/lib/formatPayloadsForTable.ts","../../src/lib/formatResults.ts","../../src/components/PayloadTable.tsx","../../src/components/block/card/actions/BlockBoundWitnessActions.tsx","../../src/components/block/card/actions/BlockBoundWitnessVerification.tsx","../../src/components/block/card/Card.tsx","../../src/components/block/card/CardHeader.tsx","../../src/components/block/card/hooks/useDetails.ts","../../src/components/transactions/card/actions/TransactionActions.tsx","../../src/components/transactions/card/actions/TransactionVerification.tsx","../../src/components/transactions/card/Card.tsx","../../src/components/transactions/card/hooks/useDetails.ts","../../src/components/transactions/TransactionBoundWitnessDetails.tsx","../../src/components/transactions/hooks/usePayloadTypes.ts"],"sourcesContent":["import { 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 { filterAs } from '@xylabs/sdk-js'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { HydratedBlockWrapper } from '@xyo-network/chain-wrappers'\nimport {\n BoundWitnessPayloadsTable,\n BoundWitnessSignatureTable,\n HashHeadingPaper,\n HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport { useTxsFromBlock } from '@xyo-network/react-chain-blockchain'\nimport type { EventNoun } from '@xyo-network/react-event'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { SignedHydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { isTransactionBoundWitness } from '@xyo-network/xl1-sdk'\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 { PayloadTableFlexbox } from '../PayloadTable.tsx'\nimport { BlockBoundWitnessActions, BlockBoundWitnessCard } from './card/index.ts'\n\nexport interface BoundWitnessDetailsProps extends FlexBoxProps {\n block?: SignedHydratedBlockWithHashMeta\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 HydratedBlockWrapper.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={<BlockBoundWitnessActions boundwitness={boundWitness} />}\n identiconProps={{ p: 0.75, size: 24 }}\n />\n <BlockBoundWitnessCard elevation={4} viewer={viewer} wrapper={wrapper} />\n {(transactions?.length ?? 0) > 0\n ? (\n <PayloadTableFlexbox<TransactionBoundWitnessEvents>\n IconComponent={<GrTransaction />}\n eventNoun=\"transaction\"\n clickableFields={['hash']}\n hashes={txHashes}\n headingTitle=\"Transactions\"\n schemas={txSchemas}\n sx={{ mb: 1 }}\n />\n )\n : null}\n <FlexCol alignItems=\"stretch\" rowGap={1} mb={1}>\n <HeadingPaper IconComponent={<VscSymbolNamespace />} heading=\"Payloads\" />\n <BoundWitnessPayloadsTable boundwitness={boundWitness} eventNoun=\"payload\" clickableFields={['hash']} />\n </FlexCol>\n {hasNonTxBoundWitnesses\n ? (\n <PayloadTableFlexbox<EventNoun>\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/sdk-js'\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","export const formatNumber = (num: number | bigint): string => {\n return num.toLocaleString(navigator.language ?? 'en-US')\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\n\nexport const formatPayloadsForTable = (pairs: [Payload, Hash][]) => {\n const hashes: Hash[] = []\n const 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 { InfoOutline } from '@mui/icons-material'\nimport { Tooltip } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Hash } from '@xylabs/sdk-js'\nimport { isDefined } from '@xylabs/sdk-js'\nimport type { ClickableFields } from '@xyo-network/react-boundwitness-plugin'\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\nexport interface BWPayloadTableFlexboxProps<TNoun extends ExtendEventNoun<string> = EventNoun> extends FlexBoxProps {\n IconComponent?: React.ReactNode\n clickableFields?: ClickableFields[]\n eventNoun?: TNoun\n hashes?: Hash[]\n headingTitle?: string\n schemas?: string[]\n tooltip?: string\n}\n\nexport const PayloadTableFlexbox = <TNoun extends ExtendEventNoun<string> = EventNoun>({\n IconComponent,\n eventNoun,\n hashes,\n schemas,\n headingTitle,\n clickableFields,\n tooltip,\n ...props\n}: BWPayloadTableFlexboxProps<TNoun>) => {\n const resolvedIconComponent = IconComponent ?? <VscSymbolMethod />\n return (\n <FlexCol alignItems=\"stretch\" rowGap={1} {...props}>\n <HeadingPaper\n AdornmentEnd={isDefined(tooltip)\n ? (\n <Tooltip title={tooltip}>\n <InfoOutline fontSize=\"small\" sx={{ py: 2, px: 1 }} />\n </Tooltip>\n )\n : null}\n IconComponent={resolvedIconComponent}\n heading={headingTitle}\n />\n <TableEx>\n <BoundWitnessPayloadTableHead />\n <BoundWitnessPayloadTableBody<TNoun> payloadHashes={hashes} payloadSchemas={schemas} eventNoun={eventNoun} clickableFields={clickableFields} />\n </TableEx>\n </FlexCol>\n )\n}\n","import { DataObject as DataObjectIcon } from '@mui/icons-material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { ellipsize } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BWPreviousHashQuickTipButton } from '@xyo-network/react-boundwitness-plugin'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport React from 'react'\n\nimport { BlockBoundWitnessVerification } from './BlockBoundWitnessVerification.tsx'\n\nexport interface BlockBoundWitnessActionsProps extends FlexBoxProps {\n boundwitness?: BoundWitness\n validationIconColors?: boolean\n}\n\nexport const BlockBoundWitnessActions: React.FC<BlockBoundWitnessActionsProps> = ({\n boundwitness,\n validationIconColors = false,\n ...props\n}) => {\n const hash = usePayloadHash(boundwitness)\n\n return (\n <FlexRow {...props}>\n {boundwitness?.previous_hashes.length === 0 ? null : <BWPreviousHashQuickTipButton boundwitness={boundwitness} />}\n <BlockBoundWitnessVerification iconColors={validationIconColors} block={boundwitness} />\n <QuickTipButton\n Icon={DataObjectIcon}\n title={`JSON for ${ellipsize(hash ?? '', 8)}`}\n dialogProps={{ fullWidth: true, maxWidth: 'md' }}\n >\n <pre style={{ wordBreak: 'break-all' }}>{boundwitness ? JSON.stringify(boundwitness, null, 2) : null}</pre>\n </QuickTipButton>\n </FlexRow>\n )\n}\n","import { CancelRounded as CancelRoundedIcon } from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport { ErrorQuickTipButton } from '@xylabs/react-error'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { QuickTipButtonProps } from '@xylabs/react-quick-tip-button'\nimport { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { validateBlock } from '@xyo-network/chain-validation'\nimport { useBaseContext } from '@xyo-network/react-chain-blockchain'\nimport type { BlockValidationError } from '@xyo-network/xl1-sdk'\nimport { isBlockBoundWitness } from '@xyo-network/xl1-sdk'\nimport React, { useMemo } from 'react'\n\nconst InvalidIcon = ({ ref, ...props }: SvgIconProps\n & { ref?: React.Ref<SVGSVGElement | null> }) => <CancelRoundedIcon color=\"error\" ref={ref} {...props} />\nInvalidIcon.displayName = 'InvalidIcon'\n\nexport interface BWVerification extends QuickTipButtonProps {\n block?: BoundWitness\n iconColors?: boolean\n}\n\nexport const BlockBoundWitnessVerification: React.FC<BWVerification> = ({ block, ...props }) => {\n const context = useBaseContext()\n const [validationErrors, validateError] = usePromise(async () => {\n if (isDefined(block)) {\n const resolvedBlock = assertEx(isBlockBoundWitness(block) ? block : undefined, () => 'Block must be a BlockBoundWitness')\n return await validateBlock(context, resolvedBlock)\n }\n }, [block, context])\n\n const resolvedErrors = useMemo(() => {\n const errors: (Error | BlockValidationError)[] = []\n if (isDefined(validationErrors)) {\n if (Array.isArray(validationErrors)) errors.push(...validationErrors)\n if (validationErrors instanceof Error) errors.push(validationErrors)\n if (isDefined(validateError)) errors.push(validateError)\n return errors\n }\n }, [validateError, validationErrors])\n\n return (\n <ErrorQuickTipButton boundWitnessType=\"Block\" errors={resolvedErrors} {...props} />\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, Grid,\n Skeleton,\n Stack,\n} from '@mui/material'\nimport { ErrorRender } from '@xylabs/react-error'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport { DetailsStack, LabelValueStack } from '@xyo-network/react-chain-shared'\nimport type { HydratedBlockInstance, XyoViewer } from '@xyo-network/xl1-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?: HydratedBlockInstance\n}\n\nexport const BlockBoundWitnessCard: React.FC<BlockBoundWitnessCardProps> = ({\n linkedAddress = true, viewer, wrapper, ...props\n}) => {\n const {\n stats, payloads, stepHashes, stepHashesError, stepHashesLoading,\n } = useBlockDetails(wrapper, viewer)\n\n if (isUndefined(wrapper) || isUndefined(stats) || isUndefined(payloads) || isUndefined(stepHashes)) return null\n return (\n <Card {...props}>\n {wrapper?.boundWitness.addresses.map(address => (\n <BlockBoundWitnessCardHeader\n key={address}\n address={address}\n linked={linkedAddress}\n chainId={wrapper.boundWitness.chain}\n />\n ))}\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=\"Block 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 {stepHashesLoading === 'pending'\n ? (\n <Stack gap={0.25}>\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n <Skeleton variant=\"text\" width=\"100%\" height={20} />\n </Stack>\n )\n : null}\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, Icon, IconButton, Link,\n Tooltip, Typography,\n} from '@mui/material'\nimport type { Address } from '@xylabs/sdk-js'\nimport { ellipsize, isDefined } from '@xylabs/sdk-js'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { ChainId } from '@xyo-network/xl1-sdk'\nimport React from 'react'\nimport { FaCopy } from 'react-icons/fa'\n\nexport interface BlockBoundWitnessCardHeaderProps extends CardHeaderProps {\n address?: Address\n chainId?: ChainId\n linked?: boolean\n}\n\nexport const BlockBoundWitnessCardHeader: React.FC<BlockBoundWitnessCardHeaderProps> = ({\n linked = true, address, chainId,\n}) => {\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 subheader={isDefined(chainId)\n ? (\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontFamily: 'monospace', fontSize: 12, opacity: 0.5, mt: 0.25,\n }}\n title={`chain: ${chainId}`}\n >\n {ellipsize(chainId, 8)}\n <IconButton size=\"small\" onClick={() => void navigator.clipboard.writeText(chainId)}>\n <Icon sx={{ fontSize: '0.7rem' }}>\n <FaCopy />\n </Icon>\n </IconButton>\n </Typography>\n )\n : null}\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 { usePromise } from '@xylabs/react-promise'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport type { HydratedBlockInstance, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { StepSizes } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nimport { formatNumber, formatResults } from '../../../../lib/index.ts'\n\nconst generateStepHashText = (blockNumber: number, stepHashIndex: number): [string, string] => {\n const stepSize = StepSizes[stepHashIndex]\n const stepStart = blockNumber - stepSize + 1\n const stepStop = blockNumber\n\n return [`Step ${stepHashIndex} (${stepSize})`, `${formatNumber(stepStart)} - ${formatNumber(stepStop)}`]\n}\n\nexport const useBlockDetails = (wrapper: HydratedBlockInstance | undefined, viewer?: XyoViewer) => {\n const stats = useMemo(() => {\n if (isUndefined(wrapper)) return\n const epochDate = new Date(wrapper.boundWitness.$epoch)\n const stats = {\n Height: formatNumber(wrapper.boundWitness.block),\n // protocol should always be defined except for malformed blocks and very early blocks in the chain\n Protocol: wrapper.boundWitness.protocol?.toString() ?? 'N/A',\n Signatures: formatNumber(wrapper.signatureCount),\n $epoch: `${epochDate.toLocaleDateString()} ${epochDate.toLocaleTimeString()}`,\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const payloads = useMemo(() => {\n if (isUndefined(wrapper)) return\n const payloads = {\n 'Transactions': formatNumber(wrapper.transactionCount),\n 'Total Payloads': formatNumber(wrapper.payloadCount),\n }\n\n return formatResults(payloads)\n }, [wrapper])\n\n const [stepHashes, stepHashesError, stepHashesLoading] = usePromise(async () => {\n if (isUndefined(wrapper) || isUndefined(viewer)) return\n const stepHashes: Record<string, string> = {}\n for (const [index, hash] of (wrapper.boundWitness.step_hashes ?? []).entries()) {\n try {\n const block = await viewer.blockByHash(hash)\n if (block === null) {\n console.warn(`Block not found for step hash ${hash}`)\n stepHashes[`Step ${index}`] = 'N/A'\n continue\n }\n\n const blockNumber = block[0].block\n const [label, value] = generateStepHashText(blockNumber, index)\n stepHashes[label] = value\n } catch (e) {\n console.error(`Error fetching block for step hash ${hash}:`, e)\n stepHashes[`Step ${index}`] = 'N/A'\n }\n }\n\n return formatResults(stepHashes)\n }, [wrapper, viewer], { defaultValue: { labels: [], values: [] } })\n\n return {\n stats, payloads, stepHashes, stepHashesError, stepHashesLoading,\n }\n}\n","import { DataObject as DataObjectIcon } from '@mui/icons-material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { ellipsize } from '@xylabs/sdk-js'\nimport { BWPreviousHashQuickTipButton } from '@xyo-network/react-boundwitness-plugin'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-sdk'\nimport React from 'react'\n\nimport { TransactionVerification } from './TransactionVerification.tsx'\n\nexport interface TransactionActionsProps extends FlexBoxProps {\n transaction?: SignedHydratedTransactionWithStorageMeta | null\n validationIconColors?: boolean\n}\n\nexport const TransactionActions: React.FC<TransactionActionsProps> = ({\n transaction,\n validationIconColors = false,\n ...props\n}) => {\n const txBw = transaction?.[0]\n const hash = usePayloadHash(txBw)\n return (\n <FlexRow {...props}>\n {txBw?.previous_hashes.length === 0 ? null : <BWPreviousHashQuickTipButton boundwitness={txBw} />}\n <TransactionVerification iconColors={validationIconColors} transaction={transaction} />\n <QuickTipButton\n Icon={DataObjectIcon}\n title={`JSON for ${ellipsize(hash ?? '', 8)}`}\n dialogProps={{ fullWidth: true, maxWidth: 'md' }}\n >\n <pre style={{ wordBreak: 'break-all' }}>{transaction ? JSON.stringify(transaction, null, 2) : null}</pre>\n </QuickTipButton>\n </FlexRow>\n )\n}\n","import { CancelRounded as CancelRoundedIcon } from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport { ErrorQuickTipButton } from '@xylabs/react-error'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { QuickTipButtonProps } from '@xylabs/react-quick-tip-button'\nimport { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type { HydratedTransactionValidationError, SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-sdk'\nimport { isSignedHydratedTransactionWithStorageMeta, validateTransaction } from '@xyo-network/xl1-sdk'\nimport React, { useMemo } from 'react'\n\nconst InvalidIcon = ({ ref, ...props }: SvgIconProps\n & { ref?: React.Ref<SVGSVGElement | null> }) => <CancelRoundedIcon color=\"error\" ref={ref} {...props} />\nInvalidIcon.displayName = 'InvalidIcon'\n\nexport interface TxVerification extends QuickTipButtonProps {\n iconColors?: boolean\n transaction?: SignedHydratedTransactionWithStorageMeta | null\n}\n\nexport const TransactionVerification: React.FC<TxVerification> = ({ transaction, ...props }) => {\n const [validationErrors, validateError] = usePromise(async () => {\n if (isDefined(transaction)) {\n const resolvedTransaction = assertEx(isSignedHydratedTransactionWithStorageMeta(transaction)\n ? transaction\n : undefined, () => 'Transaction must be a SignedHydratedTransactionWithStorageMeta')\n return await validateTransaction({ singletons: {}, chainId: resolvedTransaction[0].chain }, resolvedTransaction)\n }\n }, [transaction])\n\n const resolvedErrors = useMemo(() => {\n const errors: (Error | HydratedTransactionValidationError)[] = []\n if (isDefined(validationErrors)) {\n if (Array.isArray(validationErrors)) errors.push(...validationErrors)\n if (validationErrors instanceof Error) errors.push(validationErrors)\n if (isDefined(validateError)) errors.push(validateError)\n return errors\n }\n }, [validateError, validationErrors])\n\n return (\n <ErrorQuickTipButton boundWitnessType=\"Transaction\" errors={resolvedErrors} {...props} />\n )\n}\n","import type { CardProps } from '@mui/material'\nimport {\n Card, CardContent, CardHeader, Grid, Icon, IconButton, Link, Tooltip, Typography,\n} from '@mui/material'\nimport {\n ellipsize, isDefined, isUndefined,\n} from '@xylabs/sdk-js'\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 { HydratedTransactionInstance } from '@xyo-network/xl1-sdk'\nimport React from 'react'\nimport { FaCopy } from 'react-icons/fa'\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?: HydratedTransactionInstance\n}\n\nexport const TransactionBoundWitnessCard: React.FC<TransactionBoundWitnessCardProps> = ({\n linkedAddress = true, wrapper, ...props\n}) => {\n const chainId = wrapper?.boundWitness.chain\n\n const {\n stats, fees, blockDuration,\n } = useTransactionDetails(wrapper)\n\n const [ref, dispatch] = useEvent<HTMLDivElement>()\n\n if (isUndefined(wrapper) || isUndefined(stats) || isUndefined(fees) || isUndefined(blockDuration)) return null\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 subheader={isDefined(chainId)\n ? (\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontFamily: 'monospace', fontSize: 12, opacity: 0.5, mt: 0.25,\n }}\n title={`chain: ${chainId}`}\n >\n {ellipsize(chainId, 8)}\n <IconButton size=\"small\" onClick={() => void navigator.clipboard.writeText(chainId)}>\n <Icon sx={{ fontSize: '0.7rem' }}>\n <FaCopy />\n </Icon>\n </IconButton>\n </Typography>\n )\n : null}\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 { isUndefined } from '@xylabs/sdk-js'\nimport type { HydratedTransactionInstance } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nimport {\n formatFee, formatNumber, formatResults,\n} from '../../../../lib/index.ts'\n\nexport const useTransactionDetails = (wrapper: HydratedTransactionInstance | undefined) => {\n const stats = useMemo(() => {\n if (isUndefined(wrapper)) return\n const stats = {\n 'Reward': formatNumber(wrapper.reward()),\n 'On Chain Payloads': formatNumber(wrapper.elevatedPayloadCount),\n 'Public Payloads': formatNumber(Object.values(wrapper.publicExternalPayloads).length),\n 'Referenced Payloads': formatNumber(Object.entries(wrapper.privateExternalPayloads).length),\n 'Signatures': formatNumber(wrapper.signatureCount),\n }\n\n return formatResults(stats)\n }, [wrapper])\n\n const fees = useMemo(() => {\n if (isUndefined(wrapper)) return\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 if (isUndefined(wrapper)) return\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 {\n BoundWitnessSignatureTable, HashHeadingPaper, HeadingPaper,\n} from '@xyo-network/react-boundwitness-plugin'\nimport type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-sdk'\nimport { HydratedTransactionWrapper } from '@xyo-network/xl1-sdk'\nimport React from 'react'\nimport { FaSignature } from 'react-icons/fa'\nimport { VscSymbolNamespace } from 'react-icons/vsc'\n\nimport { PayloadTableFlexbox } from '../PayloadTable.tsx'\nimport { TransactionActions, TransactionBoundWitnessCard } from './card/index.ts'\nimport { useTransactionPayloadTypes } from './hooks/index.ts'\n\nexport interface TransactionBoundWitnessDetailsProps extends FlexBoxProps {\n linkedProducerAddress?: boolean\n transaction?: SignedHydratedTransactionWithStorageMeta | null\n}\n\nexport const TransactionBoundWitnessDetails: React.FC<TransactionBoundWitnessDetailsProps> = ({\n linkedProducerAddress, transaction, ...props\n}) => {\n const [wrapper, wrapperError] = usePromise(async () => {\n if (transaction) {\n return await HydratedTransactionWrapper.parse(transaction)\n }\n }, [transaction])\n\n const {\n elevatedPayloadHashes, elevatedPayloadSchemas, elevatedPayloadSetsError,\n publicPayloadHashes, publicPayloadSchemas, publicPayloadsError,\n referencedPayloadHashes, referencedPayloadSchemas, referencedPayloadsError,\n } = useTransactionPayloadTypes(wrapper)\n\n return (\n <FlexCol alignItems=\"stretch\" rowGap={2} {...props}>\n <HashHeadingPaper\n hash={wrapper?.boundWitness?._hash}\n paperProps={{ sx: { p: 2 } }}\n AdornmentEnd={<TransactionActions transaction={transaction} />}\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 <ErrorRender error={publicPayloadsError} scope=\"publicPayloadsError:TransactionBoundWitnessDetails.tsx\" />\n {referencedPayloadsError.map(error =>\n <ErrorRender key={error.message} error={error} scope=\"referencedPayloadsError:TransactionBoundWitnessDetails.tsx\" />)}\n <TransactionBoundWitnessCard elevation={4} linkedAddress={linkedProducerAddress} wrapper={wrapper} />\n <PayloadTableFlexbox\n eventNoun=\"payload\"\n clickableFields={['hash']}\n tooltip=\"Payloads included in the transaction that are elevated and validated.\"\n IconComponent={<VscSymbolNamespace />}\n hashes={elevatedPayloadHashes}\n headingTitle=\"On Chain Payloads\"\n schemas={elevatedPayloadSchemas}\n sx={{ mb: 1 }}\n />\n {(publicPayloadHashes?.length ?? 0) > 0\n ? (\n <PayloadTableFlexbox\n eventNoun=\"payload\"\n clickableFields={['hash']}\n tooltip=\"Public payloads included in the transaction.\"\n IconComponent={<VscSymbolNamespace />}\n hashes={publicPayloadHashes}\n headingTitle=\"Public Payloads\"\n schemas={publicPayloadSchemas}\n sx={{ mb: 1 }}\n />\n )\n : null}\n {(referencedPayloadHashes?.length ?? 0) > 0\n ? (\n <PayloadTableFlexbox\n eventNoun=\"payload\"\n clickableFields={['hash']}\n tooltip=\"Payload hashes referenced by the transaction but not included.\"\n IconComponent={<VscSymbolNamespace />}\n hashes={referencedPayloadHashes}\n headingTitle=\"Referenced Payloads\"\n schemas={referencedPayloadSchemas}\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={wrapper?.boundWitness} />\n </FlexCol>\n </FlexCol>\n )\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Hash } from '@xylabs/sdk-js'\nimport { isDefined, isHash } from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/sdk-js'\nimport { isSchema, PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { HydratedTransactionInstance } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nimport { formatPayloadsForTable } from '../../../lib/index.ts'\n\nexport const useTransactionPayloadTypes = (wrapper?: HydratedTransactionInstance) => {\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 [publicPayloads, publicPayloadsError] = usePromise(async () => {\n if (isDefined(wrapper)) {\n const publicPayloads = wrapper.publicExternalPayloads\n const pairs = await PayloadBuilder.hashPairs(publicPayloads)\n return formatPayloadsForTable(pairs)\n } else {\n return { hashes: [], schemas: [] }\n }\n }, [wrapper])\n\n const [referencedPayloads, referencedPayloadsError] = useMemo(() => {\n const ret = { hashes: [] as Hash[], schemas: [] as Schema[] }\n const errors: Error[] = []\n if (isDefined(wrapper)) {\n const referencedPayloads = wrapper.privateExternalPayloads\n for (const [hash, schema] of Object.entries(referencedPayloads)) {\n const hashValid = isHash(hash)\n const schemaValid = isSchema(schema)\n if (hashValid) ret.hashes.push(hash)\n if (schemaValid) ret.schemas.push(schema)\n if (!hashValid && !schemaValid) {\n errors.push(new Error(`Unexpected payload or schema type for hash ${hash}: ${schema}`))\n }\n }\n }\n return [ret, errors] as const\n }, [wrapper])\n\n const { hashes: elevatedPayloadHashes, schemas: elevatedPayloadSchemas } = elevatedPayloadSets ?? {}\n const { hashes: publicPayloadHashes, schemas: publicPayloadSchemas } = publicPayloads ?? {}\n const { hashes: referencedPayloadHashes, schemas: referencedPayloadSchemas } = referencedPayloads ?? {}\n\n return {\n elevatedPayloadHashes,\n elevatedPayloadSchemas,\n elevatedPayloadSetsError,\n publicPayloadHashes,\n publicPayloadSchemas,\n publicPayloadsError,\n referencedPayloadHashes,\n referencedPayloadSchemas,\n referencedPayloadsError,\n }\n}\n"],"mappings":"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","names":["ErrorRender","FlexCol","usePromise","filterAs","isBoundWitness","HydratedBlockWrapper","BoundWitnessPayloadsTable","BoundWitnessSignatureTable","HashHeadingPaper","HeadingPaper","useTxsFromBlock","usePayloadHash","PayloadBuilder","isTransactionBoundWitness","React","useMemo","FaSignature","GrTransaction","VscSymbolMethod","VscSymbolNamespace","isUndefined","bigIntToFixedPointString","formatFee","fee","isUndefined","stringValue","bigIntToFixedPointString","formatNumber","num","toLocaleString","navigator","language","formatPayloadsForTable","pairs","hashes","schemas","bw","hash","push","schema","formatResults","results","result","labels","values","label","value","Object","entries","push","InfoOutline","Tooltip","FlexCol","isDefined","BoundWitnessPayloadTableBody","BoundWitnessPayloadTableHead","HeadingPaper","TableEx","React","VscSymbolMethod","PayloadTableFlexbox","IconComponent","eventNoun","hashes","schemas","headingTitle","clickableFields","tooltip","props","resolvedIconComponent","VscSymbolMethod","FlexCol","alignItems","rowGap","HeadingPaper","AdornmentEnd","isDefined","Tooltip","title","InfoOutline","fontSize","sx","py","px","heading","TableEx","BoundWitnessPayloadTableHead","BoundWitnessPayloadTableBody","payloadHashes","payloadSchemas","DataObject","DataObjectIcon","FlexRow","QuickTipButton","ellipsize","BWPreviousHashQuickTipButton","usePayloadHash","React","CancelRounded","CancelRoundedIcon","ErrorQuickTipButton","usePromise","assertEx","isDefined","validateBlock","useBaseContext","isBlockBoundWitness","React","useMemo","InvalidIcon","ref","props","React","CancelRoundedIcon","color","displayName","BlockBoundWitnessVerification","block","context","useBaseContext","validationErrors","validateError","usePromise","isDefined","resolvedBlock","assertEx","isBlockBoundWitness","undefined","validateBlock","resolvedErrors","useMemo","errors","Array","isArray","push","Error","ErrorQuickTipButton","boundWitnessType","BlockBoundWitnessActions","boundwitness","validationIconColors","props","hash","usePayloadHash","React","FlexRow","previous_hashes","length","BWPreviousHashQuickTipButton","BlockBoundWitnessVerification","iconColors","block","QuickTipButton","Icon","DataObjectIcon","title","ellipsize","dialogProps","fullWidth","maxWidth","pre","style","wordBreak","JSON","stringify","Card","CardContent","Grid","Skeleton","Stack","ErrorRender","isUndefined","DetailsStack","LabelValueStack","React","GrSteps","IoStatsChartOutline","VscSymbolNamespace","CardHeader","Icon","IconButton","Link","Tooltip","Typography","ellipsize","isDefined","BlockiesAvatarAddress","useEvent","React","FaCopy","BlockBoundWitnessCardHeader","linked","address","chainId","ref","dispatch","useEvent","React","CardHeader","title","Typography","onClick","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","subheader","isDefined","fontSize","opacity","mt","ellipsize","IconButton","size","navigator","clipboard","writeText","Icon","FaCopy","avatar","Tooltip","BlockiesAvatarAddress","usePromise","isUndefined","StepSizes","useMemo","generateStepHashText","blockNumber","stepHashIndex","stepSize","StepSizes","stepStart","stepStop","formatNumber","useBlockDetails","wrapper","viewer","stats","useMemo","isUndefined","epochDate","Date","boundWitness","$epoch","Height","block","Protocol","protocol","toString","Signatures","signatureCount","toLocaleDateString","toLocaleTimeString","formatResults","payloads","transactionCount","payloadCount","stepHashes","stepHashesError","stepHashesLoading","usePromise","index","hash","step_hashes","entries","blockByHash","console","warn","label","value","e","error","defaultValue","labels","values","BlockBoundWitnessCard","linkedAddress","viewer","wrapper","props","stats","payloads","stepHashes","stepHashesError","stepHashesLoading","useBlockDetails","isUndefined","React","Card","boundWitness","addresses","map","address","BlockBoundWitnessCardHeader","key","linked","chainId","chain","ErrorRender","error","scope","CardContent","Grid","container","spacing","sx","width","size","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","VscSymbolNamespace","GrSteps","Stack","gap","Skeleton","variant","height","BlockBoundWitnessDetails","block","paper","viewer","children","props","wrapper","wrapperError","usePromise","HydratedBlockWrapper","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","BlockBoundWitnessActions","boundwitness","identiconProps","size","BlockBoundWitnessCard","elevation","PayloadTableFlexbox","IconComponent","GrTransaction","eventNoun","clickableFields","headingTitle","mb","HeadingPaper","VscSymbolNamespace","heading","BoundWitnessPayloadsTable","VscSymbolMethod","FaSignature","BoundWitnessSignatureTable","DataObject","DataObjectIcon","FlexRow","QuickTipButton","ellipsize","BWPreviousHashQuickTipButton","usePayloadHash","React","CancelRounded","CancelRoundedIcon","ErrorQuickTipButton","usePromise","assertEx","isDefined","isSignedHydratedTransactionWithStorageMeta","validateTransaction","React","useMemo","InvalidIcon","ref","props","React","CancelRoundedIcon","color","displayName","TransactionVerification","transaction","validationErrors","validateError","usePromise","isDefined","resolvedTransaction","assertEx","isSignedHydratedTransactionWithStorageMeta","undefined","validateTransaction","singletons","chainId","chain","resolvedErrors","useMemo","errors","Array","isArray","push","Error","ErrorQuickTipButton","boundWitnessType","TransactionActions","transaction","validationIconColors","props","txBw","hash","usePayloadHash","React","FlexRow","previous_hashes","length","BWPreviousHashQuickTipButton","boundwitness","TransactionVerification","iconColors","QuickTipButton","Icon","DataObjectIcon","title","ellipsize","dialogProps","fullWidth","maxWidth","pre","style","wordBreak","JSON","stringify","Card","CardContent","CardHeader","Grid","Icon","IconButton","Link","Tooltip","Typography","ellipsize","isDefined","isUndefined","BlockiesAvatarAddress","DetailsStack","LabelValueStack","useEvent","React","FaCopy","GiReceiveMoney","GiSandsOfTime","IoStatsChartOutline","isUndefined","useMemo","useTransactionDetails","wrapper","stats","useMemo","isUndefined","formatNumber","reward","elevatedPayloadCount","Object","values","publicExternalPayloads","length","entries","privateExternalPayloads","signatureCount","formatResults","fees","formatFee","base","gasPrice","priority","gasLimit","blockDuration","boundWitness","exp","toLocaleString","navigator","language","nbf","TransactionBoundWitnessCard","linkedAddress","wrapper","props","chainId","boundWitness","chain","stats","fees","blockDuration","useTransactionDetails","ref","dispatch","useEvent","isUndefined","React","Card","CardHeader","title","Typography","onClick","from","variant","sx","maxWidth","textOverflow","overflow","fontFamily","Link","cursor","subheader","isDefined","fontSize","opacity","mt","ellipsize","IconButton","size","navigator","clipboard","writeText","Icon","FaCopy","avatar","Tooltip","BlockiesAvatarAddress","address","CardContent","Grid","container","spacing","width","xs","sm","md","DetailsStack","IconComponent","IoStatsChartOutline","heading","tooltipTitle","LabelValueStack","labels","values","GiReceiveMoney","GiSandsOfTime","ErrorRender","FlexCol","usePromise","BoundWitnessSignatureTable","HashHeadingPaper","HeadingPaper","HydratedTransactionWrapper","React","FaSignature","VscSymbolNamespace","usePromise","isDefined","isHash","isSchema","PayloadBuilder","useMemo","useTransactionPayloadTypes","wrapper","elevatedPayloadSets","elevatedPayloadSetsError","usePromise","isDefined","elevatedPayloads","pairs","PayloadBuilder","hashPairs","formatPayloadsForTable","hashes","schemas","publicPayloads","publicPayloadsError","publicExternalPayloads","referencedPayloads","referencedPayloadsError","useMemo","ret","errors","privateExternalPayloads","hash","schema","Object","entries","hashValid","isHash","schemaValid","isSchema","push","Error","elevatedPayloadHashes","elevatedPayloadSchemas","publicPayloadHashes","publicPayloadSchemas","referencedPayloadHashes","referencedPayloadSchemas","TransactionBoundWitnessDetails","linkedProducerAddress","transaction","props","wrapper","wrapperError","usePromise","HydratedTransactionWrapper","parse","elevatedPayloadHashes","elevatedPayloadSchemas","elevatedPayloadSetsError","publicPayloadHashes","publicPayloadSchemas","publicPayloadsError","referencedPayloadHashes","referencedPayloadSchemas","referencedPayloadsError","useTransactionPayloadTypes","React","FlexCol","alignItems","rowGap","HashHeadingPaper","hash","boundWitness","_hash","paperProps","sx","p","AdornmentEnd","TransactionActions","identiconProps","size","ErrorRender","error","scope","map","key","message","TransactionBoundWitnessCard","elevation","linkedAddress","PayloadTableFlexbox","eventNoun","clickableFields","tooltip","IconComponent","VscSymbolNamespace","hashes","headingTitle","schemas","mb","length","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.20.27",
4
+ "version": "1.20.29",
5
5
  "description": "XYO Layer One React SDK BoundWitness",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -39,12 +39,12 @@
39
39
  "README.md"
40
40
  ],
41
41
  "dependencies": {
42
- "@xyo-network/chain-wrappers": "~1.20.27",
43
- "@xyo-network/react-chain-blockies": "~1.20.27",
44
- "@xyo-network/react-chain-blockchain": "~1.20.27",
45
- "@xyo-network/react-chain-shared": "~1.20.27",
46
- "@xyo-network/chain-validation": "~1.20.27",
47
- "@xyo-network/chain-utils": "~1.20.27"
42
+ "@xyo-network/chain-wrappers": "~1.20.29",
43
+ "@xyo-network/chain-validation": "~1.20.29",
44
+ "@xyo-network/react-chain-shared": "~1.20.29",
45
+ "@xyo-network/react-chain-blockies": "~1.20.29",
46
+ "@xyo-network/chain-utils": "~1.20.29",
47
+ "@xyo-network/react-chain-blockchain": "~1.20.29"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@bitauth/libauth": "~3.0.0",
@@ -59,15 +59,15 @@
59
59
  "@mui/x-charts": "~8.28.2",
60
60
  "@mui/x-tree-view": "~8.27.2",
61
61
  "@opentelemetry/api": "^1.9.1",
62
- "@opentelemetry/sdk-trace-base": "^2.7.0",
62
+ "@opentelemetry/sdk-trace-base": "^2.7.1",
63
63
  "@rollbar/react": "~1.0.0",
64
64
  "@scure/base": "~2.2.0",
65
65
  "@scure/bip39": "~2.2.0",
66
- "@storybook/react-vite": "^10.3.5",
66
+ "@storybook/react-vite": "^10.3.6",
67
67
  "@textea/json-viewer": "^4.0.1",
68
68
  "@types/node": "^25.6.0",
69
69
  "@types/react": "^19.2.14",
70
- "@xylabs/geo": "^5.0.100",
70
+ "@xylabs/geo": "^5.0.101",
71
71
  "@xylabs/react-animation": "~7.1.20",
72
72
  "@xylabs/react-async-effect": "^7.1.20",
73
73
  "@xylabs/react-button": "~7.1.20",
@@ -82,41 +82,41 @@
82
82
  "@xylabs/react-select": "~7.1.20",
83
83
  "@xylabs/react-shared": "~7.1.20",
84
84
  "@xylabs/react-theme": "~7.1.20",
85
- "@xylabs/sdk-js": "^5.0.100",
86
- "@xylabs/threads": "~5.0.100",
87
- "@xylabs/toolchain": "~7.11.10",
88
- "@xylabs/tsconfig": "~7.11.10",
89
- "@xylabs/tsconfig-dom": "~7.11.10",
90
- "@xylabs/tsconfig-react": "~7.11.10",
91
- "@xylabs/zod": "^5.0.100",
92
- "@xyo-network/account": "~5.5.1",
93
- "@xyo-network/account-model": "~5.5.1",
94
- "@xyo-network/api": "~5.5.1",
95
- "@xyo-network/api-models": "~5.5.1",
96
- "@xyo-network/boundwitness-builder": "~5.5.1",
97
- "@xyo-network/boundwitness-model": "~5.5.1",
98
- "@xyo-network/boundwitness-validator": "~5.5.1",
99
- "@xyo-network/boundwitness-wrapper": "~5.5.1",
100
- "@xyo-network/config-payload-plugin": "~5.5.1",
101
- "@xyo-network/diviner-model": "^5.5.5",
102
- "@xyo-network/diviner-schema-list": "~5.5.5",
103
- "@xyo-network/diviner-schema-stats": "~5.5.2",
104
- "@xyo-network/hash": "~5.5.1",
105
- "@xyo-network/huri": "~5.5.1",
106
- "@xyo-network/manifest-model": "~5.5.1",
107
- "@xyo-network/module-abstract": "^5.5.5",
108
- "@xyo-network/module-model": "^5.5.5",
109
- "@xyo-network/network": "~5.5.1",
85
+ "@xylabs/sdk-js": "^5.0.101",
86
+ "@xylabs/threads": "~5.0.101",
87
+ "@xylabs/toolchain": "~7.12.3",
88
+ "@xylabs/tsconfig": "~7.12.3",
89
+ "@xylabs/tsconfig-dom": "~7.12.3",
90
+ "@xylabs/tsconfig-react": "~7.12.3",
91
+ "@xylabs/zod": "^5.0.101",
92
+ "@xyo-network/account": "~5.5.2",
93
+ "@xyo-network/account-model": "~5.5.2",
94
+ "@xyo-network/api": "~5.5.2",
95
+ "@xyo-network/api-models": "~5.5.2",
96
+ "@xyo-network/boundwitness-builder": "~5.5.2",
97
+ "@xyo-network/boundwitness-model": "~5.5.2",
98
+ "@xyo-network/boundwitness-validator": "~5.5.2",
99
+ "@xyo-network/boundwitness-wrapper": "~5.5.2",
100
+ "@xyo-network/config-payload-plugin": "~5.5.2",
101
+ "@xyo-network/diviner-model": "^5.5.6",
102
+ "@xyo-network/diviner-schema-list": "~5.5.6",
103
+ "@xyo-network/diviner-schema-stats": "~5.5.6",
104
+ "@xyo-network/hash": "~5.5.2",
105
+ "@xyo-network/huri": "~5.5.2",
106
+ "@xyo-network/manifest-model": "~5.5.2",
107
+ "@xyo-network/module-abstract": "^5.5.6",
108
+ "@xyo-network/module-model": "^5.5.6",
109
+ "@xyo-network/network": "~5.5.2",
110
110
  "@xyo-network/node-core-types": "~4.1.10",
111
- "@xyo-network/node-memory": "~5.5.5",
112
- "@xyo-network/node-model": "^5.5.5",
113
- "@xyo-network/payload-builder": "~5.5.1",
114
- "@xyo-network/payload-model": "~5.5.1",
115
- "@xyo-network/payload-plugin": "~5.5.1",
116
- "@xyo-network/payload-validator": "^5.5.1",
117
- "@xyo-network/payload-wrapper": "~5.5.1",
118
- "@xyo-network/payloadset-plugin": "^5.5.5",
119
- "@xyo-network/query-payload-plugin": "~5.5.1",
111
+ "@xyo-network/node-memory": "~5.5.6",
112
+ "@xyo-network/node-model": "^5.5.6",
113
+ "@xyo-network/payload-builder": "~5.5.2",
114
+ "@xyo-network/payload-model": "~5.5.2",
115
+ "@xyo-network/payload-plugin": "~5.5.2",
116
+ "@xyo-network/payload-validator": "^5.5.2",
117
+ "@xyo-network/payload-wrapper": "~5.5.2",
118
+ "@xyo-network/payloadset-plugin": "^5.5.6",
119
+ "@xyo-network/query-payload-plugin": "~5.5.2",
120
120
  "@xyo-network/react-boundwitness-plugin": "~7.5.12",
121
121
  "@xyo-network/react-error": "~7.5.12",
122
122
  "@xyo-network/react-event": "~7.5.12",
@@ -124,15 +124,15 @@
124
124
  "@xyo-network/react-payload-table": "~7.5.12",
125
125
  "@xyo-network/react-shared": "~7.5.12",
126
126
  "@xyo-network/react-table": "~7.5.12",
127
- "@xyo-network/schema-cache": "~5.5.1",
128
- "@xyo-network/schema-payload-plugin": "~5.5.1",
129
- "@xyo-network/sdk-js": "^5.5.5",
130
- "@xyo-network/sdk-protocol-js": "~5.5.1",
127
+ "@xyo-network/schema-cache": "~5.5.2",
128
+ "@xyo-network/schema-payload-plugin": "~5.5.2",
129
+ "@xyo-network/sdk-js": "^5.5.6",
130
+ "@xyo-network/sdk-protocol-js": "~5.5.2",
131
131
  "@xyo-network/typeof": "~5.3.30",
132
- "@xyo-network/wallet": "~5.5.1",
133
- "@xyo-network/wallet-model": "^5.5.1",
134
- "@xyo-network/xl1-sdk": "^1.26.39",
135
- "ajv": "^8.18.0",
132
+ "@xyo-network/wallet": "~5.5.2",
133
+ "@xyo-network/wallet-model": "^5.5.2",
134
+ "@xyo-network/xl1-sdk": "^1.26.44",
135
+ "ajv": "^8.20.0",
136
136
  "async-mutex": "^0.5.0",
137
137
  "axios": "^1.15.2",
138
138
  "bn.js": "^5.2.3",
@@ -149,7 +149,7 @@
149
149
  "idb": "^8.0.3",
150
150
  "js-cookie": "~3.0.5",
151
151
  "lru-cache": "^11.3.5",
152
- "mapbox-gl": "^3.22.0",
152
+ "mapbox-gl": "^3.23.0",
153
153
  "observable-fns": "~0.6.1",
154
154
  "pako": "^2.1.0",
155
155
  "prop-types": "^15.8.1",
@@ -161,104 +161,104 @@
161
161
  "shallowequal": "~1.1.0",
162
162
  "spark-md5": "~3.0.2",
163
163
  "store2": "~2.14.4",
164
- "storybook": "^10.3.5",
164
+ "storybook": "^10.3.6",
165
165
  "typescript": "~5.9.3",
166
166
  "uuid": "~14.0.0",
167
167
  "vite": "^8.0.10",
168
168
  "wasm-feature-detect": "~1.8.0",
169
169
  "webextension-polyfill": "^0.12.0",
170
- "zod": "^4.3.6",
171
- "@xyo-network/react-chain-provider": "~1.20.27",
172
- "@xyo-network/react-chain-network": "~1.20.27"
170
+ "zod": "~4.4.2",
171
+ "@xyo-network/react-chain-provider": "~1.20.29",
172
+ "@xyo-network/react-chain-network": "~1.20.29"
173
173
  },
174
174
  "peerDependencies": {
175
- "@bitauth/libauth": "~3.0.0",
176
- "@emotion/react": "^11.14.0",
177
- "@emotion/styled": "^11.14.1",
178
- "@metamask/json-rpc-engine": "^10.2.4",
179
- "@metamask/providers": "^22.1.1",
180
- "@metamask/utils": "~11.11.0",
181
- "@mui/icons-material": "^7.3.10",
182
- "@mui/material": "^7.3.10",
183
- "@mui/system": "^7.3.10",
184
- "@mui/x-charts": "~8.28.2",
185
- "@opentelemetry/api": "^1.9.1",
186
- "@opentelemetry/sdk-trace-base": "^2.7.0",
187
- "@scure/base": "~2.2.0",
188
- "@scure/bip39": "~2.2.0",
189
- "@storybook/react-vite": "^10.3.5",
190
- "@textea/json-viewer": "^4.0.1",
191
- "@xylabs/geo": "^5.0.100",
192
- "@xylabs/react-animation": "~7.1.20",
193
- "@xylabs/react-async-effect": "^7.1.20",
194
- "@xylabs/react-button": "~7.1.20",
195
- "@xylabs/react-dialogs": "~7.1.20",
196
- "@xylabs/react-error": "~7.1.20",
197
- "@xylabs/react-flexbox": "~7.1.20",
198
- "@xylabs/react-promise": "^7.1.20",
199
- "@xylabs/react-quick-tip-button": "^7.1.20",
200
- "@xylabs/react-shared": "~7.1.20",
201
- "@xylabs/react-theme": "~7.1.20",
202
- "@xylabs/sdk-js": "^5.0.100",
203
- "@xylabs/threads": "~5.0.100",
204
- "@xylabs/zod": "^5.0.100",
205
- "@xyo-network/account": "~5.5.1",
206
- "@xyo-network/account-model": "~5.5.1",
207
- "@xyo-network/api": "~5.5.1",
208
- "@xyo-network/api-models": "~5.5.1",
209
- "@xyo-network/boundwitness-builder": "~5.5.1",
210
- "@xyo-network/boundwitness-model": "~5.5.1",
211
- "@xyo-network/boundwitness-validator": "~5.5.1",
212
- "@xyo-network/boundwitness-wrapper": "~5.5.1",
213
- "@xyo-network/config-payload-plugin": "~5.5.1",
214
- "@xyo-network/hash": "~5.5.1",
215
- "@xyo-network/huri": "~5.5.1",
216
- "@xyo-network/manifest-model": "~5.5.1",
217
- "@xyo-network/payload-builder": "~5.5.1",
218
- "@xyo-network/payload-model": "~5.5.1",
219
- "@xyo-network/payload-plugin": "~5.5.1",
220
- "@xyo-network/payload-wrapper": "~5.5.1",
221
- "@xyo-network/query-payload-plugin": "~5.5.1",
222
- "@xyo-network/react-boundwitness-plugin": "~7.5.12",
223
- "@xyo-network/react-error": "~7.5.12",
224
- "@xyo-network/react-event": "~7.5.12",
225
- "@xyo-network/react-payload-raw-info": "~7.5.12",
226
- "@xyo-network/react-payload-table": "~7.5.12",
227
- "@xyo-network/react-shared": "~7.5.12",
228
- "@xyo-network/react-table": "~7.5.12",
229
- "@xyo-network/sdk-js": "^5.5.5",
230
- "@xyo-network/sdk-protocol-js": "~5.5.1",
231
- "@xyo-network/wallet": "~5.5.1",
232
- "@xyo-network/wallet-model": "^5.5.1",
233
- "@xyo-network/xl1-sdk": "^1.26.39",
234
- "ajv": "^8.18.0",
235
- "async-mutex": "^0.5.0",
236
- "axios": "^1.15.2",
237
- "bn.js": "^5.2.3",
238
- "buffer": "^6.0.3",
239
- "chalk": "^5.6.2",
240
- "cosmiconfig": "^9.0.1",
241
- "debug": "~4.4.3",
242
- "ethers": "^6.16.0",
243
- "hash-wasm": "~4.12.0",
244
- "idb": "^8.0.3",
245
- "lru-cache": "^11.3.5",
246
- "mapbox-gl": "^3.22.0",
247
- "observable-fns": "~0.6.1",
248
- "pako": "^2.1.0",
249
- "react": "^19.2.5",
250
- "react-dom": "^19.2.5",
251
- "react-icons": "~5.6.0",
252
- "react-router-dom": "^7.14.2",
253
- "rollbar": "^3.1.0",
254
- "shallowequal": "~1.1.0",
255
- "store2": "~2.14.4",
256
- "storybook": "^10.3.5",
257
- "typescript": "~5.9.3",
258
- "uuid": "~14.0.0",
259
- "vite": "^8.0.10",
260
- "wasm-feature-detect": "~1.8.0",
261
- "zod": "^4.3.6"
175
+ "@bitauth/libauth": ">=3.0.0 <3.1",
176
+ "@emotion/react": ">=11.14.0 <12",
177
+ "@emotion/styled": ">=11.14.1 <12",
178
+ "@metamask/json-rpc-engine": ">=10.2.4 <11",
179
+ "@metamask/providers": ">=22.1.1 <23",
180
+ "@metamask/utils": ">=11.11.0 <11.12",
181
+ "@mui/icons-material": ">=7.3.10 <8",
182
+ "@mui/material": ">=7.3.10 <8",
183
+ "@mui/system": ">=7.3.10 <8",
184
+ "@mui/x-charts": ">=8.28.2 <8.29",
185
+ "@opentelemetry/api": ">=1.9.1 <2",
186
+ "@opentelemetry/sdk-trace-base": ">=2.7.1 <3",
187
+ "@scure/base": ">=2.2.0 <2.3",
188
+ "@scure/bip39": ">=2.2.0 <2.3",
189
+ "@storybook/react-vite": ">=10.3.6 <11",
190
+ "@textea/json-viewer": ">=4.0.1 <5",
191
+ "@xylabs/geo": ">=5.0.101 <6",
192
+ "@xylabs/react-animation": ">=7.1.20 <7.2",
193
+ "@xylabs/react-async-effect": ">=7.1.20 <8",
194
+ "@xylabs/react-button": ">=7.1.20 <7.2",
195
+ "@xylabs/react-dialogs": ">=7.1.20 <7.2",
196
+ "@xylabs/react-error": ">=7.1.20 <7.2",
197
+ "@xylabs/react-flexbox": ">=7.1.20 <7.2",
198
+ "@xylabs/react-promise": ">=7.1.20 <8",
199
+ "@xylabs/react-quick-tip-button": ">=7.1.20 <8",
200
+ "@xylabs/react-shared": ">=7.1.20 <7.2",
201
+ "@xylabs/react-theme": ">=7.1.20 <7.2",
202
+ "@xylabs/sdk-js": ">=5.0.101 <6",
203
+ "@xylabs/threads": ">=5.0.101 <5.1",
204
+ "@xylabs/zod": ">=5.0.101 <6",
205
+ "@xyo-network/account": ">=5.5.2 <5.6",
206
+ "@xyo-network/account-model": ">=5.5.2 <5.6",
207
+ "@xyo-network/api": ">=5.5.2 <5.6",
208
+ "@xyo-network/api-models": ">=5.5.2 <5.6",
209
+ "@xyo-network/boundwitness-builder": ">=5.5.2 <5.6",
210
+ "@xyo-network/boundwitness-model": ">=5.5.2 <5.6",
211
+ "@xyo-network/boundwitness-validator": ">=5.5.2 <5.6",
212
+ "@xyo-network/boundwitness-wrapper": ">=5.5.2 <5.6",
213
+ "@xyo-network/config-payload-plugin": ">=5.5.2 <5.6",
214
+ "@xyo-network/hash": ">=5.5.2 <5.6",
215
+ "@xyo-network/huri": ">=5.5.2 <5.6",
216
+ "@xyo-network/manifest-model": ">=5.5.2 <5.6",
217
+ "@xyo-network/payload-builder": ">=5.5.2 <5.6",
218
+ "@xyo-network/payload-model": ">=5.5.2 <5.6",
219
+ "@xyo-network/payload-plugin": ">=5.5.2 <5.6",
220
+ "@xyo-network/payload-wrapper": ">=5.5.2 <5.6",
221
+ "@xyo-network/query-payload-plugin": ">=5.5.2 <5.6",
222
+ "@xyo-network/react-boundwitness-plugin": ">=7.5.12 <7.6",
223
+ "@xyo-network/react-error": ">=7.5.12 <7.6",
224
+ "@xyo-network/react-event": ">=7.5.12 <7.6",
225
+ "@xyo-network/react-payload-raw-info": ">=7.5.12 <7.6",
226
+ "@xyo-network/react-payload-table": ">=7.5.12 <7.6",
227
+ "@xyo-network/react-shared": ">=7.5.12 <7.6",
228
+ "@xyo-network/react-table": ">=7.5.12 <7.6",
229
+ "@xyo-network/sdk-js": ">=5.5.6 <6",
230
+ "@xyo-network/sdk-protocol-js": ">=5.5.2 <5.6",
231
+ "@xyo-network/wallet": ">=5.5.2 <5.6",
232
+ "@xyo-network/wallet-model": ">=5.5.2 <6",
233
+ "@xyo-network/xl1-sdk": ">=1.26.44 <2",
234
+ "ajv": ">=8.20.0 <9",
235
+ "async-mutex": ">=0.5.0 <1",
236
+ "axios": ">=1.15.2 <2",
237
+ "bn.js": ">=5.2.3 <6",
238
+ "buffer": ">=6.0.3 <7",
239
+ "chalk": ">=5.6.2 <6",
240
+ "cosmiconfig": ">=9.0.1 <10",
241
+ "debug": ">=4.4.3 <4.5",
242
+ "ethers": ">=6.16.0 <7",
243
+ "hash-wasm": ">=4.12.0 <4.13",
244
+ "idb": ">=8.0.3 <9",
245
+ "lru-cache": ">=11.3.5 <12",
246
+ "mapbox-gl": ">=3.23.0 <4",
247
+ "observable-fns": ">=0.6.1 <0.7",
248
+ "pako": ">=2.1.0 <3",
249
+ "react": ">=19.2.5 <20",
250
+ "react-dom": ">=19.2.5 <20",
251
+ "react-icons": ">=5.6.0 <5.7",
252
+ "react-router-dom": ">=7.14.2 <8",
253
+ "rollbar": ">=3.1.0 <4",
254
+ "shallowequal": ">=1.1.0 <1.2",
255
+ "store2": ">=2.14.4 <2.15",
256
+ "storybook": ">=10.3.6 <11",
257
+ "typescript": ">=5.9.3 <5.10",
258
+ "uuid": ">=14.0.0 <14.1",
259
+ "vite": ">=8.0.10 <9",
260
+ "wasm-feature-detect": ">=1.8.0 <1.9",
261
+ "zod": ">=4.4.2 <4.5"
262
262
  },
263
263
  "engines": {
264
264
  "node": ">=24"