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 +1 -1
- package/src/demand.ts +5 -5
- package/src/entity.ts +8 -0
- package/src/guard.ts +217 -144
- package/src/machine.ts +205 -53
- package/src/passport.ts +8 -8
- package/src/permission.ts +91 -119
- package/src/progress.ts +101 -43
- package/src/protocol.ts +46 -55
- package/src/repository.ts +107 -20
- package/src/resource.ts +19 -9
- package/src/reward.ts +9 -11
- package/src/service.ts +35 -33
- package/src/utils.ts +88 -43
- package/src/vote.ts +18 -21
- package/src/wowok.ts +2 -2
package/package.json
CHANGED
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,
|
|
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 (!
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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, '
|
|
95
|
-
[MODULES.permission, '
|
|
96
|
-
[MODULES.permission, '
|
|
97
|
-
[MODULES.permission, '
|
|
98
|
-
[MODULES.permission, '
|
|
99
|
-
[MODULES.permission, '
|
|
100
|
-
[MODULES.permission, '
|
|
101
|
-
[MODULES.permission, '
|
|
102
|
-
[MODULES.permission, '
|
|
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, '
|
|
105
|
-
[MODULES.repository, '
|
|
106
|
-
[MODULES.repository, '
|
|
107
|
-
[MODULES.repository, '
|
|
108
|
-
[MODULES.repository, '
|
|
109
|
-
[MODULES.repository, '
|
|
110
|
-
[MODULES.repository, '
|
|
111
|
-
[MODULES.repository, '
|
|
112
|
-
[MODULES.repository, '
|
|
113
|
-
[MODULES.repository, '
|
|
114
|
-
[MODULES.repository, '
|
|
115
|
-
[MODULES.repository, '
|
|
116
|
-
[MODULES.repository, '
|
|
117
|
-
|
|
118
|
-
[MODULES.machine, '
|
|
119
|
-
[MODULES.machine, '
|
|
120
|
-
[MODULES.machine, '
|
|
121
|
-
[MODULES.machine, '
|
|
122
|
-
[MODULES.machine, '
|
|
123
|
-
[MODULES.machine, '
|
|
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, '
|
|
126
|
-
[MODULES.progress, '
|
|
127
|
-
[MODULES.progress, '
|
|
128
|
-
[MODULES.progress, '
|
|
129
|
-
[MODULES.progress, '
|
|
130
|
-
[MODULES.progress, '
|
|
131
|
-
[MODULES.progress, '
|
|
132
|
-
[MODULES.progress, '
|
|
133
|
-
[MODULES.progress, '
|
|
134
|
-
[MODULES.progress, '
|
|
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, '
|
|
137
|
-
[MODULES.demand, '
|
|
138
|
-
[MODULES.demand, '
|
|
139
|
-
[MODULES.demand, '
|
|
140
|
-
[MODULES.demand, '
|
|
141
|
-
[MODULES.demand, '
|
|
142
|
-
[MODULES.demand, '
|
|
143
|
-
[MODULES.demand, '
|
|
144
|
-
[MODULES.demand, '
|
|
145
|
-
[MODULES.demand, '
|
|
146
|
-
[MODULES.demand, '
|
|
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, '
|
|
149
|
-
[MODULES.order, '
|
|
150
|
-
[MODULES.order, '
|
|
151
|
-
[MODULES.order, '
|
|
152
|
-
[MODULES.order, '
|
|
153
|
-
[MODULES.order, '
|
|
154
|
-
[MODULES.order, '
|
|
155
|
-
[MODULES.order, '
|
|
156
|
-
[MODULES.order, '
|
|
157
|
-
[MODULES.order, '
|
|
158
|
-
[MODULES.order, '
|
|
159
|
-
[MODULES.order, '
|
|
160
|
-
[MODULES.order, '
|
|
161
|
-
[MODULES.order, '
|
|
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, '
|
|
164
|
-
[MODULES.service, '
|
|
165
|
-
[MODULES.service, '
|
|
166
|
-
[MODULES.service, '
|
|
167
|
-
[MODULES.service, '
|
|
168
|
-
[MODULES.service, '
|
|
169
|
-
[MODULES.service, '
|
|
170
|
-
[MODULES.service, '
|
|
171
|
-
[MODULES.service, '
|
|
172
|
-
[MODULES.service, '
|
|
173
|
-
[MODULES.service, '
|
|
174
|
-
[MODULES.service, '
|
|
175
|
-
[MODULES.service, '
|
|
176
|
-
[MODULES.service, '
|
|
177
|
-
[MODULES.service, '
|
|
178
|
-
[MODULES.service, '
|
|
179
|
-
[MODULES.service, '
|
|
180
|
-
[MODULES.service, '
|
|
181
|
-
[MODULES.service, '
|
|
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, '
|
|
184
|
-
[MODULES.reward, '
|
|
185
|
-
[MODULES.reward, '
|
|
186
|
-
[MODULES.reward, '
|
|
187
|
-
[MODULES.reward, '
|
|
188
|
-
[MODULES.reward, '
|
|
189
|
-
[MODULES.reward, '
|
|
190
|
-
[MODULES.reward, '
|
|
191
|
-
[MODULES.reward, '
|
|
192
|
-
[MODULES.reward, '
|
|
193
|
-
[MODULES.reward, '
|
|
194
|
-
[MODULES.reward, '
|
|
195
|
-
[MODULES.reward, '
|
|
196
|
-
[MODULES.reward, '
|
|
197
|
-
[MODULES.reward, '
|
|
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, '
|
|
200
|
-
[MODULES.vote, '
|
|
201
|
-
[MODULES.vote, '
|
|
202
|
-
[MODULES.vote, '
|
|
203
|
-
[MODULES.vote, '
|
|
204
|
-
[MODULES.vote, '
|
|
205
|
-
[MODULES.vote, '
|
|
206
|
-
[MODULES.vote, '
|
|
207
|
-
[MODULES.vote, '
|
|
208
|
-
[MODULES.vote, '
|
|
209
|
-
[MODULES.vote, '
|
|
210
|
-
[MODULES.vote, '
|
|
211
|
-
[MODULES.vote, '
|
|
212
|
-
[MODULES.vote, '
|
|
213
|
-
[MODULES.vote, '
|
|
214
|
-
[MODULES.vote, '
|
|
215
|
-
[MODULES.vote, '
|
|
216
|
-
[MODULES.vote, '
|
|
217
|
-
[MODULES.vote, '
|
|
218
|
-
[MODULES.vote, '
|
|
219
|
-
[MODULES.vote, '
|
|
220
|
-
[MODULES.vote, '
|
|
221
|
-
|
|
222
|
-
[MODULES.wowok, '
|
|
223
|
-
[MODULES.wowok, '
|
|
224
|
-
[MODULES.wowok, '
|
|
225
|
-
[MODULES.wowok, '
|
|
226
|
-
[MODULES.wowok, '
|
|
227
|
-
[MODULES.wowok, '
|
|
228
|
-
[MODULES.wowok, '
|
|
229
|
-
[MODULES.wowok, '
|
|
230
|
-
[MODULES.wowok, '
|
|
231
|
-
|
|
232
|
-
[MODULES.entity, '
|
|
233
|
-
[MODULES.entity, '
|
|
234
|
-
[MODULES.entity, '
|
|
235
|
-
[MODULES.entity, '
|
|
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
|
-
|
|
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
|
-
|
|
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
|