@theliem/xmarket-sdk 3.0.1 → 3.1.1

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.
@@ -9,9 +9,6 @@
9
9
  "instructions": [
10
10
  {
11
11
  "name": "add_admin",
12
- "docs": [
13
- "Set the admin (owner only). Replaces any existing admin."
14
- ],
15
12
  "discriminator": [
16
13
  177,
17
14
  236,
@@ -25,9 +22,6 @@
25
22
  "accounts": [
26
23
  {
27
24
  "name": "owner",
28
- "docs": [
29
- "Must be the current owner"
30
- ],
31
25
  "signer": true
32
26
  },
33
27
  {
@@ -64,9 +58,6 @@
64
58
  },
65
59
  {
66
60
  "name": "add_to_whitelist",
67
- "docs": [
68
- "Add an address to the question market whitelist (admin only)."
69
- ],
70
61
  "discriminator": [
71
62
  157,
72
63
  211,
@@ -120,25 +111,22 @@
120
111
  ]
121
112
  },
122
113
  {
123
- "name": "approve_question",
124
- "docs": [
125
- "Approve a pending question submitted via create_question_with_condition."
126
- ],
114
+ "name": "approve_presale",
127
115
  "discriminator": [
128
- 54,
129
- 149,
130
- 87,
131
- 172,
132
- 67,
133
- 162,
134
- 36,
135
- 108
116
+ 145,
117
+ 218,
118
+ 42,
119
+ 231,
120
+ 144,
121
+ 81,
122
+ 103,
123
+ 34
136
124
  ],
137
125
  "accounts": [
138
126
  {
139
- "name": "admin",
127
+ "name": "caller",
140
128
  "docs": [
141
- "Admin approving the market"
129
+ "Whitelisted caller"
142
130
  ],
143
131
  "signer": true
144
132
  },
@@ -149,9 +137,6 @@
149
137
  },
150
138
  {
151
139
  "name": "config",
152
- "docs": [
153
- "Question Market config"
154
- ],
155
140
  "writable": true,
156
141
  "pda": {
157
142
  "seeds": [
@@ -175,51 +160,16 @@
175
160
  }
176
161
  },
177
162
  {
178
- "name": "question",
163
+ "name": "presale",
179
164
  "docs": [
180
- "Question to approve (must have condition already set)"
165
+ "Presale PDA (mut will be approved)"
181
166
  ],
182
167
  "writable": true
183
- }
184
- ],
185
- "args": []
186
- },
187
- {
188
- "name": "create_question_admin",
189
- "docs": [
190
- "Whitelist-only — matches EVM createQuestionAdmin.",
191
- "Atomically creates Question + CTF condition + YES/NO mints. Status = Approved immediately."
192
- ],
193
- "discriminator": [
194
- 166,
195
- 168,
196
- 104,
197
- 144,
198
- 72,
199
- 150,
200
- 213,
201
- 4
202
- ],
203
- "accounts": [
204
- {
205
- "name": "creator",
206
- "docs": [
207
- "Whitelisted creator (must be in config.whitelist or be admin/owner)"
208
- ],
209
- "signer": true
210
- },
211
- {
212
- "name": "payer",
213
- "docs": [
214
- "Fee payer — can differ from creator (e.g. BE wallet pays rent)"
215
- ],
216
- "writable": true,
217
- "signer": true
218
168
  },
219
169
  {
220
- "name": "config",
170
+ "name": "question",
221
171
  "docs": [
222
- "QuestionMarket config"
172
+ "Question PDA — seeds use presale.key() as question_id"
223
173
  ],
224
174
  "writable": true,
225
175
  "pda": {
@@ -227,40 +177,32 @@
227
177
  {
228
178
  "kind": "const",
229
179
  "value": [
230
- 99,
231
- 111,
232
- 110,
233
- 102,
180
+ 113,
181
+ 117,
182
+ 101,
183
+ 115,
184
+ 116,
234
185
  105,
235
- 103
186
+ 111,
187
+ 110
236
188
  ]
237
189
  },
238
190
  {
239
191
  "kind": "account",
240
- "path": "config.owner",
241
- "account": "QuestionMarketConfig"
192
+ "path": "config"
193
+ },
194
+ {
195
+ "kind": "account",
196
+ "path": "presale"
242
197
  }
243
198
  ]
244
199
  }
245
200
  },
246
201
  {
247
- "name": "question",
248
- "docs": [
249
- "Question PDA"
250
- ],
251
- "writable": true
252
- },
253
- {
254
- "name": "currency_mint",
255
- "docs": [
256
- "Collateral mint (USDC)"
257
- ]
202
+ "name": "currency_mint"
258
203
  },
259
204
  {
260
- "name": "oracle",
261
- "docs": [
262
- "Oracle config pubkey"
263
- ]
205
+ "name": "oracle"
264
206
  },
265
207
  {
266
208
  "name": "condition",
@@ -282,13 +224,73 @@
282
224
  "name": "collateral_vault",
283
225
  "writable": true
284
226
  },
227
+ {
228
+ "name": "market_oracle",
229
+ "docs": [
230
+ "Market oracle PDA (init'd by market-oracle CPI)"
231
+ ],
232
+ "writable": true,
233
+ "pda": {
234
+ "seeds": [
235
+ {
236
+ "kind": "const",
237
+ "value": [
238
+ 109,
239
+ 97,
240
+ 114,
241
+ 107,
242
+ 101,
243
+ 116,
244
+ 95,
245
+ 111,
246
+ 114,
247
+ 97,
248
+ 99,
249
+ 108,
250
+ 101
251
+ ]
252
+ },
253
+ {
254
+ "kind": "account",
255
+ "path": "question"
256
+ }
257
+ ],
258
+ "program": {
259
+ "kind": "account",
260
+ "path": "market_oracle_program"
261
+ }
262
+ }
263
+ },
264
+ {
265
+ "name": "market_oracle_vault",
266
+ "docs": [
267
+ "Market oracle USDC vault (ATA of market_oracle PDA)"
268
+ ],
269
+ "writable": true
270
+ },
285
271
  {
286
272
  "name": "conditional_tokens_program"
287
273
  },
274
+ {
275
+ "name": "presale_program",
276
+ "address": "2Rnw1VoEtsUMQ7wkvYZjDehqSqRob6uNkeymDfvKrquB"
277
+ },
278
+ {
279
+ "name": "market_oracle_program",
280
+ "address": "ADWF4J3nCJ2kWnCtycuem2jhu7amUqJWQG3oa5xF67QJ"
281
+ },
288
282
  {
289
283
  "name": "token_program",
284
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
285
+ },
286
+ {
287
+ "name": "token_2022_program",
290
288
  "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
291
289
  },
290
+ {
291
+ "name": "associated_token_program",
292
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
293
+ },
292
294
  {
293
295
  "name": "system_program",
294
296
  "address": "11111111111111111111111111111111"
@@ -303,48 +305,36 @@
303
305
  "name": "params",
304
306
  "type": {
305
307
  "defined": {
306
- "name": "CreateQuestionAdminParams"
308
+ "name": "ApprovePresaleParams"
307
309
  }
308
310
  }
309
311
  }
310
312
  ]
311
313
  },
312
314
  {
313
- "name": "create_question_with_condition",
314
- "docs": [
315
- "User proposal path (future use) — creates Question in Pending state.",
316
- "Requires admin approval via approve_question before trading."
317
- ],
315
+ "name": "approve_question",
318
316
  "discriminator": [
319
- 155,
320
- 70,
321
- 42,
322
- 101,
323
- 35,
324
- 123,
325
- 180,
326
- 92
317
+ 54,
318
+ 149,
319
+ 87,
320
+ 172,
321
+ 67,
322
+ 162,
323
+ 36,
324
+ 108
327
325
  ],
328
326
  "accounts": [
329
327
  {
330
- "name": "payer",
331
- "docs": [
332
- "Fee payer — pays rent for all new accounts (can differ from creator)"
333
- ],
334
- "writable": true,
335
- "signer": true
336
- },
337
- {
338
- "name": "creator",
328
+ "name": "admin",
339
329
  "docs": [
340
- "Creator of the question (identity only, does not pay)"
330
+ "Admin approving the market"
341
331
  ],
342
332
  "signer": true
343
333
  },
344
334
  {
345
335
  "name": "config",
346
336
  "docs": [
347
- "QuestionMarket config"
337
+ "Question Market config"
348
338
  ],
349
339
  "writable": true,
350
340
  "pda": {
@@ -371,117 +361,119 @@
371
361
  {
372
362
  "name": "question",
373
363
  "docs": [
374
- "Question PDA"
364
+ "Question to approve (must have condition already set)"
375
365
  ],
376
366
  "writable": true
377
- },
367
+ }
368
+ ],
369
+ "args": []
370
+ },
371
+ {
372
+ "name": "collect_presale_revenue",
373
+ "discriminator": [
374
+ 44,
375
+ 142,
376
+ 67,
377
+ 185,
378
+ 225,
379
+ 110,
380
+ 206,
381
+ 57
382
+ ],
383
+ "accounts": [
378
384
  {
379
- "name": "currency_mint",
380
- "docs": [
381
- "Collateral mint (USDC)"
382
- ]
385
+ "name": "caller",
386
+ "signer": true
383
387
  },
384
388
  {
385
- "name": "oracle",
386
- "docs": [
387
- "Oracle config pubkey (used as oracle identifier in the condition)"
388
- ]
389
+ "name": "config",
390
+ "pda": {
391
+ "seeds": [
392
+ {
393
+ "kind": "const",
394
+ "value": [
395
+ 99,
396
+ 111,
397
+ 110,
398
+ 102,
399
+ 105,
400
+ 103
401
+ ]
402
+ },
403
+ {
404
+ "kind": "account",
405
+ "path": "config.owner",
406
+ "account": "QuestionMarketConfig"
407
+ }
408
+ ]
409
+ }
389
410
  },
390
411
  {
391
- "name": "condition",
392
- "docs": [
393
- "The Condition PDA that CTF will create"
394
- ],
412
+ "name": "presale",
395
413
  "writable": true
396
414
  },
397
415
  {
398
- "name": "yes_mint",
416
+ "name": "presale_vault",
399
417
  "docs": [
400
- "YES Token-2022 mint (created by CTF)"
418
+ "Presale USDC vault"
401
419
  ],
402
420
  "writable": true
403
421
  },
404
422
  {
405
- "name": "no_mint",
406
- "docs": [
407
- "NO Token-2022 mint (created by CTF)"
408
- ],
409
- "writable": true
423
+ "name": "currency_mint"
410
424
  },
411
425
  {
412
- "name": "mint_authority",
426
+ "name": "referral_token_account",
413
427
  "docs": [
414
- "Mint authority PDA in CTF"
428
+ "Referral address USDC token account"
415
429
  ],
416
430
  "writable": true
417
431
  },
418
432
  {
419
- "name": "collateral_vault",
433
+ "name": "company_token_account",
420
434
  "docs": [
421
- "Shared collateral vault (must exist)"
435
+ "Company address USDC token account"
422
436
  ],
423
437
  "writable": true
424
438
  },
425
439
  {
426
- "name": "conditional_tokens_program",
427
- "docs": [
428
- "ConditionalTokens program"
429
- ]
440
+ "name": "presale_program",
441
+ "address": "2Rnw1VoEtsUMQ7wkvYZjDehqSqRob6uNkeymDfvKrquB"
430
442
  },
431
443
  {
432
444
  "name": "token_program",
433
- "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
445
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
434
446
  },
435
447
  {
436
- "name": "system_program",
437
- "address": "11111111111111111111111111111111"
448
+ "name": "associated_token_program",
449
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
438
450
  },
439
451
  {
440
- "name": "rent",
441
- "address": "SysvarRent111111111111111111111111111111111"
452
+ "name": "system_program",
453
+ "address": "11111111111111111111111111111111"
442
454
  }
443
455
  ],
444
- "args": [
445
- {
446
- "name": "params",
447
- "type": {
448
- "defined": {
449
- "name": "CreateQuestionWithConditionParams"
450
- }
451
- }
452
- }
453
- ]
456
+ "args": []
454
457
  },
455
458
  {
456
- "name": "initialize",
457
- "docs": [
458
- "Initialize the Question Market config. Caller becomes owner and is auto-whitelisted."
459
- ],
459
+ "name": "collect_trading_fee",
460
460
  "discriminator": [
461
- 175,
462
- 175,
463
- 109,
464
- 31,
465
- 13,
466
- 152,
467
- 155,
468
- 237
461
+ 97,
462
+ 106,
463
+ 99,
464
+ 150,
465
+ 151,
466
+ 221,
467
+ 180,
468
+ 217
469
469
  ],
470
470
  "accounts": [
471
471
  {
472
- "name": "owner",
473
- "docs": [
474
- "Owner initializing the config"
475
- ],
476
- "writable": true,
472
+ "name": "caller",
477
473
  "signer": true
478
474
  },
479
475
  {
480
476
  "name": "config",
481
- "docs": [
482
- "The config account (PDA)"
483
- ],
484
- "writable": true,
485
477
  "pda": {
486
478
  "seeds": [
487
479
  {
@@ -497,50 +489,57 @@
497
489
  },
498
490
  {
499
491
  "kind": "account",
500
- "path": "owner"
492
+ "path": "config.owner",
493
+ "account": "QuestionMarketConfig"
501
494
  }
502
495
  ]
503
496
  }
504
497
  },
505
498
  {
506
- "name": "system_program",
507
- "address": "11111111111111111111111111111111"
508
- }
509
- ],
510
- "args": [
499
+ "name": "market_oracle",
500
+ "docs": [
501
+ "Market oracle PDA"
502
+ ],
503
+ "writable": true
504
+ },
511
505
  {
512
- "name": "params",
513
- "type": {
514
- "defined": {
515
- "name": "InitializeParams"
516
- }
517
- }
506
+ "name": "qt_mint",
507
+ "docs": [
508
+ "QT (MST) mint — supply snapshot taken by market-oracle"
509
+ ]
510
+ },
511
+ {
512
+ "name": "market_oracle_program",
513
+ "address": "ADWF4J3nCJ2kWnCtycuem2jhu7amUqJWQG3oa5xF67QJ"
518
514
  }
519
- ]
515
+ ],
516
+ "args": []
520
517
  },
521
518
  {
522
- "name": "remove_admin",
523
- "docs": [
524
- "Clear the admin (owner only). Sets admin to default pubkey."
525
- ],
519
+ "name": "create_presale",
526
520
  "discriminator": [
527
- 74,
528
- 202,
529
- 71,
530
- 106,
531
- 252,
532
- 31,
533
- 72,
534
- 183
521
+ 176,
522
+ 144,
523
+ 197,
524
+ 158,
525
+ 61,
526
+ 119,
527
+ 75,
528
+ 135
535
529
  ],
536
530
  "accounts": [
537
531
  {
538
- "name": "owner",
532
+ "name": "creator",
539
533
  "docs": [
540
- "Must be the current owner"
534
+ "Creator of the presale"
541
535
  ],
542
536
  "signer": true
543
537
  },
538
+ {
539
+ "name": "payer",
540
+ "writable": true,
541
+ "signer": true
542
+ },
544
543
  {
545
544
  "name": "config",
546
545
  "writable": true,
@@ -564,88 +563,230 @@
564
563
  }
565
564
  ]
566
565
  }
567
- }
568
- ],
569
- "args": []
570
- },
571
- {
572
- "name": "remove_from_whitelist",
573
- "docs": [
574
- "Remove an address from the question market whitelist (admin only)."
575
- ],
576
- "discriminator": [
577
- 7,
578
- 144,
579
- 216,
580
- 239,
581
- 243,
582
- 236,
583
- 193,
584
- 235
585
- ],
586
- "accounts": [
566
+ },
587
567
  {
588
- "name": "authority",
589
- "signer": true
568
+ "name": "fee_config",
569
+ "docs": [
570
+ "Fee config from fee-management program — reads presale rev percentages"
571
+ ]
590
572
  },
591
573
  {
592
- "name": "payer",
574
+ "name": "presale",
575
+ "docs": [
576
+ "Presale PDA (created via CPI to presale program)"
577
+ ],
593
578
  "writable": true,
594
- "signer": true
579
+ "pda": {
580
+ "seeds": [
581
+ {
582
+ "kind": "const",
583
+ "value": [
584
+ 112,
585
+ 114,
586
+ 101,
587
+ 115,
588
+ 97,
589
+ 108,
590
+ 101
591
+ ]
592
+ },
593
+ {
594
+ "kind": "account",
595
+ "path": "config"
596
+ },
597
+ {
598
+ "kind": "account",
599
+ "path": "config.presale_count",
600
+ "account": "QuestionMarketConfig"
601
+ }
602
+ ],
603
+ "program": {
604
+ "kind": "account",
605
+ "path": "presale_program"
606
+ }
607
+ }
595
608
  },
596
609
  {
597
- "name": "config",
610
+ "name": "qt_mint",
611
+ "docs": [
612
+ "MST (QT) mint PDA"
613
+ ],
598
614
  "writable": true,
599
615
  "pda": {
600
616
  "seeds": [
601
617
  {
602
618
  "kind": "const",
603
619
  "value": [
604
- 99,
605
- 111,
620
+ 113,
621
+ 116,
622
+ 95,
623
+ 109,
624
+ 105,
606
625
  110,
607
- 102,
626
+ 116
627
+ ]
628
+ },
629
+ {
630
+ "kind": "account",
631
+ "path": "presale"
632
+ }
633
+ ],
634
+ "program": {
635
+ "kind": "account",
636
+ "path": "presale_program"
637
+ }
638
+ }
639
+ },
640
+ {
641
+ "name": "qt_authority",
642
+ "pda": {
643
+ "seeds": [
644
+ {
645
+ "kind": "const",
646
+ "value": [
647
+ 113,
648
+ 116,
649
+ 95,
650
+ 97,
651
+ 117,
652
+ 116,
653
+ 104,
654
+ 111,
655
+ 114,
608
656
  105,
609
- 103
657
+ 116,
658
+ 121
610
659
  ]
611
660
  },
612
661
  {
613
662
  "kind": "account",
614
- "path": "config.owner",
615
- "account": "QuestionMarketConfig"
663
+ "path": "presale"
616
664
  }
617
- ]
665
+ ],
666
+ "program": {
667
+ "kind": "account",
668
+ "path": "presale_program"
669
+ }
670
+ }
671
+ },
672
+ {
673
+ "name": "currency_mint"
674
+ },
675
+ {
676
+ "name": "presale_vault",
677
+ "docs": [
678
+ "Presale USDC vault (ATA of presale PDA, created via CPI)"
679
+ ],
680
+ "writable": true
681
+ },
682
+ {
683
+ "name": "creator_currency_ata",
684
+ "docs": [
685
+ "Creator's USDC token account — USDC pulled from here"
686
+ ],
687
+ "writable": true
688
+ },
689
+ {
690
+ "name": "creator_qt_ata",
691
+ "docs": [
692
+ "Creator's MST token account (created via CPI)"
693
+ ],
694
+ "writable": true
695
+ },
696
+ {
697
+ "name": "user_buy_record",
698
+ "docs": [
699
+ "User buy record for creator (created via CPI)"
700
+ ],
701
+ "writable": true,
702
+ "pda": {
703
+ "seeds": [
704
+ {
705
+ "kind": "const",
706
+ "value": [
707
+ 117,
708
+ 115,
709
+ 101,
710
+ 114,
711
+ 95,
712
+ 98,
713
+ 117,
714
+ 121
715
+ ]
716
+ },
717
+ {
718
+ "kind": "account",
719
+ "path": "presale"
720
+ },
721
+ {
722
+ "kind": "account",
723
+ "path": "creator"
724
+ }
725
+ ],
726
+ "program": {
727
+ "kind": "account",
728
+ "path": "presale_program"
729
+ }
618
730
  }
731
+ },
732
+ {
733
+ "name": "qt_metadata",
734
+ "writable": true
735
+ },
736
+ {
737
+ "name": "token_metadata_program"
738
+ },
739
+ {
740
+ "name": "presale_program",
741
+ "address": "2Rnw1VoEtsUMQ7wkvYZjDehqSqRob6uNkeymDfvKrquB"
742
+ },
743
+ {
744
+ "name": "token_program",
745
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
746
+ },
747
+ {
748
+ "name": "associated_token_program",
749
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
750
+ },
751
+ {
752
+ "name": "system_program",
753
+ "address": "11111111111111111111111111111111"
754
+ },
755
+ {
756
+ "name": "rent",
757
+ "address": "SysvarRent111111111111111111111111111111111"
619
758
  }
