@swarm-tips/client 0.0.0 → 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/README.md +17 -1
- package/SBOM.spdx.json +1558 -0
- package/dist/cli/swarm-tx.d.ts +2 -0
- package/dist/cli/swarm-tx.js +46 -0
- package/dist/cli/vow-verify.d.ts +2 -0
- package/dist/cli/vow-verify.js +69 -0
- package/dist/contracts/generated/coordination_game.d.ts +6107 -0
- package/dist/contracts/generated/coordination_game.js +1 -0
- package/dist/contracts/generated/shillbot.d.ts +4209 -0
- package/dist/contracts/generated/shillbot.js +1 -0
- package/dist/contracts/idl/coordination_game.json +6101 -0
- package/dist/contracts/idl/shillbot.json +4203 -0
- package/dist/contracts/index.d.ts +33 -0
- package/dist/contracts/index.js +84 -0
- package/dist/coordination-game/battery.d.ts +40 -0
- package/dist/coordination-game/battery.js +82 -0
- package/dist/coordination-game/index.d.ts +4 -0
- package/dist/coordination-game/index.js +3 -0
- package/dist/coordination-game/outcome-oracle.d.ts +53 -0
- package/dist/coordination-game/outcome-oracle.js +136 -0
- package/dist/evm/index.d.ts +3 -0
- package/dist/evm/index.js +6 -0
- package/dist/evm/sign.d.ts +12 -0
- package/dist/evm/sign.js +23 -0
- package/dist/evm/testing.d.ts +21 -0
- package/dist/evm/testing.js +34 -0
- package/dist/evm/tx.d.ts +27 -0
- package/dist/evm/tx.js +18 -0
- package/dist/evm/wallet.d.ts +58 -0
- package/dist/evm/wallet.js +182 -0
- package/dist/inbox/client.d.ts +189 -0
- package/dist/inbox/client.js +334 -0
- package/dist/inbox/index.d.ts +2 -0
- package/dist/inbox/index.js +4 -0
- package/dist/inbox/solana.d.ts +11 -0
- package/dist/inbox/solana.js +13 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/shillbot/index.d.ts +115 -0
- package/dist/shillbot/index.js +327 -0
- package/dist/shillbot/payout-oracle.d.ts +63 -0
- package/dist/shillbot/payout-oracle.js +172 -0
- package/dist/shillbot/switchboard.d.ts +27 -0
- package/dist/shillbot/switchboard.js +205 -0
- package/dist/vow/decoders/extension.d.ts +62 -0
- package/dist/vow/decoders/extension.js +48 -0
- package/dist/vow/decoders/shillbot.d.ts +59 -0
- package/dist/vow/decoders/shillbot.js +130 -0
- package/dist/vow/discriminator.d.ts +12 -0
- package/dist/vow/discriminator.js +25 -0
- package/dist/vow/index.d.ts +7 -0
- package/dist/vow/index.js +5 -0
- package/dist/vow/schema.d.ts +14 -0
- package/dist/vow/schema.js +132 -0
- package/dist/vow/types.d.ts +107 -0
- package/dist/vow/types.js +1 -0
- package/dist/vow/verify.d.ts +23 -0
- package/dist/vow/verify.js +145 -0
- package/package.json +92 -6
- package/index.js +0 -1
|
@@ -0,0 +1,4203 @@
|
|
|
1
|
+
{
|
|
2
|
+
"address": "2tR37nqMpwdV4DVUHjzUmL1rH2DtkA8zrRA4EAhT7KMi",
|
|
3
|
+
"metadata": {
|
|
4
|
+
"name": "shillbot",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"spec": "0.1.0",
|
|
7
|
+
"description": "Shillbot task marketplace — escrow, verification, and payment"
|
|
8
|
+
},
|
|
9
|
+
"instructions": [
|
|
10
|
+
{
|
|
11
|
+
"name": "approve_task",
|
|
12
|
+
"discriminator": [
|
|
13
|
+
81,
|
|
14
|
+
171,
|
|
15
|
+
95,
|
|
16
|
+
228,
|
|
17
|
+
10,
|
|
18
|
+
231,
|
|
19
|
+
167,
|
|
20
|
+
225
|
|
21
|
+
],
|
|
22
|
+
"accounts": [
|
|
23
|
+
{
|
|
24
|
+
"name": "task",
|
|
25
|
+
"writable": true,
|
|
26
|
+
"pda": {
|
|
27
|
+
"seeds": [
|
|
28
|
+
{
|
|
29
|
+
"kind": "const",
|
|
30
|
+
"value": [
|
|
31
|
+
116,
|
|
32
|
+
97,
|
|
33
|
+
115,
|
|
34
|
+
107
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"kind": "account",
|
|
39
|
+
"path": "task.task_id",
|
|
40
|
+
"account": "Task"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"kind": "account",
|
|
44
|
+
"path": "task.client",
|
|
45
|
+
"account": "Task"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "client",
|
|
52
|
+
"signer": true
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"args": []
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "challenge_task",
|
|
59
|
+
"discriminator": [
|
|
60
|
+
220,
|
|
61
|
+
34,
|
|
62
|
+
209,
|
|
63
|
+
156,
|
|
64
|
+
76,
|
|
65
|
+
254,
|
|
66
|
+
110,
|
|
67
|
+
25
|
|
68
|
+
],
|
|
69
|
+
"accounts": [
|
|
70
|
+
{
|
|
71
|
+
"name": "task",
|
|
72
|
+
"writable": true,
|
|
73
|
+
"pda": {
|
|
74
|
+
"seeds": [
|
|
75
|
+
{
|
|
76
|
+
"kind": "const",
|
|
77
|
+
"value": [
|
|
78
|
+
116,
|
|
79
|
+
97,
|
|
80
|
+
115,
|
|
81
|
+
107
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "account",
|
|
86
|
+
"path": "task.task_id",
|
|
87
|
+
"account": "Task"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"kind": "account",
|
|
91
|
+
"path": "task.client",
|
|
92
|
+
"account": "Task"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "global_state",
|
|
99
|
+
"pda": {
|
|
100
|
+
"seeds": [
|
|
101
|
+
{
|
|
102
|
+
"kind": "const",
|
|
103
|
+
"value": [
|
|
104
|
+
115,
|
|
105
|
+
104,
|
|
106
|
+
105,
|
|
107
|
+
108,
|
|
108
|
+
108,
|
|
109
|
+
98,
|
|
110
|
+
111,
|
|
111
|
+
116,
|
|
112
|
+
95,
|
|
113
|
+
103,
|
|
114
|
+
108,
|
|
115
|
+
111,
|
|
116
|
+
98,
|
|
117
|
+
97,
|
|
118
|
+
108
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "challenge",
|
|
126
|
+
"writable": true,
|
|
127
|
+
"pda": {
|
|
128
|
+
"seeds": [
|
|
129
|
+
{
|
|
130
|
+
"kind": "const",
|
|
131
|
+
"value": [
|
|
132
|
+
99,
|
|
133
|
+
104,
|
|
134
|
+
97,
|
|
135
|
+
108,
|
|
136
|
+
108,
|
|
137
|
+
101,
|
|
138
|
+
110,
|
|
139
|
+
103,
|
|
140
|
+
101
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"kind": "account",
|
|
145
|
+
"path": "task.task_id",
|
|
146
|
+
"account": "Task"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"kind": "account",
|
|
150
|
+
"path": "challenger"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "challenger",
|
|
157
|
+
"writable": true,
|
|
158
|
+
"signer": true
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"name": "system_program",
|
|
162
|
+
"address": "11111111111111111111111111111111"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"args": []
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "claim_task",
|
|
169
|
+
"discriminator": [
|
|
170
|
+
49,
|
|
171
|
+
222,
|
|
172
|
+
219,
|
|
173
|
+
238,
|
|
174
|
+
155,
|
|
175
|
+
68,
|
|
176
|
+
221,
|
|
177
|
+
136
|
|
178
|
+
],
|
|
179
|
+
"accounts": [
|
|
180
|
+
{
|
|
181
|
+
"name": "task",
|
|
182
|
+
"writable": true,
|
|
183
|
+
"pda": {
|
|
184
|
+
"seeds": [
|
|
185
|
+
{
|
|
186
|
+
"kind": "const",
|
|
187
|
+
"value": [
|
|
188
|
+
116,
|
|
189
|
+
97,
|
|
190
|
+
115,
|
|
191
|
+
107
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"kind": "account",
|
|
196
|
+
"path": "task.task_id",
|
|
197
|
+
"account": "Task"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"kind": "account",
|
|
201
|
+
"path": "task.client",
|
|
202
|
+
"account": "Task"
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "global_state",
|
|
209
|
+
"pda": {
|
|
210
|
+
"seeds": [
|
|
211
|
+
{
|
|
212
|
+
"kind": "const",
|
|
213
|
+
"value": [
|
|
214
|
+
115,
|
|
215
|
+
104,
|
|
216
|
+
105,
|
|
217
|
+
108,
|
|
218
|
+
108,
|
|
219
|
+
98,
|
|
220
|
+
111,
|
|
221
|
+
116,
|
|
222
|
+
95,
|
|
223
|
+
103,
|
|
224
|
+
108,
|
|
225
|
+
111,
|
|
226
|
+
98,
|
|
227
|
+
97,
|
|
228
|
+
108
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"name": "agent_state",
|
|
236
|
+
"docs": [
|
|
237
|
+
"AgentState PDA tracks the agent's concurrent claim count.",
|
|
238
|
+
"",
|
|
239
|
+
"Using `init_if_needed` is acceptable here because:",
|
|
240
|
+
"(a) the agent pays for creation — no cost to the protocol,",
|
|
241
|
+
"(b) AgentState does not hold escrow funds,",
|
|
242
|
+
"(c) the \"no init_if_needed for escrow accounts\" rule does not apply.",
|
|
243
|
+
"The account is initialized on the agent's first claim and reused thereafter."
|
|
244
|
+
],
|
|
245
|
+
"writable": true,
|
|
246
|
+
"pda": {
|
|
247
|
+
"seeds": [
|
|
248
|
+
{
|
|
249
|
+
"kind": "const",
|
|
250
|
+
"value": [
|
|
251
|
+
97,
|
|
252
|
+
103,
|
|
253
|
+
101,
|
|
254
|
+
110,
|
|
255
|
+
116,
|
|
256
|
+
95,
|
|
257
|
+
115,
|
|
258
|
+
116,
|
|
259
|
+
97,
|
|
260
|
+
116,
|
|
261
|
+
101
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"kind": "account",
|
|
266
|
+
"path": "agent"
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"name": "agent",
|
|
273
|
+
"writable": true,
|
|
274
|
+
"signer": true
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"name": "system_program",
|
|
278
|
+
"address": "11111111111111111111111111111111"
|
|
279
|
+
}
|
|
280
|
+
],
|
|
281
|
+
"args": []
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"name": "claim_task_session",
|
|
285
|
+
"discriminator": [
|
|
286
|
+
147,
|
|
287
|
+
214,
|
|
288
|
+
30,
|
|
289
|
+
229,
|
|
290
|
+
3,
|
|
291
|
+
118,
|
|
292
|
+
164,
|
|
293
|
+
107
|
|
294
|
+
],
|
|
295
|
+
"accounts": [
|
|
296
|
+
{
|
|
297
|
+
"name": "task",
|
|
298
|
+
"writable": true,
|
|
299
|
+
"pda": {
|
|
300
|
+
"seeds": [
|
|
301
|
+
{
|
|
302
|
+
"kind": "const",
|
|
303
|
+
"value": [
|
|
304
|
+
116,
|
|
305
|
+
97,
|
|
306
|
+
115,
|
|
307
|
+
107
|
|
308
|
+
]
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"kind": "account",
|
|
312
|
+
"path": "task.task_id",
|
|
313
|
+
"account": "Task"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"kind": "account",
|
|
317
|
+
"path": "task.client",
|
|
318
|
+
"account": "Task"
|
|
319
|
+
}
|
|
320
|
+
]
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"name": "global_state",
|
|
325
|
+
"pda": {
|
|
326
|
+
"seeds": [
|
|
327
|
+
{
|
|
328
|
+
"kind": "const",
|
|
329
|
+
"value": [
|
|
330
|
+
115,
|
|
331
|
+
104,
|
|
332
|
+
105,
|
|
333
|
+
108,
|
|
334
|
+
108,
|
|
335
|
+
98,
|
|
336
|
+
111,
|
|
337
|
+
116,
|
|
338
|
+
95,
|
|
339
|
+
103,
|
|
340
|
+
108,
|
|
341
|
+
111,
|
|
342
|
+
98,
|
|
343
|
+
97,
|
|
344
|
+
108
|
|
345
|
+
]
|
|
346
|
+
}
|
|
347
|
+
]
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"name": "agent_state",
|
|
352
|
+
"docs": [
|
|
353
|
+
"AgentState PDA tracks the agent's concurrent claim count.",
|
|
354
|
+
"Uses `init_if_needed` — see claim_task.rs for justification."
|
|
355
|
+
],
|
|
356
|
+
"writable": true,
|
|
357
|
+
"pda": {
|
|
358
|
+
"seeds": [
|
|
359
|
+
{
|
|
360
|
+
"kind": "const",
|
|
361
|
+
"value": [
|
|
362
|
+
97,
|
|
363
|
+
103,
|
|
364
|
+
101,
|
|
365
|
+
110,
|
|
366
|
+
116,
|
|
367
|
+
95,
|
|
368
|
+
115,
|
|
369
|
+
116,
|
|
370
|
+
97,
|
|
371
|
+
116,
|
|
372
|
+
101
|
|
373
|
+
]
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"kind": "account",
|
|
377
|
+
"path": "session_delegate.agent",
|
|
378
|
+
"account": "SessionDelegate"
|
|
379
|
+
}
|
|
380
|
+
]
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"name": "session_delegate",
|
|
385
|
+
"docs": [
|
|
386
|
+
"SessionDelegate PDA proves the delegate is authorized by the agent."
|
|
387
|
+
],
|
|
388
|
+
"pda": {
|
|
389
|
+
"seeds": [
|
|
390
|
+
{
|
|
391
|
+
"kind": "const",
|
|
392
|
+
"value": [
|
|
393
|
+
115,
|
|
394
|
+
101,
|
|
395
|
+
115,
|
|
396
|
+
115,
|
|
397
|
+
105,
|
|
398
|
+
111,
|
|
399
|
+
110
|
|
400
|
+
]
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"kind": "account",
|
|
404
|
+
"path": "session_delegate.agent",
|
|
405
|
+
"account": "SessionDelegate"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"kind": "account",
|
|
409
|
+
"path": "delegate"
|
|
410
|
+
}
|
|
411
|
+
]
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "delegate",
|
|
416
|
+
"docs": [
|
|
417
|
+
"The session key (MCP server) that signs the transaction."
|
|
418
|
+
],
|
|
419
|
+
"signer": true
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"name": "payer",
|
|
423
|
+
"docs": [
|
|
424
|
+
"Pays for AgentState init if needed. Typically the delegate or a relayer."
|
|
425
|
+
],
|
|
426
|
+
"writable": true,
|
|
427
|
+
"signer": true
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"name": "system_program",
|
|
431
|
+
"address": "11111111111111111111111111111111"
|
|
432
|
+
}
|
|
433
|
+
],
|
|
434
|
+
"args": []
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"name": "close_agent_state",
|
|
438
|
+
"discriminator": [
|
|
439
|
+
70,
|
|
440
|
+
29,
|
|
441
|
+
98,
|
|
442
|
+
242,
|
|
443
|
+
120,
|
|
444
|
+
8,
|
|
445
|
+
146,
|
|
446
|
+
160
|
|
447
|
+
],
|
|
448
|
+
"accounts": [
|
|
449
|
+
{
|
|
450
|
+
"name": "agent_state",
|
|
451
|
+
"writable": true,
|
|
452
|
+
"pda": {
|
|
453
|
+
"seeds": [
|
|
454
|
+
{
|
|
455
|
+
"kind": "const",
|
|
456
|
+
"value": [
|
|
457
|
+
97,
|
|
458
|
+
103,
|
|
459
|
+
101,
|
|
460
|
+
110,
|
|
461
|
+
116,
|
|
462
|
+
95,
|
|
463
|
+
115,
|
|
464
|
+
116,
|
|
465
|
+
97,
|
|
466
|
+
116,
|
|
467
|
+
101
|
|
468
|
+
]
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"kind": "account",
|
|
472
|
+
"path": "agent"
|
|
473
|
+
}
|
|
474
|
+
]
|
|
475
|
+
}
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"name": "agent",
|
|
479
|
+
"writable": true,
|
|
480
|
+
"signer": true
|
|
481
|
+
}
|
|
482
|
+
],
|
|
483
|
+
"args": []
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"name": "create_session",
|
|
487
|
+
"discriminator": [
|
|
488
|
+
242,
|
|
489
|
+
193,
|
|
490
|
+
143,
|
|
491
|
+
179,
|
|
492
|
+
150,
|
|
493
|
+
25,
|
|
494
|
+
122,
|
|
495
|
+
227
|
|
496
|
+
],
|
|
497
|
+
"accounts": [
|
|
498
|
+
{
|
|
499
|
+
"name": "session_delegate",
|
|
500
|
+
"writable": true,
|
|
501
|
+
"pda": {
|
|
502
|
+
"seeds": [
|
|
503
|
+
{
|
|
504
|
+
"kind": "const",
|
|
505
|
+
"value": [
|
|
506
|
+
115,
|
|
507
|
+
101,
|
|
508
|
+
115,
|
|
509
|
+
115,
|
|
510
|
+
105,
|
|
511
|
+
111,
|
|
512
|
+
110
|
|
513
|
+
]
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"kind": "account",
|
|
517
|
+
"path": "agent"
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"kind": "account",
|
|
521
|
+
"path": "delegate"
|
|
522
|
+
}
|
|
523
|
+
]
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"name": "agent",
|
|
528
|
+
"writable": true,
|
|
529
|
+
"signer": true
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"name": "delegate"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"name": "system_program",
|
|
536
|
+
"address": "11111111111111111111111111111111"
|
|
537
|
+
}
|
|
538
|
+
],
|
|
539
|
+
"args": [
|
|
540
|
+
{
|
|
541
|
+
"name": "allowed_instructions",
|
|
542
|
+
"type": "u8"
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"name": "duration_seconds",
|
|
546
|
+
"type": "i64"
|
|
547
|
+
}
|
|
548
|
+
]
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"name": "create_task",
|
|
552
|
+
"discriminator": [
|
|
553
|
+
194,
|
|
554
|
+
80,
|
|
555
|
+
6,
|
|
556
|
+
180,
|
|
557
|
+
232,
|
|
558
|
+
127,
|
|
559
|
+
48,
|
|
560
|
+
171
|
|
561
|
+
],
|
|
562
|
+
"accounts": [
|
|
563
|
+
{
|
|
564
|
+
"name": "global_state",
|
|
565
|
+
"pda": {
|
|
566
|
+
"seeds": [
|
|
567
|
+
{
|
|
568
|
+
"kind": "const",
|
|
569
|
+
"value": [
|
|
570
|
+
115,
|
|
571
|
+
104,
|
|
572
|
+
105,
|
|
573
|
+
108,
|
|
574
|
+
108,
|
|
575
|
+
98,
|
|
576
|
+
111,
|
|
577
|
+
116,
|
|
578
|
+
95,
|
|
579
|
+
103,
|
|
580
|
+
108,
|
|
581
|
+
111,
|
|
582
|
+
98,
|
|
583
|
+
97,
|
|
584
|
+
108
|
|
585
|
+
]
|
|
586
|
+
}
|
|
587
|
+
]
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"name": "task",
|
|
592
|
+
"writable": true,
|
|
593
|
+
"pda": {
|
|
594
|
+
"seeds": [
|
|
595
|
+
{
|
|
596
|
+
"kind": "const",
|
|
597
|
+
"value": [
|
|
598
|
+
116,
|
|
599
|
+
97,
|
|
600
|
+
115,
|
|
601
|
+
107
|
|
602
|
+
]
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"kind": "arg",
|
|
606
|
+
"path": "nonce"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"kind": "account",
|
|
610
|
+
"path": "client"
|
|
611
|
+
}
|
|
612
|
+
]
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"name": "client_state",
|
|
617
|
+
"docs": [
|
|
618
|
+
"Per-client rate-limit + lifetime-counter PDA (Phase 3 blocker #2).",
|
|
619
|
+
"`init_if_needed` is allowed because ClientState holds no escrow",
|
|
620
|
+
"funds — only counters and a timestamp — so a PDA-resurrection",
|
|
621
|
+
"attack on a closed account would gain the attacker nothing."
|
|
622
|
+
],
|
|
623
|
+
"writable": true,
|
|
624
|
+
"pda": {
|
|
625
|
+
"seeds": [
|
|
626
|
+
{
|
|
627
|
+
"kind": "const",
|
|
628
|
+
"value": [
|
|
629
|
+
99,
|
|
630
|
+
108,
|
|
631
|
+
105,
|
|
632
|
+
101,
|
|
633
|
+
110,
|
|
634
|
+
116,
|
|
635
|
+
95,
|
|
636
|
+
115,
|
|
637
|
+
116,
|
|
638
|
+
97,
|
|
639
|
+
116,
|
|
640
|
+
101
|
|
641
|
+
]
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"kind": "account",
|
|
645
|
+
"path": "client"
|
|
646
|
+
}
|
|
647
|
+
]
|
|
648
|
+
}
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"name": "client",
|
|
652
|
+
"writable": true,
|
|
653
|
+
"signer": true
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"name": "slot_hashes",
|
|
657
|
+
"address": "SysvarS1otHashes111111111111111111111111111"
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"name": "system_program",
|
|
661
|
+
"address": "11111111111111111111111111111111"
|
|
662
|
+
}
|
|
663
|
+
],
|
|
664
|
+
"args": [
|
|
665
|
+
{
|
|
666
|
+
"name": "nonce",
|
|
667
|
+
"type": "u64"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"name": "escrow_lamports",
|
|
671
|
+
"type": "u64"
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"name": "content_hash",
|
|
675
|
+
"type": {
|
|
676
|
+
"array": [
|
|
677
|
+
"u8",
|
|
678
|
+
32
|
|
679
|
+
]
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"name": "deadline",
|
|
684
|
+
"type": "i64"
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"name": "submit_margin",
|
|
688
|
+
"type": "i64"
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"name": "claim_buffer",
|
|
692
|
+
"type": "i64"
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"name": "platform",
|
|
696
|
+
"type": "u8"
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"name": "attestation_delay_override",
|
|
700
|
+
"type": "u32"
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"name": "challenge_window_override",
|
|
704
|
+
"type": "u32"
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"name": "verification_timeout_override",
|
|
708
|
+
"type": "u32"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"name": "requires_approval",
|
|
712
|
+
"type": "bool"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"name": "verification_kind",
|
|
716
|
+
"type": "u8"
|
|
717
|
+
}
|
|
718
|
+
]
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
"name": "emergency_return",
|
|
722
|
+
"discriminator": [
|
|
723
|
+
18,
|
|
724
|
+
202,
|
|
725
|
+
93,
|
|
726
|
+
39,
|
|
727
|
+
231,
|
|
728
|
+
9,
|
|
729
|
+
32,
|
|
730
|
+
140
|
|
731
|
+
],
|
|
732
|
+
"accounts": [
|
|
733
|
+
{
|
|
734
|
+
"name": "global_state",
|
|
735
|
+
"pda": {
|
|
736
|
+
"seeds": [
|
|
737
|
+
{
|
|
738
|
+
"kind": "const",
|
|
739
|
+
"value": [
|
|
740
|
+
115,
|
|
741
|
+
104,
|
|
742
|
+
105,
|
|
743
|
+
108,
|
|
744
|
+
108,
|
|
745
|
+
98,
|
|
746
|
+
111,
|
|
747
|
+
116,
|
|
748
|
+
95,
|
|
749
|
+
103,
|
|
750
|
+
108,
|
|
751
|
+
111,
|
|
752
|
+
98,
|
|
753
|
+
97,
|
|
754
|
+
108
|
|
755
|
+
]
|
|
756
|
+
}
|
|
757
|
+
]
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
"name": "authority",
|
|
762
|
+
"signer": true
|
|
763
|
+
}
|
|
764
|
+
],
|
|
765
|
+
"args": []
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"name": "expire_task",
|
|
769
|
+
"discriminator": [
|
|
770
|
+
116,
|
|
771
|
+
94,
|
|
772
|
+
206,
|
|
773
|
+
205,
|
|
774
|
+
170,
|
|
775
|
+
51,
|
|
776
|
+
156,
|
|
777
|
+
98
|
|
778
|
+
],
|
|
779
|
+
"accounts": [
|
|
780
|
+
{
|
|
781
|
+
"name": "task",
|
|
782
|
+
"writable": true,
|
|
783
|
+
"pda": {
|
|
784
|
+
"seeds": [
|
|
785
|
+
{
|
|
786
|
+
"kind": "const",
|
|
787
|
+
"value": [
|
|
788
|
+
116,
|
|
789
|
+
97,
|
|
790
|
+
115,
|
|
791
|
+
107
|
|
792
|
+
]
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"kind": "account",
|
|
796
|
+
"path": "task.task_id",
|
|
797
|
+
"account": "Task"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"kind": "account",
|
|
801
|
+
"path": "task.client",
|
|
802
|
+
"account": "Task"
|
|
803
|
+
}
|
|
804
|
+
]
|
|
805
|
+
}
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"name": "global_state",
|
|
809
|
+
"pda": {
|
|
810
|
+
"seeds": [
|
|
811
|
+
{
|
|
812
|
+
"kind": "const",
|
|
813
|
+
"value": [
|
|
814
|
+
115,
|
|
815
|
+
104,
|
|
816
|
+
105,
|
|
817
|
+
108,
|
|
818
|
+
108,
|
|
819
|
+
98,
|
|
820
|
+
111,
|
|
821
|
+
116,
|
|
822
|
+
95,
|
|
823
|
+
103,
|
|
824
|
+
108,
|
|
825
|
+
111,
|
|
826
|
+
98,
|
|
827
|
+
97,
|
|
828
|
+
108
|
|
829
|
+
]
|
|
830
|
+
}
|
|
831
|
+
]
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"name": "client",
|
|
836
|
+
"writable": true
|
|
837
|
+
}
|
|
838
|
+
],
|
|
839
|
+
"args": []
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"name": "finalize_task",
|
|
843
|
+
"discriminator": [
|
|
844
|
+
126,
|
|
845
|
+
39,
|
|
846
|
+
210,
|
|
847
|
+
32,
|
|
848
|
+
77,
|
|
849
|
+
211,
|
|
850
|
+
27,
|
|
851
|
+
199
|
|
852
|
+
],
|
|
853
|
+
"accounts": [
|
|
854
|
+
{
|
|
855
|
+
"name": "task",
|
|
856
|
+
"writable": true,
|
|
857
|
+
"pda": {
|
|
858
|
+
"seeds": [
|
|
859
|
+
{
|
|
860
|
+
"kind": "const",
|
|
861
|
+
"value": [
|
|
862
|
+
116,
|
|
863
|
+
97,
|
|
864
|
+
115,
|
|
865
|
+
107
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"kind": "account",
|
|
870
|
+
"path": "task.task_id",
|
|
871
|
+
"account": "Task"
|
|
872
|
+
},
|
|
873
|
+
{
|
|
874
|
+
"kind": "account",
|
|
875
|
+
"path": "task.client",
|
|
876
|
+
"account": "Task"
|
|
877
|
+
}
|
|
878
|
+
]
|
|
879
|
+
}
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"name": "global_state",
|
|
883
|
+
"pda": {
|
|
884
|
+
"seeds": [
|
|
885
|
+
{
|
|
886
|
+
"kind": "const",
|
|
887
|
+
"value": [
|
|
888
|
+
115,
|
|
889
|
+
104,
|
|
890
|
+
105,
|
|
891
|
+
108,
|
|
892
|
+
108,
|
|
893
|
+
98,
|
|
894
|
+
111,
|
|
895
|
+
116,
|
|
896
|
+
95,
|
|
897
|
+
103,
|
|
898
|
+
108,
|
|
899
|
+
111,
|
|
900
|
+
98,
|
|
901
|
+
97,
|
|
902
|
+
108
|
|
903
|
+
]
|
|
904
|
+
}
|
|
905
|
+
]
|
|
906
|
+
}
|
|
907
|
+
},
|
|
908
|
+
{
|
|
909
|
+
"name": "agent",
|
|
910
|
+
"docs": [
|
|
911
|
+
"`task.agent` when `task.payout_to` is unset (zero); otherwise it must be",
|
|
912
|
+
"`task.payout_to` (e.g. an extension-credit splitter vault). Reputation",
|
|
913
|
+
"still accrues to `task.agent` (see `update_agent_stats`), so routing the",
|
|
914
|
+
"payout never moves the agent's on-chain stats."
|
|
915
|
+
],
|
|
916
|
+
"writable": true
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"name": "client",
|
|
920
|
+
"writable": true
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"name": "treasury",
|
|
924
|
+
"writable": true
|
|
925
|
+
}
|
|
926
|
+
],
|
|
927
|
+
"args": []
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"name": "initialize",
|
|
931
|
+
"discriminator": [
|
|
932
|
+
175,
|
|
933
|
+
175,
|
|
934
|
+
109,
|
|
935
|
+
31,
|
|
936
|
+
13,
|
|
937
|
+
152,
|
|
938
|
+
155,
|
|
939
|
+
237
|
|
940
|
+
],
|
|
941
|
+
"accounts": [
|
|
942
|
+
{
|
|
943
|
+
"name": "global_state",
|
|
944
|
+
"writable": true,
|
|
945
|
+
"pda": {
|
|
946
|
+
"seeds": [
|
|
947
|
+
{
|
|
948
|
+
"kind": "const",
|
|
949
|
+
"value": [
|
|
950
|
+
115,
|
|
951
|
+
104,
|
|
952
|
+
105,
|
|
953
|
+
108,
|
|
954
|
+
108,
|
|
955
|
+
98,
|
|
956
|
+
111,
|
|
957
|
+
116,
|
|
958
|
+
95,
|
|
959
|
+
103,
|
|
960
|
+
108,
|
|
961
|
+
111,
|
|
962
|
+
98,
|
|
963
|
+
97,
|
|
964
|
+
108
|
|
965
|
+
]
|
|
966
|
+
}
|
|
967
|
+
]
|
|
968
|
+
}
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
"name": "authority",
|
|
972
|
+
"writable": true,
|
|
973
|
+
"signer": true
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
"name": "treasury"
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"name": "system_program",
|
|
980
|
+
"address": "11111111111111111111111111111111"
|
|
981
|
+
}
|
|
982
|
+
],
|
|
983
|
+
"args": [
|
|
984
|
+
{
|
|
985
|
+
"name": "protocol_fee_bps",
|
|
986
|
+
"type": "u16"
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
"name": "quality_threshold",
|
|
990
|
+
"type": "u64"
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"name": "starting_counter",
|
|
994
|
+
"type": "u64"
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"name": "switchboard_feed",
|
|
998
|
+
"type": "pubkey"
|
|
999
|
+
}
|
|
1000
|
+
]
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
"name": "migrate_agent_state",
|
|
1004
|
+
"discriminator": [
|
|
1005
|
+
81,
|
|
1006
|
+
82,
|
|
1007
|
+
34,
|
|
1008
|
+
209,
|
|
1009
|
+
148,
|
|
1010
|
+
145,
|
|
1011
|
+
178,
|
|
1012
|
+
89
|
|
1013
|
+
],
|
|
1014
|
+
"accounts": [
|
|
1015
|
+
{
|
|
1016
|
+
"name": "agent",
|
|
1017
|
+
"signer": true
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
"name": "agent_state",
|
|
1021
|
+
"docs": [
|
|
1022
|
+
"`Account<AgentState>` from opening them. We verify the discriminator,",
|
|
1023
|
+
"the agent pubkey stored in the account, and the PDA derivation",
|
|
1024
|
+
"explicitly inside the handler — those are the same properties Anchor",
|
|
1025
|
+
"would otherwise check."
|
|
1026
|
+
],
|
|
1027
|
+
"writable": true,
|
|
1028
|
+
"pda": {
|
|
1029
|
+
"seeds": [
|
|
1030
|
+
{
|
|
1031
|
+
"kind": "const",
|
|
1032
|
+
"value": [
|
|
1033
|
+
97,
|
|
1034
|
+
103,
|
|
1035
|
+
101,
|
|
1036
|
+
110,
|
|
1037
|
+
116,
|
|
1038
|
+
95,
|
|
1039
|
+
115,
|
|
1040
|
+
116,
|
|
1041
|
+
97,
|
|
1042
|
+
116,
|
|
1043
|
+
101
|
|
1044
|
+
]
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"kind": "account",
|
|
1048
|
+
"path": "agent"
|
|
1049
|
+
}
|
|
1050
|
+
]
|
|
1051
|
+
}
|
|
1052
|
+
}
|
|
1053
|
+
],
|
|
1054
|
+
"args": []
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
"name": "migrate_task",
|
|
1058
|
+
"docs": [
|
|
1059
|
+
"One-shot realloc of legacy 315-byte Task accounts to the 347-byte",
|
|
1060
|
+
"payout_to layout (C2). Permissionless + idempotent."
|
|
1061
|
+
],
|
|
1062
|
+
"discriminator": [
|
|
1063
|
+
114,
|
|
1064
|
+
41,
|
|
1065
|
+
111,
|
|
1066
|
+
76,
|
|
1067
|
+
14,
|
|
1068
|
+
117,
|
|
1069
|
+
128,
|
|
1070
|
+
54
|
|
1071
|
+
],
|
|
1072
|
+
"accounts": [
|
|
1073
|
+
{
|
|
1074
|
+
"name": "task",
|
|
1075
|
+
"docs": [
|
|
1076
|
+
"handler verifies owner + discriminator + size before resizing."
|
|
1077
|
+
],
|
|
1078
|
+
"writable": true
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
"name": "payer",
|
|
1082
|
+
"writable": true,
|
|
1083
|
+
"signer": true
|
|
1084
|
+
}
|
|
1085
|
+
],
|
|
1086
|
+
"args": []
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"name": "register_identity",
|
|
1090
|
+
"discriminator": [
|
|
1091
|
+
164,
|
|
1092
|
+
118,
|
|
1093
|
+
227,
|
|
1094
|
+
177,
|
|
1095
|
+
47,
|
|
1096
|
+
176,
|
|
1097
|
+
187,
|
|
1098
|
+
248
|
|
1099
|
+
],
|
|
1100
|
+
"accounts": [
|
|
1101
|
+
{
|
|
1102
|
+
"name": "identity",
|
|
1103
|
+
"writable": true
|
|
1104
|
+
},
|
|
1105
|
+
{
|
|
1106
|
+
"name": "agent",
|
|
1107
|
+
"writable": true,
|
|
1108
|
+
"signer": true
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
"name": "system_program",
|
|
1112
|
+
"address": "11111111111111111111111111111111"
|
|
1113
|
+
}
|
|
1114
|
+
],
|
|
1115
|
+
"args": [
|
|
1116
|
+
{
|
|
1117
|
+
"name": "platform",
|
|
1118
|
+
"type": "u8"
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"name": "identity_hash",
|
|
1122
|
+
"type": {
|
|
1123
|
+
"array": [
|
|
1124
|
+
"u8",
|
|
1125
|
+
32
|
|
1126
|
+
]
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
]
|
|
1130
|
+
},
|
|
1131
|
+
{
|
|
1132
|
+
"name": "resolve_challenge",
|
|
1133
|
+
"discriminator": [
|
|
1134
|
+
81,
|
|
1135
|
+
191,
|
|
1136
|
+
124,
|
|
1137
|
+
119,
|
|
1138
|
+
131,
|
|
1139
|
+
248,
|
|
1140
|
+
157,
|
|
1141
|
+
109
|
|
1142
|
+
],
|
|
1143
|
+
"accounts": [
|
|
1144
|
+
{
|
|
1145
|
+
"name": "task",
|
|
1146
|
+
"writable": true,
|
|
1147
|
+
"pda": {
|
|
1148
|
+
"seeds": [
|
|
1149
|
+
{
|
|
1150
|
+
"kind": "const",
|
|
1151
|
+
"value": [
|
|
1152
|
+
116,
|
|
1153
|
+
97,
|
|
1154
|
+
115,
|
|
1155
|
+
107
|
|
1156
|
+
]
|
|
1157
|
+
},
|
|
1158
|
+
{
|
|
1159
|
+
"kind": "account",
|
|
1160
|
+
"path": "task.task_id",
|
|
1161
|
+
"account": "Task"
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"kind": "account",
|
|
1165
|
+
"path": "task.client",
|
|
1166
|
+
"account": "Task"
|
|
1167
|
+
}
|
|
1168
|
+
]
|
|
1169
|
+
}
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
"name": "challenge",
|
|
1173
|
+
"writable": true,
|
|
1174
|
+
"pda": {
|
|
1175
|
+
"seeds": [
|
|
1176
|
+
{
|
|
1177
|
+
"kind": "const",
|
|
1178
|
+
"value": [
|
|
1179
|
+
99,
|
|
1180
|
+
104,
|
|
1181
|
+
97,
|
|
1182
|
+
108,
|
|
1183
|
+
108,
|
|
1184
|
+
101,
|
|
1185
|
+
110,
|
|
1186
|
+
103,
|
|
1187
|
+
101
|
|
1188
|
+
]
|
|
1189
|
+
},
|
|
1190
|
+
{
|
|
1191
|
+
"kind": "account",
|
|
1192
|
+
"path": "challenge.task_id",
|
|
1193
|
+
"account": "Challenge"
|
|
1194
|
+
},
|
|
1195
|
+
{
|
|
1196
|
+
"kind": "account",
|
|
1197
|
+
"path": "challenge.challenger",
|
|
1198
|
+
"account": "Challenge"
|
|
1199
|
+
}
|
|
1200
|
+
]
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"name": "global_state",
|
|
1205
|
+
"pda": {
|
|
1206
|
+
"seeds": [
|
|
1207
|
+
{
|
|
1208
|
+
"kind": "const",
|
|
1209
|
+
"value": [
|
|
1210
|
+
115,
|
|
1211
|
+
104,
|
|
1212
|
+
105,
|
|
1213
|
+
108,
|
|
1214
|
+
108,
|
|
1215
|
+
98,
|
|
1216
|
+
111,
|
|
1217
|
+
116,
|
|
1218
|
+
95,
|
|
1219
|
+
103,
|
|
1220
|
+
108,
|
|
1221
|
+
111,
|
|
1222
|
+
98,
|
|
1223
|
+
97,
|
|
1224
|
+
108
|
|
1225
|
+
]
|
|
1226
|
+
}
|
|
1227
|
+
]
|
|
1228
|
+
}
|
|
1229
|
+
},
|
|
1230
|
+
{
|
|
1231
|
+
"name": "authority",
|
|
1232
|
+
"signer": true
|
|
1233
|
+
},
|
|
1234
|
+
{
|
|
1235
|
+
"name": "agent",
|
|
1236
|
+
"docs": [
|
|
1237
|
+
"routing, mirroring `finalize_task`). Equals `task.agent` when",
|
|
1238
|
+
"`task.payout_to` is unset; otherwise it must be `task.payout_to` (the",
|
|
1239
|
+
"credit vault). Without this, a won challenge would pay the agent wallet",
|
|
1240
|
+
"directly and bypass recoupment. Reputation/`total_challenges_lost` keys",
|
|
1241
|
+
"off `task.agent` independently, so routing never moves on-chain stats."
|
|
1242
|
+
],
|
|
1243
|
+
"writable": true
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"name": "client",
|
|
1247
|
+
"writable": true
|
|
1248
|
+
},
|
|
1249
|
+
{
|
|
1250
|
+
"name": "challenger",
|
|
1251
|
+
"writable": true
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"name": "treasury",
|
|
1255
|
+
"writable": true
|
|
1256
|
+
}
|
|
1257
|
+
],
|
|
1258
|
+
"args": [
|
|
1259
|
+
{
|
|
1260
|
+
"name": "challenger_won",
|
|
1261
|
+
"type": "bool"
|
|
1262
|
+
}
|
|
1263
|
+
]
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"name": "resolve_challenge_default",
|
|
1267
|
+
"docs": [
|
|
1268
|
+
"Permissionless default resolution of a Disputed task once the",
|
|
1269
|
+
"dispute-resolution window elapses without authority adjudication:",
|
|
1270
|
+
"pinned payment executes, bond returns un-slashed."
|
|
1271
|
+
],
|
|
1272
|
+
"discriminator": [
|
|
1273
|
+
230,
|
|
1274
|
+
21,
|
|
1275
|
+
237,
|
|
1276
|
+
248,
|
|
1277
|
+
158,
|
|
1278
|
+
186,
|
|
1279
|
+
99,
|
|
1280
|
+
68
|
|
1281
|
+
],
|
|
1282
|
+
"accounts": [
|
|
1283
|
+
{
|
|
1284
|
+
"name": "task",
|
|
1285
|
+
"writable": true,
|
|
1286
|
+
"pda": {
|
|
1287
|
+
"seeds": [
|
|
1288
|
+
{
|
|
1289
|
+
"kind": "const",
|
|
1290
|
+
"value": [
|
|
1291
|
+
116,
|
|
1292
|
+
97,
|
|
1293
|
+
115,
|
|
1294
|
+
107
|
|
1295
|
+
]
|
|
1296
|
+
},
|
|
1297
|
+
{
|
|
1298
|
+
"kind": "account",
|
|
1299
|
+
"path": "task.task_id",
|
|
1300
|
+
"account": "Task"
|
|
1301
|
+
},
|
|
1302
|
+
{
|
|
1303
|
+
"kind": "account",
|
|
1304
|
+
"path": "task.client",
|
|
1305
|
+
"account": "Task"
|
|
1306
|
+
}
|
|
1307
|
+
]
|
|
1308
|
+
}
|
|
1309
|
+
},
|
|
1310
|
+
{
|
|
1311
|
+
"name": "challenge",
|
|
1312
|
+
"writable": true,
|
|
1313
|
+
"pda": {
|
|
1314
|
+
"seeds": [
|
|
1315
|
+
{
|
|
1316
|
+
"kind": "const",
|
|
1317
|
+
"value": [
|
|
1318
|
+
99,
|
|
1319
|
+
104,
|
|
1320
|
+
97,
|
|
1321
|
+
108,
|
|
1322
|
+
108,
|
|
1323
|
+
101,
|
|
1324
|
+
110,
|
|
1325
|
+
103,
|
|
1326
|
+
101
|
|
1327
|
+
]
|
|
1328
|
+
},
|
|
1329
|
+
{
|
|
1330
|
+
"kind": "account",
|
|
1331
|
+
"path": "challenge.task_id",
|
|
1332
|
+
"account": "Challenge"
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
"kind": "account",
|
|
1336
|
+
"path": "challenge.challenger",
|
|
1337
|
+
"account": "Challenge"
|
|
1338
|
+
}
|
|
1339
|
+
]
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"name": "global_state",
|
|
1344
|
+
"pda": {
|
|
1345
|
+
"seeds": [
|
|
1346
|
+
{
|
|
1347
|
+
"kind": "const",
|
|
1348
|
+
"value": [
|
|
1349
|
+
115,
|
|
1350
|
+
104,
|
|
1351
|
+
105,
|
|
1352
|
+
108,
|
|
1353
|
+
108,
|
|
1354
|
+
98,
|
|
1355
|
+
111,
|
|
1356
|
+
116,
|
|
1357
|
+
95,
|
|
1358
|
+
103,
|
|
1359
|
+
108,
|
|
1360
|
+
111,
|
|
1361
|
+
98,
|
|
1362
|
+
97,
|
|
1363
|
+
108
|
|
1364
|
+
]
|
|
1365
|
+
}
|
|
1366
|
+
]
|
|
1367
|
+
}
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
"name": "agent",
|
|
1371
|
+
"docs": [
|
|
1372
|
+
"C2 routing override is set (same rule as finalize/resolve_challenge)."
|
|
1373
|
+
],
|
|
1374
|
+
"writable": true
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
"name": "client",
|
|
1378
|
+
"writable": true
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
"name": "challenger",
|
|
1382
|
+
"writable": true
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
"name": "treasury",
|
|
1386
|
+
"writable": true
|
|
1387
|
+
}
|
|
1388
|
+
],
|
|
1389
|
+
"args": []
|
|
1390
|
+
},
|
|
1391
|
+
{
|
|
1392
|
+
"name": "revoke_identity",
|
|
1393
|
+
"discriminator": [
|
|
1394
|
+
61,
|
|
1395
|
+
145,
|
|
1396
|
+
66,
|
|
1397
|
+
66,
|
|
1398
|
+
182,
|
|
1399
|
+
179,
|
|
1400
|
+
250,
|
|
1401
|
+
211
|
|
1402
|
+
],
|
|
1403
|
+
"accounts": [
|
|
1404
|
+
{
|
|
1405
|
+
"name": "identity",
|
|
1406
|
+
"writable": true
|
|
1407
|
+
},
|
|
1408
|
+
{
|
|
1409
|
+
"name": "agent",
|
|
1410
|
+
"writable": true,
|
|
1411
|
+
"signer": true,
|
|
1412
|
+
"relations": [
|
|
1413
|
+
"identity"
|
|
1414
|
+
]
|
|
1415
|
+
}
|
|
1416
|
+
],
|
|
1417
|
+
"args": []
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
"name": "revoke_session",
|
|
1421
|
+
"discriminator": [
|
|
1422
|
+
86,
|
|
1423
|
+
92,
|
|
1424
|
+
198,
|
|
1425
|
+
120,
|
|
1426
|
+
144,
|
|
1427
|
+
2,
|
|
1428
|
+
7,
|
|
1429
|
+
194
|
|
1430
|
+
],
|
|
1431
|
+
"accounts": [
|
|
1432
|
+
{
|
|
1433
|
+
"name": "session_delegate",
|
|
1434
|
+
"writable": true,
|
|
1435
|
+
"pda": {
|
|
1436
|
+
"seeds": [
|
|
1437
|
+
{
|
|
1438
|
+
"kind": "const",
|
|
1439
|
+
"value": [
|
|
1440
|
+
115,
|
|
1441
|
+
101,
|
|
1442
|
+
115,
|
|
1443
|
+
115,
|
|
1444
|
+
105,
|
|
1445
|
+
111,
|
|
1446
|
+
110
|
|
1447
|
+
]
|
|
1448
|
+
},
|
|
1449
|
+
{
|
|
1450
|
+
"kind": "account",
|
|
1451
|
+
"path": "session_delegate.agent",
|
|
1452
|
+
"account": "SessionDelegate"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"kind": "account",
|
|
1456
|
+
"path": "session_delegate.delegate",
|
|
1457
|
+
"account": "SessionDelegate"
|
|
1458
|
+
}
|
|
1459
|
+
]
|
|
1460
|
+
}
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"name": "agent",
|
|
1464
|
+
"writable": true,
|
|
1465
|
+
"signer": true,
|
|
1466
|
+
"relations": [
|
|
1467
|
+
"session_delegate"
|
|
1468
|
+
]
|
|
1469
|
+
}
|
|
1470
|
+
],
|
|
1471
|
+
"args": []
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
"name": "set_payout_to",
|
|
1475
|
+
"docs": [
|
|
1476
|
+
"Agent routes this task's finalize payment to `payout_to` (e.g. an",
|
|
1477
|
+
"extension-credit splitter vault). Reputation stays on `task.agent`."
|
|
1478
|
+
],
|
|
1479
|
+
"discriminator": [
|
|
1480
|
+
172,
|
|
1481
|
+
241,
|
|
1482
|
+
189,
|
|
1483
|
+
69,
|
|
1484
|
+
214,
|
|
1485
|
+
164,
|
|
1486
|
+
60,
|
|
1487
|
+
64
|
|
1488
|
+
],
|
|
1489
|
+
"accounts": [
|
|
1490
|
+
{
|
|
1491
|
+
"name": "task",
|
|
1492
|
+
"writable": true,
|
|
1493
|
+
"pda": {
|
|
1494
|
+
"seeds": [
|
|
1495
|
+
{
|
|
1496
|
+
"kind": "const",
|
|
1497
|
+
"value": [
|
|
1498
|
+
116,
|
|
1499
|
+
97,
|
|
1500
|
+
115,
|
|
1501
|
+
107
|
|
1502
|
+
]
|
|
1503
|
+
},
|
|
1504
|
+
{
|
|
1505
|
+
"kind": "account",
|
|
1506
|
+
"path": "task.task_id",
|
|
1507
|
+
"account": "Task"
|
|
1508
|
+
},
|
|
1509
|
+
{
|
|
1510
|
+
"kind": "account",
|
|
1511
|
+
"path": "task.client",
|
|
1512
|
+
"account": "Task"
|
|
1513
|
+
}
|
|
1514
|
+
]
|
|
1515
|
+
}
|
|
1516
|
+
},
|
|
1517
|
+
{
|
|
1518
|
+
"name": "agent",
|
|
1519
|
+
"signer": true
|
|
1520
|
+
}
|
|
1521
|
+
],
|
|
1522
|
+
"args": [
|
|
1523
|
+
{
|
|
1524
|
+
"name": "payout_to",
|
|
1525
|
+
"type": "pubkey"
|
|
1526
|
+
}
|
|
1527
|
+
]
|
|
1528
|
+
},
|
|
1529
|
+
{
|
|
1530
|
+
"name": "submit_work",
|
|
1531
|
+
"discriminator": [
|
|
1532
|
+
158,
|
|
1533
|
+
80,
|
|
1534
|
+
101,
|
|
1535
|
+
51,
|
|
1536
|
+
114,
|
|
1537
|
+
130,
|
|
1538
|
+
101,
|
|
1539
|
+
253
|
|
1540
|
+
],
|
|
1541
|
+
"accounts": [
|
|
1542
|
+
{
|
|
1543
|
+
"name": "task",
|
|
1544
|
+
"writable": true,
|
|
1545
|
+
"pda": {
|
|
1546
|
+
"seeds": [
|
|
1547
|
+
{
|
|
1548
|
+
"kind": "const",
|
|
1549
|
+
"value": [
|
|
1550
|
+
116,
|
|
1551
|
+
97,
|
|
1552
|
+
115,
|
|
1553
|
+
107
|
|
1554
|
+
]
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
"kind": "account",
|
|
1558
|
+
"path": "task.task_id",
|
|
1559
|
+
"account": "Task"
|
|
1560
|
+
},
|
|
1561
|
+
{
|
|
1562
|
+
"kind": "account",
|
|
1563
|
+
"path": "task.client",
|
|
1564
|
+
"account": "Task"
|
|
1565
|
+
}
|
|
1566
|
+
]
|
|
1567
|
+
}
|
|
1568
|
+
},
|
|
1569
|
+
{
|
|
1570
|
+
"name": "global_state",
|
|
1571
|
+
"pda": {
|
|
1572
|
+
"seeds": [
|
|
1573
|
+
{
|
|
1574
|
+
"kind": "const",
|
|
1575
|
+
"value": [
|
|
1576
|
+
115,
|
|
1577
|
+
104,
|
|
1578
|
+
105,
|
|
1579
|
+
108,
|
|
1580
|
+
108,
|
|
1581
|
+
98,
|
|
1582
|
+
111,
|
|
1583
|
+
116,
|
|
1584
|
+
95,
|
|
1585
|
+
103,
|
|
1586
|
+
108,
|
|
1587
|
+
111,
|
|
1588
|
+
98,
|
|
1589
|
+
97,
|
|
1590
|
+
108
|
|
1591
|
+
]
|
|
1592
|
+
}
|
|
1593
|
+
]
|
|
1594
|
+
}
|
|
1595
|
+
},
|
|
1596
|
+
{
|
|
1597
|
+
"name": "agent_state",
|
|
1598
|
+
"writable": true,
|
|
1599
|
+
"pda": {
|
|
1600
|
+
"seeds": [
|
|
1601
|
+
{
|
|
1602
|
+
"kind": "const",
|
|
1603
|
+
"value": [
|
|
1604
|
+
97,
|
|
1605
|
+
103,
|
|
1606
|
+
101,
|
|
1607
|
+
110,
|
|
1608
|
+
116,
|
|
1609
|
+
95,
|
|
1610
|
+
115,
|
|
1611
|
+
116,
|
|
1612
|
+
97,
|
|
1613
|
+
116,
|
|
1614
|
+
101
|
|
1615
|
+
]
|
|
1616
|
+
},
|
|
1617
|
+
{
|
|
1618
|
+
"kind": "account",
|
|
1619
|
+
"path": "agent"
|
|
1620
|
+
}
|
|
1621
|
+
]
|
|
1622
|
+
}
|
|
1623
|
+
},
|
|
1624
|
+
{
|
|
1625
|
+
"name": "agent",
|
|
1626
|
+
"signer": true
|
|
1627
|
+
}
|
|
1628
|
+
],
|
|
1629
|
+
"args": [
|
|
1630
|
+
{
|
|
1631
|
+
"name": "content_id",
|
|
1632
|
+
"type": "bytes"
|
|
1633
|
+
}
|
|
1634
|
+
]
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
"name": "submit_work_session",
|
|
1638
|
+
"discriminator": [
|
|
1639
|
+
71,
|
|
1640
|
+
182,
|
|
1641
|
+
198,
|
|
1642
|
+
106,
|
|
1643
|
+
108,
|
|
1644
|
+
197,
|
|
1645
|
+
13,
|
|
1646
|
+
62
|
|
1647
|
+
],
|
|
1648
|
+
"accounts": [
|
|
1649
|
+
{
|
|
1650
|
+
"name": "task",
|
|
1651
|
+
"writable": true,
|
|
1652
|
+
"pda": {
|
|
1653
|
+
"seeds": [
|
|
1654
|
+
{
|
|
1655
|
+
"kind": "const",
|
|
1656
|
+
"value": [
|
|
1657
|
+
116,
|
|
1658
|
+
97,
|
|
1659
|
+
115,
|
|
1660
|
+
107
|
|
1661
|
+
]
|
|
1662
|
+
},
|
|
1663
|
+
{
|
|
1664
|
+
"kind": "account",
|
|
1665
|
+
"path": "task.task_id",
|
|
1666
|
+
"account": "Task"
|
|
1667
|
+
},
|
|
1668
|
+
{
|
|
1669
|
+
"kind": "account",
|
|
1670
|
+
"path": "task.client",
|
|
1671
|
+
"account": "Task"
|
|
1672
|
+
}
|
|
1673
|
+
]
|
|
1674
|
+
}
|
|
1675
|
+
},
|
|
1676
|
+
{
|
|
1677
|
+
"name": "global_state",
|
|
1678
|
+
"pda": {
|
|
1679
|
+
"seeds": [
|
|
1680
|
+
{
|
|
1681
|
+
"kind": "const",
|
|
1682
|
+
"value": [
|
|
1683
|
+
115,
|
|
1684
|
+
104,
|
|
1685
|
+
105,
|
|
1686
|
+
108,
|
|
1687
|
+
108,
|
|
1688
|
+
98,
|
|
1689
|
+
111,
|
|
1690
|
+
116,
|
|
1691
|
+
95,
|
|
1692
|
+
103,
|
|
1693
|
+
108,
|
|
1694
|
+
111,
|
|
1695
|
+
98,
|
|
1696
|
+
97,
|
|
1697
|
+
108
|
|
1698
|
+
]
|
|
1699
|
+
}
|
|
1700
|
+
]
|
|
1701
|
+
}
|
|
1702
|
+
},
|
|
1703
|
+
{
|
|
1704
|
+
"name": "agent_state",
|
|
1705
|
+
"writable": true,
|
|
1706
|
+
"pda": {
|
|
1707
|
+
"seeds": [
|
|
1708
|
+
{
|
|
1709
|
+
"kind": "const",
|
|
1710
|
+
"value": [
|
|
1711
|
+
97,
|
|
1712
|
+
103,
|
|
1713
|
+
101,
|
|
1714
|
+
110,
|
|
1715
|
+
116,
|
|
1716
|
+
95,
|
|
1717
|
+
115,
|
|
1718
|
+
116,
|
|
1719
|
+
97,
|
|
1720
|
+
116,
|
|
1721
|
+
101
|
|
1722
|
+
]
|
|
1723
|
+
},
|
|
1724
|
+
{
|
|
1725
|
+
"kind": "account",
|
|
1726
|
+
"path": "session_delegate.agent",
|
|
1727
|
+
"account": "SessionDelegate"
|
|
1728
|
+
}
|
|
1729
|
+
]
|
|
1730
|
+
}
|
|
1731
|
+
},
|
|
1732
|
+
{
|
|
1733
|
+
"name": "session_delegate",
|
|
1734
|
+
"docs": [
|
|
1735
|
+
"SessionDelegate PDA proves the delegate is authorized by the agent."
|
|
1736
|
+
],
|
|
1737
|
+
"pda": {
|
|
1738
|
+
"seeds": [
|
|
1739
|
+
{
|
|
1740
|
+
"kind": "const",
|
|
1741
|
+
"value": [
|
|
1742
|
+
115,
|
|
1743
|
+
101,
|
|
1744
|
+
115,
|
|
1745
|
+
115,
|
|
1746
|
+
105,
|
|
1747
|
+
111,
|
|
1748
|
+
110
|
|
1749
|
+
]
|
|
1750
|
+
},
|
|
1751
|
+
{
|
|
1752
|
+
"kind": "account",
|
|
1753
|
+
"path": "session_delegate.agent",
|
|
1754
|
+
"account": "SessionDelegate"
|
|
1755
|
+
},
|
|
1756
|
+
{
|
|
1757
|
+
"kind": "account",
|
|
1758
|
+
"path": "delegate"
|
|
1759
|
+
}
|
|
1760
|
+
]
|
|
1761
|
+
}
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
"name": "delegate",
|
|
1765
|
+
"docs": [
|
|
1766
|
+
"The session key (MCP server) that signs the transaction."
|
|
1767
|
+
],
|
|
1768
|
+
"signer": true
|
|
1769
|
+
}
|
|
1770
|
+
],
|
|
1771
|
+
"args": [
|
|
1772
|
+
{
|
|
1773
|
+
"name": "content_id",
|
|
1774
|
+
"type": "bytes"
|
|
1775
|
+
}
|
|
1776
|
+
]
|
|
1777
|
+
},
|
|
1778
|
+
{
|
|
1779
|
+
"name": "transfer_authority",
|
|
1780
|
+
"discriminator": [
|
|
1781
|
+
48,
|
|
1782
|
+
169,
|
|
1783
|
+
76,
|
|
1784
|
+
72,
|
|
1785
|
+
229,
|
|
1786
|
+
180,
|
|
1787
|
+
55,
|
|
1788
|
+
161
|
|
1789
|
+
],
|
|
1790
|
+
"accounts": [
|
|
1791
|
+
{
|
|
1792
|
+
"name": "global_state",
|
|
1793
|
+
"writable": true,
|
|
1794
|
+
"pda": {
|
|
1795
|
+
"seeds": [
|
|
1796
|
+
{
|
|
1797
|
+
"kind": "const",
|
|
1798
|
+
"value": [
|
|
1799
|
+
115,
|
|
1800
|
+
104,
|
|
1801
|
+
105,
|
|
1802
|
+
108,
|
|
1803
|
+
108,
|
|
1804
|
+
98,
|
|
1805
|
+
111,
|
|
1806
|
+
116,
|
|
1807
|
+
95,
|
|
1808
|
+
103,
|
|
1809
|
+
108,
|
|
1810
|
+
111,
|
|
1811
|
+
98,
|
|
1812
|
+
97,
|
|
1813
|
+
108
|
|
1814
|
+
]
|
|
1815
|
+
}
|
|
1816
|
+
]
|
|
1817
|
+
}
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
"name": "authority",
|
|
1821
|
+
"signer": true
|
|
1822
|
+
}
|
|
1823
|
+
],
|
|
1824
|
+
"args": [
|
|
1825
|
+
{
|
|
1826
|
+
"name": "new_authority",
|
|
1827
|
+
"type": "pubkey"
|
|
1828
|
+
}
|
|
1829
|
+
]
|
|
1830
|
+
},
|
|
1831
|
+
{
|
|
1832
|
+
"name": "update_oracle_authority",
|
|
1833
|
+
"discriminator": [
|
|
1834
|
+
69,
|
|
1835
|
+
65,
|
|
1836
|
+
130,
|
|
1837
|
+
209,
|
|
1838
|
+
32,
|
|
1839
|
+
196,
|
|
1840
|
+
23,
|
|
1841
|
+
43
|
|
1842
|
+
],
|
|
1843
|
+
"accounts": [
|
|
1844
|
+
{
|
|
1845
|
+
"name": "global_state",
|
|
1846
|
+
"writable": true,
|
|
1847
|
+
"pda": {
|
|
1848
|
+
"seeds": [
|
|
1849
|
+
{
|
|
1850
|
+
"kind": "const",
|
|
1851
|
+
"value": [
|
|
1852
|
+
115,
|
|
1853
|
+
104,
|
|
1854
|
+
105,
|
|
1855
|
+
108,
|
|
1856
|
+
108,
|
|
1857
|
+
98,
|
|
1858
|
+
111,
|
|
1859
|
+
116,
|
|
1860
|
+
95,
|
|
1861
|
+
103,
|
|
1862
|
+
108,
|
|
1863
|
+
111,
|
|
1864
|
+
98,
|
|
1865
|
+
97,
|
|
1866
|
+
108
|
|
1867
|
+
]
|
|
1868
|
+
}
|
|
1869
|
+
]
|
|
1870
|
+
}
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"name": "authority",
|
|
1874
|
+
"signer": true
|
|
1875
|
+
}
|
|
1876
|
+
],
|
|
1877
|
+
"args": [
|
|
1878
|
+
{
|
|
1879
|
+
"name": "new_oracle_authority",
|
|
1880
|
+
"type": "pubkey"
|
|
1881
|
+
}
|
|
1882
|
+
]
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"name": "update_params",
|
|
1886
|
+
"discriminator": [
|
|
1887
|
+
108,
|
|
1888
|
+
178,
|
|
1889
|
+
190,
|
|
1890
|
+
95,
|
|
1891
|
+
94,
|
|
1892
|
+
203,
|
|
1893
|
+
116,
|
|
1894
|
+
20
|
|
1895
|
+
],
|
|
1896
|
+
"accounts": [
|
|
1897
|
+
{
|
|
1898
|
+
"name": "global_state",
|
|
1899
|
+
"writable": true,
|
|
1900
|
+
"pda": {
|
|
1901
|
+
"seeds": [
|
|
1902
|
+
{
|
|
1903
|
+
"kind": "const",
|
|
1904
|
+
"value": [
|
|
1905
|
+
115,
|
|
1906
|
+
104,
|
|
1907
|
+
105,
|
|
1908
|
+
108,
|
|
1909
|
+
108,
|
|
1910
|
+
98,
|
|
1911
|
+
111,
|
|
1912
|
+
116,
|
|
1913
|
+
95,
|
|
1914
|
+
103,
|
|
1915
|
+
108,
|
|
1916
|
+
111,
|
|
1917
|
+
98,
|
|
1918
|
+
97,
|
|
1919
|
+
108
|
|
1920
|
+
]
|
|
1921
|
+
}
|
|
1922
|
+
]
|
|
1923
|
+
}
|
|
1924
|
+
},
|
|
1925
|
+
{
|
|
1926
|
+
"name": "authority",
|
|
1927
|
+
"signer": true
|
|
1928
|
+
}
|
|
1929
|
+
],
|
|
1930
|
+
"args": [
|
|
1931
|
+
{
|
|
1932
|
+
"name": "protocol_fee_bps",
|
|
1933
|
+
"type": "u16"
|
|
1934
|
+
},
|
|
1935
|
+
{
|
|
1936
|
+
"name": "quality_threshold",
|
|
1937
|
+
"type": "u64"
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
"name": "challenge_window_seconds",
|
|
1941
|
+
"type": "i64"
|
|
1942
|
+
},
|
|
1943
|
+
{
|
|
1944
|
+
"name": "verification_timeout_seconds",
|
|
1945
|
+
"type": "i64"
|
|
1946
|
+
},
|
|
1947
|
+
{
|
|
1948
|
+
"name": "attestation_delay_seconds",
|
|
1949
|
+
"type": "i64"
|
|
1950
|
+
},
|
|
1951
|
+
{
|
|
1952
|
+
"name": "staleness_window_seconds",
|
|
1953
|
+
"type": "i64"
|
|
1954
|
+
},
|
|
1955
|
+
{
|
|
1956
|
+
"name": "max_concurrent_claims",
|
|
1957
|
+
"type": "u8"
|
|
1958
|
+
},
|
|
1959
|
+
{
|
|
1960
|
+
"name": "challenge_bond_multiplier",
|
|
1961
|
+
"type": "u8"
|
|
1962
|
+
},
|
|
1963
|
+
{
|
|
1964
|
+
"name": "bond_slash_treasury_bps",
|
|
1965
|
+
"type": "u16"
|
|
1966
|
+
},
|
|
1967
|
+
{
|
|
1968
|
+
"name": "paused",
|
|
1969
|
+
"type": "bool"
|
|
1970
|
+
},
|
|
1971
|
+
{
|
|
1972
|
+
"name": "paused_platforms",
|
|
1973
|
+
"type": "u16"
|
|
1974
|
+
},
|
|
1975
|
+
{
|
|
1976
|
+
"name": "rate_limit_window_seconds",
|
|
1977
|
+
"type": "i64"
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
"name": "max_tasks_per_rate_window",
|
|
1981
|
+
"type": "u32"
|
|
1982
|
+
},
|
|
1983
|
+
{
|
|
1984
|
+
"name": "dispute_resolution_window_seconds",
|
|
1985
|
+
"type": "i64"
|
|
1986
|
+
}
|
|
1987
|
+
]
|
|
1988
|
+
},
|
|
1989
|
+
{
|
|
1990
|
+
"name": "update_treasury",
|
|
1991
|
+
"discriminator": [
|
|
1992
|
+
60,
|
|
1993
|
+
16,
|
|
1994
|
+
243,
|
|
1995
|
+
66,
|
|
1996
|
+
96,
|
|
1997
|
+
59,
|
|
1998
|
+
254,
|
|
1999
|
+
131
|
|
2000
|
+
],
|
|
2001
|
+
"accounts": [
|
|
2002
|
+
{
|
|
2003
|
+
"name": "global_state",
|
|
2004
|
+
"writable": true,
|
|
2005
|
+
"pda": {
|
|
2006
|
+
"seeds": [
|
|
2007
|
+
{
|
|
2008
|
+
"kind": "const",
|
|
2009
|
+
"value": [
|
|
2010
|
+
115,
|
|
2011
|
+
104,
|
|
2012
|
+
105,
|
|
2013
|
+
108,
|
|
2014
|
+
108,
|
|
2015
|
+
98,
|
|
2016
|
+
111,
|
|
2017
|
+
116,
|
|
2018
|
+
95,
|
|
2019
|
+
103,
|
|
2020
|
+
108,
|
|
2021
|
+
111,
|
|
2022
|
+
98,
|
|
2023
|
+
97,
|
|
2024
|
+
108
|
|
2025
|
+
]
|
|
2026
|
+
}
|
|
2027
|
+
]
|
|
2028
|
+
}
|
|
2029
|
+
},
|
|
2030
|
+
{
|
|
2031
|
+
"name": "authority",
|
|
2032
|
+
"signer": true
|
|
2033
|
+
}
|
|
2034
|
+
],
|
|
2035
|
+
"args": [
|
|
2036
|
+
{
|
|
2037
|
+
"name": "new_treasury",
|
|
2038
|
+
"type": "pubkey"
|
|
2039
|
+
}
|
|
2040
|
+
]
|
|
2041
|
+
},
|
|
2042
|
+
{
|
|
2043
|
+
"name": "verify_task",
|
|
2044
|
+
"discriminator": [
|
|
2045
|
+
175,
|
|
2046
|
+
152,
|
|
2047
|
+
172,
|
|
2048
|
+
204,
|
|
2049
|
+
64,
|
|
2050
|
+
126,
|
|
2051
|
+
201,
|
|
2052
|
+
206
|
|
2053
|
+
],
|
|
2054
|
+
"accounts": [
|
|
2055
|
+
{
|
|
2056
|
+
"name": "task",
|
|
2057
|
+
"writable": true,
|
|
2058
|
+
"pda": {
|
|
2059
|
+
"seeds": [
|
|
2060
|
+
{
|
|
2061
|
+
"kind": "const",
|
|
2062
|
+
"value": [
|
|
2063
|
+
116,
|
|
2064
|
+
97,
|
|
2065
|
+
115,
|
|
2066
|
+
107
|
|
2067
|
+
]
|
|
2068
|
+
},
|
|
2069
|
+
{
|
|
2070
|
+
"kind": "account",
|
|
2071
|
+
"path": "task.task_id",
|
|
2072
|
+
"account": "Task"
|
|
2073
|
+
},
|
|
2074
|
+
{
|
|
2075
|
+
"kind": "account",
|
|
2076
|
+
"path": "task.client",
|
|
2077
|
+
"account": "Task"
|
|
2078
|
+
}
|
|
2079
|
+
]
|
|
2080
|
+
}
|
|
2081
|
+
},
|
|
2082
|
+
{
|
|
2083
|
+
"name": "global_state",
|
|
2084
|
+
"pda": {
|
|
2085
|
+
"seeds": [
|
|
2086
|
+
{
|
|
2087
|
+
"kind": "const",
|
|
2088
|
+
"value": [
|
|
2089
|
+
115,
|
|
2090
|
+
104,
|
|
2091
|
+
105,
|
|
2092
|
+
108,
|
|
2093
|
+
108,
|
|
2094
|
+
98,
|
|
2095
|
+
111,
|
|
2096
|
+
116,
|
|
2097
|
+
95,
|
|
2098
|
+
103,
|
|
2099
|
+
108,
|
|
2100
|
+
111,
|
|
2101
|
+
98,
|
|
2102
|
+
97,
|
|
2103
|
+
108
|
|
2104
|
+
]
|
|
2105
|
+
}
|
|
2106
|
+
]
|
|
2107
|
+
}
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
"name": "switchboard_feed",
|
|
2111
|
+
"docs": [
|
|
2112
|
+
"The Switchboard pull feed account containing the oracle-attested composite score.",
|
|
2113
|
+
"`PullFeedAccountData::parse()` which checks the account discriminator.",
|
|
2114
|
+
"Account ownership is verified by Switchboard's `Owner` implementation."
|
|
2115
|
+
]
|
|
2116
|
+
}
|
|
2117
|
+
],
|
|
2118
|
+
"args": [
|
|
2119
|
+
{
|
|
2120
|
+
"name": "composite_score",
|
|
2121
|
+
"type": "u64"
|
|
2122
|
+
},
|
|
2123
|
+
{
|
|
2124
|
+
"name": "verification_hash",
|
|
2125
|
+
"type": {
|
|
2126
|
+
"array": [
|
|
2127
|
+
"u8",
|
|
2128
|
+
32
|
|
2129
|
+
]
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
]
|
|
2133
|
+
},
|
|
2134
|
+
{
|
|
2135
|
+
"name": "verify_task_attested",
|
|
2136
|
+
"docs": [
|
|
2137
|
+
"Attester-signed verification for `verification_kind = 1` tasks —",
|
|
2138
|
+
"the `oracle_authority` signs the transaction; `verification_hash`",
|
|
2139
|
+
"is the chain-core `AttestationCert` digest."
|
|
2140
|
+
],
|
|
2141
|
+
"discriminator": [
|
|
2142
|
+
181,
|
|
2143
|
+
103,
|
|
2144
|
+
34,
|
|
2145
|
+
222,
|
|
2146
|
+
12,
|
|
2147
|
+
179,
|
|
2148
|
+
17,
|
|
2149
|
+
58
|
|
2150
|
+
],
|
|
2151
|
+
"accounts": [
|
|
2152
|
+
{
|
|
2153
|
+
"name": "task",
|
|
2154
|
+
"writable": true,
|
|
2155
|
+
"pda": {
|
|
2156
|
+
"seeds": [
|
|
2157
|
+
{
|
|
2158
|
+
"kind": "const",
|
|
2159
|
+
"value": [
|
|
2160
|
+
116,
|
|
2161
|
+
97,
|
|
2162
|
+
115,
|
|
2163
|
+
107
|
|
2164
|
+
]
|
|
2165
|
+
},
|
|
2166
|
+
{
|
|
2167
|
+
"kind": "account",
|
|
2168
|
+
"path": "task.task_id",
|
|
2169
|
+
"account": "Task"
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
"kind": "account",
|
|
2173
|
+
"path": "task.client",
|
|
2174
|
+
"account": "Task"
|
|
2175
|
+
}
|
|
2176
|
+
]
|
|
2177
|
+
}
|
|
2178
|
+
},
|
|
2179
|
+
{
|
|
2180
|
+
"name": "global_state",
|
|
2181
|
+
"pda": {
|
|
2182
|
+
"seeds": [
|
|
2183
|
+
{
|
|
2184
|
+
"kind": "const",
|
|
2185
|
+
"value": [
|
|
2186
|
+
115,
|
|
2187
|
+
104,
|
|
2188
|
+
105,
|
|
2189
|
+
108,
|
|
2190
|
+
108,
|
|
2191
|
+
98,
|
|
2192
|
+
111,
|
|
2193
|
+
116,
|
|
2194
|
+
95,
|
|
2195
|
+
103,
|
|
2196
|
+
108,
|
|
2197
|
+
111,
|
|
2198
|
+
98,
|
|
2199
|
+
97,
|
|
2200
|
+
108
|
|
2201
|
+
]
|
|
2202
|
+
}
|
|
2203
|
+
]
|
|
2204
|
+
}
|
|
2205
|
+
},
|
|
2206
|
+
{
|
|
2207
|
+
"name": "attester",
|
|
2208
|
+
"docs": [
|
|
2209
|
+
"The allow-listed attester — must match `GlobalState.oracle_authority`",
|
|
2210
|
+
"(validated in the handler with a named error; rotate via",
|
|
2211
|
+
"`update_oracle_authority`)."
|
|
2212
|
+
],
|
|
2213
|
+
"signer": true
|
|
2214
|
+
}
|
|
2215
|
+
],
|
|
2216
|
+
"args": [
|
|
2217
|
+
{
|
|
2218
|
+
"name": "score",
|
|
2219
|
+
"type": "u64"
|
|
2220
|
+
},
|
|
2221
|
+
{
|
|
2222
|
+
"name": "verification_hash",
|
|
2223
|
+
"type": {
|
|
2224
|
+
"array": [
|
|
2225
|
+
"u8",
|
|
2226
|
+
32
|
|
2227
|
+
]
|
|
2228
|
+
}
|
|
2229
|
+
}
|
|
2230
|
+
]
|
|
2231
|
+
}
|
|
2232
|
+
],
|
|
2233
|
+
"accounts": [
|
|
2234
|
+
{
|
|
2235
|
+
"name": "AgentState",
|
|
2236
|
+
"discriminator": [
|
|
2237
|
+
254,
|
|
2238
|
+
187,
|
|
2239
|
+
98,
|
|
2240
|
+
119,
|
|
2241
|
+
228,
|
|
2242
|
+
48,
|
|
2243
|
+
47,
|
|
2244
|
+
49
|
|
2245
|
+
]
|
|
2246
|
+
},
|
|
2247
|
+
{
|
|
2248
|
+
"name": "Challenge",
|
|
2249
|
+
"discriminator": [
|
|
2250
|
+
119,
|
|
2251
|
+
250,
|
|
2252
|
+
161,
|
|
2253
|
+
121,
|
|
2254
|
+
119,
|
|
2255
|
+
81,
|
|
2256
|
+
22,
|
|
2257
|
+
208
|
|
2258
|
+
]
|
|
2259
|
+
},
|
|
2260
|
+
{
|
|
2261
|
+
"name": "ClientState",
|
|
2262
|
+
"discriminator": [
|
|
2263
|
+
147,
|
|
2264
|
+
10,
|
|
2265
|
+
249,
|
|
2266
|
+
80,
|
|
2267
|
+
145,
|
|
2268
|
+
124,
|
|
2269
|
+
219,
|
|
2270
|
+
60
|
|
2271
|
+
]
|
|
2272
|
+
},
|
|
2273
|
+
{
|
|
2274
|
+
"name": "GlobalState",
|
|
2275
|
+
"discriminator": [
|
|
2276
|
+
163,
|
|
2277
|
+
46,
|
|
2278
|
+
74,
|
|
2279
|
+
168,
|
|
2280
|
+
216,
|
|
2281
|
+
123,
|
|
2282
|
+
133,
|
|
2283
|
+
98
|
|
2284
|
+
]
|
|
2285
|
+
},
|
|
2286
|
+
{
|
|
2287
|
+
"name": "PlatformIdentity",
|
|
2288
|
+
"discriminator": [
|
|
2289
|
+
18,
|
|
2290
|
+
42,
|
|
2291
|
+
151,
|
|
2292
|
+
110,
|
|
2293
|
+
86,
|
|
2294
|
+
16,
|
|
2295
|
+
173,
|
|
2296
|
+
7
|
|
2297
|
+
]
|
|
2298
|
+
},
|
|
2299
|
+
{
|
|
2300
|
+
"name": "SessionDelegate",
|
|
2301
|
+
"discriminator": [
|
|
2302
|
+
236,
|
|
2303
|
+
108,
|
|
2304
|
+
128,
|
|
2305
|
+
200,
|
|
2306
|
+
59,
|
|
2307
|
+
199,
|
|
2308
|
+
240,
|
|
2309
|
+
74
|
|
2310
|
+
]
|
|
2311
|
+
},
|
|
2312
|
+
{
|
|
2313
|
+
"name": "Task",
|
|
2314
|
+
"discriminator": [
|
|
2315
|
+
79,
|
|
2316
|
+
34,
|
|
2317
|
+
229,
|
|
2318
|
+
55,
|
|
2319
|
+
88,
|
|
2320
|
+
90,
|
|
2321
|
+
55,
|
|
2322
|
+
84
|
|
2323
|
+
]
|
|
2324
|
+
}
|
|
2325
|
+
],
|
|
2326
|
+
"events": [
|
|
2327
|
+
{
|
|
2328
|
+
"name": "AgentStateClosed",
|
|
2329
|
+
"discriminator": [
|
|
2330
|
+
63,
|
|
2331
|
+
183,
|
|
2332
|
+
169,
|
|
2333
|
+
234,
|
|
2334
|
+
102,
|
|
2335
|
+
194,
|
|
2336
|
+
162,
|
|
2337
|
+
133
|
|
2338
|
+
]
|
|
2339
|
+
},
|
|
2340
|
+
{
|
|
2341
|
+
"name": "AuthorityTransferred",
|
|
2342
|
+
"discriminator": [
|
|
2343
|
+
245,
|
|
2344
|
+
109,
|
|
2345
|
+
179,
|
|
2346
|
+
54,
|
|
2347
|
+
135,
|
|
2348
|
+
92,
|
|
2349
|
+
22,
|
|
2350
|
+
64
|
|
2351
|
+
]
|
|
2352
|
+
},
|
|
2353
|
+
{
|
|
2354
|
+
"name": "ChallengeDefaultResolved",
|
|
2355
|
+
"discriminator": [
|
|
2356
|
+
75,
|
|
2357
|
+
197,
|
|
2358
|
+
69,
|
|
2359
|
+
254,
|
|
2360
|
+
116,
|
|
2361
|
+
23,
|
|
2362
|
+
147,
|
|
2363
|
+
110
|
|
2364
|
+
]
|
|
2365
|
+
},
|
|
2366
|
+
{
|
|
2367
|
+
"name": "ChallengeResolved",
|
|
2368
|
+
"discriminator": [
|
|
2369
|
+
100,
|
|
2370
|
+
153,
|
|
2371
|
+
38,
|
|
2372
|
+
123,
|
|
2373
|
+
172,
|
|
2374
|
+
250,
|
|
2375
|
+
166,
|
|
2376
|
+
105
|
|
2377
|
+
]
|
|
2378
|
+
},
|
|
2379
|
+
{
|
|
2380
|
+
"name": "EmergencyReturn",
|
|
2381
|
+
"discriminator": [
|
|
2382
|
+
223,
|
|
2383
|
+
31,
|
|
2384
|
+
84,
|
|
2385
|
+
211,
|
|
2386
|
+
228,
|
|
2387
|
+
151,
|
|
2388
|
+
67,
|
|
2389
|
+
196
|
|
2390
|
+
]
|
|
2391
|
+
},
|
|
2392
|
+
{
|
|
2393
|
+
"name": "IdentityRegistered",
|
|
2394
|
+
"discriminator": [
|
|
2395
|
+
5,
|
|
2396
|
+
243,
|
|
2397
|
+
147,
|
|
2398
|
+
84,
|
|
2399
|
+
8,
|
|
2400
|
+
116,
|
|
2401
|
+
238,
|
|
2402
|
+
24
|
|
2403
|
+
]
|
|
2404
|
+
},
|
|
2405
|
+
{
|
|
2406
|
+
"name": "IdentityRevoked",
|
|
2407
|
+
"discriminator": [
|
|
2408
|
+
182,
|
|
2409
|
+
184,
|
|
2410
|
+
246,
|
|
2411
|
+
129,
|
|
2412
|
+
30,
|
|
2413
|
+
218,
|
|
2414
|
+
116,
|
|
2415
|
+
12
|
|
2416
|
+
]
|
|
2417
|
+
},
|
|
2418
|
+
{
|
|
2419
|
+
"name": "OracleAuthorityUpdated",
|
|
2420
|
+
"discriminator": [
|
|
2421
|
+
184,
|
|
2422
|
+
45,
|
|
2423
|
+
33,
|
|
2424
|
+
123,
|
|
2425
|
+
198,
|
|
2426
|
+
6,
|
|
2427
|
+
101,
|
|
2428
|
+
91
|
|
2429
|
+
]
|
|
2430
|
+
},
|
|
2431
|
+
{
|
|
2432
|
+
"name": "ParamsUpdated",
|
|
2433
|
+
"discriminator": [
|
|
2434
|
+
2,
|
|
2435
|
+
163,
|
|
2436
|
+
138,
|
|
2437
|
+
99,
|
|
2438
|
+
135,
|
|
2439
|
+
11,
|
|
2440
|
+
136,
|
|
2441
|
+
169
|
|
2442
|
+
]
|
|
2443
|
+
},
|
|
2444
|
+
{
|
|
2445
|
+
"name": "PayoutRouteSet",
|
|
2446
|
+
"discriminator": [
|
|
2447
|
+
81,
|
|
2448
|
+
221,
|
|
2449
|
+
14,
|
|
2450
|
+
197,
|
|
2451
|
+
75,
|
|
2452
|
+
76,
|
|
2453
|
+
14,
|
|
2454
|
+
158
|
|
2455
|
+
]
|
|
2456
|
+
},
|
|
2457
|
+
{
|
|
2458
|
+
"name": "SessionCreated",
|
|
2459
|
+
"discriminator": [
|
|
2460
|
+
107,
|
|
2461
|
+
111,
|
|
2462
|
+
254,
|
|
2463
|
+
25,
|
|
2464
|
+
21,
|
|
2465
|
+
122,
|
|
2466
|
+
220,
|
|
2467
|
+
225
|
|
2468
|
+
]
|
|
2469
|
+
},
|
|
2470
|
+
{
|
|
2471
|
+
"name": "SessionRevoked",
|
|
2472
|
+
"discriminator": [
|
|
2473
|
+
90,
|
|
2474
|
+
48,
|
|
2475
|
+
35,
|
|
2476
|
+
234,
|
|
2477
|
+
203,
|
|
2478
|
+
192,
|
|
2479
|
+
126,
|
|
2480
|
+
211
|
|
2481
|
+
]
|
|
2482
|
+
},
|
|
2483
|
+
{
|
|
2484
|
+
"name": "TaskApproved",
|
|
2485
|
+
"discriminator": [
|
|
2486
|
+
141,
|
|
2487
|
+
97,
|
|
2488
|
+
247,
|
|
2489
|
+
152,
|
|
2490
|
+
147,
|
|
2491
|
+
59,
|
|
2492
|
+
68,
|
|
2493
|
+
164
|
|
2494
|
+
]
|
|
2495
|
+
},
|
|
2496
|
+
{
|
|
2497
|
+
"name": "TaskChallenged",
|
|
2498
|
+
"discriminator": [
|
|
2499
|
+
234,
|
|
2500
|
+
236,
|
|
2501
|
+
40,
|
|
2502
|
+
66,
|
|
2503
|
+
145,
|
|
2504
|
+
229,
|
|
2505
|
+
205,
|
|
2506
|
+
242
|
|
2507
|
+
]
|
|
2508
|
+
},
|
|
2509
|
+
{
|
|
2510
|
+
"name": "TaskClaimed",
|
|
2511
|
+
"discriminator": [
|
|
2512
|
+
208,
|
|
2513
|
+
90,
|
|
2514
|
+
243,
|
|
2515
|
+
116,
|
|
2516
|
+
80,
|
|
2517
|
+
15,
|
|
2518
|
+
228,
|
|
2519
|
+
202
|
|
2520
|
+
]
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
"name": "TaskCreated",
|
|
2524
|
+
"discriminator": [
|
|
2525
|
+
49,
|
|
2526
|
+
174,
|
|
2527
|
+
6,
|
|
2528
|
+
7,
|
|
2529
|
+
71,
|
|
2530
|
+
159,
|
|
2531
|
+
69,
|
|
2532
|
+
175
|
|
2533
|
+
]
|
|
2534
|
+
},
|
|
2535
|
+
{
|
|
2536
|
+
"name": "TaskExpired",
|
|
2537
|
+
"discriminator": [
|
|
2538
|
+
36,
|
|
2539
|
+
130,
|
|
2540
|
+
189,
|
|
2541
|
+
154,
|
|
2542
|
+
110,
|
|
2543
|
+
249,
|
|
2544
|
+
231,
|
|
2545
|
+
45
|
|
2546
|
+
]
|
|
2547
|
+
},
|
|
2548
|
+
{
|
|
2549
|
+
"name": "TaskFinalized",
|
|
2550
|
+
"discriminator": [
|
|
2551
|
+
154,
|
|
2552
|
+
242,
|
|
2553
|
+
225,
|
|
2554
|
+
183,
|
|
2555
|
+
87,
|
|
2556
|
+
124,
|
|
2557
|
+
101,
|
|
2558
|
+
128
|
|
2559
|
+
]
|
|
2560
|
+
},
|
|
2561
|
+
{
|
|
2562
|
+
"name": "TaskVerified",
|
|
2563
|
+
"discriminator": [
|
|
2564
|
+
8,
|
|
2565
|
+
131,
|
|
2566
|
+
95,
|
|
2567
|
+
118,
|
|
2568
|
+
38,
|
|
2569
|
+
42,
|
|
2570
|
+
132,
|
|
2571
|
+
106
|
|
2572
|
+
]
|
|
2573
|
+
},
|
|
2574
|
+
{
|
|
2575
|
+
"name": "TreasuryUpdated",
|
|
2576
|
+
"discriminator": [
|
|
2577
|
+
80,
|
|
2578
|
+
239,
|
|
2579
|
+
54,
|
|
2580
|
+
168,
|
|
2581
|
+
43,
|
|
2582
|
+
38,
|
|
2583
|
+
85,
|
|
2584
|
+
145
|
|
2585
|
+
]
|
|
2586
|
+
},
|
|
2587
|
+
{
|
|
2588
|
+
"name": "WorkSubmitted",
|
|
2589
|
+
"discriminator": [
|
|
2590
|
+
136,
|
|
2591
|
+
185,
|
|
2592
|
+
210,
|
|
2593
|
+
174,
|
|
2594
|
+
216,
|
|
2595
|
+
140,
|
|
2596
|
+
64,
|
|
2597
|
+
125
|
|
2598
|
+
]
|
|
2599
|
+
}
|
|
2600
|
+
],
|
|
2601
|
+
"errors": [
|
|
2602
|
+
{
|
|
2603
|
+
"code": 6000,
|
|
2604
|
+
"name": "InvalidTaskState",
|
|
2605
|
+
"msg": "Instruction not valid for current task state"
|
|
2606
|
+
},
|
|
2607
|
+
{
|
|
2608
|
+
"code": 6001,
|
|
2609
|
+
"name": "NotTaskClient",
|
|
2610
|
+
"msg": "Caller is not the task's client"
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
"code": 6002,
|
|
2614
|
+
"name": "NotTaskAgent",
|
|
2615
|
+
"msg": "Caller is not the task's agent"
|
|
2616
|
+
},
|
|
2617
|
+
{
|
|
2618
|
+
"code": 6003,
|
|
2619
|
+
"name": "NotAuthority",
|
|
2620
|
+
"msg": "Caller is not the GlobalState authority"
|
|
2621
|
+
},
|
|
2622
|
+
{
|
|
2623
|
+
"code": 6004,
|
|
2624
|
+
"name": "DeadlineExpired",
|
|
2625
|
+
"msg": "Claim or submit attempted after deadline"
|
|
2626
|
+
},
|
|
2627
|
+
{
|
|
2628
|
+
"code": 6005,
|
|
2629
|
+
"name": "ClaimBufferInsufficient",
|
|
2630
|
+
"msg": "Not enough time remaining before deadline to claim"
|
|
2631
|
+
},
|
|
2632
|
+
{
|
|
2633
|
+
"code": 6006,
|
|
2634
|
+
"name": "SubmitMarginInsufficient",
|
|
2635
|
+
"msg": "Submission too close to deadline"
|
|
2636
|
+
},
|
|
2637
|
+
{
|
|
2638
|
+
"code": 6007,
|
|
2639
|
+
"name": "MaxConcurrentClaimsExceeded",
|
|
2640
|
+
"msg": "Agent is at GlobalState.max_concurrent_claims active claims"
|
|
2641
|
+
},
|
|
2642
|
+
{
|
|
2643
|
+
"code": 6008,
|
|
2644
|
+
"name": "InvalidAttestation",
|
|
2645
|
+
"msg": "Switchboard account ownership or feed PDA mismatch"
|
|
2646
|
+
},
|
|
2647
|
+
{
|
|
2648
|
+
"code": 6009,
|
|
2649
|
+
"name": "AttestationStale",
|
|
2650
|
+
"msg": "Oracle attestation data outside acceptable staleness window"
|
|
2651
|
+
},
|
|
2652
|
+
{
|
|
2653
|
+
"code": 6010,
|
|
2654
|
+
"name": "ScoreOutOfBounds",
|
|
2655
|
+
"msg": "Composite score exceeds MAX_SCORE"
|
|
2656
|
+
},
|
|
2657
|
+
{
|
|
2658
|
+
"code": 6011,
|
|
2659
|
+
"name": "ChallengeWindowClosed",
|
|
2660
|
+
"msg": "Challenge attempted after window expired"
|
|
2661
|
+
},
|
|
2662
|
+
{
|
|
2663
|
+
"code": 6012,
|
|
2664
|
+
"name": "ChallengeWindowOpen",
|
|
2665
|
+
"msg": "Finalize attempted before challenge window closes"
|
|
2666
|
+
},
|
|
2667
|
+
{
|
|
2668
|
+
"code": 6013,
|
|
2669
|
+
"name": "InsufficientBond",
|
|
2670
|
+
"msg": "Challenge bond below minimum required"
|
|
2671
|
+
},
|
|
2672
|
+
{
|
|
2673
|
+
"code": 6014,
|
|
2674
|
+
"name": "VerificationTimeoutNotReached",
|
|
2675
|
+
"msg": "Expire called on Submitted task before verification timeout reached"
|
|
2676
|
+
},
|
|
2677
|
+
{
|
|
2678
|
+
"code": 6015,
|
|
2679
|
+
"name": "InvalidSessionDelegate",
|
|
2680
|
+
"msg": "Session delegate not authorized for this instruction"
|
|
2681
|
+
},
|
|
2682
|
+
{
|
|
2683
|
+
"code": 6016,
|
|
2684
|
+
"name": "ArithmeticOverflow",
|
|
2685
|
+
"msg": "Checked arithmetic overflow or underflow"
|
|
2686
|
+
},
|
|
2687
|
+
{
|
|
2688
|
+
"code": 6017,
|
|
2689
|
+
"name": "PaymentExceedsEscrow",
|
|
2690
|
+
"msg": "Computed payment + fee exceeds escrowed lamports"
|
|
2691
|
+
},
|
|
2692
|
+
{
|
|
2693
|
+
"code": 6018,
|
|
2694
|
+
"name": "ContentIdTooLong",
|
|
2695
|
+
"msg": "Content ID exceeds maximum allowed length"
|
|
2696
|
+
},
|
|
2697
|
+
{
|
|
2698
|
+
"code": 6019,
|
|
2699
|
+
"name": "ProtocolFeeBoundsExceeded",
|
|
2700
|
+
"msg": "Protocol fee basis points outside allowed bounds"
|
|
2701
|
+
},
|
|
2702
|
+
{
|
|
2703
|
+
"code": 6020,
|
|
2704
|
+
"name": "QualityThresholdBoundsExceeded",
|
|
2705
|
+
"msg": "Quality threshold outside allowed bounds"
|
|
2706
|
+
},
|
|
2707
|
+
{
|
|
2708
|
+
"code": 6021,
|
|
2709
|
+
"name": "MissingAgentState",
|
|
2710
|
+
"msg": "AgentState account required but not provided in remaining_accounts"
|
|
2711
|
+
},
|
|
2712
|
+
{
|
|
2713
|
+
"code": 6022,
|
|
2714
|
+
"name": "InvalidAccountPairs",
|
|
2715
|
+
"msg": "remaining_accounts count must be even (task/client pairs)"
|
|
2716
|
+
},
|
|
2717
|
+
{
|
|
2718
|
+
"code": 6023,
|
|
2719
|
+
"name": "ProtocolPaused",
|
|
2720
|
+
"msg": "Protocol is paused"
|
|
2721
|
+
},
|
|
2722
|
+
{
|
|
2723
|
+
"code": 6024,
|
|
2724
|
+
"name": "PlatformPaused",
|
|
2725
|
+
"msg": "Platform is paused"
|
|
2726
|
+
},
|
|
2727
|
+
{
|
|
2728
|
+
"code": 6025,
|
|
2729
|
+
"name": "InvalidPlatform",
|
|
2730
|
+
"msg": "Invalid platform type"
|
|
2731
|
+
},
|
|
2732
|
+
{
|
|
2733
|
+
"code": 6026,
|
|
2734
|
+
"name": "OracleAuthorityMismatch",
|
|
2735
|
+
"msg": "Oracle authority mismatch"
|
|
2736
|
+
},
|
|
2737
|
+
{
|
|
2738
|
+
"code": 6027,
|
|
2739
|
+
"name": "SessionExpired",
|
|
2740
|
+
"msg": "Session delegation has expired"
|
|
2741
|
+
},
|
|
2742
|
+
{
|
|
2743
|
+
"code": 6028,
|
|
2744
|
+
"name": "TimingOverrideOutOfBounds",
|
|
2745
|
+
"msg": "Timing override value outside allowed bounds"
|
|
2746
|
+
},
|
|
2747
|
+
{
|
|
2748
|
+
"code": 6029,
|
|
2749
|
+
"name": "InvalidIdentity",
|
|
2750
|
+
"msg": "Identity hash must not be zero"
|
|
2751
|
+
},
|
|
2752
|
+
{
|
|
2753
|
+
"code": 6030,
|
|
2754
|
+
"name": "InvalidVerificationHash",
|
|
2755
|
+
"msg": "Verification hash must not be zero"
|
|
2756
|
+
},
|
|
2757
|
+
{
|
|
2758
|
+
"code": 6031,
|
|
2759
|
+
"name": "SwitchboardFeedMismatch",
|
|
2760
|
+
"msg": "Switchboard feed account does not match the configured feed"
|
|
2761
|
+
},
|
|
2762
|
+
{
|
|
2763
|
+
"code": 6032,
|
|
2764
|
+
"name": "SwitchboardParseError",
|
|
2765
|
+
"msg": "Failed to parse Switchboard feed account data"
|
|
2766
|
+
},
|
|
2767
|
+
{
|
|
2768
|
+
"code": 6033,
|
|
2769
|
+
"name": "SwitchboardScoreMismatch",
|
|
2770
|
+
"msg": "Switchboard feed value does not match the provided composite score"
|
|
2771
|
+
},
|
|
2772
|
+
{
|
|
2773
|
+
"code": 6034,
|
|
2774
|
+
"name": "SwitchboardInvalidValue",
|
|
2775
|
+
"msg": "Switchboard feed value is negative or zero"
|
|
2776
|
+
},
|
|
2777
|
+
{
|
|
2778
|
+
"code": 6035,
|
|
2779
|
+
"name": "SwitchboardFeedNotConfigured",
|
|
2780
|
+
"msg": "Switchboard feed not configured in GlobalState"
|
|
2781
|
+
},
|
|
2782
|
+
{
|
|
2783
|
+
"code": 6036,
|
|
2784
|
+
"name": "EscrowBelowMinimumRetired",
|
|
2785
|
+
"msg": "(retired 2026-05-07; see ShillbotError comment) MIN_ESCROW gate removed"
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
"code": 6037,
|
|
2789
|
+
"name": "RateLimitExceeded",
|
|
2790
|
+
"msg": "Client exceeded MAX_TASKS_PER_RATE_WINDOW within RATE_LIMIT_WINDOW_SECONDS"
|
|
2791
|
+
},
|
|
2792
|
+
{
|
|
2793
|
+
"code": 6038,
|
|
2794
|
+
"name": "AgentStateDiscriminatorMismatch",
|
|
2795
|
+
"msg": "AgentState account discriminator does not match — refusing to migrate"
|
|
2796
|
+
},
|
|
2797
|
+
{
|
|
2798
|
+
"code": 6039,
|
|
2799
|
+
"name": "AgentStateUnsupportedSize",
|
|
2800
|
+
"msg": "AgentState account size is unsupported by migrate_agent_state (expected legacy 41 or current 90)"
|
|
2801
|
+
},
|
|
2802
|
+
{
|
|
2803
|
+
"code": 6040,
|
|
2804
|
+
"name": "AgentStateAgentMismatch",
|
|
2805
|
+
"msg": "AgentState account agent pubkey does not match the signer"
|
|
2806
|
+
},
|
|
2807
|
+
{
|
|
2808
|
+
"code": 6041,
|
|
2809
|
+
"name": "MalformedSlotHashes",
|
|
2810
|
+
"msg": "SlotHashes sysvar data is malformed (less than 24 bytes)"
|
|
2811
|
+
},
|
|
2812
|
+
{
|
|
2813
|
+
"code": 6042,
|
|
2814
|
+
"name": "InvalidParameter",
|
|
2815
|
+
"msg": "Instruction parameter is outside its allowed range or is zero where positive is required"
|
|
2816
|
+
},
|
|
2817
|
+
{
|
|
2818
|
+
"code": 6043,
|
|
2819
|
+
"name": "ZeroPubkey",
|
|
2820
|
+
"msg": "Pubkey parameter must not be the zero pubkey"
|
|
2821
|
+
},
|
|
2822
|
+
{
|
|
2823
|
+
"code": 6044,
|
|
2824
|
+
"name": "NoActiveClaim",
|
|
2825
|
+
"msg": "Operation requires the agent to have at least one active claim"
|
|
2826
|
+
},
|
|
2827
|
+
{
|
|
2828
|
+
"code": 6045,
|
|
2829
|
+
"name": "AgentStateHasActiveClaims",
|
|
2830
|
+
"msg": "AgentState cannot be closed while it has active claims"
|
|
2831
|
+
},
|
|
2832
|
+
{
|
|
2833
|
+
"code": 6046,
|
|
2834
|
+
"name": "PayoutRouteLocked",
|
|
2835
|
+
"msg": "Payout route is already set and cannot be changed (one-shot, set early and locked)"
|
|
2836
|
+
},
|
|
2837
|
+
{
|
|
2838
|
+
"code": 6047,
|
|
2839
|
+
"name": "InvalidPayoutTarget",
|
|
2840
|
+
"msg": "Payout route target is invalid (must not be zero, the task PDA, or the client)"
|
|
2841
|
+
},
|
|
2842
|
+
{
|
|
2843
|
+
"code": 6048,
|
|
2844
|
+
"name": "InvalidVerificationKind",
|
|
2845
|
+
"msg": "Unknown verification kind (append-only: 0 = OracleMetrics, 1 = DeterministicAttested)"
|
|
2846
|
+
},
|
|
2847
|
+
{
|
|
2848
|
+
"code": 6049,
|
|
2849
|
+
"name": "VerificationKindMismatch",
|
|
2850
|
+
"msg": "Task's verification kind does not admit this verify instruction"
|
|
2851
|
+
},
|
|
2852
|
+
{
|
|
2853
|
+
"code": 6050,
|
|
2854
|
+
"name": "AttestedScoreNotBinary",
|
|
2855
|
+
"msg": "Attested score must be exactly 0 or MAX_SCORE (binary verification)"
|
|
2856
|
+
},
|
|
2857
|
+
{
|
|
2858
|
+
"code": 6051,
|
|
2859
|
+
"name": "QualityThresholdTooHighForBinary",
|
|
2860
|
+
"msg": "quality_threshold == MAX_SCORE would pay 0 for a passing binary score — fix params"
|
|
2861
|
+
},
|
|
2862
|
+
{
|
|
2863
|
+
"code": 6052,
|
|
2864
|
+
"name": "ArmsLengthViolation",
|
|
2865
|
+
"msg": "Attester must be arms-length from the task agent"
|
|
2866
|
+
},
|
|
2867
|
+
{
|
|
2868
|
+
"code": 6053,
|
|
2869
|
+
"name": "SelfClaimForbidden",
|
|
2870
|
+
"msg": "Deterministic tasks reject self-claims (agent must not be the client)"
|
|
2871
|
+
},
|
|
2872
|
+
{
|
|
2873
|
+
"code": 6054,
|
|
2874
|
+
"name": "DisputeWindowDisabled",
|
|
2875
|
+
"msg": "Dispute default-resolution is disabled (dispute_resolution_window_seconds == 0)"
|
|
2876
|
+
},
|
|
2877
|
+
{
|
|
2878
|
+
"code": 6055,
|
|
2879
|
+
"name": "DisputeWindowStillOpen",
|
|
2880
|
+
"msg": "Dispute resolution window still open — authority resolve_challenge only"
|
|
2881
|
+
},
|
|
2882
|
+
{
|
|
2883
|
+
"code": 6056,
|
|
2884
|
+
"name": "InvalidAccountOwner",
|
|
2885
|
+
"msg": "Account is not owned by this program"
|
|
2886
|
+
}
|
|
2887
|
+
],
|
|
2888
|
+
"types": [
|
|
2889
|
+
{
|
|
2890
|
+
"name": "AgentState",
|
|
2891
|
+
"docs": [
|
|
2892
|
+
"Per-agent PDA that tracks the number of currently claimed (but not yet submitted)",
|
|
2893
|
+
"tasks. Used to enforce the concurrent claim limit on-chain without relying on",
|
|
2894
|
+
"remaining_accounts, which callers can omit to bypass the check.",
|
|
2895
|
+
"",
|
|
2896
|
+
"Seeds: `[\"agent_state\", agent_pubkey]`",
|
|
2897
|
+
"",
|
|
2898
|
+
"**Phase 1 reputation counters** (added 2026-05-02 from previously reserved",
|
|
2899
|
+
"space): `total_score_sum`, `total_tasks_claimed`, and `total_challenges_lost`",
|
|
2900
|
+
"are the on-chain inputs to the `agent_profile` MCP tool's derived metrics:",
|
|
2901
|
+
"",
|
|
2902
|
+
"average_score = total_score_sum / total_completed",
|
|
2903
|
+
"completion_rate = total_completed / total_tasks_claimed",
|
|
2904
|
+
"dispute_rate = total_challenges_lost / total_completed",
|
|
2905
|
+
"",
|
|
2906
|
+
"**Migration safety:** the new fields were carved out of the front of the",
|
|
2907
|
+
"previous `_reserved: [u8; 32]` block. Existing on-chain accounts had those",
|
|
2908
|
+
"24 bytes zero-initialized, so reading them as `u64`s yields 0 — the correct",
|
|
2909
|
+
"initial value for each counter. Total `SPACE` is unchanged at 90 bytes, so",
|
|
2910
|
+
"no reallocation is required.",
|
|
2911
|
+
"",
|
|
2912
|
+
"**Counter semantics:**",
|
|
2913
|
+
"- `total_completed` and `total_score_sum` increment only when a task",
|
|
2914
|
+
"finalizes with `payment_amount > 0` (i.e., score >= quality_threshold).",
|
|
2915
|
+
"This preserves the existing pre-#12 `total_completed` behavior — a",
|
|
2916
|
+
"below-threshold finalize is a completed task but doesn't count toward",
|
|
2917
|
+
"the agent's reputation metrics.",
|
|
2918
|
+
"- `total_tasks_claimed` increments on every `claim_task` call, regardless",
|
|
2919
|
+
"of the eventual outcome (expire, submit, finalize, dispute). The",
|
|
2920
|
+
"completion_rate denominator therefore captures \"of all tasks they ever",
|
|
2921
|
+
"started, what fraction did they finish above threshold.\"",
|
|
2922
|
+
"- `total_challenges_lost` increments only on `resolve_challenge` with",
|
|
2923
|
+
"`challenger_won == true`. Updates require the caller to pass AgentState",
|
|
2924
|
+
"as a remaining_account (same optional pattern as `finalize_task` —",
|
|
2925
|
+
"if omitted, the counter doesn't update but the resolution still runs)."
|
|
2926
|
+
],
|
|
2927
|
+
"type": {
|
|
2928
|
+
"kind": "struct",
|
|
2929
|
+
"fields": [
|
|
2930
|
+
{
|
|
2931
|
+
"name": "agent",
|
|
2932
|
+
"docs": [
|
|
2933
|
+
"The agent this state belongs to."
|
|
2934
|
+
],
|
|
2935
|
+
"type": "pubkey"
|
|
2936
|
+
},
|
|
2937
|
+
{
|
|
2938
|
+
"name": "claimed_count",
|
|
2939
|
+
"docs": [
|
|
2940
|
+
"Number of tasks currently in Claimed state for this agent."
|
|
2941
|
+
],
|
|
2942
|
+
"type": "u8"
|
|
2943
|
+
},
|
|
2944
|
+
{
|
|
2945
|
+
"name": "total_completed",
|
|
2946
|
+
"docs": [
|
|
2947
|
+
"Total number of tasks this agent has completed (finalized or resolved in their favor)."
|
|
2948
|
+
],
|
|
2949
|
+
"type": "u64"
|
|
2950
|
+
},
|
|
2951
|
+
{
|
|
2952
|
+
"name": "total_earned",
|
|
2953
|
+
"docs": [
|
|
2954
|
+
"Total lamports earned by this agent across all tasks."
|
|
2955
|
+
],
|
|
2956
|
+
"type": "u64"
|
|
2957
|
+
},
|
|
2958
|
+
{
|
|
2959
|
+
"name": "total_score_sum",
|
|
2960
|
+
"docs": [
|
|
2961
|
+
"Running sum of composite scores from above-threshold finalized tasks.",
|
|
2962
|
+
"Combined with `total_completed` to derive `average_score` off-chain."
|
|
2963
|
+
],
|
|
2964
|
+
"type": "u64"
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
"name": "total_tasks_claimed",
|
|
2968
|
+
"docs": [
|
|
2969
|
+
"Total `claim_task` calls (numerator's denominator for `completion_rate`)."
|
|
2970
|
+
],
|
|
2971
|
+
"type": "u64"
|
|
2972
|
+
},
|
|
2973
|
+
{
|
|
2974
|
+
"name": "total_challenges_lost",
|
|
2975
|
+
"docs": [
|
|
2976
|
+
"Total challenges this agent has lost (basis for `dispute_rate`)."
|
|
2977
|
+
],
|
|
2978
|
+
"type": "u64"
|
|
2979
|
+
},
|
|
2980
|
+
{
|
|
2981
|
+
"name": "_reserved",
|
|
2982
|
+
"docs": [
|
|
2983
|
+
"Reserved space for future fields without reallocation. Reduced from",
|
|
2984
|
+
"32 to 8 bytes when the three counters above were claimed."
|
|
2985
|
+
],
|
|
2986
|
+
"type": {
|
|
2987
|
+
"array": [
|
|
2988
|
+
"u8",
|
|
2989
|
+
8
|
|
2990
|
+
]
|
|
2991
|
+
}
|
|
2992
|
+
},
|
|
2993
|
+
{
|
|
2994
|
+
"name": "bump",
|
|
2995
|
+
"type": "u8"
|
|
2996
|
+
}
|
|
2997
|
+
]
|
|
2998
|
+
}
|
|
2999
|
+
},
|
|
3000
|
+
{
|
|
3001
|
+
"name": "AgentStateClosed",
|
|
3002
|
+
"type": {
|
|
3003
|
+
"kind": "struct",
|
|
3004
|
+
"fields": [
|
|
3005
|
+
{
|
|
3006
|
+
"name": "agent",
|
|
3007
|
+
"type": "pubkey"
|
|
3008
|
+
}
|
|
3009
|
+
]
|
|
3010
|
+
}
|
|
3011
|
+
},
|
|
3012
|
+
{
|
|
3013
|
+
"name": "AuthorityTransferred",
|
|
3014
|
+
"type": {
|
|
3015
|
+
"kind": "struct",
|
|
3016
|
+
"fields": [
|
|
3017
|
+
{
|
|
3018
|
+
"name": "old_authority",
|
|
3019
|
+
"type": "pubkey"
|
|
3020
|
+
},
|
|
3021
|
+
{
|
|
3022
|
+
"name": "new_authority",
|
|
3023
|
+
"type": "pubkey"
|
|
3024
|
+
}
|
|
3025
|
+
]
|
|
3026
|
+
}
|
|
3027
|
+
},
|
|
3028
|
+
{
|
|
3029
|
+
"name": "Challenge",
|
|
3030
|
+
"type": {
|
|
3031
|
+
"kind": "struct",
|
|
3032
|
+
"fields": [
|
|
3033
|
+
{
|
|
3034
|
+
"name": "task_id",
|
|
3035
|
+
"type": "u64"
|
|
3036
|
+
},
|
|
3037
|
+
{
|
|
3038
|
+
"name": "challenger",
|
|
3039
|
+
"type": "pubkey"
|
|
3040
|
+
},
|
|
3041
|
+
{
|
|
3042
|
+
"name": "bond_lamports",
|
|
3043
|
+
"type": "u64"
|
|
3044
|
+
},
|
|
3045
|
+
{
|
|
3046
|
+
"name": "is_client_challenge",
|
|
3047
|
+
"docs": [
|
|
3048
|
+
"True if challenger is the task's client."
|
|
3049
|
+
],
|
|
3050
|
+
"type": "bool"
|
|
3051
|
+
},
|
|
3052
|
+
{
|
|
3053
|
+
"name": "created_at",
|
|
3054
|
+
"type": "i64"
|
|
3055
|
+
},
|
|
3056
|
+
{
|
|
3057
|
+
"name": "resolved",
|
|
3058
|
+
"type": "bool"
|
|
3059
|
+
},
|
|
3060
|
+
{
|
|
3061
|
+
"name": "challenger_won",
|
|
3062
|
+
"type": "bool"
|
|
3063
|
+
},
|
|
3064
|
+
{
|
|
3065
|
+
"name": "_reserved",
|
|
3066
|
+
"docs": [
|
|
3067
|
+
"Reserved space for future fields without reallocation."
|
|
3068
|
+
],
|
|
3069
|
+
"type": {
|
|
3070
|
+
"array": [
|
|
3071
|
+
"u8",
|
|
3072
|
+
32
|
|
3073
|
+
]
|
|
3074
|
+
}
|
|
3075
|
+
},
|
|
3076
|
+
{
|
|
3077
|
+
"name": "bump",
|
|
3078
|
+
"type": "u8"
|
|
3079
|
+
}
|
|
3080
|
+
]
|
|
3081
|
+
}
|
|
3082
|
+
},
|
|
3083
|
+
{
|
|
3084
|
+
"name": "ChallengeDefaultResolved",
|
|
3085
|
+
"docs": [
|
|
3086
|
+
"Emitted when a Disputed task is default-resolved permissionlessly after",
|
|
3087
|
+
"the dispute-resolution window elapsed with no authority adjudication.",
|
|
3088
|
+
"The pinned payment executed (agent-favoring) and the bond returned to",
|
|
3089
|
+
"the challenger un-slashed."
|
|
3090
|
+
],
|
|
3091
|
+
"type": {
|
|
3092
|
+
"kind": "struct",
|
|
3093
|
+
"fields": [
|
|
3094
|
+
{
|
|
3095
|
+
"name": "task_id",
|
|
3096
|
+
"type": "u64"
|
|
3097
|
+
},
|
|
3098
|
+
{
|
|
3099
|
+
"name": "payment_amount",
|
|
3100
|
+
"type": "u64"
|
|
3101
|
+
},
|
|
3102
|
+
{
|
|
3103
|
+
"name": "fee_amount",
|
|
3104
|
+
"type": "u64"
|
|
3105
|
+
},
|
|
3106
|
+
{
|
|
3107
|
+
"name": "bond_returned",
|
|
3108
|
+
"type": "u64"
|
|
3109
|
+
}
|
|
3110
|
+
]
|
|
3111
|
+
}
|
|
3112
|
+
},
|
|
3113
|
+
{
|
|
3114
|
+
"name": "ChallengeResolved",
|
|
3115
|
+
"type": {
|
|
3116
|
+
"kind": "struct",
|
|
3117
|
+
"fields": [
|
|
3118
|
+
{
|
|
3119
|
+
"name": "task_id",
|
|
3120
|
+
"type": "u64"
|
|
3121
|
+
},
|
|
3122
|
+
{
|
|
3123
|
+
"name": "challenger_won",
|
|
3124
|
+
"type": "bool"
|
|
3125
|
+
},
|
|
3126
|
+
{
|
|
3127
|
+
"name": "bond_slashed",
|
|
3128
|
+
"type": "u64"
|
|
3129
|
+
}
|
|
3130
|
+
]
|
|
3131
|
+
}
|
|
3132
|
+
},
|
|
3133
|
+
{
|
|
3134
|
+
"name": "ClientState",
|
|
3135
|
+
"docs": [
|
|
3136
|
+
"Per-client PDA used by `create_task` to enforce a per-client",
|
|
3137
|
+
"task-creation rate limit (Phase 3 blocker #2).",
|
|
3138
|
+
"",
|
|
3139
|
+
"Sliding window: at each `create_task` call, the program compares the",
|
|
3140
|
+
"current `unix_timestamp` against `window_start_ts`. If the current",
|
|
3141
|
+
"time is within the window",
|
|
3142
|
+
"(`now - window_start_ts < RATE_LIMIT_WINDOW_SECONDS`), the existing",
|
|
3143
|
+
"counter is incremented and checked against",
|
|
3144
|
+
"`MAX_TASKS_PER_RATE_WINDOW`. Otherwise the window is reset",
|
|
3145
|
+
"(start_ts → now, count → 1).",
|
|
3146
|
+
"",
|
|
3147
|
+
"Created via `init_if_needed` so a client's first `create_task` pays",
|
|
3148
|
+
"the rent (idempotent across subsequent calls). Anchor's",
|
|
3149
|
+
"`init_if_needed` is allowed for this PDA because it holds no escrow",
|
|
3150
|
+
"funds — only counters and a timestamp — so a PDA-resurrection",
|
|
3151
|
+
"attack on a closed client account would gain the attacker nothing.",
|
|
3152
|
+
"",
|
|
3153
|
+
"Seeds: `[\"client_state\", client_pubkey]`"
|
|
3154
|
+
],
|
|
3155
|
+
"type": {
|
|
3156
|
+
"kind": "struct",
|
|
3157
|
+
"fields": [
|
|
3158
|
+
{
|
|
3159
|
+
"name": "client",
|
|
3160
|
+
"docs": [
|
|
3161
|
+
"The wallet pubkey this state tracks."
|
|
3162
|
+
],
|
|
3163
|
+
"type": "pubkey"
|
|
3164
|
+
},
|
|
3165
|
+
{
|
|
3166
|
+
"name": "window_start_ts",
|
|
3167
|
+
"docs": [
|
|
3168
|
+
"Unix timestamp (seconds) marking the start of the current",
|
|
3169
|
+
"rate-limit window. Set on first task creation, reset every time",
|
|
3170
|
+
"the window expires."
|
|
3171
|
+
],
|
|
3172
|
+
"type": "i64"
|
|
3173
|
+
},
|
|
3174
|
+
{
|
|
3175
|
+
"name": "tasks_in_window",
|
|
3176
|
+
"docs": [
|
|
3177
|
+
"Number of `create_task` calls landed in the current window.",
|
|
3178
|
+
"Capped by `crate::constants::MAX_TASKS_PER_RATE_WINDOW`."
|
|
3179
|
+
],
|
|
3180
|
+
"type": "u32"
|
|
3181
|
+
},
|
|
3182
|
+
{
|
|
3183
|
+
"name": "total_tasks_created",
|
|
3184
|
+
"docs": [
|
|
3185
|
+
"Total tasks ever created by this client. Monotonic counter",
|
|
3186
|
+
"across all windows. Useful for off-chain analytics + future",
|
|
3187
|
+
"reputation signals; not load-bearing for the rate limit itself."
|
|
3188
|
+
],
|
|
3189
|
+
"type": "u64"
|
|
3190
|
+
},
|
|
3191
|
+
{
|
|
3192
|
+
"name": "_reserved",
|
|
3193
|
+
"docs": [
|
|
3194
|
+
"Reserved space for future fields without reallocation."
|
|
3195
|
+
],
|
|
3196
|
+
"type": {
|
|
3197
|
+
"array": [
|
|
3198
|
+
"u8",
|
|
3199
|
+
32
|
|
3200
|
+
]
|
|
3201
|
+
}
|
|
3202
|
+
},
|
|
3203
|
+
{
|
|
3204
|
+
"name": "bump",
|
|
3205
|
+
"type": "u8"
|
|
3206
|
+
}
|
|
3207
|
+
]
|
|
3208
|
+
}
|
|
3209
|
+
},
|
|
3210
|
+
{
|
|
3211
|
+
"name": "EmergencyReturn",
|
|
3212
|
+
"type": {
|
|
3213
|
+
"kind": "struct",
|
|
3214
|
+
"fields": [
|
|
3215
|
+
{
|
|
3216
|
+
"name": "task_ids",
|
|
3217
|
+
"type": {
|
|
3218
|
+
"vec": "u64"
|
|
3219
|
+
}
|
|
3220
|
+
}
|
|
3221
|
+
]
|
|
3222
|
+
}
|
|
3223
|
+
},
|
|
3224
|
+
{
|
|
3225
|
+
"name": "GlobalState",
|
|
3226
|
+
"type": {
|
|
3227
|
+
"kind": "struct",
|
|
3228
|
+
"fields": [
|
|
3229
|
+
{
|
|
3230
|
+
"name": "task_counter",
|
|
3231
|
+
"docs": [
|
|
3232
|
+
"Monotonic counter incremented on each create_task."
|
|
3233
|
+
],
|
|
3234
|
+
"type": "u64"
|
|
3235
|
+
},
|
|
3236
|
+
{
|
|
3237
|
+
"name": "authority",
|
|
3238
|
+
"docs": [
|
|
3239
|
+
"Single upgrade authority key (EOA on both devnet and mainnet for v1)."
|
|
3240
|
+
],
|
|
3241
|
+
"type": "pubkey"
|
|
3242
|
+
},
|
|
3243
|
+
{
|
|
3244
|
+
"name": "treasury",
|
|
3245
|
+
"docs": [
|
|
3246
|
+
"Treasury account for protocol fee collection."
|
|
3247
|
+
],
|
|
3248
|
+
"type": "pubkey"
|
|
3249
|
+
},
|
|
3250
|
+
{
|
|
3251
|
+
"name": "protocol_fee_bps",
|
|
3252
|
+
"docs": [
|
|
3253
|
+
"Protocol fee in basis points (100 = 1%)."
|
|
3254
|
+
],
|
|
3255
|
+
"type": "u16"
|
|
3256
|
+
},
|
|
3257
|
+
{
|
|
3258
|
+
"name": "quality_threshold",
|
|
3259
|
+
"docs": [
|
|
3260
|
+
"Minimum composite score for payment (fixed-point, max = MAX_SCORE)."
|
|
3261
|
+
],
|
|
3262
|
+
"type": "u64"
|
|
3263
|
+
},
|
|
3264
|
+
{
|
|
3265
|
+
"name": "challenge_window_seconds",
|
|
3266
|
+
"docs": [
|
|
3267
|
+
"Duration of the challenge window after verification (seconds)."
|
|
3268
|
+
],
|
|
3269
|
+
"type": "i64"
|
|
3270
|
+
},
|
|
3271
|
+
{
|
|
3272
|
+
"name": "verification_timeout_seconds",
|
|
3273
|
+
"docs": [
|
|
3274
|
+
"Maximum time allowed for oracle verification after submission (seconds)."
|
|
3275
|
+
],
|
|
3276
|
+
"type": "i64"
|
|
3277
|
+
},
|
|
3278
|
+
{
|
|
3279
|
+
"name": "attestation_delay_seconds",
|
|
3280
|
+
"docs": [
|
|
3281
|
+
"Minimum delay between submission and attestation (seconds)."
|
|
3282
|
+
],
|
|
3283
|
+
"type": "i64"
|
|
3284
|
+
},
|
|
3285
|
+
{
|
|
3286
|
+
"name": "staleness_window_seconds",
|
|
3287
|
+
"docs": [
|
|
3288
|
+
"Maximum age of oracle data relative to submission (seconds)."
|
|
3289
|
+
],
|
|
3290
|
+
"type": "i64"
|
|
3291
|
+
},
|
|
3292
|
+
{
|
|
3293
|
+
"name": "max_concurrent_claims",
|
|
3294
|
+
"docs": [
|
|
3295
|
+
"Maximum number of tasks an agent can have in Claimed state simultaneously."
|
|
3296
|
+
],
|
|
3297
|
+
"type": "u8"
|
|
3298
|
+
},
|
|
3299
|
+
{
|
|
3300
|
+
"name": "challenge_bond_multiplier_bps",
|
|
3301
|
+
"docs": [
|
|
3302
|
+
"Challenge bond multiplier — raw u8 multiplier on the task's escrow,",
|
|
3303
|
+
"stored in a u16 slot for forward compat.",
|
|
3304
|
+
"",
|
|
3305
|
+
"**Naming caveat:** the `_bps` suffix is misleading. Despite the",
|
|
3306
|
+
"name, this is **NOT** basis points (1bp = 0.01%). It's a raw",
|
|
3307
|
+
"multiplier: `2` means 2x escrow, `10` means 10x escrow, NOT",
|
|
3308
|
+
"`200` for 2% or `20000` for 200%. The wire format is u16 only",
|
|
3309
|
+
"because the original design considered bps semantics; the",
|
|
3310
|
+
"final spec uses `MIN_CHALLENGE_BOND_MULTIPLIER..=MAX` which",
|
|
3311
|
+
"are u8 values [2, 10]. `update_params` accepts `u8` and casts",
|
|
3312
|
+
"to u16 on write. `challenge_task` reads this and multiplies",
|
|
3313
|
+
"against `task.escrow_lamports` directly. The field is NOT",
|
|
3314
|
+
"renamed because that's a wire-format change requiring an",
|
|
3315
|
+
"account migration; the `_bps` suffix stays for binary compat."
|
|
3316
|
+
],
|
|
3317
|
+
"type": "u16"
|
|
3318
|
+
},
|
|
3319
|
+
{
|
|
3320
|
+
"name": "bond_slash_treasury_bps",
|
|
3321
|
+
"docs": [
|
|
3322
|
+
"Portion of slashed bond sent to treasury in basis points."
|
|
3323
|
+
],
|
|
3324
|
+
"type": "u16"
|
|
3325
|
+
},
|
|
3326
|
+
{
|
|
3327
|
+
"name": "oracle_authority",
|
|
3328
|
+
"docs": [
|
|
3329
|
+
"Authority allowed to submit oracle attestations."
|
|
3330
|
+
],
|
|
3331
|
+
"type": "pubkey"
|
|
3332
|
+
},
|
|
3333
|
+
{
|
|
3334
|
+
"name": "paused",
|
|
3335
|
+
"docs": [
|
|
3336
|
+
"Whether the entire protocol is paused."
|
|
3337
|
+
],
|
|
3338
|
+
"type": "bool"
|
|
3339
|
+
},
|
|
3340
|
+
{
|
|
3341
|
+
"name": "paused_platforms",
|
|
3342
|
+
"docs": [
|
|
3343
|
+
"Bitmask of paused platforms (bit N = PlatformType with value N)."
|
|
3344
|
+
],
|
|
3345
|
+
"type": "u16"
|
|
3346
|
+
},
|
|
3347
|
+
{
|
|
3348
|
+
"name": "switchboard_feed",
|
|
3349
|
+
"docs": [
|
|
3350
|
+
"Switchboard pull feed account that provides oracle-attested",
|
|
3351
|
+
"composite scores. Read by `verify_task` to validate the feed",
|
|
3352
|
+
"passed in by the caller. Different per-network (mainnet",
|
|
3353
|
+
"`En9CN…T6qQ`, devnet `BSSv19i…`); rotated via the multisig if",
|
|
3354
|
+
"needed (re-adding `set_switchboard_feed` is a follow-up). The",
|
|
3355
|
+
"2026-05-01 lock-down to a compile-time const was reverted on",
|
|
3356
|
+
"2026-05-08 because the const shipped as a placeholder and the",
|
|
3357
|
+
"load-bearing TODO was missed — see `verify_task.rs` comment."
|
|
3358
|
+
],
|
|
3359
|
+
"type": "pubkey"
|
|
3360
|
+
},
|
|
3361
|
+
{
|
|
3362
|
+
"name": "min_escrow_lamports",
|
|
3363
|
+
"docs": [
|
|
3364
|
+
"Minimum task escrow in lamports (Phase 3 blocker #2 — D2).",
|
|
3365
|
+
"Carved from `_reserved` 2026-05-07. Pre-D2 was a compile-time",
|
|
3366
|
+
"**Vestigial slot — retired 2026-05-07.** Was the per-task",
|
|
3367
|
+
"minimum escrow floor for sybil deterrence (Phase 3 blocker #2).",
|
|
3368
|
+
"Removed because the friction on legitimate small clients",
|
|
3369
|
+
"exceeded the benefit at solo + pre-PMF scale. The right",
|
|
3370
|
+
"end-state defense is the EigenTrust reputation graph (Phase 2",
|
|
3371
|
+
"in `swarm-tips/CLAUDE.md`). The slot is preserved here so",
|
|
3372
|
+
"existing on-chain 227-byte GlobalState accounts continue to",
|
|
3373
|
+
"deserialize unchanged; no instruction reads or writes it.",
|
|
3374
|
+
"`initialize` zero-fills it; future GlobalState v2 may rename",
|
|
3375
|
+
"to `_reserved_min_escrow`."
|
|
3376
|
+
],
|
|
3377
|
+
"type": "u64"
|
|
3378
|
+
},
|
|
3379
|
+
{
|
|
3380
|
+
"name": "rate_limit_window_seconds",
|
|
3381
|
+
"docs": [
|
|
3382
|
+
"Per-client task-creation rate-limit window length (D3).",
|
|
3383
|
+
"Same migration story as `min_escrow_lamports`: was const,",
|
|
3384
|
+
"now governance with bounds."
|
|
3385
|
+
],
|
|
3386
|
+
"type": "i64"
|
|
3387
|
+
},
|
|
3388
|
+
{
|
|
3389
|
+
"name": "max_tasks_per_rate_window",
|
|
3390
|
+
"docs": [
|
|
3391
|
+
"Per-client task-creation rate-limit count within the window",
|
|
3392
|
+
"(D3). Same migration story."
|
|
3393
|
+
],
|
|
3394
|
+
"type": "u32"
|
|
3395
|
+
},
|
|
3396
|
+
{
|
|
3397
|
+
"name": "dispute_resolution_window_seconds",
|
|
3398
|
+
"docs": [
|
|
3399
|
+
"Dispute-resolution liveness window (2026-07-07, carved from",
|
|
3400
|
+
"`_reserved` — bytewise-compatible because the bytes were zero).",
|
|
3401
|
+
"Seconds after `Challenge.created_at` at which the permissionless",
|
|
3402
|
+
"`resolve_challenge_default` arms on a Disputed task, executing the",
|
|
3403
|
+
"pinned payment and returning the bond un-slashed. `0` = disabled",
|
|
3404
|
+
"(legacy behavior: only the authority's `resolve_challenge` can",
|
|
3405
|
+
"unlock a dispute — the exact liveness hole this field closes).",
|
|
3406
|
+
"Existing deployments read 0 until `update_params` sets it;",
|
|
3407
|
+
"`initialize` defaults new deployments to 7 days."
|
|
3408
|
+
],
|
|
3409
|
+
"type": "i64"
|
|
3410
|
+
},
|
|
3411
|
+
{
|
|
3412
|
+
"name": "_reserved",
|
|
3413
|
+
"docs": [
|
|
3414
|
+
"Reserved space for future fields without reallocation.",
|
|
3415
|
+
"32 → 12 by D2/D3 → 4 by the 2026-07-07",
|
|
3416
|
+
"`dispute_resolution_window_seconds` carve."
|
|
3417
|
+
],
|
|
3418
|
+
"type": {
|
|
3419
|
+
"array": [
|
|
3420
|
+
"u8",
|
|
3421
|
+
4
|
|
3422
|
+
]
|
|
3423
|
+
}
|
|
3424
|
+
},
|
|
3425
|
+
{
|
|
3426
|
+
"name": "bump",
|
|
3427
|
+
"type": "u8"
|
|
3428
|
+
}
|
|
3429
|
+
]
|
|
3430
|
+
}
|
|
3431
|
+
},
|
|
3432
|
+
{
|
|
3433
|
+
"name": "IdentityRegistered",
|
|
3434
|
+
"type": {
|
|
3435
|
+
"kind": "struct",
|
|
3436
|
+
"fields": [
|
|
3437
|
+
{
|
|
3438
|
+
"name": "agent",
|
|
3439
|
+
"type": "pubkey"
|
|
3440
|
+
},
|
|
3441
|
+
{
|
|
3442
|
+
"name": "platform",
|
|
3443
|
+
"type": "u8"
|
|
3444
|
+
},
|
|
3445
|
+
{
|
|
3446
|
+
"name": "identity_hash",
|
|
3447
|
+
"type": {
|
|
3448
|
+
"array": [
|
|
3449
|
+
"u8",
|
|
3450
|
+
32
|
|
3451
|
+
]
|
|
3452
|
+
}
|
|
3453
|
+
}
|
|
3454
|
+
]
|
|
3455
|
+
}
|
|
3456
|
+
},
|
|
3457
|
+
{
|
|
3458
|
+
"name": "IdentityRevoked",
|
|
3459
|
+
"type": {
|
|
3460
|
+
"kind": "struct",
|
|
3461
|
+
"fields": [
|
|
3462
|
+
{
|
|
3463
|
+
"name": "agent",
|
|
3464
|
+
"type": "pubkey"
|
|
3465
|
+
},
|
|
3466
|
+
{
|
|
3467
|
+
"name": "platform",
|
|
3468
|
+
"type": "u8"
|
|
3469
|
+
}
|
|
3470
|
+
]
|
|
3471
|
+
}
|
|
3472
|
+
},
|
|
3473
|
+
{
|
|
3474
|
+
"name": "OracleAuthorityUpdated",
|
|
3475
|
+
"type": {
|
|
3476
|
+
"kind": "struct",
|
|
3477
|
+
"fields": [
|
|
3478
|
+
{
|
|
3479
|
+
"name": "old_oracle_authority",
|
|
3480
|
+
"type": "pubkey"
|
|
3481
|
+
},
|
|
3482
|
+
{
|
|
3483
|
+
"name": "new_oracle_authority",
|
|
3484
|
+
"type": "pubkey"
|
|
3485
|
+
}
|
|
3486
|
+
]
|
|
3487
|
+
}
|
|
3488
|
+
},
|
|
3489
|
+
{
|
|
3490
|
+
"name": "ParamsUpdated",
|
|
3491
|
+
"type": {
|
|
3492
|
+
"kind": "struct",
|
|
3493
|
+
"fields": [
|
|
3494
|
+
{
|
|
3495
|
+
"name": "protocol_fee_bps",
|
|
3496
|
+
"type": "u16"
|
|
3497
|
+
},
|
|
3498
|
+
{
|
|
3499
|
+
"name": "quality_threshold",
|
|
3500
|
+
"type": "u64"
|
|
3501
|
+
}
|
|
3502
|
+
]
|
|
3503
|
+
}
|
|
3504
|
+
},
|
|
3505
|
+
{
|
|
3506
|
+
"name": "PayoutRouteSet",
|
|
3507
|
+
"docs": [
|
|
3508
|
+
"Emitted when the agent sets a payment-routing override (C2 —",
|
|
3509
|
+
"extension-credit). `finalize_task` will pay `payout_to` instead of the",
|
|
3510
|
+
"agent wallet; reputation is unaffected."
|
|
3511
|
+
],
|
|
3512
|
+
"type": {
|
|
3513
|
+
"kind": "struct",
|
|
3514
|
+
"fields": [
|
|
3515
|
+
{
|
|
3516
|
+
"name": "task_id",
|
|
3517
|
+
"type": "u64"
|
|
3518
|
+
},
|
|
3519
|
+
{
|
|
3520
|
+
"name": "agent",
|
|
3521
|
+
"type": "pubkey"
|
|
3522
|
+
},
|
|
3523
|
+
{
|
|
3524
|
+
"name": "payout_to",
|
|
3525
|
+
"type": "pubkey"
|
|
3526
|
+
}
|
|
3527
|
+
]
|
|
3528
|
+
}
|
|
3529
|
+
},
|
|
3530
|
+
{
|
|
3531
|
+
"name": "PlatformIdentity",
|
|
3532
|
+
"docs": [
|
|
3533
|
+
"On-chain binding between an agent wallet and a platform identity.",
|
|
3534
|
+
"PDA seeds: `[\"identity\", agent.key().as_ref(), &[platform]]`",
|
|
3535
|
+
"",
|
|
3536
|
+
"One identity per (agent, platform) pair. Agent must revoke before",
|
|
3537
|
+
"re-registering with a different platform user ID."
|
|
3538
|
+
],
|
|
3539
|
+
"type": {
|
|
3540
|
+
"kind": "struct",
|
|
3541
|
+
"fields": [
|
|
3542
|
+
{
|
|
3543
|
+
"name": "agent",
|
|
3544
|
+
"docs": [
|
|
3545
|
+
"The agent wallet that owns this identity."
|
|
3546
|
+
],
|
|
3547
|
+
"type": "pubkey"
|
|
3548
|
+
},
|
|
3549
|
+
{
|
|
3550
|
+
"name": "platform",
|
|
3551
|
+
"docs": [
|
|
3552
|
+
"Platform type (PlatformType discriminant)."
|
|
3553
|
+
],
|
|
3554
|
+
"type": "u8"
|
|
3555
|
+
},
|
|
3556
|
+
{
|
|
3557
|
+
"name": "identity_hash",
|
|
3558
|
+
"docs": [
|
|
3559
|
+
"SHA-256 hash of the platform user ID (e.g., X handle or user ID string).",
|
|
3560
|
+
"Hashed to save space — the verifier knows the plaintext and can verify the hash."
|
|
3561
|
+
],
|
|
3562
|
+
"type": {
|
|
3563
|
+
"array": [
|
|
3564
|
+
"u8",
|
|
3565
|
+
32
|
|
3566
|
+
]
|
|
3567
|
+
}
|
|
3568
|
+
},
|
|
3569
|
+
{
|
|
3570
|
+
"name": "registered_at",
|
|
3571
|
+
"docs": [
|
|
3572
|
+
"Unix timestamp of registration."
|
|
3573
|
+
],
|
|
3574
|
+
"type": "i64"
|
|
3575
|
+
},
|
|
3576
|
+
{
|
|
3577
|
+
"name": "bump",
|
|
3578
|
+
"type": "u8"
|
|
3579
|
+
}
|
|
3580
|
+
]
|
|
3581
|
+
}
|
|
3582
|
+
},
|
|
3583
|
+
{
|
|
3584
|
+
"name": "SessionCreated",
|
|
3585
|
+
"type": {
|
|
3586
|
+
"kind": "struct",
|
|
3587
|
+
"fields": [
|
|
3588
|
+
{
|
|
3589
|
+
"name": "agent",
|
|
3590
|
+
"type": "pubkey"
|
|
3591
|
+
},
|
|
3592
|
+
{
|
|
3593
|
+
"name": "delegate",
|
|
3594
|
+
"type": "pubkey"
|
|
3595
|
+
},
|
|
3596
|
+
{
|
|
3597
|
+
"name": "allowed_instructions",
|
|
3598
|
+
"type": "u8"
|
|
3599
|
+
}
|
|
3600
|
+
]
|
|
3601
|
+
}
|
|
3602
|
+
},
|
|
3603
|
+
{
|
|
3604
|
+
"name": "SessionDelegate",
|
|
3605
|
+
"type": {
|
|
3606
|
+
"kind": "struct",
|
|
3607
|
+
"fields": [
|
|
3608
|
+
{
|
|
3609
|
+
"name": "agent",
|
|
3610
|
+
"docs": [
|
|
3611
|
+
"The agent who delegated."
|
|
3612
|
+
],
|
|
3613
|
+
"type": "pubkey"
|
|
3614
|
+
},
|
|
3615
|
+
{
|
|
3616
|
+
"name": "delegate",
|
|
3617
|
+
"docs": [
|
|
3618
|
+
"The session key (MCP server holds this)."
|
|
3619
|
+
],
|
|
3620
|
+
"type": "pubkey"
|
|
3621
|
+
},
|
|
3622
|
+
{
|
|
3623
|
+
"name": "allowed_instructions",
|
|
3624
|
+
"docs": [
|
|
3625
|
+
"Bitmask: 0x01 = claim_task, 0x02 = submit_work."
|
|
3626
|
+
],
|
|
3627
|
+
"type": "u8"
|
|
3628
|
+
},
|
|
3629
|
+
{
|
|
3630
|
+
"name": "created_at",
|
|
3631
|
+
"type": "i64"
|
|
3632
|
+
},
|
|
3633
|
+
{
|
|
3634
|
+
"name": "expires_at",
|
|
3635
|
+
"docs": [
|
|
3636
|
+
"Unix timestamp when this session delegation expires (0 = no expiry)."
|
|
3637
|
+
],
|
|
3638
|
+
"type": "i64"
|
|
3639
|
+
},
|
|
3640
|
+
{
|
|
3641
|
+
"name": "_reserved",
|
|
3642
|
+
"docs": [
|
|
3643
|
+
"Reserved space for future fields without reallocation."
|
|
3644
|
+
],
|
|
3645
|
+
"type": {
|
|
3646
|
+
"array": [
|
|
3647
|
+
"u8",
|
|
3648
|
+
32
|
|
3649
|
+
]
|
|
3650
|
+
}
|
|
3651
|
+
},
|
|
3652
|
+
{
|
|
3653
|
+
"name": "bump",
|
|
3654
|
+
"type": "u8"
|
|
3655
|
+
}
|
|
3656
|
+
]
|
|
3657
|
+
}
|
|
3658
|
+
},
|
|
3659
|
+
{
|
|
3660
|
+
"name": "SessionRevoked",
|
|
3661
|
+
"type": {
|
|
3662
|
+
"kind": "struct",
|
|
3663
|
+
"fields": [
|
|
3664
|
+
{
|
|
3665
|
+
"name": "agent",
|
|
3666
|
+
"type": "pubkey"
|
|
3667
|
+
},
|
|
3668
|
+
{
|
|
3669
|
+
"name": "delegate",
|
|
3670
|
+
"type": "pubkey"
|
|
3671
|
+
}
|
|
3672
|
+
]
|
|
3673
|
+
}
|
|
3674
|
+
},
|
|
3675
|
+
{
|
|
3676
|
+
"name": "Task",
|
|
3677
|
+
"type": {
|
|
3678
|
+
"kind": "struct",
|
|
3679
|
+
"fields": [
|
|
3680
|
+
{
|
|
3681
|
+
"name": "task_id",
|
|
3682
|
+
"type": "u64"
|
|
3683
|
+
},
|
|
3684
|
+
{
|
|
3685
|
+
"name": "client",
|
|
3686
|
+
"type": "pubkey"
|
|
3687
|
+
},
|
|
3688
|
+
{
|
|
3689
|
+
"name": "agent",
|
|
3690
|
+
"docs": [
|
|
3691
|
+
"Zero-key until claimed."
|
|
3692
|
+
],
|
|
3693
|
+
"type": "pubkey"
|
|
3694
|
+
},
|
|
3695
|
+
{
|
|
3696
|
+
"name": "state",
|
|
3697
|
+
"type": {
|
|
3698
|
+
"defined": {
|
|
3699
|
+
"name": "TaskState"
|
|
3700
|
+
}
|
|
3701
|
+
}
|
|
3702
|
+
},
|
|
3703
|
+
{
|
|
3704
|
+
"name": "platform",
|
|
3705
|
+
"docs": [
|
|
3706
|
+
"Platform this task targets (PlatformType discriminant)."
|
|
3707
|
+
],
|
|
3708
|
+
"type": "u8"
|
|
3709
|
+
},
|
|
3710
|
+
{
|
|
3711
|
+
"name": "escrow_lamports",
|
|
3712
|
+
"docs": [
|
|
3713
|
+
"Client's escrowed payment (lamports)."
|
|
3714
|
+
],
|
|
3715
|
+
"type": "u64"
|
|
3716
|
+
},
|
|
3717
|
+
{
|
|
3718
|
+
"name": "content_hash",
|
|
3719
|
+
"docs": [
|
|
3720
|
+
"SHA-256 of the off-chain campaign brief."
|
|
3721
|
+
],
|
|
3722
|
+
"type": {
|
|
3723
|
+
"array": [
|
|
3724
|
+
"u8",
|
|
3725
|
+
32
|
|
3726
|
+
]
|
|
3727
|
+
}
|
|
3728
|
+
},
|
|
3729
|
+
{
|
|
3730
|
+
"name": "content_id_hash",
|
|
3731
|
+
"docs": [
|
|
3732
|
+
"SHA-256 of submitted content ID (zeroed until submitted)."
|
|
3733
|
+
],
|
|
3734
|
+
"type": {
|
|
3735
|
+
"array": [
|
|
3736
|
+
"u8",
|
|
3737
|
+
32
|
|
3738
|
+
]
|
|
3739
|
+
}
|
|
3740
|
+
},
|
|
3741
|
+
{
|
|
3742
|
+
"name": "task_nonce",
|
|
3743
|
+
"docs": [
|
|
3744
|
+
"Random nonce the agent must include in the content."
|
|
3745
|
+
],
|
|
3746
|
+
"type": {
|
|
3747
|
+
"array": [
|
|
3748
|
+
"u8",
|
|
3749
|
+
16
|
|
3750
|
+
]
|
|
3751
|
+
}
|
|
3752
|
+
},
|
|
3753
|
+
{
|
|
3754
|
+
"name": "composite_score",
|
|
3755
|
+
"docs": [
|
|
3756
|
+
"Fixed-point score from oracle attestation (0 until verified)."
|
|
3757
|
+
],
|
|
3758
|
+
"type": "u64"
|
|
3759
|
+
},
|
|
3760
|
+
{
|
|
3761
|
+
"name": "payment_amount",
|
|
3762
|
+
"docs": [
|
|
3763
|
+
"Computed payment amount (0 until verified)."
|
|
3764
|
+
],
|
|
3765
|
+
"type": "u64"
|
|
3766
|
+
},
|
|
3767
|
+
{
|
|
3768
|
+
"name": "fee_amount",
|
|
3769
|
+
"docs": [
|
|
3770
|
+
"Computed protocol fee amount (0 until verified). Stored at verification time",
|
|
3771
|
+
"so finalize_task and resolve_challenge use the fee that was in effect when",
|
|
3772
|
+
"the oracle attested, preventing parameter-change bricking (S-03)."
|
|
3773
|
+
],
|
|
3774
|
+
"type": "u64"
|
|
3775
|
+
},
|
|
3776
|
+
{
|
|
3777
|
+
"name": "deadline",
|
|
3778
|
+
"type": "i64"
|
|
3779
|
+
},
|
|
3780
|
+
{
|
|
3781
|
+
"name": "submit_margin",
|
|
3782
|
+
"docs": [
|
|
3783
|
+
"Seconds before deadline that submission must occur."
|
|
3784
|
+
],
|
|
3785
|
+
"type": "i64"
|
|
3786
|
+
},
|
|
3787
|
+
{
|
|
3788
|
+
"name": "claim_buffer",
|
|
3789
|
+
"docs": [
|
|
3790
|
+
"Minimum seconds remaining to claim."
|
|
3791
|
+
],
|
|
3792
|
+
"type": "i64"
|
|
3793
|
+
},
|
|
3794
|
+
{
|
|
3795
|
+
"name": "created_at",
|
|
3796
|
+
"type": "i64"
|
|
3797
|
+
},
|
|
3798
|
+
{
|
|
3799
|
+
"name": "submitted_at",
|
|
3800
|
+
"docs": [
|
|
3801
|
+
"0 until submitted."
|
|
3802
|
+
],
|
|
3803
|
+
"type": "i64"
|
|
3804
|
+
},
|
|
3805
|
+
{
|
|
3806
|
+
"name": "verified_at",
|
|
3807
|
+
"docs": [
|
|
3808
|
+
"0 until oracle attestation."
|
|
3809
|
+
],
|
|
3810
|
+
"type": "i64"
|
|
3811
|
+
},
|
|
3812
|
+
{
|
|
3813
|
+
"name": "challenge_deadline",
|
|
3814
|
+
"docs": [
|
|
3815
|
+
"0 until challenge window starts."
|
|
3816
|
+
],
|
|
3817
|
+
"type": "i64"
|
|
3818
|
+
},
|
|
3819
|
+
{
|
|
3820
|
+
"name": "attestation_delay_override",
|
|
3821
|
+
"docs": [
|
|
3822
|
+
"Per-task attestation delay override in seconds. 0 = use GlobalState default."
|
|
3823
|
+
],
|
|
3824
|
+
"type": "u32"
|
|
3825
|
+
},
|
|
3826
|
+
{
|
|
3827
|
+
"name": "challenge_window_override",
|
|
3828
|
+
"docs": [
|
|
3829
|
+
"Per-task challenge window override in seconds. 0 = use GlobalState default."
|
|
3830
|
+
],
|
|
3831
|
+
"type": "u32"
|
|
3832
|
+
},
|
|
3833
|
+
{
|
|
3834
|
+
"name": "verification_timeout_override",
|
|
3835
|
+
"docs": [
|
|
3836
|
+
"Per-task verification timeout override in seconds. 0 = use GlobalState default."
|
|
3837
|
+
],
|
|
3838
|
+
"type": "u32"
|
|
3839
|
+
},
|
|
3840
|
+
{
|
|
3841
|
+
"name": "verification_hash",
|
|
3842
|
+
"docs": [
|
|
3843
|
+
"SHA-256 of the verification snapshot (content + metrics JSON). 0 until verified."
|
|
3844
|
+
],
|
|
3845
|
+
"type": {
|
|
3846
|
+
"array": [
|
|
3847
|
+
"u8",
|
|
3848
|
+
32
|
|
3849
|
+
]
|
|
3850
|
+
}
|
|
3851
|
+
},
|
|
3852
|
+
{
|
|
3853
|
+
"name": "requires_approval",
|
|
3854
|
+
"docs": [
|
|
3855
|
+
"Whether this task requires explicit client `approve_task`",
|
|
3856
|
+
"before oracle verification (D1, 2026-05-07). 0 = false (oracle",
|
|
3857
|
+
"path proceeds directly from Submitted), 1 = true (mandatory",
|
|
3858
|
+
"client approval gate, matches v4 #11 behavior).",
|
|
3859
|
+
"",
|
|
3860
|
+
"Default OFF — matches the protocol spec at",
|
|
3861
|
+
"`~/swarm/shillbot/CLAUDE.md` line 433: \"Optional pre-approval",
|
|
3862
|
+
"flow: Clients can enable a mode where agent submissions are",
|
|
3863
|
+
"queued for client review.\" v4 #11 made approval mandatory for",
|
|
3864
|
+
"every task; D1 reverts to per-campaign opt-in.",
|
|
3865
|
+
"",
|
|
3866
|
+
"Carved from `_reserved` 2026-05-07 — bytewise-compatible with",
|
|
3867
|
+
"pre-D1 layout because the byte was zero in `_reserved`. In-flight",
|
|
3868
|
+
"Submitted-state tasks at the moment of program upgrade transition",
|
|
3869
|
+
"from \"mandatory approval\" to \"no approval needed\" — caller",
|
|
3870
|
+
"instructions migrate accordingly. **Operators with in-flight",
|
|
3871
|
+
"Submitted tasks should ensure they're approved or expired before",
|
|
3872
|
+
"the program upgrade.**"
|
|
3873
|
+
],
|
|
3874
|
+
"type": "u8"
|
|
3875
|
+
},
|
|
3876
|
+
{
|
|
3877
|
+
"name": "verification_kind",
|
|
3878
|
+
"docs": [
|
|
3879
|
+
"How this task's verification is adjudicated (2026-07-07, carved",
|
|
3880
|
+
"from `_reserved` following the D1 precedent — bytewise-compatible",
|
|
3881
|
+
"because the byte was zero). Wire-format twin:",
|
|
3882
|
+
"`chain-core::verify_schema::VerificationKind` (append-only).",
|
|
3883
|
+
"`0 = OracleMetrics` — legacy Switchboard path, `verify_task` only.",
|
|
3884
|
+
"`1 = DeterministicAttested` — allow-listed attester path,",
|
|
3885
|
+
"`verify_task_attested` only; score must be exactly 0 or MAX_SCORE.",
|
|
3886
|
+
"The two verify entries are mutually exclusive on this byte."
|
|
3887
|
+
],
|
|
3888
|
+
"type": "u8"
|
|
3889
|
+
},
|
|
3890
|
+
{
|
|
3891
|
+
"name": "_reserved",
|
|
3892
|
+
"docs": [
|
|
3893
|
+
"Reserved space for future fields without reallocation.",
|
|
3894
|
+
"Reduced from 20 → 19 by D1 (`requires_approval`) → 18 by the",
|
|
3895
|
+
"2026-07-07 `verification_kind` carve."
|
|
3896
|
+
],
|
|
3897
|
+
"type": {
|
|
3898
|
+
"array": [
|
|
3899
|
+
"u8",
|
|
3900
|
+
18
|
|
3901
|
+
]
|
|
3902
|
+
}
|
|
3903
|
+
},
|
|
3904
|
+
{
|
|
3905
|
+
"name": "bump",
|
|
3906
|
+
"type": "u8"
|
|
3907
|
+
},
|
|
3908
|
+
{
|
|
3909
|
+
"name": "payout_to",
|
|
3910
|
+
"docs": [
|
|
3911
|
+
"Payment-routing override (C2 — extension-credit). `Pubkey::default()`",
|
|
3912
|
+
"(zero) = pay the agent (`task.agent`); otherwise `finalize_task` pays",
|
|
3913
|
+
"THIS account instead, while reputation still accrues to `task.agent`.",
|
|
3914
|
+
"Set by `set_payout_to` (agent-only) — e.g. an extension-credit splitter",
|
|
3915
|
+
"vault. Appended AFTER `bump` (32 bytes > the 19 reserved) so existing",
|
|
3916
|
+
"on-chain accounts stay bytewise-identical for bytes [0..315); the",
|
|
3917
|
+
"`migrate_task` ix reallocs 315 → 347 and zero-fills the tail."
|
|
3918
|
+
],
|
|
3919
|
+
"type": "pubkey"
|
|
3920
|
+
}
|
|
3921
|
+
]
|
|
3922
|
+
}
|
|
3923
|
+
},
|
|
3924
|
+
{
|
|
3925
|
+
"name": "TaskApproved",
|
|
3926
|
+
"type": {
|
|
3927
|
+
"kind": "struct",
|
|
3928
|
+
"fields": [
|
|
3929
|
+
{
|
|
3930
|
+
"name": "task_id",
|
|
3931
|
+
"type": "u64"
|
|
3932
|
+
},
|
|
3933
|
+
{
|
|
3934
|
+
"name": "client",
|
|
3935
|
+
"type": "pubkey"
|
|
3936
|
+
},
|
|
3937
|
+
{
|
|
3938
|
+
"name": "agent",
|
|
3939
|
+
"type": "pubkey"
|
|
3940
|
+
}
|
|
3941
|
+
]
|
|
3942
|
+
}
|
|
3943
|
+
},
|
|
3944
|
+
{
|
|
3945
|
+
"name": "TaskChallenged",
|
|
3946
|
+
"type": {
|
|
3947
|
+
"kind": "struct",
|
|
3948
|
+
"fields": [
|
|
3949
|
+
{
|
|
3950
|
+
"name": "task_id",
|
|
3951
|
+
"type": "u64"
|
|
3952
|
+
},
|
|
3953
|
+
{
|
|
3954
|
+
"name": "challenger",
|
|
3955
|
+
"type": "pubkey"
|
|
3956
|
+
},
|
|
3957
|
+
{
|
|
3958
|
+
"name": "bond_lamports",
|
|
3959
|
+
"type": "u64"
|
|
3960
|
+
},
|
|
3961
|
+
{
|
|
3962
|
+
"name": "is_client_challenge",
|
|
3963
|
+
"type": "bool"
|
|
3964
|
+
}
|
|
3965
|
+
]
|
|
3966
|
+
}
|
|
3967
|
+
},
|
|
3968
|
+
{
|
|
3969
|
+
"name": "TaskClaimed",
|
|
3970
|
+
"type": {
|
|
3971
|
+
"kind": "struct",
|
|
3972
|
+
"fields": [
|
|
3973
|
+
{
|
|
3974
|
+
"name": "task_id",
|
|
3975
|
+
"type": "u64"
|
|
3976
|
+
},
|
|
3977
|
+
{
|
|
3978
|
+
"name": "agent",
|
|
3979
|
+
"type": "pubkey"
|
|
3980
|
+
}
|
|
3981
|
+
]
|
|
3982
|
+
}
|
|
3983
|
+
},
|
|
3984
|
+
{
|
|
3985
|
+
"name": "TaskCreated",
|
|
3986
|
+
"type": {
|
|
3987
|
+
"kind": "struct",
|
|
3988
|
+
"fields": [
|
|
3989
|
+
{
|
|
3990
|
+
"name": "task_id",
|
|
3991
|
+
"type": "u64"
|
|
3992
|
+
},
|
|
3993
|
+
{
|
|
3994
|
+
"name": "client",
|
|
3995
|
+
"type": "pubkey"
|
|
3996
|
+
},
|
|
3997
|
+
{
|
|
3998
|
+
"name": "escrow_lamports",
|
|
3999
|
+
"type": "u64"
|
|
4000
|
+
},
|
|
4001
|
+
{
|
|
4002
|
+
"name": "deadline",
|
|
4003
|
+
"type": "i64"
|
|
4004
|
+
},
|
|
4005
|
+
{
|
|
4006
|
+
"name": "task_nonce",
|
|
4007
|
+
"type": {
|
|
4008
|
+
"array": [
|
|
4009
|
+
"u8",
|
|
4010
|
+
16
|
|
4011
|
+
]
|
|
4012
|
+
}
|
|
4013
|
+
},
|
|
4014
|
+
{
|
|
4015
|
+
"name": "platform",
|
|
4016
|
+
"type": "u8"
|
|
4017
|
+
}
|
|
4018
|
+
]
|
|
4019
|
+
}
|
|
4020
|
+
},
|
|
4021
|
+
{
|
|
4022
|
+
"name": "TaskExpired",
|
|
4023
|
+
"type": {
|
|
4024
|
+
"kind": "struct",
|
|
4025
|
+
"fields": [
|
|
4026
|
+
{
|
|
4027
|
+
"name": "task_id",
|
|
4028
|
+
"type": "u64"
|
|
4029
|
+
},
|
|
4030
|
+
{
|
|
4031
|
+
"name": "state_at_expiry",
|
|
4032
|
+
"type": "u8"
|
|
4033
|
+
},
|
|
4034
|
+
{
|
|
4035
|
+
"name": "platform",
|
|
4036
|
+
"type": "u8"
|
|
4037
|
+
}
|
|
4038
|
+
]
|
|
4039
|
+
}
|
|
4040
|
+
},
|
|
4041
|
+
{
|
|
4042
|
+
"name": "TaskFinalized",
|
|
4043
|
+
"type": {
|
|
4044
|
+
"kind": "struct",
|
|
4045
|
+
"fields": [
|
|
4046
|
+
{
|
|
4047
|
+
"name": "task_id",
|
|
4048
|
+
"type": "u64"
|
|
4049
|
+
},
|
|
4050
|
+
{
|
|
4051
|
+
"name": "agent",
|
|
4052
|
+
"type": "pubkey"
|
|
4053
|
+
},
|
|
4054
|
+
{
|
|
4055
|
+
"name": "payment_amount",
|
|
4056
|
+
"type": "u64"
|
|
4057
|
+
},
|
|
4058
|
+
{
|
|
4059
|
+
"name": "fee_amount",
|
|
4060
|
+
"type": "u64"
|
|
4061
|
+
}
|
|
4062
|
+
]
|
|
4063
|
+
}
|
|
4064
|
+
},
|
|
4065
|
+
{
|
|
4066
|
+
"name": "TaskState",
|
|
4067
|
+
"docs": [
|
|
4068
|
+
"Task lifecycle states.",
|
|
4069
|
+
"",
|
|
4070
|
+
"```text",
|
|
4071
|
+
"--(create_task)--> Open",
|
|
4072
|
+
"Open --(claim_task)--> Claimed",
|
|
4073
|
+
"Open --(expire_task: past deadline)--> [closed]",
|
|
4074
|
+
"Open --(emergency_return)--> [closed]",
|
|
4075
|
+
"Claimed --(submit_work)--> Submitted",
|
|
4076
|
+
"Claimed --(expire_task: past deadline)--> [closed]",
|
|
4077
|
+
"Claimed --(emergency_return)--> [closed]",
|
|
4078
|
+
"Submitted --(approve_task: client signs)--> Approved",
|
|
4079
|
+
"Submitted --(expire_task: T+14d timeout)--> [closed]",
|
|
4080
|
+
"Approved/Submitted --(verify_task: Switchboard, kind=0)--> Verified",
|
|
4081
|
+
"Approved/Submitted --(verify_task_attested: attester signer, kind=1)--> Verified",
|
|
4082
|
+
"Approved --(expire_task: T+14d timeout)--> [closed]",
|
|
4083
|
+
"Verified --(finalize_task)--> Finalized --> [closed]",
|
|
4084
|
+
"Verified --(challenge_task)--> Disputed",
|
|
4085
|
+
"Disputed --(resolve_challenge: authority)--> Resolved --> [closed]",
|
|
4086
|
+
"Disputed --(resolve_challenge_default: permissionless past",
|
|
4087
|
+
"dispute-resolution deadline)--> Resolved --> [closed]",
|
|
4088
|
+
"```",
|
|
4089
|
+
"",
|
|
4090
|
+
"Note: `Approved = 7` is appended to preserve `#[repr(u8)]` discriminants",
|
|
4091
|
+
"of all prior variants. Existing on-chain Task accounts (created before",
|
|
4092
|
+
"the Phase 3 blocker #3a upgrade) keep their bytewise interpretation;",
|
|
4093
|
+
"new variants must always append."
|
|
4094
|
+
],
|
|
4095
|
+
"repr": {
|
|
4096
|
+
"kind": "rust"
|
|
4097
|
+
},
|
|
4098
|
+
"type": {
|
|
4099
|
+
"kind": "enum",
|
|
4100
|
+
"variants": [
|
|
4101
|
+
{
|
|
4102
|
+
"name": "Open"
|
|
4103
|
+
},
|
|
4104
|
+
{
|
|
4105
|
+
"name": "Claimed"
|
|
4106
|
+
},
|
|
4107
|
+
{
|
|
4108
|
+
"name": "Submitted"
|
|
4109
|
+
},
|
|
4110
|
+
{
|
|
4111
|
+
"name": "Verified"
|
|
4112
|
+
},
|
|
4113
|
+
{
|
|
4114
|
+
"name": "Finalized"
|
|
4115
|
+
},
|
|
4116
|
+
{
|
|
4117
|
+
"name": "Disputed"
|
|
4118
|
+
},
|
|
4119
|
+
{
|
|
4120
|
+
"name": "Resolved"
|
|
4121
|
+
},
|
|
4122
|
+
{
|
|
4123
|
+
"name": "Approved"
|
|
4124
|
+
}
|
|
4125
|
+
]
|
|
4126
|
+
}
|
|
4127
|
+
},
|
|
4128
|
+
{
|
|
4129
|
+
"name": "TaskVerified",
|
|
4130
|
+
"type": {
|
|
4131
|
+
"kind": "struct",
|
|
4132
|
+
"fields": [
|
|
4133
|
+
{
|
|
4134
|
+
"name": "task_id",
|
|
4135
|
+
"type": "u64"
|
|
4136
|
+
},
|
|
4137
|
+
{
|
|
4138
|
+
"name": "composite_score",
|
|
4139
|
+
"type": "u64"
|
|
4140
|
+
},
|
|
4141
|
+
{
|
|
4142
|
+
"name": "payment_amount",
|
|
4143
|
+
"type": "u64"
|
|
4144
|
+
},
|
|
4145
|
+
{
|
|
4146
|
+
"name": "fee_amount",
|
|
4147
|
+
"type": "u64"
|
|
4148
|
+
},
|
|
4149
|
+
{
|
|
4150
|
+
"name": "verification_hash",
|
|
4151
|
+
"type": {
|
|
4152
|
+
"array": [
|
|
4153
|
+
"u8",
|
|
4154
|
+
32
|
|
4155
|
+
]
|
|
4156
|
+
}
|
|
4157
|
+
}
|
|
4158
|
+
]
|
|
4159
|
+
}
|
|
4160
|
+
},
|
|
4161
|
+
{
|
|
4162
|
+
"name": "TreasuryUpdated",
|
|
4163
|
+
"type": {
|
|
4164
|
+
"kind": "struct",
|
|
4165
|
+
"fields": [
|
|
4166
|
+
{
|
|
4167
|
+
"name": "old_treasury",
|
|
4168
|
+
"type": "pubkey"
|
|
4169
|
+
},
|
|
4170
|
+
{
|
|
4171
|
+
"name": "new_treasury",
|
|
4172
|
+
"type": "pubkey"
|
|
4173
|
+
}
|
|
4174
|
+
]
|
|
4175
|
+
}
|
|
4176
|
+
},
|
|
4177
|
+
{
|
|
4178
|
+
"name": "WorkSubmitted",
|
|
4179
|
+
"type": {
|
|
4180
|
+
"kind": "struct",
|
|
4181
|
+
"fields": [
|
|
4182
|
+
{
|
|
4183
|
+
"name": "task_id",
|
|
4184
|
+
"type": "u64"
|
|
4185
|
+
},
|
|
4186
|
+
{
|
|
4187
|
+
"name": "agent",
|
|
4188
|
+
"type": "pubkey"
|
|
4189
|
+
},
|
|
4190
|
+
{
|
|
4191
|
+
"name": "content_id_hash",
|
|
4192
|
+
"type": {
|
|
4193
|
+
"array": [
|
|
4194
|
+
"u8",
|
|
4195
|
+
32
|
|
4196
|
+
]
|
|
4197
|
+
}
|
|
4198
|
+
}
|
|
4199
|
+
]
|
|
4200
|
+
}
|
|
4201
|
+
}
|
|
4202
|
+
]
|
|
4203
|
+
}
|