yosoku 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.
Files changed (110) hide show
  1. package/dist/accounts/filllog.d.ts +5 -0
  2. package/dist/accounts/filllog.d.ts.map +1 -0
  3. package/dist/accounts/filllog.js +30 -0
  4. package/dist/accounts/filllog.js.map +1 -0
  5. package/dist/accounts/index.d.ts +42 -0
  6. package/dist/accounts/index.d.ts.map +1 -0
  7. package/dist/accounts/index.js +81 -0
  8. package/dist/accounts/index.js.map +1 -0
  9. package/dist/accounts/market.d.ts +14 -0
  10. package/dist/accounts/market.d.ts.map +1 -0
  11. package/dist/accounts/market.js +104 -0
  12. package/dist/accounts/market.js.map +1 -0
  13. package/dist/accounts/marketinfo.d.ts +9 -0
  14. package/dist/accounts/marketinfo.d.ts.map +1 -0
  15. package/dist/accounts/marketinfo.js +29 -0
  16. package/dist/accounts/marketinfo.js.map +1 -0
  17. package/dist/accounts/order.d.ts +11 -0
  18. package/dist/accounts/order.d.ts.map +1 -0
  19. package/dist/accounts/order.js +50 -0
  20. package/dist/accounts/order.js.map +1 -0
  21. package/dist/accounts/orderbook.d.ts +5 -0
  22. package/dist/accounts/orderbook.d.ts.map +1 -0
  23. package/dist/accounts/orderbook.js +80 -0
  24. package/dist/accounts/orderbook.js.map +1 -0
  25. package/dist/accounts/position.d.ts +11 -0
  26. package/dist/accounts/position.d.ts.map +1 -0
  27. package/dist/accounts/position.js +48 -0
  28. package/dist/accounts/position.js.map +1 -0
  29. package/dist/accounts/resolution.d.ts +13 -0
  30. package/dist/accounts/resolution.d.ts.map +1 -0
  31. package/dist/accounts/resolution.js +91 -0
  32. package/dist/accounts/resolution.js.map +1 -0
  33. package/dist/client.d.ts +50 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +63 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/constants.d.ts +28 -0
  38. package/dist/constants.d.ts.map +1 -0
  39. package/dist/constants.js +32 -0
  40. package/dist/constants.js.map +1 -0
  41. package/dist/errors.d.ts +85 -0
  42. package/dist/errors.d.ts.map +1 -0
  43. package/dist/errors.js +186 -0
  44. package/dist/errors.js.map +1 -0
  45. package/dist/events/index.d.ts +22 -0
  46. package/dist/events/index.d.ts.map +1 -0
  47. package/dist/events/index.js +78 -0
  48. package/dist/events/index.js.map +1 -0
  49. package/dist/events/parser.d.ts +4 -0
  50. package/dist/events/parser.d.ts.map +1 -0
  51. package/dist/events/parser.js +111 -0
  52. package/dist/events/parser.js.map +1 -0
  53. package/dist/events/types.d.ts +85 -0
  54. package/dist/events/types.d.ts.map +1 -0
  55. package/dist/events/types.js +3 -0
  56. package/dist/events/types.js.map +1 -0
  57. package/dist/idl/pred_market.d.ts +4809 -0
  58. package/dist/idl/pred_market.d.ts.map +1 -0
  59. package/dist/idl/pred_market.js +3 -0
  60. package/dist/idl/pred_market.js.map +1 -0
  61. package/dist/idl/pred_market.json +4802 -0
  62. package/dist/index.d.ts +15 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +47 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/instructions/admin.d.ts +20 -0
  67. package/dist/instructions/admin.d.ts.map +1 -0
  68. package/dist/instructions/admin.js +89 -0
  69. package/dist/instructions/admin.js.map +1 -0
  70. package/dist/instructions/index.d.ts +14 -0
  71. package/dist/instructions/index.d.ts.map +1 -0
  72. package/dist/instructions/index.js +18 -0
  73. package/dist/instructions/index.js.map +1 -0
  74. package/dist/instructions/market-creation.d.ts +48 -0
  75. package/dist/instructions/market-creation.d.ts.map +1 -0
  76. package/dist/instructions/market-creation.js +270 -0
  77. package/dist/instructions/market-creation.js.map +1 -0
  78. package/dist/instructions/market-info.d.ts +48 -0
  79. package/dist/instructions/market-info.d.ts.map +1 -0
  80. package/dist/instructions/market-info.js +138 -0
  81. package/dist/instructions/market-info.js.map +1 -0
  82. package/dist/instructions/positions.d.ts +42 -0
  83. package/dist/instructions/positions.d.ts.map +1 -0
  84. package/dist/instructions/positions.js +122 -0
  85. package/dist/instructions/positions.js.map +1 -0
  86. package/dist/instructions/resolution.d.ts +32 -0
  87. package/dist/instructions/resolution.d.ts.map +1 -0
  88. package/dist/instructions/resolution.js +107 -0
  89. package/dist/instructions/resolution.js.map +1 -0
  90. package/dist/instructions/trading.d.ts +81 -0
  91. package/dist/instructions/trading.d.ts.map +1 -0
  92. package/dist/instructions/trading.js +195 -0
  93. package/dist/instructions/trading.js.map +1 -0
  94. package/dist/instructions/vote-resolution.d.ts +20 -0
  95. package/dist/instructions/vote-resolution.d.ts.map +1 -0
  96. package/dist/instructions/vote-resolution.js +58 -0
  97. package/dist/instructions/vote-resolution.js.map +1 -0
  98. package/dist/pda.d.ts +11 -0
  99. package/dist/pda.d.ts.map +1 -0
  100. package/dist/pda.js +68 -0
  101. package/dist/pda.js.map +1 -0
  102. package/dist/price.d.ts +48 -0
  103. package/dist/price.d.ts.map +1 -0
  104. package/dist/price.js +90 -0
  105. package/dist/price.js.map +1 -0
  106. package/dist/types.d.ts +198 -0
  107. package/dist/types.d.ts.map +1 -0
  108. package/dist/types.js +92 -0
  109. package/dist/types.js.map +1 -0
  110. package/package.json +40 -0
