Documentation
    Preparing search index...

    Class BcsWriter

    Class used to write BCS data into a buffer. Initializer requires some size of a buffer to init; default value for this buffer is 1KB.

    Most methods are chainable, so it is possible to write them in one go.

    let serialized = new BcsWriter()
    .write8(10)
    .write32(1000000)
    .write64(10000001000000)
    .hex();
    Index

    Constructors

    • Parameters

      • Optional_options: BcsWriterOptions
      • Optionalenc: {
            buildEnumEncoder: (
                variantKeys: string[],
                variantWriters: (((v: unknown) => void) | null)[],
            ) => (v: unknown) => void;
            buildFixedArrayEncoder: (
                len: number,
                elemWriter: (v: unknown) => void,
                kind?: string,
            ) => (v: unknown) => void;
            buildMapEncoder: (
                keyWriter: (v: unknown) => void,
                valueWriter: (v: unknown) => void,
            ) => (v: unknown) => void;
            buildOptionEncoder: (
                innerWriter: (v: unknown) => void,
            ) => (v: unknown) => void;
            buildStructEncoder: (
                keys: string[],
                writers: ((v: unknown) => void)[],
            ) => (v: unknown) => void;
            buildTupleEncoder: (
                writers: ((v: unknown) => void)[],
            ) => (v: unknown) => void;
            buildVectorEncoder: (
                elemWriter: (v: unknown) => void,
                kind?: string,
            ) => (v: unknown) => void;
            bulkEncodeBool: (a: boolean[]) => void;
            bulkEncodeU16: (a: number[]) => void;
            bulkEncodeU32: (a: number[]) => void;
            bulkEncodeU64: (a: (string | number | bigint)[]) => void;
            bulkEncodeU8: (a: Uint8Array<ArrayBufferLike> | number[]) => void;
            encodeBool: (v: boolean) => void;
            encodeByteVector: (v: Iterable<number>) => void;
            encodeFixedBytes: (v: Iterable<number>, size: number) => void;
            encodeString: (v: string) => void;
            encodeU128: (v: string | number | bigint) => void;
            encodeU16: (v: number) => void;
            encodeU256: (v: string | number | bigint) => void;
            encodeU32: (v: number) => void;
            encodeU64: (v: string | number | bigint) => void;
            encodeU8: (v: number) => void;
            ensure: (n: number) => void;
            fastSerialize: (
                writeFn: (value: unknown) => void,
                value: unknown,
                sizeLimit?: number,
            ) => Uint8Array<ArrayBuffer>;
            getEncodeResult: () => Uint8Array<ArrayBuffer>;
            initEncode: () => void;
            writeRawBytes: (bytes: Uint8Array) => void;
            writeUleb: (n: number) => void;
            get offset(): number;
            set offset(v: number): void;
        }
        • buildEnumEncoder: (
              variantKeys: string[],
              variantWriters: (((v: unknown) => void) | null)[],
          ) => (v: unknown) => void
        • buildFixedArrayEncoder: (
              len: number,
              elemWriter: (v: unknown) => void,
              kind?: string,
          ) => (v: unknown) => void
        • buildMapEncoder: (
              keyWriter: (v: unknown) => void,
              valueWriter: (v: unknown) => void,
          ) => (v: unknown) => void
        • buildOptionEncoder: (innerWriter: (v: unknown) => void) => (v: unknown) => void
        • buildStructEncoder: (keys: string[], writers: ((v: unknown) => void)[]) => (v: unknown) => void
        • buildTupleEncoder: (writers: ((v: unknown) => void)[]) => (v: unknown) => void
        • buildVectorEncoder: (elemWriter: (v: unknown) => void, kind?: string) => (v: unknown) => void
        • bulkEncodeBool: (a: boolean[]) => void
        • bulkEncodeU16: (a: number[]) => void
        • bulkEncodeU32: (a: number[]) => void
        • bulkEncodeU64: (a: (string | number | bigint)[]) => void
        • bulkEncodeU8: (a: Uint8Array<ArrayBufferLike> | number[]) => void
        • encodeBool: (v: boolean) => void
        • encodeByteVector: (v: Iterable<number>) => void
        • encodeFixedBytes: (v: Iterable<number>, size: number) => void
        • encodeString: (v: string) => void
        • encodeU128: (v: string | number | bigint) => void
        • encodeU16: (v: number) => void
        • encodeU256: (v: string | number | bigint) => void
        • encodeU32: (v: number) => void
        • encodeU64: (v: string | number | bigint) => void
        • encodeU8: (v: number) => void
        • ensure: (n: number) => void
        • fastSerialize: (
              writeFn: (value: unknown) => void,
              value: unknown,
              sizeLimit?: number,
          ) => Uint8Array<ArrayBuffer>
        • getEncodeResult: () => Uint8Array<ArrayBuffer>
        • initEncode: () => void
        • writeRawBytes: (bytes: Uint8Array) => void
        • writeUleb: (n: number) => void
        • get offset(): number
        • set offset(v: number): void

      Returns BcsWriter

    Accessors

    • get bytePosition(): number

      Returns number

    Methods

    • Adds support for iterations over the object.

      Returns Iterator<number, Iterable<number, any, any>>

    • Ensure the buffer has at least bytes bytes of capacity remaining.

      Parameters

      • bytes: number

        Number of bytes to reserve.

      Returns this

    • Shift current cursor position by bytes.

      Parameters

      • bytes: number

        Number of bytes to

      Returns this

      Self for possible chaining.

    • Get underlying buffer taking only value bytes (in case initial buffer size was bigger).

      Returns Uint8Array<ArrayBuffer>

      Resulting bcs.

    • Represent data as 'hex' or 'base64'

      Parameters

      • encoding: Encoding

        Encoding to use: 'base64' or 'hex'

      Returns string

    • Write a U128 value into a buffer and shift cursor position by 16.

      Parameters

      • value: number | bigint

        Value to write.

      Returns this

    • Write a U16 value into a buffer and shift cursor position by 2.

      Parameters

      • value: number | bigint

        Value to write.

      Returns this

    • Write a U256 value into a buffer and shift cursor position by 32.

      Parameters

      • value: number | bigint

        Value to write.

      Returns this

    • Write a U32 value into a buffer and shift cursor position by 4.

      Parameters

      • value: number | bigint

        Value to write.

      Returns this

    • Write a U64 value into a buffer and shift cursor position by 8.

      Parameters

      • value: number | bigint

        Value to write.

      Returns this

    • Write a U8 value into a buffer and shift cursor position by 1.

      Parameters

      • value: number | bigint

        Value to write.

      Returns this

    • Write raw bytes into the buffer and shift cursor by the length of the bytes.

      Parameters

      • bytes: Uint8Array

        Bytes to write.

      Returns this

    • Write a ULEB value into a buffer and shift cursor position by number of bytes written.

      Parameters

      • value: number

        Value to write.

      Returns this

    • Write a vector into a buffer by first writing the vector length and then calling a callback on each passed value.

      Parameters

      • vector: any[]

        Array of elements to write.

      • cb: (writer: BcsWriter, el: any, i: number, len: number) => void

        Callback to call on each element of the vector.

      Returns this