620
759
  ],
621
760
  "args": [
622
761
  {
623
- "name": "address",
624
- "type": "pubkey"
762
+ "name": "params",
763
+ "type": {
764
+ "defined": {
765
+ "name": "CreatePresaleParams"
766
+ }
767
+ }
625
768
  }
626
769
  ]
627
770
  },
628
771
  {
629
- "name": "update_config",
630
- "docs": [
631
- "Update config settings (admin/owner)."
632
- ],
772
+ "name": "create_question_admin",
633
773
  "discriminator": [
634
- 29,
635
- 158,
636
- 252,
637
- 191,
638
- 10,
639
- 83,
640
- 219,
641
- 99
774
+ 166,
775
+ 168,
776
+ 104,
777
+ 144,
778
+ 72,
779
+ 150,
780
+ 213,
781
+ 4
642
782
  ],
643
783
  "accounts": [
644
784
  {
645
- "name": "authority",
785
+ "name": "creator",
646
786
  "docs": [
647
- "Authority making the update (owner for ownership transfer, admin/owner for other updates)"
787
+ "Whitelisted creator also pays rent"
648
788
  ],
789
+ "writable": true,
649
790
  "signer": true
650
791
  },
651
792
  {
@@ -655,9 +796,6 @@
655
796
  },
656
797
  {
657
798
  "name": "config",
658
- "docs": [
659
- "Question Market config"
660
- ],
661
799
  "writable": true,
662
800
  "pda": {
663
801
  "seeds": [
@@ -679,6 +817,51 @@
679
817
  }
680
818
  ]
681
819
  }
820
+ },
821
+ {
822
+ "name": "question",
823
+ "writable": true
824
+ },
825
+ {
826
+ "name": "currency_mint"
827
+ },
828
+ {
829
+ "name": "oracle"
830
+ },
831
+ {
832
+ "name": "condition",
833
+ "writable": true
834
+ },
835
+ {
836
+ "name": "yes_mint",
837
+ "writable": true
838
+ },
839
+ {
840
+ "name": "no_mint",
841
+ "writable": true
842
+ },
843
+ {
844
+ "name": "mint_authority",
845
+ "writable": true
846
+ },
847
+ {
848
+ "name": "collateral_vault",
849
+ "writable": true
850
+ },
851
+ {
852
+ "name": "conditional_tokens_program"
853
+ },
854
+ {
855
+ "name": "token_program",
856
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
857
+ },
858
+ {
859
+ "name": "system_program",
860
+ "address": "11111111111111111111111111111111"
861
+ },
862
+ {
863
+ "name": "rent",
864
+ "address": "SysvarRent111111111111111111111111111111111"
682
865
  }
683
866
  ],
