Creates a new instance of the class with a copy of the provided data buffer. This prevents outside mutation of the buffer.
The data to be copied into the internal buffer as a Uint8Array.
Helper function that primarily exists to support alternative syntax for deserialization.
That is, if we have a const deserializer: new Deserializer(...)
, instead of having to use
MyClass.deserialize(deserializer)
, we can call deserializer.deserialize(MyClass)
.
The BCS-deserializable class to deserialize the buffered bytes into.
the deserialized value of class type T
Deserializes an array of bytes.
The BCS layout for "bytes" consists of a bytes_length followed by the bytes themselves, where bytes_length is a u32 integer encoded as a uleb128 integer, indicating the length of the bytes array.
The deserialized array of bytes.
Deserializes an optional deserializable class.
BCS layout for Optional
The BCS-deserializable class to deserialize the buffered bytes into.
The deserialized value of class type T or undefined if no value exists.
const deserializer = new Deserializer(new Uint8Array([1, 2, 3]));
const value = deserializer.deserializeOption(MyClass); // where MyClass has a `deserialize` function
// value is now an instance of MyClass
const deserializer = new Deserializer(new Uint8Array([0]));
const value = deserializer.deserializeOption(MyClass); // where MyClass has a `deserialize` function
// value is undefined
Deserializes a UTF-8 encoded string from a byte array. It first reads the length of the string in bytes, followed by the actual byte content, and decodes it into a string.
BCS layout for "string": string_length | string_content where string_length is a u32 integer encoded as a uleb128 integer, equal to the number of bytes in string_content.
Deserializes an array of BCS Deserializable values given an existing Deserializer instance with a loaded byte buffer.
The BCS-deserializable class to deserialize the buffered bytes into.
An array of deserialized values of type T.
// serialize a vector of addresses
const addresses = new Array<AccountAddress>(
AccountAddress.from("0x1"),
AccountAddress.from("0x2"),
AccountAddress.from("0xa"),
AccountAddress.from("0xb"),
);
const serializer = new Serializer();
serializer.serializeVector(addresses);
const serializedBytes = serializer.toUint8Array();
// deserialize the bytes into an array of addresses
const deserializer = new Deserializer(serializedBytes);
const deserializedAddresses = deserializer.deserializeVector(AccountAddress);
// deserializedAddresses is now an array of AccountAddress instances
A class that provides methods for deserializing various data types from a byte buffer. It supports deserialization of primitive types, strings, and complex objects using a BCS (Binary Common Serialization) layout.