wowok_agent 0.1.13 → 0.1.16

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 (253) hide show
  1. package/README.md +17 -0
  2. package/dist/124.index.js +1 -0
  3. package/dist/account.d.ts +38 -0
  4. package/dist/account.d.ts.map +1 -0
  5. package/dist/account.js +273 -0
  6. package/dist/agent/empty.d.ts +1 -0
  7. package/dist/agent/empty.d.ts.map +1 -0
  8. package/dist/agent/src/account.d.ts +38 -0
  9. package/dist/agent/src/account.d.ts.map +1 -0
  10. package/dist/agent/src/cache.d.ts +46 -0
  11. package/dist/agent/src/cache.d.ts.map +1 -0
  12. package/dist/agent/src/call/arbitration.d.ts +63 -0
  13. package/dist/agent/src/call/arbitration.d.ts.map +1 -0
  14. package/dist/agent/src/call/base.d.ts +34 -0
  15. package/dist/agent/src/call/base.d.ts.map +1 -0
  16. package/dist/agent/src/call/demand.d.ts +55 -0
  17. package/dist/agent/src/call/demand.d.ts.map +1 -0
  18. package/dist/agent/src/call/guard.d.ts +44 -0
  19. package/dist/agent/src/call/guard.d.ts.map +1 -0
  20. package/dist/agent/src/call/machine.d.ts +109 -0
  21. package/dist/agent/src/call/machine.d.ts.map +1 -0
  22. package/dist/agent/src/call/object_permission.d.ts +13 -0
  23. package/dist/agent/src/call/object_permission.d.ts.map +1 -0
  24. package/dist/agent/src/call/permission.d.ts +47 -0
  25. package/dist/agent/src/call/permission.d.ts.map +1 -0
  26. package/dist/agent/src/call/personal.d.ts +43 -0
  27. package/dist/agent/src/call/personal.d.ts.map +1 -0
  28. package/dist/agent/src/call/repository.d.ts +53 -0
  29. package/dist/agent/src/call/repository.d.ts.map +1 -0
  30. package/dist/agent/src/call/service.d.ts +134 -0
  31. package/dist/agent/src/call/service.d.ts.map +1 -0
  32. package/dist/agent/src/call/treasury.d.ts +53 -0
  33. package/dist/agent/src/call/treasury.d.ts.map +1 -0
  34. package/dist/agent/src/call.d.ts +24 -0
  35. package/dist/agent/src/call.d.ts.map +1 -0
  36. package/dist/agent/src/events.d.ts +65 -0
  37. package/dist/agent/src/events.d.ts.map +1 -0
  38. package/dist/agent/src/index.d.ts +19 -0
  39. package/dist/agent/src/index.d.ts.map +1 -0
  40. package/dist/agent/src/objects.d.ts +308 -0
  41. package/dist/agent/src/objects.d.ts.map +1 -0
  42. package/dist/agent/src/permission.d.ts +12 -0
  43. package/dist/agent/src/permission.d.ts.map +1 -0
  44. package/dist/agent/src/private_info.d.ts +26 -0
  45. package/dist/agent/src/private_info.d.ts.map +1 -0
  46. package/dist/cache.d.ts +46 -0
  47. package/dist/cache.d.ts.map +1 -0
  48. package/dist/cache.js +59 -0
  49. package/dist/call/arbitration.d.ts +63 -0
  50. package/dist/call/arbitration.d.ts.map +1 -0
  51. package/dist/call/arbitration.js +182 -0
  52. package/dist/call/base.d.ts +34 -0
  53. package/dist/call/base.d.ts.map +1 -0
  54. package/dist/call/base.js +131 -0
  55. package/dist/call/demand.d.ts +55 -0
  56. package/dist/call/demand.d.ts.map +1 -0
  57. package/dist/call/demand.js +135 -0
  58. package/dist/call/guard.d.ts +44 -0
  59. package/dist/call/guard.d.ts.map +1 -0
  60. package/dist/call/guard.js +244 -0
  61. package/dist/call/machine.d.ts +109 -0
  62. package/dist/call/machine.d.ts.map +1 -0
  63. package/dist/call/machine.js +210 -0
  64. package/dist/call/object_permission.d.ts +13 -0
  65. package/dist/call/object_permission.d.ts.map +1 -0
  66. package/dist/call/object_permission.js +49 -0
  67. package/dist/call/permission.d.ts +47 -0
  68. package/dist/call/permission.d.ts.map +1 -0
  69. package/dist/call/permission.js +95 -0
  70. package/dist/call/personal.d.ts +43 -0
  71. package/dist/call/personal.d.ts.map +1 -0
  72. package/dist/call/personal.js +60 -0
  73. package/dist/call/repository.d.ts +53 -0
  74. package/dist/call/repository.d.ts.map +1 -0
  75. package/dist/call/repository.js +125 -0
  76. package/dist/call/service.d.ts +134 -0
  77. package/dist/call/service.d.ts.map +1 -0
  78. package/dist/call/service.js +340 -0
  79. package/dist/call/treasury.d.ts +53 -0
  80. package/dist/call/treasury.d.ts.map +1 -0
  81. package/dist/call/treasury.js +161 -0
  82. package/dist/call.d.ts +24 -0
  83. package/dist/call.d.ts.map +1 -0
  84. package/dist/call.js +58 -0
  85. package/dist/empty.d.ts +1 -0
  86. package/dist/empty.d.ts.map +1 -0
  87. package/dist/empty.js +1 -0
  88. package/dist/events.d.ts +65 -0
  89. package/dist/events.d.ts.map +1 -0
  90. package/dist/events.js +59 -0
  91. package/dist/index.d.ts +19 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +1 -0
  94. package/dist/objects.d.ts +308 -0
  95. package/dist/objects.d.ts.map +1 -0
  96. package/dist/objects.js +448 -0
  97. package/dist/permission.d.ts +12 -0
  98. package/dist/permission.d.ts.map +1 -0
  99. package/dist/permission.js +40 -0
  100. package/dist/private_info.d.ts +26 -0
  101. package/dist/private_info.d.ts.map +1 -0
  102. package/dist/private_info.js +243 -0
  103. package/dist/src/account.d.ts +38 -0
  104. package/dist/src/account.d.ts.map +1 -0
  105. package/dist/src/account.js +273 -0
  106. package/dist/src/cache.d.ts +46 -0
  107. package/dist/src/cache.d.ts.map +1 -0
  108. package/dist/src/cache.js +59 -0
  109. package/dist/src/call/arbitration.d.ts +63 -0
  110. package/dist/src/call/arbitration.d.ts.map +1 -0
  111. package/dist/src/call/arbitration.js +182 -0
  112. package/dist/src/call/base.d.ts +34 -0
  113. package/dist/src/call/base.d.ts.map +1 -0
  114. package/dist/src/call/base.js +131 -0
  115. package/dist/src/call/demand.d.ts +55 -0
  116. package/dist/src/call/demand.d.ts.map +1 -0
  117. package/dist/src/call/demand.js +135 -0
  118. package/dist/src/call/guard.d.ts +44 -0
  119. package/dist/src/call/guard.d.ts.map +1 -0
  120. package/dist/src/call/guard.js +244 -0
  121. package/dist/src/call/machine.d.ts +109 -0
  122. package/dist/src/call/machine.d.ts.map +1 -0
  123. package/dist/src/call/machine.js +210 -0
  124. package/dist/src/call/object_permission.d.ts +13 -0
  125. package/dist/src/call/object_permission.d.ts.map +1 -0
  126. package/dist/src/call/object_permission.js +49 -0
  127. package/dist/src/call/permission.d.ts +47 -0
  128. package/dist/src/call/permission.d.ts.map +1 -0
  129. package/dist/src/call/permission.js +95 -0
  130. package/dist/src/call/personal.d.ts +43 -0
  131. package/dist/src/call/personal.d.ts.map +1 -0
  132. package/dist/src/call/personal.js +60 -0
  133. package/dist/src/call/repository.d.ts +53 -0
  134. package/dist/src/call/repository.d.ts.map +1 -0
  135. package/dist/src/call/repository.js +125 -0
  136. package/dist/src/call/service.d.ts +134 -0
  137. package/dist/src/call/service.d.ts.map +1 -0
  138. package/dist/src/call/service.js +340 -0
  139. package/dist/src/call/treasury.d.ts +53 -0
  140. package/dist/src/call/treasury.d.ts.map +1 -0
  141. package/dist/src/call/treasury.js +161 -0
  142. package/dist/src/call.d.ts +24 -0
  143. package/dist/src/call.d.ts.map +1 -0
  144. package/dist/src/call.js +58 -0
  145. package/dist/src/events.d.ts +65 -0
  146. package/dist/src/events.d.ts.map +1 -0
  147. package/dist/src/events.js +59 -0
  148. package/dist/src/index.d.ts +19 -0
  149. package/dist/src/index.d.ts.map +1 -0
  150. package/dist/src/index.js +18 -0
  151. package/dist/src/objects.d.ts +308 -0
  152. package/dist/src/objects.d.ts.map +1 -0
  153. package/dist/src/objects.js +448 -0
  154. package/dist/src/permission.d.ts +12 -0
  155. package/dist/src/permission.d.ts.map +1 -0
  156. package/dist/src/permission.js +40 -0
  157. package/dist/src/private_info.d.ts +26 -0
  158. package/dist/src/private_info.d.ts.map +1 -0
  159. package/dist/src/private_info.js +243 -0
  160. package/dist/webpack.config.d.ts +2 -0
  161. package/dist/webpack.config.d.ts.map +1 -0
  162. package/dist/webpack.config.js +17 -0
  163. package/dist/wowok/src/arbitration.d.ts +63 -0
  164. package/dist/wowok/src/arbitration.d.ts.map +1 -0
  165. package/dist/wowok/src/demand.d.ts +26 -0
  166. package/dist/wowok/src/demand.d.ts.map +1 -0
  167. package/dist/wowok/src/entity.d.ts +27 -0
  168. package/dist/wowok/src/entity.d.ts.map +1 -0
  169. package/dist/wowok/src/exception.d.ts +31 -0
  170. package/dist/wowok/src/exception.d.ts.map +1 -0
  171. package/dist/wowok/src/guard.d.ts +79 -0
  172. package/dist/wowok/src/guard.d.ts.map +1 -0
  173. package/dist/wowok/src/index.d.ts +35 -0
  174. package/dist/wowok/src/index.d.ts.map +1 -0
  175. package/dist/wowok/src/machine.d.ts +67 -0
  176. package/dist/wowok/src/machine.d.ts.map +1 -0
  177. package/dist/wowok/src/passport.d.ts +86 -0
  178. package/dist/wowok/src/passport.d.ts.map +1 -0
  179. package/dist/wowok/src/payment.d.ts +16 -0
  180. package/dist/wowok/src/payment.d.ts.map +1 -0
  181. package/dist/wowok/src/permission.d.ts +150 -0
  182. package/dist/wowok/src/permission.d.ts.map +1 -0
  183. package/dist/wowok/src/progress.d.ts +72 -0
  184. package/dist/wowok/src/progress.d.ts.map +1 -0
  185. package/dist/wowok/src/protocol.d.ts +226 -0
  186. package/dist/wowok/src/protocol.d.ts.map +1 -0
  187. package/dist/wowok/src/repository.d.ts +83 -0
  188. package/dist/wowok/src/repository.d.ts.map +1 -0
  189. package/dist/wowok/src/resource.d.ts +35 -0
  190. package/dist/wowok/src/resource.d.ts.map +1 -0
  191. package/dist/wowok/src/service.d.ts +138 -0
  192. package/dist/wowok/src/service.d.ts.map +1 -0
  193. package/dist/wowok/src/treasury.d.ts +55 -0
  194. package/dist/wowok/src/treasury.d.ts.map +1 -0
  195. package/dist/wowok/src/utils.d.ts +93 -0
  196. package/dist/wowok/src/utils.d.ts.map +1 -0
  197. package/dist/wowok/src/wowok.d.ts +15 -0
  198. package/dist/wowok/src/wowok.d.ts.map +1 -0
  199. package/dist/wowok_agent/empty.d.ts +1 -0
  200. package/dist/wowok_agent/empty.d.ts.map +1 -0
  201. package/dist/wowok_agent/src/account.d.ts +38 -0
  202. package/dist/wowok_agent/src/account.d.ts.map +1 -0
  203. package/dist/wowok_agent/src/cache.d.ts +46 -0
  204. package/dist/wowok_agent/src/cache.d.ts.map +1 -0
  205. package/dist/wowok_agent/src/call/arbitration.d.ts +63 -0
  206. package/dist/wowok_agent/src/call/arbitration.d.ts.map +1 -0
  207. package/dist/wowok_agent/src/call/base.d.ts +34 -0
  208. package/dist/wowok_agent/src/call/base.d.ts.map +1 -0
  209. package/dist/wowok_agent/src/call/demand.d.ts +55 -0
  210. package/dist/wowok_agent/src/call/demand.d.ts.map +1 -0
  211. package/dist/wowok_agent/src/call/guard.d.ts +44 -0
  212. package/dist/wowok_agent/src/call/guard.d.ts.map +1 -0
  213. package/dist/wowok_agent/src/call/machine.d.ts +109 -0
  214. package/dist/wowok_agent/src/call/machine.d.ts.map +1 -0
  215. package/dist/wowok_agent/src/call/object_permission.d.ts +13 -0
  216. package/dist/wowok_agent/src/call/object_permission.d.ts.map +1 -0
  217. package/dist/wowok_agent/src/call/permission.d.ts +47 -0
  218. package/dist/wowok_agent/src/call/permission.d.ts.map +1 -0
  219. package/dist/wowok_agent/src/call/personal.d.ts +43 -0
  220. package/dist/wowok_agent/src/call/personal.d.ts.map +1 -0
  221. package/dist/wowok_agent/src/call/repository.d.ts +53 -0
  222. package/dist/wowok_agent/src/call/repository.d.ts.map +1 -0
  223. package/dist/wowok_agent/src/call/service.d.ts +134 -0
  224. package/dist/wowok_agent/src/call/service.d.ts.map +1 -0
  225. package/dist/wowok_agent/src/call/treasury.d.ts +53 -0
  226. package/dist/wowok_agent/src/call/treasury.d.ts.map +1 -0
  227. package/dist/wowok_agent/src/call.d.ts +24 -0
  228. package/dist/wowok_agent/src/call.d.ts.map +1 -0
  229. package/dist/wowok_agent/src/events.d.ts +65 -0
  230. package/dist/wowok_agent/src/events.d.ts.map +1 -0
  231. package/dist/wowok_agent/src/index.d.ts +19 -0
  232. package/dist/wowok_agent/src/index.d.ts.map +1 -0
  233. package/dist/wowok_agent/src/objects.d.ts +308 -0
  234. package/dist/wowok_agent/src/objects.d.ts.map +1 -0
  235. package/dist/wowok_agent/src/permission.d.ts +12 -0
  236. package/dist/wowok_agent/src/permission.d.ts.map +1 -0
  237. package/dist/wowok_agent/src/private_info.d.ts +26 -0
  238. package/dist/wowok_agent/src/private_info.d.ts.map +1 -0
  239. package/empty.ts +0 -0
  240. package/package.json +12 -3
  241. package/src/account.ts +40 -37
  242. package/src/call/arbitration.ts +41 -19
  243. package/src/call/base.ts +14 -16
  244. package/src/call/demand.ts +8 -7
  245. package/src/call/guard.ts +2 -7
  246. package/src/call/machine.ts +56 -35
  247. package/src/call/repository.ts +17 -15
  248. package/src/call/service.ts +87 -55
  249. package/src/call/treasury.ts +11 -10
  250. package/src/call.ts +3 -3
  251. package/src/index.ts +1 -1
  252. package/tsconfig.json +6 -2
  253. package/webpack.config.cjs +26 -0