684
867
  "args": [
@@ -686,53 +869,603 @@
686
869
  "name": "params",
687
870
  "type": {
688
871
  "defined": {
689
- "name": "UpdateConfigParams"
872
+ "name": "CreateQuestionAdminParams"
690
873
  }
691
874
  }
692
875
  }
693
876
  ]
694
- }
695
- ],
696
- "accounts": [
697
- {
698
- "name": "Question",
699
- "discriminator": [
700
- 111,
701
- 22,
702
- 150,
703
- 220,
704
- 181,
705
- 122,
706
- 118,
707
- 127
708
- ]
709
877
  },
710
878
  {
711
- "name": "QuestionMarketConfig",
879
+ "name": "initialize",
712
880
  "discriminator": [
713
- 45,
714
- 242,
715
- 195,
716
- 220,
717
- 120,
718
- 252,
719
- 74,
720
- 213
881
+ 175,
882
+ 175,
883
+ 109,
884
+ 31,
885
+ 13,
886
+ 152,
887
+ 155,
888
+ 237
889
+ ],
890
+ "accounts": [
891
+ {
892
+ "name": "owner",
893
+ "docs": [
894
+ "Owner initializing the config"
895
+ ],
896
+ "writable": true,
897
+ "signer": true
898
+ },
899
+ {
900
+ "name": "config",
901
+ "docs": [
902
+ "The config account (PDA)"
903
+ ],
904
+ "writable": true,
905
+ "pda": {
906
+ "seeds": [
907
+ {
908
+ "kind": "const",
909
+ "value": [
910
+ 99,
911
+ 111,
912
+ 110,
913
+ 102,
914
+ 105,
915
+ 103
916
+ ]
917
+ },
918
+ {
919
+ "kind": "account",
920
+ "path": "owner"
921
+ }
922
+ ]
923
+ }
924
+ },
925
+ {
926
+ "name": "system_program",
927
+ "address": "11111111111111111111111111111111"
928
+ }
929
+ ],
930
+ "args": [
931
+ {
932
+ "name": "params",
933
+ "type": {
934
+ "defined": {
935
+ "name": "InitializeParams"
936
+ }
937
+ }
938
+ }
939
+ ]
940
+ },
941
+ {
942
+ "name": "reject_presale",
943
+ "discriminator": [
944
+ 151,
945
+ 57,
946
+ 254,
947
+ 126,
948
+ 97,
949
+ 26,
950
+ 242,
951
+ 106
952
+ ],
953
+ "accounts": [
954
+ {
955
+ "name": "caller",
956
+ "docs": [
957
+ "Whitelisted caller"
958
+ ],
959
+ "signer": true
960
+ },
961
+ {
962
+ "name": "config",
963
+ "pda": {
964
+ "seeds": [
965
+ {
966
+ "kind": "const",
967
+ "value": [
968
+ 99,
969
+ 111,
970
+ 110,
971
+ 102,
972
+ 105,
973
+ 103
974
+ ]
975
+ },
976
+ {
977
+ "kind": "account",
978
+ "path": "config.owner",
979
+ "account": "QuestionMarketConfig"
980
+ }
981
+ ]
982
+ }
983
+ },
984
+ {
985
+ "name": "presale",
986
+ "docs": [
987
+ "Presale PDA (rejected via CPI)"
988
+ ],
989
+ "writable": true
990
+ },
991
+ {
992
+ "name": "presale_program",
993
+ "address": "2Rnw1VoEtsUMQ7wkvYZjDehqSqRob6uNkeymDfvKrquB"
994
+ }
995
+ ],
996
+ "args": []
997
+ },
998
+ {
999
+ "name": "remove_admin",
1000
+ "discriminator": [
1001
+ 74,
1002
+ 202,
1003
+ 71,
1004
+ 106,
1005
+ 252,
1006
+ 31,
1007
+ 72,
1008
+ 183
1009
+ ],
1010
+ "accounts": [
1011
+ {
1012
+ "name": "owner",
1013
+ "signer": true
1014
+ },
1015
+ {
1016
+ "name": "config",
1017
+ "writable": true,
1018
+ "pda": {
1019
+ "seeds": [
1020
+ {
1021
+ "kind": "const",
1022
+ "value": [
1023
+ 99,
1024
+ 111,
1025
+ 110,
1026
+ 102,
1027
+ 105,
1028
+ 103
1029
+ ]
1030
+ },
1031
+ {
1032
+ "kind": "account",
1033
+ "path": "config.owner",
1034
+ "account": "QuestionMarketConfig"
1035
+ }
1036
+ ]
1037
+ }
1038
+ }
1039
+ ],
1040
+ "args": []
1041
+ },
1042
+ {
1043
+ "name": "remove_from_whitelist",
1044
+ "discriminator": [
1045
+ 7,
1046
+ 144,
1047
+ 216,
1048
+ 239,
1049
+ 243,
1050
+ 236,
1051
+ 193,
1052
+ 235
1053
+ ],
1054
+ "accounts": [
1055
+ {
1056
+ "name": "authority",
1057
+ "signer": true
1058
+ },
1059
+ {
1060
+ "name": "payer",
1061
+ "writable": true,
1062
+ "signer": true
1063
+ },
1064
+ {
1065
+ "name": "config",
1066
+ "writable": true,
1067
+ "pda": {
1068
+ "seeds": [
1069
+ {
1070
+ "kind": "const",
1071
+ "value": [
1072
+ 99,
1073
+ 111,
1074
+ 110,
1075
+ 102,
1076
+ 105,
1077
+ 103
1078
+ ]
1079
+ },
1080
+ {
1081
+ "kind": "account",
1082
+ "path": "config.owner",
1083
+ "account": "QuestionMarketConfig"
1084
+ }
1085
+ ]
1086
+ }
1087
+ }
1088
+ ],
1089
+ "args": [
1090
+ {
1091
+ "name": "address",
1092
+ "type": "pubkey"
1093
+ }
1094
+ ]
1095
+ },
1096
+ {
1097
+ "name": "resolve_question",
1098
+ "discriminator": [
1099
+ 52,
1100
+ 32,
1101
+ 224,
1102
+ 179,
1103
+ 180,
1104
+ 8,
1105
+ 0,
1106
+ 246
1107
+ ],
1108
+ "accounts": [
1109
+ {
1110
+ "name": "payer",
1111
+ "docs": [
1112
+ "Payer for any required fees"
1113
+ ],
1114
+ "writable": true,
1115
+ "signer": true
1116
+ },
1117
+ {
1118
+ "name": "config",
1119
+ "docs": [
1120
+ "QuestionMarket config"
1121
+ ],
1122
+ "pda": {
1123
+ "seeds": [
1124
+ {
1125
+ "kind": "const",
1126
+ "value": [
1127
+ 99,
1128
+ 111,
1129
+ 110,
1130
+ 102,
1131
+ 105,
1132
+ 103
1133
+ ]
1134
+ },
1135
+ {
1136
+ "kind": "account",
1137
+ "path": "config.owner",
1138
+ "account": "QuestionMarketConfig"
1139
+ }
1140
+ ]
1141
+ }
1142
+ },
1143
+ {
1144
+ "name": "question",
1145
+ "docs": [
1146
+ "The question to resolve"
1147
+ ],
1148
+ "writable": true,
1149
+ "pda": {
1150
+ "seeds": [
1151
+ {
1152
+ "kind": "const",
1153
+ "value": [
1154
+ 113,
1155
+ 117,
1156
+ 101,
1157
+ 115,
1158
+ 116,
1159
+ 105,
1160
+ 111,
1161
+ 110
1162
+ ]
1163
+ },
1164
+ {
1165
+ "kind": "account",
1166
+ "path": "config"
1167
+ },
1168
+ {
1169
+ "kind": "arg",
1170
+ "path": "question_id"
1171
+ }
1172
+ ]
1173
+ }
1174
+ },
1175
+ {
1176
+ "name": "question_result",
1177
+ "docs": [
1178
+ "Oracle QuestionResult PDA — proves the oracle has resolved",
1179
+ "seeds: [b\"result\", oracle_config, question_id]"
1180
+ ],
1181
+ "pda": {
1182
+ "seeds": [
1183
+ {
1184
+ "kind": "const",
1185
+ "value": [
1186
+ 114,
1187
+ 101,
1188
+ 115,
1189
+ 117,
1190
+ 108,
1191
+ 116
1192
+ ]
1193
+ },
1194
+ {
1195
+ "kind": "account",
1196
+ "path": "config.oracle",
1197
+ "account": "QuestionMarketConfig"
1198
+ },
1199
+ {
1200
+ "kind": "arg",
1201
+ "path": "question_id"
1202
+ }
1203
+ ],
1204
+ "program": {
1205
+ "kind": "account",
1206
+ "path": "oracle_program"
1207
+ }
1208
+ }
1209
+ },
1210
+ {
1211
+ "name": "condition",
1212
+ "docs": [
1213
+ "The Condition account in CTF (will be updated via CPI)"
1214
+ ],
1215
+ "writable": true
1216
+ },
1217
+ {
1218
+ "name": "ctf_program",
1219
+ "docs": [
1220
+ "CTF program (for set_payout CPI)"
1221
+ ]
1222
+ },
1223
+ {
1224
+ "name": "oracle_program",
1225
+ "docs": [
1226
+ "Oracle program (for reading QuestionResult)"
1227
+ ]
1228
+ },
1229
+ {
1230
+ "name": "system_program",
1231
+ "address": "11111111111111111111111111111111"
1232
+ }
1233
+ ],
1234
+ "args": [
1235
+ {
1236
+ "name": "question_id",
1237
+ "type": {
1238
+ "array": [
1239
+ "u8",
1240
+ 32
1241
+ ]
1242
+ }
1243
+ }
1244
+ ]
1245
+ },
1246
+ {
1247
+ "name": "update_config",
1248
+ "discriminator": [
1249
+ 29,
1250
+ 158,
1251
+ 252,
1252
+ 191,
1253
+ 10,
1254
+ 83,
1255
+ 219,
1256
+ 99
1257
+ ],
1258
+ "accounts": [
1259
+ {
1260
+ "name": "authority",
1261
+ "docs": [
1262
+ "Authority making the update (owner for ownership transfer, admin/owner for other updates)"
1263
+ ],
1264
+ "signer": true
1265
+ },
1266
+ {
1267
+ "name": "payer",
1268
+ "writable": true,
1269
+ "signer": true
1270
+ },
1271
+ {
1272
+ "name": "config",
1273
+ "docs": [
1274
+ "Question Market config"
1275
+ ],
1276
+ "writable": true,
1277
+ "pda": {
1278
+ "seeds": [
1279
+ {
1280
+ "kind": "const",
1281
+ "value": [
1282
+ 99,
1283
+ 111,
1284
+ 110,
1285
+ 102,
1286
+ 105,
1287
+ 103
1288
+ ]
1289
+ },
1290
+ {
1291
+ "kind": "account",
1292
+ "path": "config.owner",
1293
+ "account": "QuestionMarketConfig"
1294
+ }
1295
+ ]
1296
+ }
1297
+ }
1298
+ ],
1299
+ "args": [
1300
+ {
1301
+ "name": "params",
1302
+ "type": {
1303
+ "defined": {
1304
+ "name": "UpdateConfigParams"
1305
+ }
1306
+ }
1307
+ }
1308
+ ]
1309
+ },
1310
+ {
1311
+ "name": "update_question_status",
1312
+ "discriminator": [
1313
+ 237,
1314
+ 171,
1315
+ 179,
1316
+ 4,
1317
+ 161,
1318
+ 20,
1319
+ 61,
1320
+ 18
1321
+ ],
1322
+ "accounts": [
1323
+ {
1324
+ "name": "authority",
1325
+ "docs": [
1326
+ "Authority making the status update (admin for reject, oracle for resolve)"
1327
+ ],
1328
+ "signer": true
1329
+ },
1330
+ {
1331
+ "name": "config",
1332
+ "docs": [
1333
+ "Question Market config"
1334
+ ],
1335
+ "writable": true,
1336
+ "pda": {
1337
+ "seeds": [
1338
+ {
1339
+ "kind": "const",
1340
+ "value": [
1341
+ 99,
1342
+ 111,
1343
+ 110,
1344
+ 102,
1345
+ 105,
1346
+ 103
1347
+ ]
1348
+ },
1349
+ {
1350
+ "kind": "account",
1351
+ "path": "config.owner",
1352
+ "account": "QuestionMarketConfig"
1353
+ }
1354
+ ]
1355
+ }
1356
+ },
1357
+ {
1358
+ "name": "question",
1359
+ "docs": [
1360
+ "Question to update"
1361
+ ],
1362
+ "writable": true
1363
+ }
1364
+ ],
1365
+ "args": [
1366
+ {
1367
+ "name": "update_type",
1368
+ "type": {
1369
+ "defined": {
1370
+ "name": "StatusUpdateType"
1371
+ }
1372
+ }
1373
+ }
1374
+ ]
1375
+ }
1376
+ ],
1377
+ "accounts": [
1378
+ {
1379
+ "name": "Question",
1380
+ "discriminator": [
1381
+ 111,
1382
+ 22,
1383
+ 150,
1384
+ 220,
1385
+ 181,
1386
+ 122,
1387
+ 118,
1388
+ 127
1389
+ ]
1390
+ },
1391
+ {
1392
+ "name": "QuestionMarketConfig",
1393
+ "discriminator": [
1394
+ 45,
1395
+ 242,
1396
+ 195,
1397
+ 220,
1398
+ 120,
1399
+ 252,
1400
+ 74,
1401
+ 213
1402
+ ]
1403
+ }
1404
+ ],
1405
+ "events": [
1406
+ {
1407
+ "name": "ConfigUpdated",
1408
+ "discriminator": [
1409
+ 40,
1410
+ 241,
1411
+ 230,
1412
+ 122,
1413
+ 11,
1414
+ 19,
1415
+ 198,
1416
+ 194
1417
+ ]
1418
+ },
1419
+ {
1420
+ "name": "MarketApproved",
1421
+ "discriminator": [
1422
+ 213,
1423
+ 222,
1424
+ 68,
1425
+ 97,
1426
+ 16,
1427
+ 1,
1428
+ 31,
1429
+ 38
1430
+ ]
1431
+ },
1432
+ {
1433
+ "name": "PresaleApprovedAndMarketCreated",
1434
+ "discriminator": [
1435
+ 207,
1436
+ 179,
1437
+ 63,
1438
+ 110,
1439
+ 178,
1440
+ 224,
1441
+ 134,
1442
+ 237
1443
+ ]
1444
+ },
1445
+ {
1446
+ "name": "PresaleCreated",
1447
+ "discriminator": [
1448
+ 22,
1449
+ 188,
1450
+ 215,
1451
+ 56,
1452
+ 113,
1453
+ 251,
1454
+ 168,
1455
+ 248
721
1456
  ]
722
- }
723
- ],
724
- "events": [
1457
+ },
725
1458
  {
726
- "name": "ConfigUpdated",
1459
+ "name": "PresaleRejected",
727
1460
  "discriminator": [
728
- 40,
729
- 241,
730
- 230,
731
- 122,
732
- 11,
733
- 19,
734
- 198,
735
- 194
1461
+ 141,
1462
+ 151,
1463
+ 157,
1464
+ 127,
1465
+ 100,
1466
+ 182,
1467
+ 63,
1468
+ 52
736
1469
  ]
737
1470
  },
