@wowok/agent-mcp 2.2.13 → 2.2.15

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 (126) hide show
  1. package/README.md +19 -11
  2. package/dist/index.js +44 -100
  3. package/dist/schema/query/index.js +1 -1
  4. package/dist/schema-query/index.d.ts +29 -0
  5. package/dist/schema-query/index.js +149 -0
  6. package/dist/schemas/account_operation.schema.json +255 -0
  7. package/dist/schemas/guard2file.schema.json +71 -0
  8. package/dist/schemas/index.json +139 -0
  9. package/dist/schemas/local_info_operation.schema.json +142 -0
  10. package/dist/schemas/local_mark_operation.schema.json +119 -0
  11. package/dist/schemas/machineNode2file.schema.json +71 -0
  12. package/dist/schemas/messenger_operation.schema.json +1393 -0
  13. package/dist/schemas/onchain_events.schema.json +113 -0
  14. package/dist/schemas/onchain_operations.schema.json +376 -0
  15. package/dist/schemas/onchain_operations_allocation.schema.json +914 -0
  16. package/dist/schemas/onchain_operations_arbitration.schema.json +1166 -0
  17. package/dist/schemas/onchain_operations_contact.schema.json +853 -0
  18. package/dist/schemas/onchain_operations_demand.schema.json +984 -0
  19. package/dist/schemas/onchain_operations_gen_passport.schema.json +1141 -0
  20. package/dist/schemas/onchain_operations_guard.schema.json +713 -0
  21. package/dist/schemas/onchain_operations_machine.schema.json +1347 -0
  22. package/dist/schemas/onchain_operations_order.schema.json +830 -0
  23. package/dist/schemas/onchain_operations_payment.schema.json +717 -0
  24. package/dist/schemas/onchain_operations_permission.schema.json +1088 -0
  25. package/dist/schemas/onchain_operations_personal.schema.json +1282 -0
  26. package/dist/schemas/onchain_operations_progress.schema.json +751 -0
  27. package/dist/schemas/onchain_operations_repository.schema.json +1572 -0
  28. package/dist/schemas/onchain_operations_reward.schema.json +955 -0
  29. package/dist/schemas/onchain_operations_service.schema.json +1411 -0
  30. package/dist/schemas/onchain_operations_treasury.schema.json +1155 -0
  31. package/dist/schemas/onchain_table_data.schema.json +35 -0
  32. package/dist/schemas/query_toolkit.schema.json +32 -0
  33. package/dist/schemas/schema_query.schema.json +33 -0
  34. package/dist/schemas/wip_file.schema.json +27 -0
  35. package/dist/schemas/wowok_buildin_info.schema.json +487 -0
  36. package/package.json +7 -5
  37. package/dist/docs/index.d.ts +0 -3
  38. package/dist/docs/index.js +0 -2
  39. package/dist/docs/loader.d.ts +0 -12
  40. package/dist/docs/loader.js +0 -177
  41. package/dist/docs/search.d.ts +0 -17
  42. package/dist/docs/search.js +0 -325
  43. package/dist/docs/types.d.ts +0 -55
  44. package/dist/docs/types.js +0 -1
  45. package/docs/README.md +0 -249
  46. package/docs/WIP.md +0 -388
  47. package/docs/WTS.md +0 -536
  48. package/docs/docs/account.md +0 -914
  49. package/docs/docs/allocation.md +0 -635
  50. package/docs/docs/arbitration.md +0 -1804
  51. package/docs/docs/arbitration_state_machine.md +0 -270
  52. package/docs/docs/contact.md +0 -709
  53. package/docs/docs/demand.md +0 -948
  54. package/docs/docs/guard.md +0 -1465
  55. package/docs/docs/localinfo.md +0 -432
  56. package/docs/docs/localmark.md +0 -583
  57. package/docs/docs/machine.md +0 -2490
  58. package/docs/docs/messenger.md +0 -2098
  59. package/docs/docs/onchain_events.md +0 -267
  60. package/docs/docs/order.md +0 -1001
  61. package/docs/docs/payment.md +0 -512
  62. package/docs/docs/permission.md +0 -1438
  63. package/docs/docs/personal.md +0 -742
  64. package/docs/docs/progress.md +0 -1748
  65. package/docs/docs/query.md +0 -467
  66. package/docs/docs/repository.md +0 -1043
  67. package/docs/docs/reward.md +0 -833
  68. package/docs/docs/service.md +0 -2130
  69. package/docs/docs/stage-01-introduction.md +0 -243
  70. package/docs/docs/stage-02-trust.md +0 -302
  71. package/docs/docs/stage-03-collaboration.md +0 -337
  72. package/docs/docs/stage-04-transaction.md +0 -277
  73. package/docs/docs/stage-05-business.md +0 -151
  74. package/docs/docs/stage-06-personal.md +0 -203
  75. package/docs/docs/stage-07-query.md +0 -572
  76. package/docs/docs/stage-08-examples.md +0 -184
  77. package/docs/docs/treasury.md +0 -1149
  78. package/docs/docs/wowok_buildin_info.md +0 -740
  79. package/docs/examples/Insurance/Insurance.md +0 -594
  80. package/docs/examples/Insurance/Insurance_TestResults.md +0 -481
  81. package/docs/examples/Insurance/insurance_complete_guard_v1.json +0 -50
  82. package/docs/examples/MyShop/MyShop.md +0 -1353
  83. package/docs/examples/MyShop/MyShop_TestResults.md +0 -1003
  84. package/docs/examples/MyShop_Advanced/MyShop_Advanced.md +0 -1898
  85. package/docs/examples/MyShop_Advanced/MyShop_Advanced_MerchantSystem_TestResults.md +0 -1297
  86. package/docs/examples/MyShop_Advanced/MyShop_Advanced_OrderFlow_TestResults.md +0 -743
  87. package/docs/examples/MyShop_Advanced/machine_nodes.json +0 -222
  88. package/docs/examples/ThreeBody_Signature/ThreeBody_Signature.md +0 -776
  89. package/docs/examples/ThreeBody_Signature/ThreeBody_Signature_TestResults.md +0 -599
  90. package/docs/examples/Travel/Travel.md +0 -1157
  91. package/docs/examples/Travel/Travel_TestResults.md +0 -743
  92. package/docs/examples/Travel/calc-weather-timestamps.js +0 -8
  93. package/docs/examples/Travel/travel_machine_v2_export.json +0 -104
  94. package/docs/examples/Travel/weather_check_guard_v1.json +0 -51
  95. package/docs/skills/WOWOK.md +0 -650
  96. package/docs/skills/onchain_operations/_common.md +0 -406
  97. package/docs/skills/onchain_operations/_index.md +0 -196
  98. package/docs/skills/onchain_operations/allocation.md +0 -28
  99. package/docs/skills/onchain_operations/arbitration.md +0 -106
  100. package/docs/skills/onchain_operations/contact.md +0 -40
  101. package/docs/skills/onchain_operations/demand.md +0 -53
  102. package/docs/skills/onchain_operations/gen_passport.md +0 -23
  103. package/docs/skills/onchain_operations/guard.md +0 -56
  104. package/docs/skills/onchain_operations/machine.md +0 -89
  105. package/docs/skills/onchain_operations/order.md +0 -56
  106. package/docs/skills/onchain_operations/payment.md +0 -24
  107. package/docs/skills/onchain_operations/permission.md +0 -68
  108. package/docs/skills/onchain_operations/personal.md +0 -58
  109. package/docs/skills/onchain_operations/progress.md +0 -38
  110. package/docs/skills/onchain_operations/repository.md +0 -70
  111. package/docs/skills/onchain_operations/reward.md +0 -38
  112. package/docs/skills/onchain_operations/service.md +0 -78
  113. package/docs/skills/onchain_operations/treasury.md +0 -68
  114. package/docs/skills/schema-account_operation.md +0 -402
  115. package/docs/skills/schema-guard2file.md +0 -153
  116. package/docs/skills/schema-local_info_operation.md +0 -160
  117. package/docs/skills/schema-local_mark_operation.md +0 -148
  118. package/docs/skills/schema-machineNode2file.md +0 -155
  119. package/docs/skills/schema-messenger_operation.md +0 -547
  120. package/docs/skills/schema-onchain_events.md +0 -201
  121. package/docs/skills/schema-onchain_table_data.md +0 -334
  122. package/docs/skills/schema-query_toolkit.md +0 -395
  123. package/docs/skills/schema-wip_file.md +0 -240
  124. package/docs/skills/schema-wowok_buildin_info.md +0 -296
  125. package/docs/wip-examples/three_body.html +0 -57
  126. package/docs/wip-examples/three_body.wip +0 -30
