@wowok/agent-mcp 2.2.13 → 2.2.14
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/index.js +42 -98
- package/dist/schema-query/index.d.ts +29 -0
- package/dist/schema-query/index.js +149 -0
- package/dist/schemas/account_operation.schema.json +255 -0
- package/dist/schemas/guard2file.schema.json +71 -0
- package/dist/schemas/index.json +139 -0
- package/dist/schemas/local_info_operation.schema.json +142 -0
- package/dist/schemas/local_mark_operation.schema.json +119 -0
- package/dist/schemas/machineNode2file.schema.json +71 -0
- package/dist/schemas/messenger_operation.schema.json +1393 -0
- package/dist/schemas/onchain_events.schema.json +113 -0
- package/dist/schemas/onchain_operations.schema.json +376 -0
- package/dist/schemas/onchain_operations_allocation.schema.json +914 -0
- package/dist/schemas/onchain_operations_arbitration.schema.json +1166 -0
- package/dist/schemas/onchain_operations_contact.schema.json +853 -0
- package/dist/schemas/onchain_operations_demand.schema.json +984 -0
- package/dist/schemas/onchain_operations_gen_passport.schema.json +1141 -0
- package/dist/schemas/onchain_operations_guard.schema.json +713 -0
- package/dist/schemas/onchain_operations_machine.schema.json +1347 -0
- package/dist/schemas/onchain_operations_order.schema.json +830 -0
- package/dist/schemas/onchain_operations_payment.schema.json +717 -0
- package/dist/schemas/onchain_operations_permission.schema.json +1088 -0
- package/dist/schemas/onchain_operations_personal.schema.json +1282 -0
- package/dist/schemas/onchain_operations_progress.schema.json +751 -0
- package/dist/schemas/onchain_operations_repository.schema.json +1572 -0
- package/dist/schemas/onchain_operations_reward.schema.json +955 -0
- package/dist/schemas/onchain_operations_service.schema.json +1411 -0
- package/dist/schemas/onchain_operations_treasury.schema.json +1155 -0
- package/dist/schemas/onchain_table_data.schema.json +35 -0
- package/dist/schemas/operations/guard.json +163 -0
- package/dist/schemas/operations/permission.json +22 -0
- package/dist/schemas/query_toolkit.schema.json +32 -0
- package/dist/schemas/schema_query.schema.json +33 -0
- package/dist/schemas/wip_file.schema.json +27 -0
- package/dist/schemas/wowok_buildin_info.schema.json +487 -0
- package/package.json +7 -5
- package/dist/docs/index.d.ts +0 -3
- package/dist/docs/index.js +0 -2
- package/dist/docs/loader.d.ts +0 -12
- package/dist/docs/loader.js +0 -177
- package/dist/docs/search.d.ts +0 -17
- package/dist/docs/search.js +0 -325
- package/dist/docs/types.d.ts +0 -55
- package/dist/docs/types.js +0 -1
- package/docs/README.md +0 -249
- package/docs/WIP.md +0 -388
- package/docs/WTS.md +0 -536
- package/docs/docs/account.md +0 -914
- package/docs/docs/allocation.md +0 -635
- package/docs/docs/arbitration.md +0 -1804
- package/docs/docs/arbitration_state_machine.md +0 -270
- package/docs/docs/contact.md +0 -709
- package/docs/docs/demand.md +0 -948
- package/docs/docs/guard.md +0 -1465
- package/docs/docs/localinfo.md +0 -432
- package/docs/docs/localmark.md +0 -583
- package/docs/docs/machine.md +0 -2490
- package/docs/docs/messenger.md +0 -2098
- package/docs/docs/onchain_events.md +0 -267
- package/docs/docs/order.md +0 -1001
- package/docs/docs/payment.md +0 -512
- package/docs/docs/permission.md +0 -1438
- package/docs/docs/personal.md +0 -742
- package/docs/docs/progress.md +0 -1748
- package/docs/docs/query.md +0 -467
- package/docs/docs/repository.md +0 -1043
- package/docs/docs/reward.md +0 -833
- package/docs/docs/service.md +0 -2130
- package/docs/docs/stage-01-introduction.md +0 -243
- package/docs/docs/stage-02-trust.md +0 -302
- package/docs/docs/stage-03-collaboration.md +0 -337
- package/docs/docs/stage-04-transaction.md +0 -277
- package/docs/docs/stage-05-business.md +0 -151
- package/docs/docs/stage-06-personal.md +0 -203
- package/docs/docs/stage-07-query.md +0 -572
- package/docs/docs/stage-08-examples.md +0 -184
- package/docs/docs/treasury.md +0 -1149
- package/docs/docs/wowok_buildin_info.md +0 -740
- package/docs/examples/Insurance/Insurance.md +0 -594
- package/docs/examples/Insurance/Insurance_TestResults.md +0 -481
- package/docs/examples/Insurance/insurance_complete_guard_v1.json +0 -50
- package/docs/examples/MyShop/MyShop.md +0 -1353
- package/docs/examples/MyShop/MyShop_TestResults.md +0 -1003
- package/docs/examples/MyShop_Advanced/MyShop_Advanced.md +0 -1898
- package/docs/examples/MyShop_Advanced/MyShop_Advanced_MerchantSystem_TestResults.md +0 -1297
- package/docs/examples/MyShop_Advanced/MyShop_Advanced_OrderFlow_TestResults.md +0 -743
- package/docs/examples/MyShop_Advanced/machine_nodes.json +0 -222
- package/docs/examples/ThreeBody_Signature/ThreeBody_Signature.md +0 -776
- package/docs/examples/ThreeBody_Signature/ThreeBody_Signature_TestResults.md +0 -599
- package/docs/examples/Travel/Travel.md +0 -1157
- package/docs/examples/Travel/Travel_TestResults.md +0 -743
- package/docs/examples/Travel/calc-weather-timestamps.js +0 -8
- package/docs/examples/Travel/travel_machine_v2_export.json +0 -104
- package/docs/examples/Travel/weather_check_guard_v1.json +0 -51
- package/docs/skills/WOWOK.md +0 -650
- package/docs/skills/onchain_operations/_common.md +0 -406
- package/docs/skills/onchain_operations/_index.md +0 -196
- package/docs/skills/onchain_operations/allocation.md +0 -28
- package/docs/skills/onchain_operations/arbitration.md +0 -106
- package/docs/skills/onchain_operations/contact.md +0 -40
- package/docs/skills/onchain_operations/demand.md +0 -53
- package/docs/skills/onchain_operations/gen_passport.md +0 -23
- package/docs/skills/onchain_operations/guard.md +0 -56
- package/docs/skills/onchain_operations/machine.md +0 -89
- package/docs/skills/onchain_operations/order.md +0 -56
- package/docs/skills/onchain_operations/payment.md +0 -24
- package/docs/skills/onchain_operations/permission.md +0 -68
- package/docs/skills/onchain_operations/personal.md +0 -58
- package/docs/skills/onchain_operations/progress.md +0 -38
- package/docs/skills/onchain_operations/repository.md +0 -70
- package/docs/skills/onchain_operations/reward.md +0 -38
- package/docs/skills/onchain_operations/service.md +0 -78
- package/docs/skills/onchain_operations/treasury.md +0 -68
- package/docs/skills/schema-account_operation.md +0 -402
- package/docs/skills/schema-guard2file.md +0 -153
- package/docs/skills/schema-local_info_operation.md +0 -160
- package/docs/skills/schema-local_mark_operation.md +0 -148
- package/docs/skills/schema-machineNode2file.md +0 -155
- package/docs/skills/schema-messenger_operation.md +0 -547
- package/docs/skills/schema-onchain_events.md +0 -201
- package/docs/skills/schema-onchain_table_data.md +0 -334
- package/docs/skills/schema-query_toolkit.md +0 -395
- package/docs/skills/schema-wip_file.md +0 -240
- package/docs/skills/schema-wowok_buildin_info.md +0 -296
- package/docs/wip-examples/three_body.html +0 -57
- package/docs/wip-examples/three_body.wip +0 -30
package/docs/docs/arbitration.md
DELETED
|
@@ -1,1804 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Arbitration Component (⚖️ Dispute Resolution)
|
|
3
|
-
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Component Overview
|
|
7
|
-
|
|
8
|
-
The Arbitration component is WoWok protocol's on-chain dispute resolution module, providing a transparent arbitration system for resolving order conflicts. Arbitration objects can be created with configurable voting rules, receive dispute submissions, confirm materials, vote on propositions, and provide final arbitration results.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Function List
|
|
13
|
-
|
|
14
|
-
| Function Name | Purpose | Usage Scenario | Significance |
|
|
15
|
-
|---------------|---------|----------------|-------------|
|
|
16
|
-
| **Create Arbitration** | Set up dispute resolution system | Establish order governance | Provides framework for fair conflict resolution |
|
|
17
|
-
| **Initiate Dispute** | File conflict case | Report order issues, service failures | Formalizes dispute submission |
|
|
18
|
-
| **Confirm Materials** | Validate evidence submission | Review dispute documents | Ensures arbitration based on verified data |
|
|
19
|
-
| **Vote on Propositions** | Participate in decision-making | Jury voting, governance | Enables democratic dispute resolution |
|
|
20
|
-
| **Issue Ruling** | Deliver final arbitration result | Resolve conflicts, decide compensation | Concludes dispute with binding outcome |
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Complete Tool Call Structure
|
|
25
|
-
|
|
26
|
-
Arbitration operations use the following top-level structure:
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{
|
|
30
|
-
"operation_type": "arbitration",
|
|
31
|
-
"data": { ... }, // Arbitration data definition
|
|
32
|
-
"env": { ... }, // Execution environment (optional)
|
|
33
|
-
"submission": { ... } // Guard verification submission (optional)
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Schema Tree
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
arbitration (Arbitration Object)
|
|
43
|
-
├── operation_type: "arbitration" (fixed value)
|
|
44
|
-
├── data (Arbitration data definition)
|
|
45
|
-
│ ├── object (TypedPermissionObject, required) - Arbitration object reference or creation
|
|
46
|
-
│ │ ├── Option 1: Reference existing object (string) - object name or ID
|
|
47
|
-
│ │ └── Option 2: Create new object (object)
|
|
48
|
-
│ │ ├── name (string, optional) - local mark name, max 64 bcs characters
|
|
49
|
-
│ │ ├── tags (array of string, optional) - tags array
|
|
50
|
-
│ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
|
|
51
|
-
│ │ ├── replaceExistName (boolean, optional) - force claim existing name
|
|
52
|
-
│ │ ├── type_parameter (string, optional) - token type, default: 0x2::wow::WOW
|
|
53
|
-
│ │ └── permission (string | object, optional) - Permission object ID/name or new permission object
|
|
54
|
-
│ │ ├── Option 1: Existing permission ID/name (string)
|
|
55
|
-
│ │ └── Option 2: New permission object (object)
|
|
56
|
-
│ │ ├── name (string, optional) - permission name
|
|
57
|
-
│ │ ├── tags (array of string, optional) - tags array
|
|
58
|
-
│ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
|
|
59
|
-
│ │ └── replaceExistName (boolean, optional) - force claim existing name
|
|
60
|
-
│ ├── description (string, optional) - arbitration description, max 4000 bcs characters
|
|
61
|
-
│ ├── location (string, optional) - arbitration location, max 256 bcs characters
|
|
62
|
-
│ ├── fee (number or string, optional) - arbitration fee in smallest units
|
|
63
|
-
│ ├── pause (boolean, optional) - whether to pause arbitration
|
|
64
|
-
│ ├── dispute (Dispute object, optional) - create dispute for order
|
|
65
|
-
│ │ ├── order (string, required) - order object ID or name
|
|
66
|
-
│ │ ├── description (string, optional) - dispute description, max 4000 bcs characters
|
|
67
|
-
│ │ ├── proposition (array of string, required) - list of dispute propositions, each max 256 bcs characters
|
|
68
|
-
│ │ ├── fee (CoinParam, required) - dispute processing fee
|
|
69
|
-
│ │ │ ├── Option 1: Balance object (object)
|
|
70
|
-
│ │ │ │ └── balance (number) - balance amount
|
|
71
|
-
│ │ │ └── Option 2: Coin object ID (string)
|
|
72
|
-
│ │ └── namedArb (NamedObject, optional) - name for the newly created Arb object
|
|
73
|
-
│ │ ├── name (string, optional) - arb object name
|
|
74
|
-
│ │ ├── tags (array of string, optional) - tags array
|
|
75
|
-
│ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
|
|
76
|
-
│ │ └── replaceExistName (boolean, optional) - force claim existing name
|
|
77
|
-
│ ├── confirm (Confirm object, optional) - confirm arbitration materials
|
|
78
|
-
│ │ ├── arb (string, required) - Arb object ID or name
|
|
79
|
-
│ │ └── voting_deadline (number | null, required) - voting deadline in milliseconds
|
|
80
|
-
│ ├── voting_deadline_change (VotingDeadlineChange object, optional) - change voting deadline
|
|
81
|
-
│ │ ├── arb (string, required) - Arb object ID or name
|
|
82
|
-
│ │ └── voting_deadline (number | null, required) - new voting deadline in milliseconds
|
|
83
|
-
│ ├── vote (Vote object, optional) - vote on propositions
|
|
84
|
-
│ │ ├── arb (string, required) - Arb object ID or name
|
|
85
|
-
│ │ ├── votes (array of number, required) - vote list, each value 0-255
|
|
86
|
-
│ │ └── voting_guard (string, optional) - voting Guard object ID/name
|
|
87
|
-
│ ├── feedback (Feedback object, optional) - provide arbitration feedback
|
|
88
|
-
│ │ ├── arb (string, required) - Arb object ID or name
|
|
89
|
-
│ │ └── feedback (string, required) - arbitration feedback, max 4000 bcs characters
|
|
90
|
-
│ ├── arbitration (ArbitrationAction object, optional) - provide final arbitration result
|
|
91
|
-
│ │ ├── arb (string, required) - Arb object ID or name
|
|
92
|
-
│ │ ├── feedback (string, required) - arbitration feedback, max 4000 bcs characters
|
|
93
|
-
│ │ └── indemnity (number, required) - compensation amount in smallest units
|
|
94
|
-
│ ├── reset (Reset object, optional) - apply to restart arbitration
|
|
95
|
-
│ │ ├── arb (string, required) - Arb object ID or name
|
|
96
|
-
│ │ └── feedback (string, required) - arbitration feedback, max 4000 bcs characters
|
|
97
|
-
│ ├── arb_withdraw (ArbWithdraw object, optional) - withdraw arbitration fees
|
|
98
|
-
│ │ └── arb (string, required) - Arb object ID or name
|
|
99
|
-
│ ├── fees_transfer (FeesTransfer object, optional) - distribute arbitration fees
|
|
100
|
-
│ │ ├── to (FeesTransferTo object, required) - receiving object
|
|
101
|
-
│ │ │ ├── Option 1: Allocation reference (object)
|
|
102
|
-
│ │ │ │ └── allocation (string) - Allocation object ID/name
|
|
103
|
-
│ │ │ └── Option 2: Treasury reference (object)
|
|
104
|
-
│ │ │ └── treasury (string) - Treasury object ID/name
|
|
105
|
-
│ │ ├── payment_remark (string, required) - payment remark, max 64 bcs characters
|
|
106
|
-
│ │ ├── payment_index (number, required) - payment index
|
|
107
|
-
│ │ └── newPayment (NamedObject, optional) - name for new Payment object
|
|
108
|
-
│ │ ├── name (string, optional) - payment name
|
|
109
|
-
│ │ ├── tags (array of string, optional) - tags array
|
|
110
|
-
│ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
|
|
111
|
-
│ │ └── replaceExistName (boolean, optional) - force claim existing name
|
|
112
|
-
│ ├── usage_guard (string | null, optional) - Guard for user verification, null to unbind
|
|
113
|
-
│ ├── voting_guard (VotingGuardAction object, optional) - manage voting Guards
|
|
114
|
-
│ │ ├── op (string, required) - operation type: "add", "set", "remove", "clear"
|
|
115
|
-
│ │ └── guards (array, required for add/set/remove) - list of VotingGuard objects or Guard names
|
|
116
|
-
│ │ └── VotingGuard object (for add/set)
|
|
117
|
-
│ │ ├── guard (string) - Guard object ID or name
|
|
118
|
-
│ │ └── vote_weight (object) - vote weight
|
|
119
|
-
│ │ ├── Option 1: FixedValue (object)
|
|
120
|
-
│ │ │ └── FixedValue (number) - fixed weight value 0-65535
|
|
121
|
-
│ │ └── Option 2: GuardIdentifier (object)
|
|
122
|
-
│ │ └── GuardIdentifier (number) - Guard table identifier 0-255
|
|
123
|
-
│ ├── owner_receive (ReceivedObjectsOrRecently, optional) - receive objects to owner
|
|
124
|
-
│ │ ├── Option 1: "recently" (string) - receive all recent objects
|
|
125
|
-
│ │ ├── Option 2: ReceivedBalance object (object)
|
|
126
|
-
│ │ │ ├── balance (number or string) - balance amount
|
|
127
|
-
│ │ │ ├── token_type (string) - token type
|
|
128
|
-
│ │ │ └── received (array of ReceivedItem) - received items list
|
|
129
|
-
│ │ │ └── ReceivedItem object
|
|
130
|
-
│ │ │ ├── id (string) - object ID
|
|
131
|
-
│ │ │ └── type (string) - object type
|
|
132
|
-
│ │ └── Option 3: Array of received objects
|
|
133
|
-
│ │ └── [{ id: "object_id", type: "object_type" }]
|
|
134
|
-
│ └── um (string | null, optional) - Contact object ID/name, null to unbind
|
|
135
|
-
├── env (CallEnv, optional) - execution environment
|
|
136
|
-
│ ├── account (string, optional) - account name or address, empty string for default
|
|
137
|
-
│ ├── network (string, optional) - "testnet" or "localnet"
|
|
138
|
-
│ ├── permission_guard (array of string, optional) - list of permission guard IDs
|
|
139
|
-
│ ├── no_cache (boolean, optional) - disable caching
|
|
140
|
-
│ └── referrer (string, optional) - referrer ID
|
|
141
|
-
└── submission (SubmissionCall, optional) - submission data
|
|
142
|
-
├── type (string) - fixed value "submission"
|
|
143
|
-
├── guard (array of GuardInfo) - list of guards to verify
|
|
144
|
-
│ └── GuardInfo object
|
|
145
|
-
│ ├── object (string) - guard object ID
|
|
146
|
-
│ └── impack (boolean) - impact flag
|
|
147
|
-
└── submission (array of GuardSubmission) - submission data for guards
|
|
148
|
-
└── GuardSubmission object
|
|
149
|
-
├── guard (string) - guard object ID
|
|
150
|
-
└── submission (array of GuardSubmissionItem) - submission items
|
|
151
|
-
└── GuardSubmissionItem object
|
|
152
|
-
├── identifier (number, 0-255) - Guard table item identifier
|
|
153
|
-
├── b_submission (boolean) - whether this item requires submission
|
|
154
|
-
├── value_type (number | string) - value type (e.g., 6 or "U64" for U64 type)
|
|
155
|
-
├── value (any) - submitted value
|
|
156
|
-
└── name (string, optional) - item name
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
### ⚠️ Important Note About Submission
|
|
162
|
-
|
|
163
|
-
If the execution returns a `submission` field in the response, it indicates that additional Guard verification data is required. You must:
|
|
164
|
-
|
|
165
|
-
1. Complete all required submission data within the `submission` structure
|
|
166
|
-
2. Resubmit the operation with the completed submission data
|
|
167
|
-
3. **Do not modify any other parts of the structure** - only fill in the required submission values
|
|
168
|
-
|
|
169
|
-
The submission structure will specify which Guard objects need verification and what data needs to be provided for each Guard table item.
|
|
170
|
-
|
|
171
|
-
**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.
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Sub-feature 1: Create New Arbitration
|
|
176
|
-
|
|
177
|
-
### Feature Description
|
|
178
|
-
|
|
179
|
-
Create a new Arbitration object for resolving order disputes. Newly created arbitrations can be configured with descriptions, locations, fees, and voting guards.
|
|
180
|
-
|
|
181
|
-
### Parameter Description
|
|
182
|
-
|
|
183
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
184
|
-
|----------|------|------|------|------|
|
|
185
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
186
|
-
| `data.object` | object | Yes | Create new Arbitration | TypedPermissionObject structure |
|
|
187
|
-
| `data.object.name` | string | No | Local mark name | Max 64 BCS characters |
|
|
188
|
-
| `data.object.tags` | array | No | Tags array | String array |
|
|
189
|
-
| `data.object.onChain` | boolean | No | Whether to mark on-chain | |
|
|
190
|
-
| `data.object.replaceExistName` | boolean | No | Replace existing name | |
|
|
191
|
-
| `data.object.permission` | string/object | No | Permission object | Can be existing permission ID/name, or new permission object |
|
|
192
|
-
| `data.object.type_parameter` | string | No | Token type | Default: 0x2::wow::WOW |
|
|
193
|
-
| `data.description` | string | No | Arbitration description | Max 4000 bcs characters |
|
|
194
|
-
| `data.location` | string | No | Arbitration location | Max 256 BCS characters |
|
|
195
|
-
| `data.fee` | number or string | No | Arbitration fee in smallest units | No decimals or negatives |
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
### Examples
|
|
200
|
-
|
|
201
|
-
#### Example 1.1: Create Simple Arbitration
|
|
202
|
-
|
|
203
|
-
**Prompt**: Create a new arbitration named "doc_test_arbitration" with: 1) Permission "arb_test_permission", 2) Description "Arbitration for documentation testing", 3) Location "Online arbitration system", 4) Fee at 1000000000 (1 WOW).
|
|
204
|
-
|
|
205
|
-
```json
|
|
206
|
-
{
|
|
207
|
-
"operation_type": "arbitration",
|
|
208
|
-
"data": {
|
|
209
|
-
"object": {
|
|
210
|
-
"name": "doc_test_arbitration",
|
|
211
|
-
"permission": "arb_test_permission",
|
|
212
|
-
"type_parameter": "0x2::wow::WOW",
|
|
213
|
-
"tags": ["arbitration", "test", "doc"],
|
|
214
|
-
"onChain": false
|
|
215
|
-
},
|
|
216
|
-
"description": "Arbitration for documentation testing",
|
|
217
|
-
"location": "Online arbitration system",
|
|
218
|
-
"fee": 1000000000
|
|
219
|
-
},
|
|
220
|
-
"env": {
|
|
221
|
-
"account": "arbitration_test_account",
|
|
222
|
-
"network": "testnet",
|
|
223
|
-
"no_cache": true
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
**Execution Result**:
|
|
229
|
-
```json
|
|
230
|
-
{
|
|
231
|
-
"status": "success",
|
|
232
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
233
|
-
"type": "Arbitration",
|
|
234
|
-
"version": "1413284",
|
|
235
|
-
"change": "created"
|
|
236
|
-
}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
#### Example 1.2: Create Arbitration with New Permission and Guards
|
|
240
|
-
|
|
241
|
-
**Prompt**: Create arbitration "product_arbitration" with: 1) New permission named "arb_permission", 2) Description "Product quality arbitration", 3) Usage guard "eligibility_guard", 4) Voting guards: "senior_judge" with FixedValue 100, "junior_judge" with GuardIdentifier 5.
|
|
242
|
-
|
|
243
|
-
```json
|
|
244
|
-
{
|
|
245
|
-
"operation_type": "arbitration",
|
|
246
|
-
"data": {
|
|
247
|
-
"object": {
|
|
248
|
-
"name": "product_arbitration",
|
|
249
|
-
"permission": {
|
|
250
|
-
"name": "arb_permission"
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
"description": "Product quality arbitration",
|
|
254
|
-
"usage_guard": "eligibility_guard",
|
|
255
|
-
"voting_guard": {
|
|
256
|
-
"op": "add",
|
|
257
|
-
"guards": [
|
|
258
|
-
{
|
|
259
|
-
"guard": "senior_judge",
|
|
260
|
-
"vote_weight": {
|
|
261
|
-
"FixedValue": 100
|
|
262
|
-
}
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
"guard": "junior_judge",
|
|
266
|
-
"vote_weight": {
|
|
267
|
-
"GuardIdentifier": 5
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
]
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Sub-feature 2: Create Dispute (dispute)
|
|
279
|
-
|
|
280
|
-
### Feature Description
|
|
281
|
-
|
|
282
|
-
Create a new Arb object for an order to initiate dispute arbitration.
|
|
283
|
-
|
|
284
|
-
### Parameter Description
|
|
285
|
-
|
|
286
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
287
|
-
|----------|------|------|------|------|
|
|
288
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
289
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
290
|
-
| `data.dispute.order` | string | Yes | Order object ID or name | |
|
|
291
|
-
| `data.dispute.description` | string | No | Dispute description | Max 4000 bcs characters |
|
|
292
|
-
| `data.dispute.proposition` | array | Yes | List of dispute propositions | String array |
|
|
293
|
-
| `data.dispute.fee` | object/string | Yes | Dispute processing fee | CoinParam structure |
|
|
294
|
-
| `data.dispute.namedArb.name` | string | No | Name for the newly created arbitration object | Max 64 BCS characters |
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
### Example
|
|
299
|
-
|
|
300
|
-
#### Example 2.1: Create Dispute
|
|
301
|
-
|
|
302
|
-
**Prompt**: Create a dispute for "doc_test_arbitration" with: 1) Order "arb_test_order", 2) Description "Product quality does not match description", 3) Propositions ["Full refund", "Partial refund 50%", "No refund"], 4) Fee 1000000000 (1 WOW), 5) Name new dispute "test_dispute_2026".
|
|
303
|
-
|
|
304
|
-
```json
|
|
305
|
-
{
|
|
306
|
-
"operation_type": "arbitration",
|
|
307
|
-
"data": {
|
|
308
|
-
"object": "doc_test_arbitration",
|
|
309
|
-
"dispute": {
|
|
310
|
-
"order": "arb_test_order",
|
|
311
|
-
"description": "Product quality does not match description",
|
|
312
|
-
"proposition": ["Full refund", "Partial refund 50%", "No refund"],
|
|
313
|
-
"fee": {
|
|
314
|
-
"balance": 1000000000
|
|
315
|
-
},
|
|
316
|
-
"namedArb": {
|
|
317
|
-
"name": "test_dispute_2026",
|
|
318
|
-
"onChain": false
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
},
|
|
322
|
-
"env": {
|
|
323
|
-
"account": "arbitration_test_account",
|
|
324
|
-
"network": "testnet",
|
|
325
|
-
"no_cache": true
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
**Execution Result**:
|
|
331
|
-
```json
|
|
332
|
-
{
|
|
333
|
-
"status": "success",
|
|
334
|
-
"results": [
|
|
335
|
-
{
|
|
336
|
-
"object": "0x2b1439093329363d108a9eef44414c3ae916762c030b63457ebfb351af7b5cc0",
|
|
337
|
-
"type": "Order",
|
|
338
|
-
"version": "1415870",
|
|
339
|
-
"change": "mutated"
|
|
340
|
-
},
|
|
341
|
-
{
|
|
342
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
343
|
-
"type": "Arbitration",
|
|
344
|
-
"version": "1415870",
|
|
345
|
-
"change": "mutated"
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
"object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
|
|
349
|
-
"type": "Arb",
|
|
350
|
-
"version": "1415870",
|
|
351
|
-
"change": "created"
|
|
352
|
-
}
|
|
353
|
-
]
|
|
354
|
-
}
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## Sub-feature 3: Confirm Materials (confirm)
|
|
360
|
-
|
|
361
|
-
### Feature Description
|
|
362
|
-
|
|
363
|
-
Confirm the arbitration materials submitted by the user.
|
|
364
|
-
|
|
365
|
-
### Parameter Description
|
|
366
|
-
|
|
367
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
368
|
-
|----------|------|------|------|------|
|
|
369
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
370
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
371
|
-
| `data.confirm.arb` | string | Yes | Arb object ID or name | |
|
|
372
|
-
| `data.confirm.voting_deadline` | number or null | Yes | Voting deadline (milliseconds) | No decimals or negatives, or null |
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
### Example
|
|
377
|
-
|
|
378
|
-
#### Example 3.1: Confirm Materials with Voting Deadline
|
|
379
|
-
|
|
380
|
-
**Prompt**: For "doc_test_arbitration", confirm materials for "test_dispute_2026" with voting deadline at 1777830400000.
|
|
381
|
-
|
|
382
|
-
```json
|
|
383
|
-
{
|
|
384
|
-
"operation_type": "arbitration",
|
|
385
|
-
"data": {
|
|
386
|
-
"object": "doc_test_arbitration",
|
|
387
|
-
"confirm": {
|
|
388
|
-
"arb": "test_dispute_2026",
|
|
389
|
-
"voting_deadline": 1777830400000
|
|
390
|
-
}
|
|
391
|
-
},
|
|
392
|
-
"env": {
|
|
393
|
-
"account": "arbitration_test_account",
|
|
394
|
-
"network": "testnet",
|
|
395
|
-
"no_cache": true
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
**Execution Result**:
|
|
401
|
-
```json
|
|
402
|
-
{
|
|
403
|
-
"status": "success",
|
|
404
|
-
"object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
|
|
405
|
-
"type": "Arb",
|
|
406
|
-
"version": "1415871",
|
|
407
|
-
"change": "mutated"
|
|
408
|
-
}
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
---
|
|
412
|
-
|
|
413
|
-
## Sub-feature 4: Change Voting Deadline (voting_deadline_change)
|
|
414
|
-
|
|
415
|
-
### Feature Description
|
|
416
|
-
|
|
417
|
-
Change the voting deadline for arbitration.
|
|
418
|
-
|
|
419
|
-
### Parameter Description
|
|
420
|
-
|
|
421
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
422
|
-
|----------|------|------|------|------|
|
|
423
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
424
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
425
|
-
| `data.voting_deadline_change.arb` | string | Yes | Arb object ID or name | |
|
|
426
|
-
| `data.voting_deadline_change.voting_deadline` | number or null | Yes | New voting deadline (milliseconds) | No decimals or negatives, or null |
|
|
427
|
-
|
|
428
|
-
---
|
|
429
|
-
|
|
430
|
-
### Example
|
|
431
|
-
|
|
432
|
-
#### Example 4.1: Remove Voting Deadline
|
|
433
|
-
|
|
434
|
-
**Prompt**: For "service_arbitration", remove voting deadline for "order_123_dispute" (set to null).
|
|
435
|
-
|
|
436
|
-
```json
|
|
437
|
-
{
|
|
438
|
-
"operation_type": "arbitration",
|
|
439
|
-
"data": {
|
|
440
|
-
"object": "service_arbitration",
|
|
441
|
-
"voting_deadline_change": {
|
|
442
|
-
"arb": "order_123_dispute",
|
|
443
|
-
"voting_deadline": null
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
---
|
|
450
|
-
|
|
451
|
-
## Sub-feature 5: Vote (vote)
|
|
452
|
-
|
|
453
|
-
### Feature Description
|
|
454
|
-
|
|
455
|
-
Vote on user propositions.
|
|
456
|
-
|
|
457
|
-
### Parameter Description
|
|
458
|
-
|
|
459
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
460
|
-
|----------|------|------|------|------|
|
|
461
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
462
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
463
|
-
| `data.vote.arb` | string | Yes | Arb object ID or name | |
|
|
464
|
-
| `data.vote.votes` | array | Yes | Vote list | Each value 0-255 |
|
|
465
|
-
| `data.vote.voting_guard` | string | No | Voting Guard object ID/name | |
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
### Example
|
|
470
|
-
|
|
471
|
-
#### Example 5.1: Vote on Propositions
|
|
472
|
-
|
|
473
|
-
**Prompt**: For "service_arbitration", vote on "order_123_dispute" with votes [200, 100, 50] using "senior_judge" guard.
|
|
474
|
-
|
|
475
|
-
```json
|
|
476
|
-
{
|
|
477
|
-
"operation_type": "arbitration",
|
|
478
|
-
"data": {
|
|
479
|
-
"object": "service_arbitration",
|
|
480
|
-
"vote": {
|
|
481
|
-
"arb": "order_123_dispute",
|
|
482
|
-
"votes": [200, 100, 50],
|
|
483
|
-
"voting_guard": "senior_judge"
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
---
|
|
490
|
-
|
|
491
|
-
## Sub-feature 6: Provide Feedback (feedback)
|
|
492
|
-
|
|
493
|
-
### Feature Description
|
|
494
|
-
|
|
495
|
-
Provide arbitration feedback for an Arb object.
|
|
496
|
-
|
|
497
|
-
### Parameter Description
|
|
498
|
-
|
|
499
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
500
|
-
|----------|------|------|------|------|
|
|
501
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
502
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
503
|
-
| `data.feedback.arb` | string | Yes | Arb object ID or name | |
|
|
504
|
-
| `data.feedback.feedback` | string | Yes | Arbitration feedback | Max 4000 bcs characters |
|
|
505
|
-
|
|
506
|
-
---
|
|
507
|
-
|
|
508
|
-
### Example
|
|
509
|
-
|
|
510
|
-
#### Example 6.1: Provide Feedback
|
|
511
|
-
|
|
512
|
-
**Prompt**: For "doc_test_arbitration", provide feedback on "test_dispute_2026" that "All evidence has been reviewed. The buyer provided sufficient proof of product quality issues."
|
|
513
|
-
|
|
514
|
-
```json
|
|
515
|
-
{
|
|
516
|
-
"operation_type": "arbitration",
|
|
517
|
-
"data": {
|
|
518
|
-
"object": "doc_test_arbitration",
|
|
519
|
-
"feedback": {
|
|
520
|
-
"arb": "test_dispute_2026",
|
|
521
|
-
"feedback": "All evidence has been reviewed. The buyer provided sufficient proof of product quality issues."
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
"env": {
|
|
525
|
-
"account": "arbitration_test_account",
|
|
526
|
-
"network": "testnet",
|
|
527
|
-
"no_cache": true
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
**Execution Result**:
|
|
533
|
-
```json
|
|
534
|
-
{
|
|
535
|
-
"status": "success",
|
|
536
|
-
"object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
|
|
537
|
-
"type": "Arb",
|
|
538
|
-
"version": "1415872",
|
|
539
|
-
"change": "mutated"
|
|
540
|
-
}
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
---
|
|
544
|
-
|
|
545
|
-
## Sub-feature 7: Give Arbitration Result (arbitration)
|
|
546
|
-
|
|
547
|
-
### Feature Description
|
|
548
|
-
|
|
549
|
-
Provide the final arbitration result.
|
|
550
|
-
|
|
551
|
-
### Parameter Description
|
|
552
|
-
|
|
553
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
554
|
-
|----------|------|------|------|------|
|
|
555
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
556
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
557
|
-
| `data.arbitration.arb` | string | Yes | Arb object ID or name | |
|
|
558
|
-
| `data.arbitration.feedback` | string | Yes | Arbitration feedback | Max 4000 bcs characters |
|
|
559
|
-
| `data.arbitration.indemnity` | number | Yes | Compensation amount in smallest units | No decimals or negatives |
|
|
560
|
-
|
|
561
|
-
---
|
|
562
|
-
|
|
563
|
-
### Example
|
|
564
|
-
|
|
565
|
-
#### Example 7.1: Give Arbitration Result
|
|
566
|
-
|
|
567
|
-
**Prompt**: For "service_arbitration", give final result on "order_123_dispute": 1) Feedback "Based on all evidence, buyer wins the case", 2) Indemnity 5000000000 (5 WOW).
|
|
568
|
-
|
|
569
|
-
```json
|
|
570
|
-
{
|
|
571
|
-
"operation_type": "arbitration",
|
|
572
|
-
"data": {
|
|
573
|
-
"object": "service_arbitration",
|
|
574
|
-
"arbitration": {
|
|
575
|
-
"arb": "order_123_dispute",
|
|
576
|
-
"feedback": "Based on all evidence, buyer wins the case",
|
|
577
|
-
"indemnity": 5000000000
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
---
|
|
584
|
-
|
|
585
|
-
## Sub-feature 8: Reset Arbitration (reset)
|
|
586
|
-
|
|
587
|
-
### Feature Description
|
|
588
|
-
|
|
589
|
-
User applies to resubmit materials and restart arbitration.
|
|
590
|
-
|
|
591
|
-
### Parameter Description
|
|
592
|
-
|
|
593
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
594
|
-
|----------|------|------|------|------|
|
|
595
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
596
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
597
|
-
| `data.reset.arb` | string | Yes | Arb object ID or name | |
|
|
598
|
-
| `data.reset.feedback` | string | Yes | Arbitration feedback | Max 4000 bcs characters |
|
|
599
|
-
|
|
600
|
-
---
|
|
601
|
-
|
|
602
|
-
### Example
|
|
603
|
-
|
|
604
|
-
#### Example 8.1: Reset Arbitration
|
|
605
|
-
|
|
606
|
-
**Prompt**: For "service_arbitration", apply to reset "order_123_dispute" with feedback "New evidence discovered, request to resubmit materials".
|
|
607
|
-
|
|
608
|
-
```json
|
|
609
|
-
{
|
|
610
|
-
"operation_type": "arbitration",
|
|
611
|
-
"data": {
|
|
612
|
-
"object": "service_arbitration",
|
|
613
|
-
"reset": {
|
|
614
|
-
"arb": "order_123_dispute",
|
|
615
|
-
"feedback": "New evidence discovered, request to resubmit materials"
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
```
|
|
620
|
-
|
|
621
|
-
---
|
|
622
|
-
|
|
623
|
-
## Sub-feature 9: Withdraw Arbitration Fee (arb_withdraw)
|
|
624
|
-
|
|
625
|
-
### Feature Description
|
|
626
|
-
|
|
627
|
-
Withdraw arbitration fees from the Arb object.
|
|
628
|
-
|
|
629
|
-
### Parameter Description
|
|
630
|
-
|
|
631
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
632
|
-
|----------|------|------|------|------|
|
|
633
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
634
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
635
|
-
| `data.arb_withdraw.arb` | string | Yes | Arb object ID or name | |
|
|
636
|
-
|
|
637
|
-
---
|
|
638
|
-
|
|
639
|
-
### Example
|
|
640
|
-
|
|
641
|
-
#### Example 9.1: Withdraw Arbitration Fee
|
|
642
|
-
|
|
643
|
-
**Prompt**: For "service_arbitration", withdraw fee from "order_123_dispute".
|
|
644
|
-
|
|
645
|
-
```json
|
|
646
|
-
{
|
|
647
|
-
"operation_type": "arbitration",
|
|
648
|
-
"data": {
|
|
649
|
-
"object": "service_arbitration",
|
|
650
|
-
"arb_withdraw": {
|
|
651
|
-
"arb": "order_123_dispute"
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
|
-
```
|
|
656
|
-
|
|
657
|
-
---
|
|
658
|
-
|
|
659
|
-
## Sub-feature 10: Distribute Arbitration Fees (fees_transfer)
|
|
660
|
-
|
|
661
|
-
### Feature Description
|
|
662
|
-
|
|
663
|
-
Distribute withdrawn arbitration fees.
|
|
664
|
-
|
|
665
|
-
### Parameter Description
|
|
666
|
-
|
|
667
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
668
|
-
|----------|------|------|------|------|
|
|
669
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
670
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
671
|
-
| `data.fees_transfer.to` | object | Yes | Receiving object | Must have either "allocation" or "treasury" |
|
|
672
|
-
| `data.fees_transfer.to.allocation` | string | No | Allocation object ID/name | |
|
|
673
|
-
| `data.fees_transfer.to.treasury` | string | No | Treasury object ID/name | |
|
|
674
|
-
| `data.fees_transfer.payment_remark` | string | Yes | Payment remark | Max 64 BCS characters |
|
|
675
|
-
| `data.fees_transfer.payment_index` | number | Yes | Payment index | No decimals or negatives |
|
|
676
|
-
| `data.fees_transfer.newPayment.name` | string | No | Name for the newly created Payment object | Max 64 BCS characters |
|
|
677
|
-
|
|
678
|
-
---
|
|
679
|
-
|
|
680
|
-
### Examples
|
|
681
|
-
|
|
682
|
-
#### Example 10.1: Distribute to Allocation
|
|
683
|
-
|
|
684
|
-
**Prompt**: For "service_arbitration", distribute fees to "fee_allocation" with: 1) Remark "Arbitration fee distribution", 2) Index 0, 3) Name new payment "fee_payment".
|
|
685
|
-
|
|
686
|
-
```json
|
|
687
|
-
{
|
|
688
|
-
"operation_type": "arbitration",
|
|
689
|
-
"data": {
|
|
690
|
-
"object": "service_arbitration",
|
|
691
|
-
"fees_transfer": {
|
|
692
|
-
"to": {
|
|
693
|
-
"allocation": "fee_allocation"
|
|
694
|
-
},
|
|
695
|
-
"payment_remark": "Arbitration fee distribution",
|
|
696
|
-
"payment_index": 0,
|
|
697
|
-
"newPayment": {
|
|
698
|
-
"name": "fee_payment"
|
|
699
|
-
}
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
```
|
|
704
|
-
|
|
705
|
-
#### Example 10.2: Distribute to Treasury
|
|
706
|
-
|
|
707
|
-
**Prompt**: For "service_arbitration", distribute fees to "platform_treasury" with: 1) Remark "Arbitration fees to platform", 2) Index 0.
|
|
708
|
-
|
|
709
|
-
```json
|
|
710
|
-
{
|
|
711
|
-
"operation_type": "arbitration",
|
|
712
|
-
"data": {
|
|
713
|
-
"object": "service_arbitration",
|
|
714
|
-
"fees_transfer": {
|
|
715
|
-
"to": {
|
|
716
|
-
"treasury": "platform_treasury"
|
|
717
|
-
},
|
|
718
|
-
"payment_remark": "Arbitration fees to platform",
|
|
719
|
-
"payment_index": 0
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
```
|
|
724
|
-
|
|
725
|
-
---
|
|
726
|
-
|
|
727
|
-
## Sub-feature 11: Set Usage Guard (usage_guard)
|
|
728
|
-
|
|
729
|
-
### Feature Description
|
|
730
|
-
|
|
731
|
-
Set the verification Guard for users applying for arbitration.
|
|
732
|
-
|
|
733
|
-
### Parameter Description
|
|
734
|
-
|
|
735
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
736
|
-
|----------|------|------|------|------|
|
|
737
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
738
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
739
|
-
| `data.usage_guard` | string or null | Yes | Guard object ID/name, or null to unbind | |
|
|
740
|
-
|
|
741
|
-
---
|
|
742
|
-
|
|
743
|
-
### Examples
|
|
744
|
-
|
|
745
|
-
#### Example 11.1: Set Usage Guard
|
|
746
|
-
|
|
747
|
-
**Prompt**: For "service_arbitration", set usage guard to "eligibility_check".
|
|
748
|
-
|
|
749
|
-
```json
|
|
750
|
-
{
|
|
751
|
-
"operation_type": "arbitration",
|
|
752
|
-
"data": {
|
|
753
|
-
"object": "service_arbitration",
|
|
754
|
-
"usage_guard": "eligibility_check"
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
```
|
|
758
|
-
|
|
759
|
-
#### Example 11.2: Unbind Usage Guard
|
|
760
|
-
|
|
761
|
-
**Prompt**: For "service_arbitration", unbind usage guard (set to null).
|
|
762
|
-
|
|
763
|
-
```json
|
|
764
|
-
{
|
|
765
|
-
"operation_type": "arbitration",
|
|
766
|
-
"data": {
|
|
767
|
-
"object": "service_arbitration",
|
|
768
|
-
"usage_guard": null
|
|
769
|
-
}
|
|
770
|
-
}
|
|
771
|
-
```
|
|
772
|
-
|
|
773
|
-
---
|
|
774
|
-
|
|
775
|
-
## Sub-feature 12: Manage Voting Guards (voting_guard)
|
|
776
|
-
|
|
777
|
-
### Feature Description
|
|
778
|
-
|
|
779
|
-
Manage the verification Guards for arbitration voting.
|
|
780
|
-
|
|
781
|
-
### Parameter Description
|
|
782
|
-
|
|
783
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
784
|
-
|----------|------|------|------|------|
|
|
785
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
786
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
787
|
-
| `data.voting_guard.op` | string | Yes | Operation type | "add", "set", "remove", or "clear" |
|
|
788
|
-
| `data.voting_guard.guards` | array | Required for add/set/remove | List of VotingGuard objects or Guard names |
|
|
789
|
-
|
|
790
|
-
### Operation Type Description
|
|
791
|
-
|
|
792
|
-
| Operation Type | Description |
|
|
793
|
-
|----------------|-------------|
|
|
794
|
-
| `add` | Add new Guard to existing list |
|
|
795
|
-
| `set` | Replace entire Guard list |
|
|
796
|
-
| `remove` | Remove specified Guard (use ID or name) |
|
|
797
|
-
| `clear` | Clear all Guards |
|
|
798
|
-
|
|
799
|
-
---
|
|
800
|
-
|
|
801
|
-
### Examples
|
|
802
|
-
|
|
803
|
-
#### Example 12.1: Add Voting Guard
|
|
804
|
-
|
|
805
|
-
**Prompt**: For "service_arbitration", add voting guard "expert_judge" with FixedValue 50.
|
|
806
|
-
|
|
807
|
-
```json
|
|
808
|
-
{
|
|
809
|
-
"operation_type": "arbitration",
|
|
810
|
-
"data": {
|
|
811
|
-
"object": "service_arbitration",
|
|
812
|
-
"voting_guard": {
|
|
813
|
-
"op": "add",
|
|
814
|
-
"guards": [
|
|
815
|
-
{
|
|
816
|
-
"guard": "expert_judge",
|
|
817
|
-
"vote_weight": {
|
|
818
|
-
"FixedValue": 50
|
|
819
|
-
}
|
|
820
|
-
}
|
|
821
|
-
]
|
|
822
|
-
}
|
|
823
|
-
}
|
|
824
|
-
}
|
|
825
|
-
```
|
|
826
|
-
|
|
827
|
-
#### Example 12.2: Set Voting Guard List
|
|
828
|
-
|
|
829
|
-
**Prompt**: For "service_arbitration", set voting guards to only "chief_judge" with GuardIdentifier 10.
|
|
830
|
-
|
|
831
|
-
```json
|
|
832
|
-
{
|
|
833
|
-
"operation_type": "arbitration",
|
|
834
|
-
"data": {
|
|
835
|
-
"object": "service_arbitration",
|
|
836
|
-
"voting_guard": {
|
|
837
|
-
"op": "set",
|
|
838
|
-
"guards": [
|
|
839
|
-
{
|
|
840
|
-
"guard": "chief_judge",
|
|
841
|
-
"vote_weight": {
|
|
842
|
-
"GuardIdentifier": 10
|
|
843
|
-
}
|
|
844
|
-
}
|
|
845
|
-
]
|
|
846
|
-
}
|
|
847
|
-
}
|
|
848
|
-
}
|
|
849
|
-
```
|
|
850
|
-
|
|
851
|
-
#### Example 12.3: Remove Voting Guard
|
|
852
|
-
|
|
853
|
-
**Prompt**: For "service_arbitration", remove voting guard "old_judge".
|
|
854
|
-
|
|
855
|
-
```json
|
|
856
|
-
{
|
|
857
|
-
"operation_type": "arbitration",
|
|
858
|
-
"data": {
|
|
859
|
-
"object": "service_arbitration",
|
|
860
|
-
"voting_guard": {
|
|
861
|
-
"op": "remove",
|
|
862
|
-
"guards": ["old_judge"]
|
|
863
|
-
}
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
```
|
|
867
|
-
|
|
868
|
-
#### Example 12.4: Clear All Voting Guards
|
|
869
|
-
|
|
870
|
-
**Prompt**: For "service_arbitration", clear all voting guards.
|
|
871
|
-
|
|
872
|
-
```json
|
|
873
|
-
{
|
|
874
|
-
"operation_type": "arbitration",
|
|
875
|
-
"data": {
|
|
876
|
-
"object": "service_arbitration",
|
|
877
|
-
"voting_guard": {
|
|
878
|
-
"op": "clear"
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
|
-
}
|
|
882
|
-
```
|
|
883
|
-
|
|
884
|
-
---
|
|
885
|
-
|
|
886
|
-
## Sub-feature 13: Pause/Resume (pause)
|
|
887
|
-
|
|
888
|
-
### Feature Description
|
|
889
|
-
|
|
890
|
-
Pause or resume arbitration.
|
|
891
|
-
|
|
892
|
-
### Parameter Description
|
|
893
|
-
|
|
894
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
895
|
-
|----------|------|------|------|------|
|
|
896
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
897
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
898
|
-
| `data.pause` | boolean | Yes | Whether to pause | |
|
|
899
|
-
|
|
900
|
-
---
|
|
901
|
-
|
|
902
|
-
### Examples
|
|
903
|
-
|
|
904
|
-
#### Example 13.1: Pause Arbitration
|
|
905
|
-
|
|
906
|
-
**Prompt**: For "service_arbitration", pause arbitration operations.
|
|
907
|
-
|
|
908
|
-
```json
|
|
909
|
-
{
|
|
910
|
-
"operation_type": "arbitration",
|
|
911
|
-
"data": {
|
|
912
|
-
"object": "service_arbitration",
|
|
913
|
-
"pause": true
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
```
|
|
917
|
-
|
|
918
|
-
#### Example 13.2: Resume Arbitration
|
|
919
|
-
|
|
920
|
-
**Prompt**: For "service_arbitration", resume arbitration operations.
|
|
921
|
-
|
|
922
|
-
```json
|
|
923
|
-
{
|
|
924
|
-
"operation_type": "arbitration",
|
|
925
|
-
"data": {
|
|
926
|
-
"object": "service_arbitration",
|
|
927
|
-
"pause": false
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
|
-
```
|
|
931
|
-
|
|
932
|
-
---
|
|
933
|
-
|
|
934
|
-
## Sub-feature 14: Bind Contact (um)
|
|
935
|
-
|
|
936
|
-
### Feature Description
|
|
937
|
-
|
|
938
|
-
Bind a Contact object to Arbitration.
|
|
939
|
-
|
|
940
|
-
### Parameter Description
|
|
941
|
-
|
|
942
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
943
|
-
|----------|------|------|------|------|
|
|
944
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
945
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
946
|
-
| `data.um` | string or null | Yes | Contact object ID/name, or null to unbind | |
|
|
947
|
-
|
|
948
|
-
---
|
|
949
|
-
|
|
950
|
-
### Examples
|
|
951
|
-
|
|
952
|
-
#### Example 14.1: Bind Contact
|
|
953
|
-
|
|
954
|
-
**Prompt**: For "service_arbitration", bind contact "arb_support".
|
|
955
|
-
|
|
956
|
-
```json
|
|
957
|
-
{
|
|
958
|
-
"operation_type": "arbitration",
|
|
959
|
-
"data": {
|
|
960
|
-
"object": "service_arbitration",
|
|
961
|
-
"um": "arb_support"
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
```
|
|
965
|
-
|
|
966
|
-
#### Example 14.2: Unbind Contact
|
|
967
|
-
|
|
968
|
-
**Prompt**: For "service_arbitration", unbind contact (set to null).
|
|
969
|
-
|
|
970
|
-
```json
|
|
971
|
-
{
|
|
972
|
-
"operation_type": "arbitration",
|
|
973
|
-
"data": {
|
|
974
|
-
"object": "service_arbitration",
|
|
975
|
-
"um": null
|
|
976
|
-
}
|
|
977
|
-
}
|
|
978
|
-
```
|
|
979
|
-
|
|
980
|
-
---
|
|
981
|
-
|
|
982
|
-
## Sub-feature 15: Receive Objects (owner_receive)
|
|
983
|
-
|
|
984
|
-
### Feature Description
|
|
985
|
-
|
|
986
|
-
Receive objects sent to this Arbitration object and unpack them to send to the permission owner.
|
|
987
|
-
|
|
988
|
-
### Parameter Description
|
|
989
|
-
|
|
990
|
-
| Parameter Path | Type | Required | Description | Constraints |
|
|
991
|
-
|----------|------|------|------|------|
|
|
992
|
-
| `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
|
|
993
|
-
| `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
|
|
994
|
-
| `data.owner_receive` | string/object/array | No | Receive objects configuration | "recently" or ReceivedBalance object or array |
|
|
995
|
-
|
|
996
|
-
---
|
|
997
|
-
|
|
998
|
-
### Examples
|
|
999
|
-
|
|
1000
|
-
#### Example 15.1: Receive Recent Objects
|
|
1001
|
-
|
|
1002
|
-
**Prompt**: For "service_arbitration", receive all recent objects.
|
|
1003
|
-
|
|
1004
|
-
```json
|
|
1005
|
-
{
|
|
1006
|
-
"operation_type": "arbitration",
|
|
1007
|
-
"data": {
|
|
1008
|
-
"object": "service_arbitration",
|
|
1009
|
-
"owner_receive": "recently"
|
|
1010
|
-
}
|
|
1011
|
-
}
|
|
1012
|
-
```
|
|
1013
|
-
|
|
1014
|
-
---
|
|
1015
|
-
|
|
1016
|
-
## Sub-feature 16: Combined Operations
|
|
1017
|
-
|
|
1018
|
-
### Feature Description
|
|
1019
|
-
|
|
1020
|
-
Execute multiple operations in a single call.
|
|
1021
|
-
|
|
1022
|
-
---
|
|
1023
|
-
|
|
1024
|
-
### Example
|
|
1025
|
-
|
|
1026
|
-
#### Example 16.1: Complete Arbitration Setup
|
|
1027
|
-
|
|
1028
|
-
**Prompt**: Create "complete_arbitration" with: 1) Permission "arbitration_permission", 2) Description "Full-featured arbitration", 3) Location "Online", 4) Fee 1000000000 (1 WOW), 5) Usage guard "eligibility_guard", 6) Add voting guard "head_judge" with FixedValue 100, 7) Bind contact "arb_support".
|
|
1029
|
-
|
|
1030
|
-
```json
|
|
1031
|
-
{
|
|
1032
|
-
"operation_type": "arbitration",
|
|
1033
|
-
"data": {
|
|
1034
|
-
"object": {
|
|
1035
|
-
"name": "complete_arbitration",
|
|
1036
|
-
"permission": "arbitration_permission",
|
|
1037
|
-
"type_parameter": "0x2::wow::WOW"
|
|
1038
|
-
},
|
|
1039
|
-
"description": "Full-featured arbitration",
|
|
1040
|
-
"location": "Online",
|
|
1041
|
-
"fee": 1000000000,
|
|
1042
|
-
"usage_guard": "eligibility_guard",
|
|
1043
|
-
"voting_guard": {
|
|
1044
|
-
"op": "add",
|
|
1045
|
-
"guards": [
|
|
1046
|
-
{
|
|
1047
|
-
"guard": "head_judge",
|
|
1048
|
-
"vote_weight": {
|
|
1049
|
-
"FixedValue": 100
|
|
1050
|
-
}
|
|
1051
|
-
}
|
|
1052
|
-
]
|
|
1053
|
-
},
|
|
1054
|
-
"um": "arb_support"
|
|
1055
|
-
}
|
|
1056
|
-
}
|
|
1057
|
-
```
|
|
1058
|
-
|
|
1059
|
-
---
|
|
1060
|
-
|
|
1061
|
-
## Complete Arbitration Workflow Example
|
|
1062
|
-
|
|
1063
|
-
This example demonstrates a complete arbitration workflow using existing Service and Order objects.
|
|
1064
|
-
|
|
1065
|
-
### Prerequisites
|
|
1066
|
-
|
|
1067
|
-
Before starting the arbitration process, ensure you have:
|
|
1068
|
-
1. A **Permission** object for the Arbitration
|
|
1069
|
-
2. A **Service** with arbitration support and published
|
|
1070
|
-
3. An **Order** created from the Service
|
|
1071
|
-
4. Sufficient WOW tokens for dispute fees
|
|
1072
|
-
|
|
1073
|
-
### Step 1: Create Arbitration Object
|
|
1074
|
-
|
|
1075
|
-
Create an Arbitration object that will handle disputes:
|
|
1076
|
-
|
|
1077
|
-
```json
|
|
1078
|
-
{
|
|
1079
|
-
"operation_type": "arbitration",
|
|
1080
|
-
"data": {
|
|
1081
|
-
"object": {
|
|
1082
|
-
"name": "doc_test_arbitration",
|
|
1083
|
-
"permission": "arb_test_permission",
|
|
1084
|
-
"type_parameter": "0x2::wow::WOW",
|
|
1085
|
-
"tags": ["arbitration", "test", "doc"],
|
|
1086
|
-
"onChain": false
|
|
1087
|
-
},
|
|
1088
|
-
"description": "Arbitration for documentation testing",
|
|
1089
|
-
"location": "Online arbitration system",
|
|
1090
|
-
"fee": 1000000000
|
|
1091
|
-
},
|
|
1092
|
-
"env": {
|
|
1093
|
-
"account": "arbitration_test_account",
|
|
1094
|
-
"network": "testnet",
|
|
1095
|
-
"no_cache": true
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
```
|
|
1099
|
-
|
|
1100
|
-
**Returns**:
|
|
1101
|
-
```json
|
|
1102
|
-
{
|
|
1103
|
-
"status": "success",
|
|
1104
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
1105
|
-
"type": "Arbitration",
|
|
1106
|
-
"version": "1413284",
|
|
1107
|
-
"change": "created"
|
|
1108
|
-
}
|
|
1109
|
-
```
|
|
1110
|
-
|
|
1111
|
-
### Step 2: Create Service with Arbitration Support
|
|
1112
|
-
|
|
1113
|
-
Create a Service that includes the Arbitration object:
|
|
1114
|
-
|
|
1115
|
-
```json
|
|
1116
|
-
{
|
|
1117
|
-
"operation_type": "service",
|
|
1118
|
-
"data": {
|
|
1119
|
-
"object": {
|
|
1120
|
-
"name": "arb_test_service",
|
|
1121
|
-
"permission": "arb_test_permission",
|
|
1122
|
-
"type_parameter": "0x2::wow::WOW",
|
|
1123
|
-
"tags": ["service", "arbitration", "test"],
|
|
1124
|
-
"onChain": false
|
|
1125
|
-
},
|
|
1126
|
-
"description": "Service for arbitration testing",
|
|
1127
|
-
"sales": {
|
|
1128
|
-
"op": "add",
|
|
1129
|
-
"sales": [{
|
|
1130
|
-
"name": "test_product",
|
|
1131
|
-
"price": 1000000000,
|
|
1132
|
-
"stock": 100,
|
|
1133
|
-
"suspension": false,
|
|
1134
|
-
"wip": "https://example.com/wip",
|
|
1135
|
-
"wip_hash": ""
|
|
1136
|
-
}]
|
|
1137
|
-
},
|
|
1138
|
-
"arbitrations": {
|
|
1139
|
-
"op": "add",
|
|
1140
|
-
"objects": ["doc_test_arbitration"]
|
|
1141
|
-
},
|
|
1142
|
-
"order_allocators": {
|
|
1143
|
-
"description": "Order fund allocators",
|
|
1144
|
-
"threshold": 100000000,
|
|
1145
|
-
"allocators": [{
|
|
1146
|
-
"guard": "test_guard_arb",
|
|
1147
|
-
"sharing": [{
|
|
1148
|
-
"who": {"Signer": "signer"},
|
|
1149
|
-
"sharing": 10000,
|
|
1150
|
-
"mode": "Rate"
|
|
1151
|
-
}]
|
|
1152
|
-
}]
|
|
1153
|
-
},
|
|
1154
|
-
"publish": true
|
|
1155
|
-
},
|
|
1156
|
-
"env": {
|
|
1157
|
-
"account": "arbitration_test_account",
|
|
1158
|
-
"network": "testnet",
|
|
1159
|
-
"no_cache": true
|
|
1160
|
-
}
|
|
1161
|
-
}
|
|
1162
|
-
```
|
|
1163
|
-
|
|
1164
|
-
**Returns**:
|
|
1165
|
-
```json
|
|
1166
|
-
{
|
|
1167
|
-
"status": "success",
|
|
1168
|
-
"object": "0x50ca67dfb163b8bbab3d3ed59052d28a8859de167ea101b19e012bc4a258f708",
|
|
1169
|
-
"type": "Service",
|
|
1170
|
-
"version": "1415003",
|
|
1171
|
-
"change": "created"
|
|
1172
|
-
}
|
|
1173
|
-
```
|
|
1174
|
-
|
|
1175
|
-
### Step 3: Create Order
|
|
1176
|
-
|
|
1177
|
-
Create an Order from the Service:
|
|
1178
|
-
|
|
1179
|
-
```json
|
|
1180
|
-
{
|
|
1181
|
-
"operation_type": "service",
|
|
1182
|
-
"data": {
|
|
1183
|
-
"object": "arb_test_service",
|
|
1184
|
-
"order_new": {
|
|
1185
|
-
"buy": {
|
|
1186
|
-
"items": [{
|
|
1187
|
-
"name": "test_product",
|
|
1188
|
-
"stock": 1,
|
|
1189
|
-
"wip_hash": ""
|
|
1190
|
-
}],
|
|
1191
|
-
"total_pay": {"balance": 1000000000}
|
|
1192
|
-
},
|
|
1193
|
-
"order_required_info": "test_contact_2026",
|
|
1194
|
-
"namedNewOrder": {
|
|
1195
|
-
"name": "arb_test_order",
|
|
1196
|
-
"onChain": false
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
|
-
},
|
|
1200
|
-
"env": {
|
|
1201
|
-
"account": "arbitration_test_account",
|
|
1202
|
-
"network": "testnet",
|
|
1203
|
-
"no_cache": true
|
|
1204
|
-
}
|
|
1205
|
-
}
|
|
1206
|
-
```
|
|
1207
|
-
|
|
1208
|
-
**Returns**:
|
|
1209
|
-
```json
|
|
1210
|
-
{
|
|
1211
|
-
"status": "success",
|
|
1212
|
-
"results": [
|
|
1213
|
-
{
|
|
1214
|
-
"object": "0x2b1439093329363d108a9eef44414c3ae916762c030b63457ebfb351af7b5cc0",
|
|
1215
|
-
"type": "Order",
|
|
1216
|
-
"version": "1415346",
|
|
1217
|
-
"change": "created"
|
|
1218
|
-
},
|
|
1219
|
-
{
|
|
1220
|
-
"object": "0x4488b2f85a3869b5c480d194c35270b1a449518f2bdd8a3641872cbc47d45dc2",
|
|
1221
|
-
"type": "Allocation",
|
|
1222
|
-
"version": "1415346",
|
|
1223
|
-
"change": "created"
|
|
1224
|
-
}
|
|
1225
|
-
]
|
|
1226
|
-
}
|
|
1227
|
-
```
|
|
1228
|
-
|
|
1229
|
-
### Step 4: Resume Arbitration (if paused)
|
|
1230
|
-
|
|
1231
|
-
Ensure the Arbitration is active:
|
|
1232
|
-
|
|
1233
|
-
```json
|
|
1234
|
-
{
|
|
1235
|
-
"operation_type": "arbitration",
|
|
1236
|
-
"data": {
|
|
1237
|
-
"object": "doc_test_arbitration",
|
|
1238
|
-
"pause": false
|
|
1239
|
-
},
|
|
1240
|
-
"env": {
|
|
1241
|
-
"account": "arbitration_test_account",
|
|
1242
|
-
"network": "testnet",
|
|
1243
|
-
"no_cache": true
|
|
1244
|
-
}
|
|
1245
|
-
}
|
|
1246
|
-
```
|
|
1247
|
-
|
|
1248
|
-
**Returns**:
|
|
1249
|
-
```json
|
|
1250
|
-
{
|
|
1251
|
-
"status": "success",
|
|
1252
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
1253
|
-
"type": "Arbitration",
|
|
1254
|
-
"version": "1415347",
|
|
1255
|
-
"change": "mutated"
|
|
1256
|
-
}
|
|
1257
|
-
```
|
|
1258
|
-
|
|
1259
|
-
### Step 5: Initiate Dispute
|
|
1260
|
-
|
|
1261
|
-
Create a dispute for the Order:
|
|
1262
|
-
|
|
1263
|
-
```json
|
|
1264
|
-
{
|
|
1265
|
-
"operation_type": "arbitration",
|
|
1266
|
-
"data": {
|
|
1267
|
-
"object": "doc_test_arbitration",
|
|
1268
|
-
"dispute": {
|
|
1269
|
-
"order": "arb_test_order",
|
|
1270
|
-
"description": "Product quality does not match description",
|
|
1271
|
-
"proposition": ["Full refund", "Partial refund 50%", "No refund"],
|
|
1272
|
-
"fee": {"balance": 1000000000},
|
|
1273
|
-
"namedArb": {
|
|
1274
|
-
"name": "test_dispute_2026",
|
|
1275
|
-
"onChain": false
|
|
1276
|
-
}
|
|
1277
|
-
}
|
|
1278
|
-
},
|
|
1279
|
-
"env": {
|
|
1280
|
-
"account": "arbitration_test_account",
|
|
1281
|
-
"network": "testnet",
|
|
1282
|
-
"no_cache": true
|
|
1283
|
-
}
|
|
1284
|
-
}
|
|
1285
|
-
```
|
|
1286
|
-
|
|
1287
|
-
**Returns**:
|
|
1288
|
-
```json
|
|
1289
|
-
{
|
|
1290
|
-
"status": "success",
|
|
1291
|
-
"results": [
|
|
1292
|
-
{
|
|
1293
|
-
"object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
|
|
1294
|
-
"type": "Arb",
|
|
1295
|
-
"version": "1415870",
|
|
1296
|
-
"change": "created"
|
|
1297
|
-
}
|
|
1298
|
-
]
|
|
1299
|
-
}
|
|
1300
|
-
```
|
|
1301
|
-
|
|
1302
|
-
### Step 6: Confirm Materials
|
|
1303
|
-
|
|
1304
|
-
Confirm the dispute materials and set voting deadline:
|
|
1305
|
-
|
|
1306
|
-
```json
|
|
1307
|
-
{
|
|
1308
|
-
"operation_type": "arbitration",
|
|
1309
|
-
"data": {
|
|
1310
|
-
"object": "doc_test_arbitration",
|
|
1311
|
-
"confirm": {
|
|
1312
|
-
"arb": "test_dispute_2026",
|
|
1313
|
-
"voting_deadline": 1777830400000
|
|
1314
|
-
}
|
|
1315
|
-
},
|
|
1316
|
-
"env": {
|
|
1317
|
-
"account": "arbitration_test_account",
|
|
1318
|
-
"network": "testnet",
|
|
1319
|
-
"no_cache": true
|
|
1320
|
-
}
|
|
1321
|
-
}
|
|
1322
|
-
```
|
|
1323
|
-
|
|
1324
|
-
### Step 7: Provide Feedback
|
|
1325
|
-
|
|
1326
|
-
Add arbitration feedback:
|
|
1327
|
-
|
|
1328
|
-
```json
|
|
1329
|
-
{
|
|
1330
|
-
"operation_type": "arbitration",
|
|
1331
|
-
"data": {
|
|
1332
|
-
"object": "doc_test_arbitration",
|
|
1333
|
-
"feedback": {
|
|
1334
|
-
"arb": "test_dispute_2026",
|
|
1335
|
-
"feedback": "All evidence has been reviewed. The buyer provided sufficient proof of product quality issues."
|
|
1336
|
-
}
|
|
1337
|
-
},
|
|
1338
|
-
"env": {
|
|
1339
|
-
"account": "arbitration_test_account",
|
|
1340
|
-
"network": "testnet",
|
|
1341
|
-
"no_cache": true
|
|
1342
|
-
}
|
|
1343
|
-
}
|
|
1344
|
-
```
|
|
1345
|
-
|
|
1346
|
-
### Step 8: Issue Final Ruling
|
|
1347
|
-
|
|
1348
|
-
Provide the final arbitration result with compensation:
|
|
1349
|
-
|
|
1350
|
-
```json
|
|
1351
|
-
{
|
|
1352
|
-
"operation_type": "arbitration",
|
|
1353
|
-
"data": {
|
|
1354
|
-
"object": "doc_test_arbitration",
|
|
1355
|
-
"arbitration": {
|
|
1356
|
-
"arb": "test_dispute_2026",
|
|
1357
|
-
"feedback": "Based on all evidence provided, the buyer's claim is valid. The product quality does not match the description.",
|
|
1358
|
-
"indemnity": 500000000
|
|
1359
|
-
}
|
|
1360
|
-
},
|
|
1361
|
-
"env": {
|
|
1362
|
-
"account": "arbitration_test_account",
|
|
1363
|
-
"network": "testnet",
|
|
1364
|
-
"no_cache": true
|
|
1365
|
-
}
|
|
1366
|
-
}
|
|
1367
|
-
```
|
|
1368
|
-
|
|
1369
|
-
**Note**: The `indemnity` amount requires sufficient compensation fund in the Service. If insufficient funds exist, the transaction will fail with error code 4.
|
|
1370
|
-
|
|
1371
|
-
### Step 9: Claim Compensation (by Order Owner)
|
|
1372
|
-
|
|
1373
|
-
After arbitration is finalized, the order owner can claim compensation:
|
|
1374
|
-
|
|
1375
|
-
```json
|
|
1376
|
-
{
|
|
1377
|
-
"operation_type": "order",
|
|
1378
|
-
"data": {
|
|
1379
|
-
"object": "arb_test_order",
|
|
1380
|
-
"arb_claim_compensation": {
|
|
1381
|
-
"arb": "test_dispute_2026"
|
|
1382
|
-
}
|
|
1383
|
-
},
|
|
1384
|
-
"env": {
|
|
1385
|
-
"account": "arbitration_test_account",
|
|
1386
|
-
"network": "testnet",
|
|
1387
|
-
"no_cache": true
|
|
1388
|
-
}
|
|
1389
|
-
}
|
|
1390
|
-
```
|
|
1391
|
-
|
|
1392
|
-
---
|
|
1393
|
-
|
|
1394
|
-
## Complete Arbitration Workflow Example (Real On-Chain Data)
|
|
1395
|
-
|
|
1396
|
-
This example demonstrates the **complete arbitration process** from dispute creation to compensation claim using **real on-chain objects and transaction data**. This showcases the transparent, auditable nature of on-chain arbitration.
|
|
1397
|
-
|
|
1398
|
-
### 📊 Real Objects on Testnet
|
|
1399
|
-
|
|
1400
|
-
| Object | ID | Type | Description |
|
|
1401
|
-
|--------|-----|------|-------------|
|
|
1402
|
-
| **Service** | `0x50ca67dfb163b8bbab3d3ed59052d28a8859de167ea101b19e012bc4a258f708` | Service | Published service with 7.999 WOW compensation fund |
|
|
1403
|
-
| **Arbitration** | `0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec` | Arbitration | Active arbitration with 1 WOW fee |
|
|
1404
|
-
| **Order** | `0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6` | Order | Completed order with 1 WOW payment |
|
|
1405
|
-
| **Arb (Dispute)** | `0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0` | Arb | **Status: Finished (5)** - Compensation claimed |
|
|
1406
|
-
|
|
1407
|
-
### 🔍 Real Transaction History
|
|
1408
|
-
|
|
1409
|
-
| Step | Transaction | Block | Description |
|
|
1410
|
-
|------|-------------|-------|-------------|
|
|
1411
|
-
| Order Created | `8Rq9...` | 1651574 | Buyer created order for test_product |
|
|
1412
|
-
| Dispute Created | `HKkg...` | 1652451 | Buyer initiated dispute with 1 WOW fee |
|
|
1413
|
-
| Materials Confirmed | `2trT...` | 1654581 | Arbitrator confirmed, set 10s voting deadline |
|
|
1414
|
-
| Ruling Issued | `AZcM...` | 1660200 | Arbitrator ruled: 0.001 WOW compensation |
|
|
1415
|
-
| **Compensation Claimed** | `AZcM...` | 1660200 | **Buyer received 0.001 WOW** |
|
|
1416
|
-
|
|
1417
|
-
### 📋 Arb Object Final State
|
|
1418
|
-
|
|
1419
|
-
```json
|
|
1420
|
-
{
|
|
1421
|
-
"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
|
|
1422
|
-
"type": "Arb",
|
|
1423
|
-
"type_raw": "0x2::arb::Arb<0x2::wow::WOW>",
|
|
1424
|
-
"description": "Product quality does not match description, requesting refund",
|
|
1425
|
-
"order": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6",
|
|
1426
|
-
"arbitration": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
1427
|
-
"proposition": [
|
|
1428
|
-
{"name": "Full refund", "votes": "0"},
|
|
1429
|
-
{"name": "Partial refund 50%", "votes": "0"},
|
|
1430
|
-
{"name": "No refund - keep product", "votes": "0"}
|
|
1431
|
-
],
|
|
1432
|
-
"fee": "1000000000",
|
|
1433
|
-
"feedback": "After review, support buyer claim, full refund granted",
|
|
1434
|
-
"indemnity": {"amount": "1000000", "time": "1776834479869"},
|
|
1435
|
-
"voting_deadline": "1776834427793",
|
|
1436
|
-
"status": 5,
|
|
1437
|
-
"compensation_time": "1776834773322",
|
|
1438
|
-
"time": "1776834368972"
|
|
1439
|
-
}
|
|
1440
|
-
```
|
|
1441
|
-
|
|
1442
|
-
### 🎯 Scenario: Product Quality Dispute
|
|
1443
|
-
|
|
1444
|
-
**Background**: A buyer purchased "test_product" (1 WOW) from `arb_test_service` but received an item with quality issues that didn't match the description.
|
|
1445
|
-
|
|
1446
|
-
**Timeline**:
|
|
1447
|
-
- **T+0**: Order created and paid
|
|
1448
|
-
- **T+1min**: Buyer discovers quality issue
|
|
1449
|
-
- **T+5min**: Buyer initiates dispute with 3 propositions
|
|
1450
|
-
- **T+6min**: Arbitrator confirms materials, sets 10-second voting deadline
|
|
1451
|
-
- **T+16s**: Voting deadline passes
|
|
1452
|
-
- **T+20s**: Arbitrator issues ruling: 0.001 WOW compensation
|
|
1453
|
-
- **T+25s**: Buyer claims compensation
|
|
1454
|
-
|
|
1455
|
-
---
|
|
1456
|
-
|
|
1457
|
-
## 🔄 Complete Arbitration State Machine
|
|
1458
|
-
|
|
1459
|
-
### State Diagram
|
|
1460
|
-
|
|
1461
|
-
```mermaid
|
|
1462
|
-
stateDiagram-v2
|
|
1463
|
-
[*] --> PrincipalConfirming : create dispute
|
|
1464
|
-
PrincipalConfirming --> ArbitratorConfirming : principal_confirm
|
|
1465
|
-
ArbitratorConfirming --> Voting : arbitrator_confirm
|
|
1466
|
-
Voting --> Arbitrated : arbitration
|
|
1467
|
-
Arbitrated --> Finished : arb_claim_compensation
|
|
1468
|
-
Arbitrated --> Objectionable : objection
|
|
1469
|
-
Objectionable --> PrincipalConfirming : reset
|
|
1470
|
-
|
|
1471
|
-
note right of PrincipalConfirming
|
|
1472
|
-
Status: 0
|
|
1473
|
-
Buyer confirms dispute
|
|
1474
|
-
end note
|
|
1475
|
-
|
|
1476
|
-
note right of ArbitratorConfirming
|
|
1477
|
-
Status: 1
|
|
1478
|
-
Arbitrator reviews case
|
|
1479
|
-
end note
|
|
1480
|
-
|
|
1481
|
-
note right of Voting
|
|
1482
|
-
Status: 2
|
|
1483
|
-
Voting period active
|
|
1484
|
-
voting_deadline must pass
|
|
1485
|
-
end note
|
|
1486
|
-
|
|
1487
|
-
note right of Arbitrated
|
|
1488
|
-
Status: 3
|
|
1489
|
-
Ruling issued
|
|
1490
|
-
indemnity set
|
|
1491
|
-
end note
|
|
1492
|
-
|
|
1493
|
-
note right of Objectionable
|
|
1494
|
-
Status: 4
|
|
1495
|
-
Appeal window open
|
|
1496
|
-
end note
|
|
1497
|
-
|
|
1498
|
-
note right of Finished
|
|
1499
|
-
Status: 5
|
|
1500
|
-
Compensation transferred
|
|
1501
|
-
end note
|
|
1502
|
-
```
|
|
1503
|
-
|
|
1504
|
-
### State Transitions with Time/Amount Conditions
|
|
1505
|
-
|
|
1506
|
-
| From | To | Trigger | Time/Amount Condition |
|
|
1507
|
-
|------|-----|---------|----------------------|
|
|
1508
|
-
| 0 → 1 | Principal_confirming → Arbitrator_confirming | `principal_confirm` | None |
|
|
1509
|
-
| 1 → 2 | Arbitrator_confirming → Voting | `arbitrator_confirm` | voting_deadline set (optional) |
|
|
1510
|
-
| 2 → 3 | Voting → Arbitrated | `arbitration` | **Must pass voting_deadline** if set |
|
|
1511
|
-
| 3 → 5 | Arbitrated → Finished | `arb_claim_compensation` | None |
|
|
1512
|
-
| 3 → 4 | Arbitrated → Objectionable | `objection` | Within objection period |
|
|
1513
|
-
| 4 → 0 | Objectionable → Principal_confirming | `reset` | None |
|
|
1514
|
-
|
|
1515
|
-
### 💰 Financial Flow
|
|
1516
|
-
|
|
1517
|
-
```mermaid
|
|
1518
|
-
flowchart LR
|
|
1519
|
-
subgraph BuyerAction["Buyer Actions"]
|
|
1520
|
-
B1[Pay Dispute Fee]
|
|
1521
|
-
B2[Submit Evidence]
|
|
1522
|
-
B3[Claim Compensation]
|
|
1523
|
-
end
|
|
1524
|
-
|
|
1525
|
-
subgraph ArbProcess["Arbitration Process"]
|
|
1526
|
-
A1[Arb Object<br/>Fee Locked]
|
|
1527
|
-
A2[Voting Period]
|
|
1528
|
-
A3[Ruling Issued<br/>Indemnity Set]
|
|
1529
|
-
end
|
|
1530
|
-
|
|
1531
|
-
subgraph ServiceFund["Service Compensation"]
|
|
1532
|
-
S1[Compensation Fund]
|
|
1533
|
-
S2[Deduct Indemnity]
|
|
1534
|
-
end
|
|
1535
|
-
|
|
1536
|
-
B1 --> A1
|
|
1537
|
-
A1 --> A2
|
|
1538
|
-
A2 --> A3
|
|
1539
|
-
A3 --> S2
|
|
1540
|
-
S2 --> B3
|
|
1541
|
-
|
|
1542
|
-
style B1 fill:#ffcccc
|
|
1543
|
-
style B3 fill:#ccffcc
|
|
1544
|
-
style S2 fill:#ffffcc
|
|
1545
|
-
```
|
|
1546
|
-
|
|
1547
|
-
**Fee Distribution**:
|
|
1548
|
-
- Dispute fee: 1 WOW (paid by buyer to Arb)
|
|
1549
|
-
- Compensation: 0.001 WOW (from Service fund to buyer)
|
|
1550
|
-
- Net buyer cost: 0.999 WOW (fee - compensation)
|
|
1551
|
-
|
|
1552
|
-
### Permission Matrix
|
|
1553
|
-
|
|
1554
|
-
| Operation | Status Required | Actor | Additional Requirements |
|
|
1555
|
-
|-----------|-----------------|-------|------------------------|
|
|
1556
|
-
| `dispute` | - | Buyer | Order owner, arbitration unpaused |
|
|
1557
|
-
| `principal_confirm` | 0 | Buyer | Must be dispute initiator |
|
|
1558
|
-
| `arbitrator_confirm` | 1 | Arbitrator | Must be designated arbitrator |
|
|
1559
|
-
| `arbitration` | 2 | Arbitrator | `voting_deadline` must pass |
|
|
1560
|
-
| `arb_claim_compensation` | 3 | Buyer | Order owner, indemnity > 0 |
|
|
1561
|
-
| `objection` | 3 | Buyer | Within appeal window |
|
|
1562
|
-
| `reset` | 4 | System | Automatic on objection |
|
|
1563
|
-
|
|
1564
|
-
---
|
|
1565
|
-
|
|
1566
|
-
## Transparent Arbitration Process
|
|
1567
|
-
|
|
1568
|
-
The WoWok arbitration system is designed with complete transparency - all actions, evidence, and decisions are recorded on-chain and can be verified by anyone. This section details how the transparent arbitration process works and how parties can submit evidence.
|
|
1569
|
-
|
|
1570
|
-
### Public Transparency Features
|
|
1571
|
-
|
|
1572
|
-
| Aspect | Transparency Mechanism | Verification Method |
|
|
1573
|
-
|--------|------------------------|---------------------|
|
|
1574
|
-
| **Dispute Creation** | Arb object created on-chain with all parameters public | Query Arb object by ID |
|
|
1575
|
-
| **Evidence Submission** | Evidence hashes recorded in `feedback` field | Cross-reference with Messenger or IPFS |
|
|
1576
|
-
| **Voting Records** | All votes recorded with voter Guard verification | Query Arb object voting history |
|
|
1577
|
-
| **Arbitration Ruling** | Final decision and indemnity amount permanently stored | Query Arb object status and fields |
|
|
1578
|
-
| **Fund Movements** | All compensation transfers traceable on-chain | Query transaction effects |
|
|
1579
|
-
|
|
1580
|
-
### Evidence Submission via Messenger
|
|
1581
|
-
|
|
1582
|
-
The WoWok Messenger provides an encrypted, verifiable channel for submitting sensitive evidence during arbitration. This ensures privacy while maintaining transparency through cryptographic proofs.
|
|
1583
|
-
|
|
1584
|
-
## Step-by-Step Real Execution
|
|
1585
|
-
|
|
1586
|
-
### Step 1: Buyer Creates Dispute (Status: 0 → 1)
|
|
1587
|
-
|
|
1588
|
-
The buyer creates a dispute for the order, paying the 1 WOW arbitration fee:
|
|
1589
|
-
|
|
1590
|
-
**Request**:
|
|
1591
|
-
```json
|
|
1592
|
-
{
|
|
1593
|
-
"operation_type": "arbitration",
|
|
1594
|
-
"data": {
|
|
1595
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
1596
|
-
"dispute": {
|
|
1597
|
-
"order": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6",
|
|
1598
|
-
"description": "Product quality does not match description, requesting refund",
|
|
1599
|
-
"proposition": ["Full refund", "Partial refund 50%", "No refund - keep product"],
|
|
1600
|
-
"fee": {"balance": 1000000000},
|
|
1601
|
-
"namedArb": {"name": "real_dispute_2026", "onChain": false}
|
|
1602
|
-
}
|
|
1603
|
-
},
|
|
1604
|
-
"env": {"account": "buyer_account", "network": "testnet", "no_cache": true}
|
|
1605
|
-
}
|
|
1606
|
-
```
|
|
1607
|
-
|
|
1608
|
-
**Real Response**:
|
|
1609
|
-
```json
|
|
1610
|
-
{
|
|
1611
|
-
"status": "success",
|
|
1612
|
-
"results": [
|
|
1613
|
-
{"object": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6", "type": "Order", "version": "1652451", "change": "mutated"},
|
|
1614
|
-
{"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec", "type": "Arbitration", "version": "1652451", "change": "mutated"},
|
|
1615
|
-
{"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0", "type": "Arb", "version": "1652451", "change": "created"}
|
|
1616
|
-
]
|
|
1617
|
-
}
|
|
1618
|
-
```
|
|
1619
|
-
|
|
1620
|
-
**On-Chain Evidence**:
|
|
1621
|
-
- Arb created at: Block 1652451
|
|
1622
|
-
- Status: Status_Arbitrator_confirming (1)
|
|
1623
|
-
- Fee locked: 1 WOW
|
|
1624
|
-
|
|
1625
|
-
---
|
|
1626
|
-
|
|
1627
|
-
### Step 2: Arbitrator Confirms Materials (Status: 1 → 2)
|
|
1628
|
-
|
|
1629
|
-
The arbitrator reviews the dispute and confirms materials, setting a short voting deadline:
|
|
1630
|
-
|
|
1631
|
-
**Request**:
|
|
1632
|
-
```json
|
|
1633
|
-
{
|
|
1634
|
-
"operation_type": "arbitration",
|
|
1635
|
-
"data": {
|
|
1636
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
1637
|
-
"confirm": {
|
|
1638
|
-
"arb": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
|
|
1639
|
-
"voting_deadline": 1776834427793
|
|
1640
|
-
}
|
|
1641
|
-
},
|
|
1642
|
-
"env": {"account": "arbitration_admin", "network": "testnet", "no_cache": true}
|
|
1643
|
-
}
|
|
1644
|
-
```
|
|
1645
|
-
|
|
1646
|
-
**Real Response**:
|
|
1647
|
-
```json
|
|
1648
|
-
{
|
|
1649
|
-
"status": "success",
|
|
1650
|
-
"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
|
|
1651
|
-
"type": "Arb",
|
|
1652
|
-
"version": "1654581",
|
|
1653
|
-
"change": "mutated"
|
|
1654
|
-
}
|
|
1655
|
-
```
|
|
1656
|
-
|
|
1657
|
-
**State Change**:
|
|
1658
|
-
- Status: Status_Voting (2)
|
|
1659
|
-
- Voting deadline: 1776834427793 (Unix timestamp ms)
|
|
1660
|
-
- Time window: ~10 seconds for this demo
|
|
1661
|
-
|
|
1662
|
-
---
|
|
1663
|
-
|
|
1664
|
-
### Step 3: Voting Period (Optional)
|
|
1665
|
-
|
|
1666
|
-
During the voting period (if configured), authorized voters can cast votes on propositions. **Proposition indices are 0-based**:
|
|
1667
|
-
|
|
1668
|
-
- Index 0: "Full refund"
|
|
1669
|
-
- Index 1: "Partial refund 50%"
|
|
1670
|
-
- Index 2: "No refund - keep product"
|
|
1671
|
-
|
|
1672
|
-
**Note**: In this real example, no voting guards were configured, so voting was skipped.
|
|
1673
|
-
|
|
1674
|
-
---
|
|
1675
|
-
|
|
1676
|
-
### Step 4: Arbitrator Issues Final Ruling (Status: 2 → 3)
|
|
1677
|
-
|
|
1678
|
-
**⚠️ Critical**: Can only execute after `voting_deadline` has passed!
|
|
1679
|
-
|
|
1680
|
-
The arbitrator provides the final decision with compensation amount:
|
|
1681
|
-
|
|
1682
|
-
**Request**:
|
|
1683
|
-
```json
|
|
1684
|
-
{
|
|
1685
|
-
"operation_type": "arbitration",
|
|
1686
|
-
"data": {
|
|
1687
|
-
"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
|
|
1688
|
-
"arbitration": {
|
|
1689
|
-
"arb": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
|
|
1690
|
-
"feedback": "After review, support buyer claim, full refund granted",
|
|
1691
|
-
"indemnity": 1000000
|
|
1692
|
-
}
|
|
1693
|
-
},
|
|
1694
|
-
"env": {"account": "arbitration_admin", "network": "testnet", "no_cache": true}
|
|
1695
|
-
}
|
|
1696
|
-
```
|
|
1697
|
-
|
|
1698
|
-
**Real Response**:
|
|
1699
|
-
```json
|
|
1700
|
-
{
|
|
1701
|
-
"status": "success",
|
|
1702
|
-
"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
|
|
1703
|
-
"type": "Arb",
|
|
1704
|
-
"version": "1654581",
|
|
1705
|
-
"change": "mutated"
|
|
1706
|
-
}
|
|
1707
|
-
```
|
|
1708
|
-
|
|
1709
|
-
**State Change**:
|
|
1710
|
-
- Status: Status_Arbitrated (3)
|
|
1711
|
-
- Indemnity set: 0.001 WOW (1000000)
|
|
1712
|
-
- Feedback recorded on-chain
|
|
1713
|
-
- Service compensation fund: 7.999 → 7.998 WOW
|
|
1714
|
-
|
|
1715
|
-
---
|
|
1716
|
-
|
|
1717
|
-
### Step 5: Buyer Claims Compensation (Status: 3 → 5)
|
|
1718
|
-
|
|
1719
|
-
After arbitration is finalized, the **order owner (buyer)** claims the awarded compensation via the Order component:
|
|
1720
|
-
|
|
1721
|
-
**Request**:
|
|
1722
|
-
```json
|
|
1723
|
-
{
|
|
1724
|
-
"operation_type": "order",
|
|
1725
|
-
"data": {
|
|
1726
|
-
"object": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6",
|
|
1727
|
-
"arb_claim_compensation": {
|
|
1728
|
-
"arb": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0"
|
|
1729
|
-
}
|
|
1730
|
-
},
|
|
1731
|
-
"env": {"account": "buyer_account", "network": "testnet", "no_cache": true}
|
|
1732
|
-
}
|
|
1733
|
-
```
|
|
1734
|
-
|
|
1735
|
-
**Real Response**:
|
|
1736
|
-
```json
|
|
1737
|
-
{
|
|
1738
|
-
"status": "success",
|
|
1739
|
-
"results": [
|
|
1740
|
-
{"object": "0x50ca67dfb163b8bbab3d3ed59052d28a8859de167ea101b19e012bc4a258f708", "type": "Service", "version": "1660200", "change": "mutated"},
|
|
1741
|
-
{"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0", "type": "Arb", "version": "1660200", "change": "mutated"},
|
|
1742
|
-
{"object": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6", "type": "Order", "version": "1660200", "change": "mutated"}
|
|
1743
|
-
]
|
|
1744
|
-
}
|
|
1745
|
-
```
|
|
1746
|
-
|
|
1747
|
-
**Final State**:
|
|
1748
|
-
- Status: Status_Finished (5)
|
|
1749
|
-
- Compensation time: 1776834773322 (claimed timestamp)
|
|
1750
|
-
- Buyer received: 0.001 WOW
|
|
1751
|
-
- Service fund: 7.998 WOW
|
|
1752
|
-
|
|
1753
|
-
---
|
|
1754
|
-
|
|
1755
|
-
## 📊 Complete Workflow Summary
|
|
1756
|
-
|
|
1757
|
-
| Step | Actor | Status | Operation | Amount | Time |
|
|
1758
|
-
|------|-------|--------|-----------|--------|------|
|
|
1759
|
-
| 1 | Buyer | 0→1 | `dispute` | -1 WOW (fee) | Block 1652451 |
|
|
1760
|
-
| 2 | Arbitrator | 1→2 | `confirm` | 0 | Block 1654581 |
|
|
1761
|
-
| 3 | - | 2 | Voting period | 0 | 10 seconds |
|
|
1762
|
-
| 4 | Arbitrator | 2→3 | `arbitration` | Set 0.001 WOW | Block 1654581 |
|
|
1763
|
-
| 5 | Buyer | 3→5 | `arb_claim_compensation` | +0.001 WOW | Block 1660200 |
|
|
1764
|
-
|
|
1765
|
-
**Net Result**: Buyer paid 0.999 WOW (1.0 fee - 0.001 compensation) for the arbitration process.
|
|
1766
|
-
|
|
1767
|
-
---
|
|
1768
|
-
|
|
1769
|
-
## 🔗 Related Documentation
|
|
1770
|
-
|
|
1771
|
-
| Component | Link | Description |
|
|
1772
|
-
|-----------|------|-------------|
|
|
1773
|
-
| **Service Setup** | [Service - Compensation Fund](service.md#sub-feature-11-add-compensation-fund) | Configure service with arbitration support |
|
|
1774
|
-
| **Order Creation** | [Service - Create Order](service.md#sub-feature-12-configure-customer-required-info) | How orders are created from services |
|
|
1775
|
-
| **Claim Compensation** | [Order - Claim Compensation](order.md#function-6-claim-arbitration-compensation-arb_claim_compensation) | Detailed guide for buyers to claim |
|
|
1776
|
-
| **Objection Process** | [Order - Object to Arbitration](order.md#function-5-object-to-arbitration-result-arb_objection) | How to appeal arbitration decisions |
|
|
1777
|
-
| **Messenger Evidence** | [Messenger](messenger.md) | Submit encrypted evidence via WoWok Messenger |
|
|
1778
|
-
|
|
1779
|
-
---
|
|
1780
|
-
|
|
1781
|
-
## Important Notes
|
|
1782
|
-
|
|
1783
|
-
⚠️ **Dispute fees are required to initiate arbitration.**
|
|
1784
|
-
|
|
1785
|
-
⚠️ **Voting weights must be either FixedValue (0-65535) or GuardIdentifier (0-255).**
|
|
1786
|
-
|
|
1787
|
-
⚠️ **Compensation fund must be sufficient in the Service to cover the indemnity amount.**
|
|
1788
|
-
|
|
1789
|
-
⚠️ **Arbitration must be unpaused (pause: false) to accept disputes.**
|
|
1790
|
-
|
|
1791
|
-
---
|
|
1792
|
-
|
|
1793
|
-
## Related Components
|
|
1794
|
-
|
|
1795
|
-
| Component | Description |
|
|
1796
|
-
|-----------|-------------|
|
|
1797
|
-
| **[Service](service.md)** | WYSIWYG product trading - creates orders that may need arbitration |
|
|
1798
|
-
| **[Order](order.md)** | Order management - subject of arbitration disputes |
|
|
1799
|
-
| **[Treasury](treasury.md)** | Team fund management - can receive arbitration fees |
|
|
1800
|
-
| **[Allocation](allocation.md)** | Automatic fund distribution - can receive arbitration fees |
|
|
1801
|
-
| **[Permission](permission.md)** | Permission management - controls arbitration operations |
|
|
1802
|
-
| **[Guard](guard.md)** | Trust verification engine - used for eligibility and voting |
|
|
1803
|
-
| **[Contact](contact.md)** | Public contact information - provides support channels |
|
|
1804
|
-
|