738
1471
  {
@@ -762,16 +1495,16 @@
762
1495
  ]
763
1496
  },
764
1497
  {
765
- "name": "QuestionCreatedWithCondition",
1498
+ "name": "QuestionCreated",
766
1499
  "discriminator": [
767
- 70,
768
- 243,
769
- 29,
770
- 212,
771
- 242,
772
- 162,
773
- 132,
774
- 234
1500
+ 34,
1501
+ 127,
1502
+ 167,
1503
+ 217,
1504
+ 216,
1505
+ 141,
1506
+ 151,
1507
+ 205
775
1508
  ]
776
1509
  },
777
1510
  {
@@ -788,22 +1521,276 @@
788
1521
  ]
789
1522
  },
790
1523
  {
791
- "name": "QuestionMarketWhitelistUpdated",
1524
+ "name": "QuestionResolvedMarket",
792
1525
  "discriminator": [
793
- 188,
794
- 209,
795
- 117,
796
- 146,
797
- 229,
798
- 12,
799
- 227,
800
- 42
1526
+ 103,
1527
+ 113,
1528
+ 100,
1529
+ 154,
1530
+ 213,
1531
+ 211,
1532
+ 64,
1533
+ 126
1534
+ ]
1535
+ },
1536
+ {
1537
+ "name": "QuestionStatusUpdated",
1538
+ "discriminator": [
1539
+ 38,
1540
+ 83,
1541
+ 232,
1542
+ 103,
1543
+ 133,
1544
+ 238,
1545
+ 55,
1546
+ 194
801
1547
  ]
802
1548
  }
