UNPKG

@atomiqlabs/chain-starknet

Version:
73 lines (72 loc) 2 kB
import { BtcHeader } from "@atomiqlabs/base"; import { Buffer } from "buffer"; import { BigNumberish } from "starknet"; export type StarknetBtcHeaderType = { reversed_version: BigNumberish; previous_blockhash: BigNumberish[]; merkle_root: BigNumberish[]; reversed_timestamp: BigNumberish; nbits: BigNumberish; nonce: BigNumberish; hash?: Buffer; }; /** * Representing a new bitcoin blockheader struct to be submitted to the Starknet BTC relay smart contract * * @category BTC Relay */ export declare class StarknetBtcHeader implements BtcHeader { private readonly reversed_version; private readonly previous_blockhash; private readonly merkle_root; private readonly reversed_timestamp; private readonly nbits; private readonly nonce; private readonly hash?; /** * Constructs the bitcoin blockheader from a struct as returned by the starknet.js lib * * @param obj Struct as returned by the starknet.js lib * * @internal */ constructor(obj: StarknetBtcHeaderType); /** * @inheritDoc */ getMerkleRoot(): Buffer; /** * @inheritDoc */ getNbits(): number; /** * @inheritDoc */ getNonce(): number; /** * @inheritDoc */ getReversedPrevBlockhash(): Buffer; /** * @inheritDoc */ getTimestamp(): number; /** * @inheritDoc */ getVersion(): number; /** * @inheritDoc */ getHash(): Buffer; /** * Serializes the bitcoin blockheader struct to an array of felt252 of length 20 */ serialize(): BigNumberish[]; /** * Deserializes the store bitcoin blockheader from its felt252 array representation * * @param span felt252 array encoding the stored blockheader, has to be at least 20 felts long */ static fromSerializedFeltArray(span: BigNumberish[]): StarknetBtcHeader; }