@haneullabs/bcs 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 2.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 43e69f8: Add embedded LLM-friendly docs to published packages
8
+
3
9
  ## 2.0.2
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"bcs-type.d.mts","names":[],"sources":["../src/bcs-type.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"bcs-type.d.mts","names":[],"sources":["../src/bcs-type.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bcs.d.mts","names":[],"sources":["../src/bcs.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"bcs.d.mts","names":[],"sources":["../src/bcs.ts"],"mappings":";;;;iBAyBS,UAAA,WAAqB,OAAA,oCAAA,CAC7B,IAAA,UACA,IAAA,EAAM,CAAA,EACN,OAAA,GAAU,cAAA,CACT,YAAA,CAAa,CAAA,KACb,QAAA,CAAS,aAAA,CAAc,CAAA;EAAQ,MAAA;AAAA,GAC/B,IAAA,IAEC,OAAA,CAAQ,YAAA,CAAa,CAAA,KAAM,QAAA,CAAS,aAAA,CAAc,CAAA;EAAQ,MAAA;AAAA,GAAkB,IAAA;AAAA,iBACtE,UAAA,wCAAA,CACR,IAAA,UACA,IAAA,EAAM,OAAA,CAAQ,CAAA,EAAG,KAAA,GACjB,OAAA,GAAU,cAAA,CAAe,CAAA,IAAK,QAAA,CAAS,KAAA;EAAW,MAAA;AAAA,GAAkB,IAAA,IAClE,OAAA,CAAQ,CAAA,IAAK,QAAA,CAAS,KAAA;EAAW,MAAA;AAAA,GAAkB,IAAA;AAAA,iBAqC7C,MAAA,WAAiB,OAAA,MAAA,CACzB,IAAA,EAAM,CAAA,GACJ,OAAA,CAAQ,YAAA,CAAa,CAAA,UAAW,aAAA,CAAc,CAAA,gCAAiC,CAAA;AAAA,iBACzE,MAAA,wCAAA,CACR,IAAA,EAAM,OAAA,CAAQ,CAAA,EAAG,KAAA,EAAO,IAAA,IACtB,OAAA,CAAQ,CAAA,SAAU,KAAA;AAAA,iBA2BZ,MAAA,WAAiB,OAAA,uCAA8C,CAAA,YAAA,CACvE,IAAA,EAAM,CAAA,EACN,OAAA,GAAU,cAAA,CACT,YAAA,CAAa,CAAA,KACb,QAAA,CAAS,aAAA,CAAc,CAAA;EAAQ,MAAA;AAAA,GAC/B,IAAA,IAEC,OAAA,CAAQ,YAAA,CAAa,CAAA,KAAM,QAAA,CAAS,aAAA,CAAc,CAAA;EAAQ,MAAA;AAAA,GAAkB,IAAA;AAAA,iBACtE,MAAA,wCAAA,CACR,IAAA,EAAM,OAAA,CAAQ,CAAA,EAAG,KAAA,EAAO,IAAA,GACxB,OAAA,GAAU,cAAA,CAAe,CAAA,IAAK,QAAA,CAAS,KAAA;EAAW,MAAA;AAAA,aAA4B,IAAA,OAC5E,OAAA,CAAQ,CAAA,IAAK,QAAA,CAAS,KAAA;EAAW,MAAA;AAAA,aAA4B,IAAA;;;;;;iBAwChD,eAAA,CAAgB,CAAA,EAAG,UAAA,EAAY,CAAA,EAAG,UAAA;AAAA,iBAUzC,GAAA,aAAc,OAAA,iBAAwB,OAAA,MAAA,CAC9C,OAAA,EAAS,GAAA,EACT,SAAA,EAAW,CAAA,GACT,OAAA,CACF,GAAA,CAAI,YAAA,CAAa,GAAA,GAAI,YAAA,CAAa,CAAA,IAClC,GAAA,CAAI,aAAA,CAAc,GAAA,GAAI,aAAA,CAAc,CAAA,WAC7B,GAAA,aAAc,CAAA;AAAA,iBAEb,GAAA,kBAAmB,GAAA,WAAY,CAAA,CAAA,CACvC,OAAA,EAAS,OAAA,CAAQ,GAAA,EAAG,MAAA,GACpB,SAAA,EAAW,OAAA,CAAQ,CAAA,EAAG,MAAA,IACpB,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAG,CAAA,GAAI,GAAA,CAAI,MAAA,EAAQ,MAAA;AAAA,cAkCrB,GAAA;EAvLX;;;;;eA6LY,cAAA,WAAsB,OAAA;EA1LjC;;;;;gBA0MY,cAAA,WAAsB,OAAA;EA1MwB;;;;AAAsB;gBA0NpE,cAAA,WAAsB,OAAA;EAzNlB;;;;;gBAyOJ,cAAA,qCAAgD,OAAA;EAtOhC;;;;;iBAsPf,cAAA,qCAAgD,OAAA;EArPV;;;;;iBAqQtC,cAAA,qCAAgD,OAAA;EAzQlC;;;;;iBAyRd,cAAA,YAAuB,OAAA;EAtR5B;;;;;oBA2SQ,cAAA,WAAsB,OAAA;EA3SxC;;;;;;0BA4TsB,IAAA,EAAQ,CAAA,EAAC,OAAA,GAAY,cAAA,CAAe,UAAA,EAAY,QAAA,YAAiB,OAAA,CAAA,UAAA,CAAA,eAAA,GAAA,QAAA,mBAAA,CAAA;EA3T9B;;AAAA;;;;uBAsVpC,cAAA,CAAe,UAAA,EAAY,QAAA,YAAiB,OAAA,CAAA,UAAA,CAAA,eAAA,GAAA,QAAA;EA/S1C;;;;;mBA+UN,cAAA,WAAsB,OAAA;EA/U9B;;;;;;;;EAAc;;;;;;AAA2D;;EACpE;;;;;;;;EAEL;;;;;;;;iCAwXiB,OAAA,8CACA,UAAA,eACL,CAAA,GAAA,CAAA,CAAA,CAAA,UAAA,OAAA,uCAAA,GAAA,sBAAA,MAAA,EAEZ,CAAA,EAAC,OAAA,GACC,cAAA,2BAEc,CAAA,GAAI,CAAA,CAAE,GAAA,UAAW,OAAA,mBAAwB,GAAA,4BAGnD,CAAA,GAAI,CAAA,CAAE,GAAA,UAAW,OAAA,mBAAwB,GAAA,YAEtD,IAAA,IACA,QAAA,CAAA,CAAA,EAAA,IAAA;EAtYF;;;;;;AACyB;;;;;;mBAyZR,MAAA,SAAe,OAAA,4CAAwC,IAAA,EACjE,IAAA,EAAI,MAAA,EACF,CAAA,EAAC,OAAA,GACC,IAAA,CACT,cAAA,eAEc,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,iBAAwB,CAAA,0BAGzC,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,iBAAwB,CAAA,uBAIvD,SAAA,CAAA,CAAA;EAxYD;;;;;;;;;;;;;;;;iBAiac,MAAA,SAAe,OAAA,mDAA+C,IAAA,EACtE,IAAA,EAAI,MAAA,EACF,CAAA,EAAC,OAAA,GACC,IAAA,CACT,cAAA,CACC,eAAA,eACa,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,sBAA6B,CAAA,YAE3D,cAAA,eACa,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,sBAA6B,CAAA,+BAE3D,IAAA,aAGD,OAAA,CAAA,CAAA,EAAA,IAAA;EAlbqC;;;;;;;;;EAIf;;;;iBAqcT,OAAA,OAAY,EAAA,QAAY,CAAA,GAAI,CAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.mts","names":[],"sources":["../src/reader.ts"],"sourcesContent":[],"mappings":";;AAmCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAa,SAAA;;;;;;oBAOM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA6EM;;;;;;;;;;;;;uBA4BH"}
1
+ {"version":3,"file":"reader.d.mts","names":[],"sources":["../src/reader.ts"],"mappings":";;AAmCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAa,SAAA;EAAA,QACJ,QAAA;EAAA,QACA,YAAA;EA8GyD;;;cAzGrD,IAAA,EAAM,UAAA;;;;;;;EASlB,KAAA,CAAM,KAAA;;;;;EAQN,KAAA,CAAA;;;;;EASA,MAAA,CAAA;;;;;EASA,MAAA,CAAA;;;;;EASA,MAAA,CAAA;;;;EAWA,OAAA,CAAA;;;;;EAWA,OAAA,CAAA;;;;;EAWA,SAAA,CAAU,GAAA,WAAc,UAAA;;;;;;EAaxB,QAAA,CAAA;;;;;;;EAeA,OAAA,CAAQ,EAAA,GAAK,MAAA,EAAQ,SAAA,EAAW,CAAA,UAAW,MAAA;AAAA"}
package/dist/types.d.mts CHANGED
@@ -2,7 +2,6 @@ import { BcsType } from "./bcs-type.mjs";
2
2
  import { Simplify } from "@haneullabs/utils";
