wowok 1.0.7 → 1.0.8
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/README.md +1 -1
- package/dist/demand.js +4 -4
- package/dist/guard.js +365 -66
- package/dist/index.js +2 -2
- package/dist/machine.js +2 -2
- package/dist/passport.js +47 -29
- package/dist/progress.js +2 -2
- package/dist/protocol.js +51 -30
- package/dist/service.js +4 -4
- package/dist/utils.js +44 -1
- package/package.json +3 -3
- package/src/demand.ts +4 -4
- package/src/guard.ts +361 -70
- package/src/index.ts +1 -1
- package/src/machine.ts +1 -2
- package/src/passport.ts +60 -37
- package/src/progress.ts +2 -2
- package/src/protocol.ts +52 -30
- package/src/utils.ts +48 -2
package/dist/passport.js
CHANGED
|
@@ -1,23 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.graphql_query_objects = exports.rpc_query_cmd_fn = exports.destroy = exports.
|
|
3
|
+
exports.graphql_query_objects = exports.rpc_query_cmd_fn = exports.destroy = exports.verify = exports.guard_queries = exports.guard_futures = exports.MAX_GUARD_COUNT = void 0;
|
|
4
4
|
const transactions_1 = require("@mysten/sui.js/transactions");
|
|
5
5
|
const protocol_1 = require("./protocol");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
7
|
const guard_1 = require("./guard");
|
|
8
|
-
const bcs_1 = require("@mysten/bcs");
|
|
9
8
|
exports.MAX_GUARD_COUNT = 8;
|
|
9
|
+
// from guards: get future objects to fill by singer
|
|
10
|
+
const guard_futures = async (guards) => {
|
|
11
|
+
let futrue_objects = guards.map((value) => {
|
|
12
|
+
return { objectid: value, callback: guard_1.rpc_sense_objects_fn, parser: guard_1.parse_futures, data: [] };
|
|
13
|
+
});
|
|
14
|
+
await protocol_1.PROTOCOL.Query(futrue_objects); // future objects
|
|
15
|
+
let future_objects_result = [];
|
|
16
|
+
futrue_objects.forEach((value) => {
|
|
17
|
+
future_objects_result = future_objects_result.concat(value.data);
|
|
18
|
+
});
|
|
19
|
+
future_objects_result = (0, utils_1.array_unique)(future_objects_result); // objects in guards
|
|
20
|
+
return future_objects_result;
|
|
21
|
+
};
|
|
22
|
+
exports.guard_futures = guard_futures;
|
|
23
|
+
// from guards: get objects to 'guard_query' on chain , with future variables had filled.
|
|
10
24
|
// passport verify for some guards, MUST be in ONE pxb:
|
|
11
25
|
// 0. construct Guard_Query_Objects(passport_quries) from queries for guards of objects
|
|
12
26
|
// 1. create passport
|
|
13
|
-
// 2. add all guards
|
|
27
|
+
// 2. add all guards / guards future variables
|
|
14
28
|
// 3. verify passport
|
|
15
29
|
// 4. ops using passport(guard set on object)
|
|
16
30
|
// 5. ops using passport(guard set on object)
|
|
17
31
|
// 6. destroy passport
|
|
18
|
-
const
|
|
32
|
+
const guard_queries = async (guards, futures) => {
|
|
19
33
|
let sense_objects = guards.map((value) => {
|
|
20
|
-
|
|
34
|
+
let v = new Map();
|
|
35
|
+
futures?.forEach((f) => {
|
|
36
|
+
if (f.guardid == value) {
|
|
37
|
+
(0, guard_1.add_future_variable)(v, f.identifier, f.type, f.witness, f?.value, false);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return { objectid: value, callback: guard_1.rpc_sense_objects_fn, parser: guard_1.parse_sense_bsc, data: [], variables: futures ? v : undefined };
|
|
21
41
|
});
|
|
22
42
|
await protocol_1.PROTOCOL.Query(sense_objects); // objects need quering in guards
|
|
23
43
|
let sense_objects_result = [];
|
|
@@ -25,7 +45,6 @@ const passport_queries = async (guards) => {
|
|
|
25
45
|
sense_objects_result = sense_objects_result.concat(value.data);
|
|
26
46
|
});
|
|
27
47
|
sense_objects_result = (0, utils_1.array_unique)(sense_objects_result); // objects in guards
|
|
28
|
-
// console.log(sense_objects_result);
|
|
29
48
|
let queries = sense_objects_result.map((value) => {
|
|
30
49
|
return { objectid: value, callback: exports.rpc_query_cmd_fn, data: [] };
|
|
31
50
|
});
|
|
@@ -47,52 +66,51 @@ const passport_queries = async (guards) => {
|
|
|
47
66
|
});
|
|
48
67
|
return res;
|
|
49
68
|
};
|
|
50
|
-
exports.
|
|
69
|
+
exports.guard_queries = guard_queries;
|
|
51
70
|
// return passport object used
|
|
52
|
-
function verify(txb, guards,
|
|
53
|
-
if (!guards ||
|
|
71
|
+
function verify(txb, guards, guard_queries, future_values) {
|
|
72
|
+
if (!guards || guards.length > exports.MAX_GUARD_COUNT)
|
|
73
|
+
return false;
|
|
74
|
+
if (!(0, protocol_1.IsValidObjects)(guards))
|
|
54
75
|
return false;
|
|
55
|
-
}
|
|
56
76
|
var passport = txb.moveCall({
|
|
57
77
|
target: protocol_1.PROTOCOL.PassportFn('new'),
|
|
58
|
-
arguments: [
|
|
78
|
+
arguments: []
|
|
59
79
|
});
|
|
60
80
|
// add others guards, if any
|
|
61
|
-
|
|
81
|
+
guards.forEach((guard) => {
|
|
62
82
|
txb.moveCall({
|
|
63
83
|
target: protocol_1.PROTOCOL.PassportFn('guard_add'),
|
|
64
|
-
arguments: [passport, (0, protocol_1.TXB_OBJECT)(txb,
|
|
84
|
+
arguments: [passport, (0, protocol_1.TXB_OBJECT)(txb, guard)]
|
|
65
85
|
});
|
|
66
|
-
}
|
|
86
|
+
});
|
|
87
|
+
future_values?.forEach((v) => {
|
|
88
|
+
console.log(v.value);
|
|
89
|
+
txb.moveCall({
|
|
90
|
+
target: protocol_1.PROTOCOL.PassportFn('future_set'),
|
|
91
|
+
arguments: [passport, txb.pure(utils_1.BCS_CONVERT.ser_address(v.guardid)), txb.pure(utils_1.BCS_CONVERT.ser_u8(v.identifier)),
|
|
92
|
+
txb.pure([].slice.call(v.value))]
|
|
93
|
+
});
|
|
94
|
+
});
|
|
67
95
|
// rules: 'verify' & 'query' in turns;'verify' at final end.
|
|
68
|
-
for (let i = 0; i <
|
|
96
|
+
for (let i = 0; i < guard_queries.length; i++) {
|
|
69
97
|
let res = txb.moveCall({
|
|
70
98
|
target: protocol_1.PROTOCOL.PassportFn('passport_verify'),
|
|
71
99
|
arguments: [passport, txb.object(protocol_1.CLOCK_OBJECT),]
|
|
72
100
|
});
|
|
73
101
|
txb.moveCall({
|
|
74
|
-
target:
|
|
75
|
-
arguments: [txb.object(
|
|
76
|
-
typeArguments:
|
|
102
|
+
target: guard_queries[i].target,
|
|
103
|
+
arguments: [txb.object(guard_queries[i].object), passport, res],
|
|
104
|
+
typeArguments: guard_queries[i].types,
|
|
77
105
|
});
|
|
78
106
|
}
|
|
79
107
|
txb.moveCall({
|
|
80
108
|
target: protocol_1.PROTOCOL.PassportFn('passport_verify'),
|
|
81
|
-
arguments: [passport]
|
|
109
|
+
arguments: [passport, txb.object(protocol_1.CLOCK_OBJECT)]
|
|
82
110
|
});
|
|
83
111
|
return passport;
|
|
84
112
|
}
|
|
85
113
|
exports.verify = verify;
|
|
86
|
-
function add_context_address(txb, passport, type, value, witness) {
|
|
87
|
-
if (!(0, protocol_1.IsValidAddress)(value) || !(0, protocol_1.IsValidAddress)(witness))
|
|
88
|
-
return false;
|
|
89
|
-
txb.moveCall({
|
|
90
|
-
target: protocol_1.PROTOCOL.PassportFn('context_add_address'),
|
|
91
|
-
arguments: [passport, txb.pure(type, bcs_1.BCS.U8), txb.pure(value, bcs_1.BCS.ADDRESS), txb.pure(witness, bcs_1.BCS.ADDRESS)]
|
|
92
|
-
});
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
exports.add_context_address = add_context_address;
|
|
96
114
|
function destroy(txb, passport) {
|
|
97
115
|
txb.moveCall({
|
|
98
116
|
target: protocol_1.PROTOCOL.PassportFn('destroy'),
|
package/dist/progress.js
CHANGED
|
@@ -64,14 +64,14 @@ function progress_set_namedOperator(txb, machine, permission, progress, name, ad
|
|
|
64
64
|
if (passport) {
|
|
65
65
|
txb.moveCall({
|
|
66
66
|
target: protocol_1.PROTOCOL.ProgressFn('namedOperator_set_with_passport'),
|
|
67
|
-
arguments: [passport, (0, protocol_1.TXB_OBJECT)(txb, progress), txb.pure(name), txb.pure((0, utils_1.array_unique)(addresses), 'vector<address>'),
|
|
67
|
+
arguments: [passport, (0, protocol_1.TXB_OBJECT)(txb, progress), txb.pure(name, bcs_1.BCS.STRING), txb.pure((0, utils_1.array_unique)(addresses), 'vector<address>'),
|
|
68
68
|
(0, protocol_1.TXB_OBJECT)(txb, machine), (0, protocol_1.TXB_OBJECT)(txb, permission)],
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
72
|
txb.moveCall({
|
|
73
73
|
target: protocol_1.PROTOCOL.ProgressFn('namedOperator_set'),
|
|
74
|
-
arguments: [(0, protocol_1.TXB_OBJECT)(txb, progress), txb.pure(name), txb.pure((0, utils_1.array_unique)(addresses), 'vector<address>'),
|
|
74
|
+
arguments: [(0, protocol_1.TXB_OBJECT)(txb, progress), txb.pure(name, bcs_1.BCS.STRING), txb.pure((0, utils_1.array_unique)(addresses), 'vector<address>'),
|
|
75
75
|
(0, protocol_1.TXB_OBJECT)(txb, machine), (0, protocol_1.TXB_OBJECT)(txb, permission)],
|
|
76
76
|
});
|
|
77
77
|
}
|
package/dist/protocol.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OBJECTS_TYPE = exports.OBJECTS_TYPE_PREFIX = exports.WOWOK_TYPE = exports.SUI_TYPE = exports.PROTOCOL = exports.Protocol = exports.ENTRYPOINT = exports.
|
|
3
|
+
exports.OBJECTS_TYPE = exports.OBJECTS_TYPE_PREFIX = exports.WOWOK_TYPE = exports.SUI_TYPE = exports.PROTOCOL = exports.Protocol = exports.ENTRYPOINT = exports.ValueType = exports.ContextType = exports.OperatorType = exports.CLOCK_OBJECT = exports.TXB_OBJECT = exports.MODULES = exports.IsValidObjects = exports.IsValidArray = exports.IsValidPercent = exports.IsValidInt = exports.IsValidUint = exports.IsValidArgType = exports.IsValidAddress = exports.IsValidEndpoint = exports.IsValidName_AllowEmpty = exports.IsValidName = exports.IsValidDesription = exports.OptionNone = exports.MAX_ENDPOINT_LENGTH = exports.MAX_NAME_LENGTH = exports.MAX_DESCRIPTION_LENGTH = void 0;
|
|
4
4
|
const client_1 = require("@mysten/sui.js/client");
|
|
5
5
|
const ed25519_1 = require("@mysten/sui.js/keypairs/ed25519");
|
|
6
6
|
const bcs_1 = require("@mysten/bcs");
|
|
@@ -11,17 +11,22 @@ exports.MAX_NAME_LENGTH = 64;
|
|
|
11
11
|
exports.MAX_ENDPOINT_LENGTH = 1024;
|
|
12
12
|
const OptionNone = (txb) => { return txb.pure([], bcs_1.BCS.U8); };
|
|
13
13
|
exports.OptionNone = OptionNone;
|
|
14
|
-
const IsValidDesription = (description) => {
|
|
14
|
+
const IsValidDesription = (description) => { if (!description)
|
|
15
|
+
return false; return description.length <= exports.MAX_DESCRIPTION_LENGTH; };
|
|
15
16
|
exports.IsValidDesription = IsValidDesription;
|
|
16
|
-
const IsValidName = (name) => {
|
|
17
|
+
const IsValidName = (name) => { if (!name)
|
|
18
|
+
return false; return name.length <= exports.MAX_NAME_LENGTH && name.length != 0; };
|
|
17
19
|
exports.IsValidName = IsValidName;
|
|
18
20
|
const IsValidName_AllowEmpty = (name) => { return name.length <= exports.MAX_NAME_LENGTH; };
|
|
19
21
|
exports.IsValidName_AllowEmpty = IsValidName_AllowEmpty;
|
|
20
|
-
const IsValidEndpoint = (endpoint) => {
|
|
22
|
+
const IsValidEndpoint = (endpoint) => { if (!endpoint)
|
|
23
|
+
return false; return endpoint.length <= exports.MAX_ENDPOINT_LENGTH; };
|
|
21
24
|
exports.IsValidEndpoint = IsValidEndpoint;
|
|
22
|
-
const IsValidAddress = (
|
|
25
|
+
const IsValidAddress = (addr) => { if (!addr)
|
|
26
|
+
return false; return true; };
|
|
23
27
|
exports.IsValidAddress = IsValidAddress;
|
|
24
|
-
const IsValidArgType = (argType) => {
|
|
28
|
+
const IsValidArgType = (argType) => { if (!argType)
|
|
29
|
+
return false; return argType.length != 0; };
|
|
25
30
|
exports.IsValidArgType = IsValidArgType;
|
|
26
31
|
const IsValidUint = (value) => { return Number.isSafeInteger(value) && value != 0; };
|
|
27
32
|
exports.IsValidUint = IsValidUint;
|
|
@@ -75,30 +80,11 @@ exports.CLOCK_OBJECT = transactions_1.Inputs.SharedObjectRef({
|
|
|
75
80
|
mutable: false,
|
|
76
81
|
initialSharedVersion: 1,
|
|
77
82
|
});
|
|
78
|
-
var ValueType;
|
|
79
|
-
(function (ValueType) {
|
|
80
|
-
ValueType[ValueType["TYPE_STATIC_bool"] = 100] = "TYPE_STATIC_bool";
|
|
81
|
-
ValueType[ValueType["TYPE_STATIC_address"] = 101] = "TYPE_STATIC_address";
|
|
82
|
-
ValueType[ValueType["TYPE_STATIC_u64"] = 102] = "TYPE_STATIC_u64";
|
|
83
|
-
ValueType[ValueType["TYPE_STATIC_u8"] = 103] = "TYPE_STATIC_u8";
|
|
84
|
-
ValueType[ValueType["TYPE_STATIC_u128"] = 104] = "TYPE_STATIC_u128";
|
|
85
|
-
ValueType[ValueType["TYPE_STATIC_vec_u8"] = 105] = "TYPE_STATIC_vec_u8";
|
|
86
|
-
ValueType[ValueType["TYPE_STATIC_vec_address"] = 106] = "TYPE_STATIC_vec_address";
|
|
87
|
-
ValueType[ValueType["TYPE_STATIC_vec_bool"] = 107] = "TYPE_STATIC_vec_bool";
|
|
88
|
-
ValueType[ValueType["TYPE_STATIC_vec_vec_u8"] = 108] = "TYPE_STATIC_vec_vec_u8";
|
|
89
|
-
ValueType[ValueType["TYPE_STATIC_vec_u64"] = 109] = "TYPE_STATIC_vec_u64";
|
|
90
|
-
ValueType[ValueType["TYPE_STATIC_vec_u128"] = 110] = "TYPE_STATIC_vec_u128";
|
|
91
|
-
ValueType[ValueType["TYPE_STATIC_option_address"] = 111] = "TYPE_STATIC_option_address";
|
|
92
|
-
ValueType[ValueType["TYPE_STATIC_option_bool"] = 112] = "TYPE_STATIC_option_bool";
|
|
93
|
-
ValueType[ValueType["TYPE_STATIC_option_u8"] = 113] = "TYPE_STATIC_option_u8";
|
|
94
|
-
ValueType[ValueType["TYPE_STATIC_option_u64"] = 114] = "TYPE_STATIC_option_u64";
|
|
95
|
-
ValueType[ValueType["TYPE_STATIC_option_u128"] = 115] = "TYPE_STATIC_option_u128";
|
|
96
|
-
})(ValueType || (exports.ValueType = ValueType = {}));
|
|
97
83
|
var OperatorType;
|
|
98
84
|
(function (OperatorType) {
|
|
99
|
-
OperatorType[OperatorType["
|
|
100
|
-
OperatorType[OperatorType["
|
|
101
|
-
OperatorType[OperatorType["
|
|
85
|
+
OperatorType[OperatorType["TYPE_QUERY"] = 1] = "TYPE_QUERY";
|
|
86
|
+
OperatorType[OperatorType["TYPE_FUTURE_QUERY"] = 2] = "TYPE_FUTURE_QUERY";
|
|
87
|
+
OperatorType[OperatorType["TYPE_QUERY_FROM_CONTEXT"] = 3] = "TYPE_QUERY_FROM_CONTEXT";
|
|
102
88
|
OperatorType[OperatorType["TYPE_LOGIC_OPERATOR_U128_GREATER"] = 11] = "TYPE_LOGIC_OPERATOR_U128_GREATER";
|
|
103
89
|
OperatorType[OperatorType["TYPE_LOGIC_OPERATOR_U128_GREATER_EQUAL"] = 12] = "TYPE_LOGIC_OPERATOR_U128_GREATER_EQUAL";
|
|
104
90
|
OperatorType[OperatorType["TYPE_LOGIC_OPERATOR_U128_LESSER"] = 13] = "TYPE_LOGIC_OPERATOR_U128_LESSER";
|
|
@@ -113,7 +99,42 @@ var ContextType;
|
|
|
113
99
|
ContextType[ContextType["TYPE_CONTEXT_SIGNER"] = 60] = "TYPE_CONTEXT_SIGNER";
|
|
114
100
|
ContextType[ContextType["TYPE_CONTEXT_CLOCK"] = 61] = "TYPE_CONTEXT_CLOCK";
|
|
115
101
|
ContextType[ContextType["TYPE_CONTEXT_FUTURE_ID"] = 62] = "TYPE_CONTEXT_FUTURE_ID";
|
|
102
|
+
ContextType[ContextType["TYPE_CONTEXT_bool"] = 70] = "TYPE_CONTEXT_bool";
|
|
103
|
+
ContextType[ContextType["TYPE_CONTEXT_address"] = 71] = "TYPE_CONTEXT_address";
|
|
104
|
+
ContextType[ContextType["TYPE_CONTEXT_u64"] = 72] = "TYPE_CONTEXT_u64";
|
|
105
|
+
ContextType[ContextType["TYPE_CONTEXT_u8"] = 73] = "TYPE_CONTEXT_u8";
|
|
106
|
+
ContextType[ContextType["TYPE_CONTEXT_vec_u8"] = 74] = "TYPE_CONTEXT_vec_u8";
|
|
107
|
+
/* TYPE_CONTEXT_u128 = 75,
|
|
108
|
+
TYPE_CONTEXT_vec_address = 76,
|
|
109
|
+
TYPE_CONTEXT_vec_bool = 77,
|
|
110
|
+
TYPE_CONTEXT_vec_vec_u8 = 78,
|
|
111
|
+
TYPE_CONTEXT_vec_u64 = 79,
|
|
112
|
+
TYPE_CONTEXT_vec_u128 = 80,
|
|
113
|
+
TYPE_CONTEXT_option_address = 81,
|
|
114
|
+
TYPE_CONTEXT_option_bool = 82,
|
|
115
|
+
TYPE_CONTEXT_option_u8 = 83,
|
|
116
|
+
TYPE_CONTEXT_option_u64 = 84,
|
|
117
|
+
TYPE_CONTEXT_option_u128 = 85,*/
|
|
116
118
|
})(ContextType || (exports.ContextType = ContextType = {}));
|
|
119
|
+
var ValueType;
|
|
120
|
+
(function (ValueType) {
|
|
121
|
+
ValueType[ValueType["TYPE_STATIC_bool"] = 100] = "TYPE_STATIC_bool";
|
|
122
|
+
ValueType[ValueType["TYPE_STATIC_address"] = 101] = "TYPE_STATIC_address";
|
|
123
|
+
ValueType[ValueType["TYPE_STATIC_u64"] = 102] = "TYPE_STATIC_u64";
|
|
124
|
+
ValueType[ValueType["TYPE_STATIC_u8"] = 103] = "TYPE_STATIC_u8";
|
|
125
|
+
ValueType[ValueType["TYPE_STATIC_vec_u8"] = 104] = "TYPE_STATIC_vec_u8";
|
|
126
|
+
ValueType[ValueType["TYPE_STATIC_u128"] = 105] = "TYPE_STATIC_u128";
|
|
127
|
+
ValueType[ValueType["TYPE_STATIC_vec_address"] = 106] = "TYPE_STATIC_vec_address";
|
|
128
|
+
ValueType[ValueType["TYPE_STATIC_vec_bool"] = 107] = "TYPE_STATIC_vec_bool";
|
|
129
|
+
ValueType[ValueType["TYPE_STATIC_vec_vec_u8"] = 108] = "TYPE_STATIC_vec_vec_u8";
|
|
130
|
+
ValueType[ValueType["TYPE_STATIC_vec_u64"] = 109] = "TYPE_STATIC_vec_u64";
|
|
131
|
+
ValueType[ValueType["TYPE_STATIC_vec_u128"] = 110] = "TYPE_STATIC_vec_u128";
|
|
132
|
+
ValueType[ValueType["TYPE_STATIC_option_address"] = 111] = "TYPE_STATIC_option_address";
|
|
133
|
+
ValueType[ValueType["TYPE_STATIC_option_bool"] = 112] = "TYPE_STATIC_option_bool";
|
|
134
|
+
ValueType[ValueType["TYPE_STATIC_option_u8"] = 113] = "TYPE_STATIC_option_u8";
|
|
135
|
+
ValueType[ValueType["TYPE_STATIC_option_u64"] = 114] = "TYPE_STATIC_option_u64";
|
|
136
|
+
ValueType[ValueType["TYPE_STATIC_option_u128"] = 115] = "TYPE_STATIC_option_u128";
|
|
137
|
+
})(ValueType || (exports.ValueType = ValueType = {}));
|
|
117
138
|
var ENTRYPOINT;
|
|
118
139
|
(function (ENTRYPOINT) {
|
|
119
140
|
ENTRYPOINT["mainnet"] = "mainnet";
|
|
@@ -141,7 +162,7 @@ class Protocol {
|
|
|
141
162
|
case ENTRYPOINT.devnet:
|
|
142
163
|
break;
|
|
143
164
|
case ENTRYPOINT.testnet:
|
|
144
|
-
this.package = "
|
|
165
|
+
this.package = "0x858da47ed710b543dfeb7235eddeaf9063348a8b187e030ffcb9d8d8bc7e75c3";
|
|
145
166
|
this.everyone_guard = "0x78a41fcc4f566360839613f6b917fb101ae015e56b43143f496f265b6422fddc";
|
|
146
167
|
this.graphql = 'https://sui-testnet.mystenlabs.com/graphql';
|
|
147
168
|
break;
|
|
@@ -203,7 +224,7 @@ class Protocol {
|
|
|
203
224
|
const response = await client.signAndExecuteTransactionBlock({
|
|
204
225
|
transactionBlock: txb,
|
|
205
226
|
signer: keypair,
|
|
206
|
-
options
|
|
227
|
+
options,
|
|
207
228
|
});
|
|
208
229
|
return response;
|
|
209
230
|
};
|
package/dist/service.js
CHANGED
|
@@ -465,20 +465,20 @@ function service_add_sale(pay_type, txb, service, permission, sales, passport) {
|
|
|
465
465
|
stock.push(s.stock);
|
|
466
466
|
});
|
|
467
467
|
if (passport) {
|
|
468
|
-
|
|
468
|
+
txb.moveCall({
|
|
469
469
|
target: protocol_1.PROTOCOL.ServiceFn('sales_add_with_passport'),
|
|
470
470
|
arguments: [passport, (0, protocol_1.TXB_OBJECT)(txb, service), txb.pure(utils_1.BCS_CONVERT.ser_vector_string(names)),
|
|
471
471
|
txb.pure(utils_1.BCS_CONVERT.ser_vector_u64(price)), txb.pure(utils_1.BCS_CONVERT.ser_vector_u64(stock)), (0, protocol_1.TXB_OBJECT)(txb, permission)],
|
|
472
472
|
typeArguments: [pay_type]
|
|
473
|
-
})
|
|
473
|
+
});
|
|
474
474
|
}
|
|
475
475
|
else {
|
|
476
|
-
|
|
476
|
+
txb.moveCall({
|
|
477
477
|
target: protocol_1.PROTOCOL.ServiceFn('sales_add'),
|
|
478
478
|
arguments: [(0, protocol_1.TXB_OBJECT)(txb, service), txb.pure(utils_1.BCS_CONVERT.ser_vector_string(names)),
|
|
479
479
|
txb.pure(utils_1.BCS_CONVERT.ser_vector_u64(price)), txb.pure(utils_1.BCS_CONVERT.ser_vector_u64(stock)), (0, protocol_1.TXB_OBJECT)(txb, permission)],
|
|
480
480
|
typeArguments: [pay_type]
|
|
481
|
-
})
|
|
481
|
+
});
|
|
482
482
|
}
|
|
483
483
|
return true;
|
|
484
484
|
}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.numToUint8Array = exports.stringToUint8Array = exports.objectids_from_response = exports.Object_Type_Extra = exports.BCS_CONVERT = exports.Bcs = exports.parse_object_type = exports.capitalize = exports.array_unique = exports.array_equal = exports.concatenate = exports.ulebDecode = void 0;
|
|
3
|
+
exports.deepClone = exports.isArr = exports.numToUint8Array = exports.stringToUint8Array = exports.objectids_from_response = exports.Object_Type_Extra = exports.BCS_CONVERT = exports.Bcs = exports.parse_object_type = exports.capitalize = exports.array_unique = exports.array_equal = exports.concatenate = exports.ulebDecode = void 0;
|
|
4
4
|
const bcs_1 = require("@mysten/bcs");
|
|
5
5
|
const protocol_1 = require("./protocol");
|
|
6
6
|
const ulebDecode = (arr) => {
|
|
@@ -96,6 +96,27 @@ class Bcs {
|
|
|
96
96
|
ser_vector_u64(data) {
|
|
97
97
|
return this.bcs.ser('vector<u64>', data).toBytes();
|
|
98
98
|
}
|
|
99
|
+
ser_vector_u8(data) {
|
|
100
|
+
return this.bcs.ser('vector<u8>', data).toBytes();
|
|
101
|
+
}
|
|
102
|
+
ser_address(data) {
|
|
103
|
+
return this.bcs.ser(bcs_1.BCS.ADDRESS, data).toBytes();
|
|
104
|
+
}
|
|
105
|
+
ser_bool(data) {
|
|
106
|
+
return this.bcs.ser(bcs_1.BCS.BOOL, data).toBytes();
|
|
107
|
+
}
|
|
108
|
+
ser_u8(data) {
|
|
109
|
+
return this.bcs.ser(bcs_1.BCS.U8, data).toBytes();
|
|
110
|
+
}
|
|
111
|
+
ser_u64(data) {
|
|
112
|
+
return this.bcs.ser(bcs_1.BCS.U64, data).toBytes();
|
|
113
|
+
}
|
|
114
|
+
ser_string(data) {
|
|
115
|
+
return this.bcs.ser(bcs_1.BCS.STRING, data).toBytes();
|
|
116
|
+
}
|
|
117
|
+
de(type, data) {
|
|
118
|
+
return this.bcs.de(type, data);
|
|
119
|
+
}
|
|
99
120
|
}
|
|
100
121
|
exports.Bcs = Bcs;
|
|
101
122
|
exports.BCS_CONVERT = new Bcs();
|
|
@@ -156,3 +177,25 @@ function numToUint8Array(num) {
|
|
|
156
177
|
return new Uint8Array(a);
|
|
157
178
|
}
|
|
158
179
|
exports.numToUint8Array = numToUint8Array;
|
|
180
|
+
// 判断是否为数组
|
|
181
|
+
const isArr = (origin) => {
|
|
182
|
+
let str = '[object Array]';
|
|
183
|
+
return Object.prototype.toString.call(origin) == str ? true : false;
|
|
184
|
+
};
|
|
185
|
+
exports.isArr = isArr;
|
|
186
|
+
const deepClone = (origin, target) => {
|
|
187
|
+
let tar = target || {};
|
|
188
|
+
for (const key in origin) {
|
|
189
|
+
if (Object.prototype.hasOwnProperty.call(origin, key)) {
|
|
190
|
+
if (typeof origin[key] === 'object' && origin[key] !== null) {
|
|
191
|
+
tar[key] = (0, exports.isArr)(origin[key]) ? [] : {};
|
|
192
|
+
(0, exports.deepClone)(origin[key], tar[key]);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
tar[key] = origin[key];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return tar;
|
|
200
|
+
};
|
|
201
|
+
exports.deepClone = deepClone;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wowok",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "AI-oriented web3 collaboration protocol, driving innovaion and making it more likely to happen",
|
|
3
|
+
"version": "1.0.8",
|
|
4
|
+
"description": "AI-oriented web3 collaboration protocol, driving innovaion and making it more likely to happen.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"module": "node",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"license": "Apache License",
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@mysten/bcs": "^0.11.1",
|
|
38
|
-
"@mysten/sui.js": "^0.
|
|
38
|
+
"@mysten/sui.js": "^0.51.2",
|
|
39
39
|
"graphql-tag": "^2.12.6"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
package/src/demand.ts
CHANGED
|
@@ -150,21 +150,21 @@ export function demand_set_description(earnest_type:string, txb:TransactionBlock
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
export function demand_yes(earnest_type:string, txb:TransactionBlock, demand:DemandObject, permission:PermissionObject,
|
|
153
|
-
|
|
153
|
+
service_id:string, passport?:PassportObject) : boolean {
|
|
154
154
|
if (!IsValidObjects([demand, permission])) return false;
|
|
155
155
|
if (!IsValidArgType(earnest_type)) return false;
|
|
156
|
-
if (!IsValidAddress(
|
|
156
|
+
if (!IsValidAddress(service_id)) return false;
|
|
157
157
|
|
|
158
158
|
if (passport) {
|
|
159
159
|
txb.moveCall({
|
|
160
160
|
target:PROTOCOL.DemandFn('yes_with_passport') as FnCallType,
|
|
161
|
-
arguments:[passport, TXB_OBJECT(txb, demand), txb.pure(
|
|
161
|
+
arguments:[passport, TXB_OBJECT(txb, demand), txb.pure(service_id, BCS.ADDRESS), TXB_OBJECT(txb, permission)],
|
|
162
162
|
typeArguments:[earnest_type],
|
|
163
163
|
})
|
|
164
164
|
} else {
|
|
165
165
|
txb.moveCall({
|
|
166
166
|
target:PROTOCOL.DemandFn('yes') as FnCallType,
|
|
167
|
-
arguments:[TXB_OBJECT(txb, demand), txb.pure(
|
|
167
|
+
arguments:[TXB_OBJECT(txb, demand), txb.pure(service_id, BCS.ADDRESS), TXB_OBJECT(txb, permission)],
|
|
168
168
|
typeArguments:[earnest_type],
|
|
169
169
|
})
|
|
170
170
|
}
|