@exponent-labs/perena-sy-idl 0.0.3

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.
@@ -0,0 +1,1315 @@
1
+ /**
2
+ * Program IDL in camelCase format in order to be used in JS/TS.
3
+ *
4
+ * Note that this is only a type helper and is not the actual IDL. The original
5
+ * IDL can be found at `target/idl/perena_standard.json`.
6
+ */
7
+ export type PerenaStandard = {
8
+ "address": "XPerenaJPyvnjseLCn7rgzxFEum6zX1k89C13SPTyGZ";
9
+ "metadata": {
10
+ "name": "perenaStandard";
11
+ "version": "0.1.0";
12
+ "spec": "0.1.0";
13
+ "description": "Created with Anchor";
14
+ };
15
+ "instructions": [
16
+ {
17
+ "name": "addEmission";
18
+ "discriminator": [
19
+ 4
20
+ ];
21
+ "accounts": [
22
+ {
23
+ "name": "signer";
24
+ "signer": true;
25
+ },
26
+ {
27
+ "name": "feePayer";
28
+ "writable": true;
29
+ "signer": true;
30
+ },
31
+ {
32
+ "name": "meta";
33
+ "writable": true;
34
+ },
35
+ {
36
+ "name": "tokenEmission";
37
+ "docs": [
38
+ "The emission token account, which will be the escrow for accrued emissions"
39
+ ];
40
+ },
41
+ {
42
+ "name": "mintEmission";
43
+ "docs": [
44
+ "The mint for the emission"
45
+ ];
46
+ },
47
+ {
48
+ "name": "systemProgram";
49
+ "docs": [
50
+ "Needed for realloc'ing the emission tracker"
51
+ ];
52
+ },
53
+ {
54
+ "name": "adminState";
55
+ }
56
+ ];
57
+ "args": [];
58
+ },
59
+ {
60
+ "name": "collectEmission";
61
+ "discriminator": [
62
+ 8
63
+ ];
64
+ "accounts": [
65
+ {
66
+ "name": "owner";
67
+ "signer": true;
68
+ },
69
+ {
70
+ "name": "meta";
71
+ "writable": true;
72
+ },
73
+ {
74
+ "name": "position";
75
+ "writable": true;
76
+ },
77
+ {
78
+ "name": "tokenEmissionAccountAuthority";
79
+ "writable": true;
80
+ },
81
+ {
82
+ "name": "tokenEmissionSigner";
83
+ "writable": true;
84
+ },
85
+ {
86
+ "name": "tokenProgram";
87
+ }
88
+ ];
89
+ "args": [
90
+ {
91
+ "name": "amount";
92
+ "type": {
93
+ "defined": {
94
+ "name": "amount";
95
+ };
96
+ };
97
+ }
98
+ ];
99
+ },
100
+ {
101
+ "name": "collectTreasuryEmission";
102
+ "discriminator": [
103
+ 9
104
+ ];
105
+ "accounts": [
106
+ {
107
+ "name": "treasuryAdministrator";
108
+ "signer": true;
109
+ },
110
+ {
111
+ "name": "meta";
112
+ "writable": true;
113
+ },
114
+ {
115
+ "name": "admin";
116
+ },
117
+ {
118
+ "name": "tokenEmissionAccountAuthority";
119
+ "writable": true;
120
+ },
121
+ {
122
+ "name": "tokenEmissionTreasuryAdministrator";
123
+ "writable": true;
124
+ },
125
+ {
126
+ "name": "tokenProgram";
127
+ }
128
+ ];
129
+ "args": [
130
+ {
131
+ "name": "amount";
132
+ "type": {
133
+ "defined": {
134
+ "name": "amount";
135
+ };
136
+ };
137
+ }
138
+ ];
139
+ },
140
+ {
141
+ "name": "deposit";
142
+ "discriminator": [
143
+ 5
144
+ ];
145
+ "accounts": [
146
+ {
147
+ "name": "depositor";
148
+ "writable": true;
149
+ "signer": true;
150
+ },
151
+ {
152
+ "name": "meta";
153
+ "writable": true;
154
+ },
155
+ {
156
+ "name": "mintSy";
157
+ },
158
+ {
159
+ "name": "perenaStablePool";
160
+ },
161
+ {
162
+ "name": "tokenSyEscrow";
163
+ "writable": true;
164
+ },
165
+ {
166
+ "name": "tokenSyDepositor";
167
+ "writable": true;
168
+ },
169
+ {
170
+ "name": "position";
171
+ "writable": true;
172
+ },
173
+ {
174
+ "name": "tokenProgram";
175
+ },
176
+ {
177
+ "name": "systemProgram";
178
+ }
179
+ ];
180
+ "args": [
181
+ {
182
+ "name": "amount";
183
+ "type": "u64";
184
+ }
185
+ ];
186
+ "returns": {
187
+ "defined": {
188
+ "name": "syState";
189
+ };
190
+ };
191
+ },
192
+ {
193
+ "name": "getPosition";
194
+ "discriminator": [
195
+ 10
196
+ ];
197
+ "accounts": [
198
+ {
199
+ "name": "position";
200
+ "writable": true;
201
+ },
202
+ {
203
+ "name": "meta";
204
+ "writable": true;
205
+ },
206
+ {
207
+ "name": "perenaStablePool";
208
+ },
209
+ {
210
+ "name": "mintSy";
211
+ },
212
+ {
213
+ "name": "tokenSyEscrow";
214
+ },
215
+ {
216
+ "name": "systemProgram";
217
+ }
218
+ ];
219
+ "args": [];
220
+ "returns": {
221
+ "defined": {
222
+ "name": "positionState";
223
+ };
224
+ };
225
+ },
226
+ {
227
+ "name": "getState";
228
+ "discriminator": [
229
+ 7
230
+ ];
231
+ "accounts": [
232
+ {
233
+ "name": "meta";
234
+ "writable": true;
235
+ },
236
+ {
237
+ "name": "perenaStablePool";
238
+ },
239
+ {
240
+ "name": "mintSy";
241
+ },
242
+ {
243
+ "name": "tokenSyEscrow";
244
+ }
245
+ ];
246
+ "args": [];
247
+ "returns": {
248
+ "defined": {
249
+ "name": "syState";
250
+ };
251
+ };
252
+ },
253
+ {
254
+ "name": "initSy";
255
+ "discriminator": [
256
+ 0
257
+ ];
258
+ "accounts": [
259
+ {
260
+ "name": "admin";
261
+ "writable": true;
262
+ "signer": true;
263
+ },
264
+ {
265
+ "name": "syMeta";
266
+ "docs": [
267
+ "Master metadata account for SY token"
268
+ ];
269
+ "writable": true;
270
+ },
271
+ {
272
+ "name": "mintSy";
273
+ "docs": [
274
+ "Mint for SY token"
275
+ ];
276
+ "writable": true;
277
+ },
278
+ {
279
+ "name": "lpMint";
280
+ },
281
+ {
282
+ "name": "tokenLpMintEscrow";
283
+ },
284
+ {
285
+ "name": "tokenSyEscrow";
286
+ "docs": [
287
+ "Escrow account for deposited SY"
288
+ ];
289
+ "writable": true;
290
+ },
291
+ {
292
+ "name": "perenaStablePool";
293
+ },
294
+ {
295
+ "name": "tokenProgram";
296
+ },
297
+ {
298
+ "name": "systemProgram";
299
+ },
300
+ {
301
+ "name": "adminState";
302
+ },
303
+ {
304
+ "name": "metadata";
305
+ "writable": true;
306
+ },
307
+ {
308
+ "name": "tokenMetadataProgram";
309
+ },
310
+ {
311
+ "name": "rent";
312
+ },
313
+ {
314
+ "name": "interfaceProgram";
315
+ }
316
+ ];
317
+ "args": [
318
+ {
319
+ "name": "minMintSize";
320
+ "type": "u64";
321
+ },
322
+ {
323
+ "name": "minRedeemSize";
324
+ "type": "u64";
325
+ },
326
+ {
327
+ "name": "name";
328
+ "type": "string";
329
+ },
330
+ {
331
+ "name": "symbol";
332
+ "type": "string";
333
+ },
334
+ {
335
+ "name": "uri";
336
+ "type": "string";
337
+ },
338
+ {
339
+ "name": "interfaceAccounts";
340
+ "type": {
341
+ "vec": "pubkey";
342
+ };
343
+ }
344
+ ];
345
+ },
346
+ {
347
+ "name": "initializePosition";
348
+ "discriminator": [
349
+ 3
350
+ ];
351
+ "accounts": [
352
+ {
353
+ "name": "feePayer";
354
+ "writable": true;
355
+ "signer": true;
356
+ },
357
+ {
358
+ "name": "owner";
359
+ },
360
+ {
361
+ "name": "meta";
362
+ },
363
+ {
364
+ "name": "position";
365
+ "writable": true;
366
+ },
367
+ {
368
+ "name": "systemProgram";
369
+ }
370
+ ];
371
+ "args": [];
372
+ },
373
+ {
374
+ "name": "mint";
375
+ "discriminator": [
376
+ 1
377
+ ];
378
+ "accounts": [
379
+ {
380
+ "name": "depositor";
381
+ "writable": true;
382
+ "signer": true;
383
+ },
384
+ {
385
+ "name": "meta";
386
+ "writable": true;
387
+ },
388
+ {
389
+ "name": "mintSy";
390
+ "writable": true;
391
+ },
392
+ {
393
+ "name": "tokenBaseDepositor";
394
+ "docs": [
395
+ "Depositor's base asset token account"
396
+ ];
397
+ "writable": true;
398
+ },
399
+ {
400
+ "name": "tokenLpMintEscrow";
401
+ "docs": [
402
+ "SY robot's base token account"
403
+ ];
404
+ "writable": true;
405
+ },
406
+ {
407
+ "name": "tokenSyDepositor";
408
+ "writable": true;
409
+ },
410
+ {
411
+ "name": "perenaStablePool";
412
+ },
413
+ {
414
+ "name": "baseTokenProgram";
415
+ },
416
+ {
417
+ "name": "tokenProgram";
418
+ }
419
+ ];
420
+ "args": [
421
+ {
422
+ "name": "amount";
423
+ "type": "u64";
424
+ }
425
+ ];
426
+ "returns": {
427
+ "defined": {
428
+ "name": "mintSyReturnData";
429
+ };
430
+ };
431
+ },
432
+ {
433
+ "name": "redeem";
434
+ "discriminator": [
435
+ 2
436
+ ];
437
+ "accounts": [
438
+ {
439
+ "name": "signer";
440
+ "writable": true;
441
+ "signer": true;
442
+ },
443
+ {
444
+ "name": "meta";
445
+ "writable": true;
446
+ },
447
+ {
448
+ "name": "perenaStablePool";
449
+ },
450
+ {
451
+ "name": "tokenBaseDst";
452
+ "writable": true;
453
+ },
454
+ {
455
+ "name": "tokenLpMintEscrow";
456
+ "writable": true;
457
+ },
458
+ {
459
+ "name": "tokenSySigner";
460
+ "writable": true;
461
+ },
462
+ {
463
+ "name": "mintSy";
464
+ "writable": true;
465
+ },
466
+ {
467
+ "name": "tokenBaseProgram";
468
+ "docs": [
469
+ "Base token program"
470
+ ];
471
+ },
472
+ {
473
+ "name": "tokenProgram";
474
+ "docs": [
475
+ "SY token program"
476
+ ];
477
+ }
478
+ ];
479
+ "args": [
480
+ {
481
+ "name": "amount";
482
+ "type": "u64";
483
+ }
484
+ ];
485
+ "returns": {
486
+ "defined": {
487
+ "name": "redeemSyReturnData";
488
+ };
489
+ };
490
+ },
491
+ {
492
+ "name": "withdraw";
493
+ "discriminator": [
494
+ 6
495
+ ];
496
+ "accounts": [
497
+ {
498
+ "name": "owner";
499
+ "writable": true;
500
+ "signer": true;
501
+ },
502
+ {
503
+ "name": "meta";
504
+ "writable": true;
505
+ },
506
+ {
507
+ "name": "mintSy";
508
+ },
509
+ {
510
+ "name": "perenaStablePool";
511
+ },
512
+ {
513
+ "name": "position";
514
+ "writable": true;
515
+ },
516
+ {
517
+ "name": "tokenSyEscrow";
518
+ "docs": [
519
+ "Escrow pool of SY tokens"
520
+ ];
521
+ "writable": true;
522
+ },
523
+ {
524
+ "name": "tokenSyDst";
525
+ "docs": [
526
+ "Destination for SY tokens withdrawn"
527
+ ];
528
+ "writable": true;
529
+ },
530
+ {
531
+ "name": "tokenProgram";
532
+ },
533
+ {
534
+ "name": "systemProgram";
535
+ }
536
+ ];
537
+ "args": [
538
+ {
539
+ "name": "amount";
540
+ "type": "u64";
541
+ }
542
+ ];
543
+ "returns": {
544
+ "defined": {
545
+ "name": "syState";
546
+ };
547
+ };
548
+ }
549
+ ];
550
+ "accounts": [
551
+ {
552
+ "name": "admin";
553
+ "discriminator": [
554
+ 244,
555
+ 158,
556
+ 220,
557
+ 65,
558
+ 8,
559
+ 73,
560
+ 4,
561
+ 65
562
+ ];
563
+ },
564
+ {
565
+ "name": "position";
566
+ "discriminator": [
567
+ 170,
568
+ 188,
569
+ 143,
570
+ 228,
571
+ 122,
572
+ 64,
573
+ 247,
574
+ 208
575
+ ];
576
+ },
577
+ {
578
+ "name": "stablePool";
579
+ "discriminator": [
580
+ 239,
581
+ 91,
582
+ 93,
583
+ 162,
584
+ 171,
585
+ 14,
586
+ 42,
587
+ 66
588
+ ];
589
+ },
590
+ {
591
+ "name": "syMeta";
592
+ "discriminator": [
593
+ 254,
594
+ 147,
595
+ 136,
596
+ 16,
597
+ 163,
598
+ 203,
599
+ 98,
600
+ 93
601
+ ];
602
+ }
603
+ ];
604
+ "errors": [
605
+ {
606
+ "code": 6000;
607
+ "name": "invariantError";
608
+ "msg": "VRT balance does not match SY supply";
609
+ },
610
+ {
611
+ "code": 6001;
612
+ "name": "mintAmountTooLow";
613
+ "msg": "The mint amount is too low";
614
+ },
615
+ {
616
+ "code": 6002;
617
+ "name": "positionAmountTooLow";
618
+ "msg": "The position amount is too low";
619
+ },
620
+ {
621
+ "code": 6003;
622
+ "name": "redeemAmountTooLow";
623
+ "msg": "The redeem amount is too low";
624
+ },
625
+ {
626
+ "code": 6004;
627
+ "name": "invalidLpMint";
628
+ "msg": "Invalid LP mint";
629
+ },
630
+ {
631
+ "code": 6005;
632
+ "name": "noRewardsForMeta";
633
+ "msg": "No rewards for meta";
634
+ }
635
+ ];
636
+ "types": [
637
+ {
638
+ "name": "admin";
639
+ "type": {
640
+ "kind": "struct";
641
+ "fields": [
642
+ {
643
+ "name": "uberAdmin";
644
+ "type": "pubkey";
645
+ },
646
+ {
647
+ "name": "proposedUberAdmin";
648
+ "type": {
649
+ "option": "pubkey";
650
+ };
651
+ },
652
+ {
653
+ "name": "principles";
654
+ "type": {
655
+ "defined": {
656
+ "name": "principles";
657
+ };
658
+ };
659
+ }
660
+ ];
661
+ };
662
+ },
663
+ {
664
+ "name": "amount";
665
+ "type": {
666
+ "kind": "enum";
667
+ "variants": [
668
+ {
669
+ "name": "all";
670
+ },
671
+ {
672
+ "name": "some";
673
+ "fields": [
674
+ "u64"
675
+ ];
676
+ }
677
+ ];
678
+ };
679
+ },
680
+ {
681
+ "name": "mintSyReturnData";
682
+ "type": {
683
+ "kind": "struct";
684
+ "fields": [
685
+ {
686
+ "name": "syOutAmount";
687
+ "type": "u64";
688
+ },
689
+ {
690
+ "name": "exchangeRate";
691
+ "type": {
692
+ "defined": {
693
+ "name": "number";
694
+ };
695
+ };
696
+ }
697
+ ];
698
+ };
699
+ },
700
+ {
701
+ "name": "number";
702
+ "docs": [
703
+ "High precision number, stored as 4 u64 words in little endian"
704
+ ];
705
+ "type": {
706
+ "kind": "struct";
707
+ "fields": [
708
+ {
709
+ "array": [
710
+ "u64",
711
+ 4
712
+ ];
713
+ }
714
+ ];
715
+ };
716
+ },
717
+ {
718
+ "name": "position";
719
+ "type": {
720
+ "kind": "struct";
721
+ "fields": [
722
+ {
723
+ "name": "owner";
724
+ "type": "pubkey";
725
+ },
726
+ {
727
+ "name": "perenaStablePool";
728
+ "type": "pubkey";
729
+ },
730
+ {
731
+ "name": "amount";
732
+ "type": "u64";
733
+ },
734
+ {
735
+ "name": "rewardIndexes";
736
+ "type": {
737
+ "vec": {
738
+ "defined": {
739
+ "name": "reward";
740
+ };
741
+ };
742
+ };
743
+ }
744
+ ];
745
+ };
746
+ },
747
+ {
748
+ "name": "positionState";
749
+ "type": {
750
+ "kind": "struct";
751
+ "fields": [
752
+ {
753
+ "name": "owner";
754
+ "type": "pubkey";
755
+ },
756
+ {
757
+ "name": "syBalance";
758
+ "type": "u64";
759
+ },
760
+ {
761
+ "name": "emissions";
762
+ "type": {
763
+ "vec": {
764
+ "defined": {
765
+ "name": "sy_common::Emission";
766
+ };
767
+ };
768
+ };
769
+ }
770
+ ];
771
+ };
772
+ },
773
+ {
774
+ "name": "principleDetails";
775
+ "type": {
776
+ "kind": "struct";
777
+ "fields": [
778
+ {
779
+ "name": "administrators";
780
+ "type": {
781
+ "vec": "pubkey";
782
+ };
783
+ }
784
+ ];
785
+ };
786
+ },
787
+ {
788
+ "name": "principles";
789
+ "type": {
790
+ "kind": "struct";
791
+ "fields": [
792
+ {
793
+ "name": "marginfiStandard";
794
+ "type": {
795
+ "defined": {
796
+ "name": "principleDetails";
797
+ };
798
+ };
799
+ },
800
+ {
801
+ "name": "collectTreasury";
802
+ "type": {
803
+ "defined": {
804
+ "name": "principleDetails";
805
+ };
806
+ };
807
+ },
808
+ {
809
+ "name": "kaminoLendStandard";
810
+ "type": {
811
+ "defined": {
812
+ "name": "principleDetails";
813
+ };
814
+ };
815
+ },
816
+ {
817
+ "name": "exponentCore";
818
+ "type": {
819
+ "defined": {
820
+ "name": "principleDetails";
821
+ };
822
+ };
823
+ },
824
+ {
825
+ "name": "changeStatusFlags";
826
+ "type": {
827
+ "defined": {
828
+ "name": "principleDetails";
829
+ };
830
+ };
831
+ },
832
+ {
833
+ "name": "jitoRestaking";
834
+ "type": {
835
+ "defined": {
836
+ "name": "principleDetails";
837
+ };
838
+ };
839
+ }
840
+ ];
841
+ };
842
+ },
843
+ {
844
+ "name": "redeemSyReturnData";
845
+ "type": {
846
+ "kind": "struct";
847
+ "fields": [
848
+ {
849
+ "name": "baseOutAmount";
850
+ "type": "u64";
851
+ },
852
+ {
853
+ "name": "exchangeRate";
854
+ "type": {
855
+ "defined": {
856
+ "name": "number";
857
+ };
858
+ };
859
+ }
860
+ ];
861
+ };
862
+ },
863
+ {
864
+ "name": "reward";
865
+ "type": {
866
+ "kind": "struct";
867
+ "fields": [
868
+ {
869
+ "name": "mint";
870
+ "type": "pubkey";
871
+ },
872
+ {
873
+ "name": "lastSeenShareIndex";
874
+ "type": {
875
+ "defined": {
876
+ "name": "number";
877
+ };
878
+ };
879
+ },
880
+ {
881
+ "name": "claimableRewardsAmount";
882
+ "type": "u64";
883
+ }
884
+ ];
885
+ };
886
+ },
887
+ {
888
+ "name": "stablePool";
889
+ "serialization": "bytemuck";
890
+ "repr": {
891
+ "kind": "c";
892
+ };
893
+ "type": {
894
+ "kind": "struct";
895
+ "fields": [
896
+ {
897
+ "name": "poolSeed";
898
+ "type": "pubkey";
899
+ },
900
+ {
901
+ "name": "lpMint";
902
+ "type": "pubkey";
903
+ },
904
+ {
905
+ "name": "whitelistedAdder";
906
+ "type": "pubkey";
907
+ },
908
+ {
909
+ "name": "owner";
910
+ "type": "pubkey";
911
+ },
912
+ {
913
+ "name": "invT";
914
+ "type": "u64";
915
+ },
916
+ {
917
+ "name": "invTMax";
918
+ "type": "u64";
919
+ },
920
+ {
921
+ "name": "pairs";
922
+ "type": {
923
+ "array": [
924
+ {
925
+ "defined": {
926
+ "name": "virtualStablePair";
927
+ };
928
+ },
929
+ 10
930
+ ];
931
+ };
932
+ },
933
+ {
934
+ "name": "weights";
935
+ "type": {
936
+ "array": [
937
+ "u32",
938
+ 10
939
+ ];
940
+ };
941
+ },
942
+ {
943
+ "name": "totalWeight";
944
+ "type": "u64";
945
+ },
946
+ {
947
+ "name": "status";
948
+ "type": "u32";
949
+ },
950
+ {
951
+ "name": "feeNum";
952
+ "type": "u32";
953
+ },
954
+ {
955
+ "name": "feeDenom";
956
+ "type": "u32";
957
+ },
958
+ {
959
+ "name": "decimals";
960
+ "type": "u8";
961
+ },
962
+ {
963
+ "name": "numStables";
964
+ "type": "u8";
965
+ },
966
+ {
967
+ "name": "padding";
968
+ "type": {
969
+ "array": [
970
+ "u8",
971
+ 2
972
+ ];
973
+ };
974
+ },
975
+ {
976
+ "name": "padding";
977
+ "type": {
978
+ "array": [
979
+ "u8",
980
+ 128
981
+ ];
982
+ };
983
+ }
984
+ ];
985
+ };
986
+ },
987
+ {
988
+ "name": "syMeta";
989
+ "docs": [
990
+ "Metadata for an SY token"
991
+ ];
992
+ "type": {
993
+ "kind": "struct";
994
+ "fields": [
995
+ {
996
+ "name": "perenaStablePool";
997
+ "docs": [
998
+ "Perena Stable Pool ID"
999
+ ];
1000
+ "type": "pubkey";
1001
+ },
1002
+ {
1003
+ "name": "mintSy";
1004
+ "docs": [
1005
+ "Mint for the SY token"
1006
+ ];
1007
+ "type": "pubkey";
1008
+ },
1009
+ {
1010
+ "name": "tokenSyEscrow";
1011
+ "docs": [
1012
+ "Escrow account where SY gets deposited"
1013
+ ];
1014
+ "type": "pubkey";
1015
+ },
1016
+ {
1017
+ "name": "maxSySupply";
1018
+ "docs": [
1019
+ "Maximum supply of SY tokens"
1020
+ ];
1021
+ "type": "u64";
1022
+ },
1023
+ {
1024
+ "name": "minMintSize";
1025
+ "docs": [
1026
+ "Minimum size of SY tokens that can be made from minting",
1027
+ "This is to prevent dust from being minted, or from rounding errors"
1028
+ ];
1029
+ "type": "u64";
1030
+ },
1031
+ {
1032
+ "name": "minRedeemSize";
1033
+ "docs": [
1034
+ "Minimum size of SY tokens that can be redeemed",
1035
+ "This is to prevent dust from being redeemed, or from rounding errors"
1036
+ ];
1037
+ "type": "u64";
1038
+ },
1039
+ {
1040
+ "name": "selfAddressBump";
1041
+ "docs": [
1042
+ "Bump for the self address to this PDA"
1043
+ ];
1044
+ "type": {
1045
+ "array": [
1046
+ "u8",
1047
+ 1
1048
+ ];
1049
+ };
1050
+ },
1051
+ {
1052
+ "name": "tokenLpMintEscrow";
1053
+ "docs": [
1054
+ "VRT escrow tokenaccount"
1055
+ ];
1056
+ "type": "pubkey";
1057
+ },
1058
+ {
1059
+ "name": "padding";
1060
+ "docs": [
1061
+ "Padding"
1062
+ ];
1063
+ "type": {
1064
+ "array": [
1065
+ "u8",
1066
+ 128
1067
+ ];
1068
+ };
1069
+ },
1070
+ {
1071
+ "name": "interfaceAccounts";
1072
+ "type": {
1073
+ "vec": "pubkey";
1074
+ };
1075
+ },
1076
+ {
1077
+ "name": "emissions";
1078
+ "docs": [
1079
+ "List of emissions"
1080
+ ];
1081
+ "type": {
1082
+ "vec": {
1083
+ "defined": {
1084
+ "name": "perena_standard::state::sy_meta::Emission";
1085
+ };
1086
+ };
1087
+ };
1088
+ }
1089
+ ];
1090
+ };
1091
+ },
1092
+ {
1093
+ "name": "syState";
1094
+ "type": {
1095
+ "kind": "struct";
1096
+ "fields": [
1097
+ {
1098
+ "name": "exchangeRate";
1099
+ "type": {
1100
+ "defined": {
1101
+ "name": "number";
1102
+ };
1103
+ };
1104
+ },
1105
+ {
1106
+ "name": "emissionIndexes";
1107
+ "type": {
1108
+ "vec": {
1109
+ "defined": {
1110
+ "name": "number";
1111
+ };
1112
+ };
1113
+ };
1114
+ }
1115
+ ];
1116
+ };
1117
+ },
1118
+ {
1119
+ "name": "virtualStablePair";
1120
+ "repr": {
1121
+ "kind": "c";
1122
+ };
1123
+ "type": {
1124
+ "kind": "struct";
1125
+ "fields": [
1126
+ {
1127
+ "name": "pairAuthority";
1128
+ "type": "pubkey";
1129
+ },
1130
+ {
1131
+ "name": "xReserveAmount";
1132
+ "type": "u64";
1133
+ },
1134
+ {
1135
+ "name": "yReserve";
1136
+ "type": "u64";
1137
+ },
1138
+ {
1139
+ "name": "curveAmp";
1140
+ "docs": [
1141
+ "Curve params. Define bonding curve shape: x + y + a + b - A / (x + a) - A / (y + b) - D = 0"
1142
+ ];
1143
+ "type": "u128";
1144
+ },
1145
+ {
1146
+ "name": "curveA";
1147
+ "type": "u128";
1148
+ },
1149
+ {
1150
+ "name": "curveB";
1151
+ "type": "u128";
1152
+ },
1153
+ {
1154
+ "name": "invL";
1155
+ "docs": [
1156
+ "Invariant constant. For invariant: x/L + y/L + a + b - A / (x/L + a) - A / (y/L + b) - D = 0"
1157
+ ];
1158
+ "type": "u128";
1159
+ },
1160
+ {
1161
+ "name": "owner";
1162
+ "type": "pubkey";
1163
+ },
1164
+ {
1165
+ "name": "xMint";
1166
+ "type": "pubkey";
1167
+ },
1168
+ {
1169
+ "name": "xVault";
1170
+ "type": "pubkey";
1171
+ },
1172
+ {
1173
+ "name": "curveAlpha";
1174
+ "type": "u64";
1175
+ },
1176
+ {
1177
+ "name": "curveBeta";
1178
+ "type": "u64";
1179
+ },
1180
+ {
1181
+ "name": "newestRateNum";
1182
+ "type": "u32";
1183
+ },
1184
+ {
1185
+ "name": "newestRateDenom";
1186
+ "type": "u32";
1187
+ },
1188
+ {
1189
+ "name": "decimals";
1190
+ "type": "u8";
1191
+ },
1192
+ {
1193
+ "name": "pairIndex";
1194
+ "type": "u8";
1195
+ },
1196
+ {
1197
+ "name": "xIs2022";
1198
+ "type": "u8";
1199
+ },
1200
+ {
1201
+ "name": "padding";
1202
+ "type": {
1203
+ "array": [
1204
+ "u8",
1205
+ 5
1206
+ ];
1207
+ };
1208
+ },
1209
+ {
1210
+ "name": "padding";
1211
+ "type": {
1212
+ "array": [
1213
+ "u8",
1214
+ 128
1215
+ ];
1216
+ };
1217
+ }
1218
+ ];
1219
+ };
1220
+ },
1221
+ {
1222
+ "name": "perena_standard::state::sy_meta::Emission";
1223
+ "type": {
1224
+ "kind": "struct";
1225
+ "fields": [
1226
+ {
1227
+ "name": "mint";
1228
+ "docs": [
1229
+ "Mint of the emission"
1230
+ ];
1231
+ "type": "pubkey";
1232
+ },
1233
+ {
1234
+ "name": "index";
1235
+ "docs": [
1236
+ "Index of the emission"
1237
+ ];
1238
+ "type": {
1239
+ "defined": {
1240
+ "name": "number";
1241
+ };
1242
+ };
1243
+ },
1244
+ {
1245
+ "name": "lastSeenTotalAccruedEmissions";
1246
+ "docs": [
1247
+ "How many emissions have been earned by the SY pool over its lifetime"
1248
+ ];
1249
+ "type": "u128";
1250
+ },
1251
+ {
1252
+ "name": "totalClaimedEmissions";
1253
+ "docs": [
1254
+ "How many emissions have been withdrawn by SY users over its lifetime"
1255
+ ];
1256
+ "type": "u128";
1257
+ },
1258
+ {
1259
+ "name": "tokenProgram";
1260
+ "type": "pubkey";
1261
+ },
1262
+ {
1263
+ "name": "escrowAccount";
1264
+ "docs": [
1265
+ "Token account that holds collected emissions in escrow"
1266
+ ];
1267
+ "type": "pubkey";
1268
+ },
1269
+ {
1270
+ "name": "treasuryEmission";
1271
+ "docs": [
1272
+ "Treasury emission comes from the emissions of SY that has not been staked and can be withdrawn by the Admin key"
1273
+ ];
1274
+ "type": "u64";
1275
+ },
1276
+ {
1277
+ "name": "lastSeenIndex";
1278
+ "docs": [
1279
+ "Used for staging treasury earnings from unstaked SY"
1280
+ ];
1281
+ "type": {
1282
+ "defined": {
1283
+ "name": "number";
1284
+ };
1285
+ };
1286
+ }
1287
+ ];
1288
+ };
1289
+ },
1290
+ {
1291
+ "name": "sy_common::Emission";
1292
+ "type": {
1293
+ "kind": "struct";
1294
+ "fields": [
1295
+ {
1296
+ "name": "mint";
1297
+ "type": "pubkey";
1298
+ },
1299
+ {
1300
+ "name": "amountClaimable";
1301
+ "type": "u64";
1302
+ },
1303
+ {
1304
+ "name": "lastSeenEmissionIndex";
1305
+ "type": {
1306
+ "defined": {
1307
+ "name": "number";
1308
+ };
1309
+ };
1310
+ }
1311
+ ];
1312
+ };
1313
+ }
1314
+ ];
1315
+ };