@gardenfi/swap 0.1.2 → 0.1.3-beta.10

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.
Files changed (148) hide show
  1. package/dist/index113.cjs +1 -1
  2. package/dist/index113.js +1 -1
  3. package/dist/index116.cjs +1 -1
  4. package/dist/index116.js +1 -1
  5. package/dist/index117.cjs +1 -1
  6. package/dist/index117.js +1 -1
  7. package/dist/index12.cjs +1 -1
  8. package/dist/index12.js +1 -1
  9. package/dist/index120.cjs +1 -1
  10. package/dist/index120.js +2 -2
  11. package/dist/index121.cjs +1 -1
  12. package/dist/index121.js +7 -7
  13. package/dist/index126.cjs +1 -1
  14. package/dist/index126.js +2 -2
  15. package/dist/index127.cjs +1 -1
  16. package/dist/index127.js +1 -1
  17. package/dist/index128.cjs +1 -1
  18. package/dist/index128.js +1 -1
  19. package/dist/index129.cjs +1 -1
  20. package/dist/index129.js +1 -1
  21. package/dist/index130.cjs +1 -1
  22. package/dist/index130.js +2 -2
  23. package/dist/index138.cjs +1 -1
  24. package/dist/index138.js +1 -1
  25. package/dist/index140.cjs +1 -1
  26. package/dist/index140.js +1 -1
  27. package/dist/index148.cjs +1 -1
  28. package/dist/index148.js +1 -1
  29. package/dist/index149.cjs +1 -1
  30. package/dist/index149.js +1 -1
  31. package/dist/index154.cjs +1 -1
  32. package/dist/index154.js +1 -1
  33. package/dist/index162.cjs +1 -1
  34. package/dist/index162.js +2 -2
  35. package/dist/index173.cjs +1 -1
  36. package/dist/index173.js +2 -2
  37. package/dist/index303.cjs +1 -1
  38. package/dist/index303.js +10 -43
  39. package/dist/index304.cjs +1 -1
  40. package/dist/index304.js +16 -320
  41. package/dist/index305.cjs +1 -1
  42. package/dist/index305.js +21 -604
  43. package/dist/index306.cjs +1 -1
  44. package/dist/index306.js +14 -110
  45. package/dist/index307.cjs +1 -1
  46. package/dist/index307.js +13 -167
  47. package/dist/index308.cjs +1 -1
  48. package/dist/index308.js +13 -300
  49. package/dist/index309.cjs +1 -1
  50. package/dist/index309.js +9 -93
  51. package/dist/index310.cjs +1 -1
  52. package/dist/index310.js +13 -54
  53. package/dist/index311.cjs +1 -1
  54. package/dist/index311.js +23 -51
  55. package/dist/index312.cjs +1 -1
  56. package/dist/index312.js +30 -43
  57. package/dist/index313.cjs +2 -1
  58. package/dist/index313.js +18 -15
  59. package/dist/index314.cjs +1 -1
  60. package/dist/index314.js +14 -317
  61. package/dist/index315.cjs +1 -1
  62. package/dist/index315.js +41 -58
  63. package/dist/index316.cjs +1 -1
  64. package/dist/index316.js +319 -18
  65. package/dist/index317.cjs +1 -1
  66. package/dist/index317.js +602 -26
  67. package/dist/index318.cjs +1 -1
  68. package/dist/index318.js +110 -4
  69. package/dist/index319.cjs +1 -7
  70. package/dist/index319.js +166 -236
  71. package/dist/index320.cjs +1 -1
  72. package/dist/index320.js +302 -48
  73. package/dist/index321.cjs +1 -1
  74. package/dist/index321.js +92 -211
  75. package/dist/index322.cjs +1 -1
  76. package/dist/index322.js +49 -74
  77. package/dist/index323.cjs +1 -1
  78. package/dist/index323.js +51 -27
  79. package/dist/index324.cjs +1 -1
  80. package/dist/index324.js +42 -74
  81. package/dist/index325.cjs +1 -1
  82. package/dist/index325.js +15 -9
  83. package/dist/index326.cjs +1 -1
  84. package/dist/index326.js +317 -16
  85. package/dist/index327.cjs +1 -1
  86. package/dist/index327.js +57 -20
  87. package/dist/index328.cjs +1 -1
  88. package/dist/index328.js +18 -12
  89. package/dist/index329.cjs +1 -1
  90. package/dist/index329.js +29 -13
  91. package/dist/index330.cjs +1 -1
  92. package/dist/index330.js +3 -14
  93. package/dist/index331.cjs +7 -1
  94. package/dist/index331.js +237 -9
  95. package/dist/index332.cjs +1 -1
  96. package/dist/index332.js +48 -16
  97. package/dist/index333.cjs +1 -1
  98. package/dist/index333.js +209 -22
  99. package/dist/index334.cjs +1 -1
  100. package/dist/index334.js +80 -30
  101. package/dist/index335.cjs +1 -2
  102. package/dist/index335.js +29 -18
  103. package/dist/index336.cjs +1 -1
  104. package/dist/index336.js +75 -13
  105. package/dist/index361.cjs +1 -1
  106. package/dist/index361.js +3 -94
  107. package/dist/index362.cjs +1 -1
  108. package/dist/index362.js +137 -25
  109. package/dist/index363.cjs +1 -1
  110. package/dist/index363.js +129 -144
  111. package/dist/index364.cjs +1 -1
  112. package/dist/index364.js +71 -331
  113. package/dist/index365.cjs +1 -1
  114. package/dist/index365.js +27 -72
  115. package/dist/index366.cjs +1 -1
  116. package/dist/index366.js +148 -31
  117. package/dist/index367.cjs +1 -1
  118. package/dist/index367.js +354 -5
  119. package/dist/index368.cjs +1 -1
  120. package/dist/index368.js +275 -3
  121. package/dist/index369.cjs +1 -1
  122. package/dist/index369.js +170 -140
  123. package/dist/index370.cjs +1 -1
  124. package/dist/index370.js +10 -276
  125. package/dist/index371.cjs +1 -1
  126. package/dist/index371.js +107 -170
  127. package/dist/index372.cjs +1 -1
  128. package/dist/index372.js +6 -10
  129. package/dist/index373.cjs +1 -1
  130. package/dist/index373.js +70 -104
  131. package/dist/index374.cjs +1 -1
  132. package/dist/index374.js +2 -2
  133. package/dist/index375.cjs +1 -1
  134. package/dist/index375.js +29 -131
  135. package/dist/index383.cjs +1 -1
  136. package/dist/index383.js +59 -106
  137. package/dist/index384.cjs +1 -1
  138. package/dist/index384.js +110 -3
  139. package/dist/index385.cjs +1 -1
  140. package/dist/index385.js +3 -63
  141. package/dist/index6.cjs +1 -1
  142. package/dist/index6.js +42 -42
  143. package/dist/index77.cjs +1 -1
  144. package/dist/index77.js +13 -13
  145. package/dist/index9.cjs +1 -1
  146. package/dist/index9.js +16 -14
  147. package/dist/src/lib/store/swapStore.d.ts +1 -1
  148. package/package.json +5 -5
