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/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.query_description = exports.signer_guard = exports.launch = exports.Guard_Sense_Binder = void 0;
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"] = 1] = "AND";
10
- Guard_Sense_Binder[Guard_Sense_Binder["OR"] = 2] = "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
- var guard = txb.moveCall({
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?.senses.forEach((sense) => {
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
- function query_description(txb, guard) {
40
- txb.moveCall({
41
- target: protocol_1.PROTOCOL.GuardFn('description'),
42
- arguments: [guard]
43
- });
44
- }
45
- exports.query_description = query_description;
46
- exports.Sense_Cmd = [[protocol_1.MODULES.permission, 'creator', 1, [], protocol_1.Data_Type.TYPE_STATIC_address],
47
- [protocol_1.MODULES.permission, 'is_admin', 2, [protocol_1.Data_Type.TYPE_STATIC_address], protocol_1.Data_Type.TYPE_STATIC_bool],
48
- [protocol_1.MODULES.permission, 'has_rights', 3, [protocol_1.Data_Type.TYPE_STATIC_address, protocol_1.Data_Type.TYPE_STATIC_u64], protocol_1.Data_Type.TYPE_STATIC_bool],
49
- [protocol_1.MODULES.permission, 'contains_address', 4, [protocol_1.Data_Type.TYPE_STATIC_address], protocol_1.Data_Type.TYPE_STATIC_bool],
50
- [protocol_1.MODULES.permission, 'contains_index', 5, [protocol_1.Data_Type.TYPE_STATIC_address, protocol_1.Data_Type.TYPE_STATIC_u64], protocol_1.Data_Type.TYPE_STATIC_bool],
51
- [protocol_1.MODULES.permission, 'contains_guard', 6, [protocol_1.Data_Type.TYPE_STATIC_address, protocol_1.Data_Type.TYPE_STATIC_u64], protocol_1.Data_Type.TYPE_STATIC_bool],
52
- [protocol_1.MODULES.repository, 'permission', 1, [], protocol_1.Data_Type.TYPE_STATIC_address],
53
- [protocol_1.MODULES.repository, 'policy_contains', 2, [protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_bool],
54
- [protocol_1.MODULES.repository, 'policy_has_permission_index', 3, [protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_bool],
55
- [protocol_1.MODULES.repository, 'policy_permission_index', 4, [protocol_1.Data_Type.TYPE_STATIC_vec_u8], protocol_1.Data_Type.TYPE_STATIC_u64],
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.Data_Type.TYPE_STATIC_address:
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.Data_Type.TYPE_STATIC_bool:
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.Data_Type.TYPE_STATIC_u8:
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.Data_Type.TYPE_STATIC_u64:
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.Data_Type.TYPE_STATIC_vec_u8:
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.Data_Type.TYPE_CONTEXT_SIGNER:
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.Data_Type.TYPE_STATIC_address);
106
+ this.type_validator.push(protocol_1.ValueType.TYPE_STATIC_address);
101
107
  break;
102
- case protocol_1.Data_Type.TYPE_CONTEXT_CURRENT_CLOCK:
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.Data_Type.TYPE_STATIC_u64);
110
+ this.type_validator.push(protocol_1.ValueType.TYPE_STATIC_u64);
105
111
  break;
106
- case protocol_1.Data_Type.TYPE_CONTEXT_CURRENT_PROGRESS:
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.Data_Type.TYPE_STATIC_address);
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.Data_Type.TYPE_DYNAMIC_QUERY).toBytes()); // TYPE
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.Data_Type.TYPE_LOGIC_OPERATOR_U128_GREATER:
140
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_GREATER_EQUAL:
141
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_LESSER:
142
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_LESSER_EQUAL:
143
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_EQUAL:
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.Data_Type.TYPE_LOGIC_OPERATOR_EQUAL:
155
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_HAS_SUBSTRING:
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.Data_Type.TYPE_STATIC_bool); // add bool to type stack
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.Data_Type.TYPE_STATIC_bool) {
173
- return undefined;
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.Data_Type.TYPE_STATIC_option_u8 ||
183
- type == protocol_1.Data_Type.TYPE_STATIC_option_u64 ||
184
- type == protocol_1.Data_Type.TYPE_STATIC_option_u128) {
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.Data_Type.TYPE_CONTEXT_SIGNER:
200
- case protocol_1.Data_Type.TYPE_CONTEXT_CURRENT_CLOCK:
201
- case protocol_1.Data_Type.TYPE_CONTEXT_CURRENT_PROGRESS:
202
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_GREATER:
203
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_GREATER_EQUAL:
204
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_LESSER:
205
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_LESSER_EQUAL:
206
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_U128_EQUAL:
207
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_EQUAL:
208
- case protocol_1.Data_Type.TYPE_LOGIC_OPERATOR_HAS_SUBSTRING:
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.Data_Type.TYPE_STATIC_address:
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.Data_Type.TYPE_STATIC_bool:
215
- case protocol_1.Data_Type.TYPE_STATIC_u8:
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.Data_Type.TYPE_STATIC_u64:
224
+ case protocol_1.ValueType.TYPE_STATIC_u64:
219
225
  array.splice(0, 8);
220
226
  break;
221
- case protocol_1.Data_Type.TYPE_STATIC_u128:
227
+ case protocol_1.ValueType.TYPE_STATIC_u128:
222
228
  array.splice(0, 16);
223
229
  break;
224
- case protocol_1.Data_Type.TYPE_STATIC_vec_u8:
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.Data_Type.TYPE_DYNAMIC_QUERY:
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 undefined; // error
240
+ return false; // error
235
241
  }
236
242
  }
237
243
  return result;