Copy
Ask AI
import * as BlockHeader from 'voltaire-effect/primitives/BlockHeader'
import * as Schema from 'effect/Schema'
import { Effect } from 'effect'
// Schema
const header = Schema.decodeSync(BlockHeader.JSON)(headerData)
// Effect: from parameters
const program = BlockHeader.from({
parentHash,
stateRoot,
transactionsRoot,
receiptsRoot,
number: 19000000n,
timestamp: 1700000000n,
})
// From RPC response (hex conversion)
const fromRpc = BlockHeader.fromRpc(rpcHeader)
// Calculate hash (RLP + Keccak-256)
const hash = BlockHeader.calculateHash(header)
Usage
Copy
Ask AI
const validateChain = (parent: BlockHeaderType, child: BlockHeaderType) =>
Effect.gen(function* () {
const parentHash = BlockHeader.calculateHash(parent)
if (!equalBytes(child.parentHash, parentHash)) {
return yield* Effect.fail(new Error('Invalid parent hash'))
}
return true
})

