README
Borsh JS ESM
Borsh ESM is an implementation of the Borsh compatible with ES modules.
That package implemented as experiment, and tested only in browser.
Examples
Serializing an object
const value = new Test({ x: 255, y: 20, z: '123', q: [1, 2, 3] });
const schema = new Map([[Test, { kind: 'struct', fields: [['x', 'u8'], ['y', 'u64'], ['z', 'string'], ['q', [3]]] }]]);
const buffer = borsh.serialize(schema, value);
Deserializing an object
const newValue = borsh.deserialize(schema, Test, buffer);
Type Mappings
Borsh | TypeScript |
---|---|
u8 integer |
number |
u16 integer |
number |
u32 integer |
number |
u64 integer |
BN |
u128 integer |
BN |
u256 integer |
BN |
u512 integer |
BN |
f32 float |
N/A |
f64 float |
N/A |
fixed-size byte array | Uint8Array |
UTF-8 string | string |
option | null or type |
map | N/A |
set | N/A |
structs | any |
Contributing
Install dependencies:
yarn install
Continuously build with:
yarn dev
Run tests:
yarn test
Run linter
yarn lint
Publish
Prepare dist
version by running:
yarn build
When publishing to npm use np.
License
This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-MIT and LICENSE-APACHE for details.