wowok_agent 1.2.37 → 1.2.40

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.
Files changed (104) hide show
  1. package/dist/call/arbitration.d.ts +69 -0
  2. package/dist/call/arbitration.d.ts.map +1 -0
  3. package/dist/call/arbitration.js +210 -0
  4. package/dist/call/arbitration.js.map +1 -0
  5. package/dist/call/base.d.ts +37 -0
  6. package/dist/call/base.d.ts.map +1 -0
  7. package/dist/call/base.js +157 -0
  8. package/dist/call/base.js.map +1 -0
  9. package/dist/call/call.d.ts +84 -0
  10. package/dist/call/call.d.ts.map +1 -0
  11. package/dist/call/call.js +156 -0
  12. package/dist/call/call.js.map +1 -0
  13. package/dist/call/demand.d.ts +57 -0
  14. package/dist/call/demand.d.ts.map +1 -0
  15. package/dist/call/demand.js +160 -0
  16. package/dist/call/demand.js.map +1 -0
  17. package/dist/call/guard.d.ts +42 -0
  18. package/dist/call/guard.d.ts.map +1 -0
  19. package/dist/call/guard.js +264 -0
  20. package/dist/call/guard.js.map +1 -0
  21. package/dist/call/machine.d.ts +109 -0
  22. package/dist/call/machine.d.ts.map +1 -0
  23. package/dist/call/machine.js +250 -0
  24. package/dist/call/machine.js.map +1 -0
  25. package/dist/call/object_permission.d.ts +14 -0
  26. package/dist/call/object_permission.d.ts.map +1 -0
  27. package/dist/call/object_permission.js +52 -0
  28. package/dist/call/object_permission.js.map +1 -0
  29. package/dist/call/permission.d.ts +50 -0
  30. package/dist/call/permission.d.ts.map +1 -0
  31. package/dist/call/permission.js +127 -0
  32. package/dist/call/permission.js.map +1 -0
  33. package/dist/call/personal.d.ts +42 -0
  34. package/dist/call/personal.d.ts.map +1 -0
  35. package/dist/call/personal.js +88 -0
  36. package/dist/call/personal.js.map +1 -0
  37. package/dist/call/repository.d.ts +52 -0
  38. package/dist/call/repository.d.ts.map +1 -0
  39. package/dist/call/repository.js +135 -0
  40. package/dist/call/repository.js.map +1 -0
  41. package/dist/call/service.d.ts +134 -0
  42. package/dist/call/service.d.ts.map +1 -0
  43. package/dist/call/service.js +416 -0
  44. package/dist/call/service.js.map +1 -0
  45. package/dist/call/treasury.d.ts +53 -0
  46. package/dist/call/treasury.d.ts.map +1 -0
  47. package/dist/call/treasury.js +175 -0
  48. package/dist/call/treasury.js.map +1 -0
  49. package/dist/common.d.ts +3 -0
  50. package/dist/common.d.ts.map +1 -0
  51. package/dist/common.js +13 -0
  52. package/dist/common.js.map +1 -0
  53. package/dist/index.d.ts +22 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +22 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/local/account.d.ts +24 -0
  58. package/dist/local/account.d.ts.map +1 -0
  59. package/dist/local/account.js +188 -0
  60. package/dist/local/account.js.map +1 -0
  61. package/dist/local/cache.d.ts +32 -0
  62. package/dist/local/cache.d.ts.map +1 -0
  63. package/dist/local/cache.js +71 -0
  64. package/dist/local/cache.js.map +1 -0
  65. package/dist/local/index.d.ts +83 -0
  66. package/dist/local/index.d.ts.map +1 -0
  67. package/dist/local/index.js +98 -0
  68. package/dist/local/index.js.map +1 -0
  69. package/dist/local/local.d.ts +56 -0
  70. package/dist/local/local.d.ts.map +1 -0
  71. package/dist/local/local.js +245 -0
  72. package/dist/local/local.js.map +1 -0
  73. package/dist/query/events.d.ts +63 -0
  74. package/dist/query/events.d.ts.map +1 -0
  75. package/dist/query/events.js +78 -0
  76. package/dist/query/events.js.map +1 -0
  77. package/dist/query/objects.d.ts +323 -0
  78. package/dist/query/objects.d.ts.map +1 -0
  79. package/dist/query/objects.js +453 -0
  80. package/dist/query/objects.js.map +1 -0
  81. package/dist/query/permission.d.ts +12 -0
  82. package/dist/query/permission.d.ts.map +1 -0
  83. package/dist/query/permission.js +41 -0
  84. package/dist/query/permission.js.map +1 -0
  85. package/package.json +2 -2
  86. package/src/call/arbitration.ts +85 -54
  87. package/src/call/base.ts +22 -12
  88. package/src/call/call.ts +24 -21
  89. package/src/call/demand.ts +60 -30
  90. package/src/call/guard.ts +25 -16
  91. package/src/call/machine.ts +79 -40
  92. package/src/call/object_permission.ts +12 -8
  93. package/src/call/permission.ts +44 -18
  94. package/src/call/personal.ts +39 -13
  95. package/src/call/repository.ts +27 -13
  96. package/src/call/service.ts +150 -73
  97. package/src/call/treasury.ts +68 -50
  98. package/src/common.ts +9 -0
  99. package/src/index.ts +1 -0
  100. package/src/local/account.ts +3 -3
  101. package/src/local/index.ts +54 -50
  102. package/src/local/local.ts +48 -8
  103. package/src/query/objects.ts +14 -6
  104. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,264 @@
