@chainsafe/ssz
Version:
Simple Serialize
48 lines (47 loc) • 2.14 kB
TypeScript
import { Node } from "@chainsafe/persistent-merkle-tree";
import { Require } from "../util/types.ts";
import { BitArray } from "../value/bitArray.ts";
import { BitArrayType } from "./bitArray.ts";
import { ByteViews } from "./composite.ts";
export interface BitListOptions {
typeName?: string;
}
/**
* BitList: ordered variable-length collection of boolean values, limited to N bits
* - Notation `Bitlist[N]`
* - Value: `BitArray`, @see BitArray for a justification of its memory efficiency and performance
* - View: `BitArrayTreeView`
* - ViewDU: `BitArrayTreeViewDU`
*/
export declare class BitListType extends BitArrayType {
readonly limitBits: number;
readonly typeName: string;
readonly depth: number;
readonly chunkDepth: number;
readonly fixedSize: null;
readonly minSize = 1;
readonly maxSize: number;
readonly maxChunkCount: number;
readonly isList = true;
readonly mixInLengthBlockBytes: Uint8Array<ArrayBuffer>;
readonly mixInLengthBuffer: Buffer<ArrayBufferLike>;
constructor(limitBits: number, opts?: BitListOptions);
static named(limitBits: number, opts: Require<BitListOptions, "typeName">): BitListType;
defaultValue(): BitArray;
value_serializedSize(value: BitArray): number;
value_serializeToBytes(output: ByteViews, offset: number, value: BitArray): number;
value_deserializeFromBytes(data: ByteViews, start: number, end: number, reuseBytes?: boolean): BitArray;
tree_serializedSize(node: Node): number;
tree_serializeToBytes(output: ByteViews, offset: number, node: Node): number;
tree_deserializeFromBytes(data: ByteViews, start: number, end: number): Node;
tree_getByteLen(node?: Node): number;
hashTreeRoot(value: BitArray): Uint8Array;
hashTreeRootInto(value: BitArray, output: Uint8Array, offset: number): void;
private deserializeUint8ArrayBitListFromBytes;
}
type BitArrayDeserialized = {
uint8Array: Uint8Array;
bitLen: number;
};
export declare function deserializeUint8ArrayBitListFromBytes(data: Uint8Array, start: number, end: number, reuseBytes?: boolean): BitArrayDeserialized;
export {};