803
1549
  ],
804
1550
  "types": [
805
1551
  {
806
- "name": "ConfigUpdated",
1552
+ "name": "ApprovePresaleParams",
1553
+ "type": {
1554
+ "kind": "struct",
1555
+ "fields": [
1556
+ {
1557
+ "name": "content_hash",
1558
+ "type": {
1559
+ "array": [
1560
+ "u8",
1561
+ 32
1562
+ ]
1563
+ }
1564
+ },
1565
+ {
1566
+ "name": "hook_program",
1567
+ "type": "pubkey"
1568
+ },
1569
+ {
1570
+ "name": "authorized_clob",
1571
+ "type": "pubkey"
1572
+ },
1573
+ {
1574
+ "name": "expiration_time",
1575
+ "type": "i64"
1576
+ },
1577
+ {
1578
+ "name": "creator",
1579
+ "type": "pubkey"
1580
+ }
1581
+ ]
1582
+ }
1583
+ },
1584
+ {
1585
+ "name": "ConfigUpdated",
1586
+ "type": {
1587
+ "kind": "struct",
1588
+ "fields": [
1589
+ {
1590
+ "name": "config",
1591
+ "type": "pubkey"
1592
+ },
1593
+ {
1594
+ "name": "updated_by",
1595
+ "type": "pubkey"
1596
+ },
1597
+ {
1598
+ "name": "new_admin",
1599
+ "type": {
1600
+ "option": "pubkey"
1601
+ }
1602
+ },
1603
+ {
1604
+ "name": "new_oracle",
1605
+ "type": {
1606
+ "option": "pubkey"
1607
+ }
1608
+ },
1609
+ {
1610
+ "name": "is_paused",
1611
+ "type": {
1612
+ "option": "bool"
1613
+ }
1614
+ }
1615
+ ]
1616
+ }
1617
+ },
1618
+ {
1619
+ "name": "CreatePresaleParams",
1620
+ "type": {
1621
+ "kind": "struct",
1622
+ "fields": [
1623
+ {
1624
+ "name": "price",
1625
+ "type": "u64"
1626
+ },
1627
+ {
1628
+ "name": "start_time",
1629
+ "type": "i64"
1630
+ },
1631
+ {
1632
+ "name": "end_time",
1633
+ "type": "i64"
1634
+ },
1635
+ {
1636
+ "name": "initial_buy_amount",
1637
+ "type": "u64"
1638
+ }
1639
+ ]
1640
+ }
1641
+ },
1642
+ {
1643
+ "name": "CreateQuestionAdminParams",
1644
+ "type": {
1645
+ "kind": "struct",
1646
+ "fields": [
1647
+ {
1648
+ "name": "question_id",
1649
+ "type": {
1650
+ "array": [
1651
+ "u8",
1652
+ 32
1653
+ ]
1654
+ }
1655
+ },
1656
+ {
1657
+ "name": "content_hash",
1658
+ "type": {
1659
+ "array": [
1660
+ "u8",
1661
+ 32
1662
+ ]
1663
+ }
1664
+ },
1665
+ {
1666
+ "name": "hook_program",
1667
+ "type": "pubkey"
1668
+ },
1669
+ {
1670
+ "name": "authorized_clob",
1671
+ "type": "pubkey"
1672
+ },
1673
+ {
1674
+ "name": "expiration_time",
1675
+ "type": "i64"
1676
+ }
1677
+ ]
1678
+ }
1679
+ },
1680
+ {
1681
+ "name": "FeeConfig",
1682
+ "type": {
1683
+ "kind": "struct",
1684
+ "fields": [
1685
+ {
1686
+ "name": "version",
1687
+ "type": "u8"
1688
+ },
1689
+ {
1690
+ "name": "owner",
1691
+ "type": "pubkey"
1692
+ },
1693
+ {
1694
+ "name": "admin",
1695
+ "type": "pubkey"
1696
+ },
1697
+ {
1698
+ "name": "company_address",
1699
+ "type": "pubkey"
1700
+ },
1701
+ {
1702
+ "name": "referral_address",
1703
+ "type": "pubkey"
1704
+ },
1705
+ {
1706
+ "name": "presale_revenue_address",
1707
+ "type": "pubkey"
1708
+ },
1709
+ {
1710
+ "name": "investors_market_rev",
1711
+ "docs": [
1712
+ "Market revenue split: investors + company (out of FEE_DENOMINATOR = 1_000_000)"
1713
+ ],
1714
+ "type": "u32"
1715
+ },
1716
+ {
1717
+ "name": "company_market_rev",
1718
+ "type": "u32"
1719
+ },
1720
+ {
1721
+ "name": "agents_presale_rev",
1722
+ "docs": [
1723
+ "Presale revenue split: agents + company (out of FEE_DENOMINATOR = 1_000_000)"
1724
+ ],
1725
+ "type": "u32"
1726
+ },
1727
+ {
1728
+ "name": "company_presale_rev",
1729
+ "type": "u32"
1730
+ },
1731
+ {
1732
+ "name": "whitelist",
1733
+ "type": {
1734
+ "array": [
1735
+ "pubkey",
1736
+ 10
1737
+ ]
1738
+ }
1739
+ },
1740
+ {
1741
+ "name": "whitelist_len",
1742
+ "type": "u8"
1743
+ },
1744
+ {
1745
+ "name": "bump",
1746
+ "type": "u8"
1747
+ },
1748
+ {
1749
+ "name": "_reserved",
1750
+ "type": {
1751
+ "array": [
1752
+ "u8",
1753
+ 64
1754
+ ]
1755
+ }
1756
+ }
1757
+ ]
1758
+ }
1759
+ },
1760
+ {
1761
+ "name": "InitializeParams",
1762
+ "docs": [
1763
+ "Parameters for initializing the Question Market config"
1764
+ ],
1765
+ "type": {
1766
+ "kind": "struct",
1767
+ "fields": [
1768
+ {
1769
+ "name": "admin",
1770
+ "docs": [
1771
+ "Admin who can approve/reject questions"
1772
+ ],
1773
+ "type": "pubkey"
1774
+ },
1775
+ {
1776
+ "name": "conditional_tokens_program",
1777
+ "docs": [
1778
+ "ConditionalTokens program ID for CPI"
1779
+ ],
1780
+ "type": "pubkey"
1781
+ },
1782
+ {
1783
+ "name": "oracle",
1784
+ "docs": [
1785
+ "Oracle pubkey that will resolve conditions"
1786
+ ],
1787
+ "type": "pubkey"
1788
+ }
1789
+ ]
1790
+ }
1791
+ },
1792
+ {
1793
+ "name": "MarketApproved",
807
1794
  "type": {
808
1795
  "kind": "struct",
809
1796
  "fields": [
@@ -812,157 +1799,112 @@
812
1799
  "type": "pubkey"
813
1800
  },
814
1801
  {
815
- "name": "updated_by",
1802
+ "name": "question",
816
1803
  "type": "pubkey"
817
1804
  },
818
1805
  {
819
- "name": "new_admin",
1806
+ "name": "question_id",
820
1807
  "type": {
821
- "option": "pubkey"
1808
+ "array": [
1809
+ "u8",
1810
+ 32
1811
+ ]
822
1812
  }
823
1813
  },
824
1814
  {
825
- "name": "new_oracle",
826
- "type": {
827
- "option": "pubkey"
828
- }
1815
+ "name": "condition",
1816
+ "type": "pubkey"
829
1817
  },
830
1818
  {
831
- "name": "is_paused",
832
- "type": {
833
- "option": "bool"
834
- }
1819
+ "name": "approved_by",
1820
+ "type": "pubkey"
835
1821
  },
836
1822
  {
837
- "name": "new_conditional_tokens_program",
838
- "type": {
839
- "option": "pubkey"
840
- }
1823
+ "name": "approved_at",
1824
+ "type": "i64"
841
1825
  }
842
1826
  ]
843
1827
  }
844
1828
  },
