wowok 1.0.3 → 1.0.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/LICENSE +201 -0
- package/README.md +17 -0
- package/dist/demand.js +91 -30
- package/dist/guard.js +79 -73
- package/dist/machine.js +130 -65
- package/dist/passport.js +14 -5
- package/dist/permission.js +111 -49
- package/dist/progress.js +74 -30
- package/dist/protocol.js +84 -52
- package/dist/repository.js +138 -50
- package/dist/reward.js +134 -28
- package/dist/service.js +457 -161
- package/dist/util.js +16 -1
- package/dist/vote.js +134 -56
- package/package.json +4 -5
- package/src/address.graphql +0 -0
- package/src/demand.ts +96 -52
- package/src/guard.ts +88 -82
- package/src/machine.ts +126 -81
- package/src/object.graphql +30 -0
- package/src/passport.ts +7 -7
- package/src/permission.ts +110 -59
- package/src/progress.ts +89 -58
- package/src/protocol.ts +80 -33
- package/src/repository.ts +146 -70
- package/src/reward.ts +131 -45
- package/src/service.ts +433 -209
- package/src/util.ts +16 -1
- package/src/vote.ts +141 -74
package/dist/guard.js
CHANGED
|
@@ -1,20 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sense_objects_fn = exports.description_fn = exports.parse_sense_bsc = exports.SenseMaker = exports.Sense_Cmd = exports.
|
|
3
|
+
exports.sense_objects_fn = exports.description_fn = exports.parse_sense_bsc = exports.SenseMaker = exports.Sense_Cmd = exports.signer_guard = exports.launch = exports.Guard_Sense_Binder = exports.MAX_SENSE_COUNT = void 0;
|
|
4
4
|
const bcs_1 = require("@mysten/bcs");
|
|
5
5
|
const protocol_1 = require("./protocol");
|
|
6
6
|
const util_1 = require("./util");
|
|
7
|
+
exports.MAX_SENSE_COUNT = 16;
|
|
7
8
|
var Guard_Sense_Binder;
|
|
8
9
|
(function (Guard_Sense_Binder) {
|
|
9
|
-
Guard_Sense_Binder[Guard_Sense_Binder["AND"] =
|
|
10
|
-
Guard_Sense_Binder[Guard_Sense_Binder["OR"] =
|
|
10
|
+
Guard_Sense_Binder[Guard_Sense_Binder["AND"] = 0] = "AND";
|
|
11
|
+
Guard_Sense_Binder[Guard_Sense_Binder["OR"] = 1] = "OR";
|
|
11
12
|
})(Guard_Sense_Binder || (exports.Guard_Sense_Binder = Guard_Sense_Binder = {}));
|
|
12
13
|
function launch(txb, creation) {
|
|
13
|
-
|
|
14
|
+
if (!(0, protocol_1.IsValidDesription)(creation.description))
|
|
15
|
+
return false;
|
|
16
|
+
if (!creation.senses)
|
|
17
|
+
return false;
|
|
18
|
+
let bValid = true;
|
|
19
|
+
creation.senses.forEach((v) => {
|
|
20
|
+
if (v.input.length == 0)
|
|
21
|
+
bValid = false;
|
|
22
|
+
});
|
|
23
|
+
if (!bValid)
|
|
24
|
+
return false;
|
|
25
|
+
let guard = txb.moveCall({
|
|
14
26
|
target: protocol_1.PROTOCOL.GuardFn('new'),
|
|
15
|
-
arguments: [txb.pure(creation.description, bcs_1.BCS.STRING)
|
|
27
|
+
arguments: [txb.pure(creation.description, bcs_1.BCS.STRING)],
|
|
16
28
|
});
|
|
17
|
-
creation
|
|
29
|
+
creation.senses.forEach((sense) => {
|
|
18
30
|
txb.moveCall({
|
|
19
31
|
target: protocol_1.PROTOCOL.GuardFn('sense_add'),
|
|
20
32
|
arguments: [guard, txb.pure([].slice.call(sense.input)),
|
|
@@ -34,32 +46,26 @@ function signer_guard(txb) {
|
|
|
34
46
|
target: protocol_1.PROTOCOL.GuardFn('signer_guard'),
|
|
35
47
|
arguments: []
|
|
36
48
|
}); // { kind: 'Result', index: 0 }, ref to address could used by PTB
|
|
49
|
+
return true;
|
|
37
50
|
}
|
|
38
51
|
exports.signer_guard = signer_guard;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
[protocol_1.MODULES.
|
|
48
|
-
[protocol_1.MODULES.
|
|
49
|
-
[protocol_1.MODULES.
|
|
50
|
-
[protocol_1.MODULES.
|
|
51
|
-
[protocol_1.MODULES.
|
|
52
|
-
[protocol_1.MODULES.repository, '
|
|
53
|
-
[protocol_1.MODULES.repository, '
|
|
54
|
-
[protocol_1.MODULES.repository, '
|
|
55
|
-
[protocol_1.MODULES.repository, '
|
|
56
|
-
[protocol_1.MODULES.repository, 'policy_value_type', 5, [protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_u8],
|
|
57
|
-
[protocol_1.MODULES.repository, 'contains_id', 6, [protocol_1.Data_Type.TYPE_STATIC_address], protocol_1.Data_Type.TYPE_STATIC_bool],
|
|
58
|
-
[protocol_1.MODULES.repository, 'contains_value', 7, [protocol_1.Data_Type.TYPE_STATIC_address, protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_bool],
|
|
59
|
-
[protocol_1.MODULES.repository, 'value_without_type', 8, [protocol_1.Data_Type.TYPE_STATIC_address, protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_vec_u8],
|
|
60
|
-
[protocol_1.MODULES.repository, 'value', 9, [protocol_1.Data_Type.TYPE_STATIC_address, protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_vec_u8],
|
|
61
|
-
[protocol_1.MODULES.repository, 'type', 10, [], protocol_1.Data_Type.TYPE_STATIC_u8],
|
|
62
|
-
[protocol_1.MODULES.repository, 'policy_mode', 11, [], protocol_1.Data_Type.TYPE_STATIC_u8],
|
|
52
|
+
exports.Sense_Cmd = [[protocol_1.MODULES.permission, 'creator', 1, [], protocol_1.ValueType.TYPE_STATIC_address],
|
|
53
|
+
[protocol_1.MODULES.permission, 'is_admin', 2, [protocol_1.ValueType.TYPE_STATIC_address], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
54
|
+
[protocol_1.MODULES.permission, 'has_rights', 3, [protocol_1.ValueType.TYPE_STATIC_address, protocol_1.ValueType.TYPE_STATIC_u64], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
55
|
+
[protocol_1.MODULES.permission, 'contains_address', 4, [protocol_1.ValueType.TYPE_STATIC_address], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
56
|
+
[protocol_1.MODULES.permission, 'contains_index', 5, [protocol_1.ValueType.TYPE_STATIC_address, protocol_1.ValueType.TYPE_STATIC_u64], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
57
|
+
[protocol_1.MODULES.permission, 'contains_guard', 6, [protocol_1.ValueType.TYPE_STATIC_address, protocol_1.ValueType.TYPE_STATIC_u64], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
58
|
+
[protocol_1.MODULES.repository, 'permission', 1, [], protocol_1.ValueType.TYPE_STATIC_address],
|
|
59
|
+
[protocol_1.MODULES.repository, 'policy_contains', 2, [protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
60
|
+
[protocol_1.MODULES.repository, 'policy_has_permission_index', 3, [protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
61
|
+
[protocol_1.MODULES.repository, 'policy_permission_index', 4, [protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_u64],
|
|
62
|
+
[protocol_1.MODULES.repository, 'policy_value_type', 5, [protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_u8],
|
|
63
|
+
[protocol_1.MODULES.repository, 'contains_id', 6, [protocol_1.ValueType.TYPE_STATIC_address], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
64
|
+
[protocol_1.MODULES.repository, 'contains_value', 7, [protocol_1.ValueType.TYPE_STATIC_address, protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_bool],
|
|
65
|
+
[protocol_1.MODULES.repository, 'value_without_type', 8, [protocol_1.ValueType.TYPE_STATIC_address, protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_vec_u8],
|
|
66
|
+
[protocol_1.MODULES.repository, 'value', 9, [protocol_1.ValueType.TYPE_STATIC_address, protocol_1.ValueType.TYPE_STATIC_vec_u8], protocol_1.ValueType.TYPE_STATIC_vec_u8],
|
|
67
|
+
[protocol_1.MODULES.repository, 'type', 10, [], protocol_1.ValueType.TYPE_STATIC_u8],
|
|
68
|
+
[protocol_1.MODULES.repository, 'policy_mode', 11, [], protocol_1.ValueType.TYPE_STATIC_u8],
|
|
63
69
|
];
|
|
64
70
|
class SenseMaker {
|
|
65
71
|
data = [];
|
|
@@ -69,43 +75,43 @@ class SenseMaker {
|
|
|
69
75
|
add_param(type, param) {
|
|
70
76
|
const bcs = new bcs_1.BCS((0, bcs_1.getSuiMoveConfig)());
|
|
71
77
|
switch (type) {
|
|
72
|
-
case protocol_1.
|
|
78
|
+
case protocol_1.ValueType.TYPE_STATIC_address:
|
|
73
79
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
74
80
|
this.data.push(bcs.ser(bcs_1.BCS.ADDRESS, param).toBytes());
|
|
75
81
|
this.type_validator.push(type);
|
|
76
82
|
break;
|
|
77
|
-
case protocol_1.
|
|
83
|
+
case protocol_1.ValueType.TYPE_STATIC_bool:
|
|
78
84
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
79
85
|
this.data.push(bcs.ser(bcs_1.BCS.BOOL, param).toBytes());
|
|
80
86
|
this.type_validator.push(type);
|
|
81
87
|
break;
|
|
82
|
-
case protocol_1.
|
|
88
|
+
case protocol_1.ValueType.TYPE_STATIC_u8:
|
|
83
89
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
84
90
|
this.data.push(bcs.ser(bcs_1.BCS.U8, param).toBytes());
|
|
85
91
|
this.type_validator.push(type);
|
|
86
92
|
break;
|
|
87
|
-
case protocol_1.
|
|
93
|
+
case protocol_1.ValueType.TYPE_STATIC_u64:
|
|
88
94
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
89
95
|
this.data.push(bcs.ser(bcs_1.BCS.U64, param).toBytes());
|
|
90
96
|
this.type_validator.push(type);
|
|
91
97
|
break;
|
|
92
|
-
case protocol_1.
|
|
98
|
+
case protocol_1.ValueType.TYPE_STATIC_vec_u8:
|
|
93
99
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
94
100
|
this.data.push(bcs.ser("vector<u8>", param).toBytes());
|
|
95
101
|
this.type_validator.push(type);
|
|
96
102
|
// this.data[this.data.length-1].forEach((item : number) => console.log(item))
|
|
97
103
|
break;
|
|
98
|
-
case protocol_1.
|
|
104
|
+
case protocol_1.ContextType.TYPE_CONTEXT_SIGNER:
|
|
99
105
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
100
|
-
this.type_validator.push(protocol_1.
|
|
106
|
+
this.type_validator.push(protocol_1.ValueType.TYPE_STATIC_address);
|
|
101
107
|
break;
|
|
102
|
-
case protocol_1.
|
|
108
|
+
case protocol_1.ContextType.TYPE_CONTEXT_CURRENT_CLOCK:
|
|
103
109
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
104
|
-
this.type_validator.push(protocol_1.
|
|
110
|
+
this.type_validator.push(protocol_1.ValueType.TYPE_STATIC_u64);
|
|
105
111
|
break;
|
|
106
|
-
case protocol_1.
|
|
112
|
+
case protocol_1.ContextType.TYPE_CONTEXT_CURRENT_PROGRESS:
|
|
107
113
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes());
|
|
108
|
-
this.type_validator.push(protocol_1.
|
|
114
|
+
this.type_validator.push(protocol_1.ValueType.TYPE_STATIC_address);
|
|
109
115
|
break;
|
|
110
116
|
default:
|
|
111
117
|
return false;
|
|
@@ -126,7 +132,7 @@ class SenseMaker {
|
|
|
126
132
|
return false;
|
|
127
133
|
}
|
|
128
134
|
const bcs = new bcs_1.BCS((0, bcs_1.getSuiMoveConfig)());
|
|
129
|
-
this.data.push(bcs.ser(bcs_1.BCS.U8, protocol_1.
|
|
135
|
+
this.data.push(bcs.ser(bcs_1.BCS.U8, protocol_1.OperatorType.TYPE_DYNAMIC_QUERY).toBytes()); // TYPE
|
|
130
136
|
this.data.push(bcs.ser(bcs_1.BCS.ADDRESS, object_address).toBytes()); // object address
|
|
131
137
|
this.data.push(bcs.ser(bcs_1.BCS.U8, exports.Sense_Cmd[sense_index][2]).toBytes()); // cmd
|
|
132
138
|
this.type_validator.splice(offset, exports.Sense_Cmd[sense_index][3].length); // delete type stack
|
|
@@ -136,11 +142,11 @@ class SenseMaker {
|
|
|
136
142
|
}
|
|
137
143
|
add_logic(type) {
|
|
138
144
|
switch (type) {
|
|
139
|
-
case protocol_1.
|
|
140
|
-
case protocol_1.
|
|
141
|
-
case protocol_1.
|
|
142
|
-
case protocol_1.
|
|
143
|
-
case protocol_1.
|
|
145
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_GREATER:
|
|
146
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_GREATER_EQUAL:
|
|
147
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_LESSER:
|
|
148
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_LESSER_EQUAL:
|
|
149
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_EQUAL:
|
|
144
150
|
if (this.type_validator.length < 2) {
|
|
145
151
|
return false;
|
|
146
152
|
}
|
|
@@ -151,8 +157,8 @@ class SenseMaker {
|
|
|
151
157
|
return false;
|
|
152
158
|
}
|
|
153
159
|
break;
|
|
154
|
-
case protocol_1.
|
|
155
|
-
case protocol_1.
|
|
160
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_EQUAL:
|
|
161
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_HAS_SUBSTRING:
|
|
156
162
|
if (this.type_validator.length < 2) {
|
|
157
163
|
return false;
|
|
158
164
|
}
|
|
@@ -163,14 +169,14 @@ class SenseMaker {
|
|
|
163
169
|
const bcs = new bcs_1.BCS((0, bcs_1.getSuiMoveConfig)());
|
|
164
170
|
this.data.push(bcs.ser(bcs_1.BCS.U8, type).toBytes()); // TYPE
|
|
165
171
|
this.type_validator.splice(this.type_validator.length - 2); // delete type stack
|
|
166
|
-
this.type_validator.push(protocol_1.
|
|
172
|
+
this.type_validator.push(protocol_1.ValueType.TYPE_STATIC_bool); // add bool to type stack
|
|
167
173
|
return true;
|
|
168
174
|
}
|
|
169
175
|
make(bNotAfterSense, binder) {
|
|
170
176
|
//console.log(this.type_validator);
|
|
171
177
|
//this.data.forEach((value:Uint8Array) => console.log(value));
|
|
172
|
-
if (this.type_validator.length != 1 || this.type_validator[0] != protocol_1.
|
|
173
|
-
return
|
|
178
|
+
if (this.type_validator.length != 1 || this.type_validator[0] != protocol_1.ValueType.TYPE_STATIC_bool) {
|
|
179
|
+
return false;
|
|
174
180
|
} // ERROR
|
|
175
181
|
let input = (0, util_1.concatenate)(Uint8Array, ...this.data);
|
|
176
182
|
const sense = { input: input, notAfterSense: bNotAfterSense, binder: binder };
|
|
@@ -179,9 +185,9 @@ class SenseMaker {
|
|
|
179
185
|
}
|
|
180
186
|
exports.SenseMaker = SenseMaker;
|
|
181
187
|
function match_u128(type) {
|
|
182
|
-
if (type == protocol_1.
|
|
183
|
-
type == protocol_1.
|
|
184
|
-
type == protocol_1.
|
|
188
|
+
if (type == protocol_1.ValueType.TYPE_STATIC_option_u8 ||
|
|
189
|
+
type == protocol_1.ValueType.TYPE_STATIC_option_u64 ||
|
|
190
|
+
type == protocol_1.ValueType.TYPE_STATIC_option_u128) {
|
|
185
191
|
return true;
|
|
186
192
|
}
|
|
187
193
|
return false;
|
|
@@ -196,42 +202,42 @@ function parse_sense_bsc(chain_sense_bsc) {
|
|
|
196
202
|
var type = array.shift();
|
|
197
203
|
// console.log(type);
|
|
198
204
|
switch (type) {
|
|
199
|
-
case protocol_1.
|
|
200
|
-
case protocol_1.
|
|
201
|
-
case protocol_1.
|
|
202
|
-
case protocol_1.
|
|
203
|
-
case protocol_1.
|
|
204
|
-
case protocol_1.
|
|
205
|
-
case protocol_1.
|
|
206
|
-
case protocol_1.
|
|
207
|
-
case protocol_1.
|
|
208
|
-
case protocol_1.
|
|
205
|
+
case protocol_1.ContextType.TYPE_CONTEXT_SIGNER:
|
|
206
|
+
case protocol_1.ContextType.TYPE_CONTEXT_CURRENT_CLOCK:
|
|
207
|
+
case protocol_1.ContextType.TYPE_CONTEXT_CURRENT_PROGRESS:
|
|
208
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_GREATER:
|
|
209
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_GREATER_EQUAL:
|
|
210
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_LESSER:
|
|
211
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_LESSER_EQUAL:
|
|
212
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_U128_EQUAL:
|
|
213
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_EQUAL:
|
|
214
|
+
case protocol_1.OperatorType.TYPE_LOGIC_OPERATOR_HAS_SUBSTRING:
|
|
209
215
|
break;
|
|
210
|
-
case protocol_1.
|
|
216
|
+
case protocol_1.ValueType.TYPE_STATIC_address:
|
|
211
217
|
//console.log('0x' + bcs.de(BCS.ADDRESS, Uint8Array.from(array)).toString());
|
|
212
218
|
array.splice(0, 32);
|
|
213
219
|
break;
|
|
214
|
-
case protocol_1.
|
|
215
|
-
case protocol_1.
|
|
220
|
+
case protocol_1.ValueType.TYPE_STATIC_bool:
|
|
221
|
+
case protocol_1.ValueType.TYPE_STATIC_u8:
|
|
216
222
|
array.splice(0, 1);
|
|
217
223
|
break;
|
|
218
|
-
case protocol_1.
|
|
224
|
+
case protocol_1.ValueType.TYPE_STATIC_u64:
|
|
219
225
|
array.splice(0, 8);
|
|
220
226
|
break;
|
|
221
|
-
case protocol_1.
|
|
227
|
+
case protocol_1.ValueType.TYPE_STATIC_u128:
|
|
222
228
|
array.splice(0, 16);
|
|
223
229
|
break;
|
|
224
|
-
case protocol_1.
|
|
230
|
+
case protocol_1.ValueType.TYPE_STATIC_vec_u8:
|
|
225
231
|
let { value, length } = (0, util_1.ulebDecode)(Uint8Array.from(array));
|
|
226
232
|
array.splice(0, value + length);
|
|
227
233
|
break;
|
|
228
|
-
case protocol_1.
|
|
234
|
+
case protocol_1.OperatorType.TYPE_DYNAMIC_QUERY:
|
|
229
235
|
result.push('0x' + bcs.de(bcs_1.BCS.ADDRESS, Uint8Array.from(array)).toString());
|
|
230
236
|
array.splice(0, 33); // address + cmd
|
|
231
237
|
break;
|
|
232
238
|
default:
|
|
233
239
|
// console.log('parse_sense_bsc:undefined');
|
|
234
|
-
return
|
|
240
|
+
return false; // error
|
|
235
241
|
}
|
|
236
242
|
}
|
|
237
243
|
return result;
|