{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "merkle-proof", "title": "Merkle proof", "description": "Readable transaction-to-root Merkle proof path.", "dependencies": [ "lucide-react" ], "registryDependencies": [ "dennisonbertram/bitcoin-ui/hash-display" ], "files": [ { "path": "components/bitcoin/merkle-proof.tsx", "content": "import { CornerDownRight, ShieldCheck } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nimport { componentClasses } from \"@/lib/utils\";\n\nimport { HashDisplay } from \"./hash-display\";\nimport { panelStyles, type BitcoinVisualProps } from \"./shared\";\n\nexport interface MerkleProofNode {\n hash: string;\n side: \"left\" | \"right\";\n}\n\nexport type MerkleProofProps = Omit, \"children\"> &\n BitcoinVisualProps & {\n transactionId: string;\n merkleRoot: string;\n proof: MerkleProofNode[];\n verified?: boolean;\n };\n\nexport function MerkleProof({\n transactionId,\n merkleRoot,\n proof,\n verified,\n unstyled,\n className,\n ...props\n}: MerkleProofProps) {\n return (\n \n \n

\n Merkle proof\n

\n {verified ? (\n \n \n Verified\n \n ) : null}\n \n
\n \n Transaction\n

\n \n
\n \n {proof.map((node, index) => (\n \n \n \n {node.side}\n \n \n \n ))}\n \n \n \n Merkle root\n

\n \n \n \n );\n}\n", "type": "registry:component" } ], "type": "registry:component" }