845
1829
  {
846
- "name": "CreateQuestionAdminParams",
1830
+ "name": "PresaleApprovedAndMarketCreated",
847
1831
  "type": {
848
1832
  "kind": "struct",
849
1833
  "fields": [
850
1834
  {
851
- "name": "question_id",
852
- "type": {
853
- "array": [
854
- "u8",
855
- 32
856
- ]
857
- }
1835
+ "name": "config",
1836
+ "type": "pubkey"
858
1837
  },
859
1838
  {
860
- "name": "content_hash",
861
- "type": {
862
- "array": [
863
- "u8",
864
- 32
865
- ]
866
- }
1839
+ "name": "presale",
1840
+ "type": "pubkey"
867
1841
  },
868
1842
  {
869
- "name": "hook_program",
1843
+ "name": "question",
870
1844
  "type": "pubkey"
871
1845
  },
872
1846
  {
873
- "name": "authorized_clob",
1847
+ "name": "condition",
874
1848
  "type": "pubkey"
875
1849
  },
876
1850
  {
877
- "name": "expiration_time",
878
- "type": "i64"
1851
+ "name": "market_oracle",
1852
+ "type": "pubkey"
1853
+ },
1854
+ {
1855
+ "name": "market_oracle_vault",
1856
+ "type": "pubkey"
1857
+ },
1858
+ {
1859
+ "name": "creator",
1860
+ "type": "pubkey"
879
1861
  }
880
1862
  ]
881
1863
  }
882
1864
  },
