Documentation
    Preparing search index...

    Class BcsReader

    BCS data reader. Each instance owns its own decoder with independent state, so multiple readers never interfere with each other or with BcsType.parse().

    const reader = new BcsReader(bytes);
    const a = reader.read32();
    const b = reader.read64();
    Index

    Constructors

    • Parameters

      • Optionaldata: Uint8Array<ArrayBufferLike>

        Data to read from. Creates an independent decoder.

      • Optionaldecoder: {
            buildEnumDecoder: (
                variantKeys: string[],
                variantReaders: ((() => unknown) | null)[],
                enumName?: string,
            ) => () => unknown;
            buildFixedArrayDecoder: (
                len: number,
                elemReader: () => unknown,
                kind?: string,
            ) => () => unknown;
            buildMapDecoder: (
                keyReader: () => unknown,
                valueReader: () => unknown,
            ) => () => unknown;
            buildOptionDecoder: (
                innerReader: () => unknown,
            ) => { decode: () => unknown; parse: (bytes: Uint8Array) => unknown };
            buildStructDecoder: (
                keys: string[],
                readers: (() => unknown)[],
            ) => () => unknown;
            buildTupleDecoder: (readers: (() => unknown)[]) => () => unknown;
            buildVectorDecoder: (
                elemReader: () => unknown,
                kind?: string,
            ) => () => unknown;
            bulkDecodeBool: (n: number) => boolean[];
            bulkDecodeU16: (n: number) => number[];
            bulkDecodeU32: (n: number) => number[];
            bulkDecodeU64: (n: number) => string[];
            bulkDecodeU8: (n: number) => number[];
            decodeBool: () => boolean;
            decodeByteVector: () => Uint8Array;
            decodeFixedBytes: (size: number) => Uint8Array;
            decodeString: () => string;
            decodeU128: () => string;
            decodeU16: () => number;
            decodeU256: () => string;
            decodeU32: () => number;
            decodeU64: () => string;
            decodeU8: () => number;
            init: (data: Uint8Array) => void;
            readUleb: () => number;
            get data(): Uint8Array<ArrayBufferLike>;
            get offset(): number;
            set offset(v: number): void;
        }

        Optional: use an existing decoder instead of creating one.

        • buildEnumDecoder: (
              variantKeys: string[],
              variantReaders: ((() => unknown) | null)[],
              enumName?: string,
          ) => () => unknown
        • buildFixedArrayDecoder: (len: number, elemReader: () => unknown, kind?: string) => () => unknown
        • buildMapDecoder: (keyReader: () => unknown, valueReader: () => unknown) => () => unknown
        • buildOptionDecoder: (
              innerReader: () => unknown,
          ) => { decode: () => unknown; parse: (bytes: Uint8Array) => unknown }
        • buildStructDecoder: (keys: string[], readers: (() => unknown)[]) => () => unknown
        • buildTupleDecoder: (readers: (() => unknown)[]) => () => unknown
        • buildVectorDecoder: (elemReader: () => unknown, kind?: string) => () => unknown
        • bulkDecodeBool: (n: number) => boolean[]
        • bulkDecodeU16: (n: number) => number[]
        • bulkDecodeU32: (n: number) => number[]
        • bulkDecodeU64: (n: number) => string[]
        • bulkDecodeU8: (n: number) => number[]
        • decodeBool: () => boolean
        • decodeByteVector: () => Uint8Array
        • decodeFixedBytes: (size: number) => Uint8Array
        • decodeString: () => string
        • decodeU128: () => string
        • decodeU16: () => number
        • decodeU256: () => string
        • decodeU32: () => number
        • decodeU64: () => string
        • decodeU8: () => number
        • init: (data: Uint8Array) => void
        • readUleb: () => number
        • get data(): Uint8Array<ArrayBufferLike>
        • get offset(): number
        • set offset(v: number): void

      Returns BcsReader

    Accessors

    • get bytePosition(): number

      Returns number

    • set bytePosition(value: number): void

      Parameters

      • value: number

      Returns void

    • get bytes(): Uint8Array

      Returns Uint8Array

    • get position(): number

      Returns number

    Methods

    • Returns string

    • Returns number

    • Returns string

    • Returns number

    • Returns string

    • Returns number

    • Parameters

      • num: number

      Returns Uint8Array

    • Returns number

    • Parameters

      • cb: (reader: BcsReader, i: number, length: number) => any

      Returns any[]

    • Parameters

      • bytes: number

      Returns this