@parqxchange/sdk 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 (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +122 -0
  3. package/dist/accounts/marketOracle.d.ts +21 -0
  4. package/dist/accounts/marketOracle.js +114 -0
  5. package/dist/accounts/resolve.d.ts +75 -0
  6. package/dist/accounts/resolve.js +116 -0
  7. package/dist/actions/cranks.d.ts +8 -0
  8. package/dist/actions/cranks.js +10 -0
  9. package/dist/actions/liquidity.d.ts +23 -0
  10. package/dist/actions/liquidity.js +21 -0
  11. package/dist/actions/trading.d.ts +39 -0
  12. package/dist/actions/trading.js +95 -0
  13. package/dist/auth/tradingKey.d.ts +27 -0
  14. package/dist/auth/tradingKey.js +71 -0
  15. package/dist/decode/index.d.ts +39 -0
  16. package/dist/decode/index.js +445 -0
  17. package/dist/events/decoder.d.ts +60 -0
  18. package/dist/events/decoder.js +369 -0
  19. package/dist/events/emitter.d.ts +49 -0
  20. package/dist/events/emitter.js +153 -0
  21. package/dist/index.d.ts +25 -0
  22. package/dist/index.js +93 -0
  23. package/dist/indexer/client.d.ts +13 -0
  24. package/dist/indexer/client.js +36 -0
  25. package/dist/indexer/types.d.ts +9 -0
  26. package/dist/indexer/types.js +2 -0
  27. package/dist/minimal.d.ts +3 -0
  28. package/dist/minimal.js +13 -0
  29. package/dist/node.d.ts +1 -0
  30. package/dist/node.js +5 -0
  31. package/dist/programs/feeDistributor.d.ts +42 -0
  32. package/dist/programs/feeDistributor.js +42 -0
  33. package/dist/programs/oracle.d.ts +31 -0
  34. package/dist/programs/oracle.js +49 -0
  35. package/dist/programs/perp.d.ts +283 -0
  36. package/dist/programs/perp.js +346 -0
  37. package/dist/programs/pool.d.ts +113 -0
  38. package/dist/programs/pool.js +126 -0
  39. package/dist/programs/priceFeed.d.ts +13 -0
  40. package/dist/programs/priceFeed.js +21 -0
  41. package/dist/programs/staking.d.ts +76 -0
  42. package/dist/programs/staking.js +135 -0
  43. package/dist/types/index.d.ts +337 -0
  44. package/dist/types/index.js +9 -0
  45. package/dist/utils/computeBudget.d.ts +5 -0
  46. package/dist/utils/computeBudget.js +14 -0
  47. package/dist/utils/errors.d.ts +56 -0
  48. package/dist/utils/errors.js +138 -0
  49. package/dist/utils/pda.d.ts +28 -0
  50. package/dist/utils/pda.js +131 -0
  51. package/dist/utils/priceMath.d.ts +5 -0
  52. package/dist/utils/priceMath.js +46 -0
  53. package/dist/utils/tokenProgram.d.ts +2 -0
  54. package/dist/utils/tokenProgram.js +16 -0
  55. package/dist/utils/transaction.d.ts +2 -0
  56. package/dist/utils/transaction.js +12 -0
  57. package/dist/utils/version.d.ts +11 -0
  58. package/dist/utils/version.js +29 -0
  59. package/idl/fee_distributor.json +779 -0
  60. package/idl/oracle_adapter.json +767 -0
  61. package/idl/perp_engine.json +3908 -0
  62. package/idl/pool_program.json +2956 -0
  63. package/idl/price_feed.json +478 -0
  64. package/idl/staking.json +1336 -0
  65. package/package.json +98 -0
@@ -0,0 +1,1336 @@
1
+ {
2
+ "address": "35HddZHf84u6DeyLoZL3Z3a8pZ59594xu1aizj7VrAGR",
3
+ "metadata": {
4
+ "name": "staking",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0"
7
+ },
8
+ "instructions": [
9
+ {
10
+ "name": "claim_and_restake",
11
+ "discriminator": [
12
+ 118,
13
+ 90,
14
+ 11,
15
+ 74,
16
+ 42,
17
+ 150,
18
+ 65,
19
+ 13
20
+ ],
21
+ "accounts": [
22
+ {
23
+ "name": "owner",
24
+ "writable": true,
25
+ "signer": true,
26
+ "relations": [
27
+ "lp_stake_position"
28
+ ]
29
+ },
30
+ {
31
+ "name": "lp_staking_pool",
32
+ "writable": true,
33
+ "pda": {
34
+ "seeds": [
35
+ {
36
+ "kind": "const",
37
+ "value": [
38
+ 115,
39
+ 116,
40
+ 97,
41
+ 107,
42
+ 105,
43
+ 110,
44
+ 103,
45
+ 95,
46
+ 112,
47
+ 111,
48
+ 111,
49
+ 108
50
+ ]
51
+ },
52
+ {
53
+ "kind": "account",
54
+ "path": "lp_staking_pool.token_mint",
55
+ "account": "StakingPool"
56
+ }
57
+ ]
58
+ }
59
+ },
60
+ {
61
+ "name": "lp_stake_position",
62
+ "writable": true,
63
+ "pda": {
64
+ "seeds": [
65
+ {
66
+ "kind": "const",
67
+ "value": [
68
+ 115,
69
+ 116,
70
+ 97,
71
+ 107,
72
+ 101
73
+ ]
74
+ },
75
+ {
76
+ "kind": "account",
77
+ "path": "lp_staking_pool"
78
+ },
79
+ {
80
+ "kind": "account",
81
+ "path": "owner"
82
+ }
83
+ ]
84
+ }
85
+ },
86
+ {
87
+ "name": "lp_reward_vault",
88
+ "docs": [
89
+ "LP pool's reward vault (protocol tokens — source of claim)"
90
+ ],
91
+ "writable": true
92
+ },
93
+ {
94
+ "name": "proto_staking_pool",
95
+ "writable": true,
96
+ "pda": {
97
+ "seeds": [
98
+ {
99
+ "kind": "const",
100
+ "value": [
101
+ 115,
102
+ 116,
103
+ 97,
104
+ 107,
105
+ 105,
106
+ 110,
107
+ 103,
108
+ 95,
109
+ 112,
110
+ 111,
111
+ 111,
112
+ 108
113
+ ]
114
+ },
115
+ {
116
+ "kind": "account",
117
+ "path": "proto_staking_pool.token_mint",
118
+ "account": "StakingPool"
119
+ }
120
+ ]
121
+ }
122
+ },
123
+ {
124
+ "name": "proto_stake_position",
125
+ "docs": [
126
+ "User's protocol token stake position (init_if_needed)"
127
+ ],
128
+ "writable": true,
129
+ "pda": {
130
+ "seeds": [
131
+ {
132
+ "kind": "const",
133
+ "value": [
134
+ 115,
135
+ 116,
136
+ 97,
137
+ 107,
138
+ 101
139
+ ]
140
+ },
141
+ {
142
+ "kind": "account",
143
+ "path": "proto_staking_pool"
144
+ },
145
+ {
146
+ "kind": "account",
147
+ "path": "owner"
148
+ }
149
+ ]
150
+ }
151
+ },
152
+ {
153
+ "name": "proto_staked_vault",
154
+ "docs": [
155
+ "Protocol token pool's staked vault (destination for restaked tokens)"
156
+ ],
157
+ "writable": true
158
+ },
159
+ {
160
+ "name": "proto_mint",
161
+ "docs": [
162
+ "Proto token mint (the restaked token). Needed for `transfer_checked`."
163
+ ]
164
+ },
165
+ {
166
+ "name": "proto_reward_usdc",
167
+ "docs": [
168
+ "Protocol token pool's reward_usdc (read-only, for BalanceBased index update)"
169
+ ]
170
+ },
171
+ {
172
+ "name": "token_program"
173
+ },
174
+ {
175
+ "name": "system_program",
176
+ "address": "11111111111111111111111111111111"
177
+ }
178
+ ],
179
+ "args": [
180
+ {
181
+ "name": "args",
182
+ "type": {
183
+ "defined": {
184
+ "name": "ClaimAndRestakeArgs"
185
+ }
186
+ }
187
+ }
188
+ ]
189
+ },
190
+ {
191
+ "name": "claim_reward",
192
+ "discriminator": [
193
+ 149,
194
+ 95,
195
+ 181,
196
+ 242,
197
+ 94,
198
+ 90,
199
+ 158,
200
+ 162
201
+ ],
202
+ "accounts": [
203
+ {
204
+ "name": "owner",
205
+ "writable": true,
206
+ "signer": true,
207
+ "relations": [
208
+ "stake_position"
209
+ ]
210
+ },
211
+ {
212
+ "name": "staking_pool",
213
+ "writable": true,
214
+ "pda": {
215
+ "seeds": [
216
+ {
217
+ "kind": "const",
218
+ "value": [
219
+ 115,
220
+ 116,
221
+ 97,
222
+ 107,
223
+ 105,
224
+ 110,
225
+ 103,
226
+ 95,
227
+ 112,
228
+ 111,
229
+ 111,
230
+ 108
231
+ ]
232
+ },
233
+ {
234
+ "kind": "account",
235
+ "path": "staking_pool.token_mint",
236
+ "account": "StakingPool"
237
+ }
238
+ ]
239
+ }
240
+ },
241
+ {
242
+ "name": "stake_position",
243
+ "writable": true,
244
+ "pda": {
245
+ "seeds": [
246
+ {
247
+ "kind": "const",
248
+ "value": [
249
+ 115,
250
+ 116,
251
+ 97,
252
+ 107,
253
+ 101
254
+ ]
255
+ },
256
+ {
257
+ "kind": "account",
258
+ "path": "staking_pool"
259
+ },
260
+ {
261
+ "kind": "account",
262
+ "path": "owner"
263
+ }
264
+ ]
265
+ }
266
+ },
267
+ {
268
+ "name": "reward_mint",
269
+ "docs": [
270
+ "Reward mint (USDC for BalanceBased, proto for EmissionSchedule).",
271
+ "Needed for `transfer_checked` (mint + decimals)."
272
+ ]
273
+ },
274
+ {
275
+ "name": "reward_usdc",
276
+ "docs": [
277
+ "Reward USDC account (BalanceBased). Optional."
278
+ ],
279
+ "writable": true,
280
+ "optional": true
281
+ },
282
+ {
283
+ "name": "owner_usdc_account",
284
+ "docs": [
285
+ "User's USDC account for reward payout (BalanceBased). Optional."
286
+ ],
287
+ "writable": true,
288
+ "optional": true
289
+ },
290
+ {
291
+ "name": "reward_vault",
292
+ "docs": [
293
+ "Reward vault (EmissionSchedule). Optional."
294
+ ],
295
+ "writable": true,
296
+ "optional": true
297
+ },
298
+ {
299
+ "name": "owner_reward_account",
300
+ "docs": [
301
+ "User's token account for emission reward payout (EmissionSchedule). Optional."
302
+ ],
303
+ "writable": true,
304
+ "optional": true
305
+ },
306
+ {
307
+ "name": "reward_token_program",
308
+ "docs": [
309
+ "Token program owning the reward side (USDC legacy or proto 2022)."
310
+ ]
311
+ }
312
+ ],
313
+ "args": []
314
+ },
315
+ {
316
+ "name": "initialize_emission_pool",
317
+ "discriminator": [
318
+ 44,
319
+ 243,
320
+ 76,
321
+ 119,
322
+ 212,
323
+ 160,
324
+ 121,
325
+ 229
326
+ ],
327
+ "accounts": [
328
+ {
329
+ "name": "admin",
330
+ "writable": true,
331
+ "signer": true
332
+ },
333
+ {
334
+ "name": "staking_pool",
335
+ "writable": true,
336
+ "pda": {
337
+ "seeds": [
338
+ {
339
+ "kind": "const",
340
+ "value": [
341
+ 115,
342
+ 116,
343
+ 97,
344
+ 107,
345
+ 105,
346
+ 110,
347
+ 103,
348
+ 95,
349
+ 112,
350
+ 111,
351
+ 111,
352
+ 108
353
+ ]
354
+ },
355
+ {
356
+ "kind": "arg",
357
+ "path": "args.token_mint"
358
+ }
359
+ ]
360
+ }
361
+ },
362
+ {
363
+ "name": "staked_mint",
364
+ "docs": [
365
+ "Staked LP mint (must match `args.token_mint`). Validated against the §6",
366
+ "extension allowlist."
367
+ ]
368
+ },
369
+ {
370
+ "name": "reward_mint",
371
+ "docs": [
372
+ "Reward (proto) mint (must match `args.reward_mint`). Needed for",
373
+ "`transfer_checked` (mint + decimals)."
374
+ ]
375
+ },
376
+ {
377
+ "name": "admin_reward_tokens",
378
+ "docs": [
379
+ "Admin's token account holding the emission allocation."
380
+ ],
381
+ "writable": true
382
+ },
383
+ {
384
+ "name": "reward_vault",
385
+ "docs": [
386
+ "Reward vault owned by the staking pool PDA."
387
+ ],
388
+ "writable": true
389
+ },
390
+ {
391
+ "name": "token_program"
392
+ },
393
+ {
394
+ "name": "system_program",
395
+ "address": "11111111111111111111111111111111"
396
+ }
397
+ ],
398
+ "args": [
399
+ {
400
+ "name": "args",
401
+ "type": {
402
+ "defined": {
403
+ "name": "InitializeEmissionPoolArgs"
404
+ }
405
+ }
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "name": "initialize_staking_pool",
411
+ "discriminator": [
412
+ 231,
413
+ 155,
414
+ 216,
415
+ 76,
416
+ 185,
417
+ 211,
418
+ 34,
419
+ 151
420
+ ],
421
+ "accounts": [
422
+ {
423
+ "name": "admin",
424
+ "writable": true,
425
+ "signer": true
426
+ },
427
+ {
428
+ "name": "staking_pool",
429
+ "writable": true,
430
+ "pda": {
431
+ "seeds": [
432
+ {
433
+ "kind": "const",
434
+ "value": [
435
+ 115,
436
+ 116,
437
+ 97,
438
+ 107,
439
+ 105,
440
+ 110,
441
+ 103,
442
+ 95,
443
+ 112,
444
+ 111,
445
+ 111,
446
+ 108
447
+ ]
448
+ },
449
+ {
450
+ "kind": "arg",
451
+ "path": "args.token_mint"
452
+ }
453
+ ]
454
+ }
455
+ },
456
+ {
457
+ "name": "token_mint",
458
+ "docs": [
459
+ "Staked mint (must match `args.token_mint`). Validated against the §6",
460
+ "extension allowlist."
461
+ ]
462
+ },
463
+ {
464
+ "name": "staked_vault",
465
+ "docs": [
466
+ "Staked vault (must match `args.staked_vault`), owned by the pool PDA,",
467
+ "holding `token_mint`."
468
+ ]
469
+ },
470
+ {
471
+ "name": "system_program",
472
+ "address": "11111111111111111111111111111111"
473
+ }
474
+ ],
475
+ "args": [
476
+ {
477
+ "name": "args",
478
+ "type": {
479
+ "defined": {
480
+ "name": "InitializeStakingPoolArgs"
481
+ }
482
+ }
483
+ }
484
+ ]
485
+ },
486
+ {
487
+ "name": "reclaim_unallocated",
488
+ "discriminator": [
489
+ 192,
490
+ 169,
491
+ 133,
492
+ 207,
493
+ 56,
494
+ 244,
495
+ 64,
496
+ 63
497
+ ],
498
+ "accounts": [
499
+ {
500
+ "name": "admin",
501
+ "writable": true,
502
+ "signer": true
503
+ },
504
+ {
505
+ "name": "staking_pool",
506
+ "writable": true,
507
+ "pda": {
508
+ "seeds": [
509
+ {
510
+ "kind": "const",
511
+ "value": [
512
+ 115,
513
+ 116,
514
+ 97,
515
+ 107,
516
+ 105,
517
+ 110,
518
+ 103,
519
+ 95,
520
+ 112,
521
+ 111,
522
+ 111,
523
+ 108
524
+ ]
525
+ },
526
+ {
527
+ "kind": "account",
528
+ "path": "staking_pool.token_mint",
529
+ "account": "StakingPool"
530
+ }
531
+ ]
532
+ }
533
+ },
534
+ {
535
+ "name": "reward_vault",
536
+ "docs": [
537
+ "Reward vault (EmissionSchedule pool)."
538
+ ],
539
+ "writable": true
540
+ },
541
+ {
542
+ "name": "reward_mint",
543
+ "docs": [
544
+ "Reward (proto) mint. Needed for `transfer_checked` (mint + decimals)."
545
+ ]
546
+ },
547
+ {
548
+ "name": "admin_token_account",
549
+ "docs": [
550
+ "Admin's token account to receive reclaimed tokens."
551
+ ],
552
+ "writable": true
553
+ },
554
+ {
555
+ "name": "token_program"
556
+ }
557
+ ],
558
+ "args": []
559
+ },
560
+ {
561
+ "name": "stake",
562
+ "discriminator": [
563
+ 206,
564
+ 176,
565
+ 202,
566
+ 18,
567
+ 200,
568
+ 209,
569
+ 179,
570
+ 108
571
+ ],
572
+ "accounts": [
573
+ {
574
+ "name": "owner",
575
+ "writable": true,
576
+ "signer": true
577
+ },
578
+ {
579
+ "name": "staking_pool",
580
+ "writable": true,
581
+ "pda": {
582
+ "seeds": [
583
+ {
584
+ "kind": "const",
585
+ "value": [
586
+ 115,
587
+ 116,
588
+ 97,
589
+ 107,
590
+ 105,
591
+ 110,
592
+ 103,
593
+ 95,
594
+ 112,
595
+ 111,
596
+ 111,
597
+ 108
598
+ ]
599
+ },
600
+ {
601
+ "kind": "account",
602
+ "path": "staking_pool.token_mint",
603
+ "account": "StakingPool"
604
+ }
605
+ ]
606
+ }
607
+ },
608
+ {
609
+ "name": "stake_position",
610
+ "writable": true,
611
+ "pda": {
612
+ "seeds": [
613
+ {
614
+ "kind": "const",
615
+ "value": [
616
+ 115,
617
+ 116,
618
+ 97,
619
+ 107,
620
+ 101
621
+ ]
622
+ },
623
+ {
624
+ "kind": "account",
625
+ "path": "staking_pool"
626
+ },
627
+ {
628
+ "kind": "account",
629
+ "path": "owner"
630
+ }
631
+ ]
632
+ }
633
+ },
634
+ {
635
+ "name": "staked_vault",
636
+ "writable": true
637
+ },
638
+ {
639
+ "name": "owner_token_account",
640
+ "writable": true
641
+ },
642
+ {
643
+ "name": "token_mint",
644
+ "docs": [
645
+ "Staked mint (must match the pool's staked token). Needed for",
646
+ "`transfer_checked` (mint + decimals)."
647
+ ]
648
+ },
649
+ {
650
+ "name": "reward_usdc",
651
+ "docs": [
652
+ "Reward USDC account. Required for BalanceBased pools only."
653
+ ],
654
+ "optional": true
655
+ },
656
+ {
657
+ "name": "token_program"
658
+ },
659
+ {
660
+ "name": "system_program",
661
+ "address": "11111111111111111111111111111111"
662
+ }
663
+ ],
664
+ "args": [
665
+ {
666
+ "name": "args",
667
+ "type": {
668
+ "defined": {
669
+ "name": "StakeArgs"
670
+ }
671
+ }
672
+ }
673
+ ]
674
+ },
675
+ {
676
+ "name": "unstake",
677
+ "discriminator": [
678
+ 90,
679
+ 95,
680
+ 107,
681
+ 42,
682
+ 205,
683
+ 124,
684
+ 50,
685
+ 225
686
+ ],
687
+ "accounts": [
688
+ {
689
+ "name": "owner",
690
+ "writable": true,
691
+ "signer": true,
692
+ "relations": [
693
+ "stake_position"
694
+ ]
695
+ },
696
+ {
697
+ "name": "staking_pool",
698
+ "writable": true,
699
+ "pda": {
700
+ "seeds": [
701
+ {
702
+ "kind": "const",
703
+ "value": [
704
+ 115,
705
+ 116,
706
+ 97,
707
+ 107,
708
+ 105,
709
+ 110,
710
+ 103,
711
+ 95,
712
+ 112,
713
+ 111,
714
+ 111,
715
+ 108
716
+ ]
717
+ },
718
+ {
719
+ "kind": "account",
720
+ "path": "staking_pool.token_mint",
721
+ "account": "StakingPool"
722
+ }
723
+ ]
724
+ }
725
+ },
726
+ {
727
+ "name": "stake_position",
728
+ "writable": true,
729
+ "pda": {
730
+ "seeds": [
731
+ {
732
+ "kind": "const",
733
+ "value": [
734
+ 115,
735
+ 116,
736
+ 97,
737
+ 107,
738
+ 101
739
+ ]
740
+ },
741
+ {
742
+ "kind": "account",
743
+ "path": "staking_pool"
744
+ },
745
+ {
746
+ "kind": "account",
747
+ "path": "owner"
748
+ }
749
+ ]
750
+ }
751
+ },
752
+ {
753
+ "name": "staked_vault",
754
+ "writable": true
755
+ },
756
+ {
757
+ "name": "owner_token_account",
758
+ "writable": true
759
+ },
760
+ {
761
+ "name": "staked_mint",
762
+ "docs": [
763
+ "Staked mint (principal return side). Needed for `transfer_checked`."
764
+ ]
765
+ },
766
+ {
767
+ "name": "reward_mint",
768
+ "docs": [
769
+ "Reward mint (USDC for BalanceBased, proto for EmissionSchedule).",
770
+ "Needed for `transfer_checked` on the reward leg."
771
+ ]
772
+ },
773
+ {
774
+ "name": "reward_usdc",
775
+ "docs": [
776
+ "Reward USDC account (BalanceBased pools). Optional."
777
+ ],
778
+ "writable": true,
779
+ "optional": true
780
+ },
781
+ {
782
+ "name": "owner_usdc_account",
783
+ "docs": [
784
+ "User's USDC account for reward payout (BalanceBased pools). Optional."
785
+ ],
786
+ "writable": true,
787
+ "optional": true
788
+ },
789
+ {
790
+ "name": "reward_vault",
791
+ "docs": [
792
+ "Reward vault (EmissionSchedule pools). Optional."
793
+ ],
794
+ "writable": true,
795
+ "optional": true
796
+ },
797
+ {
798
+ "name": "owner_reward_account",
799
+ "docs": [
800
+ "User's token account for emission reward payout (EmissionSchedule pools). Optional."
801
+ ],
802
+ "writable": true,
803
+ "optional": true
804
+ },
805
+ {
806
+ "name": "staked_token_program",
807
+ "docs": [
808
+ "Token program owning the staked (principal) side."
809
+ ]
810
+ },
811
+ {
812
+ "name": "reward_token_program",
813
+ "docs": [
814
+ "Token program owning the reward side (USDC legacy or proto 2022)."
815
+ ]
816
+ }
817
+ ],
818
+ "args": []
819
+ },
820
+ {
821
+ "name": "update_reward_index",
822
+ "discriminator": [
823
+ 195,
824
+ 184,
825
+ 231,
826
+ 77,
827
+ 100,
828
+ 215,
829
+ 182,
830
+ 139
831
+ ],
832
+ "accounts": [
833
+ {
834
+ "name": "staking_pool",
835
+ "writable": true,
836
+ "pda": {
837
+ "seeds": [
838
+ {
839
+ "kind": "const",
840
+ "value": [
841
+ 115,
842
+ 116,
843
+ 97,
844
+ 107,
845
+ 105,
846
+ 110,
847
+ 103,
848
+ 95,
849
+ 112,
850
+ 111,
851
+ 111,
852
+ 108
853
+ ]
854
+ },
855
+ {
856
+ "kind": "account",
857
+ "path": "staking_pool.token_mint",
858
+ "account": "StakingPool"
859
+ }
860
+ ]
861
+ }
862
+ },
863
+ {
864
+ "name": "reward_usdc",
865
+ "docs": [
866
+ "Reward USDC account. Required for BalanceBased pools, not needed for EmissionSchedule."
867
+ ],
868
+ "optional": true
869
+ }
870
+ ],
871
+ "args": []
872
+ }
873
+ ],
874
+ "accounts": [
875
+ {
876
+ "name": "StakePosition",
877
+ "discriminator": [
878
+ 78,
879
+ 165,
880
+ 30,
881
+ 111,
882
+ 171,
883
+ 125,
884
+ 11,
885
+ 220
886
+ ]
887
+ },
888
+ {
889
+ "name": "StakingPool",
890
+ "discriminator": [
891
+ 203,
892
+ 19,
893
+ 214,
894
+ 220,
895
+ 220,
896
+ 154,
897
+ 24,
898
+ 102
899
+ ]
900
+ }
901
+ ],
902
+ "events": [
903
+ {
904
+ "name": "CompoundedReward",
905
+ "discriminator": [
906
+ 162,
907
+ 110,
908
+ 0,
909
+ 60,
910
+ 241,
911
+ 162,
912
+ 72,
913
+ 185
914
+ ]
915
+ },
916
+ {
917
+ "name": "RewardClaimed",
918
+ "discriminator": [
919
+ 49,
920
+ 28,
921
+ 87,
922
+ 84,
923
+ 158,
924
+ 48,
925
+ 229,
926
+ 175
927
+ ]
928
+ },
929
+ {
930
+ "name": "RewardIndexUpdated",
931
+ "discriminator": [
932
+ 8,
933
+ 239,
934
+ 245,
935
+ 249,
936
+ 117,
937
+ 91,
938
+ 166,
939
+ 243
940
+ ]
941
+ },
942
+ {
943
+ "name": "Staked",
944
+ "discriminator": [
945
+ 11,
946
+ 146,
947
+ 45,
948
+ 205,
949
+ 230,
950
+ 58,
951
+ 213,
952
+ 240
953
+ ]
954
+ },
955
+ {
956
+ "name": "Unstaked",
957
+ "discriminator": [
958
+ 27,
959
+ 179,
960
+ 156,
961
+ 215,
962
+ 47,
963
+ 71,
964
+ 195,
965
+ 7
966
+ ]
967
+ }
968
+ ],
969
+ "errors": [
970
+ {
971
+ "code": 6000,
972
+ "name": "InvalidTier",
973
+ "msg": "Invalid lockup tier (must be 0, 1, or 2)"
974
+ },
975
+ {
976
+ "code": 6001,
977
+ "name": "LockupNotExpired",
978
+ "msg": "Lockup has not expired"
979
+ },
980
+ {
981
+ "code": 6002,
982
+ "name": "ZeroAmount",
983
+ "msg": "Amount must be greater than zero"
984
+ },
985
+ {
986
+ "code": 6003,
987
+ "name": "WeightedAmountOverflow",
988
+ "msg": "Weighted amount overflow"
989
+ },
990
+ {
991
+ "code": 6004,
992
+ "name": "TierDowngrade",
993
+ "msg": "Cannot downgrade lockup tier"
994
+ },
995
+ {
996
+ "code": 6005,
997
+ "name": "NoRewards",
998
+ "msg": "No rewards to claim"
999
+ },
1000
+ {
1001
+ "code": 6006,
1002
+ "name": "MathOverflow",
1003
+ "msg": "Math overflow"
1004
+ },
1005
+ {
1006
+ "code": 6007,
1007
+ "name": "InvalidRewardSource",
1008
+ "msg": "Invalid reward source (must be 0 or 1)"
1009
+ },
1010
+ {
1011
+ "code": 6008,
1012
+ "name": "InvalidDuration",
1013
+ "msg": "Emission duration must be positive"
1014
+ },
1015
+ {
1016
+ "code": 6009,
1017
+ "name": "MissingRewardAccount",
1018
+ "msg": "Missing reward account for this pool type"
1019
+ },
1020
+ {
1021
+ "code": 6010,
1022
+ "name": "EmissionsNotStarted",
1023
+ "msg": "Emissions have not started yet"
1024
+ },
1025
+ {
1026
+ "code": 6011,
1027
+ "name": "EmissionsNotEnded",
1028
+ "msg": "Emissions have not ended yet"
1029
+ },
1030
+ {
1031
+ "code": 6012,
1032
+ "name": "NothingToReclaim",
1033
+ "msg": "No unallocated tokens to reclaim"
1034
+ },
1035
+ {
1036
+ "code": 6013,
1037
+ "name": "AmountMismatch",
1038
+ "msg": "Transferred amount does not match credited amount"
1039
+ },
1040
+ {
1041
+ "code": 6014,
1042
+ "name": "UnsafeMintExtension",
1043
+ "msg": "Staked mint carries a disallowed Token-2022 extension"
1044
+ }
1045
+ ],
1046
+ "types": [
1047
+ {
1048
+ "name": "ClaimAndRestakeArgs",
1049
+ "type": {
1050
+ "kind": "struct",
1051
+ "fields": [
1052
+ {
1053
+ "name": "tier",
1054
+ "type": "u8"
1055
+ }
1056
+ ]
1057
+ }
1058
+ },
1059
+ {
1060
+ "name": "CompoundedReward",
1061
+ "type": {
1062
+ "kind": "struct",
1063
+ "fields": [
1064
+ {
1065
+ "name": "owner",
1066
+ "type": "pubkey"
1067
+ },
1068
+ {
1069
+ "name": "amount",
1070
+ "type": "u64"
1071
+ },
1072
+ {
1073
+ "name": "tier",
1074
+ "type": "u8"
1075
+ }
1076
+ ]
1077
+ }
1078
+ },
1079
+ {
1080
+ "name": "InitializeEmissionPoolArgs",
1081
+ "type": {
1082
+ "kind": "struct",
1083
+ "fields": [
1084
+ {
1085
+ "name": "token_mint",
1086
+ "type": "pubkey"
1087
+ },
1088
+ {
1089
+ "name": "staked_vault",
1090
+ "type": "pubkey"
1091
+ },
1092
+ {
1093
+ "name": "reward_mint",
1094
+ "type": "pubkey"
1095
+ },
1096
+ {
1097
+ "name": "total_allocation",
1098
+ "type": "u64"
1099
+ },
1100
+ {
1101
+ "name": "duration_seconds",
1102
+ "type": "i64"
1103
+ }
1104
+ ]
1105
+ }
1106
+ },
1107
+ {
1108
+ "name": "InitializeStakingPoolArgs",
1109
+ "type": {
1110
+ "kind": "struct",
1111
+ "fields": [
1112
+ {
1113
+ "name": "token_mint",
1114
+ "type": "pubkey"
1115
+ },
1116
+ {
1117
+ "name": "staked_vault",
1118
+ "type": "pubkey"
1119
+ },
1120
+ {
1121
+ "name": "reward_usdc",
1122
+ "type": "pubkey"
1123
+ }
1124
+ ]
1125
+ }
1126
+ },
1127
+ {
1128
+ "name": "RewardClaimed",
1129
+ "type": {
1130
+ "kind": "struct",
1131
+ "fields": [
1132
+ {
1133
+ "name": "owner",
1134
+ "type": "pubkey"
1135
+ },
1136
+ {
1137
+ "name": "amount_usdc",
1138
+ "type": "u64"
1139
+ }
1140
+ ]
1141
+ }
1142
+ },
1143
+ {
1144
+ "name": "RewardIndexUpdated",
1145
+ "type": {
1146
+ "kind": "struct",
1147
+ "fields": [
1148
+ {
1149
+ "name": "reward_index",
1150
+ "type": "u128"
1151
+ },
1152
+ {
1153
+ "name": "new_rewards",
1154
+ "type": "u64"
1155
+ }
1156
+ ]
1157
+ }
1158
+ },
1159
+ {
1160
+ "name": "StakeArgs",
1161
+ "type": {
1162
+ "kind": "struct",
1163
+ "fields": [
1164
+ {
1165
+ "name": "amount",
1166
+ "type": "u64"
1167
+ },
1168
+ {
1169
+ "name": "tier",
1170
+ "type": "u8"
1171
+ }
1172
+ ]
1173
+ }
1174
+ },
1175
+ {
1176
+ "name": "StakePosition",
1177
+ "type": {
1178
+ "kind": "struct",
1179
+ "fields": [
1180
+ {
1181
+ "name": "pool",
1182
+ "type": "pubkey"
1183
+ },
1184
+ {
1185
+ "name": "owner",
1186
+ "type": "pubkey"
1187
+ },
1188
+ {
1189
+ "name": "amount",
1190
+ "type": "u64"
1191
+ },
1192
+ {
1193
+ "name": "lockup_tier",
1194
+ "type": "u8"
1195
+ },
1196
+ {
1197
+ "name": "lockup_expiry",
1198
+ "type": "i64"
1199
+ },
1200
+ {
1201
+ "name": "weighted_amount",
1202
+ "type": "u64"
1203
+ },
1204
+ {
1205
+ "name": "reward_index_snap",
1206
+ "type": "u128"
1207
+ },
1208
+ {
1209
+ "name": "accrued_reward",
1210
+ "type": "u64"
1211
+ },
1212
+ {
1213
+ "name": "bump",
1214
+ "type": "u8"
1215
+ }
1216
+ ]
1217
+ }
1218
+ },
1219
+ {
1220
+ "name": "Staked",
1221
+ "type": {
1222
+ "kind": "struct",
1223
+ "fields": [
1224
+ {
1225
+ "name": "owner",
1226
+ "type": "pubkey"
1227
+ },
1228
+ {
1229
+ "name": "amount",
1230
+ "type": "u64"
1231
+ },
1232
+ {
1233
+ "name": "tier",
1234
+ "type": "u8"
1235
+ },
1236
+ {
1237
+ "name": "lockup_expiry",
1238
+ "type": "i64"
1239
+ },
1240
+ {
1241
+ "name": "weighted_amount",
1242
+ "type": "u64"
1243
+ }
1244
+ ]
1245
+ }
1246
+ },
1247
+ {
1248
+ "name": "StakingPool",
1249
+ "type": {
1250
+ "kind": "struct",
1251
+ "fields": [
1252
+ {
1253
+ "name": "admin",
1254
+ "type": "pubkey"
1255
+ },
1256
+ {
1257
+ "name": "token_mint",
1258
+ "type": "pubkey"
1259
+ },
1260
+ {
1261
+ "name": "staked_vault",
1262
+ "type": "pubkey"
1263
+ },
1264
+ {
1265
+ "name": "reward_source",
1266
+ "type": "u8"
1267
+ },
1268
+ {
1269
+ "name": "reward_mint",
1270
+ "type": "pubkey"
1271
+ },
1272
+ {
1273
+ "name": "reward_vault",
1274
+ "type": "pubkey"
1275
+ },
1276
+ {
1277
+ "name": "reward_usdc",
1278
+ "type": "pubkey"
1279
+ },
1280
+ {
1281
+ "name": "total_weighted_stake",
1282
+ "type": "u128"
1283
+ },
1284
+ {
1285
+ "name": "reward_index",
1286
+ "type": "u128"
1287
+ },
1288
+ {
1289
+ "name": "total_rewards_distributed",
1290
+ "type": "u64"
1291
+ },
1292
+ {
1293
+ "name": "total_allocation",
1294
+ "type": "u64"
1295
+ },
1296
+ {
1297
+ "name": "start_ts",
1298
+ "type": "i64"
1299
+ },
1300
+ {
1301
+ "name": "end_ts",
1302
+ "type": "i64"
1303
+ },
1304
+ {
1305
+ "name": "emitted_so_far",
1306
+ "type": "u64"
1307
+ },
1308
+ {
1309
+ "name": "last_update_ts",
1310
+ "type": "i64"
1311
+ },
1312
+ {
1313
+ "name": "bump",
1314
+ "type": "u8"
1315
+ }
1316
+ ]
1317
+ }
1318
+ },
1319
+ {
1320
+ "name": "Unstaked",
1321
+ "type": {
1322
+ "kind": "struct",
1323
+ "fields": [
1324
+ {
1325
+ "name": "owner",
1326
+ "type": "pubkey"
1327
+ },
1328
+ {
1329
+ "name": "amount",
1330
+ "type": "u64"
1331
+ }
1332
+ ]
1333
+ }
1334
+ }
1335
+ ]
1336
+ }