wowok 1.2.7 → 1.2.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wowok",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "Create, collaborate, and transact on your own terms with the AI-driven web3 collaboration protocol.",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
package/src/demand.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type TransactionResult } from '@mysten/sui.js/transactions';
2
2
  import { BCS } from '@mysten/bcs';
3
3
  import { FnCallType, Protocol, PassportObject, PermissionObject, GuardObject, DemandAddress, TxbObject, ResourceObject} from './protocol';
4
- import { IsValidDesription, IsValidUint, IsValidAddress, IsValidArgType, } from './utils'
4
+ import { IsValidDesription, IsValidUintLarge, IsValidAddress, IsValidArgType, } from './utils'
5
5
  import { Errors, ERROR} from './exception'
6
6
  import { Resource } from './resource'
7
7
 
@@ -94,7 +94,7 @@ export class Demand {
94
94
 
95
95
  // minutes_duration TRUE , time is minutes count; otherwise, the deadline time
96
96
  expand_time(minutes_duration:boolean, time: number, passport?:PassportObject) {
97
- if (!IsValidUint(time)) {
97
+ if (!IsValidUintLarge(time)) {
98
98
  ERROR(Errors.IsValidUint, 'time');
99
99
  }
100
100
 
@@ -233,14 +233,14 @@ export class Demand {
233
233
  txb.moveCall({
234
234
  target:this.protocol.DemandFn('present_with_passport') as FnCallType,
235
235
  arguments:[passport, Protocol.TXB_OBJECT(txb, this.object), Protocol.TXB_OBJECT(txb, service_address),
236
- txb.pure(tips, BCS.STRING)],
236
+ txb.pure(tips)],
237
237
  typeArguments:[this.bounty_type, service_pay_type],
238
238
  })
239
239
  } else {
240
240
  txb.moveCall({
241
241
  target:this.protocol.DemandFn('present') as FnCallType,
242
242
  arguments:[Protocol.TXB_OBJECT(txb, this.object), Protocol.TXB_OBJECT(txb, service_address),
243
- txb.pure(tips, BCS.STRING)],
243
+ txb.pure(tips)],
244
244
  typeArguments:[this.bounty_type, service_pay_type],
245
245
  })
246
246
  }
@@ -270,7 +270,7 @@ export class Demand {
270
270
  return '';
271
271
  }
272
272
 
273
- static MAX_BOUNTY_COUNT = 200;
273
+ static MAX_BOUNTY_COUNT = 300;
274
274
  static MAX_PRESENTERS_COUNT = 200;
275
275
  }
276
276
 
package/src/entity.ts CHANGED
@@ -71,6 +71,14 @@ export class Entity {
71
71
  })
72
72
  }
73
73
 