@@ -0,0 +1,4802 @@
1
+ {
2
+ "address": "8p6MKtMGGugZMy2HGXtL3uBb11y7xuzXmbMbQgNmWVUQ",
3
+ "metadata": {
4
+ "name": "pred_market",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Created with Anchor"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "add_orderbook_set_to_market",
12
+ "discriminator": [
13
+ 14,
14
+ 129,
15
+ 68,
16
+ 220,
17
+ 73,
18
+ 183,
19
+ 76,
20
+ 29
21
+ ],
22
+ "accounts": [
23
+ {
24
+ "name": "payer",
25
+ "writable": true,
26
+ "signer": true
27
+ },
28
+ {
29
+ "name": "market",
30
+ "writable": true
31
+ },
32
+ {
33
+ "name": "yes_order_book",
34
+ "docs": [
35
+ "Order book for YES side - must be pre-created by client with correct size"
36
+ ],
37
+ "writable": true
38
+ },
39
+ {
40
+ "name": "no_order_book",
41
+ "docs": [
42
+ "Order book for NO side - must be pre-created by client with correct size"
43
+ ],
44
+ "writable": true
45
+ },
46
+ {
47
+ "name": "yes_fill_log",
48
+ "docs": [
49
+ "Fill log for YES side - must be pre-created by client with correct size"
50
+ ],
51
+ "writable": true
52
+ },
53
+ {
54
+ "name": "no_fill_log",
55
+ "docs": [
56
+ "Fill log for NO side - must be pre-created by client with correct size"
57
+ ],
58
+ "writable": true
59
+ },
60
+ {
61
+ "name": "vault",
62
+ "docs": [
63
+ "Vault for this leg (seeded by index)"
64
+ ],
65
+ "writable": true
66
+ },
67
+ {
68
+ "name": "usdc_mint"
69
+ },
70
+ {
71
+ "name": "token_program"
72
+ },
73
+ {
74
+ "name": "system_program"
75
+ }
76
+ ],
77
+ "args": [
78
+ {
79
+ "name": "params",
80
+ "type": {
81
+ "defined": {
82
+ "name": "AddOrderbookSetParams"
83
+ }
84
+ }
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "name": "admin_close_account",
90
+ "docs": [
91
+ "Close any program-owned account (for cleaning up old/incompatible accounts)",
92
+ "Only the admin can call this instruction"
93
+ ],
94
+ "discriminator": [
95
+ 131,
96
+ 60,
97
+ 75,
98
+ 215,
99
+ 109,
100
+ 34,
101
+ 157,
102
+ 26
103
+ ],
104
+ "accounts": [
105
+ {
106
+ "name": "admin",
107
+ "writable": true,
108
+ "signer": true
109
+ },
110
+ {
111
+ "name": "account_to_close",
112
+ "docs": [
113
+ "The account to close - must be owned by this program"
114
+ ],
115
+ "writable": true
116
+ },
117
+ {
118
+ "name": "system_program"
119
+ }
120
+ ],
121
+ "args": []
122
+ },
123
+ {
124
+ "name": "admin_migrate_market",
125
+ "docs": [
126
+ "Migrate market data from old format (with resolving_deadline) to new format",
127
+ "Only the admin can call this instruction"
128
+ ],
129
+ "discriminator": [
130
+ 203,
131
+ 217,
132
+ 127,
133
+ 253,
134
+ 222,
135
+ 155,
136
+ 220,
137
+ 22
138
+ ],
139
+ "accounts": [
140
+ {
141
+ "name": "admin",
142
+ "writable": true,
143
+ "signer": true
144
+ },
145
+ {
146
+ "name": "market",
147
+ "docs": [
148
+ "The market account to migrate"
149
+ ],
150
+ "writable": true
151
+ },
152
+ {
153
+ "name": "system_program"
154
+ }
155
+ ],
156
+ "args": []
157
+ },
158
+ {
159
+ "name": "append_description",
160
+ "docs": [
161
+ "Append to the description"
162
+ ],
163
+ "discriminator": [
164
+ 8,
165
+ 130,
166
+ 90,
167
+ 79,
168
+ 96,
169
+ 127,
170
+ 30,
171
+ 49
172
+ ],
173
+ "accounts": [
174
+ {
175
+ "name": "market_info",
176
+ "writable": true
177
+ },
178
+ {
179
+ "name": "authority",
180
+ "writable": true,
181
+ "signer": true
182
+ },
183
+ {
184
+ "name": "system_program"
185
+ }
186
+ ],
187
+ "args": [
188
+ {
189
+ "name": "chunk",
190
+ "type": "string"
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "name": "append_market_question",
196
+ "docs": [
197
+ "Append to the market question"
198
+ ],
199
+ "discriminator": [
200
+ 112,
201
+ 120,
202
+ 124,
203
+ 234,
204
+ 222,
205
+ 159,
206
+ 28,
207
+ 233
208
+ ],
209
+ "accounts": [
210
+ {
211
+ "name": "market_info",
212
+ "writable": true
213
+ },
214
+ {
215
+ "name": "authority",
216
+ "writable": true,
217
+ "signer": true
218
+ },
219
+ {
220
+ "name": "system_program"
221
+ }
222
+ ],
223
+ "args": [
224
+ {
225
+ "name": "chunk",
226
+ "type": "string"
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ "name": "append_rules",
232
+ "docs": [
233
+ "Append to the rules"
234
+ ],
235
+ "discriminator": [
236
+ 130,
237
+ 43,
238
+ 72,
239
+ 96,
240
+ 141,
241
+ 180,
242
+ 52,
243
+ 46
244
+ ],
245
+ "accounts": [
246
+ {
247
+ "name": "market_info",
248
+ "writable": true
249
+ },
250
+ {
251
+ "name": "authority",
252
+ "writable": true,
253
+ "signer": true
254
+ },
255
+ {
256
+ "name": "system_program"
257
+ }
258
+ ],
259
+ "args": [
260
+ {
261
+ "name": "chunk",
262
+ "type": "string"
263
+ }
264
+ ]
265
+ },
266
+ {
267
+ "name": "cancel_order",
268
+ "discriminator": [
269
+ 95,
270
+ 129,
271
+ 237,
272
+ 240,
273
+ 8,
274
+ 49,
275
+ 223,
276
+ 132
277
+ ],
278
+ "accounts": [
279
+ {
280
+ "name": "user",
281
+ "writable": true,
282
+ "signer": true
283
+ },
284
+ {
285
+ "name": "market"
286
+ },
287
+ {
288
+ "name": "vault",
289
+ "writable": true
290
+ },
291
+ {
292
+ "name": "yes_order_book",
293
+ "writable": true
294
+ },
295
+ {
296
+ "name": "no_order_book",
297
+ "writable": true
298
+ },
299
+ {
300
+ "name": "yes_fill_log",
301
+ "docs": [
302
+ "YES fill log - validated in handler"
303
+ ]
304
+ },
305
+ {
306
+ "name": "no_fill_log",
307
+ "docs": [
308
+ "NO fill log - validated in handler"
309
+ ]
310
+ },
311
+ {
312
+ "name": "user_ata",
313
+ "writable": true
314
+ },
315
+ {
316
+ "name": "token_program"
317
+ },
318
+ {
319
+ "name": "system_program"
320
+ },
321
+ {
322
+ "name": "order",
323
+ "writable": true
324
+ },
325
+ {
326
+ "name": "yes_position",
327
+ "docs": [
328
+ "YES position - receives shares back when cancelling NO bid (CoveredBy::Shares)"
329
+ ],
330
+ "writable": true
331
+ },
332
+ {
333
+ "name": "no_position",
334
+ "docs": [
335
+ "NO position - receives shares back when cancelling YES bid (CoveredBy::Shares)"
336
+ ],
337
+ "writable": true
338
+ }
339
+ ],
340
+ "args": [
341
+ {
342
+ "name": "index",
343
+ "type": "u8"
344
+ }
345
+ ]
346
+ },
347
+ {
348
+ "name": "claim_creator_fees",
349
+ "docs": [
350
+ "Claim accumulated creator fees from the creator vault",
351
+ "Only the market creator can call this instruction"
352
+ ],
353
+ "discriminator": [
354
+ 0,
355
+ 23,
356
+ 125,
357
+ 234,
358
+ 156,
359
+ 118,
360
+ 134,
361
+ 89
362
+ ],
363
+ "accounts": [
364
+ {
365
+ "name": "creator",
366
+ "docs": [
367
+ "Market creator - must sign"
368
+ ],
369
+ "writable": true,
370
+ "signer": true
371
+ },
372
+ {
373
+ "name": "market",
374
+ "docs": [
375
+ "Market account - verifies creator and provides PDA signing authority"
376
+ ]
377
+ },
378
+ {
379
+ "name": "creator_vault",
380
+ "docs": [
381
+ "Creator vault (fee accumulator)"
382
+ ],
383
+ "writable": true
384
+ },
385
+ {
386
+ "name": "creator_ata",
387
+ "docs": [
388
+ "Creator's USDC ATA (destination)"
389
+ ],
390
+ "writable": true
391
+ },
392
+ {
393
+ "name": "token_program"
394
+ }
395
+ ],
396
+ "args": []
397
+ },
398
+ {
399
+ "name": "claim_dispute_winnings",
400
+ "docs": [
401
+ "Claim dispute winnings after UMA resolution",
402
+ "The winner (proposer or disputer) receives the total bonds minus protocol fee"
403
+ ],
404
+ "discriminator": [
405
+ 5,
406
+ 18,
407
+ 8,
408
+ 42,
409
+ 42,
410
+ 171,
411
+ 44,
412
+ 42
413
+ ],
414
+ "accounts": [
415
+ {
416
+ "name": "payer",
417
+ "docs": [
418
+ "Anyone can call this (permissionless), but funds go to winner"
419
+ ],
420
+ "writable": true,
421
+ "signer": true
422
+ },
423
+ {
424
+ "name": "market",
425
+ "docs": [
426
+ "The resolved market"
427
+ ]
428
+ },
429
+ {
430
+ "name": "yes_order_book",
431
+ "docs": [
432
+ "YES order book (for index validation)"
433
+ ]
434
+ },
435
+ {
436
+ "name": "no_order_book",
437
+ "docs": [
438
+ "NO order book (for index validation)"
439
+ ]
440
+ },
441
+ {
442
+ "name": "resolution_proposal",
443
+ "docs": [
444
+ "The resolution proposal"
445
+ ],
446
+ "writable": true
447
+ },
448
+ {
449
+ "name": "bond_vault",
450
+ "docs": [
451
+ "Bond vault holding the bonds"
452
+ ],
453
+ "writable": true
454
+ },
455
+ {
456
+ "name": "winner_token_account",
457
+ "docs": [
458
+ "Winner's USDC token account to receive payout"
459
+ ],
460
+ "writable": true
461
+ },
462
+ {
463
+ "name": "treasury_token_account",
464
+ "docs": [
465
+ "Treasury USDC token account to receive protocol fee"
466
+ ],
467
+ "writable": true
468
+ },
469
+ {
470
+ "name": "usdc_mint",
471
+ "docs": [
472
+ "USDC mint"
473
+ ]
474
+ },
475
+ {
476
+ "name": "token_program"
477
+ }
478
+ ],
479
+ "args": [
480
+ {
481
+ "name": "index",
482
+ "type": "u8"
483
+ }
484
+ ]
485
+ },
486
+ {
487
+ "name": "claim_position",
488
+ "discriminator": [
489
+ 168,
490
+ 90,
491
+ 89,
492
+ 44,
493
+ 203,
494
+ 246,
495
+ 210,
496
+ 46
497
+ ],
498
+ "accounts": [
499
+ {
500
+ "name": "user",
501
+ "writable": true,
502
+ "signer": true
503
+ },
504
+ {
505
+ "name": "market"
506
+ },
507
+ {
508
+ "name": "vault",
509
+ "writable": true
510
+ },
511
+ {
512
+ "name": "yes_order_book"
513
+ },
514
+ {
515
+ "name": "no_order_book"
516
+ },
517
+ {
518
+ "name": "yes_fill_log",
519
+ "docs": [
520
+ "YES fill log - validated in handler"
521
+ ],
522
+ "writable": true
523
+ },
524
+ {
525
+ "name": "no_fill_log",
526
+ "docs": [
527
+ "NO fill log - validated in handler"
528
+ ],
529
+ "writable": true
530
+ },
531
+ {
532
+ "name": "user_ata",
533
+ "writable": true
534
+ },
535
+ {
536
+ "name": "token_program"
537
+ },
538
+ {
539
+ "name": "system_program"
540
+ },
541
+ {
542
+ "name": "order",
543
+ "writable": true
544
+ },
545
+ {
546
+ "name": "user_position",
547
+ "docs": [
548
+ "User's position for this order's side (only needed for CoveredBy::Usdc)"
549
+ ],
550
+ "writable": true
551
+ }
552
+ ],
553
+ "args": [
554
+ {
555
+ "name": "index",
556
+ "type": "u8"
557
+ }
558
+ ]
559
+ },
560
+ {
561
+ "name": "close_market",
562
+ "docs": [
563
+ "Close a market's vault and market account",
564
+ "Only the market creator or admin can call this instruction",
565
+ "Orderbooks must be closed first via close_orderbook"
566
+ ],
567
+ "discriminator": [
568
+ 88,
569
+ 154,
570
+ 248,
571
+ 186,
572
+ 48,
573
+ 14,
574
+ 123,
575
+ 244
576
+ ],
577
+ "accounts": [
578
+ {
579
+ "name": "caller",
580
+ "docs": [
581
+ "Creator or admin"
582
+ ],
583
+ "writable": true,
584
+ "signer": true
585
+ },
586
+ {
587
+ "name": "market",
588
+ "writable": true
589
+ },
590
+ {
591
+ "name": "vault",
592
+ "docs": [
593
+ "Vault to close"
594
+ ],
595
+ "writable": true
596
+ },
597
+ {
598
+ "name": "caller_ata",
599
+ "docs": [
600
+ "Caller's USDC ATA to receive any remaining vault funds"
601
+ ],
602
+ "writable": true
603
+ },
604
+ {
605
+ "name": "token_program"
606
+ },
607
+ {
608
+ "name": "system_program"
609
+ }
610
+ ],
611
+ "args": [
612
+ {
613
+ "name": "index",
614
+ "type": "u8"
615
+ }
616
+ ]
617
+ },
618
+ {
619
+ "name": "close_orderbook",
620
+ "docs": [
621
+ "Close an order book after market resolution",
622
+ "Only the market creator or admin can call this instruction",
623
+ "Requires market is resolved and order_count == 0"
624
+ ],
625
+ "discriminator": [
626
+ 195,
627
+ 216,
628
+ 135,
629
+ 205,
630
+ 50,
631
+ 240,
632
+ 187,
633
+ 46
634
+ ],
635
+ "accounts": [
636
+ {
637
+ "name": "caller",
638
+ "docs": [
639
+ "Creator or admin"
640
+ ],
641
+ "writable": true,
642
+ "signer": true
643
+ },
644
+ {
645
+ "name": "market"
646
+ },
647
+ {
648
+ "name": "order_book",
649
+ "docs": [
650
+ "Order book to close - validated in handler"
651
+ ],
652
+ "writable": true
653
+ },
654
+ {
655
+ "name": "system_program"
656
+ }
657
+ ],
658
+ "args": [
659
+ {
660
+ "name": "index",
661
+ "type": "u8"
662
+ },
663
+ {
664
+ "name": "side",
665
+ "type": {
666
+ "defined": {
667
+ "name": "OrderSide"
668
+ }
669
+ }
670
+ }
671
+ ]
672
+ },
673
+ {
674
+ "name": "covered_bid",
675
+ "discriminator": [
676
+ 150,
677
+ 97,
678
+ 199,
679
+ 104,
680
+ 81,
681
+ 80,
682
+ 60,
683
+ 41
684
+ ],
685
+ "accounts": [
686
+ {
687
+ "name": "user",
688
+ "writable": true,
689
+ "signer": true
690
+ },
691
+ {
692
+ "name": "market",
693
+ "writable": true
694
+ },
695
+ {
696
+ "name": "vault",
697
+ "docs": [
698
+ "Vault for this leg - validated in handler"
699
+ ],
700
+ "writable": true
701
+ },
702
+ {
703
+ "name": "creator_vault",
704
+ "docs": [
705
+ "Creator vault - receives creator fees on fills"
706
+ ],
707
+ "writable": true
708
+ },
709
+ {
710
+ "name": "yes_order_book",
711
+ "docs": [
712
+ "YES order book - validated in handler"
713
+ ],
714
+ "writable": true
715
+ },
716
+ {
717
+ "name": "no_order_book",
718
+ "docs": [
719
+ "NO order book - validated in handler"
720
+ ],
721
+ "writable": true
722
+ },
723
+ {
724
+ "name": "yes_fill_log",
725
+ "docs": [
726
+ "YES fill log - validated in handler"
727
+ ],
728
+ "writable": true
729
+ },
730
+ {
731
+ "name": "no_fill_log",
732
+ "docs": [
733
+ "NO fill log - validated in handler"
734
+ ],
735
+ "writable": true
736
+ },
737
+ {
738
+ "name": "user_ata",
739
+ "writable": true
740
+ },
741
+ {
742
+ "name": "protocol_treasury",
743
+ "docs": [
744
+ "Protocol treasury - receives protocol fees on fills"
745
+ ],
746
+ "writable": true
747
+ },
748
+ {
749
+ "name": "token_program"
750
+ },
751
+ {
752
+ "name": "system_program"
753
+ },
754
+ {
755
+ "name": "order",
756
+ "writable": true
757
+ },
758
+ {
759
+ "name": "yes_position",
760
+ "docs": [
761
+ "YES position - receives shares when buying YES, used as collateral when bidding NO"
762
+ ],
763
+ "writable": true
764
+ },
765
+ {
766
+ "name": "no_position",
767
+ "docs": [
768
+ "NO position - receives shares when buying NO, used as collateral when bidding YES"
769
+ ],
770
+ "writable": true
771
+ },
772
+ {
773
+ "name": "referral_account"
774
+ }
775
+ ],
776
+ "args": [
777
+ {
778
+ "name": "index",
779
+ "type": "u8"
780
+ },
781
+ {
782
+ "name": "side",
783
+ "type": {
784
+ "defined": {
785
+ "name": "OrderSide"
786
+ }
787
+ }
788
+ },
789
+ {
790
+ "name": "price",
791
+ "type": "u16"
792
+ },
793
+ {
794
+ "name": "shares",
795
+ "type": "u64"
796
+ },
797
+ {
798
+ "name": "seed",
799
+ "type": "u32"
800
+ },
801
+ {
802
+ "name": "covered_by",
803
+ "type": {
804
+ "defined": {
805
+ "name": "CoveredBy"
806
+ }
807
+ }
808
+ },
809
+ {
810
+ "name": "match_existing",
811
+ "type": "bool"
812
+ }
813
+ ]
814
+ },
815
+ {
816
+ "name": "create_market_info",
817
+ "docs": [
818
+ "Create a new MarketInfo account with required fields"
819
+ ],
820
+ "discriminator": [
821
+ 126,
822
+ 213,
823
+ 167,
824
+ 67,
825
+ 10,
826
+ 162,
827
+ 90,
828
+ 208
829
+ ],
830
+ "accounts": [
831
+ {
832
+ "name": "market_info",
833
+ "writable": true,
834
+ "signer": true
835
+ },
836
+ {
837
+ "name": "creator",
838
+ "writable": true,
839
+ "signer": true
840
+ },
841
+ {
842
+ "name": "system_program"
843
+ }
844
+ ],
845
+ "args": [
846
+ {
847
+ "name": "market_type",
848
+ "type": {
849
+ "defined": {
850
+ "name": "MarketInfoType"
851
+ }
852
+ }
853
+ },
854
+ {
855
+ "name": "resolver_type",
856
+ "type": {
857
+ "defined": {
858
+ "name": "ResolverType"
859
+ }
860
+ }
861
+ }
862
+ ]
863
+ },
864
+ {
865
+ "name": "create_multileg_market",
866
+ "discriminator": [
867
+ 46,
868
+ 62,
869
+ 255,
870
+ 42,
871
+ 105,
872
+ 130,
873
+ 7,
874
+ 123
875
+ ],
876
+ "accounts": [
877
+ {
878
+ "name": "creator",
879
+ "writable": true,
880
+ "signer": true
881
+ },
882
+ {
883
+ "name": "market",
884
+ "writable": true
885
+ },
886
+ {
887
+ "name": "market_info",
888
+ "docs": [
889
+ "MarketInfo account containing market metadata (description, rules, resolver_type, etc.)",
890
+ "Must not be locked and must have market_type == MultiLeg with \"___\" in question"
891
+ ],
892
+ "writable": true
893
+ },
894
+ {
895
+ "name": "creator_vault",
896
+ "docs": [
897
+ "Creator vault for fee accumulation"
898
+ ],
899
+ "writable": true
900
+ },
901
+ {
902
+ "name": "usdc_mint"
903
+ },
904
+ {
905
+ "name": "token_program"
906
+ },
907
+ {
908
+ "name": "system_program"
909
+ }
910
+ ],
911
+ "args": [
912
+ {
913
+ "name": "params",
914
+ "type": {
915
+ "defined": {
916
+ "name": "CreateMarketParams"
917
+ }
918
+ }
919
+ }
920
+ ]
921
+ },
922
+ {
923
+ "name": "create_regular_market",
924
+ "discriminator": [
925
+ 185,
926
+ 64,
927
+ 59,
928
+ 119,
929
+ 123,
930
+ 57,
931
+ 2,
932
+ 99
933
+ ],
934
+ "accounts": [
935
+ {
936
+ "name": "creator",
937
+ "writable": true,
938
+ "signer": true
939
+ },
940
+ {
941
+ "name": "market",
942
+ "writable": true
943
+ },
944
+ {
945
+ "name": "market_info",
946
+ "docs": [
947
+ "MarketInfo account containing market metadata (description, rules, resolver_type, etc.)",
948
+ "Must not be locked and must have market_type == Regular"
949
+ ],
950
+ "writable": true
951
+ },
952
+ {
953
+ "name": "yes_order_book",
954
+ "docs": [
955
+ "Order book for YES side - must be pre-created by client with correct size"
956
+ ],
957
+ "writable": true
958
+ },
959
+ {
960
+ "name": "no_order_book",
961
+ "docs": [
962
+ "Order book for NO side - must be pre-created by client with correct size"
963
+ ],
964
+ "writable": true
965
+ },
966
+ {
967
+ "name": "yes_fill_log",
968
+ "docs": [
969
+ "Fill log for YES side - must be pre-created by client with correct size"
970
+ ],
971
+ "writable": true
972
+ },
973
+ {
974
+ "name": "no_fill_log",
975
+ "docs": [
976
+ "Fill log for NO side - must be pre-created by client with correct size"
977
+ ],
978
+ "writable": true
979
+ },
980
+ {
981
+ "name": "vault",
982
+ "docs": [
983
+ "Vault for this market (index 0 for regular markets)"
984
+ ],
985
+ "writable": true
986
+ },
987
+ {
988
+ "name": "creator_vault",
989
+ "docs": [
990
+ "Creator vault for fee accumulation"
991
+ ],
992
+ "writable": true
993
+ },
994
+ {
995
+ "name": "usdc_mint"
996
+ },
997
+ {
998
+ "name": "token_program"
999
+ },
1000
+ {
1001
+ "name": "system_program"
1002
+ }
1003
+ ],
1004
+ "args": [
1005
+ {
1006
+ "name": "params",
1007
+ "type": {
1008
+ "defined": {
1009
+ "name": "CreateMarketParams"
1010
+ }
1011
+ }
1012
+ }
1013
+ ]
1014
+ },
1015
+ {
1016
+ "name": "dispute_resolution",
1017
+ "docs": [
1018
+ "Dispute a resolution proposal (escalate to UMA via LayerZero)",
1019
+ "Disputer posts a higher bond and the market is sent to UMA for final resolution"
1020
+ ],
1021
+ "discriminator": [
1022
+ 89,
1023
+ 169,
1024
+ 106,
1025
+ 71,
1026
+ 131,
1027
+ 77,
1028
+ 122,
1029
+ 232
1030
+ ],
1031
+ "accounts": [
1032
+ {
1033
+ "name": "disputer",
1034
+ "docs": [
1035
+ "The disputer submitting the dispute"
1036
+ ],
1037
+ "writable": true,
1038
+ "signer": true
1039
+ },
1040
+ {
1041
+ "name": "market",
1042
+ "docs": [
1043
+ "The market being disputed (boxed to reduce stack size)"
1044
+ ],
1045
+ "writable": true
1046
+ },
1047
+ {
1048
+ "name": "market_info",
1049
+ "docs": [
1050
+ "MarketInfo account containing resolver_type and rules"
1051
+ ]
1052
+ },
1053
+ {
1054
+ "name": "yes_order_book",
1055
+ "docs": [
1056
+ "YES order book (for index validation)"
1057
+ ]
1058
+ },
1059
+ {
1060
+ "name": "no_order_book",
1061
+ "docs": [
1062
+ "NO order book (for index validation)"
1063
+ ]
1064
+ },
1065
+ {
1066
+ "name": "resolution_proposal",
1067
+ "docs": [
1068
+ "The resolution proposal being disputed"
1069
+ ],
1070
+ "writable": true
1071
+ },
1072
+ {
1073
+ "name": "bond_vault",
1074
+ "docs": [
1075
+ "Bond vault holding the proposer's bond"
1076
+ ],
1077
+ "writable": true
1078
+ },
1079
+ {
1080
+ "name": "disputer_token_account",
1081
+ "docs": [
1082
+ "Disputer's USDC token account"
1083
+ ],
1084
+ "writable": true
1085
+ },
1086
+ {
1087
+ "name": "usdc_mint",
1088
+ "docs": [
1089
+ "USDC mint"
1090
+ ]
1091
+ },
1092
+ {
1093
+ "name": "peer"
1094
+ },
1095
+ {
1096
+ "name": "store"
1097
+ },
1098
+ {
1099
+ "name": "endpoint"
1100
+ },
1101
+ {
1102
+ "name": "token_program"
1103
+ },
1104
+ {
1105
+ "name": "system_program"
1106
+ }
1107
+ ],
1108
+ "args": [
1109
+ {
1110
+ "name": "index",
1111
+ "type": "u8"
1112
+ },
1113
+ {
1114
+ "name": "params",
1115
+ "type": {
1116
+ "defined": {
1117
+ "name": "DisputeResolutionParams"
1118
+ }
1119
+ }
1120
+ }
1121
+ ]
1122
+ },
1123
+ {
1124
+ "name": "finalize_resolution",
1125
+ "docs": [
1126
+ "Finalize a resolution after dispute window expires (no dispute)",
1127
+ "Returns the proposer's bond and resolves the market to the proposed outcome"
1128
+ ],
1129
+ "discriminator": [
1130
+ 191,
1131
+ 74,
1132
+ 94,
1133
+ 214,
1134
+ 45,
1135
+ 150,
1136
+ 152,
1137
+ 125
1138
+ ],
1139
+ "accounts": [
1140
+ {
1141
+ "name": "payer",
1142
+ "docs": [
1143
+ "Anyone can call finalize after dispute window expires"
1144
+ ],
1145
+ "writable": true,
1146
+ "signer": true
1147
+ },
1148
+ {
1149
+ "name": "market",
1150
+ "docs": [
1151
+ "The market being finalized"
1152
+ ],
1153
+ "writable": true
1154
+ },
1155
+ {
1156
+ "name": "market_info",
1157
+ "docs": [
1158
+ "MarketInfo account containing resolver_type"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "name": "yes_order_book",
1163
+ "docs": [
1164
+ "YES order book (for index validation)"
1165
+ ]
1166
+ },
1167
+ {
1168
+ "name": "no_order_book",
1169
+ "docs": [
1170
+ "NO order book (for index validation)"
1171
+ ]
1172
+ },
1173
+ {
1174
+ "name": "resolution_proposal",
1175
+ "docs": [
1176
+ "The resolution proposal"
1177
+ ],
1178
+ "writable": true
1179
+ },
1180
+ {
1181
+ "name": "bond_vault",
1182
+ "docs": [
1183
+ "Bond vault holding the proposer's bond"
1184
+ ],
1185
+ "writable": true
1186
+ },
1187
+ {
1188
+ "name": "proposer_token_account",
1189
+ "docs": [
1190
+ "Proposer's USDC token account to receive bond back"
1191
+ ],
1192
+ "writable": true
1193
+ },
1194
+ {
1195
+ "name": "usdc_mint",
1196
+ "docs": [
1197
+ "USDC mint"
1198
+ ]
1199
+ },
1200
+ {
1201
+ "name": "token_program"
1202
+ }
1203
+ ],
1204
+ "args": [
1205
+ {
1206
+ "name": "index",
1207
+ "type": "u8"
1208
+ }
1209
+ ]
1210
+ },
1211
+ {
1212
+ "name": "finalize_vote_resolution",
1213
+ "docs": [
1214
+ "Finalize vote resolution after deadline passes (WalletVoteResolver markets only)",
1215
+ "Anyone can call - resolves to 50/50 Split if no majority reached"
1216
+ ],
1217
+ "discriminator": [
1218
+ 20,
1219
+ 1,
1220
+ 225,
1221
+ 67,
1222
+ 222,
1223
+ 210,
1224
+ 227,
1225
+ 122
1226
+ ],
1227
+ "accounts": [
1228
+ {
1229
+ "name": "payer",
1230
+ "docs": [
1231
+ "Anyone can finalize after deadline"
1232
+ ],
1233
+ "writable": true,
1234
+ "signer": true
1235
+ },
1236
+ {
1237
+ "name": "market",
1238
+ "docs": [
1239
+ "The market to finalize"
1240
+ ],
1241
+ "writable": true
1242
+ },
1243
+ {
1244
+ "name": "market_info",
1245
+ "docs": [
1246
+ "MarketInfo account containing resolver_type"
1247
+ ]
1248
+ },
1249
+ {
1250
+ "name": "yes_order_book",
1251
+ "docs": [
1252
+ "YES order book (for index validation)"
1253
+ ]
1254
+ },
1255
+ {
1256
+ "name": "no_order_book",
1257
+ "docs": [
1258
+ "NO order book (for index validation)"
1259
+ ]
1260
+ },
1261
+ {
1262
+ "name": "vote_state",
1263
+ "docs": [
1264
+ "Vote state account - must exist (initialized during voting)"
1265
+ ],
1266
+ "writable": true
1267
+ },
1268
+ {
1269
+ "name": "system_program"
1270
+ }
1271
+ ],
1272
+ "args": [
1273
+ {
1274
+ "name": "index",
1275
+ "type": "u8"
1276
+ }
1277
+ ]
1278
+ },
1279
+ {
1280
+ "name": "init_lz_store",
1281
+ "docs": [
1282
+ "Initialize the LayerZero OApp store"
1283
+ ],
1284
+ "discriminator": [
1285
+ 12,
1286
+ 217,
1287
+ 241,
1288
+ 53,
1289
+ 30,
1290
+ 39,
1291
+ 95,
1292
+ 98
1293
+ ],
1294
+ "accounts": [
1295
+ {
1296
+ "name": "payer",
1297
+ "writable": true,
1298
+ "signer": true
1299
+ },
1300
+ {
1301
+ "name": "store",
1302
+ "writable": true
1303
+ },
1304
+ {
1305
+ "name": "lz_receive_types_accounts",
1306
+ "writable": true
1307
+ },
1308
+ {
1309
+ "name": "system_program"
1310
+ }
1311
+ ],
1312
+ "args": [
1313
+ {
1314
+ "name": "params",
1315
+ "type": {
1316
+ "defined": {
1317
+ "name": "InitLzStoreParams"
1318
+ }
1319
+ }
1320
+ }
1321
+ ]
1322
+ },
1323
+ {
1324
+ "name": "limit_ask",
1325
+ "discriminator": [
1326
+ 59,
1327
+ 245,
1328
+ 60,
1329
+ 64,
1330
+ 14,
1331
+ 83,
1332
+ 233,
1333
+ 164
1334
+ ],
1335
+ "accounts": [
1336
+ {
1337
+ "name": "user",
1338
+ "writable": true,
1339
+ "signer": true
1340
+ },
1341
+ {
1342
+ "name": "market",
1343
+ "writable": true
1344
+ },
1345
+ {
1346
+ "name": "vault",
1347
+ "docs": [
1348
+ "Vault for this leg - validated in handler"
1349
+ ],
1350
+ "writable": true
1351
+ },
1352
+ {
1353
+ "name": "creator_vault",
1354
+ "docs": [
1355
+ "Creator vault - receives creator fees on fills"
1356
+ ],
1357
+ "writable": true
1358
+ },
1359
+ {
1360
+ "name": "yes_order_book",
1361
+ "docs": [
1362
+ "YES order book - validated in handler"
1363
+ ],
1364
+ "writable": true
1365
+ },
1366
+ {
1367
+ "name": "no_order_book",
1368
+ "docs": [
1369
+ "NO order book - validated in handler"
1370
+ ],
1371
+ "writable": true
1372
+ },
1373
+ {
1374
+ "name": "yes_fill_log",
1375
+ "docs": [
1376
+ "YES fill log - validated in handler"
1377
+ ],
1378
+ "writable": true
1379
+ },
1380
+ {
1381
+ "name": "no_fill_log",
1382
+ "docs": [
1383
+ "NO fill log - validated in handler"
1384
+ ],
1385
+ "writable": true
1386
+ },
1387
+ {
1388
+ "name": "user_ata",
1389
+ "writable": true
1390
+ },
1391
+ {
1392
+ "name": "protocol_treasury",
1393
+ "docs": [
1394
+ "Protocol treasury - receives protocol fees on fills"
1395
+ ],
1396
+ "writable": true
1397
+ },
1398
+ {
1399
+ "name": "token_program"
1400
+ },
1401
+ {
1402
+ "name": "system_program"
1403
+ },
1404
+ {
1405
+ "name": "order",
1406
+ "writable": true
1407
+ },
1408
+ {
1409
+ "name": "yes_position",
1410
+ "docs": [
1411
+ "YES position - receives shares when buying YES, used as collateral when bidding NO"
1412
+ ],
1413
+ "writable": true
1414
+ },
1415
+ {
1416
+ "name": "no_position",
1417
+ "docs": [
1418
+ "NO position - receives shares when buying NO, used as collateral when bidding YES"
1419
+ ],
1420
+ "writable": true
1421
+ },
1422
+ {
1423
+ "name": "referral_account"
1424
+ }
1425
+ ],
1426
+ "args": [
1427
+ {
1428
+ "name": "index",
1429
+ "type": "u8"
1430
+ },
1431
+ {
1432
+ "name": "side",
1433
+ "type": {
1434
+ "defined": {
1435
+ "name": "OrderSide"
1436
+ }
1437
+ }
1438
+ },
1439
+ {
1440
+ "name": "price",
1441
+ "type": "u16"
1442
+ },
1443
+ {
1444
+ "name": "shares",
1445
+ "type": "u64"
1446
+ },
1447
+ {
1448
+ "name": "seed",
1449
+ "type": "u32"
1450
+ },
1451
+ {
1452
+ "name": "match_existing",
1453
+ "type": "bool"
1454
+ }
1455
+ ]
1456
+ },
1457
+ {
1458
+ "name": "limit_bid",
1459
+ "discriminator": [
1460
+ 188,
1461
+ 78,
1462
+ 103,
1463
+ 36,
1464
+ 196,
1465
+ 147,
1466
+ 156,
1467
+ 31
1468
+ ],
1469
+ "accounts": [
1470
+ {
1471
+ "name": "user",
1472
+ "writable": true,
1473
+ "signer": true
1474
+ },
1475
+ {
1476
+ "name": "market",
1477
+ "writable": true
1478
+ },
1479
+ {
1480
+ "name": "vault",
1481
+ "docs": [
1482
+ "Vault for this leg - validated in handler"
1483
+ ],
1484
+ "writable": true
1485
+ },
1486
+ {
1487
+ "name": "creator_vault",
1488
+ "docs": [
1489
+ "Creator vault - receives creator fees on fills"
1490
+ ],
1491
+ "writable": true
1492
+ },
1493
+ {
1494
+ "name": "yes_order_book",
1495
+ "docs": [
1496
+ "YES order book - validated in handler"
1497
+ ],
1498
+ "writable": true
1499
+ },
1500
+ {
1501
+ "name": "no_order_book",
1502
+ "docs": [
1503
+ "NO order book - validated in handler"
1504
+ ],
1505
+ "writable": true
1506
+ },
1507
+ {
1508
+ "name": "yes_fill_log",
1509
+ "docs": [
1510
+ "YES fill log - validated in handler"
1511
+ ],
1512
+ "writable": true
1513
+ },
1514
+ {
1515
+ "name": "no_fill_log",
1516
+ "docs": [
1517
+ "NO fill log - validated in handler"
1518
+ ],
1519
+ "writable": true
1520
+ },
1521
+ {
1522
+ "name": "user_ata",
1523
+ "writable": true
1524
+ },
1525
+ {
1526
+ "name": "protocol_treasury",
1527
+ "docs": [
1528
+ "Protocol treasury - receives protocol fees on fills"
1529
+ ],
1530
+ "writable": true
1531
+ },
1532
+ {
1533
+ "name": "token_program"
1534
+ },
1535
+ {
1536
+ "name": "system_program"
1537
+ },
1538
+ {
1539
+ "name": "order",
1540
+ "writable": true
1541
+ },
1542
+ {
1543
+ "name": "yes_position",
1544
+ "docs": [
1545
+ "YES position - receives shares when buying YES, used as collateral when bidding NO"
1546
+ ],
1547
+ "writable": true
1548
+ },
1549
+ {
1550
+ "name": "no_position",
1551
+ "docs": [
1552
+ "NO position - receives shares when buying NO, used as collateral when bidding YES"
1553
+ ],
1554
+ "writable": true
1555
+ },
1556
+ {
1557
+ "name": "referral_account"
1558
+ }
1559
+ ],
1560
+ "args": [
1561
+ {
1562
+ "name": "index",
1563
+ "type": "u8"
1564
+ },
1565
+ {
1566
+ "name": "side",
1567
+ "type": {
1568
+ "defined": {
1569
+ "name": "OrderSide"
1570
+ }
1571
+ }
1572
+ },
1573
+ {
1574
+ "name": "price",
1575
+ "type": "u16"
1576
+ },
1577
+ {
1578
+ "name": "amount",
1579
+ "type": "u64"
1580
+ },
1581
+ {
1582
+ "name": "seed",
1583
+ "type": "u32"
1584
+ },
1585
+ {
1586
+ "name": "match_existing",
1587
+ "type": "bool"
1588
+ }
1589
+ ]
1590
+ },
1591
+ {
1592
+ "name": "lz_quote_send",
1593
+ "docs": [
1594
+ "Get quote for sending a cross-chain message"
1595
+ ],
1596
+ "discriminator": [
1597
+ 41,
1598
+ 213,
1599
+ 186,
1600
+ 170,
1601
+ 231,
1602
+ 239,
1603
+ 137,
1604
+ 64
1605
+ ],
1606
+ "accounts": [
1607
+ {
1608
+ "name": "store"
1609
+ },
1610
+ {
1611
+ "name": "peer"
1612
+ },
1613
+ {
1614
+ "name": "endpoint"
1615
+ }
1616
+ ],
1617
+ "args": [
1618
+ {
1619
+ "name": "params",
1620
+ "type": {
1621
+ "defined": {
1622
+ "name": "LzQuoteSendParams"
1623
+ }
1624
+ }
1625
+ }
1626
+ ],
1627
+ "returns": {
1628
+ "defined": {
1629
+ "name": "MessagingFee"
1630
+ }
1631
+ }
1632
+ },
1633
+ {
1634
+ "name": "lz_receive",
1635
+ "docs": [
1636
+ "Handler for processing incoming cross-chain messages"
1637
+ ],
1638
+ "discriminator": [
1639
+ 8,
1640
+ 179,
1641
+ 120,
1642
+ 109,
1643
+ 33,
1644
+ 118,
1645
+ 189,
1646
+ 80
1647
+ ],
1648
+ "accounts": [
1649
+ {
1650
+ "name": "store",
1651
+ "writable": true
1652
+ },
1653
+ {
1654
+ "name": "peer"
1655
+ }
1656
+ ],
1657
+ "args": [
1658
+ {
1659
+ "name": "params",
1660
+ "type": {
1661
+ "defined": {
1662
+ "name": "LzReceiveParams"
1663
+ }
1664
+ }
1665
+ }
1666
+ ]
1667
+ },
1668
+ {
1669
+ "name": "lz_receive_types",
1670
+ "docs": [
1671
+ "Handler that returns the list of accounts required to execute lz_receive"
1672
+ ],
1673
+ "discriminator": [
1674
+ 221,
1675
+ 17,
1676
+ 246,
1677
+ 159,
1678
+ 248,
1679
+ 128,
1680
+ 31,
1681
+ 96
1682
+ ],
1683
+ "accounts": [
1684
+ {
1685
+ "name": "store"
1686
+ }
1687
+ ],
1688
+ "args": [
1689
+ {
1690
+ "name": "params",
1691
+ "type": {
1692
+ "defined": {
1693
+ "name": "LzReceiveParams"
1694
+ }
1695
+ }
1696
+ }
1697
+ ],
1698
+ "returns": {
1699
+ "vec": {
1700
+ "defined": {
1701
+ "name": "LzAccount"
1702
+ }
1703
+ }
1704
+ }
1705
+ },
1706
+ {
1707
+ "name": "lz_resolve_market",
1708
+ "docs": [
1709
+ "Request market resolution via cross-chain message",
1710
+ "Sends market pubkey, index, and rules to the destination chain for resolution"
1711
+ ],
1712
+ "discriminator": [
1713
+ 139,
1714
+ 28,
1715
+ 240,
1716
+ 121,
1717
+ 199,
1718
+ 58,
1719
+ 67,
1720
+ 50
1721
+ ],
1722
+ "accounts": [
1723
+ {
1724
+ "name": "payer",
1725
+ "docs": [
1726
+ "Anyone can request UMA resolution at any time"
1727
+ ],
1728
+ "writable": true,
1729
+ "signer": true
1730
+ },
1731
+ {
1732
+ "name": "market",
1733
+ "docs": [
1734
+ "The market to request resolution for"
1735
+ ],
1736
+ "writable": true
1737
+ },
1738
+ {
1739
+ "name": "market_info",
1740
+ "docs": [
1741
+ "MarketInfo account containing rules"
1742
+ ]
1743
+ },
1744
+ {
1745
+ "name": "yes_order_book",
1746
+ "docs": [
1747
+ "YES order book (for index validation)"
1748
+ ]
1749
+ },
1750
+ {
1751
+ "name": "no_order_book",
1752
+ "docs": [
1753
+ "NO order book (for index validation)"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "name": "peer"
1758
+ },
1759
+ {
1760
+ "name": "store"
1761
+ },
1762
+ {
1763
+ "name": "endpoint"
1764
+ }
1765
+ ],
1766
+ "args": [
1767
+ {
1768
+ "name": "index",
1769
+ "type": "u8"
1770
+ },
1771
+ {
1772
+ "name": "params",
1773
+ "type": {
1774
+ "defined": {
1775
+ "name": "LzResolveMarketParams"
1776
+ }
1777
+ }
1778
+ }
1779
+ ]
1780
+ },
1781
+ {
1782
+ "name": "market_buy",
1783
+ "discriminator": [
1784
+ 90,
1785
+ 236,
1786
+ 106,
1787
+ 220,
1788
+ 221,
1789
+ 81,
1790
+ 108,
1791
+ 140
1792
+ ],
1793
+ "accounts": [
1794
+ {
1795
+ "name": "user",
1796
+ "writable": true,
1797
+ "signer": true
1798
+ },
1799
+ {
1800
+ "name": "market",
1801
+ "writable": true
1802
+ },
1803
+ {
1804
+ "name": "vault",
1805
+ "docs": [
1806
+ "Vault for this leg - validated in handler"
1807
+ ],
1808
+ "writable": true
1809
+ },
1810
+ {
1811
+ "name": "yes_order_book",
1812
+ "docs": [
1813
+ "YES order book - validated in handler"
1814
+ ],
1815
+ "writable": true
1816
+ },
1817
+ {
1818
+ "name": "no_order_book",
1819
+ "docs": [
1820
+ "NO order book - validated in handler"
1821
+ ],
1822
+ "writable": true
1823
+ },
1824
+ {
1825
+ "name": "yes_fill_log",
1826
+ "docs": [
1827
+ "YES fill log - validated in handler"
1828
+ ],
1829
+ "writable": true
1830
+ },
1831
+ {
1832
+ "name": "no_fill_log",
1833
+ "docs": [
1834
+ "NO fill log - validated in handler"
1835
+ ],
1836
+ "writable": true
1837
+ },
1838
+ {
1839
+ "name": "user_ata",
1840
+ "writable": true
1841
+ },
1842
+ {
1843
+ "name": "creator_vault",
1844
+ "docs": [
1845
+ "Creator vault - receives creator fee"
1846
+ ],
1847
+ "writable": true
1848
+ },
1849
+ {
1850
+ "name": "protocol_treasury",
1851
+ "docs": [
1852
+ "Protocol treasury - receives protocol fee"
1853
+ ],
1854
+ "writable": true
1855
+ },
1856
+ {
1857
+ "name": "referral_account",
1858
+ "docs": [
1859
+ "Referral account - optional (pass system program to skip)",
1860
+ "When this is a valid token account, it must be passed as writable from the client."
1861
+ ]
1862
+ },
1863
+ {
1864
+ "name": "token_program"
1865
+ },
1866
+ {
1867
+ "name": "system_program"
1868
+ },
1869
+ {
1870
+ "name": "user_position",
1871
+ "writable": true
1872
+ }
1873
+ ],
1874
+ "args": [
1875
+ {
1876
+ "name": "index",
1877
+ "type": "u8"
1878
+ },
1879
+ {
1880
+ "name": "side",
1881
+ "type": {
1882
+ "defined": {
1883
+ "name": "OrderSide"
1884
+ }
1885
+ }
1886
+ },
1887
+ {
1888
+ "name": "max_usdc",
1889
+ "type": "u64"
1890
+ },
1891
+ {
1892
+ "name": "min_shares",
1893
+ "type": "u64"
1894
+ }
1895
+ ]
1896
+ },
1897
+ {
1898
+ "name": "market_sell",
1899
+ "discriminator": [
1900
+ 11,
1901
+ 224,
1902
+ 159,
1903
+ 119,
1904
+ 129,
1905
+ 127,
1906
+ 145,
1907
+ 237
1908
+ ],
1909
+ "accounts": [
1910
+ {
1911
+ "name": "user",
1912
+ "writable": true,
1913
+ "signer": true
1914
+ },
1915
+ {
1916
+ "name": "market",
1917
+ "writable": true
1918
+ },
1919
+ {
1920
+ "name": "vault",
1921
+ "docs": [
1922
+ "Vault for this leg - validated in handler"
1923
+ ],
1924
+ "writable": true
1925
+ },
1926
+ {
1927
+ "name": "yes_order_book",
1928
+ "docs": [
1929
+ "YES order book - validated in handler"
1930
+ ],
1931
+ "writable": true
1932
+ },
1933
+ {
1934
+ "name": "no_order_book",
1935
+ "docs": [
1936
+ "NO order book - validated in handler"
1937
+ ],
1938
+ "writable": true
1939
+ },
1940
+ {
1941
+ "name": "yes_fill_log",
1942
+ "docs": [
1943
+ "YES fill log - validated in handler"
1944
+ ],
1945
+ "writable": true
1946
+ },
1947
+ {
1948
+ "name": "no_fill_log",
1949
+ "docs": [
1950
+ "NO fill log - validated in handler"
1951
+ ],
1952
+ "writable": true
1953
+ },
1954
+ {
1955
+ "name": "user_ata",
1956
+ "writable": true
1957
+ },
1958
+ {
1959
+ "name": "creator_vault",
1960
+ "docs": [
1961
+ "Creator vault - receives creator fee"
1962
+ ],
1963
+ "writable": true
1964
+ },
1965
+ {
1966
+ "name": "protocol_treasury",
1967
+ "docs": [
1968
+ "Protocol treasury - receives protocol fee"
1969
+ ],
1970
+ "writable": true
1971
+ },
1972
+ {
1973
+ "name": "referral_account",
1974
+ "docs": [
1975
+ "Referral account - optional (pass system program to skip)",
1976
+ "When this is a valid token account, it must be passed as writable from the client."
1977
+ ]
1978
+ },
1979
+ {
1980
+ "name": "token_program"
1981
+ },
1982
+ {
1983
+ "name": "system_program"
1984
+ },
1985
+ {
1986
+ "name": "user_position",
1987
+ "writable": true
1988
+ }
1989
+ ],
1990
+ "args": [
1991
+ {
1992
+ "name": "index",
1993
+ "type": "u8"
1994
+ },
1995
+ {
1996
+ "name": "side",
1997
+ "type": {
1998
+ "defined": {
1999
+ "name": "OrderSide"
2000
+ }
2001
+ }
2002
+ },
2003
+ {
2004
+ "name": "shares",
2005
+ "type": "u64"
2006
+ },
2007
+ {
2008
+ "name": "min_usdc",
2009
+ "type": "u64"
2010
+ }
2011
+ ]
2012
+ },
2013
+ {
2014
+ "name": "merge_shares",
2015
+ "discriminator": [
2016
+ 236,
2017
+ 47,
2018
+ 171,
2019
+ 1,
2020
+ 210,
2021
+ 167,
2022
+ 204,
2023
+ 0
2024
+ ],
2025
+ "accounts": [
2026
+ {
2027
+ "name": "user",
2028
+ "writable": true,
2029
+ "signer": true
2030
+ },
2031
+ {
2032
+ "name": "market",
2033
+ "writable": true
2034
+ },
2035
+ {
2036
+ "name": "vault",
2037
+ "writable": true
2038
+ },
2039
+ {
2040
+ "name": "yes_order_book"
2041
+ },
2042
+ {
2043
+ "name": "no_order_book"
2044
+ },
2045
+ {
2046
+ "name": "user_ata",
2047
+ "writable": true
2048
+ },
2049
+ {
2050
+ "name": "token_program"
2051
+ },
2052
+ {
2053
+ "name": "yes_position",
2054
+ "writable": true
2055
+ },
2056
+ {
2057
+ "name": "no_position",
2058
+ "writable": true
2059
+ }
2060
+ ],
2061
+ "args": [
2062
+ {
2063
+ "name": "index",
2064
+ "type": "u8"
2065
+ },
2066
+ {
2067
+ "name": "amount",
2068
+ "type": "u64"
2069
+ }
2070
+ ]
2071
+ },
2072
+ {
2073
+ "name": "propose_resolution",
2074
+ "docs": [
2075
+ "Propose a resolution for a market (first tier)",
2076
+ "Anyone can propose at any time after market creation with a USDC bond"
2077
+ ],
2078
+ "discriminator": [
2079
+ 19,
2080
+ 68,
2081
+ 181,
2082
+ 23,
2083
+ 194,
2084
+ 146,
2085
+ 152,
2086
+ 252
2087
+ ],
2088
+ "accounts": [
2089
+ {
2090
+ "name": "proposer",
2091
+ "docs": [
2092
+ "The proposer submitting the resolution"
2093
+ ],
2094
+ "writable": true,
2095
+ "signer": true
2096
+ },
2097
+ {
2098
+ "name": "market",
2099
+ "docs": [
2100
+ "The market to propose resolution for"
2101
+ ],
2102
+ "writable": true
2103
+ },
2104
+ {
2105
+ "name": "market_info",
2106
+ "docs": [
2107
+ "MarketInfo account containing resolver_type"
2108
+ ]
2109
+ },
2110
+ {
2111
+ "name": "yes_order_book",
2112
+ "docs": [
2113
+ "YES order book (for index validation)"
2114
+ ]
2115
+ },
2116
+ {
2117
+ "name": "no_order_book",
2118
+ "docs": [
2119
+ "NO order book (for index validation)"
2120
+ ]
2121
+ },
2122
+ {
2123
+ "name": "resolution_proposal",
2124
+ "docs": [
2125
+ "The resolution proposal account (PDA)"
2126
+ ],
2127
+ "writable": true
2128
+ },
2129
+ {
2130
+ "name": "bond_vault",
2131
+ "docs": [
2132
+ "Bond vault to hold proposer and disputer bonds"
2133
+ ],
2134
+ "writable": true
2135
+ },
2136
+ {
2137
+ "name": "proposer_token_account",
2138
+ "docs": [
2139
+ "Proposer's USDC token account"
2140
+ ],
2141
+ "writable": true
2142
+ },
2143
+ {
2144
+ "name": "usdc_mint",
2145
+ "docs": [
2146
+ "USDC mint"
2147
+ ]
2148
+ },
2149
+ {
2150
+ "name": "token_program"
2151
+ },
2152
+ {
2153
+ "name": "system_program"
2154
+ }
2155
+ ],
2156
+ "args": [
2157
+ {
2158
+ "name": "index",
2159
+ "type": "u8"
2160
+ },
2161
+ {
2162
+ "name": "params",
2163
+ "type": {
2164
+ "defined": {
2165
+ "name": "ProposeResolutionParams"
2166
+ }
2167
+ }
2168
+ }
2169
+ ]
2170
+ },
2171
+ {
2172
+ "name": "redeem_position",
2173
+ "docs": [
2174
+ "Redeem a position after market resolution",
2175
+ "Winners receive $1.00 per share, losers receive $0",
2176
+ "Split outcome: all shares receive $0.50 each",
2177
+ "Position account is closed after redemption"
2178
+ ],
2179
+ "discriminator": [
2180
+ 51,
2181
+ 138,
2182
+ 49,
2183
+ 229,
2184
+ 33,
2185
+ 216,
2186
+ 19,
2187
+ 97
2188
+ ],
2189
+ "accounts": [
2190
+ {
2191
+ "name": "user",
2192
+ "writable": true,
2193
+ "signer": true
2194
+ },
2195
+ {
2196
+ "name": "market",
2197
+ "writable": true
2198
+ },
2199
+ {
2200
+ "name": "vault",
2201
+ "writable": true
2202
+ },
2203
+ {
2204
+ "name": "yes_order_book",
2205
+ "docs": [
2206
+ "YES order book (for index validation)"
2207
+ ]
2208
+ },
2209
+ {
2210
+ "name": "no_order_book",
2211
+ "docs": [
2212
+ "NO order book (for index validation)"
2213
+ ]
2214
+ },
2215
+ {
2216
+ "name": "user_ata",
2217
+ "writable": true
2218
+ },
2219
+ {
2220
+ "name": "token_program"
2221
+ },
2222
+ {
2223
+ "name": "position",
2224
+ "writable": true
2225
+ }
2226
+ ],
2227
+ "args": [
2228
+ {
2229
+ "name": "index",
2230
+ "type": "u8"
2231
+ }
2232
+ ]
2233
+ },
2234
+ {
2235
+ "name": "remove_market_info",
2236
+ "docs": [
2237
+ "Remove/close MarketInfo account (only when not locked)"
2238
+ ],
2239
+ "discriminator": [
2240
+ 102,
2241
+ 39,
2242
+ 28,
2243
+ 177,
2244
+ 126,
2245
+ 56,
2246
+ 33,
2247
+ 181
2248
+ ],
2249
+ "accounts": [
2250
+ {
2251
+ "name": "market_info",
2252
+ "writable": true
2253
+ },
2254
+ {
2255
+ "name": "authority",
2256
+ "writable": true,
2257
+ "signer": true
2258
+ }
2259
+ ],
2260
+ "args": []
2261
+ },
2262
+ {
2263
+ "name": "resolve_expired_market",
2264
+ "docs": [
2265
+ "Resolve an expired market to a 50/50 split",
2266
+ "Anyone can call this after the deadline if no proposal exists",
2267
+ "Both YES and NO shares will redeem at $0.50 each"
2268
+ ],
2269
+ "discriminator": [
2270
+ 117,
2271
+ 81,
2272
+ 156,
2273
+ 211,
2274
+ 195,
2275
+ 11,
2276
+ 70,
2277
+ 194
2278
+ ],
2279
+ "accounts": [
2280
+ {
2281
+ "name": "market",
2282
+ "writable": true
2283
+ }
2284
+ ],
2285
+ "args": [
2286
+ {
2287
+ "name": "index",
2288
+ "type": "u8"
2289
+ }
2290
+ ]
2291
+ },
2292
+ {
2293
+ "name": "set_description",
2294
+ "docs": [
2295
+ "Set the description (replaces existing)"
2296
+ ],
2297
+ "discriminator": [
2298
+ 234,
2299
+ 4,
2300
+ 121,
2301
+ 243,
2302
+ 47,
2303
+ 60,
2304
+ 8,
2305
+ 236
2306
+ ],
2307
+ "accounts": [
2308
+ {
2309
+ "name": "market_info",
2310
+ "writable": true
2311
+ },
2312
+ {
2313
+ "name": "authority",
2314
+ "writable": true,
2315
+ "signer": true
2316
+ },
2317
+ {
2318
+ "name": "system_program"
2319
+ }
2320
+ ],
2321
+ "args": [
2322
+ {
2323
+ "name": "description",
2324
+ "type": "string"
2325
+ }
2326
+ ]
2327
+ },
2328
+ {
2329
+ "name": "set_lz_peer_config",
2330
+ "docs": [
2331
+ "Admin instruction to set or update cross-chain peer configuration"
2332
+ ],
2333
+ "discriminator": [
2334
+ 195,
2335
+ 23,
2336
+ 146,
2337
+ 164,
2338
+ 165,
2339
+ 236,
2340
+ 21,
2341
+ 120
2342
+ ],
2343
+ "accounts": [
2344
+ {
2345
+ "name": "admin",
2346
+ "writable": true,
2347
+ "signer": true
2348
+ },
2349
+ {
2350
+ "name": "peer",
2351
+ "writable": true
2352
+ },
2353
+ {
2354
+ "name": "store"
2355
+ },
2356
+ {
2357
+ "name": "system_program"
2358
+ }
2359
+ ],
2360
+ "args": [
2361
+ {
2362
+ "name": "params",
2363
+ "type": {
2364
+ "defined": {
2365
+ "name": "SetLzPeerConfigParams"
2366
+ }
2367
+ }
2368
+ }
2369
+ ]
2370
+ },
2371
+ {
2372
+ "name": "set_market_question",
2373
+ "docs": [
2374
+ "Set the market question (replaces existing)"
2375
+ ],
2376
+ "discriminator": [
2377
+ 204,
2378
+ 210,
2379
+ 3,
2380
+ 56,
2381
+ 222,
2382
+ 5,
2383
+ 254,
2384
+ 31
2385
+ ],
2386
+ "accounts": [
2387
+ {
2388
+ "name": "market_info",
2389
+ "writable": true
2390
+ },
2391
+ {
2392
+ "name": "authority",
2393
+ "writable": true,
2394
+ "signer": true
2395
+ },
2396
+ {
2397
+ "name": "system_program"
2398
+ }
2399
+ ],
2400
+ "args": [
2401
+ {
2402
+ "name": "question",
2403
+ "type": "string"
2404
+ }
2405
+ ]
2406
+ },
2407
+ {
2408
+ "name": "set_market_type",
2409
+ "docs": [
2410
+ "Set the market type (Regular or MultiLeg)"
2411
+ ],
2412
+ "discriminator": [
2413
+ 82,
2414
+ 91,
2415
+ 95,
2416
+ 4,
2417
+ 183,
2418
+ 89,
2419
+ 89,
2420
+ 5
2421
+ ],
2422
+ "accounts": [
2423
+ {
2424
+ "name": "market_info",
2425
+ "writable": true
2426
+ },
2427
+ {
2428
+ "name": "authority",
2429
+ "signer": true
2430
+ }
2431
+ ],
2432
+ "args": [
2433
+ {
2434
+ "name": "market_type",
2435
+ "type": {
2436
+ "defined": {
2437
+ "name": "MarketInfoType"
2438
+ }
2439
+ }
2440
+ }
2441
+ ]
2442
+ },
2443
+ {
2444
+ "name": "set_resolver_type",
2445
+ "docs": [
2446
+ "Set the resolver type (UmaResolver or WalletVoteResolver)"
2447
+ ],
2448
+ "discriminator": [
2449
+ 178,
2450
+ 72,
2451
+ 177,
2452
+ 36,
2453
+ 149,
2454
+ 106,
2455
+ 53,
2456
+ 148
2457
+ ],
2458
+ "accounts": [
2459
+ {
2460
+ "name": "market_info",
2461
+ "writable": true
2462
+ },
2463
+ {
2464
+ "name": "authority",
2465
+ "writable": true,
2466
+ "signer": true
2467
+ },
2468
+ {
2469
+ "name": "system_program"
2470
+ }
2471
+ ],
2472
+ "args": [
2473
+ {
2474
+ "name": "resolver_type",
2475
+ "type": {
2476
+ "defined": {
2477
+ "name": "ResolverType"
2478
+ }
2479
+ }
2480
+ }
2481
+ ]
2482
+ },
2483
+ {
2484
+ "name": "set_rules",
2485
+ "docs": [
2486
+ "Set the rules (replaces existing)"
2487
+ ],
2488
+ "discriminator": [
2489
+ 66,
2490
+ 148,
2491
+ 196,
2492
+ 43,
2493
+ 232,
2494
+ 210,
2495
+ 174,
2496
+ 169
2497
+ ],
2498
+ "accounts": [
2499
+ {
2500
+ "name": "market_info",
2501
+ "writable": true
2502
+ },
2503
+ {
2504
+ "name": "authority",
2505
+ "writable": true,
2506
+ "signer": true
2507
+ },
2508
+ {
2509
+ "name": "system_program"
2510
+ }
2511
+ ],
2512
+ "args": [
2513
+ {
2514
+ "name": "rules",
2515
+ "type": "string"
2516
+ }
2517
+ ]
2518
+ },
2519
+ {
2520
+ "name": "verify_market",
2521
+ "docs": [
2522
+ "Toggle verification status of a market",
2523
+ "Only the authorized verifier can call this instruction"
2524
+ ],
2525
+ "discriminator": [
2526
+ 117,
2527
+ 131,
2528
+ 234,
2529
+ 199,
2530
+ 26,
2531
+ 123,
2532
+ 63,
2533
+ 62
2534
+ ],
2535
+ "accounts": [
2536
+ {
2537
+ "name": "verifier",
2538
+ "docs": [
2539
+ "Verifier must match the constant VERIFIER_PUBKEY"
2540
+ ],
2541
+ "signer": true
2542
+ },
2543
+ {
2544
+ "name": "market",
2545
+ "writable": true
2546
+ }
2547
+ ],
2548
+ "args": []
2549
+ },
2550
+ {
2551
+ "name": "vote_resolution",
2552
+ "docs": [
2553
+ "Cast or change a vote on market resolution (WalletVoteResolver markets only)",
2554
+ "Auto-finalizes when majority (>50%) is reached"
2555
+ ],
2556
+ "discriminator": [
2557
+ 137,
2558
+ 137,
2559
+ 237,
2560
+ 83,
2561
+ 15,
2562
+ 30,
2563
+ 101,
2564
+ 248
2565
+ ],
2566
+ "accounts": [
2567
+ {
2568
+ "name": "voter",
2569
+ "docs": [
2570
+ "The voter casting a vote"
2571
+ ],
2572
+ "writable": true,
2573
+ "signer": true
2574
+ },
2575
+ {
2576
+ "name": "market",
2577
+ "docs": [
2578
+ "The market being voted on"
2579
+ ],
2580
+ "writable": true
2581
+ },
2582
+ {
2583
+ "name": "market_info",
2584
+ "docs": [
2585
+ "MarketInfo account containing resolver_type and voter list"
2586
+ ]
2587
+ },
2588
+ {
2589
+ "name": "yes_order_book",
2590
+ "docs": [
2591
+ "YES order book (for index validation)"
2592
+ ]
2593
+ },
2594
+ {
2595
+ "name": "no_order_book",
2596
+ "docs": [
2597
+ "NO order book (for index validation)"
2598
+ ]
2599
+ },
2600
+ {
2601
+ "name": "vote_state",
2602
+ "docs": [
2603
+ "Vote state account (PDA) - initialized on first vote"
2604
+ ],
2605
+ "writable": true
2606
+ },
2607
+ {
2608
+ "name": "system_program"
2609
+ }
2610
+ ],
2611
+ "args": [
2612
+ {
2613
+ "name": "index",
2614
+ "type": "u8"
2615
+ },
2616
+ {
2617
+ "name": "params",
2618
+ "type": {
2619
+ "defined": {
2620
+ "name": "VoteResolutionParams"
2621
+ }
2622
+ }
2623
+ }
2624
+ ]
2625
+ }
2626
+ ],
2627
+ "accounts": [
2628
+ {
2629
+ "name": "EndpointSettings",
2630
+ "discriminator": [
2631
+ 221,
2632
+ 232,
2633
+ 73,
2634
+ 56,
2635
+ 10,
2636
+ 66,
2637
+ 72,
2638
+ 14
2639
+ ]
2640
+ },
2641
+ {
2642
+ "name": "FillLog",
2643
+ "discriminator": [
2644
+ 117,
2645
+ 168,
2646
+ 16,
2647
+ 123,
2648
+ 102,
2649
+ 249,
2650
+ 153,
2651
+ 9
2652
+ ]
2653
+ },
2654
+ {
2655
+ "name": "LzReceiveTypesAccounts",
2656
+ "discriminator": [
2657
+ 248,
2658
+ 87,
2659
+ 167,
2660
+ 117,
2661
+ 5,
2662
+ 251,
2663
+ 21,
2664
+ 126
2665
+ ]
2666
+ },
2667
+ {
2668
+ "name": "LzStore",
2669
+ "discriminator": [
2670
+ 180,
2671
+ 175,
2672
+ 185,
2673
+ 198,
2674
+ 25,
2675
+ 242,
2676
+ 68,
2677
+ 31
2678
+ ]
2679
+ },
2680
+ {
2681
+ "name": "Market",
2682
+ "discriminator": [
2683
+ 219,
2684
+ 190,
2685
+ 213,
2686
+ 55,
2687
+ 0,
2688
+ 227,
2689
+ 198,
2690
+ 154
2691
+ ]
2692
+ },
2693
+ {
2694
+ "name": "MarketInfo",
2695
+ "discriminator": [
2696
+ 221,
2697
+ 22,
2698
+ 29,
2699
+ 59,
2700
+ 10,
2701
+ 180,
2702
+ 8,
2703
+ 190
2704
+ ]
2705
+ },
2706
+ {
2707
+ "name": "Order",
2708
+ "discriminator": [
2709
+ 134,
2710
+ 173,
2711
+ 223,
2712
+ 185,
2713
+ 77,
2714
+ 86,
2715
+ 28,
2716
+ 51
2717
+ ]
2718
+ },
2719
+ {
2720
+ "name": "OrderBook",
2721
+ "discriminator": [
2722
+ 55,
2723
+ 230,
2724
+ 125,
2725
+ 218,
2726
+ 149,
2727
+ 39,
2728
+ 65,
2729
+ 248
2730
+ ]
2731
+ },
2732
+ {
2733
+ "name": "PeerConfig",
2734
+ "discriminator": [
2735
+ 181,
2736
+ 157,
2737
+ 86,
2738
+ 198,
2739
+ 33,
2740
+ 193,
2741
+ 94,
2742
+ 203
2743
+ ]
2744
+ },
2745
+ {
2746
+ "name": "Position",
2747
+ "discriminator": [
2748
+ 170,
2749
+ 188,
2750
+ 143,
2751
+ 228,
2752
+ 122,
2753
+ 64,
2754
+ 247,
2755
+ 208
2756
+ ]
2757
+ },
2758
+ {
2759
+ "name": "ResolutionProposal",
2760
+ "discriminator": [
2761
+ 188,
2762
+ 203,
2763
+ 94,
2764
+ 223,
2765
+ 208,
2766
+ 121,
2767
+ 225,
2768
+ 38
2769
+ ]
2770
+ },
2771
+ {
2772
+ "name": "VoteState",
2773
+ "discriminator": [
2774
+ 100,
2775
+ 177,
2776
+ 100,
2777
+ 106,
2778
+ 158,
2779
+ 188,
2780
+ 195,
2781
+ 137
2782
+ ]
2783
+ }
2784
+ ],
2785
+ "events": [
2786
+ {
2787
+ "name": "OrderCancelled",
2788
+ "discriminator": [
2789
+ 108,
2790
+ 56,
2791
+ 128,
2792
+ 68,
2793
+ 168,
2794
+ 113,
2795
+ 168,
2796
+ 239
2797
+ ]
2798
+ },
2799
+ {
2800
+ "name": "OrderPlaced",
2801
+ "discriminator": [
2802
+ 96,
2803
+ 130,
2804
+ 204,
2805
+ 234,
2806
+ 169,
2807
+ 219,
2808
+ 216,
2809
+ 227
2810
+ ]
2811
+ },
2812
+ {
2813
+ "name": "PositionClaimed",
2814
+ "discriminator": [
2815
+ 149,
2816
+ 250,
2817
+ 141,
2818
+ 45,
2819
+ 210,
2820
+ 198,
2821
+ 94,
2822
+ 148
2823
+ ]
2824
+ },
2825
+ {
2826
+ "name": "PositionUpdated",
2827
+ "discriminator": [
2828
+ 208,
2829
+ 212,
2830
+ 54,
2831
+ 188,
2832
+ 246,
2833
+ 71,
2834
+ 235,
2835
+ 88
2836
+ ]
2837
+ },
2838
+ {
2839
+ "name": "SharesMerged",
2840
+ "discriminator": [
2841
+ 159,
2842
+ 116,
2843
+ 132,
2844
+ 13,
2845
+ 58,
2846
+ 218,
2847
+ 36,
2848
+ 86
2849
+ ]
2850
+ },
2851
+ {
2852
+ "name": "Trade",
2853
+ "discriminator": [
2854
+ 24,
2855
+ 254,
2856
+ 218,
2857
+ 152,
2858
+ 253,
2859
+ 43,
2860
+ 18,
2861
+ 81
2862
+ ]
2863
+ }
2864
+ ],
2865
+ "errors": [
2866
+ {
2867
+ "code": 6000,
2868
+ "name": "InvalidLength"
2869
+ },
2870
+ {
2871
+ "code": 6001,
2872
+ "name": "BodyTooShort"
2873
+ },
2874
+ {
2875
+ "code": 6002,
2876
+ "name": "InvalidUtf8"
2877
+ },
2878
+ {
2879
+ "code": 6003,
2880
+ "name": "InvalidMessageType"
2881
+ }
2882
+ ],
2883
+ "types": [
2884
+ {
2885
+ "name": "AddOrderbookSetParams",
2886
+ "docs": [
2887
+ "Parameters for adding a new orderbook set (leg) to a market"
2888
+ ],
2889
+ "type": {
2890
+ "kind": "struct",
2891
+ "fields": [
2892
+ {
2893
+ "name": "index",
2894
+ "docs": [
2895
+ "Index for this leg (must match current legs.len())"
2896
+ ],
2897
+ "type": "u8"
2898
+ },
2899
+ {
2900
+ "name": "market_data",
2901
+ "type": {
2902
+ "defined": {
2903
+ "name": "MarketData"
2904
+ }
2905
+ }
2906
+ }
2907
+ ]
2908
+ }
2909
+ },
2910
+ {
2911
+ "name": "CoveredBy",
2912
+ "docs": [
2913
+ "What collateral backs an order"
2914
+ ],
2915
+ "repr": {
2916
+ "kind": "rust"
2917
+ },
2918
+ "type": {
2919
+ "kind": "enum",
2920
+ "variants": [
2921
+ {
2922
+ "name": "Usdc"
2923
+ },
2924
+ {
2925
+ "name": "Shares"
2926
+ }
2927
+ ]
2928
+ }
2929
+ },
2930
+ {
2931
+ "name": "CreateMarketParams",
2932
+ "docs": [
2933
+ "Parameters for creating a new market",
2934
+ "Note: description, rules, and resolver_type are now in MarketInfo account"
2935
+ ],
2936
+ "type": {
2937
+ "kind": "struct",
2938
+ "fields": [
2939
+ {
2940
+ "name": "market_id",
2941
+ "type": "u64"
2942
+ },
2943
+ {
2944
+ "name": "category",
2945
+ "type": "string"
2946
+ },
2947
+ {
2948
+ "name": "image_uri",
2949
+ "type": "string"
2950
+ },
2951
+ {
2952
+ "name": "min_order_size",
2953
+ "type": "u64"
2954
+ },
2955
+ {
2956
+ "name": "event_deadline",
2957
+ "type": "i64"
2958
+ },
2959
+ {
2960
+ "name": "market_type",
2961
+ "type": {
2962
+ "defined": {
2963
+ "name": "MarketType"
2964
+ }
2965
+ }
2966
+ }
2967
+ ]
2968
+ }
2969
+ },
2970
+ {
2971
+ "name": "DisputeResolutionParams",
2972
+ "docs": [
2973
+ "Parameters for disputing a resolution and escalating to UMA"
2974
+ ],
2975
+ "type": {
2976
+ "kind": "struct",
2977
+ "fields": [
2978
+ {
2979
+ "name": "dst_eid",
2980
+ "docs": [
2981
+ "Destination endpoint ID (e.g., Sepolia testnet)"
2982
+ ],
2983
+ "type": "u32"
2984
+ },
2985
+ {
2986
+ "name": "options",
2987
+ "docs": [
2988
+ "LayerZero options"
2989
+ ],
2990
+ "type": "bytes"
2991
+ },
2992
+ {
2993
+ "name": "native_fee",
2994
+ "docs": [
2995
+ "Native fee for LayerZero"
2996
+ ],
2997
+ "type": "u64"
2998
+ },
2999
+ {
3000
+ "name": "lz_token_fee",
3001
+ "docs": [
3002
+ "LZ token fee (usually 0)"
3003
+ ],
3004
+ "type": "u64"
3005
+ }
3006
+ ]
3007
+ }
3008
+ },
3009
+ {
3010
+ "name": "EndpointSettings",
3011
+ "type": {
3012
+ "kind": "struct",
3013
+ "fields": [
3014
+ {
3015
+ "name": "eid",
3016
+ "type": "u32"
3017
+ },
3018
+ {
3019
+ "name": "bump",
3020
+ "type": "u8"
3021
+ },
3022
+ {
3023
+ "name": "admin",
3024
+ "type": "pubkey"
3025
+ },
3026
+ {
3027
+ "name": "lz_token_mint",
3028
+ "type": {
3029
+ "option": "pubkey"
3030
+ }
3031
+ }
3032
+ ]
3033
+ }
3034
+ },
3035
+ {
3036
+ "name": "EnforcedOptions",
3037
+ "type": {
3038
+ "kind": "struct",
3039
+ "fields": [
3040
+ {
3041
+ "name": "send",
3042
+ "type": "bytes"
3043
+ },
3044
+ {
3045
+ "name": "send_and_call",
3046
+ "type": "bytes"
3047
+ }
3048
+ ]
3049
+ }
3050
+ },
3051
+ {
3052
+ "name": "FillLog",
3053
+ "docs": [
3054
+ "Persistent fill tracking for a single order book",
3055
+ "This account stores settlement state and is never closed,",
3056
+ "allowing users to claim their filled orders even after the orderbook is closed",
3057
+ "",
3058
+ "Seeds: [b\"fill_log\", market.key(), &[index], &[side as u8]]"
3059
+ ],
3060
+ "serialization": "bytemuckunsafe",
3061
+ "repr": {
3062
+ "kind": "c"
3063
+ },
3064
+ "type": {
3065
+ "kind": "struct",
3066
+ "fields": [
3067
+ {
3068
+ "name": "market",
3069
+ "docs": [
3070
+ "The market this fill log belongs to"
3071
+ ],
3072
+ "type": "pubkey"
3073
+ },
3074
+ {
3075
+ "name": "index",
3076
+ "docs": [
3077
+ "Index identifying which leg of a multi-leg market"
3078
+ ],
3079
+ "type": "u8"
3080
+ },
3081
+ {
3082
+ "name": "side",
3083
+ "docs": [
3084
+ "Side (YES or NO)"
3085
+ ],
3086
+ "type": {
3087
+ "defined": {
3088
+ "name": "OrderSide"
3089
+ }
3090
+ }
3091
+ },
3092
+ {
3093
+ "name": "_padding",
3094
+ "docs": [
3095
+ "Padding for alignment"
3096
+ ],
3097
+ "type": {
3098
+ "array": [
3099
+ "u8",
3100
+ 6
3101
+ ]
3102
+ }
3103
+ },
3104
+ {
3105
+ "name": "ticks",
3106
+ "docs": [
3107
+ "Per-tick settlement tracking"
3108
+ ],
3109
+ "type": {
3110
+ "array": [
3111
+ {
3112
+ "defined": {
3113
+ "name": "FillTick"
3114
+ }
3115
+ },
3116
+ 999
3117
+ ]
3118
+ }
3119
+ }
3120
+ ]
3121
+ }
3122
+ },
3123
+ {
3124
+ "name": "FillTick",
3125
+ "type": {
3126
+ "kind": "struct",
3127
+ "fields": [
3128
+ {
3129
+ "name": "filledUpTo",
3130
+ "type": "u32"
3131
+ },
3132
+ {
3133
+ "name": "padding",
3134
+ "type": "u32"
3135
+ },
3136
+ {
3137
+ "name": "partialAmount",
3138
+ "type": "u64"
3139
+ }
3140
+ ]
3141
+ }
3142
+ },
3143
+ {
3144
+ "name": "InitLzStoreParams",
3145
+ "type": {
3146
+ "kind": "struct",
3147
+ "fields": [
3148
+ {
3149
+ "name": "admin",
3150
+ "type": "pubkey"
3151
+ },
3152
+ {
3153
+ "name": "endpoint",
3154
+ "type": "pubkey"
3155
+ }
3156
+ ]
3157
+ }
3158
+ },
3159
+ {
3160
+ "name": "LzAccount",
3161
+ "docs": [
3162
+ "same to anchor_lang::prelude::AccountMeta"
3163
+ ],
3164
+ "type": {
3165
+ "kind": "struct",
3166
+ "fields": [
3167
+ {
3168
+ "name": "pubkey",
3169
+ "type": "pubkey"
3170
+ },
3171
+ {
3172
+ "name": "is_signer",
3173
+ "type": "bool"
3174
+ },
3175
+ {
3176
+ "name": "is_writable",
3177
+ "type": "bool"
3178
+ }
3179
+ ]
3180
+ }
3181
+ },
3182
+ {
3183
+ "name": "LzPeerConfigParam",
3184
+ "type": {
3185
+ "kind": "enum",
3186
+ "variants": [
3187
+ {
3188
+ "name": "PeerAddress",
3189
+ "fields": [
3190
+ {
3191
+ "array": [
3192
+ "u8",
3193
+ 32
3194
+ ]
3195
+ }
3196
+ ]
3197
+ },
3198
+ {
3199
+ "name": "EnforcedOptions",
3200
+ "fields": [
3201
+ {
3202
+ "name": "send",
3203
+ "type": "bytes"
3204
+ },
3205
+ {
3206
+ "name": "send_and_call",
3207
+ "type": "bytes"
3208
+ }
3209
+ ]
3210
+ }
3211
+ ]
3212
+ }
3213
+ },
3214
+ {
3215
+ "name": "LzQuoteSendParams",
3216
+ "type": {
3217
+ "kind": "struct",
3218
+ "fields": [
3219
+ {
3220
+ "name": "dst_eid",
3221
+ "type": "u32"
3222
+ },
3223
+ {
3224
+ "name": "receiver",
3225
+ "type": {
3226
+ "array": [
3227
+ "u8",
3228
+ 32
3229
+ ]
3230
+ }
3231
+ },
3232
+ {
3233
+ "name": "message",
3234
+ "type": "string"
3235
+ },
3236
+ {
3237
+ "name": "options",
3238
+ "type": "bytes"
3239
+ },
3240
+ {
3241
+ "name": "pay_in_lz_token",
3242
+ "type": "bool"
3243
+ }
3244
+ ]
3245
+ }
3246
+ },
3247
+ {
3248
+ "name": "LzReceiveParams",
3249
+ "type": {
3250
+ "kind": "struct",
3251
+ "fields": [
3252
+ {
3253
+ "name": "src_eid",
3254
+ "type": "u32"
3255
+ },
3256
+ {
3257
+ "name": "sender",
3258
+ "type": {
3259
+ "array": [
3260
+ "u8",
3261
+ 32
3262
+ ]
3263
+ }
3264
+ },
3265
+ {
3266
+ "name": "nonce",
3267
+ "type": "u64"
3268
+ },
3269
+ {
3270
+ "name": "guid",
3271
+ "type": {
3272
+ "array": [
3273
+ "u8",
3274
+ 32
3275
+ ]
3276
+ }
3277
+ },
3278
+ {
3279
+ "name": "message",
3280
+ "type": "bytes"
3281
+ },
3282
+ {
3283
+ "name": "extra_data",
3284
+ "type": "bytes"
3285
+ }
3286
+ ]
3287
+ }
3288
+ },
3289
+ {
3290
+ "name": "LzReceiveTypesAccounts",
3291
+ "docs": [
3292
+ "LzReceiveTypesAccounts PDA is used by the Executor as a prerequisite to calling `lz_receive`"
3293
+ ],
3294
+ "type": {
3295
+ "kind": "struct",
3296
+ "fields": [
3297
+ {
3298
+ "name": "store",
3299
+ "type": "pubkey"
3300
+ }
3301
+ ]
3302
+ }
3303
+ },
3304
+ {
3305
+ "name": "LzResolveMarketParams",
3306
+ "type": {
3307
+ "kind": "struct",
3308
+ "fields": [
3309
+ {
3310
+ "name": "dst_eid",
3311
+ "type": "u32"
3312
+ },
3313
+ {
3314
+ "name": "options",
3315
+ "type": "bytes"
3316
+ },
3317
+ {
3318
+ "name": "native_fee",
3319
+ "type": "u64"
3320
+ },
3321
+ {
3322
+ "name": "lz_token_fee",
3323
+ "type": "u64"
3324
+ }
3325
+ ]
3326
+ }
3327
+ },
3328
+ {
3329
+ "name": "LzStore",
3330
+ "docs": [
3331
+ "Store PDA for LayerZero OApp configuration",
3332
+ "This account represents the \"address\" of the OApp on Solana"
3333
+ ],
3334
+ "type": {
3335
+ "kind": "struct",
3336
+ "fields": [
3337
+ {
3338
+ "name": "admin",
3339
+ "type": "pubkey"
3340
+ },
3341
+ {
3342
+ "name": "bump",
3343
+ "type": "u8"
3344
+ },
3345
+ {
3346
+ "name": "endpoint_program",
3347
+ "type": "pubkey"
3348
+ },
3349
+ {
3350
+ "name": "last_message",
3351
+ "docs": [
3352
+ "Last received cross-chain message (for debugging/tracking)"
3353
+ ],
3354
+ "type": "string"
3355
+ }
3356
+ ]
3357
+ }
3358
+ },
3359
+ {
3360
+ "name": "Market",
3361
+ "docs": [
3362
+ "Market account that holds shared constants and per-leg data",
3363
+ "Space is manually calculated using calculate_regular_market_space/calculate_multileg_market_space",
3364
+ "String length constraints are enforced at runtime in instruction handlers"
3365
+ ],
3366
+ "type": {
3367
+ "kind": "struct",
3368
+ "fields": [
3369
+ {
3370
+ "name": "market_id",
3371
+ "docs": [
3372
+ "Unique market identifier"
3373
+ ],
3374
+ "type": "u64"
3375
+ },
3376
+ {
3377
+ "name": "creator",
3378
+ "docs": [
3379
+ "Creator of the market"
3380
+ ],
3381
+ "type": "pubkey"
3382
+ },
3383
+ {
3384
+ "name": "market_info",
3385
+ "docs": [
3386
+ "Reference to MarketInfo account (contains description, rules, resolver_type, etc.)"
3387
+ ],
3388
+ "type": "pubkey"
3389
+ },
3390
+ {
3391
+ "name": "category",
3392
+ "docs": [
3393
+ "Market category (max 32 chars, validated at runtime)"
3394
+ ],
3395
+ "type": "string"
3396
+ },
3397
+ {
3398
+ "name": "image_uri",
3399
+ "docs": [
3400
+ "Image URI for the market (max 128 chars, validated at runtime)"
3401
+ ],
3402
+ "type": "string"
3403
+ },
3404
+ {
3405
+ "name": "created_at",
3406
+ "docs": [
3407
+ "When the market was created"
3408
+ ],
3409
+ "type": "u64"
3410
+ },
3411
+ {
3412
+ "name": "min_order_size",
3413
+ "docs": [
3414
+ "Minimum order size in USDC base units"
3415
+ ],
3416
+ "type": "u64"
3417
+ },
3418
+ {
3419
+ "name": "event_deadline",
3420
+ "docs": [
3421
+ "Event deadline - when the real-world event occurs (unix timestamp in seconds)"
3422
+ ],
3423
+ "type": "i64"
3424
+ },
3425
+ {
3426
+ "name": "fee_bps",
3427
+ "docs": [
3428
+ "Trading fee in basis points (e.g., 100 = 1%)"
3429
+ ],
3430
+ "type": "u16"
3431
+ },
3432
+ {
3433
+ "name": "verified",
3434
+ "docs": [
3435
+ "Whether this market has been verified by an admin"
3436
+ ],
3437
+ "type": "bool"
3438
+ },
3439
+ {
3440
+ "name": "market_type",
3441
+ "docs": [
3442
+ "Market type containing per-leg data"
3443
+ ],
3444
+ "type": {
3445
+ "defined": {
3446
+ "name": "MarketType"
3447
+ }
3448
+ }
3449
+ }
3450
+ ]
3451
+ }
3452
+ },
3453
+ {
3454
+ "name": "MarketData",
3455
+ "docs": [
3456
+ "Per-leg market data (order books, vault, resolution state)",
3457
+ "For Regular markets, there is one MarketData. For MultiLeg markets, there is a Vec<MarketData>."
3458
+ ],
3459
+ "type": {
3460
+ "kind": "struct",
3461
+ "fields": [
3462
+ {
3463
+ "name": "name",
3464
+ "docs": [
3465
+ "Short title/name for this leg (e.g., \"BTC above 50k\")"
3466
+ ],
3467
+ "type": "string"
3468
+ },
3469
+ {
3470
+ "name": "yes_order_book",
3471
+ "docs": [
3472
+ "YES order book account for this leg"
3473
+ ],
3474
+ "type": "pubkey"
3475
+ },
3476
+ {
3477
+ "name": "no_order_book",
3478
+ "docs": [
3479
+ "NO order book account for this leg"
3480
+ ],
3481
+ "type": "pubkey"
3482
+ },
3483
+ {
3484
+ "name": "yes_fill_log",
3485
+ "docs": [
3486
+ "YES fill log account for this leg (persistent fill tracking)"
3487
+ ],
3488
+ "type": "pubkey"
3489
+ },
3490
+ {
3491
+ "name": "no_fill_log",
3492
+ "docs": [
3493
+ "NO fill log account for this leg (persistent fill tracking)"
3494
+ ],
3495
+ "type": "pubkey"
3496
+ },
3497
+ {
3498
+ "name": "vault",
3499
+ "docs": [
3500
+ "USDC vault for this leg"
3501
+ ],
3502
+ "type": "pubkey"
3503
+ },
3504
+ {
3505
+ "name": "status",
3506
+ "docs": [
3507
+ "Current status for this leg"
3508
+ ],
3509
+ "type": {
3510
+ "defined": {
3511
+ "name": "MarketStatus"
3512
+ }
3513
+ }
3514
+ },
3515
+ {
3516
+ "name": "winning_side",
3517
+ "docs": [
3518
+ "Winning side for this leg (only valid when status == Resolved)"
3519
+ ],
3520
+ "type": {
3521
+ "defined": {
3522
+ "name": "OrderSide"
3523
+ }
3524
+ }
3525
+ },
3526
+ {
3527
+ "name": "resolving_state",
3528
+ "docs": [
3529
+ "Resolution request state for this leg"
3530
+ ],
3531
+ "type": {
3532
+ "defined": {
3533
+ "name": "ResolvingState"
3534
+ }
3535
+ }
3536
+ },
3537
+ {
3538
+ "name": "shares_outstanding",
3539
+ "docs": [
3540
+ "Total share pairs in circulation for this leg (YES == NO == this value)"
3541
+ ],
3542
+ "type": "u64"
3543
+ },
3544
+ {
3545
+ "name": "total_volume",
3546
+ "docs": [
3547
+ "Total trading volume in USDC base units for this leg"
3548
+ ],
3549
+ "type": "u64"
3550
+ }
3551
+ ]
3552
+ }
3553
+ },
3554
+ {
3555
+ "name": "MarketInfo",
3556
+ "docs": [
3557
+ "MarketInfo account - stores market metadata separately from operational data",
3558
+ "This allows for larger text fields (rules, description) via multi-tx append operations",
3559
+ "Once used by a market, this account becomes immutable (authority set to None, is_locked = true)"
3560
+ ],
3561
+ "type": {
3562
+ "kind": "struct",
3563
+ "fields": [
3564
+ {
3565
+ "name": "authority",
3566
+ "docs": [
3567
+ "Authority who can modify this account (None = immutable)"
3568
+ ],
3569
+ "type": {
3570
+ "option": "pubkey"
3571
+ }
3572
+ },
3573
+ {
3574
+ "name": "is_locked",
3575
+ "docs": [
3576
+ "Whether this MarketInfo has been consumed by a market"
3577
+ ],
3578
+ "type": "bool"
3579
+ },
3580
+ {
3581
+ "name": "market_type",
3582
+ "docs": [
3583
+ "Market type indicator (Regular or MultiLeg)"
3584
+ ],
3585
+ "type": {
3586
+ "defined": {
3587
+ "name": "MarketInfoType"
3588
+ }
3589
+ }
3590
+ },
3591
+ {
3592
+ "name": "resolver_type",
3593
+ "docs": [
3594
+ "Resolver type (UmaResolver or WalletVoteResolver)"
3595
+ ],
3596
+ "type": {
3597
+ "defined": {
3598
+ "name": "ResolverType"
3599
+ }
3600
+ }
3601
+ },
3602
+ {
3603
+ "name": "market_question",
3604
+ "docs": [
3605
+ "Market question (must contain \"___\" if MultiLeg)"
3606
+ ],
3607
+ "type": "string"
3608
+ },
3609
+ {
3610
+ "name": "description",
3611
+ "docs": [
3612
+ "Market description"
3613
+ ],
3614
+ "type": "string"
3615
+ },
3616
+ {
3617
+ "name": "rules",
3618
+ "docs": [
3619
+ "Resolution rules (can be arbitrarily long via append operations)"
3620
+ ],
3621
+ "type": "string"
3622
+ }
3623
+ ]
3624
+ }
3625
+ },
3626
+ {
3627
+ "name": "MarketInfoType",
3628
+ "docs": [
3629
+ "Market info type indicator (does not contain leg data)"
3630
+ ],
3631
+ "repr": {
3632
+ "kind": "rust"
3633
+ },
3634
+ "type": {
3635
+ "kind": "enum",
3636
+ "variants": [
3637
+ {
3638
+ "name": "Regular"
3639
+ },
3640
+ {
3641
+ "name": "MultiLeg"
3642
+ }
3643
+ ]
3644
+ }
3645
+ },
3646
+ {
3647
+ "name": "MarketStatus",
3648
+ "docs": [
3649
+ "Market status"
3650
+ ],
3651
+ "repr": {
3652
+ "kind": "rust"
3653
+ },
3654
+ "type": {
3655
+ "kind": "enum",
3656
+ "variants": [
3657
+ {
3658
+ "name": "Active"
3659
+ },
3660
+ {
3661
+ "name": "Paused"
3662
+ },
3663
+ {
3664
+ "name": "Resolved"
3665
+ }
3666
+ ]
3667
+ }
3668
+ },
3669
+ {
3670
+ "name": "MarketType",
3671
+ "docs": [
3672
+ "Market type enum - Regular (single leg) or MultiLeg (multiple legs)"
3673
+ ],
3674
+ "type": {
3675
+ "kind": "enum",
3676
+ "variants": [
3677
+ {
3678
+ "name": "Regular",
3679
+ "fields": [
3680
+ {
3681
+ "defined": {
3682
+ "name": "MarketData"
3683
+ }
3684
+ }
3685
+ ]
3686
+ },
3687
+ {
3688
+ "name": "MultiLeg",
3689
+ "fields": [
3690
+ {
3691
+ "vec": {
3692
+ "defined": {
3693
+ "name": "MarketData"
3694
+ }
3695
+ }
3696
+ }
3697
+ ]
3698
+ }
3699
+ ]
3700
+ }
3701
+ },
3702
+ {
3703
+ "name": "MessagingFee",
3704
+ "type": {
3705
+ "kind": "struct",
3706
+ "fields": [
3707
+ {
3708
+ "name": "native_fee",
3709
+ "type": "u64"
3710
+ },
3711
+ {
3712
+ "name": "lz_token_fee",
3713
+ "type": "u64"
3714
+ }
3715
+ ]
3716
+ }
3717
+ },
3718
+ {
3719
+ "name": "Order",
3720
+ "type": {
3721
+ "kind": "struct",
3722
+ "fields": [
3723
+ {
3724
+ "name": "authority",
3725
+ "type": "pubkey"
3726
+ },
3727
+ {
3728
+ "name": "market",
3729
+ "type": "pubkey"
3730
+ },
3731
+ {
3732
+ "name": "index",
3733
+ "docs": [
3734
+ "Index identifying which leg of a multi-leg market this order belongs to"
3735
+ ],
3736
+ "type": "u8"
3737
+ },
3738
+ {
3739
+ "name": "side",
3740
+ "docs": [
3741
+ "Which side this order is for (YES or NO)"
3742
+ ],
3743
+ "type": {
3744
+ "defined": {
3745
+ "name": "OrderSide"
3746
+ }
3747
+ }
3748
+ },
3749
+ {
3750
+ "name": "price",
3751
+ "docs": [
3752
+ "Price in 0.1¢ increments (1-999)"
3753
+ ],
3754
+ "type": "u16"
3755
+ },
3756
+ {
3757
+ "name": "order_id",
3758
+ "docs": [
3759
+ "Order ID within the price tick"
3760
+ ],
3761
+ "type": "u32"
3762
+ },
3763
+ {
3764
+ "name": "amount",
3765
+ "docs": [
3766
+ "Number of shares"
3767
+ ],
3768
+ "type": "u64"
3769
+ },
3770
+ {
3771
+ "name": "seed",
3772
+ "docs": [
3773
+ "Unique seed for PDA derivation"
3774
+ ],
3775
+ "type": "u32"
3776
+ },
3777
+ {
3778
+ "name": "covered_by",
3779
+ "docs": [
3780
+ "What backs this order - determines claim payout"
3781
+ ],
3782
+ "type": {
3783
+ "defined": {
3784
+ "name": "CoveredBy"
3785
+ }
3786
+ }
3787
+ }
3788
+ ]
3789
+ }
3790
+ },
3791
+ {
3792
+ "name": "OrderBook",
3793
+ "docs": [
3794
+ "Order book implemented as a Red-Black Tree"
3795
+ ],
3796
+ "serialization": "bytemuckunsafe",
3797
+ "repr": {
3798
+ "kind": "c"
3799
+ },
3800
+ "type": {
3801
+ "kind": "struct",
3802
+ "fields": [
3803
+ {
3804
+ "name": "side",
3805
+ "type": {
3806
+ "defined": {
3807
+ "name": "OrderSide"
3808
+ }
3809
+ }
3810
+ },
3811
+ {
3812
+ "name": "index",
3813
+ "docs": [
3814
+ "Index identifying which leg of a multi-leg market this order book belongs to",
3815
+ "For regular markets, this is always 0"
3816
+ ],
3817
+ "type": "u8"
3818
+ },
3819
+ {
3820
+ "name": "_padding",
3821
+ "type": {
3822
+ "array": [
3823
+ "u8",
3824
+ 6
3825
+ ]
3826
+ }
3827
+ },
3828
+ {
3829
+ "name": "market",
3830
+ "docs": [
3831
+ "The market this order book belongs to"
3832
+ ],
3833
+ "type": "pubkey"
3834
+ },
3835
+ {
3836
+ "name": "order_count",
3837
+ "docs": [
3838
+ "Number of active orders"
3839
+ ],
3840
+ "type": "u64"
3841
+ },
3842
+ {
3843
+ "name": "fill_log",
3844
+ "docs": [
3845
+ "Reference to the associated FillLog account (for fill tracking)"
3846
+ ],
3847
+ "type": "pubkey"
3848
+ },
3849
+ {
3850
+ "name": "ticks",
3851
+ "docs": [
3852
+ "Per-tick order ID counter"
3853
+ ],
3854
+ "type": {
3855
+ "array": [
3856
+ {
3857
+ "defined": {
3858
+ "name": "OrderTick"
3859
+ }
3860
+ },
3861
+ 999
3862
+ ]
3863
+ }
3864
+ },
3865
+ {
3866
+ "name": "orders",
3867
+ "docs": [
3868
+ "Red-Black Tree storing orders"
3869
+ ],
3870
+ "type": {
3871
+ "defined": {
3872
+ "name": "OrderTree"
3873
+ }
3874
+ }
3875
+ }
3876
+ ]
3877
+ }
3878
+ },
3879
+ {
3880
+ "name": "OrderCancelled",
3881
+ "docs": [
3882
+ "Emitted when an order is cancelled"
3883
+ ],
3884
+ "type": {
3885
+ "kind": "struct",
3886
+ "fields": [
3887
+ {
3888
+ "name": "market",
3889
+ "docs": [
3890
+ "The market this order belongs to"
3891
+ ],
3892
+ "type": "pubkey"
3893
+ },
3894
+ {
3895
+ "name": "user",
3896
+ "docs": [
3897
+ "The user who cancelled the order"
3898
+ ],
3899
+ "type": "pubkey"
3900
+ },
3901
+ {
3902
+ "name": "order",
3903
+ "docs": [
3904
+ "The order PDA"
3905
+ ],
3906
+ "type": "pubkey"
3907
+ },
3908
+ {
3909
+ "name": "side",
3910
+ "docs": [
3911
+ "YES or NO side"
3912
+ ],
3913
+ "type": {
3914
+ "defined": {
3915
+ "name": "OrderSide"
3916
+ }
3917
+ }
3918
+ },
3919
+ {
3920
+ "name": "price",
3921
+ "docs": [
3922
+ "Price in basis points"
3923
+ ],
3924
+ "type": "u16"
3925
+ },
3926
+ {
3927
+ "name": "amount",
3928
+ "docs": [
3929
+ "Number of shares cancelled"
3930
+ ],
3931
+ "type": "u64"
3932
+ },
3933
+ {
3934
+ "name": "order_id",
3935
+ "docs": [
3936
+ "Order ID"
3937
+ ],
3938
+ "type": "u32"
3939
+ },
3940
+ {
3941
+ "name": "refund_amount",
3942
+ "docs": [
3943
+ "Amount refunded (USDC or shares)"
3944
+ ],
3945
+ "type": "u64"
3946
+ },
3947
+ {
3948
+ "name": "covered_by",
3949
+ "docs": [
3950
+ "Whether backed by USDC or shares"
3951
+ ],
3952
+ "type": {
3953
+ "defined": {
3954
+ "name": "CoveredBy"
3955
+ }
3956
+ }
3957
+ },
3958
+ {
3959
+ "name": "timestamp",
3960
+ "docs": [
3961
+ "Timestamp of cancellation"
3962
+ ],
3963
+ "type": "i64"
3964
+ }
3965
+ ]
3966
+ }
3967
+ },
3968
+ {
3969
+ "name": "OrderPlaced",
3970
+ "docs": [
3971
+ "Emitted when a new limit order is placed"
3972
+ ],
3973
+ "type": {
3974
+ "kind": "struct",
3975
+ "fields": [
3976
+ {
3977
+ "name": "market",
3978
+ "docs": [
3979
+ "The market this order belongs to"
3980
+ ],
3981
+ "type": "pubkey"
3982
+ },
3983
+ {
3984
+ "name": "user",
3985
+ "docs": [
3986
+ "The user who placed the order"
3987
+ ],
3988
+ "type": "pubkey"
3989
+ },
3990
+ {
3991
+ "name": "order",
3992
+ "docs": [
3993
+ "The order PDA"
3994
+ ],
3995
+ "type": "pubkey"
3996
+ },
3997
+ {
3998
+ "name": "side",
3999
+ "docs": [
4000
+ "YES or NO side"
4001
+ ],
4002
+ "type": {
4003
+ "defined": {
4004
+ "name": "OrderSide"
4005
+ }
4006
+ }
4007
+ },
4008
+ {
4009
+ "name": "price",
4010
+ "docs": [
4011
+ "Price in basis points (1-999)"
4012
+ ],
4013
+ "type": "u16"
4014
+ },
4015
+ {
4016
+ "name": "amount",
4017
+ "docs": [
4018
+ "Number of shares"
4019
+ ],
4020
+ "type": "u64"
4021
+ },
4022
+ {
4023
+ "name": "order_id",
4024
+ "docs": [
4025
+ "Order ID within the price tick"
4026
+ ],
4027
+ "type": "u32"
4028
+ },
4029
+ {
4030
+ "name": "covered_by",
4031
+ "docs": [
4032
+ "Whether backed by USDC or shares"
4033
+ ],
4034
+ "type": {
4035
+ "defined": {
4036
+ "name": "CoveredBy"
4037
+ }
4038
+ }
4039
+ },
4040
+ {
4041
+ "name": "timestamp",
4042
+ "docs": [
4043
+ "Timestamp of the order"
4044
+ ],
4045
+ "type": "i64"
4046
+ }
4047
+ ]
4048
+ }
4049
+ },
4050
+ {
4051
+ "name": "OrderSide",
4052
+ "docs": [
4053
+ "Order side enum (YES or NO outcome, None for unresolved, Split for 50/50)"
4054
+ ],
4055
+ "repr": {
4056
+ "kind": "rust"
4057
+ },
4058
+ "type": {
4059
+ "kind": "enum",
4060
+ "variants": [
4061
+ {
4062
+ "name": "Yes"
4063
+ },
4064
+ {
4065
+ "name": "No"
4066
+ },
4067
+ {
4068
+ "name": "None"
4069
+ },
4070
+ {
4071
+ "name": "Split"
4072
+ }
4073
+ ]
4074
+ }
4075
+ },
4076
+ {
4077
+ "name": "OrderTick",
4078
+ "type": {
4079
+ "kind": "struct",
4080
+ "fields": [
4081
+ {
4082
+ "name": "nextOrderId",
4083
+ "type": "u32"
4084
+ }
4085
+ ]
4086
+ }
4087
+ },
4088
+ {
4089
+ "name": "OrderTree",
4090
+ "docs": [
4091
+ "Red-Black Tree stored as raw bytes"
4092
+ ],
4093
+ "type": {
4094
+ "kind": "type",
4095
+ "alias": {
4096
+ "array": [
4097
+ "u8",
4098
+ 16416
4099
+ ]
4100
+ }
4101
+ }
4102
+ },
4103
+ {
4104
+ "name": "PeerConfig",
4105
+ "docs": [
4106
+ "PeerConfig PDAs store configuration for each remote chain",
4107
+ "For each remote chain, a PeerConfig PDA is created with the remote EID as part of the seed"
4108
+ ],
4109
+ "type": {
4110
+ "kind": "struct",
4111
+ "fields": [
4112
+ {
4113
+ "name": "peer_address",
4114
+ "type": {
4115
+ "array": [
4116
+ "u8",
4117
+ 32
4118
+ ]
4119
+ }
4120
+ },
4121
+ {
4122
+ "name": "enforced_options",
4123
+ "type": {
4124
+ "defined": {
4125
+ "name": "EnforcedOptions"
4126
+ }
4127
+ }
4128
+ },
4129
+ {
4130
+ "name": "bump",
4131
+ "type": "u8"
4132
+ }
4133
+ ]
4134
+ }
4135
+ },
4136
+ {
4137
+ "name": "Position",
4138
+ "type": {
4139
+ "kind": "struct",
4140
+ "fields": [
4141
+ {
4142
+ "name": "market",
4143
+ "docs": [
4144
+ "The market this position belongs to"
4145
+ ],
4146
+ "type": "pubkey"
4147
+ },
4148
+ {
4149
+ "name": "index",
4150
+ "docs": [
4151
+ "Index identifying which leg of a multi-leg market this position belongs to"
4152
+ ],
4153
+ "type": "u8"
4154
+ },
4155
+ {
4156
+ "name": "user",
4157
+ "docs": [
4158
+ "The user who owns this position"
4159
+ ],
4160
+ "type": "pubkey"
4161
+ },
4162
+ {
4163
+ "name": "side",
4164
+ "docs": [
4165
+ "The side of the position (Yes or No)"
4166
+ ],
4167
+ "type": {
4168
+ "defined": {
4169
+ "name": "OrderSide"
4170
+ }
4171
+ }
4172
+ },
4173
+ {
4174
+ "name": "amount",
4175
+ "docs": [
4176
+ "The number of shares held"
4177
+ ],
4178
+ "type": "u64"
4179
+ }
4180
+ ]
4181
+ }
4182
+ },
4183
+ {
4184
+ "name": "PositionClaimed",
4185
+ "docs": [
4186
+ "Emitted when a position is claimed from a filled order"
4187
+ ],
4188
+ "type": {
4189
+ "kind": "struct",
4190
+ "fields": [
4191
+ {
4192
+ "name": "market",
4193
+ "docs": [
4194
+ "The market this order belongs to"
4195
+ ],
4196
+ "type": "pubkey"
4197
+ },
4198
+ {
4199
+ "name": "user",
4200
+ "docs": [
4201
+ "The user who owned the order"
4202
+ ],
4203
+ "type": "pubkey"
4204
+ },
4205
+ {
4206
+ "name": "order",
4207
+ "docs": [
4208
+ "The order PDA"
4209
+ ],
4210
+ "type": "pubkey"
4211
+ },
4212
+ {
4213
+ "name": "side",
4214
+ "docs": [
4215
+ "YES or NO side"
4216
+ ],
4217
+ "type": {
4218
+ "defined": {
4219
+ "name": "OrderSide"
4220
+ }
4221
+ }
4222
+ },
4223
+ {
4224
+ "name": "price",
4225
+ "docs": [
4226
+ "Price in basis points"
4227
+ ],
4228
+ "type": "u16"
4229
+ },
4230
+ {
4231
+ "name": "claimed_amount",
4232
+ "docs": [
4233
+ "Number of shares claimed"
4234
+ ],
4235
+ "type": "u64"
4236
+ },
4237
+ {
4238
+ "name": "order_closed",
4239
+ "docs": [
4240
+ "Whether the order is now fully claimed (closed)"
4241
+ ],
4242
+ "type": "bool"
4243
+ },
4244
+ {
4245
+ "name": "covered_by",
4246
+ "docs": [
4247
+ "Whether backed by USDC (claims shares) or Shares (claims USDC)"
4248
+ ],
4249
+ "type": {
4250
+ "defined": {
4251
+ "name": "CoveredBy"
4252
+ }
4253
+ }
4254
+ },
4255
+ {
4256
+ "name": "timestamp",
4257
+ "docs": [
4258
+ "Timestamp of the claim"
4259
+ ],
4260
+ "type": "i64"
4261
+ }
4262
+ ]
4263
+ }
4264
+ },
4265
+ {
4266
+ "name": "PositionUpdated",
4267
+ "docs": [
4268
+ "Emitted when a position is updated"
4269
+ ],
4270
+ "type": {
4271
+ "kind": "struct",
4272
+ "fields": [
4273
+ {
4274
+ "name": "market",
4275
+ "docs": [
4276
+ "The market this position belongs to"
4277
+ ],
4278
+ "type": "pubkey"
4279
+ },
4280
+ {
4281
+ "name": "user",
4282
+ "docs": [
4283
+ "The user who owns the position"
4284
+ ],
4285
+ "type": "pubkey"
4286
+ },
4287
+ {
4288
+ "name": "side",
4289
+ "docs": [
4290
+ "YES or NO side"
4291
+ ],
4292
+ "type": {
4293
+ "defined": {
4294
+ "name": "OrderSide"
4295
+ }
4296
+ }
4297
+ },
4298
+ {
4299
+ "name": "old_amount",
4300
+ "docs": [
4301
+ "Previous amount"
4302
+ ],
4303
+ "type": "u64"
4304
+ },
4305
+ {
4306
+ "name": "new_amount",
4307
+ "docs": [
4308
+ "New amount"
4309
+ ],
4310
+ "type": "u64"
4311
+ },
4312
+ {
4313
+ "name": "delta",
4314
+ "docs": [
4315
+ "Change in amount (positive for increase, could track separately)"
4316
+ ],
4317
+ "type": "i64"
4318
+ },
4319
+ {
4320
+ "name": "timestamp",
4321
+ "docs": [
4322
+ "Timestamp of the update"
4323
+ ],
4324
+ "type": "i64"
4325
+ }
4326
+ ]
4327
+ }
4328
+ },
4329
+ {
4330
+ "name": "ProposeResolutionParams",
4331
+ "docs": [
4332
+ "Parameters for proposing a resolution"
4333
+ ],
4334
+ "type": {
4335
+ "kind": "struct",
4336
+ "fields": [
4337
+ {
4338
+ "name": "proposed_outcome",
4339
+ "docs": [
4340
+ "Proposed outcome: 1 = Yes, 2 = No"
4341
+ ],
4342
+ "type": "u8"
4343
+ }
4344
+ ]
4345
+ }
4346
+ },
4347
+ {
4348
+ "name": "ProposedOutcome",
4349
+ "docs": [
4350
+ "Represents the proposed outcome (Yes or No)"
4351
+ ],
4352
+ "repr": {
4353
+ "kind": "rust"
4354
+ },
4355
+ "type": {
4356
+ "kind": "enum",
4357
+ "variants": [
4358
+ {
4359
+ "name": "None"
4360
+ },
4361
+ {
4362
+ "name": "Yes"
4363
+ },
4364
+ {
4365
+ "name": "No"
4366
+ }
4367
+ ]
4368
+ }
4369
+ },
4370
+ {
4371
+ "name": "ResolutionProposal",
4372
+ "docs": [
4373
+ "Resolution proposal account for the two-tier resolution system",
4374
+ "Seeds: [\"resolution_proposal\", market.key(), index]"
4375
+ ],
4376
+ "type": {
4377
+ "kind": "struct",
4378
+ "fields": [
4379
+ {
4380
+ "name": "market",
4381
+ "docs": [
4382
+ "The market this proposal is for"
4383
+ ],
4384
+ "type": "pubkey"
4385
+ },
4386
+ {
4387
+ "name": "index",
4388
+ "docs": [
4389
+ "Index identifying which leg of a multi-leg market this proposal is for"
4390
+ ],
4391
+ "type": "u8"
4392
+ },
4393
+ {
4394
+ "name": "proposer",
4395
+ "docs": [
4396
+ "The proposer who submitted the initial resolution"
4397
+ ],
4398
+ "type": "pubkey"
4399
+ },
4400
+ {
4401
+ "name": "proposed_outcome",
4402
+ "docs": [
4403
+ "The proposed outcome (Yes or No)"
4404
+ ],
4405
+ "type": {
4406
+ "defined": {
4407
+ "name": "ProposedOutcome"
4408
+ }
4409
+ }
4410
+ },
4411
+ {
4412
+ "name": "proposer_bond",
4413
+ "docs": [
4414
+ "Bond amount deposited by proposer (in USDC base units)"
4415
+ ],
4416
+ "type": "u64"
4417
+ },
4418
+ {
4419
+ "name": "proposed_at",
4420
+ "docs": [
4421
+ "Timestamp when the proposal was submitted"
4422
+ ],
4423
+ "type": "i64"
4424
+ },
4425
+ {
4426
+ "name": "disputer",
4427
+ "docs": [
4428
+ "The disputer (if disputed), otherwise Pubkey::default()"
4429
+ ],
4430
+ "type": "pubkey"
4431
+ },
4432
+ {
4433
+ "name": "disputer_bond",
4434
+ "docs": [
4435
+ "Bond amount deposited by disputer (in USDC base units)"
4436
+ ],
4437
+ "type": "u64"
4438
+ },
4439
+ {
4440
+ "name": "disputed_at",
4441
+ "docs": [
4442
+ "Timestamp when disputed (0 if not disputed)"
4443
+ ],
4444
+ "type": "i64"
4445
+ },
4446
+ {
4447
+ "name": "is_settled",
4448
+ "docs": [
4449
+ "Whether the resolution has been settled (UMA result received)"
4450
+ ],
4451
+ "type": "bool"
4452
+ },
4453
+ {
4454
+ "name": "bonds_claimed",
4455
+ "docs": [
4456
+ "Whether the bonds have been claimed by the winner"
4457
+ ],
4458
+ "type": "bool"
4459
+ },
4460
+ {
4461
+ "name": "bump",
4462
+ "docs": [
4463
+ "PDA bump seed"
4464
+ ],
4465
+ "type": "u8"
4466
+ }
4467
+ ]
4468
+ }
4469
+ },
4470
+ {
4471
+ "name": "ResolverType",
4472
+ "docs": [
4473
+ "Resolver type - determines how market resolution is handled"
4474
+ ],
4475
+ "type": {
4476
+ "kind": "enum",
4477
+ "variants": [
4478
+ {
4479
+ "name": "UmaResolver"
4480
+ },
4481
+ {
4482
+ "name": "WalletVoteResolver",
4483
+ "fields": [
4484
+ {
4485
+ "name": "voters",
4486
+ "docs": [
4487
+ "List of wallet addresses that can vote (max 10)"
4488
+ ],
4489
+ "type": {
4490
+ "vec": "pubkey"
4491
+ }
4492
+ }
4493
+ ]
4494
+ }
4495
+ ]
4496
+ }
4497
+ },
4498
+ {
4499
+ "name": "ResolvingState",
4500
+ "docs": [
4501
+ "Tracks resolution request state (separate from MarketStatus to allow trading during resolution)",
4502
+ "Two-tier system: Propose -> (Finalize | Dispute -> UMA -> Complete)"
4503
+ ],
4504
+ "repr": {
4505
+ "kind": "rust"
4506
+ },
4507
+ "type": {
4508
+ "kind": "enum",
4509
+ "variants": [
4510
+ {
4511
+ "name": "NotStarted"
4512
+ },
4513
+ {
4514
+ "name": "Proposed"
4515
+ },
4516
+ {
4517
+ "name": "Disputed"
4518
+ },
4519
+ {
4520
+ "name": "Completed"
4521
+ }
4522
+ ]
4523
+ }
4524
+ },
4525
+ {
4526
+ "name": "SetLzPeerConfigParams",
4527
+ "type": {
4528
+ "kind": "struct",
4529
+ "fields": [
4530
+ {
4531
+ "name": "remote_eid",
4532
+ "type": "u32"
4533
+ },
4534
+ {
4535
+ "name": "config",
4536
+ "type": {
4537
+ "defined": {
4538
+ "name": "LzPeerConfigParam"
4539
+ }
4540
+ }
4541
+ }
4542
+ ]
4543
+ }
4544
+ },
4545
+ {
4546
+ "name": "SharesMerged",
4547
+ "docs": [
4548
+ "Emitted when shares are merged (redeemed for $1)"
4549
+ ],
4550
+ "type": {
4551
+ "kind": "struct",
4552
+ "fields": [
4553
+ {
4554
+ "name": "market",
4555
+ "docs": [
4556
+ "The market where shares were merged"
4557
+ ],
4558
+ "type": "pubkey"
4559
+ },
4560
+ {
4561
+ "name": "user",
4562
+ "docs": [
4563
+ "The user who merged shares"
4564
+ ],
4565
+ "type": "pubkey"
4566
+ },
4567
+ {
4568
+ "name": "amount",
4569
+ "docs": [
4570
+ "Number of share pairs merged"
4571
+ ],
4572
+ "type": "u64"
4573
+ },
4574
+ {
4575
+ "name": "usdc_received",
4576
+ "docs": [
4577
+ "USDC received"
4578
+ ],
4579
+ "type": "u64"
4580
+ },
4581
+ {
4582
+ "name": "timestamp",
4583
+ "docs": [
4584
+ "Timestamp of the merge"
4585
+ ],
4586
+ "type": "i64"
4587
+ }
4588
+ ]
4589
+ }
4590
+ },
4591
+ {
4592
+ "name": "Trade",
4593
+ "docs": [
4594
+ "Emitted when a market buy or sell trade occurs"
4595
+ ],
4596
+ "type": {
4597
+ "kind": "struct",
4598
+ "fields": [
4599
+ {
4600
+ "name": "market",
4601
+ "docs": [
4602
+ "The market where the trade occurred"
4603
+ ],
4604
+ "type": "pubkey"
4605
+ },
4606
+ {
4607
+ "name": "user",
4608
+ "docs": [
4609
+ "The user who initiated the trade"
4610
+ ],
4611
+ "type": "pubkey"
4612
+ },
4613
+ {
4614
+ "name": "index",
4615
+ "docs": [
4616
+ "The market leg index (0 for single-leg markets)"
4617
+ ],
4618
+ "type": "u8"
4619
+ },
4620
+ {
4621
+ "name": "side",
4622
+ "docs": [
4623
+ "YES or NO side"
4624
+ ],
4625
+ "type": {
4626
+ "defined": {
4627
+ "name": "OrderSide"
4628
+ }
4629
+ }
4630
+ },
4631
+ {
4632
+ "name": "is_buy",
4633
+ "docs": [
4634
+ "Whether this was a buy or sell"
4635
+ ],
4636
+ "type": "bool"
4637
+ },
4638
+ {
4639
+ "name": "shares",
4640
+ "docs": [
4641
+ "Total shares traded"
4642
+ ],
4643
+ "type": "u64"
4644
+ },
4645
+ {
4646
+ "name": "usdc_amount",
4647
+ "docs": [
4648
+ "Total USDC amount"
4649
+ ],
4650
+ "type": "u64"
4651
+ },
4652
+ {
4653
+ "name": "avg_price",
4654
+ "docs": [
4655
+ "Average price (in basis points, calculated as usdc_amount / shares / 1000)"
4656
+ ],
4657
+ "type": "u16"
4658
+ },
4659
+ {
4660
+ "name": "fills_count",
4661
+ "docs": [
4662
+ "Number of orders matched"
4663
+ ],
4664
+ "type": "u32"
4665
+ },
4666
+ {
4667
+ "name": "timestamp",
4668
+ "docs": [
4669
+ "Timestamp of the trade"
4670
+ ],
4671
+ "type": "i64"
4672
+ }
4673
+ ]
4674
+ }
4675
+ },
4676
+ {
4677
+ "name": "VoteRecord",
4678
+ "docs": [
4679
+ "Represents a single voter's vote"
4680
+ ],
4681
+ "type": {
4682
+ "kind": "struct",
4683
+ "fields": [
4684
+ {
4685
+ "name": "voter",
4686
+ "docs": [
4687
+ "The voter's wallet address"
4688
+ ],
4689
+ "type": "pubkey"
4690
+ },
4691
+ {
4692
+ "name": "vote",
4693
+ "docs": [
4694
+ "Vote value: 0=not voted, 1=Yes, 2=No"
4695
+ ],
4696
+ "type": "u8"
4697
+ },
4698
+ {
4699
+ "name": "voted_at",
4700
+ "docs": [
4701
+ "Timestamp when the vote was cast (0 if not voted)"
4702
+ ],
4703
+ "type": "i64"
4704
+ }
4705
+ ]
4706
+ }
4707
+ },
4708
+ {
4709
+ "name": "VoteResolutionParams",
4710
+ "docs": [
4711
+ "Parameters for casting a vote"
4712
+ ],
4713
+ "type": {
4714
+ "kind": "struct",
4715
+ "fields": [
4716
+ {
4717
+ "name": "vote",
4718
+ "docs": [
4719
+ "Vote value: 1 = Yes, 2 = No"
4720
+ ],
4721
+ "type": "u8"
4722
+ }
4723
+ ]
4724
+ }
4725
+ },
4726
+ {
4727
+ "name": "VoteState",
4728
+ "docs": [
4729
+ "Vote state account for WalletVoteResolver markets",
4730
+ "Tracks votes from authorized voters for market resolution",
4731
+ "Seeds: [\"vote_state\", market.key(), index]"
4732
+ ],
4733
+ "type": {
4734
+ "kind": "struct",
4735
+ "fields": [
4736
+ {
4737
+ "name": "market",
4738
+ "docs": [
4739
+ "The market this vote state belongs to"
4740
+ ],
4741
+ "type": "pubkey"
4742
+ },
4743
+ {
4744
+ "name": "index",
4745
+ "docs": [
4746
+ "Index identifying which leg of a multi-leg market this is for"
4747
+ ],
4748
+ "type": "u8"
4749
+ },
4750
+ {
4751
+ "name": "total_voters",
4752
+ "docs": [
4753
+ "Total number of authorized voters"
4754
+ ],
4755
+ "type": "u8"
4756
+ },
4757
+ {
4758
+ "name": "yes_votes",
4759
+ "docs": [
4760
+ "Number of YES votes"
4761
+ ],
4762
+ "type": "u8"
4763
+ },
4764
+ {
4765
+ "name": "no_votes",
4766
+ "docs": [
4767
+ "Number of NO votes"
4768
+ ],
4769
+ "type": "u8"
4770
+ },
4771
+ {
4772
+ "name": "votes",
4773
+ "docs": [
4774
+ "Vote records for each voter (max 10)"
4775
+ ],
4776
+ "type": {
4777
+ "vec": {
4778
+ "defined": {
4779
+ "name": "VoteRecord"
4780
+ }
4781
+ }
4782
+ }
4783
+ },
4784
+ {
4785
+ "name": "is_finalized",
4786
+ "docs": [
4787
+ "Whether voting has been finalized"
4788
+ ],
4789
+ "type": "bool"
4790
+ },
4791
+ {
4792
+ "name": "bump",
4793
+ "docs": [
4794
+ "PDA bump seed"
4795
+ ],
4796
+ "type": "u8"
4797
+ }
4798
+ ]
4799
+ }
4800
+ }
4801
+ ]
4802
+ }