wowok 1.1.3 → 1.1.4

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/dist/passport.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { Inputs } from '@mysten/sui.js/transactions';
2
- import { Protocol, ContextType, OperatorType, ValueType } from './protocol';
3
- import { parse_object_type, array_unique, Bcs, ulebDecode, IsValidAddress, IsValidArray } from './utils';
2
+ import { Protocol, ContextType, OperatorType, ValueType, SER_VALUE } from './protocol';
3
+ import { parse_object_type, array_unique, Bcs, ulebDecode, IsValidAddress, IsValidArray, readOption } from './utils';
4
4
  import { BCS } from '@mysten/bcs';
5
5
  import { ERROR, Errors } from './exception';
6
+ import { Guard } from './guard';
6
7
  export class GuardParser {
7
8
  guard_list = [];
8
9
  protocol;
@@ -14,6 +15,359 @@ export class GuardParser {
14
15
  this.guards = guards.map(g => protocol.CurrentSession().object(g));
15
16
  }
16
17
  guardlist = () => { return this.guard_list; };
18
+ /// convert guard-on-chain to js object
19
+ static GuardObject = async (protocol, guard) => {
20
+ if (!IsValidAddress(guard)) {
21
+ ERROR(Errors.IsValidAddress, 'GuardObject guard');
22
+ }
23
+ let res = await protocol.Query_Raw([guard]);
24
+ if (res.length == 0 || !res[0].data || res[0].data?.objectId != guard) {
25
+ ERROR(Errors.Fail, 'GuardObject query error');
26
+ }
27
+ console.log(res[0].data?.content);
28
+ let content = res[0].data.content;
29
+ if (content?.type != protocol.Package() + '::guard::Guard') {
30
+ ERROR(Errors.Fail, 'GuardObject object invalid');
31
+ }
32
+ let variables = [];
33
+ content.fields.variables.forEach((v) => {
34
+ let value;
35
+ switch (v.fields.type) {
36
+ case ContextType.TYPE_WITNESS_ID:
37
+ case ValueType.TYPE_ADDRESS:
38
+ value = '0x' + Bcs.getInstance().de(BCS.ADDRESS, Uint8Array.from(v.fields.value)).toString();
39
+ break;
40
+ case ValueType.TYPE_BOOL:
41
+ case ValueType.TYPE_U8:
42
+ case ValueType.TYPE_U64:
43
+ case ValueType.TYPE_U128:
44
+ case ValueType.TYPE_U256:
45
+ case ValueType.TYPE_VEC_U8:
46
+ case ValueType.TYPE_VEC_U64:
47
+ case ValueType.TYPE_VEC_U128:
48
+ case ValueType.TYPE_VEC_ADDRESS:
49
+ case ValueType.TYPE_VEC_BOOL:
50
+ case ValueType.TYPE_VEC_VEC_U8:
51
+ case ValueType.TYPE_OPTION_ADDRESS:
52
+ case ValueType.TYPE_OPTION_BOOL:
53
+ case ValueType.TYPE_OPTION_U128:
54
+ case ValueType.TYPE_OPTION_U8:
55
+ case ValueType.TYPE_OPTION_U64:
56
+ case ValueType.TYPE_OPTION_U256:
57
+ case ValueType.TYPE_VEC_U256:
58
+ let de = SER_VALUE.find(s => s.type == v.fields.type);
59
+ if (!de)
60
+ ERROR(Errors.Fail, 'GuardObject de error');
61
+ value = Bcs.getInstance().de(de.name, Uint8Array.from(v.fields.value));
62
+ break;
63
+ default:
64
+ ERROR(Errors.Fail, 'GuardObject variable type invalid');
65
+ }
66
+ variables.push({ identifier: v.fields.identifier, type: v.fields.type, value: value });
67
+ });
68
+ console.log(variables);
69
+ let arr = [].slice.call(content.fields.input.fields.bytes.reverse());
70
+ let data = [];
71
+ while (arr.length > 0) {
72
+ let type = arr.shift();
73
+ let value;
74
+ let cmd;
75
+ let identifier;
76
+ switch (type) {
77
+ case ContextType.TYPE_SIGNER:
78
+ case ContextType.TYPE_CLOCK:
79
+ case OperatorType.TYPE_LOGIC_AS_U256_GREATER:
80
+ case OperatorType.TYPE_LOGIC_AS_U256_GREATER_EQUAL:
81
+ case OperatorType.TYPE_LOGIC_AS_U256_LESSER:
82
+ case OperatorType.TYPE_LOGIC_AS_U256_LESSER_EQUAL:
83
+ case OperatorType.TYPE_LOGIC_AS_U256_EQUAL:
84
+ case OperatorType.TYPE_LOGIC_EQUAL:
85
+ case OperatorType.TYPE_LOGIC_HAS_SUBSTRING:
86
+ case OperatorType.TYPE_LOGIC_ALWAYS_TRUE:
87
+ case OperatorType.TYPE_LOGIC_NOT:
88
+ case OperatorType.TYPE_LOGIC_AND:
89
+ case OperatorType.TYPE_LOGIC_OR:
90
+ break;
91
+ case ContextType.TYPE_VARIABLE:
92
+ identifier = arr.shift(); // identifier
93
+ break;
94
+ case ContextType.TYPE_WITNESS_ID: // add to variable
95
+ case ValueType.TYPE_ADDRESS:
96
+ value = '0x' + Bcs.getInstance().de(BCS.ADDRESS, Uint8Array.from(arr)).toString();
97
+ arr.splice(0, 32); // address
98
+ break;
99
+ case ValueType.TYPE_BOOL:
100
+ value = Bcs.getInstance().de(BCS.BOOL, Uint8Array.from(arr));
101
+ arr.shift();
102
+ break;
103
+ case ValueType.TYPE_U8:
104
+ value = Bcs.getInstance().de(BCS.U8, Uint8Array.from(arr));
105
+ arr.shift();
106
+ break;
107
+ case ValueType.TYPE_U64:
108
+ value = Bcs.getInstance().de(BCS.U64, Uint8Array.from(arr));
109
+ arr.splice(0, 8);
110
+ break;
111
+ case ValueType.TYPE_U128:
112
+ value = Bcs.getInstance().de(BCS.U128, Uint8Array.from(arr));
113
+ arr.splice(0, 16);
114
+ break;
115
+ case ValueType.TYPE_U256:
116
+ value = Bcs.getInstance().de(BCS.U256, Uint8Array.from(arr));
117
+ arr.splice(0, 32);
118
+ break;
119
+ case ValueType.TYPE_VEC_U8:
120
+ case ValueType.TYPE_VEC_BOOL:
121
+ let r = ulebDecode(Uint8Array.from(arr));
122
+ value = Bcs.getInstance().de('vector<u8>', Uint8Array.from(arr));
123
+ arr.splice(0, r.value + r.length);
124
+ break;
125
+ case ValueType.TYPE_VEC_ADDRESS:
126
+ r = ulebDecode(Uint8Array.from(arr));
127
+ value = Bcs.getInstance().de('vector<address>', Uint8Array.from(arr));
128
+ arr.splice(0, r.value * 32 + r.length);
129
+ break;
130
+ case ValueType.TYPE_VEC_U128:
131
+ r = ulebDecode(Uint8Array.from(arr));
132
+ value = Bcs.getInstance().de('vector<u128>', Uint8Array.from(arr));
133
+ arr.splice(0, r.value * 16 + r.length);
134
+ break;
135
+ case ValueType.TYPE_VEC_U256:
136
+ r = ulebDecode(Uint8Array.from(arr));
137
+ value = Bcs.getInstance().de('vector<u256>', Uint8Array.from(arr));
138
+ arr.splice(0, r.value * 32 + r.length);
139
+ break;
140
+ case ValueType.TYPE_VEC_U64:
141
+ r = ulebDecode(Uint8Array.from(arr));
142
+ value = Bcs.getInstance().de('vector<u64>', Uint8Array.from(arr));
143
+ arr.splice(0, r.value * 8 + r.length);
144
+ break;
145
+ case ValueType.TYPE_VEC_VEC_U8:
146
+ r = ulebDecode(Uint8Array.from(arr));
147
+ arr.splice(0, r.length);
148
+ let res = [];
149
+ for (let i = 0; i < r.value; i++) {
150
+ let r2 = ulebDecode(Uint8Array.from(arr));
151
+ res.push(Bcs.getInstance().de('vector<u8>', Uint8Array.from(arr)));
152
+ arr.splice(0, r2.length + r2.value);
153
+ }
154
+ value = res;
155
+ break;
156
+ case OperatorType.TYPE_QUERY:
157
+ let t = arr.splice(0, 1); // data-type
158
+ if (t[0] == ValueType.TYPE_ADDRESS || t[0] == ContextType.TYPE_WITNESS_ID) {
159
+ let addr = '0x' + Bcs.getInstance().de(BCS.ADDRESS, Uint8Array.from(arr)).toString();
160
+ arr.splice(0, 32); // address
161
+ value = addr;
162
+ cmd = arr.shift(); // cmd
163
+ }
164
+ else if (t[0] == ContextType.TYPE_VARIABLE) {
165
+ let id = arr.splice(0, 1); // key
166
+ let v = variables.find((v) => (v.identifier == id[0]) &&
167
+ ((v.type == ValueType.TYPE_ADDRESS) || (v.type == ContextType.TYPE_WITNESS_ID)));
168
+ if (!v) {
169
+ ERROR(Errors.Fail, 'GuardObject: indentifier not in variable');
170
+ }
171
+ identifier = id[0];
172
+ cmd = arr.shift(); // cmd
173
+ }
174
+ else {
175
+ ERROR(Errors.Fail, 'GuardObject: variable type invalid');
176
+ }
177
+ break;
178
+ case ValueType.TYPE_OPTION_ADDRESS:
179
+ let read = readOption(arr, BCS.ADDRESS);
180
+ value = read.value;
181
+ if (!read.bNone)
182
+ arr.splice(0, 32);
183
+ break;
184
+ case ValueType.TYPE_OPTION_BOOL:
185
+ read = readOption(arr, BCS.BOOL);
186
+ value = read.value;
187
+ if (!read.bNone)
188
+ arr.splice(0, 1);
189
+ break;
190
+ case ValueType.TYPE_OPTION_U8:
191
+ read = readOption(arr, BCS.U8);
192
+ value = read.value;
193
+ if (!read.bNone)
194
+ arr.splice(0, 1);
195
+ break;
196
+ case ValueType.TYPE_OPTION_U128:
197
+ read = readOption(arr, BCS.U128);
198
+ value = read.value;
199
+ if (!read.bNone)
200
+ arr.splice(0, 16);
201
+ break;
202
+ case ValueType.TYPE_OPTION_U256:
203
+ read = readOption(arr, BCS.U256);
204
+ value = read.value;
205
+ if (!read.bNone)
206
+ arr.splice(0, 32);
207
+ break;
208
+ case ValueType.TYPE_OPTION_U64:
209
+ read = readOption(arr, BCS.U64);
210
+ value = read.value;
211
+ if (!read.bNone)
212
+ arr.splice(0, 8);
213
+ break;
214
+ default:
215
+ ERROR(Errors.Fail, 'GuardObject: parse_bcs types');
216
+ }
217
+ data.push({ type: type, value: value, cmd: cmd, identifier: identifier, child: [] });
218
+ }
219
+ console.log(data);
220
+ if (!data || data.length == 0)
221
+ ERROR(Errors.Fail, 'GuardObject: data parsed error');
222
+ let stack = [];
223
+ data.forEach((d) => {
224
+ this.ResolveData(variables, stack, d);
225
+ console.log('---------------------------------');
226
+ console.log(stack);
227
+ });
228
+ };
229
+ static ResolveData = (variables, stack, current) => {
230
+ switch (current.type) {
231
+ case OperatorType.TYPE_LOGIC_ALWAYS_TRUE:
232
+ current.ret_type = ValueType.TYPE_BOOL;
233
+ return;
234
+ case OperatorType.TYPE_LOGIC_NOT:
235
+ current.ret_type = ValueType.TYPE_BOOL;
236
+ if (stack.length < 1)
237
+ ERROR(Errors.Fail, 'ResolveData: TYPE_LOGIC_NOT');
238
+ let param = stack.pop();
239
+ if (!param.ret_type || param.ret_type != ValueType.TYPE_BOOL) {
240
+ ERROR(Errors.Fail, 'ResolveData: TYPE_LOGIC_NOT type invalid');
241
+ }
242
+ current.child.push(param);
243
+ stack.push(current);
244
+ return;
245
+ case OperatorType.TYPE_LOGIC_AS_U256_GREATER:
246
+ case OperatorType.TYPE_LOGIC_AS_U256_GREATER_EQUAL:
247
+ case OperatorType.TYPE_LOGIC_AS_U256_LESSER:
248
+ case OperatorType.TYPE_LOGIC_AS_U256_LESSER_EQUAL:
249
+ case OperatorType.TYPE_LOGIC_AS_U256_EQUAL:
250
+ current.ret_type = ValueType.TYPE_BOOL;
251
+ if (stack.length < 2)
252
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type);
253
+ for (let i = 0; i < 2; ++i) {
254
+ let p = stack.pop();
255
+ if (!p.ret_type)
256
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' INVALID param type');
257
+ if (p.ret_type != ValueType.TYPE_U8 && p.ret_type != ValueType.TYPE_U64 &&
258
+ p.ret_type != ValueType.TYPE_U128 && p.ret_type != ValueType.TYPE_U256) {
259
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' INVALID param type');
260
+ }
261
+ ;
262
+ current.child.push(p);
263
+ }
264
+ stack.push(current);
265
+ return;
266
+ case OperatorType.TYPE_LOGIC_EQUAL:
267
+ current.ret_type = ValueType.TYPE_BOOL;
268
+ if (stack.length < 2)
269
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type);
270
+ var p1 = stack.pop();
271
+ var p2 = stack.pop();
272
+ if (!p1.ret_type || !p2.ret_type)
273
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' INVALID param type');
274
+ if (p1.ret_type != p2.ret_type)
275
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' param type not match');
276
+ current.child.push(p1);
277
+ current.child.push(p2);
278
+ stack.push(current);
279
+ return;
280
+ case OperatorType.TYPE_LOGIC_HAS_SUBSTRING:
281
+ current.ret_type = ValueType.TYPE_BOOL;
282
+ if (stack.length < 2)
283
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type);
284
+ var p1 = stack.pop();
285
+ var p2 = stack.pop();
286
+ if (!p1.ret_type || !p2.ret_type)
287
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' INVALID param type');
288
+ if (p1.ret_type != ValueType.TYPE_VEC_U8 || p2.ret_type != ValueType.TYPE_VEC_U8) {
289
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' param type not match');
290
+ }
291
+ current.child.push(p1);
292
+ current.child.push(p2);
293
+ stack.push(current);
294
+ return;
295
+ case OperatorType.TYPE_LOGIC_AND:
296
+ case OperatorType.TYPE_LOGIC_OR:
297
+ current.ret_type = ValueType.TYPE_BOOL;
298
+ if (stack.length < 2)
299
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type);
300
+ var p1 = stack.pop();
301
+ var p2 = stack.pop();
302
+ if (!p1.ret_type || !p2.ret_type)
303
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' INVALID param type');
304
+ if (p1.ret_type != ValueType.TYPE_BOOL || p2.ret_type != ValueType.TYPE_BOOL) {
305
+ ERROR(Errors.Fail, 'ResolveData: ' + current.type + ' param type not match');
306
+ }
307
+ current.child.push(p1);
308
+ current.child.push(p2);
309
+ stack.push(current);
310
+ return;
311
+ case OperatorType.TYPE_QUERY:
312
+ if (!current?.cmd)
313
+ ERROR(Errors.Fail, 'OperateParamCount: cmd invalid ' + current.type);
314
+ let r = Guard.GetCmd(current.cmd);
315
+ if (!r)
316
+ ERROR(Errors.Fail, 'OperateParamCount: cmd not supported ' + current.type);
317
+ console.log(r);
318
+ if (stack.length < r[3].length)
319
+ ERROR(Errors.Fail, 'OperateParamCount: cmd param lost ' + current.type);
320
+ r[3].forEach((e) => {
321
+ let d = stack.pop();
322
+ if (!d?.ret_type || d.ret_type != e) {
323
+ ERROR(Errors.Fail, 'OperateParamCount: cmd param not match ' + current.type);
324
+ }
325
+ current.child.push(d);
326
+ });
327
+ stack.push(current);
328
+ return;
329
+ case ValueType.TYPE_ADDRESS:
330
+ case ValueType.TYPE_BOOL:
331
+ case ValueType.TYPE_U128:
332
+ case ValueType.TYPE_U256:
333
+ case ValueType.TYPE_U64:
334
+ case ValueType.TYPE_U8:
335
+ case ValueType.TYPE_VEC_ADDRESS:
336
+ case ValueType.TYPE_VEC_BOOL:
337
+ case ValueType.TYPE_VEC_U128:
338
+ case ValueType.TYPE_VEC_U256:
339
+ case ValueType.TYPE_VEC_U64:
340
+ case ValueType.TYPE_VEC_U8:
341
+ case ValueType.TYPE_VEC_VEC_U8:
342
+ case ValueType.TYPE_OPTION_ADDRESS:
343
+ case ValueType.TYPE_OPTION_BOOL:
344
+ case ValueType.TYPE_OPTION_U128:
345
+ case ValueType.TYPE_OPTION_U256:
346
+ case ValueType.TYPE_OPTION_U64:
347
+ case ValueType.TYPE_OPTION_U8:
348
+ case ContextType.TYPE_WITNESS_ID: /// notice!!
349
+ current.ret_type = current.type;
350
+ stack.push(current);
351
+ return;
352
+ case ContextType.TYPE_CLOCK:
353
+ current.ret_type = ValueType.TYPE_U64;
354
+ stack.push(current);
355
+ return;
356
+ case ContextType.TYPE_SIGNER:
357
+ current.ret_type = ValueType.TYPE_ADDRESS;
358
+ stack.push(current);
359
+ return;
360
+ case ContextType.TYPE_VARIABLE:
361
+ let v = variables.find((e) => e.identifier == current?.identifier);
362
+ if (!v)
363
+ ERROR(Errors.Fail, 'OperateParamCount: identifier invalid ' + current.type);
364
+ current.ret_type = v?.type;
365
+ stack.push(current);
366
+ return;
367
+ }
368
+ ERROR(Errors.Fail, 'OperateParamCount: type invalid ' + current.type);
369
+ };
370
+ /// create GuardParser ayncly
17
371
  static CreateAsync = async (protocol, guards) => {
18
372
  if (!IsValidArray(guards, IsValidAddress)) {
19
373
  ERROR(Errors.IsValidArray, 'guards');
@@ -74,8 +74,19 @@ export declare enum ValueType {
74
74
  TYPE_OPTION_U8 = 113,
75
75
  TYPE_OPTION_U64 = 114,
76
76
  TYPE_OPTION_U128 = 115,
77
- TYPE_U256 = 116
77
+ TYPE_OPTION_U256 = 116,
78
+ TYPE_VEC_U256 = 117,
79
+ TYPE_U256 = 118
78
80
  }
81
+ export declare const OperatorTypeArray: number[];
82
+ export declare const ValueTypeArray: number[];
83
+ export declare const IsValidOperatorType: (type: number) => boolean;
84
+ export declare const IsValidValueType: (type: number) => boolean;
85
+ interface ValueTypeString {
86
+ type: ValueType;
87
+ name: string;
88
+ }
89
+ export declare const SER_VALUE: ValueTypeString[];
79
90
  export declare enum ContextType {
80
91
  TYPE_SIGNER = 60,
81
92
  TYPE_CLOCK = 61,
@@ -164,4 +175,5 @@ export type Query_Param = {
164
175
  data?: any;
165
176
  variables?: GuardVariable;
166
177
  };
178
+ export {};
167
179
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -53,8 +53,35 @@ export var ValueType;
53
53
  ValueType[ValueType["TYPE_OPTION_U8"] = 113] = "TYPE_OPTION_U8";
54
54
  ValueType[ValueType["TYPE_OPTION_U64"] = 114] = "TYPE_OPTION_U64";
55
55
  ValueType[ValueType["TYPE_OPTION_U128"] = 115] = "TYPE_OPTION_U128";
56
- ValueType[ValueType["TYPE_U256"] = 116] = "TYPE_U256";
56
+ ValueType[ValueType["TYPE_OPTION_U256"] = 116] = "TYPE_OPTION_U256";
57
+ ValueType[ValueType["TYPE_VEC_U256"] = 117] = "TYPE_VEC_U256";
58
+ ValueType[ValueType["TYPE_U256"] = 118] = "TYPE_U256";
57
59
  })(ValueType || (ValueType = {}));
60
+ export const OperatorTypeArray = Object.values(OperatorType).filter((v) => typeof (v) === 'number');
61
+ export const ValueTypeArray = Object.values(ValueType).filter((v) => typeof (v) === 'number');
62
+ export const IsValidOperatorType = (type) => { return OperatorTypeArray.includes(type); };
63
+ export const IsValidValueType = (type) => { return ValueTypeArray.includes(type); };
64
+ export const SER_VALUE = [
65
+ { type: ValueType.TYPE_BOOL, name: 'bool' },
66
+ { type: ValueType.TYPE_ADDRESS, name: 'address' },
67
+ { type: ValueType.TYPE_U64, name: 'u64' },
68
+ { type: ValueType.TYPE_U8, name: 'u8' },
69
+ { type: ValueType.TYPE_VEC_U8, name: 'vector<u8>' },
70
+ { type: ValueType.TYPE_U128, name: 'u128' },
71
+ { type: ValueType.TYPE_VEC_ADDRESS, name: 'vector<address>' },
72
+ { type: ValueType.TYPE_VEC_BOOL, name: 'vector<bool>' },
73
+ { type: ValueType.TYPE_VEC_VEC_U8, name: 'vector<vector<u8>>' },
74
+ { type: ValueType.TYPE_VEC_U64, name: 'vector<u64>' },
75
+ { type: ValueType.TYPE_VEC_U128, name: 'vector<u128>' },
76
+ { type: ValueType.TYPE_OPTION_ADDRESS, name: 'Option<address>' },
77
+ { type: ValueType.TYPE_OPTION_BOOL, name: 'Option<bool>' },
78
+ { type: ValueType.TYPE_OPTION_U8, name: 'Option<u8>' },
79
+ { type: ValueType.TYPE_OPTION_U64, name: 'Option<u64>' },
80
+ { type: ValueType.TYPE_OPTION_U128, name: 'Option<u128>' },
81
+ { type: ValueType.TYPE_OPTION_U256, name: 'Option<u256>' },
82
+ { type: ValueType.TYPE_VEC_U256, name: 'vector<u256>' },
83
+ { type: ValueType.TYPE_U256, name: 'u256' },
84
+ ];
58
85
  export var ContextType;
59
86
  (function (ContextType) {
60
87
  ContextType[ContextType["TYPE_SIGNER"] = 60] = "TYPE_SIGNER";
@@ -90,7 +117,7 @@ export class Protocol {
90
117
  case ENTRYPOINT.devnet:
91
118
  break;
92
119
  case ENTRYPOINT.testnet:
93
- this.package = "0xffd87461cb8e54e0ae612a0d6a323d8c6fb4a85933e7481d3f4926ced3e6d7c7";
120
+ this.package = "0x9a7fc338ab9fd0a8f4c108e2f3dbe53393b83529263eb31a391120997d962400";
94
121
  this.everyone_guard = "0x78a41fcc4f566360839613f6b917fb101ae015e56b43143f496f265b6422fddc";
95
122
  this.graphql = 'https://sui-testnet.mystenlabs.com/graphql';
96
123
  break;
package/dist/utils.d.ts CHANGED
@@ -1,9 +1,19 @@
1
1
  import { BCS, TypeName, StructTypeDefinition } from '@mysten/bcs';
2
2
  import { TransactionBlock, TransactionArgument } from '@mysten/sui.js/transactions';
3
- export declare const ulebDecode: (arr: number[] | Uint8Array) => {
3
+ export declare const OPTION_NONE = 0;
4
+ export declare const readOption: (arr: number[], de: string) => {
5
+ bNone: boolean;
6
+ value: any;
7
+ };
8
+ export declare const ulebDecode: (arr: Uint8Array) => {
4
9
  value: number;
5
10
  length: number;
6
11
  };
12
+ export declare const readVec: (arr: any[], cb: (arr: any[], i: number, length: number) => any) => any[];
13
+ export declare const cb_U8: (arr: any[], i: number, length: number) => any;
14
+ export declare const cb_U64: (arr: any[], i: number, length: number) => any;
15
+ export declare const cb_U128: (arr: any[], i: number, length: number) => any;
16
+ export declare const cb_U256: (arr: any[], i: number, length: number) => any;
7
17
  export declare const concatenate: (resultConstructor: any, ...arrays: any[]) => any;
8
18
  export declare const array_equal: (arr1: any[], arr2: any[]) => boolean;
9
19
  export declare const array_unique: (arr: any[]) => any[];
@@ -21,6 +31,9 @@ export declare class Bcs {
21
31
  ser_vector_vector_u8(data: string[]): Uint8Array;
22
32
  ser_vector_u64(data: number[]): Uint8Array;
23
33
  ser_vector_u8(data: number[]): Uint8Array;
34
+ ser_vector_address(data: number[]): Uint8Array;
35
+ ser_vector_bool(data: number[]): Uint8Array;
36
+ ser_vector_u128(data: number[]): Uint8Array;
24
37
  ser_address(data: string): Uint8Array;
25
38
  ser_bool(data: boolean): Uint8Array;
26
39
  ser_u8(data: number): Uint8Array;
@@ -28,6 +41,7 @@ export declare class Bcs {
28
41
  ser_u128(data: number): Uint8Array;
29
42
  ser_u256(data: number): Uint8Array;
30
43
  ser_string(data: string): Uint8Array;
44
+ ser(type: TypeName | StructTypeDefinition, data: Uint8Array): Uint8Array;
31
45
  de(type: TypeName | StructTypeDefinition, data: Uint8Array): any;
32
46
  }
33
47
  export declare function stringToUint8Array(str: string): Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,4 +1,19 @@
1
1
  import { BCS, getSuiMoveConfig } from '@mysten/bcs';
2
+ import { ERROR, Errors } from './exception';
3
+ export const OPTION_NONE = 0;
4
+ export const readOption = (arr, de) => {
5
+ let o = arr.splice(0, 1);
6
+ if (o[0] == 1) { // true
7
+ return { bNone: false, value: Bcs.getInstance().de(de, Uint8Array.from(arr)) };
8
+ }
9
+ else if (o[0] == 0) {
10
+ return { bNone: true, value: OPTION_NONE };
11
+ }
12
+ else {
13
+ ERROR(Errors.Fail, 'readOption: option invalid');
14
+ return { bNone: true, value: OPTION_NONE };
15
+ }
16
+ };
2
17
  export const ulebDecode = (arr) => {
3
18
  let total = 0;
4
19
  let shift = 0;
@@ -18,6 +33,27 @@ export const ulebDecode = (arr) => {
18
33
  length: len,
19
34
  };
20
35
  };
36
+ export const readVec = (arr, cb) => {
37
+ let r = ulebDecode(Uint8Array.from(arr));
38
+ arr.splice(0, r.length);
39
+ let result = [];
40
+ for (let i = 0; i < r.value; i++) {
41
+ result.push(cb(arr, i, r.value));
42
+ }
43
+ return result;
44
+ };
45
+ export const cb_U8 = (arr, i, length) => {
46
+ return arr.shift();
47
+ };
48
+ export const cb_U64 = (arr, i, length) => {
49
+ return arr.splice(0, 8);
50
+ };
51
+ export const cb_U128 = (arr, i, length) => {
52
+ return arr.splice(0, 16);
53
+ };
54
+ export const cb_U256 = (arr, i, length) => {
55
+ return arr.splice(0, 32);
56
+ };
21
57
  export const concatenate = (resultConstructor, ...arrays) => {
22
58
  let totalLength = 0;
23
59
  for (const arr of arrays) {
@@ -97,6 +133,15 @@ export class Bcs {
97
133
  ser_vector_u8(data) {
98
134
  return this.bcs.ser('vector<u8>', data).toBytes();
99
135
  }
136
+ ser_vector_address(data) {
137
+ return this.bcs.ser('vector<address>', data).toBytes();
138
+ }
139
+ ser_vector_bool(data) {
140
+ return this.bcs.ser('vector<bool>', data).toBytes();
141
+ }
142
+ ser_vector_u128(data) {
143
+ return this.bcs.ser('vector<u128>', data).toBytes();
144
+ }
100
145
  ser_address(data) {
101
146
  return this.bcs.ser(BCS.ADDRESS, data).toBytes();
102
147
  }
@@ -118,6 +163,9 @@ export class Bcs {
118
163
  ser_string(data) {
119
164
  return this.bcs.ser(BCS.STRING, data).toBytes();
120
165
  }
166
+ ser(type, data) {
167
+ return this.bcs.ser(type, data).toBytes();
168
+ }
121
169
  de(type, data) {
122
170
  return this.bcs.de(type, data);
123
171
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wowok",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "AI-oriented web3 collaboration protocol, driving innovaion and making it more likely to happen.",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",