@taifoon/jev 0.1.0
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/LICENSE +18 -0
- package/README.md +222 -0
- package/bin/jev.mjs +37 -0
- package/dist/abi.d.ts +11 -0
- package/dist/abi.js +81 -0
- package/dist/ask.d.ts +27 -0
- package/dist/ask.js +47 -0
- package/dist/contracts.d.ts +37 -0
- package/dist/contracts.js +27 -0
- package/dist/evaluator/assurance-hook.d.ts +6 -0
- package/dist/evaluator/assurance-hook.js +15 -0
- package/dist/evaluator/bitagent-erc8183.d.ts +7 -0
- package/dist/evaluator/bitagent-erc8183.js +18 -0
- package/dist/evaluator/index.d.ts +12 -0
- package/dist/evaluator/index.js +20 -0
- package/dist/evaluator/judge-adapter.d.ts +5 -0
- package/dist/evaluator/judge-adapter.js +16 -0
- package/dist/evaluator/types.d.ts +27 -0
- package/dist/evaluator/types.js +6 -0
- package/dist/evaluator/virtuals-erc8183.d.ts +6 -0
- package/dist/evaluator/virtuals-erc8183.js +15 -0
- package/dist/evaluator/virtuals-memo-acp.d.ts +5 -0
- package/dist/evaluator/virtuals-memo-acp.js +15 -0
- package/dist/facts.d.ts +16 -0
- package/dist/facts.js +15 -0
- package/dist/grade.d.ts +32 -0
- package/dist/grade.js +33 -0
- package/dist/hash.d.ts +10 -0
- package/dist/hash.js +132 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +20 -0
- package/dist/receipt.d.ts +68 -0
- package/dist/receipt.js +42 -0
- package/dist/record.d.ts +32 -0
- package/dist/record.js +41 -0
- package/dist/records.d.ts +78 -0
- package/dist/records.js +55 -0
- package/dist/rubric.d.ts +109 -0
- package/dist/rubric.js +91 -0
- package/dist/verify.d.ts +40 -0
- package/dist/verify.js +80 -0
- package/package.json +73 -0
- package/workflows/0.1.0/README.md +104 -0
- package/workflows/0.1.0/batch-judge.json +341 -0
- package/workflows/0.1.0/hire-judge-settle.json +767 -0
- package/workflows/0.1.0/jev-grader.json +433 -0
- package/workflows/0.1.0/manifest.json +151 -0
- package/workflows/0.1.0/schemas/answers.json +248 -0
- package/workflows/0.1.0/schemas/common.json +394 -0
- package/workflows/0.1.0/schemas/delivery.json +233 -0
- package/workflows/0.1.0/schemas/facts.json +225 -0
- package/workflows/0.1.0/schemas/hire.json +337 -0
- package/workflows/0.1.0/schemas/job.json +96 -0
- package/workflows/0.1.0/schemas/settlement.json +225 -0
- package/workflows/0.1.0/schemas/verdict.json +314 -0
- package/workflows/0.1.0/stamp-grade.json +175 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://www.taifoon.io/schemas/coordination/v1/hire.json",
|
|
4
|
+
"title": "HIRE — what was asked, of whom, on which ledger, for how much",
|
|
5
|
+
"description": "The job itself: parties, task, money, deadline, and the lifecycle state it is in. One shape for an ERC-8183 job, a memo-ACP job, an extra deployment’s job, an assurance-hook job and a handshake that has no job yet.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema": {
|
|
9
|
+
"const": "taifoon.hire.v1",
|
|
10
|
+
"x-stage": "L",
|
|
11
|
+
"x-source": "this contract",
|
|
12
|
+
"description": "which canonical entity this record is; fixed per schema"
|
|
13
|
+
},
|
|
14
|
+
"job": {
|
|
15
|
+
"$ref": "common.json#/$defs/job_ref",
|
|
16
|
+
"x-stage": "S1",
|
|
17
|
+
"x-source": "JobCreated.jobId / JobManager id / hook bytes32 / handshake id (src/ids.ts)"
|
|
18
|
+
},
|
|
19
|
+
"lane": {
|
|
20
|
+
"$ref": "common.json#/$defs/lane",
|
|
21
|
+
"x-stage": "S2",
|
|
22
|
+
"x-source": "observatory source (erc8183 | memo-acp | hook, + deployment for extra) or handshake"
|
|
23
|
+
},
|
|
24
|
+
"tenant": {
|
|
25
|
+
"type": [
|
|
26
|
+
"string",
|
|
27
|
+
"null"
|
|
28
|
+
],
|
|
29
|
+
"x-stage": "S2",
|
|
30
|
+
"x-source": "observatory tenant for hook jobs (layer | moonbeam)"
|
|
31
|
+
},
|
|
32
|
+
"buyer": {
|
|
33
|
+
"anyOf": [
|
|
34
|
+
{
|
|
35
|
+
"$ref": "common.json#/$defs/address"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "null"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"x-stage": "S1",
|
|
42
|
+
"x-source": "JobCreated.client / hook JobFunded.buyer / handshake hirer / §2 offer client"
|
|
43
|
+
},
|
|
44
|
+
"seller": {
|
|
45
|
+
"anyOf": [
|
|
46
|
+
{
|
|
47
|
+
"$ref": "common.json#/$defs/address"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "null"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"x-stage": "S1",
|
|
54
|
+
"x-source": "JobCreated.provider (ProviderSet on extra) / hook seller / handshake candidate.address"
|
|
55
|
+
},
|
|
56
|
+
"seller_agent_key": {
|
|
57
|
+
"anyOf": [
|
|
58
|
+
{
|
|
59
|
+
"$ref": "common.json#/$defs/agent_key"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "null"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"x-stage": "S9",
|
|
66
|
+
"x-source": "the provider → ERC-8004 join: extra provider_agent_id, handshake candidate.agentId; null when nothing joins them (the missing seam)"
|
|
67
|
+
},
|
|
68
|
+
"seller_ids": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"items": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"properties": {
|
|
73
|
+
"scheme": {
|
|
74
|
+
"type": "string"
|
|
75
|
+
},
|
|
76
|
+
"id": {
|
|
77
|
+
"type": "string"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"required": [
|
|
81
|
+
"scheme",
|
|
82
|
+
"id"
|
|
83
|
+
],
|
|
84
|
+
"additionalProperties": false
|
|
85
|
+
},
|
|
86
|
+
"x-stage": "S1",
|
|
87
|
+
"x-source": "every other id the source names for the seller: bitagent ProviderSet agentId (not an ERC-8004 id), handshake candidate agentId"
|
|
88
|
+
},
|
|
89
|
+
"evaluator": {
|
|
90
|
+
"anyOf": [
|
|
91
|
+
{
|
|
92
|
+
"$ref": "common.json#/$defs/address"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"type": "null"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"x-stage": "S1",
|
|
99
|
+
"x-source": "JobCreated.evaluator (null for hook jobs: the buyer or the hook’s evaluators decide)"
|
|
100
|
+
},
|
|
101
|
+
"hook": {
|
|
102
|
+
"anyOf": [
|
|
103
|
+
{
|
|
104
|
+
"$ref": "common.json#/$defs/address"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"type": "null"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"x-stage": "S1",
|
|
111
|
+
"x-source": "JobCreated.hook (ERC-8183 hook contract; null when zero) / the assurance hook itself on the hook lane"
|
|
112
|
+
},
|
|
113
|
+
"evaluator_kind": {
|
|
114
|
+
"anyOf": [
|
|
115
|
+
{
|
|
116
|
+
"enum": [
|
|
117
|
+
"buyer",
|
|
118
|
+
"none",
|
|
119
|
+
"named",
|
|
120
|
+
"platform",
|
|
121
|
+
"hook"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"type": "null"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"x-stage": "S2",
|
|
129
|
+
"x-source": "observatory evaluator_kind; hook = the assurance hook’s buyer/evaluator set"
|
|
130
|
+
},
|
|
131
|
+
"task": {
|
|
132
|
+
"type": [
|
|
133
|
+
"string",
|
|
134
|
+
"null"
|
|
135
|
+
],
|
|
136
|
+
"x-stage": "S2",
|
|
137
|
+
"x-source": "getJob(id).description (tasks.json) / memo-ACP first REQUEST memo / handshake task / §2 offer task"
|
|
138
|
+
},
|
|
139
|
+
"required_skills": {
|
|
140
|
+
"type": "array",
|
|
141
|
+
"items": {
|
|
142
|
+
"type": "string"
|
|
143
|
+
},
|
|
144
|
+
"x-stage": "L",
|
|
145
|
+
"x-source": "handshake / offer required_skills"
|
|
146
|
+
},
|
|
147
|
+
"budget": {
|
|
148
|
+
"anyOf": [
|
|
149
|
+
{
|
|
150
|
+
"$ref": "common.json#/$defs/amount"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"type": "null"
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"x-stage": "S1",
|
|
157
|
+
"x-source": "JobFunded.amount (else BudgetSet / getJob word 6) in the job token; handshake budget_usdc"
|
|
158
|
+
},
|
|
159
|
+
"funding": {
|
|
160
|
+
"type": [
|
|
161
|
+
"object",
|
|
162
|
+
"null"
|
|
163
|
+
],
|
|
164
|
+
"properties": {
|
|
165
|
+
"price": {
|
|
166
|
+
"$ref": "common.json#/$defs/amount"
|
|
167
|
+
},
|
|
168
|
+
"premium": {
|
|
169
|
+
"anyOf": [
|
|
170
|
+
{
|
|
171
|
+
"$ref": "common.json#/$defs/amount"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"type": "null"
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
"deposit": {
|
|
179
|
+
"anyOf": [
|
|
180
|
+
{
|
|
181
|
+
"$ref": "common.json#/$defs/amount"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"type": "null"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"pool": {
|
|
189
|
+
"anyOf": [
|
|
190
|
+
{
|
|
191
|
+
"$ref": "common.json#/$defs/address"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "null"
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
"cover_cap": {
|
|
199
|
+
"anyOf": [
|
|
200
|
+
{
|
|
201
|
+
"$ref": "common.json#/$defs/uint_string"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"type": "null"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
"deadline": {
|
|
209
|
+
"anyOf": [
|
|
210
|
+
{
|
|
211
|
+
"$ref": "common.json#/$defs/unix_s"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"type": "null"
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
"challenge_window": {
|
|
219
|
+
"type": [
|
|
220
|
+
"integer",
|
|
221
|
+
"null"
|
|
222
|
+
],
|
|
223
|
+
"description": "stored by the hook, read by no contract logic"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"required": [
|
|
227
|
+
"price",
|
|
228
|
+
"premium",
|
|
229
|
+
"deposit",
|
|
230
|
+
"pool",
|
|
231
|
+
"cover_cap",
|
|
232
|
+
"deadline",
|
|
233
|
+
"challenge_window"
|
|
234
|
+
],
|
|
235
|
+
"additionalProperties": false,
|
|
236
|
+
"x-stage": "S1",
|
|
237
|
+
"x-source": "hook JobFunded(price, premium, deposit, pool) + JobCovered.coverCap + jobs(jobId).deadline; ERC-8183 JobFunded.amount as price"
|
|
238
|
+
},
|
|
239
|
+
"created_at": {
|
|
240
|
+
"anyOf": [
|
|
241
|
+
{
|
|
242
|
+
"$ref": "common.json#/$defs/unix_s"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"type": "null"
|
|
246
|
+
}
|
|
247
|
+
],
|
|
248
|
+
"x-stage": "S1",
|
|
249
|
+
"x-source": "JobCreated block ts / handshake createdAt"
|
|
250
|
+
},
|
|
251
|
+
"deadline": {
|
|
252
|
+
"anyOf": [
|
|
253
|
+
{
|
|
254
|
+
"$ref": "common.json#/$defs/unix_s"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"type": "null"
|
|
258
|
+
}
|
|
259
|
+
],
|
|
260
|
+
"x-stage": "S1",
|
|
261
|
+
"x-source": "JobCreated.expiredAt / hook deadline"
|
|
262
|
+
},
|
|
263
|
+
"handshake_id": {
|
|
264
|
+
"type": [
|
|
265
|
+
"string",
|
|
266
|
+
"null"
|
|
267
|
+
],
|
|
268
|
+
"pattern": "^hs_[0-9a-f]{24}$",
|
|
269
|
+
"x-stage": "L",
|
|
270
|
+
"x-source": "the broker’s handshake this job was offered under"
|
|
271
|
+
},
|
|
272
|
+
"offer_nonce": {
|
|
273
|
+
"type": [
|
|
274
|
+
"string",
|
|
275
|
+
"null"
|
|
276
|
+
],
|
|
277
|
+
"x-stage": "S7",
|
|
278
|
+
"x-source": "§2 offer nonce the seller must echo (n8n.webhook class DET)"
|
|
279
|
+
},
|
|
280
|
+
"state": {
|
|
281
|
+
"$ref": "common.json#/$defs/lifecycle_state",
|
|
282
|
+
"x-stage": "L",
|
|
283
|
+
"x-source": "machine state (src/machine.ts) derived from the events / hook state / memo phase / handshake state"
|
|
284
|
+
},
|
|
285
|
+
"ending": {
|
|
286
|
+
"anyOf": [
|
|
287
|
+
{
|
|
288
|
+
"$ref": "common.json#/$defs/ending"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"type": "null"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
294
|
+
"x-stage": "S2",
|
|
295
|
+
"x-source": "observatory ending, null for a handshake"
|
|
296
|
+
},
|
|
297
|
+
"anchors": {
|
|
298
|
+
"type": "array",
|
|
299
|
+
"items": {
|
|
300
|
+
"$ref": "common.json#/$defs/anchor"
|
|
301
|
+
},
|
|
302
|
+
"x-stage": "S1",
|
|
303
|
+
"x-source": "JobCreated / JobFunded transactions; the handshake row"
|
|
304
|
+
},
|
|
305
|
+
"source": {
|
|
306
|
+
"$ref": "common.json#/$defs/source",
|
|
307
|
+
"x-stage": "L",
|
|
308
|
+
"x-source": "the mapper"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"required": [
|
|
312
|
+
"schema",
|
|
313
|
+
"job",
|
|
314
|
+
"lane",
|
|
315
|
+
"tenant",
|
|
316
|
+
"buyer",
|
|
317
|
+
"seller",
|
|
318
|
+
"seller_agent_key",
|
|
319
|
+
"seller_ids",
|
|
320
|
+
"evaluator",
|
|
321
|
+
"hook",
|
|
322
|
+
"evaluator_kind",
|
|
323
|
+
"task",
|
|
324
|
+
"required_skills",
|
|
325
|
+
"budget",
|
|
326
|
+
"funding",
|
|
327
|
+
"created_at",
|
|
328
|
+
"deadline",
|
|
329
|
+
"handshake_id",
|
|
330
|
+
"offer_nonce",
|
|
331
|
+
"state",
|
|
332
|
+
"ending",
|
|
333
|
+
"anchors",
|
|
334
|
+
"source"
|
|
335
|
+
],
|
|
336
|
+
"additionalProperties": false
|
|
337
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://www.taifoon.io/schemas/coordination/v1/job.json",
|
|
4
|
+
"title": "JOB — one job with everything known about it",
|
|
5
|
+
"description": "The unit a harvester emits and the judge reads: HIRE always; DELIVERY and FACTS whenever the source shows them; VERDICT, SETTLEMENT and the seller RECORD when known. HARVESTABLE.md is the minimum.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema": {
|
|
9
|
+
"const": "taifoon.job.v1",
|
|
10
|
+
"x-stage": "L",
|
|
11
|
+
"x-source": "this contract",
|
|
12
|
+
"description": "which canonical entity this record is; fixed per schema"
|
|
13
|
+
},
|
|
14
|
+
"job_key": {
|
|
15
|
+
"$ref": "common.json#/$defs/job_key",
|
|
16
|
+
"x-stage": "L",
|
|
17
|
+
"x-source": "hire.job.key"
|
|
18
|
+
},
|
|
19
|
+
"hire": {
|
|
20
|
+
"$ref": "hire.json",
|
|
21
|
+
"x-stage": "S1",
|
|
22
|
+
"x-source": "HIRE"
|
|
23
|
+
},
|
|
24
|
+
"delivery": {
|
|
25
|
+
"anyOf": [
|
|
26
|
+
{
|
|
27
|
+
"$ref": "delivery.json"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "null"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"x-stage": "S1",
|
|
34
|
+
"x-source": "DELIVERY"
|
|
35
|
+
},
|
|
36
|
+
"facts": {
|
|
37
|
+
"anyOf": [
|
|
38
|
+
{
|
|
39
|
+
"$ref": "facts.json"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "null"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"x-stage": "S4",
|
|
46
|
+
"x-source": "FACTS"
|
|
47
|
+
},
|
|
48
|
+
"verdict": {
|
|
49
|
+
"anyOf": [
|
|
50
|
+
{
|
|
51
|
+
"$ref": "verdict.json"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "null"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"x-stage": "S5",
|
|
58
|
+
"x-source": "VERDICT"
|
|
59
|
+
},
|
|
60
|
+
"settlement": {
|
|
61
|
+
"anyOf": [
|
|
62
|
+
{
|
|
63
|
+
"$ref": "settlement.json"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "null"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"x-stage": "S6",
|
|
70
|
+
"x-source": "SETTLEMENT"
|
|
71
|
+
},
|
|
72
|
+
"record": {
|
|
73
|
+
"anyOf": [
|
|
74
|
+
{
|
|
75
|
+
"$ref": "record.json"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "null"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"x-stage": "S2",
|
|
82
|
+
"x-source": "the seller RECORD at read time"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"required": [
|
|
86
|
+
"schema",
|
|
87
|
+
"job_key",
|
|
88
|
+
"hire",
|
|
89
|
+
"delivery",
|
|
90
|
+
"facts",
|
|
91
|
+
"verdict",
|
|
92
|
+
"settlement",
|
|
93
|
+
"record"
|
|
94
|
+
],
|
|
95
|
+
"additionalProperties": false
|
|
96
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://www.taifoon.io/schemas/coordination/v1/settlement.json",
|
|
4
|
+
"title": "SETTLEMENT — how the money moved",
|
|
5
|
+
"description": "One row per job, whichever path settled it (settle-records.ts): every transaction with its role and link, the on-chain ending in the hook’s words.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"schema": {
|
|
9
|
+
"const": "taifoon.settlement.v1",
|
|
10
|
+
"x-stage": "L",
|
|
11
|
+
"x-source": "this contract",
|
|
12
|
+
"description": "which canonical entity this record is; fixed per schema"
|
|
13
|
+
},
|
|
14
|
+
"job": {
|
|
15
|
+
"anyOf": [
|
|
16
|
+
{
|
|
17
|
+
"$ref": "common.json#/$defs/job_ref"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "null"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"x-stage": "S6",
|
|
24
|
+
"x-source": "settle:<jobId>; null when a runner row names no job id"
|
|
25
|
+
},
|
|
26
|
+
"chain_id": {
|
|
27
|
+
"$ref": "common.json#/$defs/chain_id",
|
|
28
|
+
"x-stage": "S6",
|
|
29
|
+
"x-source": "settlement chain"
|
|
30
|
+
},
|
|
31
|
+
"tenant": {
|
|
32
|
+
"type": [
|
|
33
|
+
"string",
|
|
34
|
+
"null"
|
|
35
|
+
],
|
|
36
|
+
"x-stage": "S6",
|
|
37
|
+
"x-source": "moonbeam | null (layer)"
|
|
38
|
+
},
|
|
39
|
+
"kind": {
|
|
40
|
+
"anyOf": [
|
|
41
|
+
{
|
|
42
|
+
"enum": [
|
|
43
|
+
"jev",
|
|
44
|
+
"agent",
|
|
45
|
+
"resource"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "null"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"x-stage": "S6",
|
|
53
|
+
"x-source": "settle.ts kind (runner rows)"
|
|
54
|
+
},
|
|
55
|
+
"buyer": {
|
|
56
|
+
"anyOf": [
|
|
57
|
+
{
|
|
58
|
+
"$ref": "common.json#/$defs/address"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"type": "null"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"x-stage": "S6",
|
|
65
|
+
"x-source": "hook buyer"
|
|
66
|
+
},
|
|
67
|
+
"seller": {
|
|
68
|
+
"anyOf": [
|
|
69
|
+
{
|
|
70
|
+
"$ref": "common.json#/$defs/address"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "null"
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"x-stage": "S6",
|
|
77
|
+
"x-source": "hook seller"
|
|
78
|
+
},
|
|
79
|
+
"price": {
|
|
80
|
+
"anyOf": [
|
|
81
|
+
{
|
|
82
|
+
"$ref": "common.json#/$defs/uint_string"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"type": "null"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"x-stage": "S6",
|
|
89
|
+
"x-source": "price in the token’s smallest unit"
|
|
90
|
+
},
|
|
91
|
+
"token": {
|
|
92
|
+
"anyOf": [
|
|
93
|
+
{
|
|
94
|
+
"$ref": "common.json#/$defs/address"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "null"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"x-stage": "S6",
|
|
101
|
+
"x-source": "job token"
|
|
102
|
+
},
|
|
103
|
+
"verdict": {
|
|
104
|
+
"anyOf": [
|
|
105
|
+
{
|
|
106
|
+
"enum": [
|
|
107
|
+
"complete",
|
|
108
|
+
"reject",
|
|
109
|
+
"expire",
|
|
110
|
+
"cheat"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"type": "null"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"x-stage": "S6",
|
|
118
|
+
"x-source": "settle-records verdictOfState"
|
|
119
|
+
},
|
|
120
|
+
"state": {
|
|
121
|
+
"anyOf": [
|
|
122
|
+
{
|
|
123
|
+
"$ref": "common.json#/$defs/lifecycle_state"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "null"
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"x-stage": "L",
|
|
130
|
+
"x-source": "the terminal machine state the verdict word names"
|
|
131
|
+
},
|
|
132
|
+
"decision_id": {
|
|
133
|
+
"type": [
|
|
134
|
+
"string",
|
|
135
|
+
"null"
|
|
136
|
+
],
|
|
137
|
+
"x-stage": "S5",
|
|
138
|
+
"x-source": "the decision that drove it, when recorded"
|
|
139
|
+
},
|
|
140
|
+
"txs": {
|
|
141
|
+
"type": "array",
|
|
142
|
+
"items": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"role": {
|
|
146
|
+
"type": "string"
|
|
147
|
+
},
|
|
148
|
+
"tx": {
|
|
149
|
+
"$ref": "common.json#/$defs/bytes32"
|
|
150
|
+
},
|
|
151
|
+
"link": {
|
|
152
|
+
"type": [
|
|
153
|
+
"string",
|
|
154
|
+
"null"
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"required": [
|
|
159
|
+
"role",
|
|
160
|
+
"tx",
|
|
161
|
+
"link"
|
|
162
|
+
],
|
|
163
|
+
"additionalProperties": false
|
|
164
|
+
},
|
|
165
|
+
"x-stage": "S6",
|
|
166
|
+
"x-source": "every transaction, unioned by hash"
|
|
167
|
+
},
|
|
168
|
+
"writer": {
|
|
169
|
+
"enum": [
|
|
170
|
+
"runner",
|
|
171
|
+
"relayer",
|
|
172
|
+
"evaluator-leg",
|
|
173
|
+
"site",
|
|
174
|
+
"n8n"
|
|
175
|
+
],
|
|
176
|
+
"x-stage": "L",
|
|
177
|
+
"x-source": "which write path recorded it (n8n = a workflow that signed its own legs, e.g. the devnet signer)"
|
|
178
|
+
},
|
|
179
|
+
"at": {
|
|
180
|
+
"anyOf": [
|
|
181
|
+
{
|
|
182
|
+
"$ref": "common.json#/$defs/unix_s"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"type": "null"
|
|
186
|
+
}
|
|
187
|
+
],
|
|
188
|
+
"x-stage": "L",
|
|
189
|
+
"x-source": "first write"
|
|
190
|
+
},
|
|
191
|
+
"anchors": {
|
|
192
|
+
"type": "array",
|
|
193
|
+
"items": {
|
|
194
|
+
"$ref": "common.json#/$defs/anchor"
|
|
195
|
+
},
|
|
196
|
+
"x-stage": "S6",
|
|
197
|
+
"x-source": "the settlement transactions"
|
|
198
|
+
},
|
|
199
|
+
"source": {
|
|
200
|
+
"$ref": "common.json#/$defs/source",
|
|
201
|
+
"x-stage": "L",
|
|
202
|
+
"x-source": "the mapper"
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
"required": [
|
|
206
|
+
"schema",
|
|
207
|
+
"job",
|
|
208
|
+
"chain_id",
|
|
209
|
+
"tenant",
|
|
210
|
+
"kind",
|
|
211
|
+
"buyer",
|
|
212
|
+
"seller",
|
|
213
|
+
"price",
|
|
214
|
+
"token",
|
|
215
|
+
"verdict",
|
|
216
|
+
"state",
|
|
217
|
+
"decision_id",
|
|
218
|
+
"txs",
|
|
219
|
+
"writer",
|
|
220
|
+
"at",
|
|
221
|
+
"anchors",
|
|
222
|
+
"source"
|
|
223
|
+
],
|
|
224
|
+
"additionalProperties": false
|
|
225
|
+
}
|