wowok 1.2.8 → 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.8",
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/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 {
@@ -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
package/src/passport.ts CHANGED
@@ -28,15 +28,15 @@ interface GuardInfo {
28
28
  }
29
29
 
30
30
  export interface DeGuardConstant {
31
- type: number;
32
- value: any;
33
- identifier?: number;
31
+ type: number; //
32
+ value: any; //
33
+ identifier?: number; // ID
34
34
  }
35
35
  export interface DeGuardData {
36
- type: number;
37
- value?: any;
38
- identifier?: number;
39
- cmd?: number;
36
+ type: number; //
37
+ value?: any; //
38
+ identifier?: number; // ID
39
+ cmd?: number; //
40
40
  child: DeGuardData[];
41
41
  ret_type?: number;
42
42
  }
@@ -94,7 +94,7 @@ export class GuardParser {
94
94
  case ValueType.TYPE_VEC_U256:
95
95
  let de = SER_VALUE.find(s=>s.type==v.type);
96
96
  if (!de) ERROR(Errors.Fail, 'GuardObject de error')
97
- value = Bcs.getInstance().de(de!.type, Uint8Array.from(v.value));
97
+ value = Bcs.getInstance().de(de!.type as number, Uint8Array.from(v.value));
98
98
  break;
99
99
 
100
100
  default:
package/src/protocol.ts CHANGED
@@ -3,7 +3,7 @@ import { SuiClient, SuiObjectResponse, SuiObjectDataOptions, SuiTransactionBlock
3
3
  import { Ed25519Keypair } from '@mysten/sui.js/keypairs/ed25519';
4
4
  import { BCS, getSuiMoveConfig, toHEX, fromHEX, BcsReader } from '@mysten/bcs';
5
5
  import { TransactionBlock, Inputs, TransactionResult, TransactionArgument } from '@mysten/sui.js/transactions';
6
- import { capitalize, IsValidArray } from './utils'
6
+ import { capitalize, IsValidAddress, IsValidArray, IsValidU128, IsValidU64, IsValidU8, IsValidUintLarge } from './utils'
7
7
  import { GuardConstant } from './guard';
8
8
  import { isValidSuiAddress, isValidSuiObjectId } from '@mysten/sui.js/utils'
9
9
 
@@ -76,6 +76,20 @@ export enum OperatorType {
76
76
  TYPE_LOGIC_OR = 21, // OR
77
77
  }
78
78
 
79
+ export const LogicsInfo = [
80
+ [OperatorType.TYPE_LOGIC_AS_U256_GREATER, 'PositiveNumber >'],
81
+ [OperatorType.TYPE_LOGIC_AS_U256_GREATER_EQUAL, 'PositiveNumber >='],
82
+ [OperatorType.TYPE_LOGIC_AS_U256_LESSER, 'PositiveNumber <'],
83
+ [OperatorType.TYPE_LOGIC_AS_U256_LESSER_EQUAL, 'PositiveNumber <='],
84
+ [OperatorType.TYPE_LOGIC_AS_U256_EQUAL, 'PositiveNumber ='],
85
+ [OperatorType.TYPE_LOGIC_EQUAL, 'Strict ='],
86
+ [OperatorType.TYPE_LOGIC_HAS_SUBSTRING, 'Sub String'],
87
+ [OperatorType.TYPE_LOGIC_ALWAYS_TRUE, 'Always True'],
88
+ [OperatorType.TYPE_LOGIC_NOT, 'Not'],
89
+ [OperatorType.TYPE_LOGIC_AND, 'And'],
90
+ [OperatorType.TYPE_LOGIC_OR, 'Or'],
91
+ ];
92
+
79
93
  export enum ValueType {
80
94
  TYPE_BOOL = 100,
81
95
  TYPE_ADDRESS = 101,
@@ -101,6 +115,7 @@ export enum ValueType {
101
115
  TYPE_VEC_STRING = 121,
102
116
  TYPE_U256 = 122,
103
117
  }
118
+
104
119
  export enum RepositoryValueType {
105
120
  Address = 200,
106
121
  Address_Vec = 201,
@@ -119,50 +134,34 @@ export const RepositoryValueTypeInfo = [
119
134
  {type: RepositoryValueType.PositiveNumber_Vec, name:'Positive number or Zero vector', description:'Vector of positive number or 0'},
120
135
  ]
121
136
 
122
- export const ValueTypeInfo = [
123
- {type:ValueType.TYPE_BOOL, name:'bool'},
124
- {type:ValueType.TYPE_ADDRESS, name:'address'},
125
- {type:ValueType.TYPE_U64, name:'u64'},
126
- {type:ValueType.TYPE_U8, name:'u8'},
127
- {type:ValueType.TYPE_VEC_U8, name:'vec-u8'},
128
- {type:ValueType.TYPE_U128, name:'u128'},
129
- {type:ValueType.TYPE_VEC_ADDRESS, name:'vec-address'},
130
- {type:ValueType.TYPE_VEC_BOOL, name:'vec-bool'},
131
- {type:ValueType.TYPE_VEC_VEC_U8, name:'vec-vec-u8'},
132
- {type:ValueType.TYPE_VEC_U64, name:'vec-u64'},
133
- {type:ValueType.TYPE_VEC_U128, name:'vec-u128'},
134
- {type:ValueType.TYPE_OPTION_ADDRESS, name:'opt-address'},
135
- {type:ValueType.TYPE_OPTION_BOOL, name:'opt-bool'},
136
- {type:ValueType.TYPE_OPTION_U8, name:'opt-u8'},
137
- {type:ValueType.TYPE_OPTION_U64, name:'opt-u64'},
138
- {type:ValueType.TYPE_OPTION_U128, name:'opt-u128'},
139
- {type:ValueType.TYPE_OPTION_U256, name:'opt-u256'},
140
- {type:ValueType.TYPE_OPTION_STRING, name:'opt-string'},
141
- {type:ValueType.TYPE_OPTION_VEC_U8, name:'opt-vec-u8'},
142
- {type:ValueType.TYPE_VEC_U256, name:'vec-u256'},
143
- {type:ValueType.TYPE_STRING, name:'string'},
144
- {type:ValueType.TYPE_VEC_STRING, name:'vec-string'},
145
- {type:ValueType.TYPE_U256, name:'u256'},
146
- ]
147
-
148
137
  export const OperatorTypeArray = (Object.values(OperatorType) as []).filter((v)=>typeof(v) === 'number') as number[];
149
138
  export const ValueTypeArray = (Object.values(ValueType) as []).filter((v)=>typeof(v) === 'number') as number[];
150
- export const IsValidOperatorType = (type:number) => { return OperatorTypeArray.includes(type)}
151
- export const IsValidValueType = (type:number) => { return ValueTypeArray.includes(type)}
139
+ export const IsValidOperatorType = (type:number) : boolean => { return OperatorTypeArray.includes(type)}
140
+ export const IsValidValueType = (type:number) : boolean => { return ValueTypeArray.includes(type)}
152
141
 
142
+ export enum ContextType {
143
+ TYPE_SIGNER = 60,
144
+ TYPE_CLOCK = 61,
145
+ TYPE_WITNESS_ID = 62,
146
+ TYPE_CONSTANT = 80,
147
+ }
153
148
  interface ValueTypeString {
154
- type: ValueType;
149
+ type: ValueType | ContextType;
155
150
  name: string;
156
151
  description: string;
152
+ validator?: (value:any) => boolean;
157
153
  }
158
154
 
159
155
  export const SER_VALUE: ValueTypeString[] = [
160
- {type: ValueType.TYPE_BOOL, name: 'bool', description:'boolean. eg:true or false'},
161
- {type: ValueType.TYPE_ADDRESS, name: 'address', description:'address or object-id. eg:0x6789af'},
162
- {type: ValueType.TYPE_U64, name: 'number', description:'unsigned-64 number. eg:23870233'},
163
- {type: ValueType.TYPE_U8, name: 'number', description:'unsigned-8 number. eg:255'},
164
- {type: ValueType.TYPE_VEC_U8, name: '[number]', description:'unsigned-8 number array. eg:"[1,2,3]"'},
165
- {type: ValueType.TYPE_U128, name: 'number', description:'unsigned-8 number. eg:12348900999'},
156
+ {type: ValueType.TYPE_BOOL, name: 'bool', description:'boolean. eg:true or false', validator:(value:any) => { return (value === true || value === false)}},
157
+ {type: ValueType.TYPE_ADDRESS, name: 'address', description:'address or object-id. eg:0x6789af', validator:IsValidAddress},
158
+ {type: ContextType.TYPE_WITNESS_ID, name: 'future address', description:"eg: machine's future progress, service's future order", validator:IsValidAddress},
159
+ {type: ContextType.TYPE_SIGNER, name: 'txn signer', description:"signer address of the transaction, ", validator:IsValidAddress},
160
+ {type: ContextType.TYPE_CLOCK, name: 'txn time', description:"unsigned-64 number for the transaction time", validator:IsValidU64},
161
+ {type: ValueType.TYPE_U64, name: 'number', description:'unsigned-64 number. eg:23870233', validator:IsValidU64},
162
+ {type: ValueType.TYPE_U8, name: 'number', description:'unsigned-8 number. eg:255', validator:IsValidU8},
163
+ {type: ValueType.TYPE_VEC_U8, name: 'string', description:'string or unsigned-8 number array. eg:"[1,2,3]"'},
164
+ {type: ValueType.TYPE_U128, name: 'number', description:'unsigned-8 number. eg:12348900999', validator:IsValidU128},
166
165
  {type: ValueType.TYPE_VEC_ADDRESS, name: '[address]', description:'address array. eg:[0x2277f2, 0x3344af]'},
167
166
  {type: ValueType.TYPE_VEC_BOOL, name: '[bool]', description:'boolean array. eg:[true, false, true]'},
168
167
  {type: ValueType.TYPE_VEC_VEC_U8, name: '[[number]]', description:'array of unsigned-8 number array. eg:["i", "like", "wowok"]'},
@@ -176,18 +175,11 @@ export const SER_VALUE: ValueTypeString[] = [
176
175
  {type: ValueType.TYPE_OPTION_U256, name: 'option', description:'option of u256. eg:none or u256 value'},
177
176
  {type: ValueType.TYPE_VEC_U256, name: '[number]', description:'unsigned-256 number array. eg:[123, 778888, 42312]'},
178
177
  {type: ValueType.TYPE_VEC_STRING, name: '[string]', description:'ascii string array. eg:["abc", "hi"]'},
179
- {type: ValueType.TYPE_STRING, name: 'string', description:'ascii string. eg:"wowok"'},
178
+ {type: ValueType.TYPE_STRING, name: 'string', description:'ascii string. eg:"wowok"', },
180
179
  {type: ValueType.TYPE_OPTION_STRING, name: 'option', description:'option of string. eg:none or string value'},
181
- {type: ValueType.TYPE_U256, name: 'number', description:'unsigned-256 number. eg:12345678901233'},
180
+ {type: ValueType.TYPE_U256, name: 'number', description:'unsigned-256 number. eg:12345678901233', validator:IsValidUintLarge},
182
181
  ]
183
182
 
184
- export enum ContextType {
185
- TYPE_SIGNER = 60,
186
- TYPE_CLOCK = 61,
187
- TYPE_WITNESS_ID = 62,
188
- TYPE_CONSTANT = 80,
189
- }
190
-
191
183
  export type ConstantType = ValueType | ContextType.TYPE_WITNESS_ID;
192
184
  export type Data_Type = ValueType | OperatorType | ContextType;
193
185
 
@@ -199,9 +191,9 @@ export enum ENTRYPOINT {
199
191
  }
200
192
 
201
193
  const TESTNET = {
202
- package: "0xdf85200f7a9dcac175724d10d1002c7481f718bb8f609f2ff27da47ce5d04870",
203
- wowok_object: '0xcbbc4a23b63ab77291e885998ef1d03ac13537bb6b8ffb108913f8196cd7f62b',
204
- entity_object: '0x362aa575fa8c1506776f13e8f5849fd932b26b080f7a6f238856f42ce6114e31',
194
+ package: "0x8ba9f90c9a0e5f2199a92fdc5ea255ac9df5471289cfe40a87ac90f25d93dd5b",
195
+ wowok_object: '0x9d33a57a09f3ff73ba51afe6ed2e671e7d78b771e34b0a1ba66e52264e34b3fd',
196
+ entity_object: '0xb759e1e5569f1f8d5ae30efb6efec0a639c5ef70a7c7abcc012919cf5dae33af',
205
197
  }
206
198
 
207
199
  const MAINNET = {
package/src/utils.ts CHANGED
@@ -355,7 +355,6 @@ export const deepClone = <T>(origin: T, target?: Record<string, any> | T ): T =>
355
355
  } else {
356
356
  tar[key] = origin[key]
357
357
  }
358
-
359
358
  }
360
359
  }
361
360
 
@@ -371,21 +370,36 @@ export const IsValidDesription = (description:string) : boolean => { return desc
371
370
  export const IsValidName = (name:string) : boolean => { if(!name) return false; return name.length <= MAX_NAME_LENGTH && name.length != 0 }
372
371
  export const IsValidName_AllowEmpty = (name:string) : boolean => { return name.length <= MAX_NAME_LENGTH }
373
372
  export const IsValidEndpoint = (endpoint:string) : boolean => { if (!endpoint) return false; return endpoint.length <= MAX_ENDPOINT_LENGTH }
374
- export const IsValidAddress = (addr:string) : boolean => {
373
+ export const IsValidAddress = (addr:string | undefined) : boolean => {
375
374
  if (!addr || !isValidSuiAddress(addr)) {
376
375
  return false;
377
376
  }
378
377
  return true
379
378
  }
380
- export const IsValidUintLarge = (value:string | number) : boolean => {
379
+ export const IsValidBigint = (value:string | number | undefined, max:bigint=MAX_U256) : boolean => {
380
+ if (value === '' || value === undefined) return false;
381
381
  try {
382
382
  const v = BigInt(value);
383
- if (v <= MAX_U256) {
383
+ if (v <= max) {
384
384
  return true
385
385
  }
386
386
  } catch (e) {
387
387
  }; return false
388
388
  }
389
+
390
+ export const IsValidUintLarge = (value:string | number | undefined) : boolean => {
391
+ return IsValidBigint(value)
392
+ }
393
+ export const IsValidU8 = (value:string | number | undefined) : boolean => {
394
+ return IsValidBigint(value, MAX_U8)
395
+ }
396
+ export const IsValidU64 = (value:string | number | undefined) : boolean => {
397
+ return IsValidBigint(value, MAX_U64)
398
+ }
399
+ export const IsValidU128 = (value:string | number | undefined) : boolean => {
400
+ return IsValidBigint(value, MAX_U128)
401
+ }
402
+
389
403
  export const IsValidTokenType = (argType: string) : boolean => {
390
404
  if (!argType || argType.length === 0) {
391
405
  return false;
@@ -551,4 +565,9 @@ export const query_object = (param:query_object_param) => {
551
565
  if (param?.onDynamicErr) param.onDynamicErr(param.id, err);
552
566
  })
553
567
  }
568
+ }
569
+
570
+ export const FirstLetterUppercase = (str:string) => {
571
+ if (!str) return str;
572
+ return str.substring(0, 1).toUpperCase() + str.substring(1);
554
573
  }