@@ -0,0 +1,448 @@
1
+ /**
2
+ * Provide a query interface for AI
3
+ *
4
+ */
5
+ import { Protocol, Progress, ERROR, Errors, IsValidAddress, Bcs } from 'wowok';
6
+ import { WowokCache, OBJECT_KEY, CacheName } from './cache';
7
+ export var CacheType;
8
+ (function (CacheType) {
9
+ CacheType["localStorage"] = "localStorage";
10
+ CacheType["memoryStorage"] = "memoryStorage";
11
+ })(CacheType || (CacheType = {}));
12
+ const MEMORY_STORAGE = new Map();
13
+ /* json: ObjectsQuery string; return ObjectsAnswer */
14
+ export const query_objects_json = async (json) => {
15
+ try {
16
+ const q = JSON.parse(json);
17
+ return JSON.stringify({ data: await query_objects(q) });
18
+ }
19
+ catch (e) {
20
+ return JSON.stringify({ error: e?.toString() });
21
+ }
22
+ };
23
+ /* json: TableQuery string; return TableAnswer */
24
+ export const query_table_json = async (json) => {
25
+ try {
26
+ const q = JSON.parse(json);
27
+ return JSON.stringify({ data: await query_table(q) });
28
+ }
29
+ catch (e) {
30
+ return JSON.stringify({ error: e?.toString() });
31
+ }
32
+ };
33
+ // query personal information; json: ObjectsAnswer; return ObjectPersonal | undefined .
34
+ export const query_personal_json = async (json) => {
35
+ try {
36
+ const q = JSON.parse(json);
37
+ return JSON.stringify({ data: (await queryTableItem_Personal(q) ?? '') });
38
+ }
39
+ catch (e) {
40
+ return JSON.stringify({ error: e?.toString() });
41
+ }
42
+ };
43
+ export const query_objects = async (query) => {
44
+ var ret = [];
45
+ const pending = [];
46
+ const time = new Date().getTime();
47
+ const cache = WowokCache.Instance().get(CacheName.object);
48
+ if (cache) {
49
+ for (let i = 0; i < query.objects.length; ++i) {
50
+ try {
51
+ let data = cache.load(OBJECT_KEY(query.objects[i], CacheName.object));
52
+ if (data) {
53
+ const r = JSON.parse(data);
54
+ if (r?.expire !== 'INFINITE' && (query?.no_cache || r.expire <= time) && (query.showOwner || query.showContent)) { //@ type immutable
55
+ pending.push(query.objects[i]);
56
+ }
57
+ else {
58
+ const d = data2object(JSON.parse(r.data));
59
+ d.cache_expire = r.expire;
60
+ ret.push(d);
61
+ }
62
+ }
63
+ }
64
+ catch (e) {
65
+ console.log(e);
66
+ }
67
+ pending.push(query.objects[i]);
68
+ }
69
+ }
70
+ if (pending.length > 0) {
71
+ const res = await Protocol.Client().multiGetObjects({ ids: [...pending],
72
+ options: { showContent: query.showContent, showType: query.showType, showOwner: query.showOwner } });
73
+ const cache = WowokCache.Instance().get(CacheName.object);
74
+ if (cache) {
75
+ const now = new Date().getTime();
76
+ res.forEach((i) => {
77
+ try {
78
+ if (i?.data) {
79
+ const type_raw = i.data?.type ?? (i.data?.content?.type ?? undefined);
80
+ const type = type_raw ? Protocol.Instance().object_name_from_type_repr(type_raw) : undefined;
81
+ const expire = (type === 'Guard' || type === 'Payment') ? 'INFINITE' : (cache.expire_time() + now); // guard & payment immutable
82
+ const r = { expire: expire, data: JSON.stringify(i.data) };
83
+ cache.save(OBJECT_KEY(i.data.objectId, CacheName.object), JSON.stringify(r));
84
+ }
85
+ }
86
+ catch (e) {
87
+ console.log(e);
88
+ }
89
+ });
90
+ }
91
+ ret = ret.concat(res.map(v => data2object(v?.data)));
92
+ }
93
+ return { objects: ret };
94
+ };
95
+ export const queryTableItem_Personal = async (query) => {
96
+ if (!IsValidAddress(query.address))
97
+ ERROR(Errors.IsValidAddress, 'entity.address');
98
+ const time = new Date().getTime();
99
+ const cache = WowokCache.Instance().get(CacheName.personal);
100
+ if (cache && !query.no_cache) {
101
+ try {
102
+ let data = cache.load(OBJECT_KEY(query.address, CacheName.personal));
103
+ if (data) {
104
+ const r = JSON.parse(data);
105
+ if (r?.expire === 'INFINITE' || r.expire <= time) {
106
+ const d = JSON.parse(r.data);
107
+ d.cache_expire = r.expire;
108
+ return d;
109
+ }
110
+ }
111
+ }
112
+ catch (e) {
113
+ console.log(e);
114
+ }
115
+ }
116
+ const res = await tableItem(tableItemQuery_byAddress(Protocol.Instance().objectEntity(), query.address));
117
+ if (res.type === 'Personal') {
118
+ if (cache) {
119
+ try {
120
+ const expire = cache.expire_time() + ((new Date()).getTime()); // guard & payment immutable
121
+ const r = { expire: expire, data: JSON.stringify(res) };
122
+ cache.save(OBJECT_KEY(query.address, CacheName.personal), JSON.stringify(r));
123
+ res.cache_expire = expire;
124
+ }
125
+ catch (e) {
126
+ console.log(e);
127
+ }
128
+ }
129
+ return res;
130
+ }
131
+ };
132
+ export const query_table = async (query) => {
133
+ const res = await Protocol.Client().getDynamicFields({ parentId: query.parent, cursor: query.cursor, limit: query.limit });
134
+ return { items: res?.data?.map(v => {
135
+ return { object: v.objectId, type: v.type, version: v.version, key: {
136
+ type: v.name.type, value: v.name.value
137
+ } };
138
+ }), nextCursor: res.nextCursor, hasNextPage: res.hasNextPage };
139
+ };
140
+ export const queryTableItem_DemandPresenter = async (demand_object, address) => {
141
+ return await tableItem(tableItemQuery_byAddress(demand_object, address));
142
+ };
143
+ export const queryTableItem_PermissionEntity = async (permission_object, address) => {
144
+ return await tableItem(tableItemQuery_byAddress(permission_object, address));
145
+ };
146
+ export const queryTableItem_ArbVote = async (arb_object, address) => {
147
+ return await tableItem(tableItemQuery_byAddress(arb_object, address));
148
+ };
149
+ export const tableItemQuery_MachineNode = async (machine_object, name) => {
150
+ return await tableItem(tableItemQuery_byString(machine_object, name));
151
+ };
152
+ export const tableItemQuery_ServiceSale = async (service_object, name) => {
153
+ return await tableItem(tableItemQuery_byString(service_object, name));
154
+ };
155
+ export const tableItemQuery_ProgressHistory = async (progress_object, index) => {
156
+ return await tableItem(tableItemQuery_byU64(progress_object, index));
157
+ };
158
+ export const tableItemQuery_TreasuryHistory = async (treasury_object, index) => {
159
+ return await tableItem(tableItemQuery_byU64(treasury_object, index));
160
+ };
161
+ export const tableItemQuery_RepositoryData = async (repository_object, address, name) => {
162
+ if (typeof (repository_object) !== 'string') {
163
+ repository_object = repository_object.object;
164
+ }
165
+ return await tableItem({ parent: repository_object, key: { type: Protocol.Instance().package('wowok') + '::repository::DataKey', value: { id: address, key: name } } });
166
+ };
167
+ export const tableItemQuery_MarkTag = async (resource_object, address) => {
168
+ return await tableItem(tableItemQuery_byAddress(resource_object, address));
169
+ };
170
+ function tableItemQuery_byAddress(parent, address) {
171
+ if (typeof (parent) !== 'string') {
172
+ parent = parent.object;
173
+ }
174
+ return { parent: parent, key: { type: 'address', value: address } };
175
+ }
176
+ function tableItemQuery_byString(parent, name) {
177
+ if (typeof (parent) !== 'string') {
178
+ parent = parent.object;
179
+ }
180
+ return { parent: parent, key: { type: '0x1::string::String', value: name } };
181
+ }
182
+ function tableItemQuery_byU64(parent, index) {
183
+ if (typeof (parent) !== 'string') {
184
+ parent = parent.object;
185
+ }
186
+ return { parent: parent, key: { type: 'u64', value: index } };
187
+ }
188
+ const tableItem = async (query) => {
189
+ const res = await Protocol.Client().getDynamicFieldObject({ parentId: query.parent, name: { type: query.key.type, value: query.key.value } });
190
+ return data2object(res?.data);
191
+ };
192
+ export function raw2type(type_raw) {
193
+ if (!type_raw)
194
+ return undefined;
195
+ const t = Protocol.Instance().object_name_from_type_repr(type_raw);
196
+ if (t === 'Permission' || t === 'Demand' || t === 'Machine' || t === 'Progress' || t === 'Order' || t === 'Service' ||
197
+ t === 'Treasury' || t === 'Arb' || t === 'Repository' || t === 'Payment' || t === 'Discount' || t === 'Guard' || t === 'Arbitration') {
198
+ return t;
199
+ }
200
+ else if (t === 'Resource') {
201
+ return 'PersonalMark';
202
+ }
203
+ const start = type_raw?.indexOf('0x2::dynamic_field::Field<');
204
+ if (start === 0) {
205
+ const end = type_raw?.substring('0x2::dynamic_field::Field<'.length);
206
+ if (end && Protocol.Instance().hasPackage(end)) {
207
+ if (end.includes('::demand::Tips>')) {
208
+ return 'TableItem_DemandPresenter';
209
+ }
210
+ else if (end.includes('::machine::NodePair>>>')) {
211
+ return 'TableItem_MachineNode';
212
+ }
213
+ else if (end.includes('::progress::History>')) {
214
+ return 'TableItem_ProgressHistory';
215
+ }
216
+ else if (end.includes('::service::Sale>')) {
217
+ return 'TableItem_ServiceSale';
218
+ }
219
+ else if (end.includes('::treasury::Record>')) {
220
+ return 'TableItem_TreasuryHistory';
221
+ }
222
+ else if (end.includes('::arb::Voted>')) {
223
+ return 'TableItem_ArbVote';
224
+ }
225
+ else if (end.includes('::permission::Perm>>')) {
226
+ return 'TableItem_PermissionEntity';
227
+ }
228
+ else if (end.includes('::repository::DataKey')) {
229
+ return 'TableItem_RepositoryData';
230
+ }
231
+ else if (end.includes('::entity::Ent>')) {
232
+ return 'Personal';
233
+ }
234
+ else if (end.includes('::resource::Tags>')) {
235
+ return 'TableItem_PersonalMark';
236
+ }
237
+ }
238
+ }
239
+ return undefined;
240
+ }
241
+ export function data2object(data) {
242
+ const content = data?.content?.fields;
243
+ const id = data?.objectId ?? (content?.id?.id ?? undefined);
244
+ const type_raw = data?.type ?? (data?.content?.type ?? undefined);
245
+ const version = data?.version ?? undefined;
246
+ const owner = data?.owner ?? undefined;
247
+ const type = raw2type(type_raw);
248
+ if (type) {
249
+ switch (type) {
250
+ case 'Permission':
251
+ return { object: id, type: type, type_raw: type_raw, owner: owner, version: version,
252
+ builder: content?.builder ?? '', admin: content?.admin, description: content?.description ?? '',
253
+ entity_count: parseInt(content?.table?.fields?.size),
254
+ biz_permission: content?.user_define?.fields?.contents?.map((v) => {
255
+ return { id: parseInt(v?.fields?.key), name: v?.fields?.value };
256
+ })
257
+ };
258
+ case 'Demand':
259
+ return {
260
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
261
+ permission: content?.permission, description: content?.description,
262
+ guard: content?.guard ? { object: content?.guard, service_id_in_guard: content?.service_identifier } : undefined,
263
+ time_expire: content?.time_expire, yes: content?.yes,
264
+ presenter_count: parseInt(content?.presenters?.fields?.size),
265
+ bounty: content?.bounty?.map((v) => {
266
+ return { type: v?.fields?.type, object: v?.fields?.id?.id, balance: v?.fields?.balance };
267
+ })
268
+ };
269
+ case 'Machine':
270
+ return {
271
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
272
+ permission: content?.permission ?? '', description: content?.description ?? '',
273
+ bPaused: content?.bPaused, bPublished: content?.bPublished, endpoint: content?.endpoint,
274
+ consensus_repository: content?.consensus_repositories, node_count: parseInt(content?.nodes?.fields?.size),
275
+ };
276
+ case 'Progress':
277
+ return {
278
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
279
+ machine: content?.machine, current: content?.current, task: content?.task,
280
+ parent: content?.parent, history_count: parseInt(content?.history?.fields?.contents?.fields?.size),
281
+ namedOperator: content?.namedOperator?.fields?.contents?.map((v) => {
282
+ return { name: v?.fields?.key, operator: v?.fields?.value };
283
+ }),
284
+ session: content?.session?.fields?.contents?.map((v) => {
285
+ return { weights: v?.fields?.value?.fields?.weight, threshold: v?.fields?.value?.fields?.threshold,
286
+ next_node: v?.fields?.key, forward: v?.fields?.value?.fields?.forwards?.fields?.contents?.map((i) => {
287
+ return { forward_name: i?.fields?.key, accomplished: i?.fields?.value?.fields?.accomplished,
288
+ msg: i?.fields?.value?.fields?.msg, orders: i?.fields?.value?.fields?.orders,
289
+ time: i?.fields?.value?.fields?.time, holder: i?.fields?.value?.fields?.who
290
+ };
291
+ })
292
+ };
293
+ })
294
+ };
295
+ case 'Order':
296
+ return {
297
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
298
+ service: content?.service, amount: content?.amount, agent: content?.agent, arb: content?.dispute,
299
+ payer: content?.payer, progress: content?.progress, discount: content?.discount, balance: content?.payed,
300
+ required_info: content?.required_info ?
301
+ { pubkey: content?.required_info?.fields?.customer_pub, msg_encrypted: content?.required_info?.fields?.info }
302
+ : undefined,
303
+ item: content?.items?.map((v) => {
304
+ return { name: v?.fields?.name, price: v?.fields?.price, stock: v?.fields?.stock, endpoint: v?.fields?.endpoint };
305
+ }),
306
+ };
307
+ case 'Service':
308
+ return {
309
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
310
+ machine: content?.machine, permission: content?.permission, description: content?.description,
311
+ arbitration: content?.arbitrations, bPaused: content?.bPaused, bPublished: content?.bPublished,
312
+ buy_guard: content?.buy_guard, endpoint: content?.endpoint, payee: content?.payee, repository: content?.repositories,
313
+ withdraw_guard: content?.withdraw_guard?.fields?.contents?.map((v) => {
314
+ return { object: v?.fields?.key, percent: v?.fields?.value };
315
+ }),
316
+ refund_guard: content?.refund_guard?.fields?.contents?.map((v) => {
317
+ return { object: v?.fields?.key, percent: v?.fields?.value };
318
+ }),
319
+ sales_count: parseInt(content?.sales?.fields?.size), extern_withdraw_treasury: content?.extern_withdraw_treasuries,
320
+ customer_required_info: content?.customer_required ?
321
+ { pubkey: content?.customer_required?.fields?.service_pubkey, required_info: content?.customer_required?.fields?.customer_required_info }
322
+ : undefined,
323
+ };
324
+ case 'Treasury':
325
+ return {
326
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
327
+ permission: content?.permission, description: content?.description, withdraw_mode: content?.withdraw_mode,
328
+ history_count: parseInt(content?.history?.fields?.contents?.fields?.size), balance: content?.balance,
329
+ deposit_guard: content?.deposit_guard, withdraw_guard: content?.withdraw_guard?.fields?.contents?.map((v) => {
330
+ return { object: v?.fields?.key, percent: v?.fields?.value };
331
+ })
332
+ };
333
+ case 'Arbitration':
334
+ return {
335
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
336
+ permission: content?.permission, description: content?.description, fee: content?.fee,
337
+ fee_treasury: content?.fee_treasury, usage_guard: content?.usage_guard,
338
+ endpoint: content?.endpoint, bPaused: content?.bPaused, voting_guard: content?.voting_guard?.fields?.contents?.map((v) => {
339
+ return { object: v?.fields?.key, weights: v?.fields?.value };
340
+ })
341
+ };
342
+ case 'Arb':
343
+ return {
344
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
345
+ arbitration: content?.arbitration, description: content?.description, fee: content?.fee,
346
+ feedback: content?.feedback, indemnity: content?.indemnity, order: content?.order,
347
+ voted_count: parseInt(content?.voted?.fields?.size),
348
+ proposition: content?.proposition?.fields?.contents?.map((v) => {
349
+ return { proposition: v?.fields?.key, votes: v?.fields?.value };
350
+ })
351
+ };
352
+ case 'Repository':
353
+ return {
354
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
355
+ permission: content?.permission, description: content?.description, policy_mode: content?.policy_mode,
356
+ data_count: parseInt(content?.data?.fields?.size), reference: content?.reference, rep_type: content?.type,
357
+ policy: content?.policies?.fields?.contents?.map((v) => {
358
+ return { key: v?.fields?.key, description: v?.fields?.value?.fields?.description,
359
+ permissionIndex: v?.fields?.value?.fields?.permission_index, dataType: v?.fields?.value?.fields?.value_type };
360
+ })
361
+ };
362
+ case 'Payment':
363
+ return {
364
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
365
+ signer: content?.signer, time: content?.time, remark: content?.remark, from: content?.from,
366
+ biz_id: content?.index, for_guard: content?.for_guard, for_object: content?.for_object,
367
+ amount: content?.amount, record: content?.record?.map((v) => {
368
+ return { recipient: v?.fields?.recipient, amount: v?.fields?.amount };
369
+ })
370
+ };
371
+ case 'Discount':
372
+ return {
373
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
374
+ service: content?.service, time_start: content?.time_start, time_end: content?.time_end,
375
+ price_greater: content?.price_greater, off_type: content?.type, off: content?.off,
376
+ name: content?.name
377
+ };
378
+ case 'Guard':
379
+ return {
380
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
381
+ description: content?.description, input: Uint8Array.from(content?.input?.fields?.bytes),
382
+ identifier: content?.constants?.map((v) => {
383
+ return { id: v?.fields?.identifier, bWitness: v?.fields?.bWitness, value: Uint8Array.from(v?.fields?.value) };
384
+ })
385
+ };
386
+ case 'PersonalMark':
387
+ return {
388
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
389
+ tag_count: parseInt(content?.tags?.fields?.size)
390
+ };
391
+ case 'TableItem_DemandPresenter':
392
+ return {
393
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
394
+ service: content?.name, presenter: content?.value?.fields?.who, recommendation: content?.value?.fields?.tips
395
+ };
396
+ case 'TableItem_ProgressHistory':
397
+ return {
398
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
399
+ history: Progress.DeHistory(content)
400
+ };
401
+ case 'TableItem_ServiceSale':
402
+ return {
403
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
404
+ item: { item: content?.name, stock: content?.value?.fields?.stock, price: content?.value?.fields?.price,
405
+ endpoint: content?.value?.fields?.endpoint
406
+ }
407
+ };
408
+ case 'TableItem_TreasuryHistory':
409
+ return {
410
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
411
+ id: content?.name, payment: content?.value?.fields?.payment, signer: content?.value?.fields?.signer,
412
+ operation: content?.value?.fields?.op, amount: content?.value?.fields?.amount, time: content?.value?.fields?.time
413
+ };
414
+ case 'TableItem_ArbVote':
415
+ return {
416
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
417
+ singer: content?.name, vote: content?.value?.fields?.agrees, time: content?.value?.fields?.time,
418
+ weight: content?.value?.fields?.weight
419
+ };
420
+ case 'TableItem_PermissionEntity':
421
+ return {
422
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
423
+ entity: content?.name, permission: content?.value?.map((v) => {
424
+ return { id: v?.fields.index, guard: v?.fields.guard };
425
+ })
426
+ };
427
+ case 'TableItem_RepositoryData':
428
+ return {
429
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
430
+ address: content?.name?.fields?.id, key: content?.name?.fields?.key, data: Uint8Array.from(content?.value)
431
+ };
432
+ case 'Personal':
433
+ const info = Bcs.getInstance().de_entInfo(Uint8Array.from(content?.value?.fields?.avatar));
434
+ return {
435
+ object: id, type: type, type_raw: type_raw, owner: owner, version: version,
436
+ address: content?.name, like: content?.value?.fields?.like, dislike: content?.value?.fields?.dislike,
437
+ mark_object: content?.value?.fields?.resource, lastActive_digest: data?.previousTransaction,
438
+ info: { homepage: info?.homepage, name: info?.name, avatar: info?.avatar, twitter: info?.twitter, discord: info?.discord,
439
+ description: info?.description }
440
+ };
441
+ case 'TableItem_PersonalMark':
442
+ return { object: id, type: type, type_raw: type_raw, owner: owner, version: version,
443
+ address: content?.name, name: content?.value?.fields?.nick, tags: content?.value?.fields?.tags
444
+ };
445
+ }
446
+ }
447
+ return { object: id, type: undefined, type_raw: type_raw, owner: owner, version: version };
448
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Provides permission lookup for an address:
3
+ * not only the permission table, but also the administrator or Builder identity.
4
+ */
5
+ import { PermissionAnswer } from 'wowok';
6
+ export interface PermissionQuery {
7
+ permission_object: string;
8
+ address: string;
9
+ }
10
+ export declare const query_permission_json: (json: string) => Promise<string>;
11
+ export declare const query_permission: (query: PermissionQuery) => Promise<PermissionAnswer>;
12
+ //# sourceMappingURL=permission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA8E,gBAAgB,EAAM,MAAM,OAAO,CAAC;AAEzH,MAAM,WAAW,eAAe;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,qBAAqB,GAAU,MAAK,MAAM,KAAI,OAAO,CAAC,MAAM,CAOxE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,OAAM,eAAe,KAAI,OAAO,CAAC,gBAAgB,CAyBvF,CAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Provides permission lookup for an address:
3
+ * not only the permission table, but also the administrator or Builder identity.
4
+ */
5
+ import { TransactionBlock, Protocol, Bcs, IsValidAddress, Errors, ERROR, Permission, BCS } from 'wowok';
6
+ /*json: PermissionQuery; return PermissionAnswer */
7
+ export const query_permission_json = async (json) => {
8
+ try {
9
+ const q = JSON.parse(json);
10
+ return JSON.stringify({ data: await query_permission(q) });
11
+ }
12
+ catch (e) {
13
+ return JSON.stringify({ error: e });
14
+ }
15
+ };
16
+ export const query_permission = async (query) => {
17
+ if (!IsValidAddress(query.permission_object)) {
18
+ ERROR(Errors.IsValidAddress, 'permission.permission_object');
19
+ } /*
20
+ if (!IsValidAddress(query.address)) {
21
+ ERROR(Errors.IsValidAddress, 'permission.address')
22
+ }*/
23
+ const txb = new TransactionBlock();
24
+ const object = Permission.From(txb, query.permission_object);
25
+ object.query_permissions_all(query.address);
26
+ const res = await Protocol.Client().devInspectTransactionBlock({ sender: query.address, transactionBlock: txb });
27
+ if (res.results && res.results[0].returnValues && res.results[0].returnValues.length !== 2) {
28
+ ERROR(Errors.Fail, 'permission.retValues');
29
+ }
30
+ const perm = Bcs.getInstance().de(BCS.U8, Uint8Array.from(res.results[0].returnValues[0][0]));
31
+ if (perm === Permission.PERMISSION_ADMIN || perm === Permission.PERMISSION_OWNER_AND_ADMIN) {
32
+ return { who: query.address, admin: true, owner: perm % 2 === 1, items: [], object: query.permission_object };
33
+ }
34
+ else {
35
+ const perms = Bcs.getInstance().de_perms(Uint8Array.from(res.results[0].returnValues[1][0]));
36
+ return { who: query.address, admin: false, owner: perm % 2 === 1, items: perms.map((v) => {
37
+ return { query: v?.index, permission: true, guard: v?.guard };
38
+ }), object: query.permission_object };
39
+ }
40
+ };
@@ -0,0 +1,26 @@
1
+ import { BuyRequiredEnum } from 'wowok';
2
+ export interface PrivateInfo_Data {
3
+ name: string;
4
+ default?: boolean;
5
+ info: Map<BuyRequiredEnum | string, string>;
6
+ }
7
+ export declare class PrivateInfo {
8
+ constructor(storage?: 'File' | 'Explorer');
9
+ static _instance: any;
10
+ static Instance(): PrivateInfo;
11
+ private storage;
12
+ private _add;
13
+ private _remove;
14
+ private _default;
15
+ private _get;
16
+ private _rename;
17
+ set_storage(storage?: 'File' | 'Explorer'): void;
18
+ default(): PrivateInfo_Data | undefined;
19
+ get(name?: string, bNotFoundReturnDefault?: boolean): PrivateInfo_Data | undefined;
20
+ rename(oldName: string, newName: string, bSwapIfExisted?: boolean): boolean;
21
+ list(): PrivateInfo_Data[];
22
+ add(name: string, info: Map<BuyRequiredEnum | string, string>, bDefault?: boolean): void;
23
+ remove(name: string): void;
24
+ removeall(): void;
25
+ }
26
+ //# sourceMappingURL=private_info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private_info.d.ts","sourceRoot":"","sources":["../src/private_info.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAKxC,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,qBAAa,WAAW;gBACR,OAAO,GAAE,MAAM,GAAG,UAAmB;IAGjD,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;IAEtB,MAAM,CAAC,QAAQ,IAAK,WAAW;IAM/B,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,IAAI;IAyBZ,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,OAAO;IA0Bf,WAAW,CAAC,OAAO,GAAE,MAAM,GAAG,UAAmB;IAIjD,OAAO,IAAK,gBAAgB,GAAG,SAAS;IAUxC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sBAAsB,GAAC,OAAY,GAAI,gBAAgB,GAAG,SAAS;IAUtF,MAAM,CAAC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,EAAE,cAAc,GAAC,OAAY,GAAI,OAAO;IAe7E,IAAI,IAAK,gBAAgB,EAAE;IAY3B,GAAG,CAAC,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,CAAC,eAAe,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO;IAe/E,MAAM,CAAC,IAAI,EAAC,MAAM;IAelB,SAAS;CAUZ"}