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/guard.d.ts +5 -1
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +174 -168
- package/dist/passport.d.ts +15 -0
- package/dist/passport.d.ts.map +1 -1
- package/dist/passport.js +356 -2
- package/dist/protocol.d.ts +13 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +29 -2
- package/dist/utils.d.ts +15 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +48 -0
- package/package.json +1 -1
- package/src/guard.ts +172 -168
- package/src/passport.ts +363 -3
- package/src/protocol.ts +36 -2
- package/src/utils.ts +53 -1
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');
|
package/dist/protocol.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -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["
|
|
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 = "
|
|
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
|
|
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;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAoC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAA6B,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
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
|
}
|