@@ -1,948 +0,0 @@
1
- # Demand Component (🎯 Service Requests)
2
-
3
- ---
4
-
5
- ## Component Overview
6
-
7
- The Demand component is used to post service requests with reward pools on-chain.
8
-
9
- ---
10
-
11
- ## Function List
12
-
13
- | Function Name | Purpose | Usage Scenario | Significance |
14
- |---------------|---------|----------------|-------------|
15
- | **Create Demand** | Post service requests | Request specific services with requirements | Initiates service discovery process |
16
- | **Recommend Service** | Suggest services to fulfill demand | Match demand with suitable providers | Facilitates service-provider matching |
17
- | **Manage Guards** | Configure validation rules | Ensure recommended services meet criteria | Quality control for service recommendations |
18
- | **Bind Components** | Attach rewards, contacts, etc. | Set up incentive pools and communication | Enhances demand with additional features |
19
- | **Provide Feedback** | Give feedback on recommendations | Rate and comment on suggested services | Improves matching quality over time |
20
- | **Owner Receive** | Unwrap and receive objects | Collect rewards, payments for fulfilled demands | Enables value transfer to demand owners |
21
-
22
- ---
23
-
24
- ## Schema Tree (4-Level Structure)
25
-
26
- ```
27
- Demand Component
28
- ├── operation_type: "demand"
29
- ├── data
30
- │ ├── object
31
- │ │ ├── Option 1: Name or Address (string)
32
- │ │ │ └── [demand_name or demand_id]
33
- │ │ └── Option 2: Named Object with Permission
34
- │ │ ├── name (string, optional)
35
- │ │ ├── tags (array of strings, optional)
36
- │ │ ├── onChain (boolean, optional)
37
- │ │ ├── replaceExistName (boolean, optional)
38
- │ │ └── permission
39
- │ │ ├── Option 1: Name or Address (string)
40
- │ │ │ └── [permission_name or permission_id]
41
- │ │ └── Option 2: Named Object with Description
42
- │ │ ├── name (string, optional)
43
- │ │ ├── tags (array of strings, optional)
44
- │ │ ├── onChain (boolean, optional)
45
- │ │ ├── replaceExistName (boolean, optional)
46
- │ │ └── description (string, optional)
47
- │ ├── present (optional)
48
- │ │ ├── recommend (string) - max 4000 bcs characters
49
- │ │ ├── by_guard (string, optional)
50
- │ │ └── service (string, optional)
51
- │ ├── description (string, optional)
52
- │ ├── location (string, optional)
53
- │ ├── rewards (optional)
54
- │ │ ├── op: "add"
55
- │ │ │ └── objects (array of strings)
56
- │ │ ├── op: "set"
57
- │ │ │ └── objects (array of strings)
58
- │ │ ├── op: "remove"
59
- │ │ │ └── objects (array of strings)
60
- │ │ └── op: "clear"
61
- │ ├── feedback (optional, array)
62
- │ │ └── [feedback_item]
63
- │ │ ├── who (object)
64
- │ │ │ ├── name_or_address (string, optional)
65
- │ │ │ └── local_mark_first (boolean, optional)
66
- │ │ ├── acceptance_score (number, optional, 0-255)
67
- │ │ └── feedback (string, optional) - max 4000 bcs characters
68
- │ ├── guards (optional)
69
- │ │ ├── op: "add"
70
- │ │ │ └── guard (array)
71
- │ │ │ └── [service_guard]
72
- │ │ │ ├── guard (string)
73
- │ │ │ └── service_identifier (number or null, optional, 0-255)
74
- │ │ ├── op: "set"
75
- │ │ │ └── guard (array)
76
- │ │ │ └── [service_guard]
77
- │ │ │ ├── guard (string)
78
- │ │ │ └── service_identifier (number or null, optional, 0-255)
79
- │ │ ├── op: "remove"
80
- │ │ │ └── guard (array of strings)
81
- │ │ └── op: "clear"
82
- │ ├── owner_receive (transfer received coins or NFT objects to owner, optional)
83
- │ │ ├── Option 1: "recently" (string) - receive all recent objects
84
- │ │ ├── Option 2: Array of received objects
85
- │ │ │ └── [{ id: "object_id", type: "object_type" }]
86
- │ │ └── Option 3: Received balance object
87
- │ │ ├── balance (number or string)
88
- │ │ ├── token_type (string)
89
- │ │ └── received (array of received items)
90
- │ └── um (Contact object, optional)
91
- │ ├── Option 1: Contact object name or ID (string)
92
- │ └── Option 2: null (to unbind contact)
93
- ├── env (optional, execution environment)
94
- │ ├── account (string, optional) - account name or address, empty string for default
95
- │ ├── network (string, optional) - "testnet" or "localnet"
96
- │ ├── permission_guard (array, optional) - list of permission guard IDs
97
- │ ├── no_cache (boolean, optional) - disable caching
98
- │ └── referrer (string, optional) - referrer ID
99
- └── submission (optional, submission data)
100
- ├── type (string) - fixed value "submission"
101
- ├── guard (array) - list of guards to verify
102
- │ └── [{ object: "guard_id", impack: boolean }]
103
- └── submission (array) - submission data for guards
104
- └── [{ guard: "guard_id", submission: [guard_submission_items] }]
105
- └── guard_submission_items
106
- ├── identifier (number, 0-255) - Guard table item identifier
107
- ├── b_submission (boolean) - whether this item requires submission
108
- ├── value_type (number | string) - value type (e.g., 6 or "U64" for U64 type)
109
- ├── **value (any) - submitted value**
110
- └── name (string, optional) - item name
111
- ```
112
-
113
- ---
114
-
115
- ### ⚠️ Important Note About Submission
116
-
117
- If the execution returns a `submission` field in the response, it indicates that additional Guard verification data is required. You must:
118
-
119
- 1. Complete all required submission data within the `submission` structure
120
- 2. Resubmit the operation with the completed submission data
121
- 3. **Do not modify any other parts of the structure** - only fill in the required submission values
122
-
123
- The submission structure will specify which Guard objects need verification and what data needs to be provided for each Guard table item.
124
-
125
- **Query Value Types**: Use the `wowok_buildin_info` tool with `{ "info": "value types" }` to query all supported value types with their numeric and string representations. This helps you understand what `value_type` values are valid for submission data.
126
-
127
- ---
128
-
129
- ## Sub-function 1: Create New Demand
130
-
131
- ### Function Description
132
-
133
- Create a new Demand object for posting service requests.
134
-
135
- ### Parameter Description
136
-
137
- | Parameter | Type | Required | Description | Constraints |
138
- |-----------|------|----------|-------------|-------------|
139
- | `object` | string/object | Yes | Object name/ID or object definition | Required in all cases |
140
- | `object.name` | string | No | Local mark name | Max 64 BCS characters |
141
- | `object.permission` | string/object | No | Permission object | Can be existing permission ID/name, or new permission object |
142
- | `description` | string | No | Demand description | Max 4000 BCS characters |
143
- | `location` | string | No | Service location | Max 256 BCS characters |
144
-
145
-
146
- ### Examples
147
-
148
- #### Example 1.1: Create Simple Demand
149
-
150
- **Prompt:** Create a new demand object named "logo_design_demand" with description "Need a professional corporate LOGO design" and location "Online service".
151
-
152
- ```json
153
- {
154
- "operation_type": "demand",
155
- "data": {
156
- "object": {
157
- "name": "logo_design_demand"
158
- },
159
- "description": "Need a professional corporate LOGO design",
160
- "location": "Online service"
161
- }
162
- }
163
- ```
164
-
165
- **Execution Result**:
166
- ```json
167
- {
168
- "status": "success",
169
- "object": "0x2d49...f414",
170
- "type": "Demand",
171
- "version": "33729",
172
- "change": "created",
173
- "objects": [
174
- {
175
- "type": "Demand",
176
- "object": "0x2d49...f414",
177
- "change": "created"
178
- },
179
- {
180
- "type": "Permission",
181
- "object": "0xfe50...c914",
182
- "change": "created"
183
- }
184
- ]
185
- }
186
- ```
187
-
188
- #### Example 1.2: Create Demand with Existing Permission
189
-
190
- **Prompt:** Create a new demand named "website_design_demand", bind to existing permission "existing_permission", set description to "Need a modern corporate website design", and location to "Online service".
191
-
192
- ```json
193
- {
194
- "operation_type": "demand",
195
- "data": {
196
- "object": {
197
- "name": "website_design_demand",
198
- "permission": "existing_permission"
199
- },
200
- "description": "Need a modern corporate website design",
201
- "location": "Online service"
202
- }
203
- }
204
- ```
205
-
206
- **Execution Result**:
207
- ```json
208
- {
209
- "status": "success",
210
- "object": "0xfe82...45d9",
211
- "type": "Demand",
212
- "version": "33940",
213
- "change": "created",
214
- "objects": [
215
- {
216
- "type": "Demand",
217
- "object": "0xfe82...45d9",
218
- "change": "created"
219
- },
220
- {
221
- "type": "Permission",
222
- "object": "0x32f1...52e6",
223
- "change": "created"
224
- }
225
- ]
226
- }
227
- ```
228
-
229
- #### Example 1.3: Create Demand with New Permission
230
-
231
- **Prompt:** Create a new demand named "app_development_demand", create a new permission object named "demand_permission", set description to "Need a mobile app development service", and location to "Online service".
232
-
233
- ```json
234
- {
235
- "operation_type": "demand",
236
- "data": {
237
- "object": {
238
- "name": "app_development_demand",
239
- "permission": {
240
- "name": "demand_permission"
241
- }
242
- },
243
- "description": "Need a mobile app development service",
244
- "location": "Online service"
245
- }
246
- }
247
- ```
248
-
249
- **Execution Result**:
250
- ```json
251
- {
252
- "status": "success",
253
- "object": "0xa8b4...107e",
254
- "type": "Demand",
255
- "version": "34144",
256
- "change": "created",
257
- "objects": [
258
- {
259
- "type": "Demand",
260
- "object": "0xa8b4...107e",
261
- "change": "created"
262
- },
263
- {
264
- "type": "Permission",
265
- "object": "0xece8...601b",
266
- "change": "created"
267
- }
268
- ]
269
- }
270
- ```
271
-
272
- #### Example 1.4: Operate Existing Demand
273
-
274
- **Prompt:** Use the existing demand "logo_design_demand" and update its description to "Updated description for the demand".
275
-
276
- ```json
277
- {
278
- "operation_type": "demand",
279
- "data": {
280
- "object": "logo_design_demand",
281
- "description": "Updated description for the demand"
282
- }
283
- }
284
- ```
285
-
286
- **Execution Result**:
287
- ```json
288
- {
289
- "status": "success",
290
- "object": "0x2d49...f414",
291
- "type": "Demand",
292
- "version": "34145",
293
- "change": "mutated"
294
- }
295
- ```
296
-
297
- ---
298
-
299
- ## Sub-function 2: Recommend Service (present)
300
-
301
- ### Function Description
302
-
303
- Recommend a Service to the Demand object.
304
-
305
- ### Parameter Description
306
-
307
- | Parameter | Type | Required | Description |
308
- |-----------|------|----------|-------------|
309
- | `present.recommend` | string | Yes | Recommendation description | Max 4000 bcs characters |
310
- | `present.by_guard` | string | No | Guard ID or name, used to select which Guard's verification to pass through |
311
- | `present.service` | string | No | Service ID or name to present |
312
-
313
- ### Example
314
-
315
- **Prompt:** Use the existing demand "logo_design_demand" and present the service "design_service" with recommendation "This design service is very suitable for your needs".
316
-
317
- ```json
318
- {
319
- "operation_type": "demand",
320
- "data": {
321
- "object": "logo_design_demand",
322
- "present": {
323
- "recommend": "This design service is very suitable for your needs",
324
- "service": "design_service"
325
- }
326
- }
327
- }
328
- ```
329
-
330
- **Execution Result**:
331
- ```json
332
- {
333
- "status": "error",
334
- "error": "Dry run failed: MoveAbort in command 0"
335
- }
336
- ```
337
-
338
- **⚠️ Important Prerequisites**: Before using `present`, you must:
339
-
340
- 1. **Add a Guard to the Demand object first** (see Example 3.1 below)
341
- 2. **Use the same Guard** in the `by_guard` parameter when calling `present`
342
- 3. **Ensure the Guard validation passes** (use `always_true_guard_v4` for testing)
343
-
344
- **Complete workflow**:
345
- ```json
346
- // Step 1: Add Guard to Demand
347
- {
348
- "operation_type": "demand",
349
- "data": {
350
- "object": "logo_design_demand",
351
- "guards": {
352
- "op": "add",
353
- "guard": [{"guard": "always_true_guard_v4"}]
354
- }
355
- }
356
- }
357
-
358
- // Step 2: Present service with the same Guard
359
- {
360
- "operation_type": "demand",
361
- "data": {
362
- "object": "logo_design_demand",
363
- "present": {
364
- "recommend": "This design service is very suitable for your needs",
365
- "by_guard": "always_true_guard_v4",
366
- "service": "design_service"
367
- }
368
- }
369
- }
370
- ```
371
-
372
- **Execution Result (Complete workflow)**:
373
- ```json
374
- {
375
- "status": "success",
376
- "object": "0xbf55...02b9",
377
- "type": "Demand",
378
- "version": "63619",
379
- "change": "mutated",
380
- "objects": [
381
- {
382
- "type": "Demand",
383
- "object": "0xbf55...02b9",
384
- "change": "mutated"
385
- },
386
- {
387
- "type": "TableItem_DemandPresenter",
388
- "object": "0x9eda...2665",
389
- "change": "created"
390
- }
391
- ]
392
- }
393
- ```
394
-
395
- ---
396
-
397
- ## Sub-function 3: Manage Validation Guard List (guards)
398
-
399
- ### Function Description
400
-
401
- Manage the Demand object's validation Guard list, used to verify whether the service recommended by the user meets the requirements.
402
-
403
- ### Parameter Description
404
-
405
- | Parameter | Type | Required | Description |
406
- |-----------|------|----------|-------------|
407
- | `guards.op` | string | Yes | Operation type: add/set/remove/clear |
408
- | `guards.guard` | array | Required for add/set | List of Guard object IDs/names |
409
-
410
- ### Operation Type Description
411
-
412
- | Operation Type | Description |
413
- |----------------|-------------|
414
- | `add` | Add new Guards to existing list |
415
- | `set` | Replace entire Guard list |
416
- | `remove` | Remove specified Guards (use ID or name) |
417
- | `clear` | Clear all Guards |
418
-
419
- ### Examples
420
-
421
- #### Example 3.1: Add Guard
422
-
423
- **Prompt:** Use the existing demand "logo_design_demand" and add two guards: "service_qualification_check" and "price_check".
424
-
425
- ```json
426
- {
427
- "operation_type": "demand",
428
- "data": {
429
- "object": "logo_design_demand",
430
- "guards": {
431
- "op": "add",
432
- "guard": [
433
- {
434
- "guard": "service_qualification_check"
435
- },
436
- {
437
- "guard": "price_check"
438
- }
439
- ]
440
- }
441
- }
442
- }
443
- ```
444
-
445
- **Execution Result**:
446
- ```json
447
- {
448
- "status": "success",
449
- "object": "0x2d49...f414",
450
- "type": "Demand",
451
- "version": "34485",
452
- "change": "mutated"
453
- }
454
- ```
455
-
456
- #### Example 3.2: Set Guard List (Replace)
457
-
458
- **Prompt:** Use the existing demand "logo_design_demand" and replace the entire guard list with "service_qualification_check".
459
-
460
- ```json
461
- {
462
- "operation_type": "demand",
463
- "data": {
464
- "object": "logo_design_demand",
465
- "guards": {
466
- "op": "set",
467
- "guard": [
468
- {
469
- "guard": "service_qualification_check"
470
- }
471
- ]
472
- }
473
- }
474
- }
475
- ```
476
-
477
- #### Example 3.3: Remove Guard
478
-
479
- **Prompt:** Use the existing demand "logo_design_demand" and remove the guard "old_guard".
480
-
481
- ```json
482
- {
483
- "operation_type": "demand",
484
- "data": {
485
- "object": "logo_design_demand",
486
- "guards": {
487
- "op": "remove",
488
- "guard": ["old_guard"]
489
- }
490
- }
491
- }
492
- ```
493
-
494
- **Execution Result**:
495
- ```json
496
- {
497
- "status": "success",
498
- "object": "0x2d49...f414",
499
- "type": "Demand",
500
- "version": "...",
501
- "change": "mutated"
502
- }
503
- ```
504
-
505
- #### Example 3.4: Clear Guards
506
-
507
- **Prompt:** Use the existing demand "logo_design_demand" and clear all guards.
508
-
509
- ```json
510
- {
511
- "operation_type": "demand",
512
- "data": {
513
- "object": "logo_design_demand",
514
- "guards": {
515
- "op": "clear"
516
- }
517
- }
518
- }
519
- ```
520
-
521
- **Execution Result**:
522
- ```json
523
- {
524
- "status": "success",
525
- "object": "0x2d49...f414",
526
- "type": "Demand",
527
- "version": "...",
528
- "change": "mutated"
529
- }
530
- ```
531
-
532
- ---
533
-
534
- ## Sub-function 4: Bind Components
535
-
536
- ### Function Description
537
-
538
- Bind Reward, Contact and other components to Demand.
539
-
540
- ### Parameter Description
541
-
542
- | Parameter | Type | Required | Description |
543
- |-----------|------|----------|-------------|
544
- | `rewards` | object | No | Reward object list operation |
545
- | `rewards.op` | string | Yes | Operation: add/set/remove/clear |
546
- | `rewards.objects` | array | Required for add/set/remove | List of Reward object IDs/names |
547
- | `um` | string/null | No | Contact object ID/name, or null to unbind |
548
-
549
- ### Examples
550
-
551
- #### Example 4.1: Add Rewards
552
-
553
- **Prompt:** Use the existing demand "logo_design_demand", add reward "demand_reward", and bind contact "demand_contact".
554
-
555
- ```json
556
- {
557
- "operation_type": "demand",
558
- "data": {
559
- "object": "logo_design_demand",
560
- "rewards": {
561
- "op": "add",
562
- "objects": ["demand_reward"]
563
- },
564
- "um": "demand_contact"
565
- }
566
- }
567
- ```
568
-
569
- **Execution Result**:
570
- ```json
571
- {
572
- "status": "success",
573
- "object": "0x2d49...f414",
574
- "type": "Demand",
575
- "version": "34762",
576
- "change": "mutated"
577
- }
578
- ```
579
-
580
- #### Example 4.2: Set Rewards (Replace)
581
-
582
- **Prompt:** Use the existing demand "logo_design_demand" and replace the entire reward list with "reward_1" and "reward_2".
583
-
584
- ```json
585
- {
586
- "operation_type": "demand",
587
- "data": {
588
- "object": "logo_design_demand",
589
- "rewards": {
590
- "op": "set",
591
- "objects": ["reward_1", "reward_2"]
592
- }
593
- }
594
- }
595
- ```
596
-
597
- #### Example 4.3: Remove Rewards
598
-
599
- **Prompt:** Use the existing demand "logo_design_demand" and remove reward "old_reward".
600
-
601
- ```json
602
- {
603
- "operation_type": "demand",
604
- "data": {
605
- "object": "logo_design_demand",
606
- "rewards": {
607
- "op": "remove",
608
- "objects": ["old_reward"]
609
- }
610
- }
611
- }
612
- ```
613
-
614
- **Execution Result**:
615
- ```json
616
- {
617
- "status": "success",
618
- "object": "0x2d49...f414",
619
- "type": "Demand",
620
- "version": "...",
621
- "change": "mutated"
622
- }
623
- ```
624
-
625
- #### Example 4.4: Clear Rewards
626
-
627
- **Prompt:** Use the existing demand "logo_design_demand" and clear all rewards.
628
-
629
- ```json
630
- {
631
- "operation_type": "demand",
632
- "data": {
633
- "object": "logo_design_demand",
634
- "rewards": {
635
- "op": "clear"
636
- }
637
- }
638
- }
639
- ```
640
-
641
- #### Example 4.5: Bind Contact
642
-
643
- **Prompt:** Use the existing demand "logo_design_demand" and bind contact "demand_contact".
644
-
645
- ```json
646
- {
647
- "operation_type": "demand",
648
- "data": {
649
- "object": "logo_design_demand",
650
- "um": "demand_contact"
651
- }
652
- }
653
- ```
654
-
655
- **Execution Result**:
656
- ```json
657
- {
658
- "status": "success",
659
- "object": "0x2d49...f414",
660
- "type": "Demand",
661
- "version": "34762",
662
- "change": "mutated"
663
- }
664
- ```
665
-
666
- #### Example 4.6: Unbind Contact
667
-
668
- **Prompt:** Use the existing demand "logo_design_demand" and unbind the contact.
669
-
670
- ```json
671
- {
672
- "operation_type": "demand",
673
- "data": {
674
- "object": "logo_design_demand",
675
- "um": null
676
- }
677
- }
678
- ```
679
-
680
- **Execution Result**:
681
- ```json
682
- {
683
- "status": "success",
684
- "object": "0x2d49...f414",
685
- "type": "Demand",
686
- "version": "...",
687
- "change": "mutated"
688
- }
689
- ```
690
-
691
- ---
692
-
693
- ## Sub-function 5: Provide User Feedback (feedback)
694
-
695
- ### Function Description
696
-
697
- Provide user feedback information for the Demand object.
698
-
699
- ### Parameter Description
700
-
701
- | Parameter | Type | Required | Description |
702
- |-----------|------|----------|-------------|
703
- | `feedback` | array | Yes | Feedback information list |
704
- | `feedback[].who` | object | Yes | Account address or mark name, used to identify providing feedback to this user |
705
- | `feedback[].who.name_or_address` | string | No | Account or object name or address |
706
- | `feedback[].who.local_mark_first` | boolean | No | Whether to prioritize local marks |
707
- | `feedback[].acceptance_score` | number | No | Acceptance score (0-255), used to evaluate the reception level of the service recommended by the user |
708
- | `feedback[].feedback` | string | No | Feedback content for the user | Max 4000 bcs characters |
709
-
710
- ### Example
711
-
712
- **Prompt:** Use the existing demand "logo_design_demand" and provide feedback to "service_provider" with acceptance score 200 and feedback "The recommended service meets the requirements very well".
713
-
714
- ```json
715
- {
716
- "operation_type": "demand",
717
- "data": {
718
- "object": "logo_design_demand",
719
- "feedback": [
720
- {
721
- "who": {
722
- "name_or_address": "service_provider"
723
- },
724
- "acceptance_score": 200,
725
- "feedback": "The recommended service meets the requirements very well"
726
- }
727
- ]
728
- }
729
- }
730
- ```
731
-
732
- **Execution Result**:
733
- ```json
734
- {
735
- "status": "success",
736
- "object": "0x2d49...f414",
737
- "type": "Demand",
738
- "version": "35008",
739
- "change": "mutated"
740
- }
741
- ```
742
-
743
- ---
744
-
745
- ## Sub-function 6: Receive Objects (owner_receive)
746
-
747
- ### Function Description
748
-
749
- Receive objects sent to this Demand object and unwrap them to send to the owner of its Permission object.
750
-
751
- ### Parameter Description
752
-
753
- | Parameter | Type | Required | Description |
754
- |-----------|------|----------|-------------|
755
- | `owner_receive` | array/object/string | No | Received objects configuration |
756
- | `owner_receive` (array) | array | No | List of received object records |
757
- | `owner_receive` (object) | object | No | Received balance information |
758
- | `owner_receive` (string) | string | No | Use "recently" to receive all recent objects |
759
-
760
- ### Received Object Record Structure
761
-
762
- When `owner_receive` is an array of received normal objects:
763
- ```json
764
- [
765
- {
766
- "id": "object_id",
767
- "type": "object_type"
768
- }
769
- ]
770
- ```
771
-
772
- When `owner_receive` is a balance object:
773
- ```json
774
- {
775
- "balance": "1000000000",
776
- "token_type": "0x2::wow::WOW",
777
- "received": [
778
- {
779
- "id": "coin_object_id",
780
- "balance": "1000000000",
781
- "payment": "payment_object_id"
782
- }
783
- ]
784
- }
785
- ```
786
-
787
- ### Examples
788
-
789
- #### Example 6.1: Receive Recent Objects
790
-
791
- **Prompt:** Use the existing demand "logo_design_demand" and receive all recently sent objects.
792
-
793
- ```json
794
- {
795
- "operation_type": "demand",
796
- "data": {
797
- "object": "logo_design_demand",
798
- "owner_receive": "recently"
799
- }
800
- }
801
- ```
802
-
803
- **Execution Result**:
804
- ```json
805
- {
806
- "status": "success"
807
- }
808
- ```
809
-
810
- #### Example 6.2: Receive Specific Objects
811
-
812
- **Prompt:** Use the existing demand "logo_design_demand" and receive specific objects.
813
-
814
- ```json
815
- {
816
- "operation_type": "demand",
817
- "data": {
818
- "object": "logo_design_demand",
819
- "owner_receive": [
820
- {
821
- "id": "0xabc123...def456",
822
- "type": "0x2::object::Object"
823
- },
824
- {
825
- "id": "0x5678...9abc",
826
- "type": "0x2::object::Object"
827
- }
828
- ]
829
- }
830
- }
831
- ```
832
-
833
- #### Example 6.3: Receive Balance
834
-
835
- **Prompt:** Use the existing demand "logo_design_demand" and receive balance.
836
-
837
- ```json
838
- {
839
- "operation_type": "demand",
840
- "data": {
841
- "object": "logo_design_demand",
842
- "owner_receive": {
843
- "balance": "1000000000",
844
- "token_type": "0x2::wow::WOW",
845
- "received": [
846
- {
847
- "id": "0xabc123...def456",
848
- "balance": "1000000000",
849
- "payment": "0xabcd...efgh"
850
- }
851
- ]
852
- }
853
- }
854
- }
855
- ```
856
-
857
- ---
858
-
859
- ## Sub-function 7: Combined Operations
860
-
861
- ### Function Description
862
-
863
- Execute multiple operations in a single call.
864
-
865
- ### Example
866
-
867
- #### Example 7.1: Create Demand and Configure Guards
868
-
869
- **Prompt:** Create a new demand named "complete_demand" with existing permission "demand_permission", set description to "Complete demand example", set location to "Online service", add reward "demand_reward", add guard "service_check", and bind contact "demand_contact".
870
-
871
- ```json
872
- {
873
- "operation_type": "demand",
874
- "data": {
875
- "object": {
876
- "name": "complete_demand",
877
- "permission": "demand_permission"
878
- },
879
- "description": "Complete demand example",
880
- "location": "Online service",
881
- "rewards": {
882
- "op": "add",
883
- "objects": ["demand_reward"]
884
- },
885
- "guards": {
886
- "op": "add",
887
- "guard": [
888
- {
889
- "guard": "service_check"
890
- }
891
- ]
892
- },
893
- "um": "demand_contact"
894
- }
895
- }
896
- ```
897
-
898
- #### Example 7.2: Full Combined Operation
899
-
900
- **Prompt:** Use the existing demand "logo_design_demand", update description to "Updated demand description", present service "premium_design_service" with recommendation "Highly recommended design service", provide feedback to "designer_1" with acceptance score 220 and feedback "Excellent service quality", and receive recent objects.
901
-
902
- ```json
903
- {
904
- "operation_type": "demand",
905
- "data": {
906
- "object": "logo_design_demand",
907
- "description": "Updated demand description",
908
- "present": {
909
- "recommend": "Highly recommended design service",
910
- "service": "premium_design_service"
911
- },
912
- "feedback": [
913
- {
914
- "who": {
915
- "name_or_address": "designer_1"
916
- },
917
- "acceptance_score": 220,
918
- "feedback": "Excellent service quality"
919
- }
920
- ],
921
- "owner_receive": "recently"
922
- }
923
- }
924
- ```
925
-
926
- ---
927
-
928
- ## Important Notes
929
-
930
- ⚠️ **Guards are used to verify whether the service recommended by the user meets the requirements.**
931
-
932
- ⚠️ **`owner_receive` can be:**
933
- - `"recently"` - receive all recent objects
934
- - Array of received normal objects
935
- - Received balance object
936
-
937
- ---
938
-
939
- ## Related Components
940
-
941
- | Component | Description |
942
- |-----------|-------------|
943
- | **[Service](service.md)** | WYSIWYG product trading |
944
- | **[Reward](reward.md)** | Marketing incentives |
945
- | **[Arbitration](arbitration.md)** | Dispute resolution |
946
- | **[Payment](payment.md)** | Direct coin transfers |
947
- | **[Guard](guard.md)** | Trust verification engine |
948
- | **[Contact](contact.md)** | Public contact information |