near / borsh-js

TypeScript/JavaScript implementation of Binary Object Representation Serializer for Hashing
Apache License 2.0
112 stars 38 forks source link

call class serialize/deserialize methods #20

Closed mehtaphysical closed 3 years ago

mehtaphysical commented 3 years ago

Fixes #19

This allows for something like:

export class PublicKey extends Assignable {
    keyType: KeyType;
    data: Uint8Array;

    serialize(writer: BinaryWriter) {
        writer.writeU8(this.keyType);
        writer.writeFixedArray(this.data);
    }

    static deserialize(reader: BinaryReader): PublicKey {
        const keyType = reader.readU8();
        const size = KeyType.ED25519 ? 32 : 65;
        return new PublicKey({ keyType, data: reader.readFixedArray(size) });
    }
}