883
1865
  {
884
- "name": "CreateQuestionWithConditionParams",
885
- "docs": [
886
- "Parameters for creating a question with condition"
887
- ],
1866
+ "name": "PresaleCreated",
888
1867
  "type": {
889
1868
  "kind": "struct",
890
1869
  "fields": [
891
1870
  {
892
- "name": "question_id",
893
- "docs": [
894
- "Unique question identifier (32-byte hash)"
895
- ],
896
- "type": {
897
- "array": [
898
- "u8",
899
- 32
900
- ]
901
- }
1871
+ "name": "config",
1872
+ "type": "pubkey"
902
1873
  },
903
1874
  {
904
- "name": "content_hash",
905
- "docs": [
906
- "Hash of question content (for on-chain reference)"
907
- ],
908
- "type": {
909
- "array": [
910
- "u8",
911
- 32
912
- ]
913
- }
1875
+ "name": "presale",
1876
+ "type": "pubkey"
914
1877
  },
915
1878
  {
916
- "name": "hook_program",
917
- "docs": [
918
- "Transfer Hook program (guards YES/NO token transfers)"
919
- ],
1879
+ "name": "creator",
920
1880
  "type": "pubkey"
921
1881
  },
922
1882
  {
923
- "name": "authorized_clob",
924
- "docs": [
925
- "The CLOB program authorized to call CTF.transfer_position"
926
- ],
1883
+ "name": "presale_index",
1884
+ "type": "u64"
1885
+ },
1886
+ {
1887
+ "name": "qt_mint",
927
1888
  "type": "pubkey"
928
1889
  },
929
1890
  {
930
- "name": "expiration_time",
931
- "docs": [
932
- "Question expiration timestamp (unix)"
933
- ],
934
- "type": "i64"
1891
+ "name": "currency_mint",
1892
+ "type": "pubkey"
935
1893
  }
936
1894
  ]
937
1895
  }
938
1896
  },