3
3
 
4
4
  //#region src/types.d.ts
5
-
6
5
  /**
7
6
  * Supported encodings.
8
7
  * Used in `Reader.toString()` as well as in `decodeStr` and `encodeStr` functions.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;;;;;AAUA;AAEA;AAAmC,KAFvB,QAAA,GAEuB,QAAA,GAAA,QAAA,GAAA,KAAA;AAAgB,KAAvC,YAAuC,CAAA,UAAhB,OAAgB,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA,SAAU,OAAV,CAAA,KAAA,EAAA,EAAA,GAAA,CAAA,GAAA,CAAA,GAAA,KAAA;AAAU,KACjD,aADiD,CAAA,UACzB,OADyB,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA,GAE5D,CAF4D,SAElD,OAFkD,CAAA,GAAA,EAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GAAA,KAAA;AAAO,KAIxD,eAJwD,CAAA,UAKzD,MALyD,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,aAAA,MAAA,GAM7C,OAN6C,CAAA,MAM/B,CAN+B,EAAA,MAAA,CAAA,EAAA,UAO1D,CAP0D,CAAA,MAOlD,CAPkD,CAAA,SAAA,KAAA,KAAA,GAAA,CAAA,IAAA,SAOZ,OAPY,CAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAA,EAAA,GAAA,CAAA,SAQtD,MARsD,GASjE,uBATiE,CASzC,CATyC,EAAA,KAAA,CAAA,GAAA,EAAA,SAUtD,MAVsD,GAWhE,uBAXgE,CAWxC,CAXwC,EAAA,KAAA,CAAA,GAAA,EAAA,SAYrD,MAZqD,GAa/D,uBAb+D,CAavC,CAbuC,EAAA,KAAA,CAAA,GAAA,KAAA,SAcjD,MAdiD,GAe9D,uBAf8D,CAetC,CAfsC,EAAA,KAAA,CAAA,GAgB9D,uBAhB8D,CAgBtC,CAhBsC,EAgBnC,IAhBmC,CAAA;AACxD,KAiBA,uBAjBa,CAAA,UAiBqB,MAjBrB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,aAAA,MAAA,CAAA,GAAA,QAAW,MAkBvB,CAlBuB,GAkBnB,OAlBmB,CAkBX,IAlBW,EAkBL,CAlBK,CAAA,SAAA,KAAA,eAAA,MAAA,GAmBhC,QAnBgC,CAAA,SAoBvB,CAnBZ,GAmBgB,CAnBhB,CAmBkB,CAnBlB,CAAA,EAAU,GAAA,QAmBuB,KAnBhB,IAAA,KAAA,EAEN,GAAA;EACD,KAAA,EAiBC,CAjBD;AAC0B,CAAA,CAAA,GAAA,KAAA,EAAd,CAAA,MAoBf,CApBe,CAAA;AACb,KAqBE,cArBF,CAAA,UAqB2B,MArB3B,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,QAAQ,MAsBL,CAtBK,GAAA,SAsBQ,CAtB8B,GAsB1B,CAtB0B,CAsBxB,CAtBwB,CAAA,EAC1C,EACa,CAAA,MAqBnB,CArBmB,CAAA;AAAxB,KAuBS,UAvBT,CAAA,CAAA,EAAA,YAAA,MAAA,CAAA,GAuB6C,CAvB7C,SAAA,SAAA,CACW,KAAA,WAAA,MAAA,EACc,GAAA,KAAA,WAAA,MAAA,EAAA,CAAxB,GAAA,EAAA,SAAA,CAAA,GAAA,CAAA,GAAA,GA2BG,CA3BH,GA2BO,GA3BP,GA2Ba,UA3Bb,CA2BwB,CA3BxB,EA2B2B,GA3B3B,CAAA,EAAA,GAAA,EAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;AAUA;;KAAY,QAAA;AAAA,KAEA,YAAA,WAAuB,OAAA,SAAgB,CAAA,SAAU,OAAA,iBAAwB,CAAA;AAAA,KACzE,aAAA,WAAwB,OAAA,cACnC,CAAA,SAAU,OAAA,iBAAwB,CAAA;AAAA,KAEvB,eAAA,WACD,MAAA,yCACY,OAAA,OAAc,CAAA,qBAC3B,CAAA,OAAQ,CAAA,wBAAyB,IAAA,SAAa,OAAA,YAAmB,CAAA,gCAC7D,MAAA,GACX,uBAAA,CAAwB,CAAA,sBACb,MAAA,GACV,uBAAA,CAAwB,CAAA,sBACb,MAAA,GACV,uBAAA,CAAwB,CAAA,yBACV,MAAA,GACb,uBAAA,CAAwB,CAAA,WACxB,uBAAA,CAAwB,CAAA,EAAG,IAAA;AAAA,KAErB,uBAAA,WAAkC,MAAA,wDACjC,CAAA,GAAI,OAAA,CAAQ,IAAA,EAAM,CAAA,uCAC3B,QAAA,UACS,CAAA,GAAI,CAAA,CAAE,CAAA,cAAe,KAAA;EAC7B,KAAA,EAAO,CAAA;AAAA,mBAIJ,CAAA;AAAA,KAEI,cAAA,WAAyB,MAAA,mCACxB,CAAA,YAAa,CAAA,GAAI,CAAA,CAAE,CAAA,YACxB,CAAA;AAAA,KAEI,UAAA,0BAAoC,CAAA,qFAIlC,CAAA,GACV,CAAA,MACG,CAAA,GAAI,GAAA,GAAM,UAAA,CAAW,CAAA,EAAG,GAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"uleb.d.mts","names":[],"sources":["../src/uleb.ts"],"sourcesContent":[],"mappings":";iBAKgB,UAAA;AAAA,iBAuBA,UAAA,CAvBU,GAAA,EAAA,MAAA,EAAA,GAuBiB,UAvBjB,CAAA,EAAA;EAuBV,KAAA,EAAA,MAAU"}
1
+ {"version":3,"file":"uleb.d.mts","names":[],"sources":["../src/uleb.ts"],"mappings":";iBAKgB,UAAA,CAAW,GAAA;AAAA,iBAuBX,UAAA,CAAW,GAAA,aAAgB,UAAA;EAC1C,KAAA;EACA,MAAA;AAAA"}
package/dist/utils.d.mts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Encoding } from "./types.mjs";
2
2
 
3
3
  //#region src/utils.d.ts
4
-
5
4
  /**
6
5
  * Encode data with either `hex` or `base64`.
7
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.mts","names":[],"sources":["../src/utils.ts"],"sourcesContent":[],"mappings":";;;;;;AAaA;AAoBA;AAaA;;;iBAjCgB,SAAA,OAAgB,sBAAsB;;;;;;;;iBAoBtC,SAAA,yBAAkC,WAAW;iBAa7C,sBAAA"}
1
+ {"version":3,"file":"utils.d.mts","names":[],"sources":["../src/utils.ts"],"mappings":";;;;;AAaA;;;;;iBAAgB,SAAA,CAAU,IAAA,EAAM,UAAA,EAAY,QAAA,EAAU,QAAA;;;;;AAoBtD;;;iBAAgB,SAAA,CAAU,IAAA,UAAc,QAAA,EAAU,QAAA,GAAW,UAAA;AAAA,iBAa7C,sBAAA,CACf,GAAA,UACA,iBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.mts","names":[],"sources":["../src/writer.ts"],"sourcesContent":[],"mappings":";;;UAOiB,gBAAA;;EAAA,WAAA,CAAA,EAAA,MAAgB;EA2BpB;EAQX,OAAA,CAAA,EAAA,MAAA;EACA;EACA,YAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;cAVW,SAAA;;;;;;;;;;MAWT;;;;;;;;;;;;;;;;;;;;oBAqDe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA+EmB;;;;;GAWnC,MAAA,CAAO,QAAA,KAAa,iBAAiB;;;;;aAW5B,WAAW;;;;;qBAQH"}
1
+ {"version":3,"file":"writer.d.mts","names":[],"sources":["../src/writer.ts"],"mappings":";;;UAOiB,gBAAA;;EAEhB,WAAA;EAFgC;EAIhC,OAAA;EAJgC;EAMhC,YAAA;AAAA;;;;AAqBD;;;;;;;;;;;;;;cAAa,SAAA;EAAA,QACJ,QAAA;EAAA,QACA,YAAA;EAAA,QACA,IAAA;EAAA,QACA,OAAA;EAAA,QACA,YAAA;;IAGP,WAAA;IACA,OAAA;IACA;EAAA,IACE,gBAAA;EAAA,QAOK,gBAAA;;;;;;;EA0BR,KAAA,CAAM,KAAA;EAjCH;;;;;EA0CH,MAAA,CAAO,KAAA;EAWP;;;;;EAAA,UAAA,CAAW,KAAA,EAAO,UAAA;EAwBV;;;;;EAVR,OAAA,CAAQ,KAAA;EA0CC;;;;;EAhCT,OAAA,CAAQ,KAAA;EAuDqB;;;;;EA7C7B,OAAA,CAAQ,KAAA;EAwDC;;;;;;EA7CT,QAAA,CAAS,KAAA;EAgEU;;;;;;EArDnB,QAAA,CAAS,KAAA;;;;;;;EAWT,SAAA,CAAU,KAAA;;;;;;;;;EAYV,QAAA,CAAS,MAAA,SAAe,EAAA,GAAK,MAAA,EAAQ,SAAA,EAAW,EAAA,OAAS,CAAA,UAAW,GAAA;;;;;GAWlE,MAAA,CAAO,QAAA,KAAa,QAAA,SAAiB,QAAA;;;;;EAWvC,OAAA,CAAA,GAAW,UAAA,CAAW,WAAA;;;;;EAQtB,QAAA,CAAS,QAAA,EAAU,QAAA;AAAA"}
package/docs/index.md ADDED
@@ -0,0 +1,352 @@
1
+ # BCS - Binary Canonical Serialization
2
+
3
+ > Encode and decode Haneul Move types with Binary Canonical Serialization
4
+
5
+ This small and lightweight library implements
6
+ [Binary Canonical Serialization (BCS)](https://github.com/zefchain/bcs) in TypeScript, making BCS
7
+ available in both Browser and NodeJS environments in a type-safe way.`
8
+
9
+ ## Install
10
+
11
+ To install, add the [`@haneullabs/bcs`](https://www.npmjs.com/package/@haneullabs/bcs) package to
12
+ your project:
13
+
14
+ ```sh npm2yarn
15
+ npm i @haneullabs/bcs
16
+ ```
17
+
18
+ ## Quickstart
19
+
20
+ ```ts
21
+ // define UID as a 32-byte array, then add a transform to/from hex strings
22
+ const UID = bcs.fixedArray(32, bcs.u8()).transform({
23
+ input: (id: string) => fromHex(id),
24
+ output: (id) => toHex(Uint8Array.from(id)),
25
+ });
26
+
27
+ const Coin = bcs.struct('Coin', {
28
+ id: UID,
29
+ value: bcs.u64(),
30
+ });
31
+
32
+ // deserialization: BCS bytes into Coin
33
+ const bcsBytes = Coin.serialize({
34
+ id: '0000000000000000000000000000000000000000000000000000000000000001',
35
+ value: 1000000n,
36
+ }).toBytes();
37
+
38
+ const coin = Coin.parse(bcsBytes);
39
+
40
+ // serialization: Object into bytes - an Option with <T = Coin>
41
+ const hex = bcs.option(Coin).serialize(coin).toHex();
42
+
43
+ console.log(hex);
44
+ ```
45
+
46
+ ## Description
47
+
48
+ BCS defines the way the data is serialized, and the serialized results contains no type information.
49
+ To be able to serialize the data and later deserialize it, a schema has to be created (based on the
50
+ built-in primitives, such as `string` or `u64`). There are no type hints in the serialized bytes on
51
+ what they mean, so the schema used for decoding must match the schema used to encode the data.
52
+
53
+ The `@haneullabs/bcs` library can be used to define schemas that can serialize and deserialize BCS
54
+ encoded data, and can infer the correct TypeScript for the schema from the definitions themselves
55
+ rather than having to define them manually.
56
+
57
+ ## Basic types
58
+
59
+ bcs supports a number of built in base types that can be combined to create more complex types. The
60
+ following table lists the primitive types available:
61
+
62
+ | Method | TS Type | TS Input Type | Description |
63
+ | --------------------- | ------------ | ---------------------------- | --------------------------------------------------------------------------- |
64
+ | `bool` | `boolean` | `boolean` | Boolean type (converts to `true` / `false`) |
65
+ | `u8`, `u16`, `u32` | `number` | `number` | Unsigned Integer types |
66
+ | `u64`, `u128`, `u256` | `string` | `number \| string \| bigint` | Unsigned Integer types, decoded as `string` to allow for JSON serialization |
67
+ | `uleb128` | `number` | `number` | Unsigned LEB128 integer type |
68
+ | `string` | `string` | `string` | UTF-8 encoded string |
69
+ | `bytes(size)` | `Uint8Array` | `Iterable<number>` | Fixed length bytes |
70
+ | `byteVector` | `Uint8Array` | `Iterable<number>` | Variable length bytes |
71
+
72
+ ```ts
73
+ // Integers
74
+ const u8 = bcs.u8().serialize(100).toBytes();
75
+ const u64 = bcs.u64().serialize(1000000n).toBytes();
76
+ const u128 = bcs.u128().serialize('100000010000001000000').toBytes();
77
+
78
+ // Other types
79
+ const str = bcs.string().serialize('this is an ascii string').toBytes();
80
+ const hex = bcs.hex().serialize('C0FFEE').toBytes();
81
+ const bytes = bcs.bytes(4).serialize([1, 2, 3, 4]).toBytes();
82
+ const byteVector = bcs
83
+ .byteVector()
84
+ .serialize(new Uint8Array([1, 2, 3, 4]))
85
+ .toBytes();
86
+ // Parsing data back into original types
87
+ const parsedU8 = bcs.u8().parse(u8);
88
+ // u64-u256 will be represented as bigints regardless of how they were provided when serializing them
89
+ const parsedU64 = bcs.u64().parse(u64);
90
+ const parsedU128 = bcs.u128().parse(u128);
91
+
92
+ const parsedStr = bcs.string().parse(str);
93
+ const parsedHex = bcs.hex().parse(hex);
94
+ const parsedBytes = bcs.bytes(4).parse(bytes);
95
+ const parsedByteVector = bcs.byteVector().parse(byteVector);
96
+ ```
97
+
98
+ ## Compound types
99
+
100
+ For most use-cases you'll want to combine primitive types into more complex types like `vectors`,
101
+ `structs` and `enums`. The following table lists methods available for creating compound types:
102
+
103
+ | Method | Description |
104
+ | ---------------------- | ----------------------------------------------------- |
105
+ | `vector(type: T)` | A variable length list of values of type `T` |
106
+ | `fixedArray(size, T)` | A fixed length array of values of type `T` |
107
+ | `option(type: T)` | A value of type `T` or `null` |
108
+ | `enum(name, values)` | An enum value representing one of the provided values |
109
+ | `struct(name, fields)` | A struct with named fields of the provided types |
110
+ | `tuple(types)` | A tuple of the provided types |
111
+ | `map(K, V)` | A map of keys of type `K` to values of type `V` |
112
+
113
+ ```ts
114
+ // Vectors
115
+ const intList = bcs.vector(bcs.u8()).serialize([1, 2, 3, 4, 5]).toBytes();
116
+ const stringList = bcs.vector(bcs.string()).serialize(['a', 'b', 'c']).toBytes();
117
+
118
+ // Fixed length Arrays
119
+ const intArray = bcs.fixedArray(4, bcs.u8()).serialize([1, 2, 3, 4]).toBytes();
120
+ const stringArray = bcs.fixedArray(3, bcs.string()).serialize(['a', 'b', 'c']).toBytes();
121
+
122
+ // Option
123
+ const option = bcs.option(bcs.string()).serialize('some value').toBytes();
124
+ const nullOption = bcs.option(bcs.string()).serialize(null).toBytes();
125
+
126
+ // Enum
127
+ const MyEnum = bcs.enum('MyEnum', {
128
+ NoType: null,
129
+ Int: bcs.u8(),
130
+ String: bcs.string(),
131
+ Array: bcs.fixedArray(3, bcs.u8()),
132
+ });
133
+
134
+ const noTypeEnum = MyEnum.serialize({ NoType: null }).toBytes();
135
+ const intEnum = MyEnum.serialize({ Int: 100 }).toBytes();
136
+ const stringEnum = MyEnum.serialize({ String: 'string' }).toBytes();
137
+ const arrayEnum = MyEnum.serialize({ Array: [1, 2, 3] }).toBytes();
138
+
139
+ // Struct
140
+ const MyStruct = bcs.struct('MyStruct', {
141
+ id: bcs.u8(),
142
+ name: bcs.string(),
143
+ });
144
+
145
+ const struct = MyStruct.serialize({ id: 1, name: 'name' }).toBytes();
146
+
147
+ // Tuple
148
+ const tuple = bcs.tuple([bcs.u8(), bcs.string()]).serialize([1, 'name']).toBytes();
149
+
150
+ // Map
151
+ const map = bcs
152
+ .map(bcs.u8(), bcs.string())
153
+ .serialize(
154
+ new Map([
155
+ [1, 'one'],
156
+ [2, 'two'],
157
+ ]),
158
+ )
159
+ .toBytes();
160
+
161
+ // Parsing data back into original types
162
+
163
+ // Vectors
164
+ const parsedIntList = bcs.vector(bcs.u8()).parse(intList);
165
+ const parsedStringList = bcs.vector(bcs.string()).parse(stringList);
166
+
167
+ // Fixed length Arrays
168
+ const parsedIntArray = bcs.fixedArray(4, bcs.u8()).parse(intArray);
169
+
170
+ // Option
171
+ const parsedOption = bcs.option(bcs.string()).parse(option);
172
+ const parsedNullOption = bcs.option(bcs.string()).parse(nullOption);
173
+
174
+ // Enum
175
+ const parsedNoTypeEnum = MyEnum.parse(noTypeEnum);
176
+ const parsedIntEnum = MyEnum.parse(intEnum);
177
+ const parsedStringEnum = MyEnum.parse(stringEnum);
178
+ const parsedArrayEnum = MyEnum.parse(arrayEnum);
179
+
180
+ // Struct
181
+ const parsedStruct = MyStruct.parse(struct);
182
+
183
+ // Tuple
184
+ const parsedTuple = bcs.tuple([bcs.u8(), bcs.string()]).parse(tuple);
185
+
186
+ // Map
187
+ const parsedMap = bcs.map(bcs.u8(), bcs.string()).parse(map);
188
+ ```
189
+
190
+ ## Generics
191
+
192
+ To define a generic struct or an enum, you can define a generic typescript function helper
193
+
194
+ ```ts
195
+ // Example: Generics
196
+
197
+ // The T typescript generic is a placeholder for the typescript type of the generic value
198
+ // The T argument will be the bcs type passed in when creating a concrete instance of the Container type
199
+ function Container<T extends BcsType<any>>(T: T) {
200
+ return bcs.struct('Container<T>', {
201
+ contents: T,
202
+ }),
203
+ }
204
+
205
+ // When serializing, we have to pass the type to use for `T`
206
+ const bytes = Container(bcs.u8()).serialize({ contents: 100 }).toBytes();
207
+
208
+ // Alternatively we can save the concrete type as a variable
209
+ const U8Container = Container(bcs.u8());
210
+ const bytes = U8Container.serialize({ contents: 100 }).toBytes();
211
+
212
+ // Using multiple generics
213
+ function VecMap<K extends BcsType<any>, V extends BcsType<any>>(K: K, V: V) {
214
+ // You can use the names of the generic params in the type name to
215
+ return bcs.struct(
216
+ // You can use the names of the generic params to give your type a more useful name
217
+ `VecMap<${K.name}, ${V.name}>`,
218
+ {
219
+ keys: bcs.vector(K),
220
+ values: bcs.vector(V),
221
+ }
222
+ )
223
+ }
224
+
225
+ // To serialize VecMap, we can use:
226
+ VecMap(bcs.string(), bcs.string())
227
+ .serialize({
228
+ keys: ['key1', 'key2', 'key3'],
229
+ values: ['value1', 'value2', 'value3'],
230
+ })
231
+ .toBytes();
232
+ ```
233
+
234
+ ## Transforms
235
+
236
+ If you the format you use in your code is different from the format expected for BCS serialization,
237
+ you can use the `transform` API to map between the types you use in your application, and the types
238
+ needed for serialization.
239
+
240
+ The `address` type used by Move code is a good example of this. In many cases, you'll want to
241
+ represent an address as a hex string, but the BCS serialization format for addresses is a 32 byte
242
+ array. To handle this, you can use the `transform` API to map between the two formats:
243
+
244
+ ```ts
245
+ const Address = bcs.bytes(32).transform({
246
+ // To change the input type, you need to provide a type definition for the input
247
+ input: (val: string) => fromHex(val),
248
+ output: (val) => toHex(val),
249
+ });
250
+
251
+ const serialized = Address.serialize('0x000000...').toBytes();
252
+ const parsed = Address.parse(serialized); // will return a hex string
253
+ ```
254
+
255
+ When using a transform, a new type is created that uses the inferred return value of `output` as the
256
+ return type of the `parse` method, and the type of the `input` argument as the allowed input type
257
+ when calling `serialize`. The `output` type can generally be inferred from the definition, but the
258
+ input type will need to be provided explicitly. In some cases, for complex transforms, you'll need
259
+ to manually type the return
260
+
261
+ transforms can also handle more complex types. For instance, `@haneullabs/haneul` uses the following
262
+ definition to transform enums into a more TypeScript friends format:
263
+
264
+ ```ts
265
+ type Merge<T> = T extends infer U ? { [K in keyof U]: U[K] } : never;
266
+ type EnumKindTransform<T> = T extends infer U
267
+ ? Merge<(U[keyof U] extends null | boolean ? object : U[keyof U]) & { kind: keyof U }>
268
+ : never;
269
+
270
+ function enumKind<T extends object, Input extends object>(type: BcsType<T, Input>) {
271
+ return type.transform({
272
+ input: ({ kind, ...val }: EnumKindTransform<Input>) =>
273
+ ({
274
+ [kind]: val,
275
+ }) as Input,
276
+ output: (val) => {
277
+ const key = Object.keys(val)[0] as keyof T;
278
+
279
+ return { kind: key, ...val[key] } as EnumKindTransform<T>;
280
+ },
281
+ });
282
+ }
283
+
284
+ const MyEnum = enumKind(
285
+ bcs.enum('MyEnum', {
286
+ A: bcs.struct('A', {
287
+ id: bcs.u8(),
288
+ }),
289
+ B: bcs.struct('B', {
290
+ val: bcs.string(),
291
+ }),
292
+ }),
293
+ );
294
+
295
+ // Enums wrapped with enumKind flatten the enum variants and add a `kind` field to differentiate them
296
+ const A = MyEnum.serialize({ kind: 'A', id: 1 }).toBytes();
297
+ const B = MyEnum.serialize({ kind: 'B', val: 'xyz' }).toBytes();
298
+
299
+ const parsedA = MyEnum.parse(A); // returns { kind: 'A', id: 1 }
300
+ ```
301
+
302
+ ## Formats for serialized bytes
303
+
304
+ When you call `serialize` on a `BcsType`, you will receive a `SerializedBcs` instance. This wrapper
305
+ preserves type information for the serialized bytes, and can be used to get raw data in various
306
+ formats.
307
+
308
+ ```ts
309
+ const serializedString = bcs.string().serialize('this is a string');
310
+
311
+ // SerializedBcs.toBytes() returns a Uint8Array
312
+ const bytes: Uint8Array = serializedString.toBytes();
313
+
314
+ // You can get the serialized bytes encoded as hex, base64 or base58
315
+ const hex: string = serializedString.toHex();
316
+ const base64: string = bcsWriter.toBase64();
317
+ const base58: string = bcsWriter.toBase58();
318
+
319
+ // To parse a BCS value from bytes, the bytes need to be a Uint8Array
320
+ const str1 = bcs.string().parse(bytes);
321
+
322
+ // If your data is encoded as string, you need to convert it to Uint8Array first
323
+ const str2 = bcs.string().parse(fromHex(hex));
324
+ const str3 = bcs.string().parse(fromBase64(base64));
325
+ const str4 = bcs.string().parse(fromBase58(base58));
326
+
327
+ console.assert((str1 == str2) == (str3 == str4), 'Result is the same');
328
+ ```
329
+
330
+ ## Inferring types
331
+
332
+ BCS types have both a `type` and an `inputType`. For some types these are the same, but for others
333
+ (like `u64`) the types diverge slightly to make inputs more flexible. For instance, `u64` will
334
+ always be `string` for it's type, but can be a `number`, `string` or `bigint` for it's input type.
335
+
336
+ You can infer these types in one of 2 ways, either using the `$inferType` and `$inferInput`
337
+ properties on a `BcsType`, or using the `InferBcsType` and `InferBcsInput` type helpers.
338
+
339
+ ```ts
340
+ const MyStruct = bcs.struct('MyStruct', {
341
+ id: bcs.u64(),
342
+ name: bcs.string(),
343
+ });
344
+
345
+ // using the $inferType and $inferInput properties
346
+ type MyStructType = typeof MyStruct.$inferType; // { id: string; name: string; }
347
+ type MyStructInput = typeof MyStruct.$inferInput; // { id: number | string | bigint; name: string; }
348
+
349
+ // using the InferBcsType and InferBcsInput type helpers
350
+ type MyStructType = InferBcsType<typeof MyStruct>; // { id: string; name: string; }
351
+ type MyStructInput = InferBcsInput<typeof MyStruct>; // { id: number | string | bigint; name: string; }
352
+ ```
@@ -0,0 +1,6 @@
1
+ # BCS
2
+
3
+ > Encoding and decoding Haneul objects
4
+
5
+ - [BCS - Binary Canonical Serialization](./index.md): Encode and decode Haneul Move types with
6
+ Binary Canonical Serialization
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haneullabs/bcs",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "BCS - Canonical Binary Serialization implementation for JavaScript",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Haneul Labs <build@haneul-labs.com>",
@@ -18,6 +18,7 @@
18
18
  "files": [
19
19
  "CHANGELOG.md",
20
20
  "dist",
21
+ "docs",
21
22
  "src"
22
23
  ],
23
24
  "repository": {
@@ -50,11 +51,12 @@
50
51
  },
51
52
  "dependencies": {
52
53
  "@scure/base": "^2.0.0",
53
- "@haneullabs/utils": "^0.3.1"
54
+ "@haneullabs/utils": "^0.3.2"
54
55
  },
55
56
  "scripts": {
56
57
  "clean": "rm -rf tsconfig.tsbuildinfo ./dist",
57
58
  "build": "rm -rf dist && tsc --noEmit && tsdown",
59
+ "build:docs": "tsx ../docs/scripts/build-docs.ts",
58
60
  "test": "vitest run --typecheck",
59
61
  "test:watch": "vitest --typecheck",
60
62
  "prettier:check": "prettier -c --ignore-unknown .",