koilib 1.5.0 → 2.3.0

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/lib/serializer.js DELETED
@@ -1,273 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserialize = exports.serialize = void 0;
4
- const VariableBlob_1 = require("./VariableBlob");
5
- /**
6
- * Function to serialize data
7
- *
8
- * @example
9
- * ```ts
10
- * const abi = { type: "uint64" };
11
- * const vblob = serialize(5869, abi);
12
- * ```
13
- *
14
- * @example
15
- * ```ts
16
- * const abi = {
17
- * type: [
18
- * { name: "from", type: "string" },
19
- * { name: "to", type: "string" },
20
- * { name: "value", type: "uint64" },
21
- * ],
22
- * };
23
- * const vblob = serialize({
24
- * from: "alice",
25
- * to: "bob",
26
- * value: "123456",
27
- * }, abi);
28
- * ```
29
- */
30
- function serialize(data, abi) {
31
- const vb = new VariableBlob_1.VariableBlob();
32
- // vb.dataBuffer = {};
33
- // const aux = new VariableBlob();
34
- if (Array.isArray(abi.type)) {
35
- const dataObj = data;
36
- abi.type.forEach((key) => {
37
- const { buffer /* , dataBuffer */ } = serialize(dataObj[key.name], key);
38
- // vb.dataBuffer[key.name] = dataBuffer;
39
- vb.write(buffer);
40
- });
41
- vb.resetCursor();
42
- return vb;
43
- }
44
- switch (abi.type) {
45
- case "opaque": {
46
- if (!abi.subAbi)
47
- throw new Error(`subAbi undefined in ${JSON.stringify(abi)}`);
48
- const native = serialize(data, abi.subAbi);
49
- vb.serializeBuffer(native.buffer);
50
- // vb.dataBuffer.native = native.dataBuffer;
51
- break;
52
- }
53
- case "vector": {
54
- if (!abi.subAbi)
55
- throw new Error(`subAbi undefined in ${JSON.stringify(abi)}`);
56
- if (!Array.isArray(data))
57
- throw new Error(`Invalid data, array expected. Received ${typeof data}`);
58
- vb.serializeVarint(data.length);
59
- // aux.serializeVarint(data.length); vb.dataBuffer.size = aux.buffer.toString();
60
- // vb.dataBuffer.items = [];
61
- if (!abi.subAbi)
62
- throw new Error(`subAbi undefined in ${JSON.stringify(abi)}`);
63
- data.forEach((item) => {
64
- const itemSerialized = serialize(item, abi.subAbi);
65
- vb.write(itemSerialized.buffer);
66
- // vb.dataBuffer.items.push(itemSerialized.dataBuffer);
67
- });
68
- break;
69
- }
70
- case "variant": {
71
- const dataV = data;
72
- if (!abi.variants)
73
- throw new Error("Abi variants are not defined");
74
- const variantId = abi.variants.findIndex((v) => v.name === dataV.type);
75
- if (variantId < 0)
76
- throw new Error(`Variant ${dataV.type} not found`);
77
- if (!abi.variants[variantId])
78
- throw new Error(`abi undefined in ${JSON.stringify(abi)} for id ${variantId}`);
79
- vb.serializeVarint(variantId);
80
- // aux.serializeVarint(variantId); vb.dataBuffer.variantId = aux.buffer.toString();
81
- const variantSerialized = serialize(dataV.value, abi.variants[variantId]);
82
- vb.write(variantSerialized.buffer);
83
- // vb.dataBuffer.variant = variantSerialized.dataBuffer;
84
- break;
85
- }
86
- case "variableblob": {
87
- vb.serializeBuffer(data);
88
- // aux.serializeBuffer(data); vb.dataBuffer.variableblob = aux.buffer.toString();
89
- break;
90
- }
91
- case "fixedblob": {
92
- vb.write(data, abi.size);
93
- // aux.write(data, abi.size); vb.dataBuffer.fixedblob = aux.buffer.toString();
94
- break;
95
- }
96
- case "string": {
97
- vb.serializeString(data);
98
- // aux.serializeString(data); vb.dataBuffer.string = aux.buffer.toString();
99
- break;
100
- }
101
- case "varint": {
102
- vb.serializeVarint(data);
103
- // aux.serializeVarint(data); vb.dataBuffer.varint = aux.buffer.toString();
104
- break;
105
- }
106
- case "uint8": {
107
- vb.writeUint8(data);
108
- // aux.writeUint8(data); vb.dataBuffer.uint8 = aux.buffer.toString();
109
- break;
110
- }
111
- case "uint16": {
112
- vb.writeUint16(data);
113
- // aux.writeUint16(data); vb.dataBuffer.uint16 = aux.buffer.toString();
114
- break;
115
- }
116
- case "uint32": {
117
- vb.writeUint32(data);
118
- // aux.writeUint32(data); vb.dataBuffer.uint32 = aux.buffer.toString();
119
- break;
120
- }
121
- case "uint64": {
122
- vb.serializeBigint(data, 64);
123
- // aux.serializeBigint(data, 64); vb.dataBuffer.uint64 = aux.buffer.toString();
124
- break;
125
- }
126
- case "uint128": {
127
- vb.serializeBigint(data, 128);
128
- // aux.serializeBigint(data, 128); vb.dataBuffer.uint128 = aux.buffer.toString();
129
- break;
130
- }
131
- case "uint160": {
132
- vb.serializeBigint(data, 160);
133
- // aux.serializeBigint(data, 160); vb.dataBuffer.uint160 = aux.buffer.toString();
134
- break;
135
- }
136
- case "uint256": {
137
- vb.serializeBigint(data, 256);
138
- // aux.serializeBigint(data, 256); vb.dataBuffer.uint256 = aux.buffer.toString();
139
- break;
140
- }
141
- case "int8": {
142
- vb.writeInt8(data);
143
- // aux.writeInt8(data); vb.dataBuffer.int8 = aux.buffer.toString();
144
- break;
145
- }
146
- case "int16": {
147
- vb.writeInt16(data);
148
- // aux.writeInt16(data); vb.dataBuffer.int16 = aux.buffer.toString();
149
- break;
150
- }
151
- case "int32": {
152
- vb.writeInt32(data);
153
- // aux.writeInt32(data); vb.dataBuffer.int32 = aux.buffer.toString();
154
- break;
155
- }
156
- case "int64": {
157
- vb.serializeBigint(data, 64);
158
- // aux.serializeBigint(data, 64); vb.dataBuffer.int64 = aux.buffer.toString();
159
- break;
160
- }
161
- case "int128": {
162
- vb.serializeBigint(data, 128);
163
- // aux.serializeBigint(data, 128); vb.dataBuffer.int128 = aux.buffer.toString();
164
- break;
165
- }
166
- case "int160": {
167
- vb.serializeBigint(data, 160);
168
- // aux.serializeBigint(data, 160); vb.dataBuffer.int160 = aux.buffer.toString();
169
- break;
170
- }
171
- case "int256": {
172
- vb.serializeBigint(data, 256);
173
- // aux.serializeBigint(data, 256); vb.dataBuffer.int256 = aux.buffer.toString();
174
- break;
175
- }
176
- case "unused_extension":
177
- break;
178
- default: {
179
- throw new Error(`Unknown type ${abi.type}`);
180
- }
181
- }
182
- return vb;
183
- }
184
- exports.serialize = serialize;
185
- /**
186
- * Function to deserialize data
187
- *
188
- * @example
189
- * ```ts
190
- * const vblob = new VariableBlob(
191
- * new Uint8Array([0, 0, 0, 0, 0, 0, 22, 237])
192
- * );
193
- * const abi = { type: "uint64" };
194
- * const number = deserialize(vblob, abi);
195
- * ```
196
- */
197
- function deserialize(buffer, abi) {
198
- const vb = typeof buffer === "string" ? new VariableBlob_1.VariableBlob(buffer) : buffer;
199
- if (Array.isArray(abi.type)) {
200
- const data = {};
201
- abi.type.forEach((key) => {
202
- data[key.name] = deserialize(vb, key);
203
- });
204
- return data;
205
- }
206
- switch (abi.type) {
207
- case "opaque": {
208
- if (!abi.subAbi)
209
- throw new Error("subAbi not defined");
210
- const blob = vb.deserializeBuffer();
211
- const subVb = new VariableBlob_1.VariableBlob(blob);
212
- return deserialize(subVb, abi.subAbi);
213
- }
214
- case "vector": {
215
- const size = vb.deserializeVarint();
216
- const data = [];
217
- for (let i = 0; i < size; i += 1) {
218
- const item = deserialize(vb, abi.subAbi);
219
- data.push(item);
220
- }
221
- return data;
222
- }
223
- case "variant": {
224
- const variantId = vb.deserializeVarint();
225
- const abiVariant = abi.variants[variantId];
226
- const value = deserialize(vb, abiVariant);
227
- const type = abiVariant.name;
228
- return { type, value };
229
- }
230
- case "variableblob":
231
- return vb.deserializeBuffer(true);
232
- case "fixedblob":
233
- return vb.read(abi.size, true);
234
- case "string":
235
- return vb.deserializeString();
236
- case "varint":
237
- return vb.deserializeVarint();
238
- case "uint8":
239
- return vb.readUint8();
240
- case "uint16":
241
- return vb.readUint16();
242
- case "uint32":
243
- return vb.readUint32();
244
- case "uint64":
245
- return vb.deserializeBigint(64, true);
246
- case "uint128":
247
- return vb.deserializeBigint(128, true);
248
- case "uint160":
249
- return vb.deserializeBigint(160, true);
250
- case "uint256":
251
- return vb.deserializeBigint(256, true);
252
- case "int8":
253
- return vb.readInt8();
254
- case "int16":
255
- return vb.readInt16();
256
- case "int32":
257
- return vb.readInt32();
258
- case "int64":
259
- return vb.deserializeBigint(64, false);
260
- case "int128":
261
- return vb.deserializeBigint(128, false);
262
- case "int160":
263
- return vb.deserializeBigint(160, false);
264
- case "int256":
265
- return vb.deserializeBigint(256, false);
266
- case "unused_extension":
267
- return {};
268
- default:
269
- throw new Error(`Unknown type ${abi.type}`);
270
- }
271
- }
272
- exports.deserialize = deserialize;
273
- //# sourceMappingURL=serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}