939
1897
  {
940
- "name": "InitializeParams",
941
- "docs": [
942
- "Parameters for initializing the Question Market config"
943
- ],
1898
+ "name": "PresaleRejected",
944
1899
  "type": {
945
1900
  "kind": "struct",
946
1901
  "fields": [
947
1902
  {
948
- "name": "admin",
949
- "docs": [
950
- "Admin who can approve/reject questions"
951
- ],
952
- "type": "pubkey"
953
- },
954
- {
955
- "name": "conditional_tokens_program",
956
- "docs": [
957
- "ConditionalTokens program ID for CPI"
958
- ],
1903
+ "name": "config",
959
1904
  "type": "pubkey"
960
1905
  },
961
1906
  {
962
- "name": "oracle",
963
- "docs": [
964
- "Oracle pubkey that will resolve conditions"
965
- ],
1907
+ "name": "presale",
966
1908
  "type": "pubkey"
967
1909
  }
968
1910
  ]
@@ -970,15 +1912,24 @@
970
1912
  },
971
1913
  {
972
1914
  "name": "Question",
1915
+ "docs": [
1916
+ "Individual question account"
1917
+ ],
973
1918
  "type": {
974
1919
  "kind": "struct",
975
1920
  "fields": [
976
1921
  {
977
1922
  "name": "version",
1923
+ "docs": [
1924
+ "Schema version"
1925
+ ],
978
1926
  "type": "u8"
979
1927
  },
980
1928
  {
981
1929
  "name": "config",
1930
+ "docs": [
1931
+ "Reference to the QuestionMarketConfig"
1932
+ ],
982
1933
  "type": "pubkey"
983
1934
  },
984
1935
  {
@@ -1208,7 +2159,7 @@
1208
2159
  }
1209
2160
  },
1210
2161
  {
1211
- "name": "QuestionCreatedWithCondition",
2162
+ "name": "QuestionCreated",
1212
2163
  "type": {
1213
2164
  "kind": "struct",
1214
2165
  "fields": [
@@ -1230,29 +2181,12 @@
1230
2181
  }
1231
2182
  },
1232
2183
  {
1233
- "name": "condition_id",
1234
- "type": {
1235
- "array": [
1236
- "u8",
1237
- 32
1238
- ]
1239
- }
1240
- },
1241
- {
1242
- "name": "condition",
1243
- "type": "pubkey"
1244
- },
1245
- {
1246
- "name": "yes_mint",
1247
- "type": "pubkey"
1248
- },
1249
- {
1250
- "name": "no_mint",
2184
+ "name": "creator",
1251
2185
  "type": "pubkey"
1252
2186
  },
1253
2187
  {
1254
- "name": "creator",
1255
- "type": "pubkey"
2188
+ "name": "outcome_slot_count",
2189
+ "type": "u8"
1256
2190
  },
1257
2191
  {
1258
2192
  "name": "expiration_time",
@@ -1271,43 +2205,73 @@
1271
2205
  },
1272
2206
  {
1273
2207
  "name": "QuestionMarketConfig",
2208
+ "docs": [
2209
+ "Global configuration for the Question Market program"
2210
+ ],
1274
2211
  "type": {
1275
2212
  "kind": "struct",
1276
2213
  "fields": [
1277
2214
  {
1278
2215
  "name": "version",
2216
+ "docs": [
2217
+ "Schema version"
2218
+ ],
1279
2219
  "type": "u8"
1280
2220
  },
1281
2221
  {
1282
2222
  "name": "owner",
2223
+ "docs": [
2224
+ "Owner with full control (can transfer ownership)"
2225
+ ],
1283
2226
  "type": "pubkey"
1284
2227
  },
1285
2228
  {
1286
2229
  "name": "admin",
2230
+ "docs": [
2231
+ "Admin for day-to-day operations (approve/reject questions)"
2232
+ ],
1287
2233
  "type": "pubkey"
1288
2234
  },
1289
2235
  {
1290
2236
  "name": "conditional_tokens_program",
2237
+ "docs": [
2238
+ "ConditionalTokens program ID for CPI"
2239
+ ],
1291
2240
  "type": "pubkey"
1292
2241
  },
1293
2242
  {
1294
2243
  "name": "oracle",
2244
+ "docs": [
2245
+ "Oracle pubkey that will resolve conditions"
2246
+ ],
1295
2247
  "type": "pubkey"
1296
2248
  },
1297
2249
  {
1298
2250
  "name": "question_count",
2251
+ "docs": [
2252
+ "Total questions created"
2253
+ ],
1299
2254
  "type": "u64"
1300
2255
  },
1301
2256
  {
1302
2257
  "name": "approved_count",
2258
+ "docs": [
2259
+ "Total questions approved (became markets)"
2260
+ ],
1303
2261
  "type": "u64"
1304
2262
  },
1305
2263
  {
1306
2264
  "name": "rejected_count",
2265
+ "docs": [
2266
+ "Total questions rejected"
2267
+ ],
1307
2268
  "type": "u64"
1308
2269
  },
1309
2270
  {
1310
2271
  "name": "whitelist",
2272
+ "docs": [
2273
+ "Whitelist of addresses that can create questions and manage presales"
2274
+ ],
1311
2275
  "type": {
1312
2276
  "array": [
1313
2277
  "pubkey",
@@ -1317,22 +2281,41 @@
1317
2281
  },
1318
2282
  {
1319
2283
  "name": "whitelist_len",
2284
+ "docs": [
2285
+ "Number of entries in whitelist"
2286
+ ],
1320
2287
  "type": "u8"
1321
2288
  },
1322
2289
  {
1323
2290
  "name": "is_paused",
2291
+ "docs": [
2292
+ "Whether the program is paused"
2293
+ ],
1324
2294
  "type": "bool"
1325
2295
  },
1326
2296
  {
1327
2297
  "name": "bump",
2298
+ "docs": [
2299
+ "Bump seed for PDA derivation"
2300
+ ],
1328
2301
  "type": "u8"
1329
2302
  },
2303
+ {
2304
+ "name": "presale_count",
2305
+ "docs": [
2306
+ "Total presales created"
2307
+ ],
2308
+ "type": "u64"
2309
+ },
1330
2310
  {
1331
2311
  "name": "_reserved",
2312
+ "docs": [
2313
+ "Reserved space for future upgrades"
2314
+ ],
1332
2315
  "type": {
1333
2316
  "array": [
1334
2317
  "u8",
1335
- 128
2318
+ 120
1336
2319
  ]
1337
2320
  }
1338
2321
  }
@@ -1368,7 +2351,7 @@
1368
2351
  }
1369
2352
  },
1370
2353
  {
1371
- "name": "QuestionMarketWhitelistUpdated",
2354
+ "name": "QuestionResolvedMarket",
1372
2355
  "type": {
1373
2356
  "kind": "struct",
1374
2357
  "fields": [
@@ -1377,16 +2360,31 @@
1377
2360
  "type": "pubkey"
1378
2361
  },
1379
2362
  {
1380
- "name": "address",
2363
+ "name": "question",
1381
2364
  "type": "pubkey"
1382
2365
  },
1383
2366
  {
1384
- "name": "added",
1385
- "type": "bool"
2367
+ "name": "question_id",
2368
+ "type": {
2369
+ "array": [
2370
+ "u8",
2371
+ 32
2372
+ ]
2373
+ }
1386
2374
  },
1387
2375
  {
1388
- "name": "updated_by",
2376
+ "name": "condition",
1389
2377
  "type": "pubkey"
2378
+ },
2379
+ {
2380
+ "name": "payout_numerators",
2381
+ "type": {
2382
+ "vec": "u64"
2383
+ }
2384
+ },
2385
+ {
2386
+ "name": "resolved_at",
2387
+ "type": "i64"
1390
2388
  }
1391
2389
  ]
1392
2390
  }
@@ -1414,6 +2412,64 @@
1414
2412
  ]
1415
2413
  }
1416
2414
  },
2415
+ {
2416
+ "name": "QuestionStatusUpdated",
2417
+ "type": {
2418
+ "kind": "struct",
2419
+ "fields": [
2420
+ {
2421
+ "name": "config",
2422
+ "type": "pubkey"
2423
+ },
2424
+ {
2425
+ "name": "question",
2426
+ "type": "pubkey"
2427
+ },
2428
+ {
2429
+ "name": "question_id",
2430
+ "type": {
2431
+ "array": [
2432
+ "u8",
2433
+ 32
2434
+ ]
2435
+ }
2436
+ },
2437
+ {
2438
+ "name": "old_status",
2439
+ "type": "u8"
2440
+ },
2441
+ {
2442
+ "name": "new_status",
2443
+ "type": "u8"
2444
+ },
2445
+ {
2446
+ "name": "updated_by",
2447
+ "type": "pubkey"
2448
+ },
2449
+ {
2450
+ "name": "updated_at",
2451
+ "type": "i64"
2452
+ }
2453
+ ]
2454
+ }
2455
+ },
2456
+ {
2457
+ "name": "StatusUpdateType",
2458
+ "docs": [
2459
+ "Type of status update"
2460
+ ],
2461
+ "type": {
2462
+ "kind": "enum",
2463
+ "variants": [
2464
+ {
2465
+ "name": "Reject"
2466
+ },
2467
+ {
2468
+ "name": "MarkResolved"
2469
+ }
2470
+ ]
2471
+ }
2472
+ },
1417
2473
  {
1418
2474
  "name": "UpdateConfigParams",
1419
2475
  "docs": [
@@ -1452,7 +2508,7 @@
1452
2508
  {
1453
2509
  "name": "new_conditional_tokens_program",
1454
2510
  "docs": [
1455
- "New conditional tokens program ID (optional — update when CTF program is redeployed)"
2511
+ "New ConditionalTokens program (optional)"
1456
2512
  ],
1457
2513
  "type": {
1458
2514
  "option": "pubkey"