package/dist/index364.js CHANGED
@@ -1,357 +1,97 @@
1
- import { lazyBcsType as l, BcsEnum as h, BcsStruct as g, BcsTuple as E, stringLikeBcsType as B, BcsType as w, fixedSizeBcsType as f, dynamicSizeBcsType as x, bigUIntBcsType as u, uIntBcsType as m } from "./index304.js";
2
- import { ulebEncode as y } from "./index362.js";
3
- function $(e, r, a) {
4
- return new w({
5
- read: (t) => {
6
- const d = new Array(e);
7
- for (let n = 0; n < e; n++)
8
- d[n] = r.read(t);
9
- return d;
10
- },
11
- write: (t, d) => {
12
- for (const n of t)
13
- r.write(n, d);
14
- },
15
- ...a,
16
- name: (a == null ? void 0 : a.name) ?? `${r.name}[${e}]`,
17
- validate: (t) => {
18
- var d;
19
- if ((d = a == null ? void 0 : a.validate) == null || d.call(a, t), !t || typeof t != "object" || !("length" in t))
20
- throw new TypeError(`Expected array, found ${typeof t}`);
21
- if (t.length !== e)
22
- throw new TypeError(`Expected array of length ${e}, found ${t.length}`);
23
- }
24
- });
25
- }
26
- function b(e) {
27
- return c.enum(`Option<${e.name}>`, {
28
- None: null,
29
- Some: e
30
- }).transform({
31
- input: (r) => r == null ? { None: !0 } : { Some: r },
32
- output: (r) => r.$kind === "Some" ? r.Some : null
33
- });
34
- }
35
- function T(e, r) {
36
- return new w({
37
- read: (a) => {
38
- const t = a.readULEB(), d = new Array(t);
39
- for (let n = 0; n < t; n++)
40
- d[n] = e.read(a);
41
- return d;
42
- },
43
- write: (a, t) => {
44
- t.writeULEB(a.length);
45
- for (const d of a)
46
- e.write(d, t);
47
- },
48
- ...r,
49
- name: (r == null ? void 0 : r.name) ?? `vector<${e.name}>`,
50
- validate: (a) => {
51
- var t;
52
- if ((t = r == null ? void 0 : r.validate) == null || t.call(r, a), !a || typeof a != "object" || !("length" in a))
53
- throw new TypeError(`Expected array, found ${typeof a}`);
54
- }
55
- });
56
- }
57
- function M(e, r) {
58
- return c.vector(c.tuple([e, r])).transform({
59
- name: `Map<${e.name}, ${r.name}>`,
60
- input: (a) => [...a.entries()],
61
- output: (a) => {
62
- const t = /* @__PURE__ */ new Map();
63
- for (const [d, n] of a)
64
- t.set(d, n);
65
- return t;
66
- }
67
- });
68
- }
69
- const c = {
70
- /**
71
- * Creates a BcsType that can be used to read and write an 8-bit unsigned integer.
72
- * @example
73
- * bcs.u8().serialize(255).toBytes() // Uint8Array [ 255 ]
74
- */
75
- u8(e) {
76
- return m({
77
- readMethod: "read8",
78
- writeMethod: "write8",
79
- size: 1,
80
- maxValue: 2 ** 8 - 1,
81
- ...e,
82
- name: (e == null ? void 0 : e.name) ?? "u8"
83
- });
84
- },
85
- /**
86
- * Creates a BcsType that can be used to read and write a 16-bit unsigned integer.
87
- * @example
88
- * bcs.u16().serialize(65535).toBytes() // Uint8Array [ 255, 255 ]
89
- */
90
- u16(e) {
91
- return m({
92
- readMethod: "read16",
93
- writeMethod: "write16",
94
- size: 2,
95
- maxValue: 2 ** 16 - 1,
96
- ...e,
97
- name: (e == null ? void 0 : e.name) ?? "u16"
98
- });
99
- },
100
- /**
101
- * Creates a BcsType that can be used to read and write a 32-bit unsigned integer.
102
- * @example
103
- * bcs.u32().serialize(4294967295).toBytes() // Uint8Array [ 255, 255, 255, 255 ]
104
- */
105
- u32(e) {
106
- return m({
107
- readMethod: "read32",
108
- writeMethod: "write32",
109
- size: 4,
110
- maxValue: 2 ** 32 - 1,
111
- ...e,
112
- name: (e == null ? void 0 : e.name) ?? "u32"
113
- });
114
- },
1
+ import { ulebDecode as r } from "./index365.js";
2
+ class o {
115
3
  /**
116
- * Creates a BcsType that can be used to read and write a 64-bit unsigned integer.
117
- * @example
118
- * bcs.u64().serialize(1).toBytes() // Uint8Array [ 1, 0, 0, 0, 0, 0, 0, 0 ]
119
- */
120
- u64(e) {
121
- return u({
122
- readMethod: "read64",
123
- writeMethod: "write64",
124
- size: 8,
125
- maxValue: 2n ** 64n - 1n,
126
- ...e,
127
- name: (e == null ? void 0 : e.name) ?? "u64"
128
- });
129
- },
130
- /**
131
- * Creates a BcsType that can be used to read and write a 128-bit unsigned integer.
132
- * @example
133
- * bcs.u128().serialize(1).toBytes() // Uint8Array [ 1, ..., 0 ]
134
- */
135
- u128(e) {
136
- return u({
137
- readMethod: "read128",
138
- writeMethod: "write128",
139
- size: 16,
140
- maxValue: 2n ** 128n - 1n,
141
- ...e,
142
- name: (e == null ? void 0 : e.name) ?? "u128"
143
- });
144
- },
145
- /**
146
- * Creates a BcsType that can be used to read and write a 256-bit unsigned integer.
147
- * @example
148
- * bcs.u256().serialize(1).toBytes() // Uint8Array [ 1, ..., 0 ]
149
- */
150
- u256(e) {
151
- return u({
152
- readMethod: "read256",
153
- writeMethod: "write256",
154
- size: 32,
155
- maxValue: 2n ** 256n - 1n,
156
- ...e,
157
- name: (e == null ? void 0 : e.name) ?? "u256"
158
- });
159
- },
160
- /**
161
- * Creates a BcsType that can be used to read and write boolean values.
162
- * @example
163
- * bcs.bool().serialize(true).toBytes() // Uint8Array [ 1 ]
164
- */
165
- bool(e) {
166
- return f({
167
- size: 1,
168
- read: (r) => r.read8() === 1,
169
- write: (r, a) => a.write8(r ? 1 : 0),
170
- ...e,
171
- name: (e == null ? void 0 : e.name) ?? "bool",
172
- validate: (r) => {
173
- var a;
174
- if ((a = e == null ? void 0 : e.validate) == null || a.call(e, r), typeof r != "boolean")
175
- throw new TypeError(`Expected boolean, found ${typeof r}`);
176
- }
177
- });
178
- },
179
- /**
180
- * Creates a BcsType that can be used to read and write unsigned LEB encoded integers
181
- * @example
182
- *
4
+ * @param {Uint8Array} data Data to use as a buffer.
183
5
  */
184
- uleb128(e) {
185
- return x({
186
- read: (r) => r.readULEB(),
187
- serialize: (r) => Uint8Array.from(y(r)),
188
- ...e,
189
- name: (e == null ? void 0 : e.name) ?? "uleb128"
190
- });
191
- },
192
- /**
193
- * Creates a BcsType representing a fixed length byte array
194
- * @param size The number of bytes this types represents
195
- * @example
196
- * bcs.bytes(3).serialize(new Uint8Array([1, 2, 3])).toBytes() // Uint8Array [1, 2, 3]
197
- */
198
- bytes(e, r) {
199
- return f({
200
- size: e,
201
- read: (a) => a.readBytes(e),
202
- write: (a, t) => {
203
- t.writeBytes(new Uint8Array(a));
204
- },
205
- ...r,
206
- name: (r == null ? void 0 : r.name) ?? `bytes[${e}]`,
207
- validate: (a) => {
208
- var t;
209
- if ((t = r == null ? void 0 : r.validate) == null || t.call(r, a), !a || typeof a != "object" || !("length" in a))
210
- throw new TypeError(`Expected array, found ${typeof a}`);
211
- if (a.length !== e)
212
- throw new TypeError(`Expected array of length ${e}, found ${a.length}`);
213
- }
214
- });
215
- },
6
+ constructor(t) {
7
+ this.bytePosition = 0, this.dataView = new DataView(t.buffer, t.byteOffset, t.byteLength);
8
+ }
216
9
  /**
217
- * Creates a BcsType representing a variable length byte array
10
+ * Shift current cursor position by `bytes`.
218
11
  *
219
- * @example
220
- * bcs.byteVector().serialize([1, 2, 3]).toBytes() // Uint8Array [3, 1, 2, 3]
12
+ * @param {Number} bytes Number of bytes to
13
+ * @returns {this} Self for possible chaining.
221
14
  */
222
- byteVector(e) {
223
- return new w({
224
- read: (r) => {
225
- const a = r.readULEB();
226
- return r.readBytes(a);
227
- },
228
- write: (r, a) => {
229
- const t = new Uint8Array(r);
230
- a.writeULEB(t.length), a.writeBytes(t);
231
- },
232
- ...e,
233
- name: (e == null ? void 0 : e.name) ?? "vector<u8>",
234
- serializedSize: (r) => {
235
- const a = "length" in r ? r.length : null;
236
- return a == null ? null : y(a).length + a;
237
- },
238
- validate: (r) => {
239
- var a;
240
- if ((a = e == null ? void 0 : e.validate) == null || a.call(e, r), !r || typeof r != "object" || !("length" in r))
241
- throw new TypeError(`Expected array, found ${typeof r}`);
242
- }
243
- });
244
- },
15
+ shift(t) {
16
+ return this.bytePosition += t, this;
17
+ }
245
18
  /**
246
- * Creates a BcsType that can ser/de string values. Strings will be UTF-8 encoded
247
- * @example
248
- * bcs.string().serialize('a').toBytes() // Uint8Array [ 1, 97 ]
19
+ * Read U8 value from the buffer and shift cursor by 1.
20
+ * @returns
249
21
  */
250
- string(e) {
251
- return B({
252
- toBytes: (r) => new TextEncoder().encode(r),
253
- fromBytes: (r) => new TextDecoder().decode(r),
254
- ...e,
255
- name: (e == null ? void 0 : e.name) ?? "string"
256
- });
257
- },
22
+ read8() {
23
+ const t = this.dataView.getUint8(this.bytePosition);
24
+ return this.shift(1), t;
25
+ }
258
26
  /**
259
- * Creates a BcsType that represents a fixed length array of a given type
260
- * @param size The number of elements in the array
261
- * @param type The BcsType of each element in the array
262
- * @example
263
- * bcs.fixedArray(3, bcs.u8()).serialize([1, 2, 3]).toBytes() // Uint8Array [ 1, 2, 3 ]
27
+ * Read U16 value from the buffer and shift cursor by 2.
28
+ * @returns
264
29
  */
265
- fixedArray: $,
30
+ read16() {
31
+ const t = this.dataView.getUint16(this.bytePosition, !0);
32
+ return this.shift(2), t;
33
+ }
266
34
  /**
267
- * Creates a BcsType representing an optional value
268
- * @param type The BcsType of the optional value
269
- * @example
270
- * bcs.option(bcs.u8()).serialize(null).toBytes() // Uint8Array [ 0 ]
271
- * bcs.option(bcs.u8()).serialize(1).toBytes() // Uint8Array [ 1, 1 ]
35
+ * Read U32 value from the buffer and shift cursor by 4.
36
+ * @returns
272
37
  */
273
- option: b,
38
+ read32() {
39
+ const t = this.dataView.getUint32(this.bytePosition, !0);
40
+ return this.shift(4), t;
41
+ }
274
42
  /**
275
- * Creates a BcsType representing a variable length vector of a given type
276
- * @param type The BcsType of each element in the vector
277
- *
278
- * @example
279
- * bcs.vector(bcs.u8()).toBytes([1, 2, 3]) // Uint8Array [ 3, 1, 2, 3 ]
43
+ * Read U64 value from the buffer and shift cursor by 8.
44
+ * @returns
280
45
  */
281
- vector: T,
46
+ read64() {
47
+ const t = this.read32(), e = this.read32().toString(16) + t.toString(16).padStart(8, "0");
48
+ return BigInt("0x" + e).toString(10);
49
+ }
282
50
  /**
283
- * Creates a BcsType representing a tuple of a given set of types
284
- * @param types The BcsTypes for each element in the tuple
285
- *
286
- * @example
287
- * const tuple = bcs.tuple([bcs.u8(), bcs.string(), bcs.bool()])
288
- * tuple.serialize([1, 'a', true]).toBytes() // Uint8Array [ 1, 1, 97, 1 ]
51
+ * Read U128 value from the buffer and shift cursor by 16.
289
52
  */
290
- tuple(e, r) {
291
- return new E({
292
- fields: e,
293
- ...r
294
- });
295
- },
53
+ read128() {
54
+ const t = BigInt(this.read64()), e = BigInt(this.read64()).toString(16) + t.toString(16).padStart(16, "0");
55
+ return BigInt("0x" + e).toString(10);
56
+ }
296
57
  /**
297
- * Creates a BcsType representing a struct of a given set of fields
298
- * @param name The name of the struct
299
- * @param fields The fields of the struct. The order of the fields affects how data is serialized and deserialized
300
- *
301
- * @example
302
- * const struct = bcs.struct('MyStruct', {
303
- * a: bcs.u8(),
304
- * b: bcs.string(),
305
- * })
306
- * struct.serialize({ a: 1, b: 'a' }).toBytes() // Uint8Array [ 1, 1, 97 ]
58
+ * Read U128 value from the buffer and shift cursor by 32.
59
+ * @returns
307
60
  */
308
- struct(e, r, a) {
309
- return new g({
310
- name: e,
311
- fields: r,
312
- ...a
313
- });
314
- },
61
+ read256() {
62
+ const t = BigInt(this.read128()), e = BigInt(this.read128()).toString(16) + t.toString(16).padStart(32, "0");
63
+ return BigInt("0x" + e).toString(10);
64
+ }
315
65
  /**
316
- * Creates a BcsType representing an enum of a given set of options
317
- * @param name The name of the enum
318
- * @param values The values of the enum. The order of the values affects how data is serialized and deserialized.
319
- * null can be used to represent a variant with no data.
320
- *
321
- * @example
322
- * const enum = bcs.enum('MyEnum', {
323
- * A: bcs.u8(),
324
- * B: bcs.string(),
325
- * C: null,
326
- * })
327
- * enum.serialize({ A: 1 }).toBytes() // Uint8Array [ 0, 1 ]
328
- * enum.serialize({ B: 'a' }).toBytes() // Uint8Array [ 1, 1, 97 ]
329
- * enum.serialize({ C: true }).toBytes() // Uint8Array [ 2 ]
66
+ * Read `num` number of bytes from the buffer and shift cursor by `num`.
67
+ * @param num Number of bytes to read.
330
68
  */
331
- enum(e, r, a) {
332
- return new h({
333
- name: e,
334
- fields: r,
335
- ...a
336
- });
337
- },
69
+ readBytes(t) {
70
+ const i = this.bytePosition + this.dataView.byteOffset, e = new Uint8Array(this.dataView.buffer, i, t);
71
+ return this.shift(t), e;
72
+ }
338
73
  /**
339
- * Creates a BcsType representing a map of a given key and value type
340
- * @param keyType The BcsType of the key
341
- * @param valueType The BcsType of the value
342
- * @example
343
- * const map = bcs.map(bcs.u8(), bcs.string())
344
- * map.serialize(new Map([[2, 'a']])).toBytes() // Uint8Array [ 1, 2, 1, 97 ]
74
+ * Read ULEB value - an integer of varying size. Used for enum indexes and
75
+ * vector lengths.
76
+ * @returns {Number} The ULEB value.
345
77
  */
346
- map: M,
78
+ readULEB() {
79
+ const t = this.bytePosition + this.dataView.byteOffset, i = new Uint8Array(this.dataView.buffer, t), { value: e, length: s } = r(i);
80
+ return this.shift(s), e;
81
+ }
347
82
  /**
348
- * Creates a BcsType that wraps another BcsType which is lazily evaluated. This is useful for creating recursive types.
349
- * @param cb A callback that returns the BcsType
83
+ * Read a BCS vector: read a length and then apply function `cb` X times
84
+ * where X is the length of the vector, defined as ULEB in BCS bytes.
85
+ * @param cb Callback to process elements of vector.
86
+ * @returns {Array<Any>} Array of the resulting values, returned by callback.
350
87
  */
351
- lazy(e) {
352
- return l(e);
88
+ readVec(t) {
89
+ const i = this.readULEB(), e = [];
90
+ for (let s = 0; s < i; s++)
91
+ e.push(t(this, s, i));
92
+ return e;
353
93
  }
354
- };
94
+ }
355
95
  export {
356
- c as bcs
96
+ o as BcsReader
357
97
  };
package/dist/index365.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./index317.cjs"),i=require("./index117.cjs"),o=/^vector<(.+)>$/,l=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class t{static parseFromStr(r,e=!1){if(r==="address")return{address:null};if(r==="bool")return{bool:null};if(r==="u8")return{u8:null};if(r==="u16")return{u16:null};if(r==="u32")return{u32:null};if(r==="u64")return{u64:null};if(r==="u128")return{u128:null};if(r==="u256")return{u256:null};if(r==="signer")return{signer:null};const u=r.match(o);if(u)return{vector:t.parseFromStr(u[1],e)};const n=r.match(l);if(n)return{struct:{address:e?i.normalizeSuiAddress(n[1]):n[1],module:n[2],name:n[3],typeParams:n[5]===void 0?[]:t.parseStructTypeArgs(n[5],e)}};throw new Error(`Encountered unexpected token when parsing type args for ${r}`)}static parseStructTypeArgs(r,e=!1){return s.splitGenericParameters(r).map(u=>t.parseFromStr(u,e))}static tagToString(r){if("bool"in r)return"bool";if("u8"in r)return"u8";if("u16"in r)return"u16";if("u32"in r)return"u32";if("u64"in r)return"u64";if("u128"in r)return"u128";if("u256"in r)return"u256";if("address"in r)return"address";if("signer"in r)return"signer";if("vector"in r)return`vector<${t.tagToString(r.vector)}>`;if("struct"in r){const e=r.struct,u=e.typeParams.map(t.tagToString).join(", ");return`${e.address}::${e.module}::${e.name}${u?`<${u}>`:""}`}throw new Error("Invalid TypeTag")}}exports.TypeTagSerializer=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function l(n){let e=BigInt(n);const t=[];let r=0;if(e===0n)return[0];for(;e>0;)t[r]=Number(e&0x7fn),e>>=7n,e>0n&&(t[r]|=128),r+=1;return t}function u(n){let e=0n,t=0n,r=0;for(;;){if(r>=n.length)throw new Error("ULEB decode error: buffer overflow");const o=n[r];if(r+=1,e+=BigInt(o&127)<<t,!(o&128))break;t+=7n}if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(e),length:r}}exports.ulebDecode=u;exports.ulebEncode=l;
package/dist/index365.js CHANGED
@@ -1,76 +1,31 @@
1
- import { splitGenericParameters as s } from "./index317.js";
2
- import { normalizeSuiAddress as i } from "./index117.js";
3
- const o = /^vector<(.+)>$/, l = /^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;
4
- class t {
5
- static parseFromStr(r, e = !1) {
6
- if (r === "address")
7
- return { address: null };
8
- if (r === "bool")
9
- return { bool: null };
10
- if (r === "u8")
11
- return { u8: null };
12
- if (r === "u16")
13
- return { u16: null };
14
- if (r === "u32")
15
- return { u32: null };
16
- if (r === "u64")
17
- return { u64: null };
18
- if (r === "u128")
19
- return { u128: null };
20
- if (r === "u256")
21
- return { u256: null };
22
- if (r === "signer")
23
- return { signer: null };
24
- const n = r.match(o);
25
- if (n)
26
- return {
27
- vector: t.parseFromStr(n[1], e)
28
- };
29
- const u = r.match(l);
30
- if (u)
31
- return {
32
- struct: {
33
- address: e ? i(u[1]) : u[1],
34
- module: u[2],
35
- name: u[3],
36
- typeParams: u[5] === void 0 ? [] : t.parseStructTypeArgs(u[5], e)
37
- }
38
- };
39
- throw new Error(`Encountered unexpected token when parsing type args for ${r}`);
40
- }
41
- static parseStructTypeArgs(r, e = !1) {
42
- return s(r).map(
43
- (n) => t.parseFromStr(n, e)
44
- );
45
- }
46
- static tagToString(r) {
47
- if ("bool" in r)
48
- return "bool";
49
- if ("u8" in r)
50
- return "u8";
51
- if ("u16" in r)
52
- return "u16";
53
- if ("u32" in r)
54
- return "u32";
55
- if ("u64" in r)
56
- return "u64";
57
- if ("u128" in r)
58
- return "u128";
59
- if ("u256" in r)
60
- return "u256";
61
- if ("address" in r)
62
- return "address";
63
- if ("signer" in r)
64
- return "signer";
65
- if ("vector" in r)
66
- return `vector<${t.tagToString(r.vector)}>`;
67
- if ("struct" in r) {
68
- const e = r.struct, n = e.typeParams.map(t.tagToString).join(", ");
69
- return `${e.address}::${e.module}::${e.name}${n ? `<${n}>` : ""}`;
70
- }
71
- throw new Error("Invalid TypeTag");
1
+ function l(t) {
2
+ let e = BigInt(t);
3
+ const n = [];
4
+ let r = 0;
5
+ if (e === 0n)
6
+ return [0];
7
+ for (; e > 0; )
8
+ n[r] = Number(e & 0x7fn), e >>= 7n, e > 0n && (n[r] |= 128), r += 1;
9
+ return n;
10
+ }
11
+ function u(t) {
12
+ let e = 0n, n = 0n, r = 0;
13
+ for (; ; ) {
14
+ if (r >= t.length)
15
+ throw new Error("ULEB decode error: buffer overflow");
16
+ const o = t[r];
17
+ if (r += 1, e += BigInt(o & 127) << n, !(o & 128))
18
+ break;
19
+ n += 7n;
72
20
  }
21
+ if (e > BigInt(Number.MAX_SAFE_INTEGER))
22
+ throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");
23
+ return {
24
+ value: Number(e),
25
+ length: r
26
+ };
73
27
  }
74
28
  export {
75
- t as TypeTagSerializer
29
+ u as ulebDecode,
30
+ l as ulebEncode
76
31
  };
package/dist/index366.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index364.cjs"),n=require("./index370.cjs");function c(r){switch(r){case"u8":return e.bcs.u8();case"u16":return e.bcs.u16();case"u32":return e.bcs.u32();case"u64":return e.bcs.u64();case"u128":return e.bcs.u128();case"u256":return e.bcs.u256();case"bool":return e.bcs.bool();case"string":return e.bcs.string();case"id":case"address":return n.Address}const s=r.match(/^(vector|option)<(.+)>$/);if(s){const[u,t]=s.slice(1);return u==="vector"?e.bcs.vector(c(t)):e.bcs.option(c(t))}throw new Error(`Invalid Pure type name: ${r}`)}exports.pureBcsSchemaFromTypeName=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./index365.cjs"),o=require("./index329.cjs");class a{constructor({initialSize:t=1024,maxSize:i=1/0,allocateSize:e=1024}={}){this.bytePosition=0,this.size=t,this.maxSize=i,this.allocateSize=e,this.dataView=new DataView(new ArrayBuffer(t))}ensureSizeOrGrow(t){const i=this.bytePosition+t;if(i>this.size){const e=Math.min(this.maxSize,Math.max(this.size+i,this.size+this.allocateSize));if(i>e)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${i}`);this.size=e;const s=new ArrayBuffer(this.size);new Uint8Array(s).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(s)}}shift(t){return this.bytePosition+=t,this}write8(t){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(t)),this.shift(1)}writeBytes(t){this.ensureSizeOrGrow(t.length);for(let i=0;i<t.length;i++)this.dataView.setUint8(this.bytePosition+i,t[i]);return this.shift(t.length)}write16(t){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(t),!0),this.shift(2)}write32(t){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(t),!0),this.shift(4)}write64(t){return n(BigInt(t),8).forEach(i=>this.write8(i)),this}write128(t){return n(BigInt(t),16).forEach(i=>this.write8(i)),this}write256(t){return n(BigInt(t),32).forEach(i=>this.write8(i)),this}writeULEB(t){return h.ulebEncode(t).forEach(i=>this.write8(i)),this}writeVec(t,i){return this.writeULEB(t.length),Array.from(t).forEach((e,s)=>i(this,e,s,t.length)),this}*[Symbol.iterator](){for(let t=0;t<this.bytePosition;t++)yield this.dataView.getUint8(t);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(t){return o.encodeStr(this.toBytes(),t)}}function n(r,t){const i=new Uint8Array(t);let e=0;for(;r>0;)i[e]=Number(r%BigInt(256)),r=r/BigInt(256),e+=1;return i}exports.BcsWriter=a;