Class Serializer

Hierarchy

  • Serializer

Constructors

Properties

buffer: ArrayBuffer
offset: number

Methods

  • Parameters

    • bytes: number

    Returns void

  • Serializes a boolean value.

    BCS layout for "boolean": One byte. "0x01" for True and "0x00" for False.

    Parameters

    • value: boolean

    Returns void

  • Serializes an array of bytes.

    BCS layout for "bytes": bytes_length | bytes. bytes_length is the length of the bytes array that is uleb128 encoded. bytes_length is a u32 integer.

    Parameters

    • value: Uint8Array

    Returns void

  • Serializes an array of bytes with known length. Therefore length doesn't need to be serialized to help deserialization. When deserializing, the number of bytes to deserialize needs to be passed in.

    Parameters

    • value: Uint8Array

    Returns void

  • Serializes a string. UTF8 string is supported. Serializes the string's bytes length "l" first, and then serializes "l" bytes of the string content.

    BCS layout for "string": string_length | string_content. string_length is the bytes length of the string that is uleb128 encoded. string_length is a u32 integer.

    Example

    const serializer = new Serializer();
    serializer.serializeStr("çå∞≠¢õß∂ƒ∫");
    assert(serializer.getBytes() === new Uint8Array([24, 0xc3, 0xa7, 0xc3, 0xa5, 0xe2, 0x88, 0x9e,
    0xe2, 0x89, 0xa0, 0xc2, 0xa2, 0xc3, 0xb5, 0xc3, 0x9f, 0xe2, 0x88, 0x82, 0xc6, 0x92, 0xe2, 0x88, 0xab]));

    Parameters

    • value: string

    Returns void

  • Serializes a uint128 number.

    BCS layout for "uint128": Sixteen bytes. Binary format in little-endian representation.

    Parameters

    Returns void

  • Serializes a uint16 number.

    BCS layout for "uint16": Two bytes. Binary format in little-endian representation.

    Example

    const serializer = new Serializer();
    serializer.serializeU16(4660);
    assert(serializer.getBytes() === new Uint8Array([0x34, 0x12]));

    Parameters

    • value: number

    Returns void

  • Serializes a uint256 number.

    BCS layout for "uint256": Sixteen bytes. Binary format in little-endian representation.

    Parameters

    Returns void

  • Serializes a uint32 number.

    BCS layout for "uint32": Four bytes. Binary format in little-endian representation.

    Example

    const serializer = new Serializer();
    serializer.serializeU32(305419896);
    assert(serializer.getBytes() === new Uint8Array([0x78, 0x56, 0x34, 0x12]));

    Parameters

    • value: number

    Returns void

  • Serializes a uint32 number with uleb128.

    BCS use uleb128 encoding in two cases: (1) lengths of variable-length sequences and (2) tags of enum values

    Parameters

    • val: number

    Returns void

  • Serializes a uint64 number.

    BCS layout for "uint64": Eight bytes. Binary format in little-endian representation.

    Example

    const serializer = new Serializer();
    serializer.serializeU64(1311768467750121216);
    assert(serializer.getBytes() === new Uint8Array([0x00, 0xEF, 0xCD, 0xAB, 0x78, 0x56, 0x34, 0x12]));

    Parameters

    Returns void

  • Serializes a uint8 number.

    BCS layout for "uint8": One byte. Binary format in little-endian representation.

    Parameters

    • value: number

    Returns void

  • Parameters

    • fn: ((byteOffset: number, value: number, littleEndian?: boolean) => void)
        • (byteOffset: number, value: number, littleEndian?: boolean): void
        • Parameters

          • byteOffset: number
          • value: number
          • Optional littleEndian: boolean

          Returns void

    • bytesLength: number
    • value: number

    Returns void

Generated using TypeDoc