@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
52 lines (51 loc) • 1.89 kB
TypeScript
import { BtcStoredHeader } from "@atomiqlabs/base";
import { StarknetBtcHeader, StarknetBtcHeaderType } from "./StarknetBtcHeader";
import { Buffer } from "buffer";
import { BigNumberish, Uint256 } from "starknet";
export type StarknetBtcStoredHeaderType = {
blockheader: StarknetBtcHeader | StarknetBtcHeaderType;
block_hash: BigNumberish[];
chain_work: BigNumberish | Uint256;
block_height: BigNumberish;
last_diff_adjustment: BigNumberish;
prev_block_timestamps: BigNumberish[];
};
export declare class StarknetBtcStoredHeader implements BtcStoredHeader<StarknetBtcHeader> {
blockheader: StarknetBtcHeader;
block_hash: number[];
chain_work: Uint256;
block_height: number;
last_diff_adjustment: number;
prev_block_timestamps: number[];
constructor(obj: StarknetBtcStoredHeaderType);
getBlockheight(): number;
getChainWork(): Buffer;
getHeader(): StarknetBtcHeader;
getLastDiffAdjustment(): number;
getPrevBlockTimestamps(): number[];
getBlockHash(): Buffer;
/**
* Computes prevBlockTimestamps for a next block, shifting the old block timestamps to the left & appending
* this block's timestamp to the end
*
* @private
*/
private computeNextBlockTimestamps;
/**
* Computes total chain work after a new header with "nbits" is added to the chain
*
* @param nbits
* @private
*/
private computeNextChainWork;
/**
* Computes lastDiffAdjustment, this changes only once every DIFF_ADJUSTMENT_PERIOD blocks
*
* @param headerTimestamp
* @private
*/
private computeNextLastDiffAdjustment;
computeNext(header: StarknetBtcHeader): StarknetBtcStoredHeader;
serialize(): BigNumberish[];
static fromSerializedFeltArray(span: BigNumberish[]): StarknetBtcStoredHeader;
}