74
+ create_resource2(): ResourceObject {
75
+ let txb = this.protocol.CurrentSession();
76
+ return txb.moveCall({
77
+ target:this.protocol.EntityFn('resource_create2') as FnCallType,
78
+ arguments:[Protocol.TXB_OBJECT(txb, this.object)]
79
+ })
80
+ }
81
+
74
82
  destroy_resource(resource:Resource) {
75
83
  let txb = this.protocol.CurrentSession();
76
84
  return txb.moveCall({
package/src/guard.ts CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  import { BCS } from '@mysten/bcs';
3
- import { Protocol, GuardAddress, FnCallType, Data_Type, MODULES, ContextType, ValueType, OperatorType, ConstantType, SER_VALUE} from './protocol';
3
+ import { Protocol, LogicsInfo, GuardAddress, FnCallType, Data_Type, MODULES, ContextType, ValueType, OperatorType, ConstantType, SER_VALUE} from './protocol';
4
4
  import { concatenate, array_equal } from './utils';
5
- import { IsValidDesription, Bcs, IsValidInt, IsValidAddress } from './utils';
5
+ import { IsValidDesription, Bcs, IsValidInt, IsValidAddress, FirstLetterUppercase } from './utils';
6
6
  import { ERROR, Errors } from './exception';
7
7
 
8
8
  export type GuardConstant = Map<number, Guard_Vriable>;
@@ -13,6 +13,13 @@ export interface Guard_Vriable {
13
13
  witness?: Uint8Array,
14
14
  }
15
15
 
16
+ export interface Guard_Options {
17
+ from: 'query' | 'type';
18
+ name: string;
19
+ value: number;
20
+ group?: string;
21
+ }
22
+
16
23
  export class Guard {
17
24
  static MAX_INPUT_LENGTH = 2048;
18
25
  static launch(protocol:Protocol, description:string, maker:GuardMaker) : GuardAddress {
@@ -44,7 +51,7 @@ export class Guard {
44
51
  // reserve the bytes for guard
45
52
  let guard = txb.moveCall({
46
53
  target: protocol.GuardFn('new') as FnCallType,
47
- arguments: [txb.pure(description , BCS.STRING), txb.pure([].slice.call(input.reverse()))],
54
+ arguments: [txb.pure(description), txb.pure([].slice.call(input.reverse()))],
48
55
  });
49
56
 
50
57
  constants?.forEach((v, k) => {
@@ -91,154 +98,218 @@ export class Guard {
91
98
 
92
99
  static QUERIES:any[] = [
93
100
  // module, 'name', 'id', [input], output
94
- [MODULES.permission, 'builder', 1, [], ValueType.TYPE_ADDRESS],
95
- [MODULES.permission, 'is_admin', 2, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
96
- [MODULES.permission, 'has_rights', 3, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_BOOL],
97
- [MODULES.permission, 'contains_address', 4, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
98
- [MODULES.permission, 'contains_index', 5, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_BOOL],
99
- [MODULES.permission, 'contains_guard', 6, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_BOOL],
100
- [MODULES.permission, 'contains_guard', 7, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_ADDRESS],
101
- [MODULES.permission, 'entity_count', 8, [], ValueType.TYPE_U64],
102
- [MODULES.permission, 'admin_count', 9, [], ValueType.TYPE_U64],
101
+ [MODULES.permission, 'Builder', 1, [], ValueType.TYPE_ADDRESS],
102
+ [MODULES.permission, 'Has Admin', 2, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
103
+ [MODULES.permission, 'Has Rights', 3, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_BOOL],
104
+ [MODULES.permission, 'Contains Address', 4, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
105
+ [MODULES.permission, 'Contains Index of Address', 5, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_BOOL],
106
+ [MODULES.permission, 'Contains Guard of Address', 6, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_BOOL],
107
+ [MODULES.permission, 'Guard of Address', 7, [ValueType.TYPE_ADDRESS, ValueType.TYPE_U64], ValueType.TYPE_ADDRESS],
108
+ [MODULES.permission, 'Entity Count', 8, [], ValueType.TYPE_U64],
109
+ [MODULES.permission, 'Admin Count', 9, [], ValueType.TYPE_U64],
103
110
 
104
- [MODULES.repository, 'permission', 11, [], ValueType.TYPE_ADDRESS],
105
- [MODULES.repository, 'policy_contains', 12, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
106
- [MODULES.repository, 'policy_has_permission_index', 13, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
107
- [MODULES.repository, 'policy_permission_index', 14, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
108
- [MODULES.repository, 'policy_value_type', 15, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U8],
109
- [MODULES.repository, 'contains_id', 16, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
110
- [MODULES.repository, 'contains_value', 17, [ValueType.TYPE_ADDRESS, ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
111
- [MODULES.repository, 'value_without_type', 18, [ValueType.TYPE_ADDRESS, ValueType.TYPE_VEC_U8], ValueType.TYPE_VEC_U8],
112
- [MODULES.repository, 'value', 19, [ValueType.TYPE_ADDRESS, ValueType.TYPE_VEC_U8], ValueType.TYPE_VEC_U8],
113
- [MODULES.repository, 'type', 20, [], ValueType.TYPE_U8],
114
- [MODULES.repository, 'policy_mode', 21, [], ValueType.TYPE_U8],
115
- [MODULES.repository, 'reference_count', 22, [], ValueType.TYPE_U64],
116
- [MODULES.repository, 'has_reference', 23, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
117
-
118
- [MODULES.machine, 'permission', 31, [], ValueType.TYPE_ADDRESS],
119
- [MODULES.machine, 'has_paused', 32, [], ValueType.TYPE_BOOL],
120
- [MODULES.machine, 'has_published', 33, [], ValueType.TYPE_BOOL],
121
- [MODULES.machine, 'consensus_repositories_contains', 34, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
122
- [MODULES.machine, 'has_endpoint', 35, [], ValueType.TYPE_BOOL],
123
- [MODULES.machine, 'endpoint', 36, [], ValueType.TYPE_VEC_U8],
111
+ [MODULES.repository, 'Permission', 11, [], ValueType.TYPE_ADDRESS],
112
+ [MODULES.repository, 'Contains Policy', 12, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
113
+ [MODULES.repository, 'Has Permission of Policy', 13, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
114
+ [MODULES.repository, 'Permission of Policy', 14, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
115
+ [MODULES.repository, 'Value Type of Policy', 15, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U8],
116
+ [MODULES.repository, 'Contains Id', 16, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
117
+ [MODULES.repository, 'Contains Value', 17, [ValueType.TYPE_ADDRESS, ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
118
+ [MODULES.repository, 'Value without Type', 18, [ValueType.TYPE_ADDRESS, ValueType.TYPE_VEC_U8], ValueType.TYPE_VEC_U8],
119
+ [MODULES.repository, 'Value', 19, [ValueType.TYPE_ADDRESS, ValueType.TYPE_VEC_U8], ValueType.TYPE_VEC_U8],
120
+ [MODULES.repository, 'Type', 20, [], ValueType.TYPE_U8],
121
+ [MODULES.repository, 'Policy Mode', 21, [], ValueType.TYPE_U8],
122
+ [MODULES.repository, 'Reference Count', 22, [], ValueType.TYPE_U64],
123
+ [MODULES.repository, 'Has Reference', 23, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
124
+
125
+ [MODULES.machine, 'Permission', 31, [], ValueType.TYPE_ADDRESS],
126
+ [MODULES.machine, 'Paused', 32, [], ValueType.TYPE_BOOL],
127
+ [MODULES.machine, 'Published', 33, [], ValueType.TYPE_BOOL],
128
+ [MODULES.machine, 'Is Consensus Repository', 34, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
129
+ [MODULES.machine, 'Has Endpoint', 35, [], ValueType.TYPE_BOOL],
130
+ [MODULES.machine, 'Endpoint', 36, [], ValueType.TYPE_VEC_U8],
124
131
 
125
- [MODULES.progress, 'machine', 51, [], ValueType.TYPE_ADDRESS],
126
- [MODULES.progress, 'current', 52, [], ValueType.TYPE_VEC_U8],
127
- [MODULES.progress, 'has_parent', 53, [], ValueType.TYPE_BOOL],
128
- [MODULES.progress, 'parent', 54, [], ValueType.TYPE_ADDRESS],
129
- [MODULES.progress, 'has_task', 55, [], ValueType.TYPE_BOOL],
130
- [MODULES.progress, 'task', 56, [], ValueType.TYPE_ADDRESS],
131
- [MODULES.progress, 'has_namedOperator', 57, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
132
- [MODULES.progress, 'namedOperator_contains', 58, [ValueType.TYPE_VEC_U8, ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
133
- [MODULES.progress, 'has_context_repository', 59, [], ValueType.TYPE_BOOL],
134
- [MODULES.progress, 'context_repository', 60, [], ValueType.TYPE_ADDRESS],
132
+ [MODULES.progress, 'Machine', 51, [], ValueType.TYPE_ADDRESS],
133
+ [MODULES.progress, 'Current Node', 52, [], ValueType.TYPE_VEC_U8],
134
+ [MODULES.progress, 'Has Parent', 53, [], ValueType.TYPE_BOOL],
135
+ [MODULES.progress, 'Parent', 54, [], ValueType.TYPE_ADDRESS],
136
+ [MODULES.progress, 'Has Task', 55, [], ValueType.TYPE_BOOL],
137
+ [MODULES.progress, 'Task', 56, [], ValueType.TYPE_ADDRESS],
138
+ [MODULES.progress, 'Has Operator', 57, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
139
+ [MODULES.progress, 'Is Operator for Address', 58, [ValueType.TYPE_VEC_U8, ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
140
+ [MODULES.progress, 'Has Context Repository', 59, [], ValueType.TYPE_BOOL],
141
+ [MODULES.progress, 'Context Repository', 60, [], ValueType.TYPE_ADDRESS],
135
142
 
136
- [MODULES.demand, 'permission', 71, [], ValueType.TYPE_ADDRESS],
137
- [MODULES.demand, 'has_time_expire', 72, [], ValueType.TYPE_BOOL],
138
- [MODULES.demand, 'time_expire', 73, [], ValueType.TYPE_U64],
139
- [MODULES.demand, 'earnest_count', 74, [], ValueType.TYPE_U64],
140
- [MODULES.demand, 'has_guard', 75, [], ValueType.TYPE_BOOL],
141
- [MODULES.demand, 'guard', 76, [], ValueType.TYPE_ADDRESS],
142
- [MODULES.demand, 'has_yes', 77, [], ValueType.TYPE_BOOL],
143
- [MODULES.demand, 'yes', 78, [], ValueType.TYPE_ADDRESS],
144
- [MODULES.demand, 'presenters_count', 79, [], ValueType.TYPE_U64],
145
- [MODULES.demand, 'has_presenter', 80, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
146
- [MODULES.demand, 'persenter', 81, [ValueType.TYPE_ADDRESS], ValueType.TYPE_ADDRESS],
143
+ [MODULES.demand, 'Permission', 71, [], ValueType.TYPE_ADDRESS],
144
+ [MODULES.demand, 'Has Deadline', 72, [], ValueType.TYPE_BOOL],
145
+ [MODULES.demand, 'Deadline', 73, [], ValueType.TYPE_U64],
146
+ [MODULES.demand, 'Bounty Count', 74, [], ValueType.TYPE_U64],
147
+ [MODULES.demand, 'Has Guard', 75, [], ValueType.TYPE_BOOL],
148
+ [MODULES.demand, 'Guard', 76, [], ValueType.TYPE_ADDRESS],
149
+ [MODULES.demand, 'Has Service Picked', 77, [], ValueType.TYPE_BOOL],
150
+ [MODULES.demand, 'Service Picked', 78, [], ValueType.TYPE_ADDRESS],
151
+ [MODULES.demand, 'Presenter Count', 79, [], ValueType.TYPE_U64],
152
+ [MODULES.demand, 'Is Presenter', 80, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
153
+ [MODULES.demand, 'Who Got Bounty', 81, [ValueType.TYPE_ADDRESS], ValueType.TYPE_ADDRESS],
147
154
 
148
- [MODULES.order, 'amount', 91, [], ValueType.TYPE_U64],
149
- [MODULES.order, 'payer', 92, [], ValueType.TYPE_ADDRESS],
150
- [MODULES.order, 'service', 93, [], ValueType.TYPE_ADDRESS],
151
- [MODULES.order, 'has_progress', 94, [], ValueType.TYPE_BOOL],
152
- [MODULES.order, 'progress', 95, [], ValueType.TYPE_ADDRESS],
153
- [MODULES.order, 'has_requred_info', 96, [], ValueType.TYPE_BOOL],
154
- [MODULES.order, 'requred_info_service_pubkey', 97, [], ValueType.TYPE_VEC_U8],
155
- [MODULES.order, 'requred_info_customer_pubkey', 98, [], ValueType.TYPE_VEC_U8],
156
- [MODULES.order, 'requred_info_info', 99, [], ValueType.TYPE_VEC_VEC_U8],
157
- [MODULES.order, 'has_discount', 100, [], ValueType.TYPE_BOOL],
158
- [MODULES.order, 'discount', 101, [], ValueType.TYPE_ADDRESS],
159
- [MODULES.order, 'balance', 102, [], ValueType.TYPE_U64],
160
- [MODULES.order, 'bRefunded', 103, [], ValueType.TYPE_U8],
161
- [MODULES.order, 'bWithdrawed', 104, [], ValueType.TYPE_U8],
155
+ [MODULES.order, 'Amount', 91, [], ValueType.TYPE_U64],
156
+ [MODULES.order, 'Payer', 92, [], ValueType.TYPE_ADDRESS],
157
+ [MODULES.order, 'Service', 93, [], ValueType.TYPE_ADDRESS],
158
+ [MODULES.order, 'Has Progress', 94, [], ValueType.TYPE_BOOL],
159
+ [MODULES.order, 'Progress', 95, [], ValueType.TYPE_ADDRESS],
160
+ [MODULES.order, 'Has Required Info', 96, [], ValueType.TYPE_BOOL],
161
+ [MODULES.order, 'Required Info of Service-Pubkey', 97, [], ValueType.TYPE_VEC_U8],
162
+ [MODULES.order, 'Required Info of Customer-Pubkey', 98, [], ValueType.TYPE_VEC_U8],
163
+ [MODULES.order, 'Required Info', 99, [], ValueType.TYPE_VEC_VEC_U8],
164
+ [MODULES.order, 'Discount Used', 100, [], ValueType.TYPE_BOOL],
165
+ [MODULES.order, 'Discount', 101, [], ValueType.TYPE_ADDRESS],
166
+ [MODULES.order, 'Balance', 102, [], ValueType.TYPE_U64],
167
+ [MODULES.order, 'Be Refunded', 103, [], ValueType.TYPE_BOOL],
168
+ [MODULES.order, 'Be Withdrawed', 104, [], ValueType.TYPE_BOOL],
162
169
 
163
- [MODULES.service, 'permission', 111, [], ValueType.TYPE_ADDRESS],
164
- [MODULES.service, 'payee', 112, [], ValueType.TYPE_ADDRESS],
165
- [MODULES.service, 'has_buy_guard', 113, [], ValueType.TYPE_BOOL],
166
- [MODULES.service, 'buy_guard', 114, [], ValueType.TYPE_ADDRESS],
167
- [MODULES.service, 'repository_contains', 115, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
168
- [MODULES.service, 'has_withdraw_guard', 116, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
169
- [MODULES.service, 'withdraw_guard_percent', 117, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
170
- [MODULES.service, 'has_refund_guard', 118, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
171
- [MODULES.service, 'refund_guard_percent', 119, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
172
- [MODULES.service, 'has_sale', 120, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
173
- [MODULES.service, 'sale_price', 121, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
174
- [MODULES.service, 'sale_stock', 122, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
175
- [MODULES.service, 'has_machine', 123, [], ValueType.TYPE_BOOL],
176
- [MODULES.service, 'machine', 124, [], ValueType.TYPE_ADDRESS],
177
- [MODULES.service, 'bPaused', 125, [], ValueType.TYPE_BOOL],
178
- [MODULES.service, 'bPublished', 126, [], ValueType.TYPE_BOOL],
179
- [MODULES.service, 'has_required', 127, [], ValueType.TYPE_BOOL],
180
- [MODULES.service, 'requrired_pubkey', 128, [], ValueType.TYPE_VEC_U8],
181
- [MODULES.service, 'requrired_info', 129, [], ValueType.TYPE_VEC_VEC_U8],
170
+ [MODULES.service, 'Permission', 111, [], ValueType.TYPE_ADDRESS],
171
+ [MODULES.service, 'Payee', 112, [], ValueType.TYPE_ADDRESS],
172
+ [MODULES.service, 'Has Buy-Guard', 113, [], ValueType.TYPE_BOOL],
173
+ [MODULES.service, 'Buy-Guard', 114, [], ValueType.TYPE_ADDRESS],
174
+ [MODULES.service, 'Contains Repository', 115, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
175
+ [MODULES.service, 'Has Withdraw-Guard', 116, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
176
+ [MODULES.service, 'Withdraw-Guard Percent', 117, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
177
+ [MODULES.service, 'Has Refund-Guard', 118, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
178
+ [MODULES.service, 'Refund-Guard Percent', 119, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
179
+ [MODULES.service, 'Has Sale Item', 120, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
180
+ [MODULES.service, 'Sale Item Price', 121, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
181
+ [MODULES.service, 'Sale Item Inventory', 122, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
182
+ [MODULES.service, 'Has Machine', 123, [], ValueType.TYPE_BOOL],
183
+ [MODULES.service, 'Machine', 124, [], ValueType.TYPE_ADDRESS],
184
+ [MODULES.service, 'Paused', 125, [], ValueType.TYPE_BOOL],
185
+ [MODULES.service, 'Published', 126, [], ValueType.TYPE_BOOL],
186
+ [MODULES.service, 'Has Required Info', 127, [], ValueType.TYPE_BOOL],
187
+ [MODULES.service, 'Required Info of Service-Pubkey', 128, [], ValueType.TYPE_VEC_U8],
188
+ [MODULES.service, 'Required Info', 129, [], ValueType.TYPE_VEC_VEC_U8],
182
189
 
183
- [MODULES.reward, 'permission', 151, [], ValueType.TYPE_ADDRESS],
184
- [MODULES.reward, 'rewards_count_remain', 152, [], ValueType.TYPE_U64],
185
- [MODULES.reward, 'rewards_count_supplied', 153, [], ValueType.TYPE_U64],
186
- [MODULES.reward, 'guard_count', 154, [], ValueType.TYPE_U64],
187
- [MODULES.reward, 'has_guard', 155, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
188
- [MODULES.reward, 'guard_portions', 156, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
189
- [MODULES.reward, 'time_expire', 157, [], ValueType.TYPE_U64],
190
- [MODULES.reward, 'has_claimed', 158, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
191
- [MODULES.reward, 'claimed', 159, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
192
- [MODULES.reward, 'has_claimed_count', 160, [], ValueType.TYPE_U64],
193
- [MODULES.reward, 'is_sponsor', 161, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
194
- [MODULES.reward, 'sponsor', 162, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
195
- [MODULES.reward, 'sponsor_count', 163, [], ValueType.TYPE_U64],
196
- [MODULES.reward, 'bAllowRepeatClaim', 164, [], ValueType.TYPE_BOOL],
197
- [MODULES.reward, 'claimed_portions_count', 165, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
190
+ [MODULES.reward, 'Permission', 151, [], ValueType.TYPE_ADDRESS],
191
+ [MODULES.reward, 'Reward Count Left', 152, [], ValueType.TYPE_U64],
192
+ [MODULES.reward, 'Reward Count Supplied', 153, [], ValueType.TYPE_U64],
193
+ [MODULES.reward, 'Guard Count', 154, [], ValueType.TYPE_U64],
194
+ [MODULES.reward, 'Has Guard', 155, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
195
+ [MODULES.reward, 'Guard Portion', 156, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
196
+ [MODULES.reward, 'Deadline', 157, [], ValueType.TYPE_U64],
197
+ [MODULES.reward, 'Has Claimed by Address', 158, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
198
+ [MODULES.reward, 'Claimed by Address', 159, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
199
+ [MODULES.reward, 'Address Count Claimed', 160, [], ValueType.TYPE_U64],
200
+ [MODULES.reward, 'Is Sponsor', 161, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
201
+ [MODULES.reward, 'Portion by Sponsor', 162, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
202
+ [MODULES.reward, 'Sponsor Count', 163, [], ValueType.TYPE_U64],
203
+ [MODULES.reward, 'Allow Repeat Claim', 164, [], ValueType.TYPE_BOOL],
204
+ [MODULES.reward, 'Claimed Portion by Address', 165, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
198
205
 
199
- [MODULES.vote, 'permission', 171, [], ValueType.TYPE_ADDRESS],
200
- [MODULES.vote, 'bOptions_locked_for_voting', 172, [], ValueType.TYPE_BOOL],
201
- [MODULES.vote, 'bdeadline_locked', 173, [], ValueType.TYPE_BOOL],
202
- [MODULES.vote, 'bLockedGuard', 174, [], ValueType.TYPE_BOOL],
203
- [MODULES.vote, 'max_choice_count', 175, [], ValueType.TYPE_U8],
204
- [MODULES.vote, 'deadline', 176, [], ValueType.TYPE_U64],
205
- [MODULES.vote, 'has_reference', 177, [], ValueType.TYPE_BOOL],
206
- [MODULES.vote, 'reference', 178, [], ValueType.TYPE_ADDRESS],
207
- [MODULES.vote, 'has_guard', 179, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
208
- [MODULES.vote, 'guard', 180, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
209
- [MODULES.vote, 'voted', 181, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
210
- [MODULES.vote, 'voted_weight', 182, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
211
- [MODULES.vote, 'has_agree', 183, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
212
- [MODULES.vote, 'agree_has_object', 184, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
213
- [MODULES.vote, 'agree_object', 185, [ValueType.TYPE_VEC_U8], ValueType.TYPE_ADDRESS],
214
- [MODULES.vote, 'agree_count', 186, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
215
- [MODULES.vote, 'agree_votes', 187, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
216
- [MODULES.vote, 'voted_count', 188, [], ValueType.TYPE_U64],
217
- [MODULES.vote, 'top1_name_by_count', 189, [], ValueType.TYPE_VEC_U8],
218
- [MODULES.vote, 'top1_count', 190, [], ValueType.TYPE_U64],
219
- [MODULES.vote, 'top1_name_by_votes', 191, [], ValueType.TYPE_VEC_U8],
220
- [MODULES.vote, 'top1_votes', 192, [], ValueType.TYPE_U64],
221
-
222
- [MODULES.wowok, 'initor', 210, [], ValueType.TYPE_ADDRESS],
223
- [MODULES.wowok, 'everyone_guard', 211, [], ValueType.TYPE_ADDRESS],
224
- [MODULES.wowok, 'entities', 212, [], ValueType.TYPE_ADDRESS],
225
- [MODULES.wowok, 'grantor_count', 213, [], ValueType.TYPE_U64],
226
- [MODULES.wowok, 'has_grantor', 214, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
227
- [MODULES.wowok, 'grantor_name', 215, [ValueType.TYPE_ADDRESS], ValueType.TYPE_VEC_U8],
228
- [MODULES.wowok, 'grantor_register_time', 216, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
229
- [MODULES.wowok, 'grantor_expired_time', 217, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
230
- [MODULES.wowok, 'grantor_grantee', 218, [ValueType.TYPE_ADDRESS], ValueType.TYPE_ADDRESS],
231
-
232
- [MODULES.entity, 'has_entity', 230, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
233
- [MODULES.entity, 'entity_like', 231, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
234
- [MODULES.entity, 'entity_dislike', 232, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
235
- [MODULES.entity, 'entity_infomation', 233, [ValueType.TYPE_ADDRESS], ValueType.TYPE_VEC_U8],
206
+ [MODULES.vote, 'Permission', 171, [], ValueType.TYPE_ADDRESS],
207
+ [MODULES.vote, 'Options Locked', 172, [], ValueType.TYPE_BOOL],
208
+ [MODULES.vote, 'Deadline Locked', 173, [], ValueType.TYPE_BOOL],
209
+ [MODULES.vote, 'Vote-Guard Locked', 174, [], ValueType.TYPE_BOOL],
210
+ [MODULES.vote, 'Max Choice Count', 175, [], ValueType.TYPE_U8],
211
+ [MODULES.vote, 'Deadline', 176, [], ValueType.TYPE_U64],
212
+ [MODULES.vote, 'Has Reference', 177, [], ValueType.TYPE_BOOL],
213
+ [MODULES.vote, 'Reference', 178, [], ValueType.TYPE_ADDRESS],
214
+ [MODULES.vote, 'Has Vote-Guard', 179, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
215
+ [MODULES.vote, 'Vote-Guard', 180, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
216
+ [MODULES.vote, 'Has Voted by Address', 181, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
217
+ [MODULES.vote, 'Voted Weight by Address', 182, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
218
+ [MODULES.vote, 'Has Option', 183, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
219
+ [MODULES.vote, 'Has Object of Option', 184, [ValueType.TYPE_VEC_U8], ValueType.TYPE_BOOL],
220
+ [MODULES.vote, 'Option Object', 185, [ValueType.TYPE_VEC_U8], ValueType.TYPE_ADDRESS],
221
+ [MODULES.vote, 'Option Count', 186, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
222
+ [MODULES.vote, 'Option Votes', 187, [ValueType.TYPE_VEC_U8], ValueType.TYPE_U64],
223
+ [MODULES.vote, 'Address Count Voted', 188, [], ValueType.TYPE_U64],
224
+ [MODULES.vote, 'Top1 Option by Addresses', 189, [], ValueType.TYPE_VEC_U8],
225
+ [MODULES.vote, 'Top1 Count by Addresses', 190, [], ValueType.TYPE_U64],
226
+ [MODULES.vote, 'Top1 Option by Votes', 191, [], ValueType.TYPE_VEC_U8],
227
+ [MODULES.vote, 'Top1 Count by Votes', 192, [], ValueType.TYPE_U64],
228
+
229
+ [MODULES.wowok, 'Builder', 210, [], ValueType.TYPE_ADDRESS],
230
+ [MODULES.wowok, 'Everyone-Guard', 211, [], ValueType.TYPE_ADDRESS],
231
+ [MODULES.wowok, 'Object of Entities', 212, [], ValueType.TYPE_ADDRESS],
232
+ [MODULES.wowok, 'Grantor Count', 213, [], ValueType.TYPE_U64],
233
+ [MODULES.wowok, 'Has Grantor', 214, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
234
+ [MODULES.wowok, 'Grantor Name', 215, [ValueType.TYPE_ADDRESS], ValueType.TYPE_VEC_U8],
235
+ [MODULES.wowok, 'Grantor Registration Time', 216, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
236
+ [MODULES.wowok, 'Grantor Expired Time', 217, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
237
+ [MODULES.wowok, 'Grantee Object for Grantor', 218, [ValueType.TYPE_ADDRESS], ValueType.TYPE_ADDRESS],
238
+
239
+ [MODULES.entity, 'Has Entity', 230, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
240
+ [MODULES.entity, 'Likes', 231, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
241
+ [MODULES.entity, 'Dislikes', 232, [ValueType.TYPE_ADDRESS], ValueType.TYPE_U64],
242
+ [MODULES.entity, 'Entity Info', 233, [ValueType.TYPE_ADDRESS], ValueType.TYPE_VEC_U8],
243
+ [MODULES.entity, 'Has Resource by Entity', 234, [ValueType.TYPE_ADDRESS], ValueType.TYPE_BOOL],
244
+ [MODULES.entity, 'Entity Resource', 235, [ValueType.TYPE_ADDRESS], ValueType.TYPE_ADDRESS],
236
245
  ];
237
- static BoolCmd = Guard.QUERIES.filter(q => q[4] == ValueType.TYPE_BOOL);
246
+
247
+ static BoolCmd = Guard.QUERIES.filter(q => q[4] === ValueType.TYPE_BOOL);
238
248
  static IsBoolCmd = (cmd:number) : boolean => { return Guard.BoolCmd.includes((q:any) => {return q[2] == cmd}) }
239
- static GetCmd = (cmd:number) : any => {
249
+
250
+ static CmdFilter = (retType:ValueType) => { return Guard.QUERIES.filter((q)=> q[4] === retType)}
251
+ static GetCmd = (cmd:number | undefined) : any => {
240
252
  return Guard.QUERIES.find((q:any) => {return q[2] == cmd}) ;
241
253
  }
254
+ static GetCmdOption = (cmd:number) : Guard_Options | undefined => {
255
+ const r = Guard.GetCmd(cmd);
256
+ if (!r) return r;
257
+ return {from:'query', name:r[1], value:r[2], group:FirstLetterUppercase(r[0])}
258
+ }
259
+
260
+ static GetInputParams = (cmd:number) : ValueType[] => {
261
+ const r = Guard.GetCmd(cmd);
262
+ if (!r) return [];
263
+ return (r as any[])[3];
264
+ }
265
+ static GetModuleName = (cmd:number) : string => {
266
+ let r = Guard.GetCmd(cmd);
267
+ if (!r) return '';
268
+ return FirstLetterUppercase(r[0])
269
+ }
270
+ static NumberOptions = () : Guard_Options[] => {
271
+ const r: Guard_Options[] = [...Guard.CmdFilter(ValueType.TYPE_U8), ...Guard.CmdFilter(ValueType.TYPE_U64),
272
+ ...Guard.CmdFilter(ValueType.TYPE_U128), ...Guard.CmdFilter(ValueType.TYPE_U256)].map((v)=> { return {from:'query', name:v[1], value:v[2], group:FirstLetterUppercase(v[0])}});
273
+ r.push({from:'type', name:'Txn Time', value:ContextType.TYPE_CLOCK, group:'Txn Functions'});
274
+ return r;
275
+ }
276
+ static CommonOptions = (retType:ValueType) : Guard_Options[] => {
277
+ return Guard.CmdFilter(retType).map((v)=> {return {from:'query', name:v[1], value:v[2], group:FirstLetterUppercase(v[0])}});
278
+ }
279
+ static AllOptions = () : Guard_Options[] => {
280
+ return Guard.QUERIES.map((v)=>{return {from:'query', name:v[1], value:v[2], group:FirstLetterUppercase(v[0])}});
281
+ }
282
+ static StringOptions = () : Guard_Options[] => {
283
+ return [...Guard.CmdFilter(ValueType.TYPE_VEC_U8), ...Guard.CmdFilter(ValueType.TYPE_STRING)].map((v) => {
284
+ return {from:'query', name:v[1], value:v[2], group:FirstLetterUppercase(v[0])};
285
+ });
286
+ }
287
+ static BoolOptions = () : Guard_Options[] => {
288
+ const n1:Guard_Options[] = Guard.BoolCmd.map((v)=> { return {from:'query', name:v[1], value:v[2], group:FirstLetterUppercase(v[0])}});
289
+ const n2:Guard_Options[] = LogicsInfo.map((v) => { return {from:'type', name:v[1] as string, value:v[0] as number, group:'Compare or Logic'}});
290
+ return [...n1, ...n2]
291
+ }
292
+ static AddressOptions = () : Guard_Options[] => {
293
+ const n1:Guard_Options[] = Guard.QUERIES.filter(q => q[4] === ValueType.TYPE_ADDRESS).map((v)=> { return {from:'query', name:v[1], value:v[2], group:FirstLetterUppercase(v[0])}});
294
+ n1.push({from:'type', name:'Txn Signer', value:ContextType.TYPE_SIGNER, group:'Txn Functions'});
295
+ return [...n1]
296
+ }
297
+
298
+ static Options = (ret_type: ValueType | 'number' | 'any') : Guard_Options[] => {
299
+ if (ret_type === 'number') {
300
+ return Guard.NumberOptions();
301
+ } else if (ret_type === 'any') {
302
+ return Guard.AllOptions();
303
+ }
304
+
305
+ switch(ret_type as number) {
306
+ case ValueType.TYPE_BOOL:
307
+ return Guard.BoolOptions();
308
+ case ValueType.TYPE_STRING:
309
+ return Guard.StringOptions();
310
+ }
311
+ return Guard.CommonOptions(ret_type);
312
+ }
242
313
  }
243
314
 
244
315
  export class GuardConstantHelper {
@@ -302,7 +373,7 @@ export class GuardConstantHelper {
302
373
  case ValueType.TYPE_VEC_U256:
303
374
  let ser = SER_VALUE.find(s=>s.type==type);
304
375
  if (!ser) ERROR(Errors.Fail, 'add_constant: invalid type');
305
- bNeedSerialize ? constants.set(identifier, {type:type, value:Bcs.getInstance().ser(ser!.type, value)}) :
376
+ bNeedSerialize ? constants.set(identifier, {type:type, value:Bcs.getInstance().ser(ser!.type as number, value)}) :
306
377
  constants.set(identifier, {type:type, value:value})
307
378
  return
308
379
  case ValueType.TYPE_VEC_U8:
@@ -348,7 +419,7 @@ export class GuardMaker {
348
419
  this.data.push(Bcs.getInstance().ser(ValueType.TYPE_U8, type));
349
420
  let ser = SER_VALUE.find(s=>s.type==type);
350
421
  if (!ser) ERROR(Errors.Fail, 'serValueParam: invalid type');
351
- this.data.push(Bcs.getInstance().ser(ser!.type, param));
422
+ this.data.push(Bcs.getInstance().ser(ser!.type as number, param));
352
423
  this.type_validator.push(type);
353
424
  }
354
425
 
@@ -414,7 +485,7 @@ export class GuardMaker {
414
485
  this.data.push(Bcs.getInstance().ser(ValueType.TYPE_U8, param));
415
486
  break;
416
487
  default:
417
- ERROR(Errors.InvalidParam, 'add_param type');
488
+ ERROR(Errors.InvalidParam, 'add_param type' + type);
418
489
  };
419
490
  return this;
420
491
  }
@@ -497,8 +568,10 @@ export class GuardMaker {
497
568
  if (this.type_validator[this.type_validator.length -1] != ValueType.TYPE_BOOL) { ERROR(Errors.Fail, 'type_validator check') }
498
569
  if (this.type_validator[this.type_validator.length -2] != ValueType.TYPE_BOOL) { ERROR(Errors.Fail, 'type_validator check') }
499
570
  break;
571
+ case OperatorType.TYPE_LOGIC_ALWAYS_TRUE:
572
+ break;
500
573
  default:
501
- ERROR(Errors.InvalidParam, 'type')
574
+ ERROR(Errors.InvalidParam, 'add_logic type invalid' + type)
502
575
  }
503
576
  this.data.push(Bcs.getInstance().ser(ValueType.TYPE_U8, type)); // TYPE
504
577
  this.type_validator.splice(this.type_validator.length - splice_len); // delete type stack