1
+ /**
2
+ * generate and launch a guard
3
+ */
4
+ import { Bcs, ContextType, ERROR, Errors, IsValidU8, OperatorType, ValueType, GUARD_QUERIES, IsValidAddress, concatenate, Protocol, hasDuplicates, insertAtHead, IsValidDesription, IsValidGuardIdentifier, } from "wowok";
5
+ import { CallBase } from "./base.js";
6
+ import { LocalMark } from "../local/local.js";
7
+ export class CallGuard extends CallBase {
8
+ constructor(data) {
9
+ super();
10
+ this.data = data;
11
+ }
12
+ async call(account) {
13
+ return await this.exec(account);
14
+ }
15
+ async operate(txb, passport, account) {
16
+ if (!this.data?.root) {
17
+ ERROR(Errors.InvalidParam, 'guard root node invalid');
18
+ }
19
+ if (this.data?.description && !IsValidDesription(this.data?.description)) {
20
+ ERROR(Errors.IsValidDesription, 'build_guard - ' + this.data.description);
21
+ }
22
+ // check const
23
+ this.data?.table?.forEach(v => {
24
+ if (!IsValidU8(v.identifier) || v.identifier < 1)
25
+ ERROR(Errors.InvalidParam, 'table.identifer invalid');
26
+ if (!v.bWitness && v.value === undefined)
27
+ ERROR(Errors.InvalidParam, 'table.value');
28
+ });
29
+ if (this.data?.table && hasDuplicates(this.data?.table?.map(v => v.identifier))) {
30
+ ERROR(Errors.InvalidParam, 'table.identifer duplicates');
31
+ }
32
+ // check root
33
+ var output = [];
34
+ buildNode(this.data.root, ValueType.TYPE_BOOL, this.data?.table ?? [], output);
35
+ const bytes = concatenate(Uint8Array, ...output);
36
+ const obj = txb.moveCall({
37
+ target: Protocol.Instance().guardFn('new'),
38
+ arguments: [txb.pure.string(this.data.description ?? ''), txb.pure.vector('u8', [].slice.call(bytes.reverse()))],
39
+ });
40
+ if (this.data.table) {
41
+ for (let i = 0; i < this.data?.table?.length; ++i) {
42
+ const v = this.data.table[i];
43
+ if (v.bWitness) {
44
+ const n = new Uint8Array(1);
45
+ n.set([v.value_type], 0);
46
+ txb.moveCall({
47
+ target: Protocol.Instance().guardFn("constant_add"),
48
+ arguments: [txb.object(obj), txb.pure.u8(v.identifier), txb.pure.bool(true), txb.pure.vector('u8', [].slice.call(n)), txb.pure.bool(false)]
49
+ });
50
+ }
51
+ else {
52
+ if (v.value_type === ValueType.TYPE_ADDRESS) {
53
+ v.value = await LocalMark.Instance().get_address(v.value);
54
+ if (!v.value) {
55
+ ERROR(Errors.InvalidParam, `CallGuard_Data.data.table address`);
56
+ }
57
+ }
58
+ ;
59
+ const tmp = Uint8Array.from(Bcs.getInstance().ser(v.value_type, v.value));
60
+ const n = insertAtHead(tmp, v.value_type);
61
+ txb.moveCall({
62
+ target: Protocol.Instance().guardFn("constant_add"),
63
+ arguments: [txb.object(obj), txb.pure.u8(v.identifier), txb.pure.bool(false), txb.pure.vector('u8', [].slice.call(n)), txb.pure.bool(false)]
64
+ });
65
+ }
66
+ }
67
+ }
68
+ const addr = txb.moveCall({
69
+ target: Protocol.Instance().guardFn("create"),
70
+ arguments: [txb.object(obj)]
71
+ });
72
+ await this.new_with_mark('Guard', txb, addr, this.data?.namedNew, account);
73
+ }
74
+ }
75
+ //export const MAX_CHILD_NODE_COUNT = 6;
76
+ const buildNode = (guard_node, type_required, table, output) => {
77
+ const node = guard_node;
78
+ if (node?.identifier !== undefined) {
79
+ const f = table.find(v => v.identifier === node.identifier);
80
+ if (f) {
81
+ checkType(f.value_type, type_required, node);
82
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, ContextType.TYPE_CONSTANT));
83
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.identifier));
84
+ }
85
+ else {
86
+ ERROR(Errors.InvalidParam, 'node identifier - ' + JSON.stringify(node));
87
+ }
88
+ }
89
+ else if (node?.query !== undefined) {
90
+ var q;
91
+ if (typeof (node.query) === 'string') {
92
+ q = GUARD_QUERIES.find(v => v.query_name === node.query);
93
+ }
94
+ else if (typeof (node.query) === 'number') {
95
+ q = GUARD_QUERIES.find(v => v.query_id === node.query);
96
+ }
97
+ if (!q)
98
+ ERROR(Errors.InvalidParam, 'query invalid - ' + node?.query);
99
+ checkType(q.return, type_required, node); // Return type checking
100
+ if (q.parameters.length === node.parameters.length) {
101
+ for (let i = node.parameters.length - 1; i >= 0; --i) { // stack: first in, last out
102
+ buildNode(node.parameters[i], q.parameters[i], table, output); // Recursive check
103
+ }
104
+ }
105
+ else {
106
+ ERROR(Errors.InvalidParam, 'node query parameters length not match - ' + JSON.stringify(node));
107
+ }
108
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, OperatorType.TYPE_QUERY)); // QUERY TYPE + addr + cmd
109
+ if (typeof (node.object) === 'string') {
110
+ if (!IsValidAddress(node.object)) {
111
+ ERROR(Errors.InvalidParam, 'node object from address string - ' + JSON.stringify(node));
112
+ }
113
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, ValueType.TYPE_ADDRESS));
114
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_ADDRESS, node.object)); // object address
115
+ }
116
+ else {
117
+ const f = table.find(v => v.identifier === node.object);
118
+ if (f) {
119
+ checkType(f.value_type, ValueType.TYPE_ADDRESS, node);
120
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, ContextType.TYPE_CONSTANT));
121
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.object)); // object id
122
+ }
123
+ else {
124
+ ERROR(Errors.InvalidParam, 'node object from identifier - ' + JSON.stringify(node));
125
+ }
126
+ }
127
+ output.push(Bcs.getInstance().ser('u16', q.query_id)); // cmd(u16)
128
+ }
129
+ else if (node?.logic !== undefined) {
130
+ checkType(ValueType.TYPE_BOOL, type_required, node); // bool
131
+ switch (node?.logic) {
132
+ case OperatorType.TYPE_LOGIC_AND:
133
+ case OperatorType.TYPE_LOGIC_OR:
134
+ if (node.parameters.length < 2)
135
+ ERROR(Errors.InvalidParam, 'node logic parameters length must >= 2' + JSON.stringify(node));
136
+ node.parameters.reverse().forEach(v => buildNode(v, ValueType.TYPE_BOOL, table, output)); // reserve
137
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.logic)); // TYPE
138
+ output.push((Bcs.getInstance().ser(ValueType.TYPE_U8, node.parameters.length)));
139
+ break;
140
+ case OperatorType.TYPE_LOGIC_NOT:
141
+ if (node.parameters.length !== 1)
142
+ ERROR(Errors.InvalidParam, 'node logic parameters length must be 1' + JSON.stringify(node));
143
+ node.parameters.reverse().forEach(v => buildNode(v, ValueType.TYPE_BOOL, table, output)); // reserve
144
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.logic)); // TYPE
145
+ break;
146
+ case OperatorType.TYPE_LOGIC_AS_U256_GREATER:
147
+ case OperatorType.TYPE_LOGIC_AS_U256_GREATER_EQUAL:
148
+ case OperatorType.TYPE_LOGIC_AS_U256_LESSER:
149
+ case OperatorType.TYPE_LOGIC_AS_U256_LESSER_EQUAL:
150
+ case OperatorType.TYPE_LOGIC_AS_U256_EQUAL:
151
+ if (node.parameters.length < 2)
152
+ ERROR(Errors.InvalidParam, 'node logic parameters length must >= 2' + JSON.stringify(node));
153
+ node.parameters.reverse().forEach(v => buildNode(v, 'number', table, output));
154
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.logic)); // TYPE
155
+ output.push((Bcs.getInstance().ser(ValueType.TYPE_U8, node.parameters.length)));
156
+ break;
157
+ case OperatorType.TYPE_LOGIC_EQUAL:
158
+ if (node.parameters.length < 2)
159
+ ERROR(Errors.InvalidParam, 'node logic parameters length must >= 2' + JSON.stringify(node));
160
+ var any_type = 'variable';
161
+ node.parameters.reverse().forEach(v => buildNode(v, any_type, table, output));
162
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.logic)); // TYPE
163
+ output.push((Bcs.getInstance().ser(ValueType.TYPE_U8, node.parameters.length)));
164
+ break;
165
+ case OperatorType.TYPE_LOGIC_HAS_SUBSTRING:
166
+ if (node.parameters.length < 2)
167
+ ERROR(Errors.InvalidParam, 'node logic parameters length must >= 2' + JSON.stringify(node));
168
+ node.parameters.reverse().forEach(v => buildNode(v, ValueType.TYPE_STRING, table, output));
169
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.logic)); // TYPE
170
+ output.push((Bcs.getInstance().ser(ValueType.TYPE_U8, node.parameters.length)));
171
+ break;
172
+ }
173
+ }
174
+ else if (node?.calc !== undefined) {
175
+ if (node?.calc === OperatorType.TYPE_NUMBER_ADDRESS) {
176
+ checkType(ValueType.TYPE_ADDRESS, type_required, node);
177
+ if (node.parameters.length !== 1)
178
+ ERROR(Errors.InvalidParam, 'node TYPE_NUMBER_ADDRESS parameters length must == 1' + JSON.stringify(node));
179
+ node.parameters.reverse().forEach(v => buildNode(v, 'number', table, output));
180
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.calc)); // TYPE
181
+ }
182
+ else {
183
+ checkType(ValueType.TYPE_U256, type_required, node);
184
+ if (node.parameters.length < 2)
185
+ ERROR(Errors.InvalidParam, 'node calc parameters length must >= 2' + JSON.stringify(node));
186
+ node.parameters.reverse().forEach(v => buildNode(v, 'number', table, output));
187
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.calc)); // TYPE
188
+ output.push((Bcs.getInstance().ser(ValueType.TYPE_U8, node.parameters.length)));
189
+ }
190
+ }
191
+ else if (node?.value_type !== undefined) {
192
+ checkType(node?.value_type, type_required, node);
193
+ if (node?.value === undefined)
194
+ ERROR(Errors.InvalidParam, 'node value undefined - ' + JSON.stringify(node));
195
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.value_type)); // TYPE
196
+ if (node.value_type == ValueType.TYPE_STRING || node.value_type === ValueType.TYPE_VEC_U8) {
197
+ if (typeof (node.value) == 'string') {
198
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_STRING, node.value));
199
+ }
200
+ else {
201
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_VEC_U8, node.value));
202
+ }
203
+ }
204
+ else {
205
+ output.push(Bcs.getInstance().ser(node?.value_type, node.value));
206
+ }
207
+ }
208
+ else if (node?.context !== undefined) {
209
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.context));
210
+ switch (node.context) {
211
+ case ContextType.TYPE_CLOCK:
212
+ checkType(ValueType.TYPE_U64, type_required, node);
213
+ break;
214
+ case ContextType.TYPE_GUARD:
215
+ case ContextType.TYPE_SIGNER:
216
+ checkType(ValueType.TYPE_ADDRESS, type_required, node);
217
+ break;
218
+ }
219
+ }
220
+ else if (node?.identifier !== undefined) {
221
+ if (!IsValidGuardIdentifier(node.identifier))
222
+ ERROR(Errors.IsValidGuardIdentifier, 'node - ' + JSON.stringify(node));
223
+ const i = table.find(v => v.identifier === node.identifier);
224
+ if (!i)
225
+ ERROR(Errors.InvalidParam, 'identifier not found. node - ' + JSON.stringify(node));
226
+ checkType(i.value_type, type_required, node);
227
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, ContextType.TYPE_CONSTANT));
228
+ output.push(Bcs.getInstance().ser(ValueType.TYPE_U8, node.identifier));
229
+ }
230
+ else {
231
+ ERROR(Errors.InvalidParam, 'node - ' + JSON.stringify(node));
232
+ }
233
+ };
234
+ const checkType = (type, type_required, node) => {
235
+ if (type_required === 'variable') {
236
+ type_required = type;
237
+ }
238
+ else if (type_required === 'number') {
239
+ if (type === ValueType.TYPE_U128 || type === ValueType.TYPE_U256 || type === ValueType.TYPE_U8 ||
240
+ type === ValueType.TYPE_U64 || type === ContextType.TYPE_CLOCK) {
241
+ return;
242
+ }
243
+ }
244
+ else if (type_required === ValueType.TYPE_ADDRESS) {
245
+ if (type === ContextType.TYPE_SIGNER || type === ContextType.TYPE_GUARD) {
246
+ return;
247
+ }
248
+ } /*else if (type_required === ValueType.TYPE_STRING) {
249
+ if (type === ValueType.TYPE_VEC_U8) {
250
+ return
251
+ }
252
+ } else if (type_required === ValueType.TYPE_VEC_U8) {
253
+ if (type === ValueType.TYPE_STRING) {
254
+ return
255
+ }
256
+ } */
257
+ if (type !== type_required) {
258
+ var str = '';
259
+ if (node)
260
+ str = ' - ' + JSON.stringify(node);
261
+ ERROR(Errors.InvalidParam, 'checkType: ' + type + ' require type: ' + type_required + str);
262
+ }
263
+ };
264
+ //# sourceMappingURL=guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/call/guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { PassportObject, TransactionBlock, Machine_Forward, Machine_Node, Deliverable, ParentProgress, ProgressNext } from 'wowok';
2
+ import { CallBase, CallResult, Namedbject } from "./base.js";
3
+ export interface CallMachine_Data {
4
+ object?: {
5
+ address: string;
6
+ } | {
7
+ namedNew?: Namedbject;
8
+ };
9
+ permission?: {
10
+ address: string;
11
+ } | {
12
+ namedNew?: Namedbject;
13
+ description?: string;
14
+ };
15
+ description?: string;
16
+ endpoint?: string;
17
+ consensus_repository?: {
18
+ op: 'set' | 'add' | 'remove';
19
+ repositories: string[];
20
+ } | {
21
+ op: 'removeall';
22
+ };
23
+ nodes?: {
24
+ op: 'add';
25
+ data: Machine_Node[];
26
+ } | {
27
+ op: 'remove';
28
+ names: string[];
29
+ bTransferMyself?: boolean;
30
+ } | {
31
+ op: 'rename node';
32
+ data: {
33
+ old: string;
34
+ new: string;
35
+ }[];
36
+ } | {
37
+ op: 'add from myself';
38
+ addresses: string[];
39
+ } | {
40
+ op: 'remove pair';
41
+ pairs: {
42
+ prior_node_name: string;
43
+ node_name: string;
44
+ }[];
45
+ } | {
46
+ op: 'add forward';
47
+ data: {
48
+ prior_node_name: string;
49
+ node_name: string;
50
+ forward: Machine_Forward;
51
+ threshold?: number;
52
+ remove_forward?: string;
53
+ }[];
54
+ } | {
55
+ op: 'remove forward';
56
+ data: {
57
+ prior_node_name: string;
58
+ node_name: string;
59
+ forward_name: string;
60
+ }[];
61
+ };
62
+ bPublished?: boolean;
63
+ progress_new?: {
64
+ task_address?: string;
65
+ namedNew?: Namedbject;
66
+ };
67
+ progress_context_repository?: {
68
+ progress?: string;
69
+ repository?: string;
70
+ };
71
+ progress_namedOperator?: {
72
+ progress?: string;
73
+ data: {
74
+ name: string;
75
+ operators: string[];
76
+ }[];
77
+ };
78
+ progress_parent?: {
79
+ progress?: string;
80
+ parent?: ParentProgress;
81
+ };
82
+ progress_task?: {
83
+ progress?: string;
84
+ task: string;
85
+ };
86
+ progress_hold?: {
87
+ progress?: string;
88
+ operation: ProgressNext;
89
+ bHold: boolean;
90
+ adminUnhold?: boolean;
91
+ };
92
+ progress_next?: {
93
+ progress: string;
94
+ operation: ProgressNext;
95
+ deliverable: Deliverable;
96
+ guard?: string;
97
+ };
98
+ bPaused?: boolean;
99
+ clone_new?: {
100
+ namedNew?: Namedbject;
101
+ };
102
+ }
103
+ export declare class CallMachine extends CallBase {
104
+ data: CallMachine_Data;
105
+ constructor(data: CallMachine_Data);
106
+ call(account?: string): Promise<CallResult>;
107
+ protected operate(txb: TransactionBlock, passport?: PassportObject, account?: string): Promise<void>;
108
+ }
109
+ //# sourceMappingURL=machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/call/machine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ import { Errors, ERROR, Permission, PermissionIndex, Machine, Progress, } from 'wowok';
2
+ import { CallBase } from "./base.js";
3
+ import { Account } from '../local/account.js';
4
+ import { LocalMark } from '../local/local.js';
5
+ export class CallMachine extends CallBase {
6
+ constructor(data) {
7
+ super();
8
+ this.data = data;
9
+ }
10
+ async call(account) {
11
+ var checkOwner = false;
12
+ const guards = [];
13
+ const perms = [];
14
+ var [permission_address, object_address] = await LocalMark.Instance().get_many_address([this.data?.permission?.address,
15
+ this.data?.object?.address]);
16
+ if (object_address) {
17
+ if (!permission_address) {
18
+ await this.update_content(object_address, 'Machine');
19
+ if (this.content) {
20
+ permission_address = this.content.permission;
21
+ }
22
+ }
23
+ }
24
+ if (permission_address) {
25
+ if (!this.data?.object) {
26
+ perms.push(PermissionIndex.machine);
27
+ }
28
+ if (this.data?.description !== undefined && object_address) {
29
+ perms.push(PermissionIndex.machine_description);
30
+ }
31
+ if (this.data?.endpoint !== undefined && object_address) {
32
+ perms.push(PermissionIndex.machine_endpoint);
33
+ }
34
+ if (this.data?.consensus_repository !== undefined) {
35
+ perms.push(PermissionIndex.machine_repository);
36
+ }
37
+ if (this.data?.nodes !== undefined) {
38
+ perms.push(PermissionIndex.machine_node);
39
+ }
40
+ if (this.data?.bPublished) { // publish is an irreversible one-time operation
41
+ perms.push(PermissionIndex.machine_publish);
42
+ }
43
+ if (this.data?.progress_new !== undefined) {
44
+ perms.push(PermissionIndex.progress);
45
+ }
46
+ if (this.data?.progress_context_repository !== undefined) {
47
+ perms.push(PermissionIndex.progress_context_repository);
48
+ }
49
+ if (this.data?.progress_namedOperator !== undefined) {
50
+ perms.push(PermissionIndex.progress_namedOperator);
51
+ }
52
+ if (this.data?.progress_parent !== undefined) {
53
+ perms.push(PermissionIndex.progress_parent);
54
+ }
55
+ if (this.data?.progress_task !== undefined) {
56
+ perms.push(PermissionIndex.progress_bind_task);
57
+ }
58
+ if (this.data?.progress_hold !== undefined) {
59
+ if (this.data.progress_hold.adminUnhold) {
60
+ perms.push(PermissionIndex.progress_unhold);
61
+ }
62
+ }
63
+ if (this.data?.bPaused !== undefined) {
64
+ perms.push(PermissionIndex.machine_pause);
65
+ }
66
+ if (this.data?.progress_next !== undefined) {
67
+ const guard = await LocalMark.Instance().get_address(this.data?.progress_next?.guard);
68
+ if (guard) {
69
+ guards.push(guard);
70
+ }
71
+ else if (object_address) { // fetch guard
72
+ const p = await LocalMark.Instance().get_address(this.data?.progress_next.progress);
73
+ if (p) {
74
+ const guard = await Progress.QueryForwardGuard(this.data?.progress_next.progress, object_address, await Account.Instance().default() ?? '0xe386bb9e01b3528b75f3751ad8a1e418b207ad979fea364087deef5250a73d3f', this.data.progress_next.operation.next_node_name, this.data.progress_next.operation.forward);
75
+ if (guard) {
76
+ guards.push(guard);
77
+ }
78
+ }
79
+ }
80
+ }
81
+ return await this.check_permission_and_call(permission_address, perms, guards, checkOwner, undefined, account);
82
+ }
83
+ return await this.exec(account);
84
+ }
85
+ async operate(txb, passport, account) {
86
+ let obj;
87
+ let permission;
88
+ var [permission_address, object_address] = this?.content ?
89
+ [this.content.permission, this.content.object] :
90
+ await LocalMark.Instance().get_many_address([this.data?.permission?.address,
91
+ this.data?.object?.address]);
92
+ if (!object_address) {
93
+ if (!permission_address) {
94
+ const d = this.data?.permission?.description ?? '';
95
+ permission = Permission.New(txb, d);
96
+ }
97
+ obj = Machine.New(txb, permission ? permission.get_object() : permission_address, this.data?.description ?? '', this.data?.endpoint ?? '', permission ? undefined : passport);
98
+ }
99
+ else {
100
+ if (permission_address) {
101
+ obj = Machine.From(txb, permission_address, object_address);
102
+ }
103
+ else {
104
+ ERROR(Errors.InvalidParam, 'CallMachine_Data.data.permission');
105
+ }
106
+ }
107
+ if (obj) {
108
+ const perm = permission ? permission.get_object() : permission_address;
109
+ const pst = permission ? undefined : passport;
110
+ if (this.data?.description !== undefined && object_address) {
111
+ obj?.set_description(this.data.description, pst);
112
+ }
113
+ if (this.data?.endpoint !== undefined && object_address) {
114
+ obj?.set_endpoint(this.data.endpoint, pst);
115
+ }
116
+ if (this.data?.consensus_repository !== undefined) {
117
+ switch (this.data.consensus_repository.op) {
118
+ case 'add':
119
+ case 'set':
120
+ if (this.data.consensus_repository.op === 'set') {
121
+ obj?.remove_repository([], true, pst);
122
+ }
123
+ var reps = await LocalMark.Instance().get_many_address2(this.data.consensus_repository.repositories);
124
+ reps.forEach(v => obj?.add_repository(v, pst));
125
+ break;
126
+ case 'remove':
127
+ var reps = await LocalMark.Instance().get_many_address2(this.data.consensus_repository.repositories);
128
+ if (reps.length > 0) {
129
+ obj?.remove_repository(reps, false, pst);
130
+ }
131
+ break;
132
+ case 'removeall':
133
+ obj?.remove_repository([], true, pst);
134
+ break;
135
+ }
136
+ }
137
+ if (this.data?.nodes !== undefined) {
138
+ switch (this.data?.nodes?.op) {
139
+ case 'add':
140
+ obj?.add_node(this.data.nodes.data, pst);
141
+ break;
142
+ case 'remove':
143
+ obj?.remove_node(this.data.nodes.names, this.data.nodes?.bTransferMyself, pst);
144
+ break;
145
+ case 'rename node':
146
+ this.data.nodes.data.forEach(v => obj?.rename_node(v.old, v.new, pst));
147
+ break;
148
+ case 'add from myself':
149
+ obj?.add_node2(this.data.nodes.addresses, pst);
150
+ break;
151
+ case 'add forward':
152
+ this.data.nodes.data.forEach(v => obj?.add_forward(v.prior_node_name, v.node_name, v.forward, v.threshold, v.remove_forward, pst));
153
+ break;
154
+ case 'remove forward':
155
+ this.data.nodes.data.forEach(v => obj?.remove_forward(v.prior_node_name, v.node_name, v.forward_name, pst));
156
+ break;
157
+ case 'remove pair':
158
+ this.data.nodes.pairs.forEach(v => obj?.remove_pair(v.prior_node_name, v.node_name, pst));
159
+ break;
160
+ }
161
+ }
162
+ if (this.data?.bPublished) {
163
+ obj?.publish(passport);
164
+ }
165
+ var new_progress;
166
+ if (this.data?.progress_new !== undefined) {
167
+ const task = await LocalMark.Instance().get_address(this.data?.progress_new.task_address);
168
+ new_progress = Progress?.New(txb, obj?.get_object(), perm, task, pst);
169
+ }
170
+ if (this.data?.progress_context_repository !== undefined) {
171
+ const p = this.data?.progress_context_repository.progress
172
+ ? await LocalMark.Instance().get_address(this.data?.progress_context_repository.progress)
173
+ : new_progress?.get_object();
174
+ if (!p)
175
+ ERROR(Errors.InvalidParam, 'CallMachine_Data.data.progress_context_repository.progress');
176
+ const rep = await LocalMark.Instance().get_address(this.data?.progress_context_repository.repository);
177
+ Progress.From(txb, obj?.get_object(), perm, p).set_context_repository(rep, pst);
178
+ }
179
+ if (this.data?.progress_namedOperator !== undefined) {
180
+ const p = this.data?.progress_namedOperator.progress
181
+ ? await LocalMark.Instance().get_address(this.data?.progress_namedOperator.progress)
182
+ : new_progress?.get_object();
183
+ if (!p)
184
+ ERROR(Errors.InvalidParam, 'CallMachine_Data.data.progress_namedOperator.progress');
185
+ let pp = Progress.From(txb, obj?.get_object(), perm, p);
186
+ this.data.progress_namedOperator.data.forEach(v => pp.set_namedOperator(v.name, v.operators, pst));
187
+ }
188
+ if (this.data?.progress_parent !== undefined) {
189
+ const p = this.data?.progress_parent.progress
190
+ ? await LocalMark.Instance().get_address(this.data?.progress_parent.progress)
191
+ : new_progress?.get_object();
192
+ if (!p)
193
+ ERROR(Errors.InvalidParam, 'CallMachine_Data.data.progress_parent.progress');
194
+ if (this.data.progress_parent.parent) {
195
+ const parent = await LocalMark.Instance().get_address(this.data.progress_parent.parent.parent_id);
196
+ if (parent) {
197
+ this.data.progress_parent.parent.parent_id = parent;
198
+ Progress.From(txb, obj?.get_object(), perm, p).parent(this.data.progress_parent.parent);
199
+ }
200
+ }
201
+ else {
202
+ Progress.From(txb, obj?.get_object(), perm, p).parent_none();
203
+ }
204
+ }
205
+ if (this.data?.progress_task !== undefined) {
206
+ const p = this.data?.progress_task.progress
207
+ ? await LocalMark.Instance().get_address(this.data?.progress_task.progress)
208
+ : new_progress?.get_object();
209
+ if (!p)
210
+ ERROR(Errors.InvalidParam, 'CallMachine_Data.data.progress_task.progress');
211
+ const task = await LocalMark.Instance().get_address(this.data.progress_task.task);
212
+ if (task)
213
+ Progress.From(txb, obj?.get_object(), perm, p).bind_task(task, pst);
214
+ }
215
+ if (this.data?.progress_hold !== undefined) {
216
+ const p = this.data?.progress_hold.progress
217
+ ? await LocalMark.Instance().get_address(this.data?.progress_hold.progress)
218
+ : new_progress?.get_object();
219
+ if (!p)
220
+ ERROR(Errors.InvalidParam, 'CallMachine_Data.data.progress_hold.progress');
221
+ if (this.data?.progress_hold.adminUnhold) {
222
+ Progress.From(txb, obj?.get_object(), perm, p).unhold(this.data.progress_hold.operation, pst);
223
+ }
224
+ else {
225
+ Progress.From(txb, obj?.get_object(), perm, p).hold(this.data.progress_hold.operation, this.data.progress_hold.bHold);
226
+ }
227
+ }
228
+ const addr = new_progress?.launch();
229
+ if (addr) {
230
+ await this.new_with_mark('Progress', txb, addr, this.data?.progress_new?.namedNew, account);
231
+ }
232
+ if (this.data?.progress_next !== undefined) {
233
+ Progress.From(txb, obj?.get_object(), perm, this.data?.progress_next.progress).next(this.data.progress_next.operation, this.data.progress_next.deliverable, pst);
234
+ }
235
+ if (this.data?.bPaused !== undefined) {
236
+ obj?.pause(this.data.bPaused, pst);
237
+ }
238
+ if (this.data?.clone_new !== undefined && object_address) {
239
+ await this.new_with_mark('Machine', txb, obj?.clone(true, pst), this.data?.clone_new?.namedNew, account);
240
+ }
241
+ if (permission) {
242
+ await this.new_with_mark('Permission', txb, permission.launch(), this.data?.permission?.namedNew, account);
243
+ }
244
+ if (!object_address) {
245
+ await this.new_with_mark('Machine', txb, obj.launch(), this.data?.object?.namedNew, account);
246
+ }
247
+ }
248
+ }
249
+ }
250
+ //# sourceMappingURL=machine.js.map