Package Exports
- @layerzerolabs/lz-serdes
- @layerzerolabs/lz-serdes/package.json
Readme
@layerzerolabs/lz-serdes
The LayerZero SerDes package provides essential functions and interfaces for serialization and deserialization of data. It includes utilities for serializing and deserializing various data types.
Features
- Serialization: Serialize various data types into bytes.
- Deserialization: Deserialize bytes into various data types.
Installation
To install the LayerZero SerDes package, you can use npm or yarn:
npm install @layerzerolabs/lz-serdes
or
yarn add @layerzerolabs/lz-serdes
Usage
Serialization
Class representing a serializer for various data types.
- serializeStr(value: string): void: Serializes a string.
- serializeBytes(value: Bytes): void: Serializes an array of bytes.
- serializeBool(value: boolean): void: Serializes a boolean value.
- serializeU8(value: Uint8): void: Serializes a uint8 number.
- serializeU16(value: Uint16): void: Serializes a uint16 number.
- serializeU32(value: Uint32): void: Serializes a uint32 number.
- serializeU64(value: AnyNumber): void: Serializes a uint64 number.
- serializeU128(value: AnyNumber): void: Serializes a uint128 number.
- serializeU256(value: AnyNumber): void: Serializes a uint256 number.
- getBytes(): Bytes: Returns the buffered bytes.
import { Serializer } from "@layerzerolabs/lz-serdes";
const serializer = new Serializer();
serializer.serializeStr("Hello, world!");
const bytes = serializer.getBytes();
console.log(`Serialized bytes: ${bytes}`);
Deserialization
Class representing a deserializer for various data types.
- deserializeStr(): string: Deserializes a string.
- deserializeBytes(): Bytes: Deserializes an array of bytes.
- deserializeBool(): boolean: Deserializes a boolean value.
- deserializeU8(): Uint8: Deserializes a uint8 number.
- deserializeU16(): Uint16: Deserializes a uint16 number.
- deserializeU32(): Uint32: Deserializes a uint32 number.
- deserializeU64(): Uint64: Deserializes a uint64 number.
- deserializeU128(): Uint128: Deserializes a uint128 number.
- deserializeU256(): Uint256: Deserializes a uint256 number.
import { Deserializer } from "@layerzerolabs/lz-serdes";
const bytes = new Uint8Array([
12, 72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33,
]);
const deserializer = new Deserializer(bytes);
const str = deserializer.deserializeStr();
console.log(`Deserialized string: ${str}`);
BCS Serialization
Serialize a uint64 Value
Serializes a uint64 value to bytes using BCS.
- value: The value to serialize.
- Returns: The serialized bytes.
import { bcsSerializeUint64 } from "@layerzerolabs/lz-serdes";
const value = 123456789n;
const bytes = bcsSerializeUint64(value);
console.log(`Serialized uint64 bytes: ${bytes}`);
Serialize a String
Serializes a string value to bytes using BCS.
- value: The value to serialize.
- Returns: The serialized bytes.
import { bcsSerializeStr } from "@layerzerolabs/lz-serdes";
const value = "Hello, world!";
const bytes = bcsSerializeStr(value);
console.log(`Serialized string bytes: ${bytes}`);