wowok_agent 1.2.38 → 1.2.41
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/call/arbitration.d.ts +1 -1
- package/dist/call/arbitration.d.ts.map +1 -1
- package/dist/call/arbitration.js +76 -50
- package/dist/call/arbitration.js.map +1 -1
- package/dist/call/base.d.ts +3 -1
- package/dist/call/base.d.ts.map +1 -1
- package/dist/call/base.js +24 -16
- package/dist/call/base.js.map +1 -1
- package/dist/call/call.d.ts +18 -18
- package/dist/call/call.d.ts.map +1 -1
- package/dist/call/call.js +12 -12
- package/dist/call/call.js.map +1 -1
- package/dist/call/demand.d.ts +3 -1
- package/dist/call/demand.d.ts.map +1 -1
- package/dist/call/demand.js +55 -28
- package/dist/call/demand.js.map +1 -1
- package/dist/call/guard.d.ts.map +1 -1
- package/dist/call/guard.js +29 -18
- package/dist/call/guard.js.map +1 -1
- package/dist/call/machine.d.ts +1 -1
- package/dist/call/machine.d.ts.map +1 -1
- package/dist/call/machine.js +82 -38
- package/dist/call/machine.js.map +1 -1
- package/dist/call/object_permission.d.ts +1 -0
- package/dist/call/object_permission.d.ts.map +1 -1
- package/dist/call/object_permission.js +12 -9
- package/dist/call/object_permission.js.map +1 -1
- package/dist/call/permission.d.ts +1 -0
- package/dist/call/permission.d.ts.map +1 -1
- package/dist/call/permission.js +48 -18
- package/dist/call/permission.js.map +1 -1
- package/dist/call/personal.d.ts +1 -1
- package/dist/call/personal.d.ts.map +1 -1
- package/dist/call/personal.js +40 -13
- package/dist/call/personal.js.map +1 -1
- package/dist/call/repository.d.ts.map +1 -1
- package/dist/call/repository.js +24 -14
- package/dist/call/repository.js.map +1 -1
- package/dist/call/service.d.ts +1 -1
- package/dist/call/service.d.ts.map +1 -1
- package/dist/call/service.js +149 -71
- package/dist/call/service.js.map +1 -1
- package/dist/call/treasury.d.ts +1 -1
- package/dist/call/treasury.d.ts.map +1 -1
- package/dist/call/treasury.js +65 -49
- package/dist/call/treasury.js.map +1 -1
- package/dist/common.d.ts +1 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +9 -0
- package/dist/common.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/local/account.d.ts +26 -12
- package/dist/local/account.d.ts.map +1 -1
- package/dist/local/account.js +199 -93
- package/dist/local/account.js.map +1 -1
- package/dist/local/index.d.ts +44 -23
- package/dist/local/index.d.ts.map +1 -1
- package/dist/local/index.js +57 -50
- package/dist/local/index.js.map +1 -1
- package/dist/local/local.d.ts +4 -2
- package/dist/local/local.d.ts.map +1 -1
- package/dist/local/local.js +35 -27
- package/dist/local/local.js.map +1 -1
- package/dist/query/objects.d.ts.map +1 -1
- package/dist/query/objects.js +15 -7
- package/dist/query/objects.js.map +1 -1
- package/package.json +2 -2
- package/src/call/arbitration.ts +87 -54
- package/src/call/base.ts +28 -19
- package/src/call/call.ts +31 -31
- package/src/call/demand.ts +62 -30
- package/src/call/guard.ts +25 -16
- package/src/call/machine.ts +89 -42
- package/src/call/object_permission.ts +12 -8
- package/src/call/permission.ts +45 -18
- package/src/call/personal.ts +39 -13
- package/src/call/repository.ts +27 -13
- package/src/call/service.ts +152 -73
- package/src/call/treasury.ts +70 -50
- package/src/common.ts +9 -0
- package/src/index.ts +1 -0
- package/src/local/account.ts +212 -92
- package/src/local/index.ts +75 -68
- package/src/local/local.ts +44 -30
- package/src/query/objects.ts +14 -6
- package/tsconfig.tsbuildinfo +1 -1
package/src/call/permission.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { Account } from "../local/account.js";
|
|
2
|
+
import { LocalMark } from "../local/local.js";
|
|
1
3
|
import { CallBase, CallResult, Namedbject } from "./base.js";
|
|
2
4
|
import { PassportObject, IsValidAddress, Errors, ERROR, Permission, Permission_Entity, Permission_Index, BizPermission,
|
|
3
|
-
PermissionIndexType, TransactionBlock
|
|
5
|
+
PermissionIndexType, TransactionBlock,
|
|
6
|
+
Permission_Index_Entity
|
|
4
7
|
} from 'wowok';
|
|
5
8
|
|
|
6
9
|
/// The execution priority is determined by the order in which the object attributes are arranged
|
|
@@ -16,6 +19,7 @@ export interface CallPermission_Data {
|
|
|
16
19
|
}
|
|
17
20
|
export class CallPermission extends CallBase {
|
|
18
21
|
data: CallPermission_Data;
|
|
22
|
+
object_address: string | undefined = undefined;
|
|
19
23
|
constructor(data:CallPermission_Data) {
|
|
20
24
|
super();
|
|
21
25
|
this.data = data;
|
|
@@ -23,9 +27,9 @@ export class CallPermission extends CallBase {
|
|
|
23
27
|
|
|
24
28
|
async call(account?:string) : Promise<CallResult> {
|
|
25
29
|
var checkOwner = false; var checkAdmin = false;
|
|
26
|
-
|
|
30
|
+
this.object_address = await LocalMark.Instance().get_address((this.data?.object as any)?.address);
|
|
27
31
|
|
|
28
|
-
if (object_address
|
|
32
|
+
if (this.object_address) {
|
|
29
33
|
if (this.data?.builder !== undefined || this.data?.admin !== undefined) {
|
|
30
34
|
checkOwner = true;
|
|
31
35
|
}
|
|
@@ -35,18 +39,17 @@ export class CallPermission extends CallBase {
|
|
|
35
39
|
if (this.data?.description !== undefined) {
|
|
36
40
|
checkAdmin = true;
|
|
37
41
|
}
|
|
38
|
-
return await this.check_permission_and_call(object_address, [], [], checkOwner, checkAdmin, account)
|
|
42
|
+
return await this.check_permission_and_call(this.object_address, [], [], checkOwner, checkAdmin, account)
|
|
39
43
|
}
|
|
40
44
|
return await this.exec(account)
|
|
41
45
|
}
|
|
42
46
|
protected async operate (txb:TransactionBlock, passport?:PassportObject, account?:string) {
|
|
43
47
|
let obj : Permission | undefined ;
|
|
44
|
-
const object_address = (this.data?.object as any)?.address;
|
|
45
48
|
|
|
46
|
-
if (!object_address
|
|
49
|
+
if (!this.object_address) {
|
|
47
50
|
obj = Permission.New(txb, this.data?.description??'');
|
|
48
51
|
} else {
|
|
49
|
-
obj = Permission.From(txb, object_address)
|
|
52
|
+
obj = Permission.From(txb, this.object_address)
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
if (obj) {
|
|
@@ -56,15 +59,15 @@ export class CallPermission extends CallBase {
|
|
|
56
59
|
if (this.data?.admin !== undefined) {
|
|
57
60
|
switch(this.data.admin?.op) {
|
|
58
61
|
case 'add':
|
|
59
|
-
|
|
62
|
+
case 'set':
|
|
63
|
+
if (this.data.admin?.op === 'set') obj?.remove_admin([], true);
|
|
64
|
+
var addrs = await LocalMark.Instance().get_many_address2(this.data.admin.addresses);
|
|
65
|
+
obj?.add_admin(addrs);
|
|
60
66
|
break;
|
|
61
67
|
case 'remove':
|
|
68
|
+
var addrs = await LocalMark.Instance().get_many_address2(this.data.admin.addresses);
|
|
62
69
|
obj?.remove_admin(this.data.admin.addresses);
|
|
63
70
|
break;
|
|
64
|
-
case 'set':
|
|
65
|
-
obj?.remove_admin([], true);
|
|
66
|
-
obj?.add_admin(this.data.admin.addresses);
|
|
67
|
-
break
|
|
68
71
|
case 'removeall':
|
|
69
72
|
obj?.remove_admin([], true);
|
|
70
73
|
break;
|
|
@@ -87,26 +90,50 @@ export class CallPermission extends CallBase {
|
|
|
87
90
|
if (this.data?.permission !== undefined) {
|
|
88
91
|
switch (this.data.permission.op) {
|
|
89
92
|
case 'add entity':
|
|
90
|
-
|
|
93
|
+
var add = [];
|
|
94
|
+
for (let i = 0; i < this.data.permission.entities.length; ++i) {
|
|
95
|
+
const v = this.data.permission.entities[i];
|
|
96
|
+
const addr = await LocalMark.Instance().get_address(v.address);
|
|
97
|
+
if (addr) {
|
|
98
|
+
v.address = addr;
|
|
99
|
+
add.push(v);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
obj?.add_entity(add);
|
|
91
103
|
break;
|
|
92
104
|
case 'add permission':
|
|
105
|
+
for (let i = 0; i < this.data.permission.permissions.length; ++i) {
|
|
106
|
+
const v = this.data.permission.permissions[i];
|
|
107
|
+
const e:Permission_Index_Entity[] = [];
|
|
108
|
+
for (let j = 0; j < v.entities.length; ++j) {
|
|
109
|
+
const addr = await LocalMark.Instance().get_address(v.entities[j].address);
|
|
110
|
+
const guard = (typeof(v.entities[j].guard) === 'string') ? await LocalMark.Instance().get_address(v.entities[j].guard as string) : undefined;
|
|
111
|
+
if (addr) {
|
|
112
|
+
e.push({address:addr, guard:guard})
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
v.entities = e;
|
|
116
|
+
}
|
|
93
117
|
obj?.add_entity3(this.data.permission.permissions);
|
|
94
118
|
break;
|
|
95
119
|
case 'remove entity':
|
|
96
|
-
obj?.remove_entity(this.data.permission.addresses);
|
|
120
|
+
obj?.remove_entity(await LocalMark.Instance().get_many_address2(this.data.permission.addresses));
|
|
97
121
|
break;
|
|
98
122
|
case 'remove permission':
|
|
99
|
-
|
|
123
|
+
const addr = await LocalMark.Instance().get_address(this.data.permission.address);
|
|
124
|
+
if (addr) obj?.remove_index(addr, this.data.permission.index);
|
|
100
125
|
break;
|
|
101
126
|
case 'transfer permission':
|
|
102
|
-
|
|
127
|
+
const [from, to] = await LocalMark.Instance().get_many_address([this.data.permission.from_address, this.data.permission.to_address]);
|
|
128
|
+
if (from && to) obj?.transfer_permission(from, to);
|
|
103
129
|
break;
|
|
104
130
|
}
|
|
105
131
|
}
|
|
106
132
|
if (this.data?.builder !== undefined ) {
|
|
107
|
-
|
|
133
|
+
const b = await Account.Instance().get(this.data.builder);
|
|
134
|
+
if (b) obj?.change_owner(b.address);
|
|
108
135
|
}
|
|
109
|
-
if (!object_address) {
|
|
136
|
+
if (!this.object_address) {
|
|
110
137
|
await this.new_with_mark('Permission', txb, obj.launch(), (this.data?.object as any)?.namedNew, account);
|
|
111
138
|
}
|
|
112
139
|
}
|
package/src/call/personal.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { TransactionBlock, PassportObject, IsValidAddress, Errors, ERROR, Entity, Entity_Info, Resource} from 'wowok';
|
|
2
2
|
import { CallBase, CallResult, Namedbject } from "./base.js";
|
|
3
|
+
import { LocalMark } from '../local/local.js';
|
|
3
4
|
|
|
4
5
|
/// The execution priority is determined by the order in which the object attributes are arranged
|
|
5
6
|
export interface CallPersonal_Data {
|
|
6
7
|
mark_object?: {address:string} | {namedNew?: Namedbject}; // undefined or {named_new...} for creating a new personal resource object ; // undefined for creating personal resource object
|
|
7
8
|
information?: Entity_Info;
|
|
8
|
-
mark?: {op:'add
|
|
9
|
+
mark?: {op:'add'; data:{address:string; name?:string; tags?:string[]}[]}
|
|
9
10
|
| {op:'remove'; data:{address:string; tags?:string[]}[]}
|
|
10
11
|
| {op:'removeall'; addresses:string[]}
|
|
11
12
|
| {op:'transfer'; address: string}
|
|
@@ -33,8 +34,8 @@ export class CallPersonal extends CallBase {
|
|
|
33
34
|
return ;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
const object_address = (this.data?.mark_object as any)?.address;
|
|
37
|
-
if (!object_address
|
|
37
|
+
const object_address = await LocalMark.Instance().get_address((this.data?.mark_object as any)?.address);
|
|
38
|
+
if (!object_address) {
|
|
38
39
|
obj = Resource.From(txb, entity.create_resource2());
|
|
39
40
|
} else {
|
|
40
41
|
obj = Resource.From(txb, object_address)
|
|
@@ -47,28 +48,53 @@ export class CallPersonal extends CallBase {
|
|
|
47
48
|
|
|
48
49
|
if (obj && obj?.get_object()) {
|
|
49
50
|
switch(this.data.mark.op) {
|
|
50
|
-
case 'add
|
|
51
|
-
|
|
51
|
+
case 'add':
|
|
52
|
+
const add = [];
|
|
53
|
+
for (let i = 0; i < this.data.mark.data.length; ++i) {
|
|
54
|
+
const v = this.data.mark.data[i];
|
|
55
|
+
const addr = await LocalMark.Instance().get_address(v.address);
|
|
56
|
+
if (addr) {
|
|
57
|
+
v.address = addr;
|
|
58
|
+
add.push(v)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
add.forEach(v => {
|
|
52
63
|
obj?.add(v.address, v.tags ?? [], v.name)
|
|
53
64
|
})
|
|
54
65
|
break;
|
|
55
66
|
case 'remove':
|
|
56
|
-
|
|
67
|
+
const remove = [];
|
|
68
|
+
for (let i = 0; i < this.data.mark.data.length; ++i) {
|
|
69
|
+
const v = this.data.mark.data[i];
|
|
70
|
+
const addr = await LocalMark.Instance().get_address(v.address);
|
|
71
|
+
if (addr) {
|
|
72
|
+
v.address = addr;
|
|
73
|
+
remove.push(v)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
remove.forEach(v => {
|
|
57
77
|
obj?.remove(v.address, v.tags ?? [])
|
|
58
78
|
})
|
|
59
79
|
break;
|
|
60
80
|
case 'removeall':
|
|
61
|
-
this.data.mark.addresses.
|
|
62
|
-
|
|
63
|
-
|
|
81
|
+
for (let i = 0; i < this.data.mark.addresses.length; ++i) {
|
|
82
|
+
const v = this.data.mark.addresses[i];
|
|
83
|
+
const addr = await LocalMark.Instance().get_address(v);
|
|
84
|
+
if (addr) {
|
|
85
|
+
obj?.removeall(v)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
64
88
|
break;
|
|
65
89
|
}
|
|
66
90
|
|
|
67
|
-
if (this.data?.mark?.op === 'transfer' && obj
|
|
68
|
-
|
|
91
|
+
if (this.data?.mark?.op === 'transfer' && obj) {
|
|
92
|
+
const addr = await LocalMark.Instance().get_address(this.data.mark.address);
|
|
93
|
+
if (addr) entity.transfer_resource(obj, addr);
|
|
69
94
|
}
|
|
70
|
-
if (this.data?.mark?.op === 'replace'
|
|
71
|
-
|
|
95
|
+
if (this.data?.mark?.op === 'replace') {
|
|
96
|
+
const addr = await LocalMark.Instance().get_address(this.data.mark.address);
|
|
97
|
+
if (addr) entity.use_resource(Resource.From(txb, addr));
|
|
72
98
|
}
|
|
73
99
|
|
|
74
100
|
if (!object_address) {
|
package/src/call/repository.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { TransactionBlock, PassportObject, IsValidAddress, Errors, ERROR, Permis
|
|
|
3
3
|
Repository_Policy_Data_Remove, Repository_Policy_Mode,
|
|
4
4
|
} from 'wowok';
|
|
5
5
|
import { CallBase, CallResult, Namedbject} from "./base.js";
|
|
6
|
+
import { LocalMark } from '../local/local.js';
|
|
7
|
+
import { ObjectRepository } from '../query/objects.js';
|
|
6
8
|
|
|
7
9
|
|
|
8
10
|
/// The execution priority is determined by the order in which the object attributes are arranged
|
|
@@ -25,10 +27,21 @@ export class CallRepository extends CallBase {
|
|
|
25
27
|
async call(account?:string) : Promise<CallResult> {
|
|
26
28
|
var checkOwner = false;
|
|
27
29
|
const perms : PermissionIndexType[] = [];
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
var [permission_address, object_address] =
|
|
31
|
+
await LocalMark.Instance().get_many_address(
|
|
32
|
+
[(this.data?.permission as any)?.address,
|
|
33
|
+
(this.data?.object as any)?.address]);
|
|
30
34
|
|
|
31
|
-
if (
|
|
35
|
+
if (object_address) {
|
|
36
|
+
if (!permission_address) {
|
|
37
|
+
await this.update_content(object_address, 'Repository');
|
|
38
|
+
if (this.content) {
|
|
39
|
+
permission_address = (this.content as ObjectRepository).permission;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (permission_address) {
|
|
32
45
|
if (!this.data?.object) {
|
|
33
46
|
perms.push(PermissionIndex.repository)
|
|
34
47
|
}
|
|
@@ -51,21 +64,24 @@ export class CallRepository extends CallBase {
|
|
|
51
64
|
|
|
52
65
|
protected async operate(txb:TransactionBlock, passport?:PassportObject, account?:string) {
|
|
53
66
|
let obj : Repository | undefined ; let permission: any;
|
|
54
|
-
|
|
55
|
-
|
|
67
|
+
var [permission_address, object_address] = this?.content ?
|
|
68
|
+
[(this.content as ObjectRepository).permission, this.content.object] :
|
|
69
|
+
await LocalMark.Instance().get_many_address(
|
|
70
|
+
[(this.data?.permission as any)?.address,
|
|
71
|
+
(this.data?.object as any)?.address]);
|
|
56
72
|
|
|
57
73
|
if (!object_address) {
|
|
58
|
-
if (!permission_address
|
|
74
|
+
if (!permission_address) {
|
|
59
75
|
const d = (this.data?.permission as any)?.description ?? '';
|
|
60
76
|
permission = Permission.New(txb, d);
|
|
61
77
|
}
|
|
62
78
|
|
|
63
79
|
obj = Repository.New(txb, permission ? permission.get_object() : permission_address, this.data?.description??'', this.data?.mode, permission?undefined:passport)
|
|
64
80
|
} else {
|
|
65
|
-
if (
|
|
81
|
+
if (permission_address) {
|
|
66
82
|
obj = Repository.From(txb, permission_address, object_address)
|
|
67
83
|
} else {
|
|
68
|
-
ERROR(Errors.InvalidParam, '
|
|
84
|
+
ERROR(Errors.InvalidParam, 'CallRepository_Data.data.permission')
|
|
69
85
|
}
|
|
70
86
|
}
|
|
71
87
|
|
|
@@ -77,14 +93,12 @@ export class CallRepository extends CallBase {
|
|
|
77
93
|
if (this.data?.reference !== undefined) {
|
|
78
94
|
switch (this.data.reference.op) {
|
|
79
95
|
case 'set':
|
|
80
|
-
obj?.remove_reference([], true, pst);
|
|
81
|
-
obj?.add_reference(this.data.reference.addresses, pst);
|
|
82
|
-
break;
|
|
83
96
|
case 'add':
|
|
84
|
-
|
|
97
|
+
if (this.data.reference.op === 'set') obj?.remove_reference([], true, pst);
|
|
98
|
+
obj?.add_reference(await LocalMark.Instance().get_many_address2(this.data.reference.addresses), pst);
|
|
85
99
|
break;
|
|
86
100
|
case 'remove':
|
|
87
|
-
obj?.remove_reference(this.data.reference.addresses, false, pst);
|
|
101
|
+
obj?.remove_reference(await LocalMark.Instance().get_many_address2(this.data.reference.addresses), false, pst);
|
|
88
102
|
break;
|
|
89
103
|
case 'removeall':
|
|
90
104
|
obj?.remove_reference([], true, pst);
|