wowok 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exception.d.ts +2 -1
- package/dist/exception.d.ts.map +1 -1
- package/dist/exception.js +1 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +26 -25
- package/dist/machine.js +7 -6
- package/dist/passport.d.ts.map +1 -1
- package/dist/passport.js +30 -28
- package/dist/permission.js +2 -1
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +3 -12
- package/dist/protocol.d.ts +5 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +9 -3
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +5 -15
- package/dist/service.js +25 -25
- package/dist/utils.d.ts +9 -21
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +114 -53
- package/dist/vote.js +8 -7
- package/package.json +1 -1
- package/src/exception.ts +1 -0
- package/src/guard.ts +26 -25
- package/src/machine.ts +7 -7
- package/src/passport.ts +30 -27
- package/src/permission.ts +2 -2
- package/src/progress.ts +4 -12
- package/src/protocol.ts +13 -6
- package/src/repository.ts +5 -14
- package/src/service.ts +25 -25
- package/src/utils.ts +116 -57
- package/src/vote.ts +8 -8
package/dist/repository.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BCS } from '@mysten/bcs';
|
|
2
|
-
import { Protocol } from './protocol';
|
|
2
|
+
import { Protocol, ValueType } from './protocol';
|
|
3
3
|
import { Permission } from './permission';
|
|
4
4
|
import { Bcs, array_unique, IsValidDesription, IsValidAddress, IsValidArray, OptionNone, } from './utils';
|
|
5
5
|
import { ERROR, Errors } from './exception';
|
|
@@ -62,16 +62,6 @@ export class Repository {
|
|
|
62
62
|
arguments: [Protocol.TXB_OBJECT(txb, this.object)],
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
/* move to: Entity.mark
|
|
66
|
-
mark(like:'like' | 'unlike', resource:Resource) {
|
|
67
|
-
if (!Protocol.IsValidObjects([this.object])) return false;
|
|
68
|
-
let txb = this.protocol.CurrentSession();
|
|
69
|
-
txb.moveCall({
|
|
70
|
-
target:this.protocol.RepositoryFn(like) as FnCallType,
|
|
71
|
-
arguments: [Protocol.TXB_OBJECT(txb, resource.get_object()), Protocol.TXB_OBJECT(txb, this.object)],
|
|
72
|
-
})
|
|
73
|
-
}
|
|
74
|
-
*/
|
|
75
65
|
add_data(data) {
|
|
76
66
|
if (!Repository.IsValidName(data.key)) {
|
|
77
67
|
ERROR(Errors.IsValidName);
|
|
@@ -212,7 +202,7 @@ export class Repository {
|
|
|
212
202
|
}
|
|
213
203
|
let txb = this.protocol.CurrentSession();
|
|
214
204
|
policies.forEach((policy) => {
|
|
215
|
-
let permission_index = policy?.permission ? txb.pure(Bcs.getInstance().
|
|
205
|
+
let permission_index = policy?.permission ? txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_U64, policy.permission)) : OptionNone(txb);
|
|
216
206
|
if (passport) {
|
|
217
207
|
txb.moveCall({
|
|
218
208
|
target: this.protocol.RepositoryFn('policy_add_with_passport'),
|
|
@@ -254,7 +244,7 @@ export class Repository {
|
|
|
254
244
|
txb.moveCall({
|
|
255
245
|
target: this.protocol.RepositoryFn('policy_remove_with_passport'),
|
|
256
246
|
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object),
|
|
257
|
-
txb.pure(Bcs.getInstance().
|
|
247
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(policy_keys))),
|
|
258
248
|
Protocol.TXB_OBJECT(txb, this.permission)]
|
|
259
249
|
});
|
|
260
250
|
}
|
|
@@ -270,7 +260,7 @@ export class Repository {
|
|
|
270
260
|
txb.moveCall({
|
|
271
261
|
target: this.protocol.RepositoryFn('policy_remove'),
|
|
272
262
|
arguments: [Protocol.TXB_OBJECT(txb, this.object),
|
|
273
|
-
txb.pure(Bcs.getInstance().
|
|
263
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(policy_keys))),
|
|
274
264
|
Protocol.TXB_OBJECT(txb, this.permission)]
|
|
275
265
|
});
|
|
276
266
|
}
|
|
@@ -343,7 +333,7 @@ export class Repository {
|
|
|
343
333
|
if (!Permission.IsValidPermissionIndex(permission_index)) {
|
|
344
334
|
ERROR(Errors.IsValidPermissionIndex);
|
|
345
335
|
}
|
|
346
|
-
index = txb.pure(Bcs.getInstance().
|
|
336
|
+
index = txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_U64, permission_index));
|
|
347
337
|
}
|
|
348
338
|
if (passport) {
|
|
349
339
|
txb.moveCall({
|
package/dist/service.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BCS } from '@mysten/bcs';
|
|
2
2
|
import { IsValidArray, IsValidPercent, IsValidName_AllowEmpty, Bcs, array_unique, IsValidArgType, IsValidDesription, IsValidAddress, IsValidEndpoint, OptionNone, IsValidUint, IsValidInt, IsValidName, } from './utils';
|
|
3
|
-
import { Protocol } from './protocol';
|
|
3
|
+
import { Protocol, ValueType } from './protocol';
|
|
4
4
|
import { ERROR, Errors } from './exception';
|
|
5
5
|
export var Service_Discount_Type;
|
|
6
6
|
(function (Service_Discount_Type) {
|
|
@@ -50,7 +50,7 @@ export class Service {
|
|
|
50
50
|
}
|
|
51
51
|
let s = new Service(protocol, pay_token_type, permission);
|
|
52
52
|
let txb = protocol.CurrentSession();
|
|
53
|
-
let ep = endpoint ? txb.pure(Bcs.getInstance().
|
|
53
|
+
let ep = endpoint ? txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_STRING, endpoint)) : OptionNone(txb);
|
|
54
54
|
if (passport) {
|
|
55
55
|
s.object = txb.moveCall({
|
|
56
56
|
target: protocol.ServiceFn('new_with_passport'),
|
|
@@ -467,8 +467,8 @@ export class Service {
|
|
|
467
467
|
if (passport) {
|
|
468
468
|
txb.moveCall({
|
|
469
469
|
target: this.protocol.ServiceFn('sales_add_with_passport'),
|
|
470
|
-
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
471
|
-
txb.pure(Bcs.getInstance().
|
|
470
|
+
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, names)),
|
|
471
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, price)), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, stock)),
|
|
472
472
|
Protocol.TXB_OBJECT(txb, this.permission)],
|
|
473
473
|
typeArguments: [this.pay_token_type]
|
|
474
474
|
});
|
|
@@ -476,8 +476,8 @@ export class Service {
|
|
|
476
476
|
else {
|
|
477
477
|
txb.moveCall({
|
|
478
478
|
target: this.protocol.ServiceFn('sales_add'),
|
|
479
|
-
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
480
|
-
txb.pure(Bcs.getInstance().
|
|
479
|
+
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, names)),
|
|
480
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, price)), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, stock)),
|
|
481
481
|
Protocol.TXB_OBJECT(txb, this.permission)],
|
|
482
482
|
typeArguments: [this.pay_token_type]
|
|
483
483
|
});
|
|
@@ -502,7 +502,7 @@ export class Service {
|
|
|
502
502
|
else {
|
|
503
503
|
txb.moveCall({
|
|
504
504
|
target: this.protocol.ServiceFn('sales_remove_with_passport'),
|
|
505
|
-
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
505
|
+
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(sales))),
|
|
506
506
|
Protocol.TXB_OBJECT(txb, this.permission)],
|
|
507
507
|
typeArguments: [this.pay_token_type]
|
|
508
508
|
});
|
|
@@ -519,7 +519,7 @@ export class Service {
|
|
|
519
519
|
else {
|
|
520
520
|
txb.moveCall({
|
|
521
521
|
target: this.protocol.ServiceFn('sales_remove'),
|
|
522
|
-
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
522
|
+
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(sales))),
|
|
523
523
|
Protocol.TXB_OBJECT(txb, this.permission)],
|
|
524
524
|
typeArguments: [this.pay_token_type]
|
|
525
525
|
});
|
|
@@ -553,9 +553,9 @@ export class Service {
|
|
|
553
553
|
let txb = this.protocol.CurrentSession();
|
|
554
554
|
discount_dispatch.forEach((discount) => {
|
|
555
555
|
let price_greater = discount.discount?.price_greater ?
|
|
556
|
-
txb.pure(Bcs.getInstance().
|
|
556
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_U64, discount.discount.price_greater)) : OptionNone(txb);
|
|
557
557
|
let time_start = discount.discount?.time_start ?
|
|
558
|
-
txb.pure(Bcs.getInstance().
|
|
558
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_U64, discount.discount.time_start)) : OptionNone(txb);
|
|
559
559
|
if (passport) {
|
|
560
560
|
txb.moveCall({
|
|
561
561
|
target: this.protocol.ServiceFn('dicscount_create_with_passport'),
|
|
@@ -676,7 +676,7 @@ export class Service {
|
|
|
676
676
|
ERROR(Errors.IsValidEndpoint);
|
|
677
677
|
}
|
|
678
678
|
let txb = this.protocol.CurrentSession();
|
|
679
|
-
let ep = endpoint ? txb.pure(Bcs.getInstance().
|
|
679
|
+
let ep = endpoint ? txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_STRING, endpoint)) : OptionNone(txb);
|
|
680
680
|
if (passport) {
|
|
681
681
|
txb.moveCall({
|
|
682
682
|
target: this.protocol.ServiceFn('endpoint_set_with_passport'),
|
|
@@ -738,7 +738,7 @@ export class Service {
|
|
|
738
738
|
txb.moveCall({
|
|
739
739
|
target: this.protocol.ServiceFn('required_set_with_passport'),
|
|
740
740
|
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object),
|
|
741
|
-
txb.pure(Bcs.getInstance().
|
|
741
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_VEC_U8, array_unique(customer_required))),
|
|
742
742
|
txb.pure(pubkey, 'vector<u8>'), Protocol.TXB_OBJECT(txb, this.permission)],
|
|
743
743
|
typeArguments: [this.pay_token_type]
|
|
744
744
|
});
|
|
@@ -747,7 +747,7 @@ export class Service {
|
|
|
747
747
|
txb.moveCall({
|
|
748
748
|
target: this.protocol.ServiceFn('required_set'),
|
|
749
749
|
arguments: [Protocol.TXB_OBJECT(txb, this.object),
|
|
750
|
-
txb.pure(Bcs.getInstance().
|
|
750
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_VEC_U8, array_unique(customer_required))),
|
|
751
751
|
txb.pure(pubkey, 'vector<u8>'), Protocol.TXB_OBJECT(txb, this.permission)],
|
|
752
752
|
typeArguments: [this.pay_token_type]
|
|
753
753
|
});
|
|
@@ -867,7 +867,7 @@ export class Service {
|
|
|
867
867
|
arguments: [Protocol.TXB_OBJECT(txb, this.object), Protocol.TXB_OBJECT(txb, order),
|
|
868
868
|
txb.pure(customer_info_crypto.pubkey, 'vector<u8>'),
|
|
869
869
|
txb.pure(customer_info_crypto.customer_pubkey, 'vector<u8>'),
|
|
870
|
-
txb.pure(Bcs.getInstance().
|
|
870
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_VEC_U8, array_unique(customer_info_crypto.customer_info_crypt)))],
|
|
871
871
|
typeArguments: [this.pay_token_type]
|
|
872
872
|
});
|
|
873
873
|
}
|
|
@@ -901,8 +901,8 @@ export class Service {
|
|
|
901
901
|
if (discount) {
|
|
902
902
|
order = txb.moveCall({
|
|
903
903
|
target: this.protocol.ServiceFn('dicount_buy_with_passport'),
|
|
904
|
-
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
905
|
-
txb.pure(Bcs.getInstance().
|
|
904
|
+
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, name)),
|
|
905
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, price)), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, stock)),
|
|
906
906
|
Protocol.TXB_OBJECT(txb, coin), Protocol.TXB_OBJECT(txb, discount), txb.object(Protocol.CLOCK_OBJECT)],
|
|
907
907
|
typeArguments: [this.pay_token_type]
|
|
908
908
|
});
|
|
@@ -910,9 +910,9 @@ export class Service {
|
|
|
910
910
|
else {
|
|
911
911
|
order = txb.moveCall({
|
|
912
912
|
target: this.protocol.ServiceFn('buy_with_passport'),
|
|
913
|
-
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
914
|
-
txb.pure(Bcs.getInstance().
|
|
915
|
-
txb.pure(Bcs.getInstance().
|
|
913
|
+
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, name)),
|
|
914
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, price)),
|
|
915
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, stock)),
|
|
916
916
|
Protocol.TXB_OBJECT(txb, coin)],
|
|
917
917
|
typeArguments: [this.pay_token_type]
|
|
918
918
|
});
|
|
@@ -922,9 +922,9 @@ export class Service {
|
|
|
922
922
|
if (discount) {
|
|
923
923
|
order = txb.moveCall({
|
|
924
924
|
target: this.protocol.ServiceFn('disoucnt_buy'),
|
|
925
|
-
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
926
|
-
txb.pure(Bcs.getInstance().
|
|
927
|
-
txb.pure(Bcs.getInstance().
|
|
925
|
+
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, name)),
|
|
926
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, price)),
|
|
927
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, stock)),
|
|
928
928
|
Protocol.TXB_OBJECT(txb, coin),
|
|
929
929
|
Protocol.TXB_OBJECT(txb, discount), txb.object(Protocol.CLOCK_OBJECT)],
|
|
930
930
|
typeArguments: [this.pay_token_type]
|
|
@@ -933,9 +933,9 @@ export class Service {
|
|
|
933
933
|
else {
|
|
934
934
|
order = txb.moveCall({
|
|
935
935
|
target: this.protocol.ServiceFn('buy'),
|
|
936
|
-
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().
|
|
937
|
-
txb.pure(Bcs.getInstance().
|
|
938
|
-
txb.pure(Bcs.getInstance().
|
|
936
|
+
arguments: [Protocol.TXB_OBJECT(txb, this.object), txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, name)),
|
|
937
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, price)),
|
|
938
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_U64, stock)),
|
|
939
939
|
Protocol.TXB_OBJECT(txb, coin)],
|
|
940
940
|
typeArguments: [this.pay_token_type]
|
|
941
941
|
});
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { BCS
|
|
1
|
+
import { BCS } from '@mysten/bcs';
|
|
2
2
|
import { TransactionBlock, TransactionArgument } from '@mysten/sui.js/transactions';
|
|
3
|
+
import { ValueType } from './protocol';
|
|
3
4
|
export declare const OPTION_NONE = 0;
|
|
4
|
-
export declare const readOption: (arr: number[], de:
|
|
5
|
+
export declare const readOption: (arr: number[], de: ValueType) => {
|
|
6
|
+
bNone: boolean;
|
|
7
|
+
value: any;
|
|
8
|
+
};
|
|
9
|
+
export declare const readOptionString: (arr: number[]) => {
|
|
5
10
|
bNone: boolean;
|
|
6
11
|
value: any;
|
|
7
12
|
};
|
|
@@ -24,25 +29,8 @@ export declare class Bcs {
|
|
|
24
29
|
private static _instance;
|
|
25
30
|
private constructor();
|
|
26
31
|
static getInstance(): Bcs;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
ser_option_address(data: string): Uint8Array;
|
|
30
|
-
ser_vector_string(data: string[]): Uint8Array;
|
|
31
|
-
ser_vector_vector_u8(data: string[]): Uint8Array;
|
|
32
|
-
ser_vector_u64(data: number[]): Uint8Array;
|
|
33
|
-
ser_vector_u8(data: number[]): Uint8Array;
|
|
34
|
-
ser_vector_address(data: number[]): Uint8Array;
|
|
35
|
-
ser_vector_bool(data: number[]): Uint8Array;
|
|
36
|
-
ser_vector_u128(data: number[]): Uint8Array;
|
|
37
|
-
ser_address(data: string): Uint8Array;
|
|
38
|
-
ser_bool(data: boolean): Uint8Array;
|
|
39
|
-
ser_u8(data: number): Uint8Array;
|
|
40
|
-
ser_u64(data: number): Uint8Array;
|
|
41
|
-
ser_u128(data: number): Uint8Array;
|
|
42
|
-
ser_u256(data: number): Uint8Array;
|
|
43
|
-
ser_string(data: string): Uint8Array;
|
|
44
|
-
ser(type: TypeName | StructTypeDefinition, data: Uint8Array): Uint8Array;
|
|
45
|
-
de(type: TypeName | StructTypeDefinition, data: Uint8Array): any;
|
|
32
|
+
ser(type: ValueType, data: Uint8Array | any): Uint8Array;
|
|
33
|
+
de(type: ValueType, data: Uint8Array | any): any;
|
|
46
34
|
}
|
|
47
35
|
export declare function stringToUint8Array(str: string): Uint8Array;
|
|
48
36
|
export declare function numToUint8Array(num: number): Uint8Array;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BCS, getSuiMoveConfig } from '@mysten/bcs';
|
|
2
2
|
import { ERROR, Errors } from './exception';
|
|
3
3
|
import { isValidSuiAddress } from '@mysten/sui.js/utils';
|
|
4
|
+
import { ValueType } from './protocol';
|
|
4
5
|
export const OPTION_NONE = 0;
|
|
5
6
|
export const readOption = (arr, de) => {
|
|
6
7
|
let o = arr.splice(0, 1);
|
|
@@ -15,6 +16,22 @@ export const readOption = (arr, de) => {
|
|
|
15
16
|
return { bNone: true, value: OPTION_NONE };
|
|
16
17
|
}
|
|
17
18
|
};
|
|
19
|
+
export const readOptionString = (arr) => {
|
|
20
|
+
let o = arr.splice(0, 1);
|
|
21
|
+
if (o[0] == 1) { // true
|
|
22
|
+
let r = ulebDecode(Uint8Array.from(arr));
|
|
23
|
+
let value = Bcs.getInstance().de(ValueType.TYPE_STRING, Uint8Array.from(arr));
|
|
24
|
+
arr.splice(0, r.value + r.length);
|
|
25
|
+
return { bNone: false, value: value };
|
|
26
|
+
}
|
|
27
|
+
else if (o[0] == 0) {
|
|
28
|
+
return { bNone: true, value: OPTION_NONE };
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
ERROR(Errors.Fail, 'readOption: option invalid');
|
|
32
|
+
return { bNone: true, value: OPTION_NONE };
|
|
33
|
+
}
|
|
34
|
+
};
|
|
18
35
|
export const ulebDecode = (arr) => {
|
|
19
36
|
let total = 0;
|
|
20
37
|
let shift = 0;
|
|
@@ -113,62 +130,106 @@ export class Bcs {
|
|
|
113
130
|
;
|
|
114
131
|
return Bcs._instance;
|
|
115
132
|
}
|
|
116
|
-
ser_option_string(data) {
|
|
117
|
-
return this.bcs.ser('Option<string>', { 'some': data }).toBytes();
|
|
118
|
-
}
|
|
119
|
-
ser_option_u64(data) {
|
|
120
|
-
return this.bcs.ser('Option<u64>', { 'some': data }).toBytes();
|
|
121
|
-
}
|
|
122
|
-
ser_option_address(data) {
|
|
123
|
-
return this.bcs.ser('Option<address>', { 'some': data }).toBytes();
|
|
124
|
-
}
|
|
125
|
-
ser_vector_string(data) {
|
|
126
|
-
return this.bcs.ser('vector<string>', data).toBytes();
|
|
127
|
-
}
|
|
128
|
-
ser_vector_vector_u8(data) {
|
|
129
|
-
return this.bcs.ser('vector<vector<u8>>', data).toBytes();
|
|
130
|
-
}
|
|
131
|
-
ser_vector_u64(data) {
|
|
132
|
-
return this.bcs.ser('vector<u64>', data).toBytes();
|
|
133
|
-
}
|
|
134
|
-
ser_vector_u8(data) {
|
|
135
|
-
return this.bcs.ser('vector<u8>', data).toBytes();
|
|
136
|
-
}
|
|
137
|
-
ser_vector_address(data) {
|
|
138
|
-
return this.bcs.ser('vector<address>', data).toBytes();
|
|
139
|
-
}
|
|
140
|
-
ser_vector_bool(data) {
|
|
141
|
-
return this.bcs.ser('vector<bool>', data).toBytes();
|
|
142
|
-
}
|
|
143
|
-
ser_vector_u128(data) {
|
|
144
|
-
return this.bcs.ser('vector<u128>', data).toBytes();
|
|
145
|
-
}
|
|
146
|
-
ser_address(data) {
|
|
147
|
-
return this.bcs.ser(BCS.ADDRESS, data).toBytes();
|
|
148
|
-
}
|
|
149
|
-
ser_bool(data) {
|
|
150
|
-
return this.bcs.ser(BCS.BOOL, data).toBytes();
|
|
151
|
-
}
|
|
152
|
-
ser_u8(data) {
|
|
153
|
-
return this.bcs.ser(BCS.U8, data).toBytes();
|
|
154
|
-
}
|
|
155
|
-
ser_u64(data) {
|
|
156
|
-
return this.bcs.ser(BCS.U64, data).toBytes();
|
|
157
|
-
}
|
|
158
|
-
ser_u128(data) {
|
|
159
|
-
return this.bcs.ser(BCS.U128, data).toBytes();
|
|
160
|
-
}
|
|
161
|
-
ser_u256(data) {
|
|
162
|
-
return this.bcs.ser(BCS.U256, data).toBytes();
|
|
163
|
-
}
|
|
164
|
-
ser_string(data) {
|
|
165
|
-
return this.bcs.ser(BCS.STRING, data).toBytes();
|
|
166
|
-
}
|
|
167
133
|
ser(type, data) {
|
|
168
|
-
|
|
134
|
+
switch (type) {
|
|
135
|
+
case ValueType.TYPE_BOOL:
|
|
136
|
+
return this.bcs.ser(BCS.BOOL, data).toBytes();
|
|
137
|
+
case ValueType.TYPE_ADDRESS:
|
|
138
|
+
return this.bcs.ser(BCS.ADDRESS, data).toBytes();
|
|
139
|
+
case ValueType.TYPE_U64:
|
|
140
|
+
return this.bcs.ser(BCS.U64, data).toBytes();
|
|
141
|
+
case ValueType.TYPE_U8:
|
|
142
|
+
return this.bcs.ser(BCS.U8, data).toBytes();
|
|
143
|
+
case ValueType.TYPE_VEC_U8:
|
|
144
|
+
return this.bcs.ser('vector<u8>', data).toBytes();
|
|
145
|
+
case ValueType.TYPE_U128:
|
|
146
|
+
return this.bcs.ser(BCS.U128, data).toBytes();
|
|
147
|
+
case ValueType.TYPE_VEC_ADDRESS:
|
|
148
|
+
return this.bcs.ser('vector<address>', data).toBytes();
|
|
149
|
+
case ValueType.TYPE_VEC_BOOL:
|
|
150
|
+
return this.bcs.ser('vector<bool>', data).toBytes();
|
|
151
|
+
case ValueType.TYPE_VEC_VEC_U8:
|
|
152
|
+
return this.bcs.ser('vector<vector<u8>>', data).toBytes();
|
|
153
|
+
case ValueType.TYPE_VEC_U64:
|
|
154
|
+
return this.bcs.ser('vector<u64>', data).toBytes();
|
|
155
|
+
case ValueType.TYPE_VEC_U128:
|
|
156
|
+
return this.bcs.ser('vector<u128>', data).toBytes();
|
|
157
|
+
case ValueType.TYPE_OPTION_ADDRESS:
|
|
158
|
+
return this.bcs.ser('Option<address>', { 'some': data }).toBytes();
|
|
159
|
+
case ValueType.TYPE_OPTION_BOOL:
|
|
160
|
+
return this.bcs.ser('Option<bool>', { 'some': data }).toBytes();
|
|
161
|
+
case ValueType.TYPE_OPTION_U8:
|
|
162
|
+
return this.bcs.ser('Option<u8>', { 'some': data }).toBytes();
|
|
163
|
+
case ValueType.TYPE_OPTION_U64:
|
|
164
|
+
return this.bcs.ser('Option<u64>', { 'some': data }).toBytes();
|
|
165
|
+
case ValueType.TYPE_OPTION_U128:
|
|
166
|
+
return this.bcs.ser('Option<u128>', { 'some': data }).toBytes();
|
|
167
|
+
case ValueType.TYPE_OPTION_U256:
|
|
168
|
+
return this.bcs.ser('Option<u256>', { 'some': data }).toBytes();
|
|
169
|
+
case ValueType.TYPE_OPTION_STRING:
|
|
170
|
+
return this.bcs.ser('Option<string>', { 'some': data }).toBytes();
|
|
171
|
+
case ValueType.TYPE_VEC_U256:
|
|
172
|
+
return this.bcs.ser('vector<u256>', data).toBytes();
|
|
173
|
+
case ValueType.TYPE_U256:
|
|
174
|
+
return this.bcs.ser(BCS.U256, data).toBytes();
|
|
175
|
+
case ValueType.TYPE_STRING:
|
|
176
|
+
return this.bcs.ser(BCS.STRING, data).toBytes();
|
|
177
|
+
case ValueType.TYPE_VEC_STRING:
|
|
178
|
+
return this.bcs.ser('vector<string>', data).toBytes();
|
|
179
|
+
default:
|
|
180
|
+
ERROR(Errors.bcsTypeInvalid, 'ser');
|
|
181
|
+
}
|
|
182
|
+
return new Uint8Array();
|
|
169
183
|
}
|
|
170
184
|
de(type, data) {
|
|
171
|
-
|
|
185
|
+
switch (type) {
|
|
186
|
+
case ValueType.TYPE_BOOL:
|
|
187
|
+
return this.bcs.de(BCS.BOOL, data).toBytes();
|
|
188
|
+
case ValueType.TYPE_ADDRESS:
|
|
189
|
+
return this.bcs.de(BCS.ADDRESS, data).toBytes();
|
|
190
|
+
case ValueType.TYPE_U64:
|
|
191
|
+
return this.bcs.de(BCS.U64, data).toBytes();
|
|
192
|
+
case ValueType.TYPE_U8:
|
|
193
|
+
return this.bcs.de(BCS.U8, data).toBytes();
|
|
194
|
+
case ValueType.TYPE_VEC_U8:
|
|
195
|
+
return this.bcs.de('vector<u8>', data).toBytes();
|
|
196
|
+
case ValueType.TYPE_U128:
|
|
197
|
+
return this.bcs.de(BCS.U128, data).toBytes();
|
|
198
|
+
case ValueType.TYPE_VEC_ADDRESS:
|
|
199
|
+
return this.bcs.de('vector<address>', data).toBytes();
|
|
200
|
+
case ValueType.TYPE_VEC_BOOL:
|
|
201
|
+
return this.bcs.de('vector<bool>', data).toBytes();
|
|
202
|
+
case ValueType.TYPE_VEC_VEC_U8:
|
|
203
|
+
return this.bcs.de('vector<vector<u8>>', data).toBytes();
|
|
204
|
+
case ValueType.TYPE_VEC_U64:
|
|
205
|
+
return this.bcs.de('vector<u64>', data).toBytes();
|
|
206
|
+
case ValueType.TYPE_VEC_U128:
|
|
207
|
+
return this.bcs.de('vector<u128>', data).toBytes();
|
|
208
|
+
case ValueType.TYPE_OPTION_ADDRESS:
|
|
209
|
+
return this.bcs.de('Option<address>', data).toBytes();
|
|
210
|
+
case ValueType.TYPE_OPTION_BOOL:
|
|
211
|
+
return this.bcs.de('Option<bool>', data).toBytes();
|
|
212
|
+
case ValueType.TYPE_OPTION_U8:
|
|
213
|
+
return this.bcs.de('Option<u8>', data).toBytes();
|
|
214
|
+
case ValueType.TYPE_OPTION_U64:
|
|
215
|
+
return this.bcs.de('Option<u64>', data).toBytes();
|
|
216
|
+
case ValueType.TYPE_OPTION_U128:
|
|
217
|
+
return this.bcs.de('Option<u128>', data).toBytes();
|
|
218
|
+
case ValueType.TYPE_OPTION_U256:
|
|
219
|
+
return this.bcs.de('Option<u256>', data).toBytes();
|
|
220
|
+
case ValueType.TYPE_OPTION_STRING:
|
|
221
|
+
return this.bcs.de('Option<string>', data).toBytes();
|
|
222
|
+
case ValueType.TYPE_VEC_U256:
|
|
223
|
+
return this.bcs.de('vector<u256>', data).toBytes();
|
|
224
|
+
case ValueType.TYPE_STRING:
|
|
225
|
+
return this.bcs.de(BCS.STRING, data).toBytes();
|
|
226
|
+
case ValueType.TYPE_VEC_STRING:
|
|
227
|
+
return this.bcs.de('vector<string>', data).toBytes();
|
|
228
|
+
case ValueType.TYPE_U256:
|
|
229
|
+
return this.bcs.de(BCS.U256, data).toBytes();
|
|
230
|
+
default:
|
|
231
|
+
ERROR(Errors.bcsTypeInvalid, 'de');
|
|
232
|
+
}
|
|
172
233
|
}
|
|
173
234
|
}
|
|
174
235
|
export function stringToUint8Array(str) {
|
package/dist/vote.js
CHANGED
|
@@ -2,6 +2,7 @@ import { BCS } from '@mysten/bcs';
|
|
|
2
2
|
import { Protocol } from './protocol';
|
|
3
3
|
import { IsValidDesription, IsValidUint, IsValidAddress, OptionNone, Bcs, array_unique, IsValidArray, IsValidName } from './utils';
|
|
4
4
|
import { ERROR, Errors } from './exception';
|
|
5
|
+
import { ValueType } from './protocol';
|
|
5
6
|
export const MAX_AGREES_COUNT = 200;
|
|
6
7
|
export const MAX_CHOICE_COUNT = 200;
|
|
7
8
|
export class Vote {
|
|
@@ -40,7 +41,7 @@ export class Vote {
|
|
|
40
41
|
}
|
|
41
42
|
let v = new Vote(protocol, permission);
|
|
42
43
|
let txb = protocol.CurrentSession();
|
|
43
|
-
let reference = reference_address ? txb.pure(Bcs.getInstance().
|
|
44
|
+
let reference = reference_address ? txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_ADDRESS, reference_address)) : OptionNone(txb);
|
|
44
45
|
let choice_count = max_choice_count ? max_choice_count : 1;
|
|
45
46
|
if (passport) {
|
|
46
47
|
v.object = txb.moveCall({
|
|
@@ -95,7 +96,7 @@ export class Vote {
|
|
|
95
96
|
ERROR(Errors.IsValidAddress);
|
|
96
97
|
}
|
|
97
98
|
let txb = this.protocol.CurrentSession();
|
|
98
|
-
let reference = reference_address ? txb.pure(Bcs.getInstance().
|
|
99
|
+
let reference = reference_address ? txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_ADDRESS, reference_address)) : OptionNone(txb);
|
|
99
100
|
if (passport) {
|
|
100
101
|
txb.moveCall({
|
|
101
102
|
target: this.protocol.VoteFn('reference_set_with_passport'),
|
|
@@ -189,7 +190,7 @@ export class Vote {
|
|
|
189
190
|
let txb = this.protocol.CurrentSession();
|
|
190
191
|
options.forEach((option) => {
|
|
191
192
|
let reference = option?.reference_address ?
|
|
192
|
-
txb.pure(Bcs.getInstance().
|
|
193
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_OPTION_ADDRESS, option.reference_address)) :
|
|
193
194
|
OptionNone(txb);
|
|
194
195
|
if (passport) {
|
|
195
196
|
txb.moveCall({
|
|
@@ -226,7 +227,7 @@ export class Vote {
|
|
|
226
227
|
txb.moveCall({
|
|
227
228
|
target: this.protocol.VoteFn('agrees_remove_with_passport'),
|
|
228
229
|
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object),
|
|
229
|
-
txb.pure(Bcs.getInstance().
|
|
230
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(options))),
|
|
230
231
|
Protocol.TXB_OBJECT(txb, this.permission)]
|
|
231
232
|
});
|
|
232
233
|
}
|
|
@@ -242,7 +243,7 @@ export class Vote {
|
|
|
242
243
|
txb.moveCall({
|
|
243
244
|
target: this.protocol.VoteFn('agrees_remove'),
|
|
244
245
|
arguments: [Protocol.TXB_OBJECT(txb, this.object),
|
|
245
|
-
txb.pure(Bcs.getInstance().
|
|
246
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(options))),
|
|
246
247
|
Protocol.TXB_OBJECT(txb, this.permission)]
|
|
247
248
|
});
|
|
248
249
|
}
|
|
@@ -341,14 +342,14 @@ export class Vote {
|
|
|
341
342
|
txb.moveCall({
|
|
342
343
|
target: this.protocol.VoteFn('with_passport'),
|
|
343
344
|
arguments: [passport, Protocol.TXB_OBJECT(txb, this.object),
|
|
344
|
-
txb.pure(Bcs.getInstance().
|
|
345
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(options)))]
|
|
345
346
|
});
|
|
346
347
|
}
|
|
347
348
|
else {
|
|
348
349
|
txb.moveCall({
|
|
349
350
|
target: this.protocol.VoteFn('this.object'),
|
|
350
351
|
arguments: [Protocol.TXB_OBJECT(txb, this.object),
|
|
351
|
-
txb.pure(Bcs.getInstance().
|
|
352
|
+
txb.pure(Bcs.getInstance().ser(ValueType.TYPE_VEC_STRING, array_unique(options)))]
|
|
352
353
|
});
|
|
353
354
|
}
|
|
354
355
|
}
|
package/package.json
CHANGED