flash-sdk 1.0.0 → 1.0.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.
@@ -0,0 +1,3537 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "name": "perpetuals",
4
+ "instructions": [
5
+ {
6
+ "name": "init",
7
+ "accounts": [
8
+ {
9
+ "name": "upgradeAuthority",
10
+ "isMut": true,
11
+ "isSigner": true
12
+ },
13
+ {
14
+ "name": "multisig",
15
+ "isMut": true,
16
+ "isSigner": false
17
+ },
18
+ {
19
+ "name": "transferAuthority",
20
+ "isMut": true,
21
+ "isSigner": false
22
+ },
23
+ {
24
+ "name": "perpetuals",
25
+ "isMut": true,
26
+ "isSigner": false
27
+ },
28
+ {
29
+ "name": "perpetualsProgram",
30
+ "isMut": false,
31
+ "isSigner": false
32
+ },
33
+ {
34
+ "name": "perpetualsProgramData",
35
+ "isMut": false,
36
+ "isSigner": false
37
+ },
38
+ {
39
+ "name": "systemProgram",
40
+ "isMut": false,
41
+ "isSigner": false
42
+ },
43
+ {
44
+ "name": "tokenProgram",
45
+ "isMut": false,
46
+ "isSigner": false
47
+ }
48
+ ],
49
+ "args": [
50
+ {
51
+ "name": "params",
52
+ "type": {
53
+ "defined": "InitParams"
54
+ }
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "name": "addPool",
60
+ "accounts": [
61
+ {
62
+ "name": "admin",
63
+ "isMut": true,
64
+ "isSigner": true
65
+ },
66
+ {
67
+ "name": "multisig",
68
+ "isMut": true,
69
+ "isSigner": false
70
+ },
71
+ {
72
+ "name": "transferAuthority",
73
+ "isMut": false,
74
+ "isSigner": false
75
+ },
76
+ {
77
+ "name": "perpetuals",
78
+ "isMut": true,
79
+ "isSigner": false
80
+ },
81
+ {
82
+ "name": "pool",
83
+ "isMut": true,
84
+ "isSigner": false
85
+ },
86
+ {
87
+ "name": "lpTokenMint",
88
+ "isMut": true,
89
+ "isSigner": false
90
+ },
91
+ {
92
+ "name": "systemProgram",
93
+ "isMut": false,
94
+ "isSigner": false
95
+ },
96
+ {
97
+ "name": "tokenProgram",
98
+ "isMut": false,
99
+ "isSigner": false
100
+ },
101
+ {
102
+ "name": "rent",
103
+ "isMut": false,
104
+ "isSigner": false
105
+ }
106
+ ],
107
+ "args": [
108
+ {
109
+ "name": "params",
110
+ "type": {
111
+ "defined": "AddPoolParams"
112
+ }
113
+ }
114
+ ],
115
+ "returns": "u8"
116
+ },
117
+ {
118
+ "name": "removePool",
119
+ "accounts": [
120
+ {
121
+ "name": "admin",
122
+ "isMut": true,
123
+ "isSigner": true
124
+ },
125
+ {
126
+ "name": "multisig",
127
+ "isMut": true,
128
+ "isSigner": false
129
+ },
130
+ {
131
+ "name": "transferAuthority",
132
+ "isMut": true,
133
+ "isSigner": false
134
+ },
135
+ {
136
+ "name": "perpetuals",
137
+ "isMut": true,
138
+ "isSigner": false
139
+ },
140
+ {
141
+ "name": "pool",
142
+ "isMut": true,
143
+ "isSigner": false
144
+ },
145
+ {
146
+ "name": "systemProgram",
147
+ "isMut": false,
148
+ "isSigner": false
149
+ }
150
+ ],
151
+ "args": [
152
+ {
153
+ "name": "params",
154
+ "type": {
155
+ "defined": "RemovePoolParams"
156
+ }
157
+ }
158
+ ],
159
+ "returns": "u8"
160
+ },
161
+ {
162
+ "name": "addCustody",
163
+ "accounts": [
164
+ {
165
+ "name": "admin",
166
+ "isMut": true,
167
+ "isSigner": true
168
+ },
169
+ {
170
+ "name": "multisig",
171
+ "isMut": true,
172
+ "isSigner": false
173
+ },
174
+ {
175
+ "name": "transferAuthority",
176
+ "isMut": false,
177
+ "isSigner": false
178
+ },
179
+ {
180
+ "name": "perpetuals",
181
+ "isMut": false,
182
+ "isSigner": false
183
+ },
184
+ {
185
+ "name": "pool",
186
+ "isMut": true,
187
+ "isSigner": false
188
+ },
189
+ {
190
+ "name": "custody",
191
+ "isMut": true,
192
+ "isSigner": false
193
+ },
194
+ {
195
+ "name": "custodyTokenAccount",
196
+ "isMut": true,
197
+ "isSigner": false
198
+ },
199
+ {
200
+ "name": "custodyTokenMint",
201
+ "isMut": false,
202
+ "isSigner": false
203
+ },
204
+ {
205
+ "name": "systemProgram",
206
+ "isMut": false,
207
+ "isSigner": false
208
+ },
209
+ {
210
+ "name": "tokenProgram",
211
+ "isMut": false,
212
+ "isSigner": false
213
+ },
214
+ {
215
+ "name": "rent",
216
+ "isMut": false,
217
+ "isSigner": false
218
+ }
219
+ ],
220
+ "args": [
221
+ {
222
+ "name": "params",
223
+ "type": {
224
+ "defined": "AddCustodyParams"
225
+ }
226
+ }
227
+ ],
228
+ "returns": "u8"
229
+ },
230
+ {
231
+ "name": "testingEditCustody",
232
+ "accounts": [
233
+ {
234
+ "name": "admin",
235
+ "isMut": true,
236
+ "isSigner": true
237
+ },
238
+ {
239
+ "name": "multisig",
240
+ "isMut": true,
241
+ "isSigner": false
242
+ },
243
+ {
244
+ "name": "transferAuthority",
245
+ "isMut": false,
246
+ "isSigner": false
247
+ },
248
+ {
249
+ "name": "perpetuals",
250
+ "isMut": false,
251
+ "isSigner": false
252
+ },
253
+ {
254
+ "name": "pool",
255
+ "isMut": true,
256
+ "isSigner": false
257
+ },
258
+ {
259
+ "name": "custody",
260
+ "isMut": true,
261
+ "isSigner": false
262
+ },
263
+ {
264
+ "name": "custodyTokenAccount",
265
+ "isMut": true,
266
+ "isSigner": false
267
+ },
268
+ {
269
+ "name": "custodyTokenMint",
270
+ "isMut": false,
271
+ "isSigner": false
272
+ },
273
+ {
274
+ "name": "systemProgram",
275
+ "isMut": false,
276
+ "isSigner": false
277
+ },
278
+ {
279
+ "name": "tokenProgram",
280
+ "isMut": false,
281
+ "isSigner": false
282
+ },
283
+ {
284
+ "name": "rent",
285
+ "isMut": false,
286
+ "isSigner": false
287
+ }
288
+ ],
289
+ "args": [
290
+ {
291
+ "name": "params",
292
+ "type": {
293
+ "defined": "EditCustodyParams"
294
+ }
295
+ }
296
+ ],
297
+ "returns": "u8"
298
+ },
299
+ {
300
+ "name": "removeCustody",
301
+ "accounts": [
302
+ {
303
+ "name": "admin",
304
+ "isMut": true,
305
+ "isSigner": true
306
+ },
307
+ {
308
+ "name": "multisig",
309
+ "isMut": true,
310
+ "isSigner": false
311
+ },
312
+ {
313
+ "name": "transferAuthority",
314
+ "isMut": true,
315
+ "isSigner": false
316
+ },
317
+ {
318
+ "name": "perpetuals",
319
+ "isMut": false,
320
+ "isSigner": false
321
+ },
322
+ {
323
+ "name": "pool",
324
+ "isMut": true,
325
+ "isSigner": false
326
+ },
327
+ {
328
+ "name": "custody",
329
+ "isMut": true,
330
+ "isSigner": false
331
+ },
332
+ {
333
+ "name": "custodyTokenAccount",
334
+ "isMut": true,
335
+ "isSigner": false
336
+ },
337
+ {
338
+ "name": "systemProgram",
339
+ "isMut": false,
340
+ "isSigner": false
341
+ },
342
+ {
343
+ "name": "tokenProgram",
344
+ "isMut": false,
345
+ "isSigner": false
346
+ }
347
+ ],
348
+ "args": [
349
+ {
350
+ "name": "params",
351
+ "type": {
352
+ "defined": "RemoveCustodyParams"
353
+ }
354
+ }
355
+ ],
356
+ "returns": "u8"
357
+ },
358
+ {
359
+ "name": "setAdminSigners",
360
+ "accounts": [
361
+ {
362
+ "name": "admin",
363
+ "isMut": false,
364
+ "isSigner": true
365
+ },
366
+ {
367
+ "name": "multisig",
368
+ "isMut": true,
369
+ "isSigner": false
370
+ }
371
+ ],
372
+ "args": [
373
+ {
374
+ "name": "params",
375
+ "type": {
376
+ "defined": "SetAdminSignersParams"
377
+ }
378
+ }
379
+ ],
380
+ "returns": "u8"
381
+ },
382
+ {
383
+ "name": "setCustodyConfig",
384
+ "accounts": [
385
+ {
386
+ "name": "admin",
387
+ "isMut": false,
388
+ "isSigner": true
389
+ },
390
+ {
391
+ "name": "multisig",
392
+ "isMut": true,
393
+ "isSigner": false
394
+ },
395
+ {
396
+ "name": "pool",
397
+ "isMut": true,
398
+ "isSigner": false
399
+ },
400
+ {
401
+ "name": "custody",
402
+ "isMut": true,
403
+ "isSigner": false
404
+ }
405
+ ],
406
+ "args": [
407
+ {
408
+ "name": "params",
409
+ "type": {
410
+ "defined": "SetCustodyConfigParams"
411
+ }
412
+ }
413
+ ],
414
+ "returns": "u8"
415
+ },
416
+ {
417
+ "name": "setPermissions",
418
+ "accounts": [
419
+ {
420
+ "name": "admin",
421
+ "isMut": false,
422
+ "isSigner": true
423
+ },
424
+ {
425
+ "name": "multisig",
426
+ "isMut": true,
427
+ "isSigner": false
428
+ },
429
+ {
430
+ "name": "perpetuals",
431
+ "isMut": true,
432
+ "isSigner": false
433
+ }
434
+ ],
435
+ "args": [
436
+ {
437
+ "name": "params",
438
+ "type": {
439
+ "defined": "SetPermissionsParams"
440
+ }
441
+ }
442
+ ],
443
+ "returns": "u8"
444
+ },
445
+ {
446
+ "name": "withdrawFees",
447
+ "accounts": [
448
+ {
449
+ "name": "admin",
450
+ "isMut": false,
451
+ "isSigner": true
452
+ },
453
+ {
454
+ "name": "multisig",
455
+ "isMut": true,
456
+ "isSigner": false
457
+ },
458
+ {
459
+ "name": "transferAuthority",
460
+ "isMut": false,
461
+ "isSigner": false
462
+ },
463
+ {
464
+ "name": "perpetuals",
465
+ "isMut": false,
466
+ "isSigner": false
467
+ },
468
+ {
469
+ "name": "pool",
470
+ "isMut": true,
471
+ "isSigner": false
472
+ },
473
+ {
474
+ "name": "custody",
475
+ "isMut": true,
476
+ "isSigner": false
477
+ },
478
+ {
479
+ "name": "custodyTokenAccount",
480
+ "isMut": true,
481
+ "isSigner": false
482
+ },
483
+ {
484
+ "name": "receivingTokenAccount",
485
+ "isMut": true,
486
+ "isSigner": false
487
+ },
488
+ {
489
+ "name": "tokenProgram",
490
+ "isMut": false,
491
+ "isSigner": false
492
+ }
493
+ ],
494
+ "args": [
495
+ {
496
+ "name": "params",
497
+ "type": {
498
+ "defined": "WithdrawFeesParams"
499
+ }
500
+ }
501
+ ],
502
+ "returns": "u8"
503
+ },
504
+ {
505
+ "name": "withdrawSolFees",
506
+ "accounts": [
507
+ {
508
+ "name": "admin",
509
+ "isMut": false,
510
+ "isSigner": true
511
+ },
512
+ {
513
+ "name": "multisig",
514
+ "isMut": true,
515
+ "isSigner": false
516
+ },
517
+ {
518
+ "name": "transferAuthority",
519
+ "isMut": false,
520
+ "isSigner": false
521
+ },
522
+ {
523
+ "name": "perpetuals",
524
+ "isMut": false,
525
+ "isSigner": false
526
+ },
527
+ {
528
+ "name": "receivingAccount",
529
+ "isMut": true,
530
+ "isSigner": false
531
+ }
532
+ ],
533
+ "args": [
534
+ {
535
+ "name": "params",
536
+ "type": {
537
+ "defined": "WithdrawSolFeesParams"
538
+ }
539
+ }
540
+ ],
541
+ "returns": "u8"
542
+ },
543
+ {
544
+ "name": "upgradeCustody",
545
+ "accounts": [
546
+ {
547
+ "name": "admin",
548
+ "isMut": true,
549
+ "isSigner": true
550
+ },
551
+ {
552
+ "name": "multisig",
553
+ "isMut": true,
554
+ "isSigner": false
555
+ },
556
+ {
557
+ "name": "pool",
558
+ "isMut": true,
559
+ "isSigner": false
560
+ },
561
+ {
562
+ "name": "custody",
563
+ "isMut": true,
564
+ "isSigner": false
565
+ },
566
+ {
567
+ "name": "systemProgram",
568
+ "isMut": false,
569
+ "isSigner": false
570
+ }
571
+ ],
572
+ "args": [
573
+ {
574
+ "name": "params",
575
+ "type": {
576
+ "defined": "UpgradeCustodyParams"
577
+ }
578
+ }
579
+ ],
580
+ "returns": "u8"
581
+ },
582
+ {
583
+ "name": "testInit",
584
+ "accounts": [
585
+ {
586
+ "name": "upgradeAuthority",
587
+ "isMut": true,
588
+ "isSigner": true
589
+ },
590
+ {
591
+ "name": "multisig",
592
+ "isMut": true,
593
+ "isSigner": false
594
+ },
595
+ {
596
+ "name": "transferAuthority",
597
+ "isMut": true,
598
+ "isSigner": false
599
+ },
600
+ {
601
+ "name": "perpetuals",
602
+ "isMut": true,
603
+ "isSigner": false
604
+ },
605
+ {
606
+ "name": "systemProgram",
607
+ "isMut": false,
608
+ "isSigner": false
609
+ },
610
+ {
611
+ "name": "tokenProgram",
612
+ "isMut": false,
613
+ "isSigner": false
614
+ }
615
+ ],
616
+ "args": [
617
+ {
618
+ "name": "params",
619
+ "type": {
620
+ "defined": "TestInitParams"
621
+ }
622
+ }
623
+ ]
624
+ },
625
+ {
626
+ "name": "setTestOraclePrice",
627
+ "accounts": [
628
+ {
629
+ "name": "admin",
630
+ "isMut": true,
631
+ "isSigner": true
632
+ },
633
+ {
634
+ "name": "multisig",
635
+ "isMut": true,
636
+ "isSigner": false
637
+ },
638
+ {
639
+ "name": "perpetuals",
640
+ "isMut": false,
641
+ "isSigner": false
642
+ },
643
+ {
644
+ "name": "pool",
645
+ "isMut": false,
646
+ "isSigner": false
647
+ },
648
+ {
649
+ "name": "custody",
650
+ "isMut": false,
651
+ "isSigner": false
652
+ },
653
+ {
654
+ "name": "oracleAccount",
655
+ "isMut": true,
656
+ "isSigner": false
657
+ },
658
+ {
659
+ "name": "systemProgram",
660
+ "isMut": false,
661
+ "isSigner": false
662
+ }
663
+ ],
664
+ "args": [
665
+ {
666
+ "name": "params",
667
+ "type": {
668
+ "defined": "SetTestOraclePriceParams"
669
+ }
670
+ }
671
+ ],
672
+ "returns": "u8"
673
+ },
674
+ {
675
+ "name": "setTestTime",
676
+ "accounts": [
677
+ {
678
+ "name": "admin",
679
+ "isMut": false,
680
+ "isSigner": true
681
+ },
682
+ {
683
+ "name": "multisig",
684
+ "isMut": true,
685
+ "isSigner": false
686
+ },
687
+ {
688
+ "name": "perpetuals",
689
+ "isMut": true,
690
+ "isSigner": false
691
+ }
692
+ ],
693
+ "args": [
694
+ {
695
+ "name": "params",
696
+ "type": {
697
+ "defined": "SetTestTimeParams"
698
+ }
699
+ }
700
+ ],
701
+ "returns": "u8"
702
+ },
703
+ {
704
+ "name": "swap",
705
+ "accounts": [
706
+ {
707
+ "name": "owner",
708
+ "isMut": true,
709
+ "isSigner": true
710
+ },
711
+ {
712
+ "name": "fundingAccount",
713
+ "isMut": true,
714
+ "isSigner": false
715
+ },
716
+ {
717
+ "name": "receivingAccount",
718
+ "isMut": true,
719
+ "isSigner": false
720
+ },
721
+ {
722
+ "name": "transferAuthority",
723
+ "isMut": false,
724
+ "isSigner": false
725
+ },
726
+ {
727
+ "name": "perpetuals",
728
+ "isMut": false,
729
+ "isSigner": false
730
+ },
731
+ {
732
+ "name": "pool",
733
+ "isMut": true,
734
+ "isSigner": false
735
+ },
736
+ {
737
+ "name": "receivingCustody",
738
+ "isMut": true,
739
+ "isSigner": false
740
+ },
741
+ {
742
+ "name": "receivingCustodyOracleAccount",
743
+ "isMut": false,
744
+ "isSigner": false
745
+ },
746
+ {
747
+ "name": "receivingCustodyTokenAccount",
748
+ "isMut": true,
749
+ "isSigner": false
750
+ },
751
+ {
752
+ "name": "dispensingCustody",
753
+ "isMut": true,
754
+ "isSigner": false
755
+ },
756
+ {
757
+ "name": "dispensingCustodyOracleAccount",
758
+ "isMut": false,
759
+ "isSigner": false
760
+ },
761
+ {
762
+ "name": "dispensingCustodyTokenAccount",
763
+ "isMut": true,
764
+ "isSigner": false
765
+ },
766
+ {
767
+ "name": "tokenProgram",
768
+ "isMut": false,
769
+ "isSigner": false
770
+ }
771
+ ],
772
+ "args": [
773
+ {
774
+ "name": "params",
775
+ "type": {
776
+ "defined": "SwapParams"
777
+ }
778
+ }
779
+ ]
780
+ },
781
+ {
782
+ "name": "addLiquidity",
783
+ "accounts": [
784
+ {
785
+ "name": "owner",
786
+ "isMut": true,
787
+ "isSigner": true
788
+ },
789
+ {
790
+ "name": "fundingAccount",
791
+ "isMut": true,
792
+ "isSigner": false
793
+ },
794
+ {
795
+ "name": "lpTokenAccount",
796
+ "isMut": true,
797
+ "isSigner": false
798
+ },
799
+ {
800
+ "name": "transferAuthority",
801
+ "isMut": false,
802
+ "isSigner": false
803
+ },
804
+ {
805
+ "name": "perpetuals",
806
+ "isMut": false,
807
+ "isSigner": false
808
+ },
809
+ {
810
+ "name": "pool",
811
+ "isMut": true,
812
+ "isSigner": false
813
+ },
814
+ {
815
+ "name": "custody",
816
+ "isMut": true,
817
+ "isSigner": false
818
+ },
819
+ {
820
+ "name": "custodyOracleAccount",
821
+ "isMut": false,
822
+ "isSigner": false
823
+ },
824
+ {
825
+ "name": "custodyTokenAccount",
826
+ "isMut": true,
827
+ "isSigner": false
828
+ },
829
+ {
830
+ "name": "lpTokenMint",
831
+ "isMut": true,
832
+ "isSigner": false
833
+ },
834
+ {
835
+ "name": "tokenProgram",
836
+ "isMut": false,
837
+ "isSigner": false
838
+ }
839
+ ],
840
+ "args": [
841
+ {
842
+ "name": "params",
843
+ "type": {
844
+ "defined": "AddLiquidityParams"
845
+ }
846
+ }
847
+ ]
848
+ },
849
+ {
850
+ "name": "removeLiquidity",
851
+ "accounts": [
852
+ {
853
+ "name": "owner",
854
+ "isMut": true,
855
+ "isSigner": true
856
+ },
857
+ {
858
+ "name": "receivingAccount",
859
+ "isMut": true,
860
+ "isSigner": false
861
+ },
862
+ {
863
+ "name": "lpTokenAccount",
864
+ "isMut": true,
865
+ "isSigner": false
866
+ },
867
+ {
868
+ "name": "transferAuthority",
869
+ "isMut": false,
870
+ "isSigner": false
871
+ },
872
+ {
873
+ "name": "perpetuals",
874
+ "isMut": false,
875
+ "isSigner": false
876
+ },
877
+ {
878
+ "name": "pool",
879
+ "isMut": true,
880
+ "isSigner": false
881
+ },
882
+ {
883
+ "name": "custody",
884
+ "isMut": true,
885
+ "isSigner": false
886
+ },
887
+ {
888
+ "name": "custodyOracleAccount",
889
+ "isMut": false,
890
+ "isSigner": false
891
+ },
892
+ {
893
+ "name": "custodyTokenAccount",
894
+ "isMut": true,
895
+ "isSigner": false
896
+ },
897
+ {
898
+ "name": "lpTokenMint",
899
+ "isMut": true,
900
+ "isSigner": false
901
+ },
902
+ {
903
+ "name": "tokenProgram",
904
+ "isMut": false,
905
+ "isSigner": false
906
+ }
907
+ ],
908
+ "args": [
909
+ {
910
+ "name": "params",
911
+ "type": {
912
+ "defined": "RemoveLiquidityParams"
913
+ }
914
+ }
915
+ ]
916
+ },
917
+ {
918
+ "name": "openPosition",
919
+ "accounts": [
920
+ {
921
+ "name": "owner",
922
+ "isMut": true,
923
+ "isSigner": true
924
+ },
925
+ {
926
+ "name": "fundingAccount",
927
+ "isMut": true,
928
+ "isSigner": false
929
+ },
930
+ {
931
+ "name": "transferAuthority",
932
+ "isMut": false,
933
+ "isSigner": false
934
+ },
935
+ {
936
+ "name": "perpetuals",
937
+ "isMut": false,
938
+ "isSigner": false
939
+ },
940
+ {
941
+ "name": "pool",
942
+ "isMut": true,
943
+ "isSigner": false
944
+ },
945
+ {
946
+ "name": "position",
947
+ "isMut": true,
948
+ "isSigner": false
949
+ },
950
+ {
951
+ "name": "custody",
952
+ "isMut": true,
953
+ "isSigner": false
954
+ },
955
+ {
956
+ "name": "custodyOracleAccount",
957
+ "isMut": false,
958
+ "isSigner": false
959
+ },
960
+ {
961
+ "name": "custodyTokenAccount",
962
+ "isMut": true,
963
+ "isSigner": false
964
+ },
965
+ {
966
+ "name": "systemProgram",
967
+ "isMut": false,
968
+ "isSigner": false
969
+ },
970
+ {
971
+ "name": "tokenProgram",
972
+ "isMut": false,
973
+ "isSigner": false
974
+ }
975
+ ],
976
+ "args": [
977
+ {
978
+ "name": "params",
979
+ "type": {
980
+ "defined": "OpenPositionParams"
981
+ }
982
+ }
983
+ ]
984
+ },
985
+ {
986
+ "name": "addCollateral",
987
+ "accounts": [
988
+ {
989
+ "name": "owner",
990
+ "isMut": true,
991
+ "isSigner": true
992
+ },
993
+ {
994
+ "name": "fundingAccount",
995
+ "isMut": true,
996
+ "isSigner": false
997
+ },
998
+ {
999
+ "name": "transferAuthority",
1000
+ "isMut": false,
1001
+ "isSigner": false
1002
+ },
1003
+ {
1004
+ "name": "perpetuals",
1005
+ "isMut": false,
1006
+ "isSigner": false
1007
+ },
1008
+ {
1009
+ "name": "pool",
1010
+ "isMut": true,
1011
+ "isSigner": false
1012
+ },
1013
+ {
1014
+ "name": "position",
1015
+ "isMut": true,
1016
+ "isSigner": false
1017
+ },
1018
+ {
1019
+ "name": "custody",
1020
+ "isMut": true,
1021
+ "isSigner": false
1022
+ },
1023
+ {
1024
+ "name": "custodyOracleAccount",
1025
+ "isMut": false,
1026
+ "isSigner": false
1027
+ },
1028
+ {
1029
+ "name": "custodyTokenAccount",
1030
+ "isMut": true,
1031
+ "isSigner": false
1032
+ },
1033
+ {
1034
+ "name": "tokenProgram",
1035
+ "isMut": false,
1036
+ "isSigner": false
1037
+ }
1038
+ ],
1039
+ "args": [
1040
+ {
1041
+ "name": "params",
1042
+ "type": {
1043
+ "defined": "AddCollateralParams"
1044
+ }
1045
+ }
1046
+ ]
1047
+ },
1048
+ {
1049
+ "name": "removeCollateral",
1050
+ "accounts": [
1051
+ {
1052
+ "name": "owner",
1053
+ "isMut": true,
1054
+ "isSigner": true
1055
+ },
1056
+ {
1057
+ "name": "receivingAccount",
1058
+ "isMut": true,
1059
+ "isSigner": false
1060
+ },
1061
+ {
1062
+ "name": "transferAuthority",
1063
+ "isMut": false,
1064
+ "isSigner": false
1065
+ },
1066
+ {
1067
+ "name": "perpetuals",
1068
+ "isMut": false,
1069
+ "isSigner": false
1070
+ },
1071
+ {
1072
+ "name": "pool",
1073
+ "isMut": true,
1074
+ "isSigner": false
1075
+ },
1076
+ {
1077
+ "name": "position",
1078
+ "isMut": true,
1079
+ "isSigner": false
1080
+ },
1081
+ {
1082
+ "name": "custody",
1083
+ "isMut": true,
1084
+ "isSigner": false
1085
+ },
1086
+ {
1087
+ "name": "custodyOracleAccount",
1088
+ "isMut": false,
1089
+ "isSigner": false
1090
+ },
1091
+ {
1092
+ "name": "custodyTokenAccount",
1093
+ "isMut": true,
1094
+ "isSigner": false
1095
+ },
1096
+ {
1097
+ "name": "tokenProgram",
1098
+ "isMut": false,
1099
+ "isSigner": false
1100
+ }
1101
+ ],
1102
+ "args": [
1103
+ {
1104
+ "name": "params",
1105
+ "type": {
1106
+ "defined": "RemoveCollateralParams"
1107
+ }
1108
+ }
1109
+ ]
1110
+ },
1111
+ {
1112
+ "name": "closePosition",
1113
+ "accounts": [
1114
+ {
1115
+ "name": "owner",
1116
+ "isMut": true,
1117
+ "isSigner": true
1118
+ },
1119
+ {
1120
+ "name": "receivingAccount",
1121
+ "isMut": true,
1122
+ "isSigner": false
1123
+ },
1124
+ {
1125
+ "name": "transferAuthority",
1126
+ "isMut": false,
1127
+ "isSigner": false
1128
+ },
1129
+ {
1130
+ "name": "perpetuals",
1131
+ "isMut": false,
1132
+ "isSigner": false
1133
+ },
1134
+ {
1135
+ "name": "pool",
1136
+ "isMut": true,
1137
+ "isSigner": false
1138
+ },
1139
+ {
1140
+ "name": "position",
1141
+ "isMut": true,
1142
+ "isSigner": false
1143
+ },
1144
+ {
1145
+ "name": "custody",
1146
+ "isMut": true,
1147
+ "isSigner": false
1148
+ },
1149
+ {
1150
+ "name": "custodyOracleAccount",
1151
+ "isMut": false,
1152
+ "isSigner": false
1153
+ },
1154
+ {
1155
+ "name": "custodyTokenAccount",
1156
+ "isMut": true,
1157
+ "isSigner": false
1158
+ },
1159
+ {
1160
+ "name": "tokenProgram",
1161
+ "isMut": false,
1162
+ "isSigner": false
1163
+ }
1164
+ ],
1165
+ "args": [
1166
+ {
1167
+ "name": "params",
1168
+ "type": {
1169
+ "defined": "ClosePositionParams"
1170
+ }
1171
+ }
1172
+ ]
1173
+ },
1174
+ {
1175
+ "name": "liquidate",
1176
+ "accounts": [
1177
+ {
1178
+ "name": "signer",
1179
+ "isMut": true,
1180
+ "isSigner": true
1181
+ },
1182
+ {
1183
+ "name": "receivingAccount",
1184
+ "isMut": true,
1185
+ "isSigner": false
1186
+ },
1187
+ {
1188
+ "name": "rewardsReceivingAccount",
1189
+ "isMut": true,
1190
+ "isSigner": false
1191
+ },
1192
+ {
1193
+ "name": "transferAuthority",
1194
+ "isMut": false,
1195
+ "isSigner": false
1196
+ },
1197
+ {
1198
+ "name": "perpetuals",
1199
+ "isMut": false,
1200
+ "isSigner": false
1201
+ },
1202
+ {
1203
+ "name": "pool",
1204
+ "isMut": true,
1205
+ "isSigner": false
1206
+ },
1207
+ {
1208
+ "name": "position",
1209
+ "isMut": true,
1210
+ "isSigner": false
1211
+ },
1212
+ {
1213
+ "name": "custody",
1214
+ "isMut": true,
1215
+ "isSigner": false
1216
+ },
1217
+ {
1218
+ "name": "custodyOracleAccount",
1219
+ "isMut": false,
1220
+ "isSigner": false
1221
+ },
1222
+ {
1223
+ "name": "custodyTokenAccount",
1224
+ "isMut": true,
1225
+ "isSigner": false
1226
+ },
1227
+ {
1228
+ "name": "tokenProgram",
1229
+ "isMut": false,
1230
+ "isSigner": false
1231
+ }
1232
+ ],
1233
+ "args": [
1234
+ {
1235
+ "name": "params",
1236
+ "type": {
1237
+ "defined": "LiquidateParams"
1238
+ }
1239
+ }
1240
+ ]
1241
+ },
1242
+ {
1243
+ "name": "getAddLiquidityAmountAndFee",
1244
+ "accounts": [
1245
+ {
1246
+ "name": "perpetuals",
1247
+ "isMut": false,
1248
+ "isSigner": false
1249
+ },
1250
+ {
1251
+ "name": "pool",
1252
+ "isMut": false,
1253
+ "isSigner": false
1254
+ },
1255
+ {
1256
+ "name": "custody",
1257
+ "isMut": false,
1258
+ "isSigner": false
1259
+ },
1260
+ {
1261
+ "name": "custodyOracleAccount",
1262
+ "isMut": false,
1263
+ "isSigner": false
1264
+ },
1265
+ {
1266
+ "name": "lpTokenMint",
1267
+ "isMut": false,
1268
+ "isSigner": false
1269
+ }
1270
+ ],
1271
+ "args": [
1272
+ {
1273
+ "name": "params",
1274
+ "type": {
1275
+ "defined": "GetAddLiquidityAmountAndFeeParams"
1276
+ }
1277
+ }
1278
+ ],
1279
+ "returns": {
1280
+ "defined": "AmountAndFee"
1281
+ }
1282
+ },
1283
+ {
1284
+ "name": "getRemoveLiquidityAmountAndFee",
1285
+ "accounts": [
1286
+ {
1287
+ "name": "perpetuals",
1288
+ "isMut": false,
1289
+ "isSigner": false
1290
+ },
1291
+ {
1292
+ "name": "pool",
1293
+ "isMut": false,
1294
+ "isSigner": false
1295
+ },
1296
+ {
1297
+ "name": "custody",
1298
+ "isMut": false,
1299
+ "isSigner": false
1300
+ },
1301
+ {
1302
+ "name": "custodyOracleAccount",
1303
+ "isMut": false,
1304
+ "isSigner": false
1305
+ },
1306
+ {
1307
+ "name": "lpTokenMint",
1308
+ "isMut": false,
1309
+ "isSigner": false
1310
+ }
1311
+ ],
1312
+ "args": [
1313
+ {
1314
+ "name": "params",
1315
+ "type": {
1316
+ "defined": "GetRemoveLiquidityAmountAndFeeParams"
1317
+ }
1318
+ }
1319
+ ],
1320
+ "returns": {
1321
+ "defined": "AmountAndFee"
1322
+ }
1323
+ },
1324
+ {
1325
+ "name": "getEntryPriceAndFee",
1326
+ "accounts": [
1327
+ {
1328
+ "name": "perpetuals",
1329
+ "isMut": false,
1330
+ "isSigner": false
1331
+ },
1332
+ {
1333
+ "name": "pool",
1334
+ "isMut": false,
1335
+ "isSigner": false
1336
+ },
1337
+ {
1338
+ "name": "custody",
1339
+ "isMut": false,
1340
+ "isSigner": false
1341
+ },
1342
+ {
1343
+ "name": "custodyOracleAccount",
1344
+ "isMut": false,
1345
+ "isSigner": false
1346
+ }
1347
+ ],
1348
+ "args": [
1349
+ {
1350
+ "name": "params",
1351
+ "type": {
1352
+ "defined": "GetEntryPriceAndFeeParams"
1353
+ }
1354
+ }
1355
+ ],
1356
+ "returns": {
1357
+ "defined": "NewPositionPricesAndFee"
1358
+ }
1359
+ },
1360
+ {
1361
+ "name": "getExitPriceAndFee",
1362
+ "accounts": [
1363
+ {
1364
+ "name": "perpetuals",
1365
+ "isMut": false,
1366
+ "isSigner": false
1367
+ },
1368
+ {
1369
+ "name": "pool",
1370
+ "isMut": false,
1371
+ "isSigner": false
1372
+ },
1373
+ {
1374
+ "name": "position",
1375
+ "isMut": false,
1376
+ "isSigner": false
1377
+ },
1378
+ {
1379
+ "name": "custody",
1380
+ "isMut": false,
1381
+ "isSigner": false
1382
+ },
1383
+ {
1384
+ "name": "custodyOracleAccount",
1385
+ "isMut": false,
1386
+ "isSigner": false
1387
+ }
1388
+ ],
1389
+ "args": [
1390
+ {
1391
+ "name": "params",
1392
+ "type": {
1393
+ "defined": "GetExitPriceAndFeeParams"
1394
+ }
1395
+ }
1396
+ ],
1397
+ "returns": {
1398
+ "defined": "PriceAndFee"
1399
+ }
1400
+ },
1401
+ {
1402
+ "name": "getPnl",
1403
+ "accounts": [
1404
+ {
1405
+ "name": "perpetuals",
1406
+ "isMut": false,
1407
+ "isSigner": false
1408
+ },
1409
+ {
1410
+ "name": "pool",
1411
+ "isMut": false,
1412
+ "isSigner": false
1413
+ },
1414
+ {
1415
+ "name": "position",
1416
+ "isMut": false,
1417
+ "isSigner": false
1418
+ },
1419
+ {
1420
+ "name": "custody",
1421
+ "isMut": false,
1422
+ "isSigner": false
1423
+ },
1424
+ {
1425
+ "name": "custodyOracleAccount",
1426
+ "isMut": false,
1427
+ "isSigner": false
1428
+ }
1429
+ ],
1430
+ "args": [
1431
+ {
1432
+ "name": "params",
1433
+ "type": {
1434
+ "defined": "GetPnlParams"
1435
+ }
1436
+ }
1437
+ ],
1438
+ "returns": {
1439
+ "defined": "ProfitAndLoss"
1440
+ }
1441
+ },
1442
+ {
1443
+ "name": "getLiquidationPrice",
1444
+ "accounts": [
1445
+ {
1446
+ "name": "perpetuals",
1447
+ "isMut": false,
1448
+ "isSigner": false
1449
+ },
1450
+ {
1451
+ "name": "pool",
1452
+ "isMut": false,
1453
+ "isSigner": false
1454
+ },
1455
+ {
1456
+ "name": "position",
1457
+ "isMut": false,
1458
+ "isSigner": false
1459
+ },
1460
+ {
1461
+ "name": "custody",
1462
+ "isMut": false,
1463
+ "isSigner": false
1464
+ },
1465
+ {
1466
+ "name": "custodyOracleAccount",
1467
+ "isMut": false,
1468
+ "isSigner": false
1469
+ }
1470
+ ],
1471
+ "args": [
1472
+ {
1473
+ "name": "params",
1474
+ "type": {
1475
+ "defined": "GetLiquidationPriceParams"
1476
+ }
1477
+ }
1478
+ ],
1479
+ "returns": "u64"
1480
+ },
1481
+ {
1482
+ "name": "getLiquidationState",
1483
+ "accounts": [
1484
+ {
1485
+ "name": "perpetuals",
1486
+ "isMut": false,
1487
+ "isSigner": false
1488
+ },
1489
+ {
1490
+ "name": "pool",
1491
+ "isMut": false,
1492
+ "isSigner": false
1493
+ },
1494
+ {
1495
+ "name": "position",
1496
+ "isMut": false,
1497
+ "isSigner": false
1498
+ },
1499
+ {
1500
+ "name": "custody",
1501
+ "isMut": false,
1502
+ "isSigner": false
1503
+ },
1504
+ {
1505
+ "name": "custodyOracleAccount",
1506
+ "isMut": false,
1507
+ "isSigner": false
1508
+ }
1509
+ ],
1510
+ "args": [
1511
+ {
1512
+ "name": "params",
1513
+ "type": {
1514
+ "defined": "GetLiquidationStateParams"
1515
+ }
1516
+ }
1517
+ ],
1518
+ "returns": "u8"
1519
+ },
1520
+ {
1521
+ "name": "getOraclePrice",
1522
+ "accounts": [
1523
+ {
1524
+ "name": "perpetuals",
1525
+ "isMut": false,
1526
+ "isSigner": false
1527
+ },
1528
+ {
1529
+ "name": "pool",
1530
+ "isMut": false,
1531
+ "isSigner": false
1532
+ },
1533
+ {
1534
+ "name": "custody",
1535
+ "isMut": false,
1536
+ "isSigner": false
1537
+ },
1538
+ {
1539
+ "name": "custodyOracleAccount",
1540
+ "isMut": false,
1541
+ "isSigner": false
1542
+ }
1543
+ ],
1544
+ "args": [
1545
+ {
1546
+ "name": "params",
1547
+ "type": {
1548
+ "defined": "GetOraclePriceParams"
1549
+ }
1550
+ }
1551
+ ],
1552
+ "returns": "u64"
1553
+ },
1554
+ {
1555
+ "name": "getSwapAmountAndFees",
1556
+ "accounts": [
1557
+ {
1558
+ "name": "perpetuals",
1559
+ "isMut": false,
1560
+ "isSigner": false
1561
+ },
1562
+ {
1563
+ "name": "pool",
1564
+ "isMut": false,
1565
+ "isSigner": false
1566
+ },
1567
+ {
1568
+ "name": "receivingCustody",
1569
+ "isMut": false,
1570
+ "isSigner": false
1571
+ },
1572
+ {
1573
+ "name": "receivingCustodyOracleAccount",
1574
+ "isMut": false,
1575
+ "isSigner": false
1576
+ },
1577
+ {
1578
+ "name": "dispensingCustody",
1579
+ "isMut": false,
1580
+ "isSigner": false
1581
+ },
1582
+ {
1583
+ "name": "dispensingCustodyOracleAccount",
1584
+ "isMut": false,
1585
+ "isSigner": false
1586
+ }
1587
+ ],
1588
+ "args": [
1589
+ {
1590
+ "name": "params",
1591
+ "type": {
1592
+ "defined": "GetSwapAmountAndFeesParams"
1593
+ }
1594
+ }
1595
+ ],
1596
+ "returns": {
1597
+ "defined": "SwapAmountAndFees"
1598
+ }
1599
+ },
1600
+ {
1601
+ "name": "getAssetsUnderManagement",
1602
+ "accounts": [
1603
+ {
1604
+ "name": "perpetuals",
1605
+ "isMut": false,
1606
+ "isSigner": false
1607
+ },
1608
+ {
1609
+ "name": "pool",
1610
+ "isMut": false,
1611
+ "isSigner": false
1612
+ }
1613
+ ],
1614
+ "args": [
1615
+ {
1616
+ "name": "params",
1617
+ "type": {
1618
+ "defined": "GetAssetsUnderManagementParams"
1619
+ }
1620
+ }
1621
+ ],
1622
+ "returns": "u128"
1623
+ }
1624
+ ],
1625
+ "accounts": [
1626
+ {
1627
+ "name": "Custody",
1628
+ "type": {
1629
+ "kind": "struct",
1630
+ "fields": [
1631
+ {
1632
+ "name": "pool",
1633
+ "type": "publicKey"
1634
+ },
1635
+ {
1636
+ "name": "mint",
1637
+ "type": "publicKey"
1638
+ },
1639
+ {
1640
+ "name": "tokenAccount",
1641
+ "type": "publicKey"
1642
+ },
1643
+ {
1644
+ "name": "decimals",
1645
+ "type": "u8"
1646
+ },
1647
+ {
1648
+ "name": "isStable",
1649
+ "type": "bool"
1650
+ },
1651
+ {
1652
+ "name": "oracle",
1653
+ "type": {
1654
+ "defined": "OracleParams"
1655
+ }
1656
+ },
1657
+ {
1658
+ "name": "pricing",
1659
+ "type": {
1660
+ "defined": "PricingParams"
1661
+ }
1662
+ },
1663
+ {
1664
+ "name": "permissions",
1665
+ "type": {
1666
+ "defined": "Permissions"
1667
+ }
1668
+ },
1669
+ {
1670
+ "name": "fees",
1671
+ "type": {
1672
+ "defined": "Fees"
1673
+ }
1674
+ },
1675
+ {
1676
+ "name": "borrowRate",
1677
+ "type": {
1678
+ "defined": "BorrowRateParams"
1679
+ }
1680
+ },
1681
+ {
1682
+ "name": "assets",
1683
+ "type": {
1684
+ "defined": "Assets"
1685
+ }
1686
+ },
1687
+ {
1688
+ "name": "collectedFees",
1689
+ "type": {
1690
+ "defined": "FeesStats"
1691
+ }
1692
+ },
1693
+ {
1694
+ "name": "volumeStats",
1695
+ "type": {
1696
+ "defined": "VolumeStats"
1697
+ }
1698
+ },
1699
+ {
1700
+ "name": "tradeStats",
1701
+ "type": {
1702
+ "defined": "TradeStats"
1703
+ }
1704
+ },
1705
+ {
1706
+ "name": "longPositions",
1707
+ "type": {
1708
+ "defined": "PositionStats"
1709
+ }
1710
+ },
1711
+ {
1712
+ "name": "shortPositions",
1713
+ "type": {
1714
+ "defined": "PositionStats"
1715
+ }
1716
+ },
1717
+ {
1718
+ "name": "borrowRateState",
1719
+ "type": {
1720
+ "defined": "BorrowRateState"
1721
+ }
1722
+ },
1723
+ {
1724
+ "name": "bump",
1725
+ "type": "u8"
1726
+ },
1727
+ {
1728
+ "name": "tokenAccountBump",
1729
+ "type": "u8"
1730
+ }
1731
+ ]
1732
+ }
1733
+ },
1734
+ {
1735
+ "name": "DeprecatedCustody",
1736
+ "type": {
1737
+ "kind": "struct",
1738
+ "fields": [
1739
+ {
1740
+ "name": "pool",
1741
+ "type": "publicKey"
1742
+ },
1743
+ {
1744
+ "name": "mint",
1745
+ "type": "publicKey"
1746
+ },
1747
+ {
1748
+ "name": "tokenAccount",
1749
+ "type": "publicKey"
1750
+ },
1751
+ {
1752
+ "name": "decimals",
1753
+ "type": "u8"
1754
+ },
1755
+ {
1756
+ "name": "isStable",
1757
+ "type": "bool"
1758
+ },
1759
+ {
1760
+ "name": "oracle",
1761
+ "type": {
1762
+ "defined": "OracleParams"
1763
+ }
1764
+ },
1765
+ {
1766
+ "name": "pricing",
1767
+ "type": {
1768
+ "defined": "DeprecatedPricingParams"
1769
+ }
1770
+ },
1771
+ {
1772
+ "name": "permissions",
1773
+ "type": {
1774
+ "defined": "Permissions"
1775
+ }
1776
+ },
1777
+ {
1778
+ "name": "fees",
1779
+ "type": {
1780
+ "defined": "Fees"
1781
+ }
1782
+ },
1783
+ {
1784
+ "name": "borrowRate",
1785
+ "type": {
1786
+ "defined": "BorrowRateParams"
1787
+ }
1788
+ },
1789
+ {
1790
+ "name": "assets",
1791
+ "type": {
1792
+ "defined": "Assets"
1793
+ }
1794
+ },
1795
+ {
1796
+ "name": "collectedFees",
1797
+ "type": {
1798
+ "defined": "FeesStats"
1799
+ }
1800
+ },
1801
+ {
1802
+ "name": "volumeStats",
1803
+ "type": {
1804
+ "defined": "VolumeStats"
1805
+ }
1806
+ },
1807
+ {
1808
+ "name": "tradeStats",
1809
+ "type": {
1810
+ "defined": "TradeStats"
1811
+ }
1812
+ },
1813
+ {
1814
+ "name": "longPositions",
1815
+ "type": {
1816
+ "defined": "PositionStats"
1817
+ }
1818
+ },
1819
+ {
1820
+ "name": "shortPositions",
1821
+ "type": {
1822
+ "defined": "PositionStats"
1823
+ }
1824
+ },
1825
+ {
1826
+ "name": "borrowRateState",
1827
+ "type": {
1828
+ "defined": "BorrowRateState"
1829
+ }
1830
+ },
1831
+ {
1832
+ "name": "bump",
1833
+ "type": "u8"
1834
+ },
1835
+ {
1836
+ "name": "tokenAccountBump",
1837
+ "type": "u8"
1838
+ }
1839
+ ]
1840
+ }
1841
+ },
1842
+ {
1843
+ "name": "Multisig",
1844
+ "type": {
1845
+ "kind": "struct",
1846
+ "fields": [
1847
+ {
1848
+ "name": "numSigners",
1849
+ "type": "u8"
1850
+ },
1851
+ {
1852
+ "name": "numSigned",
1853
+ "type": "u8"
1854
+ },
1855
+ {
1856
+ "name": "minSignatures",
1857
+ "type": "u8"
1858
+ },
1859
+ {
1860
+ "name": "instructionAccountsLen",
1861
+ "type": "u8"
1862
+ },
1863
+ {
1864
+ "name": "instructionDataLen",
1865
+ "type": "u16"
1866
+ },
1867
+ {
1868
+ "name": "instructionHash",
1869
+ "type": "u64"
1870
+ },
1871
+ {
1872
+ "name": "signers",
1873
+ "type": {
1874
+ "array": [
1875
+ "publicKey",
1876
+ 6
1877
+ ]
1878
+ }
1879
+ },
1880
+ {
1881
+ "name": "signed",
1882
+ "type": {
1883
+ "array": [
1884
+ "bool",
1885
+ 6
1886
+ ]
1887
+ }
1888
+ },
1889
+ {
1890
+ "name": "bump",
1891
+ "type": "u8"
1892
+ }
1893
+ ]
1894
+ }
1895
+ },
1896
+ {
1897
+ "name": "TestOracle",
1898
+ "type": {
1899
+ "kind": "struct",
1900
+ "fields": [
1901
+ {
1902
+ "name": "price",
1903
+ "type": "u64"
1904
+ },
1905
+ {
1906
+ "name": "expo",
1907
+ "type": "i32"
1908
+ },
1909
+ {
1910
+ "name": "conf",
1911
+ "type": "u64"
1912
+ },
1913
+ {
1914
+ "name": "publishTime",
1915
+ "type": "i64"
1916
+ }
1917
+ ]
1918
+ }
1919
+ },
1920
+ {
1921
+ "name": "Perpetuals",
1922
+ "type": {
1923
+ "kind": "struct",
1924
+ "fields": [
1925
+ {
1926
+ "name": "permissions",
1927
+ "type": {
1928
+ "defined": "Permissions"
1929
+ }
1930
+ },
1931
+ {
1932
+ "name": "pools",
1933
+ "type": {
1934
+ "vec": "publicKey"
1935
+ }
1936
+ },
1937
+ {
1938
+ "name": "transferAuthorityBump",
1939
+ "type": "u8"
1940
+ },
1941
+ {
1942
+ "name": "perpetualsBump",
1943
+ "type": "u8"
1944
+ },
1945
+ {
1946
+ "name": "inceptionTime",
1947
+ "type": "i64"
1948
+ }
1949
+ ]
1950
+ }
1951
+ },
1952
+ {
1953
+ "name": "Pool",
1954
+ "type": {
1955
+ "kind": "struct",
1956
+ "fields": [
1957
+ {
1958
+ "name": "name",
1959
+ "type": "string"
1960
+ },
1961
+ {
1962
+ "name": "custodies",
1963
+ "type": {
1964
+ "vec": "publicKey"
1965
+ }
1966
+ },
1967
+ {
1968
+ "name": "ratios",
1969
+ "type": {
1970
+ "vec": {
1971
+ "defined": "TokenRatios"
1972
+ }
1973
+ }
1974
+ },
1975
+ {
1976
+ "name": "aumUsd",
1977
+ "type": "u128"
1978
+ },
1979
+ {
1980
+ "name": "bump",
1981
+ "type": "u8"
1982
+ },
1983
+ {
1984
+ "name": "lpTokenBump",
1985
+ "type": "u8"
1986
+ },
1987
+ {
1988
+ "name": "inceptionTime",
1989
+ "type": "i64"
1990
+ }
1991
+ ]
1992
+ }
1993
+ },
1994
+ {
1995
+ "name": "Position",
1996
+ "type": {
1997
+ "kind": "struct",
1998
+ "fields": [
1999
+ {
2000
+ "name": "owner",
2001
+ "type": "publicKey"
2002
+ },
2003
+ {
2004
+ "name": "pool",
2005
+ "type": "publicKey"
2006
+ },
2007
+ {
2008
+ "name": "custody",
2009
+ "type": "publicKey"
2010
+ },
2011
+ {
2012
+ "name": "openTime",
2013
+ "type": "i64"
2014
+ },
2015
+ {
2016
+ "name": "updateTime",
2017
+ "type": "i64"
2018
+ },
2019
+ {
2020
+ "name": "side",
2021
+ "type": {
2022
+ "defined": "Side"
2023
+ }
2024
+ },
2025
+ {
2026
+ "name": "price",
2027
+ "type": "u64"
2028
+ },
2029
+ {
2030
+ "name": "sizeUsd",
2031
+ "type": "u64"
2032
+ },
2033
+ {
2034
+ "name": "collateralUsd",
2035
+ "type": "u64"
2036
+ },
2037
+ {
2038
+ "name": "unrealizedProfitUsd",
2039
+ "type": "u64"
2040
+ },
2041
+ {
2042
+ "name": "unrealizedLossUsd",
2043
+ "type": "u64"
2044
+ },
2045
+ {
2046
+ "name": "cumulativeInterestSnapshot",
2047
+ "type": "u128"
2048
+ },
2049
+ {
2050
+ "name": "lockedAmount",
2051
+ "type": "u64"
2052
+ },
2053
+ {
2054
+ "name": "collateralAmount",
2055
+ "type": "u64"
2056
+ },
2057
+ {
2058
+ "name": "bump",
2059
+ "type": "u8"
2060
+ }
2061
+ ]
2062
+ }
2063
+ }
2064
+ ],
2065
+ "types": [
2066
+ {
2067
+ "name": "AddCollateralParams",
2068
+ "type": {
2069
+ "kind": "struct",
2070
+ "fields": [
2071
+ {
2072
+ "name": "collateral",
2073
+ "type": "u64"
2074
+ }
2075
+ ]
2076
+ }
2077
+ },
2078
+ {
2079
+ "name": "AddCustodyParams",
2080
+ "type": {
2081
+ "kind": "struct",
2082
+ "fields": [
2083
+ {
2084
+ "name": "isStable",
2085
+ "type": "bool"
2086
+ },
2087
+ {
2088
+ "name": "oracle",
2089
+ "type": {
2090
+ "defined": "OracleParams"
2091
+ }
2092
+ },
2093
+ {
2094
+ "name": "pricing",
2095
+ "type": {
2096
+ "defined": "PricingParams"
2097
+ }
2098
+ },
2099
+ {
2100
+ "name": "permissions",
2101
+ "type": {
2102
+ "defined": "Permissions"
2103
+ }
2104
+ },
2105
+ {
2106
+ "name": "fees",
2107
+ "type": {
2108
+ "defined": "Fees"
2109
+ }
2110
+ },
2111
+ {
2112
+ "name": "borrowRate",
2113
+ "type": {
2114
+ "defined": "BorrowRateParams"
2115
+ }
2116
+ },
2117
+ {
2118
+ "name": "ratios",
2119
+ "type": {
2120
+ "vec": {
2121
+ "defined": "TokenRatios"
2122
+ }
2123
+ }
2124
+ }
2125
+ ]
2126
+ }
2127
+ },
2128
+ {
2129
+ "name": "AddLiquidityParams",
2130
+ "type": {
2131
+ "kind": "struct",
2132
+ "fields": [
2133
+ {
2134
+ "name": "amountIn",
2135
+ "type": "u64"
2136
+ },
2137
+ {
2138
+ "name": "minLpAmountOut",
2139
+ "type": "u64"
2140
+ }
2141
+ ]
2142
+ }
2143
+ },
2144
+ {
2145
+ "name": "AddPoolParams",
2146
+ "type": {
2147
+ "kind": "struct",
2148
+ "fields": [
2149
+ {
2150
+ "name": "name",
2151
+ "type": "string"
2152
+ }
2153
+ ]
2154
+ }
2155
+ },
2156
+ {
2157
+ "name": "ClosePositionParams",
2158
+ "type": {
2159
+ "kind": "struct",
2160
+ "fields": [
2161
+ {
2162
+ "name": "price",
2163
+ "type": "u64"
2164
+ }
2165
+ ]
2166
+ }
2167
+ },
2168
+ {
2169
+ "name": "GetAddLiquidityAmountAndFeeParams",
2170
+ "type": {
2171
+ "kind": "struct",
2172
+ "fields": [
2173
+ {
2174
+ "name": "amountIn",
2175
+ "type": "u64"
2176
+ }
2177
+ ]
2178
+ }
2179
+ },
2180
+ {
2181
+ "name": "GetAssetsUnderManagementParams",
2182
+ "type": {
2183
+ "kind": "struct",
2184
+ "fields": []
2185
+ }
2186
+ },
2187
+ {
2188
+ "name": "GetEntryPriceAndFeeParams",
2189
+ "type": {
2190
+ "kind": "struct",
2191
+ "fields": [
2192
+ {
2193
+ "name": "collateral",
2194
+ "type": "u64"
2195
+ },
2196
+ {
2197
+ "name": "size",
2198
+ "type": "u64"
2199
+ },
2200
+ {
2201
+ "name": "side",
2202
+ "type": {
2203
+ "defined": "Side"
2204
+ }
2205
+ }
2206
+ ]
2207
+ }
2208
+ },
2209
+ {
2210
+ "name": "GetExitPriceAndFeeParams",
2211
+ "type": {
2212
+ "kind": "struct",
2213
+ "fields": []
2214
+ }
2215
+ },
2216
+ {
2217
+ "name": "GetLiquidationPriceParams",
2218
+ "type": {
2219
+ "kind": "struct",
2220
+ "fields": [
2221
+ {
2222
+ "name": "addCollateral",
2223
+ "type": "u64"
2224
+ },
2225
+ {
2226
+ "name": "removeCollateral",
2227
+ "type": "u64"
2228
+ }
2229
+ ]
2230
+ }
2231
+ },
2232
+ {
2233
+ "name": "GetLiquidationStateParams",
2234
+ "type": {
2235
+ "kind": "struct",
2236
+ "fields": []
2237
+ }
2238
+ },
2239
+ {
2240
+ "name": "GetOraclePriceParams",
2241
+ "type": {
2242
+ "kind": "struct",
2243
+ "fields": [
2244
+ {
2245
+ "name": "ema",
2246
+ "type": "bool"
2247
+ }
2248
+ ]
2249
+ }
2250
+ },
2251
+ {
2252
+ "name": "GetPnlParams",
2253
+ "type": {
2254
+ "kind": "struct",
2255
+ "fields": []
2256
+ }
2257
+ },
2258
+ {
2259
+ "name": "GetRemoveLiquidityAmountAndFeeParams",
2260
+ "type": {
2261
+ "kind": "struct",
2262
+ "fields": [
2263
+ {
2264
+ "name": "lpAmountIn",
2265
+ "type": "u64"
2266
+ }
2267
+ ]
2268
+ }
2269
+ },
2270
+ {
2271
+ "name": "GetSwapAmountAndFeesParams",
2272
+ "type": {
2273
+ "kind": "struct",
2274
+ "fields": [
2275
+ {
2276
+ "name": "amountIn",
2277
+ "type": "u64"
2278
+ }
2279
+ ]
2280
+ }
2281
+ },
2282
+ {
2283
+ "name": "InitParams",
2284
+ "type": {
2285
+ "kind": "struct",
2286
+ "fields": [
2287
+ {
2288
+ "name": "minSignatures",
2289
+ "type": "u8"
2290
+ },
2291
+ {
2292
+ "name": "allowSwap",
2293
+ "type": "bool"
2294
+ },
2295
+ {
2296
+ "name": "allowAddLiquidity",
2297
+ "type": "bool"
2298
+ },
2299
+ {
2300
+ "name": "allowRemoveLiquidity",
2301
+ "type": "bool"
2302
+ },
2303
+ {
2304
+ "name": "allowOpenPosition",
2305
+ "type": "bool"
2306
+ },
2307
+ {
2308
+ "name": "allowClosePosition",
2309
+ "type": "bool"
2310
+ },
2311
+ {
2312
+ "name": "allowPnlWithdrawal",
2313
+ "type": "bool"
2314
+ },
2315
+ {
2316
+ "name": "allowCollateralWithdrawal",
2317
+ "type": "bool"
2318
+ },
2319
+ {
2320
+ "name": "allowSizeChange",
2321
+ "type": "bool"
2322
+ }
2323
+ ]
2324
+ }
2325
+ },
2326
+ {
2327
+ "name": "LiquidateParams",
2328
+ "type": {
2329
+ "kind": "struct",
2330
+ "fields": []
2331
+ }
2332
+ },
2333
+ {
2334
+ "name": "OpenPositionParams",
2335
+ "type": {
2336
+ "kind": "struct",
2337
+ "fields": [
2338
+ {
2339
+ "name": "price",
2340
+ "type": "u64"
2341
+ },
2342
+ {
2343
+ "name": "collateral",
2344
+ "type": "u64"
2345
+ },
2346
+ {
2347
+ "name": "size",
2348
+ "type": "u64"
2349
+ },
2350
+ {
2351
+ "name": "side",
2352
+ "type": {
2353
+ "defined": "Side"
2354
+ }
2355
+ }
2356
+ ]
2357
+ }
2358
+ },
2359
+ {
2360
+ "name": "RemoveCollateralParams",
2361
+ "type": {
2362
+ "kind": "struct",
2363
+ "fields": [
2364
+ {
2365
+ "name": "collateralUsd",
2366
+ "type": "u64"
2367
+ }
2368
+ ]
2369
+ }
2370
+ },
2371
+ {
2372
+ "name": "RemoveCustodyParams",
2373
+ "type": {
2374
+ "kind": "struct",
2375
+ "fields": [
2376
+ {
2377
+ "name": "ratios",
2378
+ "type": {
2379
+ "vec": {
2380
+ "defined": "TokenRatios"
2381
+ }
2382
+ }
2383
+ }
2384
+ ]
2385
+ }
2386
+ },
2387
+ {
2388
+ "name": "RemoveLiquidityParams",
2389
+ "type": {
2390
+ "kind": "struct",
2391
+ "fields": [
2392
+ {
2393
+ "name": "lpAmountIn",
2394
+ "type": "u64"
2395
+ },
2396
+ {
2397
+ "name": "minAmountOut",
2398
+ "type": "u64"
2399
+ }
2400
+ ]
2401
+ }
2402
+ },
2403
+ {
2404
+ "name": "RemovePoolParams",
2405
+ "type": {
2406
+ "kind": "struct",
2407
+ "fields": []
2408
+ }
2409
+ },
2410
+ {
2411
+ "name": "SetAdminSignersParams",
2412
+ "type": {
2413
+ "kind": "struct",
2414
+ "fields": [
2415
+ {
2416
+ "name": "minSignatures",
2417
+ "type": "u8"
2418
+ }
2419
+ ]
2420
+ }
2421
+ },
2422
+ {
2423
+ "name": "SetCustodyConfigParams",
2424
+ "type": {
2425
+ "kind": "struct",
2426
+ "fields": [
2427
+ {
2428
+ "name": "isStable",
2429
+ "type": "bool"
2430
+ },
2431
+ {
2432
+ "name": "oracle",
2433
+ "type": {
2434
+ "defined": "OracleParams"
2435
+ }
2436
+ },
2437
+ {
2438
+ "name": "pricing",
2439
+ "type": {
2440
+ "defined": "PricingParams"
2441
+ }
2442
+ },
2443
+ {
2444
+ "name": "permissions",
2445
+ "type": {
2446
+ "defined": "Permissions"
2447
+ }
2448
+ },
2449
+ {
2450
+ "name": "fees",
2451
+ "type": {
2452
+ "defined": "Fees"
2453
+ }
2454
+ },
2455
+ {
2456
+ "name": "borrowRate",
2457
+ "type": {
2458
+ "defined": "BorrowRateParams"
2459
+ }
2460
+ },
2461
+ {
2462
+ "name": "ratios",
2463
+ "type": {
2464
+ "vec": {
2465
+ "defined": "TokenRatios"
2466
+ }
2467
+ }
2468
+ }
2469
+ ]
2470
+ }
2471
+ },
2472
+ {
2473
+ "name": "SetPermissionsParams",
2474
+ "type": {
2475
+ "kind": "struct",
2476
+ "fields": [
2477
+ {
2478
+ "name": "allowSwap",
2479
+ "type": "bool"
2480
+ },
2481
+ {
2482
+ "name": "allowAddLiquidity",
2483
+ "type": "bool"
2484
+ },
2485
+ {
2486
+ "name": "allowRemoveLiquidity",
2487
+ "type": "bool"
2488
+ },
2489
+ {
2490
+ "name": "allowOpenPosition",
2491
+ "type": "bool"
2492
+ },
2493
+ {
2494
+ "name": "allowClosePosition",
2495
+ "type": "bool"
2496
+ },
2497
+ {
2498
+ "name": "allowPnlWithdrawal",
2499
+ "type": "bool"
2500
+ },
2501
+ {
2502
+ "name": "allowCollateralWithdrawal",
2503
+ "type": "bool"
2504
+ },
2505
+ {
2506
+ "name": "allowSizeChange",
2507
+ "type": "bool"
2508
+ }
2509
+ ]
2510
+ }
2511
+ },
2512
+ {
2513
+ "name": "SetTestOraclePriceParams",
2514
+ "type": {
2515
+ "kind": "struct",
2516
+ "fields": [
2517
+ {
2518
+ "name": "price",
2519
+ "type": "u64"
2520
+ },
2521
+ {
2522
+ "name": "expo",
2523
+ "type": "i32"
2524
+ },
2525
+ {
2526
+ "name": "conf",
2527
+ "type": "u64"
2528
+ },
2529
+ {
2530
+ "name": "publishTime",
2531
+ "type": "i64"
2532
+ }
2533
+ ]
2534
+ }
2535
+ },
2536
+ {
2537
+ "name": "SetTestTimeParams",
2538
+ "type": {
2539
+ "kind": "struct",
2540
+ "fields": [
2541
+ {
2542
+ "name": "time",
2543
+ "type": "i64"
2544
+ }
2545
+ ]
2546
+ }
2547
+ },
2548
+ {
2549
+ "name": "SwapParams",
2550
+ "type": {
2551
+ "kind": "struct",
2552
+ "fields": [
2553
+ {
2554
+ "name": "amountIn",
2555
+ "type": "u64"
2556
+ },
2557
+ {
2558
+ "name": "minAmountOut",
2559
+ "type": "u64"
2560
+ }
2561
+ ]
2562
+ }
2563
+ },
2564
+ {
2565
+ "name": "TestInitParams",
2566
+ "type": {
2567
+ "kind": "struct",
2568
+ "fields": [
2569
+ {
2570
+ "name": "minSignatures",
2571
+ "type": "u8"
2572
+ },
2573
+ {
2574
+ "name": "allowSwap",
2575
+ "type": "bool"
2576
+ },
2577
+ {
2578
+ "name": "allowAddLiquidity",
2579
+ "type": "bool"
2580
+ },
2581
+ {
2582
+ "name": "allowRemoveLiquidity",
2583
+ "type": "bool"
2584
+ },
2585
+ {
2586
+ "name": "allowOpenPosition",
2587
+ "type": "bool"
2588
+ },
2589
+ {
2590
+ "name": "allowClosePosition",
2591
+ "type": "bool"
2592
+ },
2593
+ {
2594
+ "name": "allowPnlWithdrawal",
2595
+ "type": "bool"
2596
+ },
2597
+ {
2598
+ "name": "allowCollateralWithdrawal",
2599
+ "type": "bool"
2600
+ },
2601
+ {
2602
+ "name": "allowSizeChange",
2603
+ "type": "bool"
2604
+ }
2605
+ ]
2606
+ }
2607
+ },
2608
+ {
2609
+ "name": "EditCustodyParams",
2610
+ "type": {
2611
+ "kind": "struct",
2612
+ "fields": [
2613
+ {
2614
+ "name": "isStable",
2615
+ "type": "bool"
2616
+ },
2617
+ {
2618
+ "name": "oracle",
2619
+ "type": {
2620
+ "defined": "OracleParams"
2621
+ }
2622
+ },
2623
+ {
2624
+ "name": "pricing",
2625
+ "type": {
2626
+ "defined": "PricingParams"
2627
+ }
2628
+ },
2629
+ {
2630
+ "name": "permissions",
2631
+ "type": {
2632
+ "defined": "Permissions"
2633
+ }
2634
+ },
2635
+ {
2636
+ "name": "fees",
2637
+ "type": {
2638
+ "defined": "Fees"
2639
+ }
2640
+ },
2641
+ {
2642
+ "name": "borrowRate",
2643
+ "type": {
2644
+ "defined": "BorrowRateParams"
2645
+ }
2646
+ },
2647
+ {
2648
+ "name": "ratios",
2649
+ "type": {
2650
+ "vec": {
2651
+ "defined": "TokenRatios"
2652
+ }
2653
+ }
2654
+ }
2655
+ ]
2656
+ }
2657
+ },
2658
+ {
2659
+ "name": "UpgradeCustodyParams",
2660
+ "type": {
2661
+ "kind": "struct",
2662
+ "fields": []
2663
+ }
2664
+ },
2665
+ {
2666
+ "name": "WithdrawFeesParams",
2667
+ "type": {
2668
+ "kind": "struct",
2669
+ "fields": [
2670
+ {
2671
+ "name": "amount",
2672
+ "type": "u64"
2673
+ }
2674
+ ]
2675
+ }
2676
+ },
2677
+ {
2678
+ "name": "WithdrawSolFeesParams",
2679
+ "type": {
2680
+ "kind": "struct",
2681
+ "fields": [
2682
+ {
2683
+ "name": "amount",
2684
+ "type": "u64"
2685
+ }
2686
+ ]
2687
+ }
2688
+ },
2689
+ {
2690
+ "name": "Fees",
2691
+ "type": {
2692
+ "kind": "struct",
2693
+ "fields": [
2694
+ {
2695
+ "name": "mode",
2696
+ "type": {
2697
+ "defined": "FeesMode"
2698
+ }
2699
+ },
2700
+ {
2701
+ "name": "ratioMult",
2702
+ "type": "u64"
2703
+ },
2704
+ {
2705
+ "name": "utilizationMult",
2706
+ "type": "u64"
2707
+ },
2708
+ {
2709
+ "name": "swapIn",
2710
+ "type": "u64"
2711
+ },
2712
+ {
2713
+ "name": "swapOut",
2714
+ "type": "u64"
2715
+ },
2716
+ {
2717
+ "name": "stableSwapIn",
2718
+ "type": "u64"
2719
+ },
2720
+ {
2721
+ "name": "stableSwapOut",
2722
+ "type": "u64"
2723
+ },
2724
+ {
2725
+ "name": "addLiquidity",
2726
+ "type": "u64"
2727
+ },
2728
+ {
2729
+ "name": "removeLiquidity",
2730
+ "type": "u64"
2731
+ },
2732
+ {
2733
+ "name": "openPosition",
2734
+ "type": "u64"
2735
+ },
2736
+ {
2737
+ "name": "closePosition",
2738
+ "type": "u64"
2739
+ },
2740
+ {
2741
+ "name": "liquidation",
2742
+ "type": "u64"
2743
+ },
2744
+ {
2745
+ "name": "protocolShare",
2746
+ "type": "u64"
2747
+ }
2748
+ ]
2749
+ }
2750
+ },
2751
+ {
2752
+ "name": "FeesStats",
2753
+ "type": {
2754
+ "kind": "struct",
2755
+ "fields": [
2756
+ {
2757
+ "name": "swapUsd",
2758
+ "type": "u64"
2759
+ },
2760
+ {
2761
+ "name": "addLiquidityUsd",
2762
+ "type": "u64"
2763
+ },
2764
+ {
2765
+ "name": "removeLiquidityUsd",
2766
+ "type": "u64"
2767
+ },
2768
+ {
2769
+ "name": "openPositionUsd",
2770
+ "type": "u64"
2771
+ },
2772
+ {
2773
+ "name": "closePositionUsd",
2774
+ "type": "u64"
2775
+ },
2776
+ {
2777
+ "name": "liquidationUsd",
2778
+ "type": "u64"
2779
+ }
2780
+ ]
2781
+ }
2782
+ },
2783
+ {
2784
+ "name": "VolumeStats",
2785
+ "type": {
2786
+ "kind": "struct",
2787
+ "fields": [
2788
+ {
2789
+ "name": "swapUsd",
2790
+ "type": "u64"
2791
+ },
2792
+ {
2793
+ "name": "addLiquidityUsd",
2794
+ "type": "u64"
2795
+ },
2796
+ {
2797
+ "name": "removeLiquidityUsd",
2798
+ "type": "u64"
2799
+ },
2800
+ {
2801
+ "name": "openPositionUsd",
2802
+ "type": "u64"
2803
+ },
2804
+ {
2805
+ "name": "closePositionUsd",
2806
+ "type": "u64"
2807
+ },
2808
+ {
2809
+ "name": "liquidationUsd",
2810
+ "type": "u64"
2811
+ }
2812
+ ]
2813
+ }
2814
+ },
2815
+ {
2816
+ "name": "TradeStats",
2817
+ "type": {
2818
+ "kind": "struct",
2819
+ "fields": [
2820
+ {
2821
+ "name": "profitUsd",
2822
+ "type": "u64"
2823
+ },
2824
+ {
2825
+ "name": "lossUsd",
2826
+ "type": "u64"
2827
+ },
2828
+ {
2829
+ "name": "oiLongUsd",
2830
+ "type": "u64"
2831
+ },
2832
+ {
2833
+ "name": "oiShortUsd",
2834
+ "type": "u64"
2835
+ }
2836
+ ]
2837
+ }
2838
+ },
2839
+ {
2840
+ "name": "Assets",
2841
+ "type": {
2842
+ "kind": "struct",
2843
+ "fields": [
2844
+ {
2845
+ "name": "collateral",
2846
+ "type": "u64"
2847
+ },
2848
+ {
2849
+ "name": "protocolFees",
2850
+ "type": "u64"
2851
+ },
2852
+ {
2853
+ "name": "owned",
2854
+ "type": "u64"
2855
+ },
2856
+ {
2857
+ "name": "locked",
2858
+ "type": "u64"
2859
+ }
2860
+ ]
2861
+ }
2862
+ },
2863
+ {
2864
+ "name": "OracleParams",
2865
+ "type": {
2866
+ "kind": "struct",
2867
+ "fields": [
2868
+ {
2869
+ "name": "oracleAccount",
2870
+ "type": "publicKey"
2871
+ },
2872
+ {
2873
+ "name": "oracleType",
2874
+ "type": {
2875
+ "defined": "OracleType"
2876
+ }
2877
+ },
2878
+ {
2879
+ "name": "maxPriceError",
2880
+ "type": "u64"
2881
+ },
2882
+ {
2883
+ "name": "maxPriceAgeSec",
2884
+ "type": "u32"
2885
+ }
2886
+ ]
2887
+ }
2888
+ },
2889
+ {
2890
+ "name": "PricingParams",
2891
+ "type": {
2892
+ "kind": "struct",
2893
+ "fields": [
2894
+ {
2895
+ "name": "useEma",
2896
+ "type": "bool"
2897
+ },
2898
+ {
2899
+ "name": "useUnrealizedPnlInAum",
2900
+ "type": "bool"
2901
+ },
2902
+ {
2903
+ "name": "tradeSpreadLong",
2904
+ "type": "u64"
2905
+ },
2906
+ {
2907
+ "name": "tradeSpreadShort",
2908
+ "type": "u64"
2909
+ },
2910
+ {
2911
+ "name": "swapSpread",
2912
+ "type": "u64"
2913
+ },
2914
+ {
2915
+ "name": "minInitialLeverage",
2916
+ "type": "u64"
2917
+ },
2918
+ {
2919
+ "name": "maxInitialLeverage",
2920
+ "type": "u64"
2921
+ },
2922
+ {
2923
+ "name": "maxLeverage",
2924
+ "type": "u64"
2925
+ },
2926
+ {
2927
+ "name": "maxPayoffMult",
2928
+ "type": "u64"
2929
+ },
2930
+ {
2931
+ "name": "maxUtilization",
2932
+ "type": "u64"
2933
+ },
2934
+ {
2935
+ "name": "maxPositionLockedUsd",
2936
+ "type": "u64"
2937
+ },
2938
+ {
2939
+ "name": "maxTotalLockedUsd",
2940
+ "type": "u64"
2941
+ }
2942
+ ]
2943
+ }
2944
+ },
2945
+ {
2946
+ "name": "BorrowRateParams",
2947
+ "type": {
2948
+ "kind": "struct",
2949
+ "fields": [
2950
+ {
2951
+ "name": "baseRate",
2952
+ "type": "u64"
2953
+ },
2954
+ {
2955
+ "name": "slope1",
2956
+ "type": "u64"
2957
+ },
2958
+ {
2959
+ "name": "slope2",
2960
+ "type": "u64"
2961
+ },
2962
+ {
2963
+ "name": "optimalUtilization",
2964
+ "type": "u64"
2965
+ }
2966
+ ]
2967
+ }
2968
+ },
2969
+ {
2970
+ "name": "BorrowRateState",
2971
+ "type": {
2972
+ "kind": "struct",
2973
+ "fields": [
2974
+ {
2975
+ "name": "currentRate",
2976
+ "type": "u64"
2977
+ },
2978
+ {
2979
+ "name": "cumulativeInterest",
2980
+ "type": "u128"
2981
+ },
2982
+ {
2983
+ "name": "lastUpdate",
2984
+ "type": "i64"
2985
+ }
2986
+ ]
2987
+ }
2988
+ },
2989
+ {
2990
+ "name": "PositionStats",
2991
+ "type": {
2992
+ "kind": "struct",
2993
+ "fields": [
2994
+ {
2995
+ "name": "openPositions",
2996
+ "type": "u64"
2997
+ },
2998
+ {
2999
+ "name": "collateralUsd",
3000
+ "type": "u64"
3001
+ },
3002
+ {
3003
+ "name": "sizeUsd",
3004
+ "type": "u64"
3005
+ },
3006
+ {
3007
+ "name": "lockedAmount",
3008
+ "type": "u64"
3009
+ },
3010
+ {
3011
+ "name": "weightedPrice",
3012
+ "type": "u128"
3013
+ },
3014
+ {
3015
+ "name": "totalQuantity",
3016
+ "type": "u128"
3017
+ },
3018
+ {
3019
+ "name": "cumulativeInterestUsd",
3020
+ "type": "u64"
3021
+ },
3022
+ {
3023
+ "name": "cumulativeInterestSnapshot",
3024
+ "type": "u128"
3025
+ }
3026
+ ]
3027
+ }
3028
+ },
3029
+ {
3030
+ "name": "DeprecatedPricingParams",
3031
+ "type": {
3032
+ "kind": "struct",
3033
+ "fields": [
3034
+ {
3035
+ "name": "useEma",
3036
+ "type": "bool"
3037
+ },
3038
+ {
3039
+ "name": "useUnrealizedPnlInAum",
3040
+ "type": "bool"
3041
+ },
3042
+ {
3043
+ "name": "tradeSpreadLong",
3044
+ "type": "u64"
3045
+ },
3046
+ {
3047
+ "name": "tradeSpreadShort",
3048
+ "type": "u64"
3049
+ },
3050
+ {
3051
+ "name": "swapSpread",
3052
+ "type": "u64"
3053
+ },
3054
+ {
3055
+ "name": "minInitialLeverage",
3056
+ "type": "u64"
3057
+ },
3058
+ {
3059
+ "name": "maxLeverage",
3060
+ "type": "u64"
3061
+ },
3062
+ {
3063
+ "name": "maxPayoffMult",
3064
+ "type": "u64"
3065
+ }
3066
+ ]
3067
+ }
3068
+ },
3069
+ {
3070
+ "name": "OraclePrice",
3071
+ "type": {
3072
+ "kind": "struct",
3073
+ "fields": [
3074
+ {
3075
+ "name": "price",
3076
+ "type": "u64"
3077
+ },
3078
+ {
3079
+ "name": "exponent",
3080
+ "type": "i32"
3081
+ }
3082
+ ]
3083
+ }
3084
+ },
3085
+ {
3086
+ "name": "PriceAndFee",
3087
+ "type": {
3088
+ "kind": "struct",
3089
+ "fields": [
3090
+ {
3091
+ "name": "price",
3092
+ "type": "u64"
3093
+ },
3094
+ {
3095
+ "name": "fee",
3096
+ "type": "u64"
3097
+ }
3098
+ ]
3099
+ }
3100
+ },
3101
+ {
3102
+ "name": "AmountAndFee",
3103
+ "type": {
3104
+ "kind": "struct",
3105
+ "fields": [
3106
+ {
3107
+ "name": "amount",
3108
+ "type": "u64"
3109
+ },
3110
+ {
3111
+ "name": "fee",
3112
+ "type": "u64"
3113
+ }
3114
+ ]
3115
+ }
3116
+ },
3117
+ {
3118
+ "name": "NewPositionPricesAndFee",
3119
+ "type": {
3120
+ "kind": "struct",
3121
+ "fields": [
3122
+ {
3123
+ "name": "entryPrice",
3124
+ "type": "u64"
3125
+ },
3126
+ {
3127
+ "name": "liquidationPrice",
3128
+ "type": "u64"
3129
+ },
3130
+ {
3131
+ "name": "fee",
3132
+ "type": "u64"
3133
+ }
3134
+ ]
3135
+ }
3136
+ },
3137
+ {
3138
+ "name": "SwapAmountAndFees",
3139
+ "type": {
3140
+ "kind": "struct",
3141
+ "fields": [
3142
+ {
3143
+ "name": "amountOut",
3144
+ "type": "u64"
3145
+ },
3146
+ {
3147
+ "name": "feeIn",
3148
+ "type": "u64"
3149
+ },
3150
+ {
3151
+ "name": "feeOut",
3152
+ "type": "u64"
3153
+ }
3154
+ ]
3155
+ }
3156
+ },
3157
+ {
3158
+ "name": "ProfitAndLoss",
3159
+ "type": {
3160
+ "kind": "struct",
3161
+ "fields": [
3162
+ {
3163
+ "name": "profit",
3164
+ "type": "u64"
3165
+ },
3166
+ {
3167
+ "name": "loss",
3168
+ "type": "u64"
3169
+ }
3170
+ ]
3171
+ }
3172
+ },
3173
+ {
3174
+ "name": "Permissions",
3175
+ "type": {
3176
+ "kind": "struct",
3177
+ "fields": [
3178
+ {
3179
+ "name": "allowSwap",
3180
+ "type": "bool"
3181
+ },
3182
+ {
3183
+ "name": "allowAddLiquidity",
3184
+ "type": "bool"
3185
+ },
3186
+ {
3187
+ "name": "allowRemoveLiquidity",
3188
+ "type": "bool"
3189
+ },
3190
+ {
3191
+ "name": "allowOpenPosition",
3192
+ "type": "bool"
3193
+ },
3194
+ {
3195
+ "name": "allowClosePosition",
3196
+ "type": "bool"
3197
+ },
3198
+ {
3199
+ "name": "allowPnlWithdrawal",
3200
+ "type": "bool"
3201
+ },
3202
+ {
3203
+ "name": "allowCollateralWithdrawal",
3204
+ "type": "bool"
3205
+ },
3206
+ {
3207
+ "name": "allowSizeChange",
3208
+ "type": "bool"
3209
+ }
3210
+ ]
3211
+ }
3212
+ },
3213
+ {
3214
+ "name": "TokenRatios",
3215
+ "type": {
3216
+ "kind": "struct",
3217
+ "fields": [
3218
+ {
3219
+ "name": "target",
3220
+ "type": "u64"
3221
+ },
3222
+ {
3223
+ "name": "min",
3224
+ "type": "u64"
3225
+ },
3226
+ {
3227
+ "name": "max",
3228
+ "type": "u64"
3229
+ }
3230
+ ]
3231
+ }
3232
+ },
3233
+ {
3234
+ "name": "FeesMode",
3235
+ "type": {
3236
+ "kind": "enum",
3237
+ "variants": [
3238
+ {
3239
+ "name": "Fixed"
3240
+ },
3241
+ {
3242
+ "name": "Linear"
3243
+ }
3244
+ ]
3245
+ }
3246
+ },
3247
+ {
3248
+ "name": "AdminInstruction",
3249
+ "type": {
3250
+ "kind": "enum",
3251
+ "variants": [
3252
+ {
3253
+ "name": "AddPool"
3254
+ },
3255
+ {
3256
+ "name": "RemovePool"
3257
+ },
3258
+ {
3259
+ "name": "AddCustody"
3260
+ },
3261
+ {
3262
+ "name": "RemoveCustody"
3263
+ },
3264
+ {
3265
+ "name": "SetAdminSigners"
3266
+ },
3267
+ {
3268
+ "name": "SetCustodyConfig"
3269
+ },
3270
+ {
3271
+ "name": "SetPermissions"
3272
+ },
3273
+ {
3274
+ "name": "SetBorrowRate"
3275
+ },
3276
+ {
3277
+ "name": "WithdrawFees"
3278
+ },
3279
+ {
3280
+ "name": "WithdrawSolFees"
3281
+ },
3282
+ {
3283
+ "name": "SetTestOraclePrice"
3284
+ },
3285
+ {
3286
+ "name": "SetTestTime"
3287
+ },
3288
+ {
3289
+ "name": "UpgradeCustody"
3290
+ }
3291
+ ]
3292
+ }
3293
+ },
3294
+ {
3295
+ "name": "OracleType",
3296
+ "type": {
3297
+ "kind": "enum",
3298
+ "variants": [
3299
+ {
3300
+ "name": "None"
3301
+ },
3302
+ {
3303
+ "name": "Test"
3304
+ },
3305
+ {
3306
+ "name": "Pyth"
3307
+ }
3308
+ ]
3309
+ }
3310
+ },
3311
+ {
3312
+ "name": "AumCalcMode",
3313
+ "type": {
3314
+ "kind": "enum",
3315
+ "variants": [
3316
+ {
3317
+ "name": "Min"
3318
+ },
3319
+ {
3320
+ "name": "Max"
3321
+ },
3322
+ {
3323
+ "name": "Last"
3324
+ },
3325
+ {
3326
+ "name": "EMA"
3327
+ }
3328
+ ]
3329
+ }
3330
+ },
3331
+ {
3332
+ "name": "Side",
3333
+ "type": {
3334
+ "kind": "enum",
3335
+ "variants": [
3336
+ {
3337
+ "name": "None"
3338
+ },
3339
+ {
3340
+ "name": "Long"
3341
+ },
3342
+ {
3343
+ "name": "Short"
3344
+ }
3345
+ ]
3346
+ }
3347
+ },
3348
+ {
3349
+ "name": "CollateralChange",
3350
+ "type": {
3351
+ "kind": "enum",
3352
+ "variants": [
3353
+ {
3354
+ "name": "None"
3355
+ },
3356
+ {
3357
+ "name": "Add"
3358
+ },
3359
+ {
3360
+ "name": "Remove"
3361
+ }
3362
+ ]
3363
+ }
3364
+ }
3365
+ ],
3366
+ "events": [
3367
+ {
3368
+ "name": "OpenPositionLog",
3369
+ "fields": [
3370
+ {
3371
+ "name": "postion",
3372
+ "type": "publicKey",
3373
+ "index": false
3374
+ },
3375
+ {
3376
+ "name": "owner",
3377
+ "type": "publicKey",
3378
+ "index": false
3379
+ },
3380
+ {
3381
+ "name": "tokenId",
3382
+ "type": "u64",
3383
+ "index": false
3384
+ },
3385
+ {
3386
+ "name": "price",
3387
+ "type": "u64",
3388
+ "index": false
3389
+ },
3390
+ {
3391
+ "name": "collateral",
3392
+ "type": "u64",
3393
+ "index": false
3394
+ },
3395
+ {
3396
+ "name": "size",
3397
+ "type": "u64",
3398
+ "index": false
3399
+ },
3400
+ {
3401
+ "name": "side",
3402
+ "type": {
3403
+ "defined": "Side"
3404
+ },
3405
+ "index": false
3406
+ }
3407
+ ]
3408
+ }
3409
+ ],
3410
+ "errors": [
3411
+ {
3412
+ "code": 6000,
3413
+ "name": "MultisigAccountNotAuthorized",
3414
+ "msg": "Account is not authorized to sign this instruction"
3415
+ },
3416
+ {
3417
+ "code": 6001,
3418
+ "name": "MultisigAlreadySigned",
3419
+ "msg": "Account has already signed this instruction"
3420
+ },
3421
+ {
3422
+ "code": 6002,
3423
+ "name": "MultisigAlreadyExecuted",
3424
+ "msg": "This instruction has already been executed"
3425
+ },
3426
+ {
3427
+ "code": 6003,
3428
+ "name": "MathOverflow",
3429
+ "msg": "Overflow in arithmetic operation"
3430
+ },
3431
+ {
3432
+ "code": 6004,
3433
+ "name": "UnsupportedOracle",
3434
+ "msg": "Unsupported price oracle"
3435
+ },
3436
+ {
3437
+ "code": 6005,
3438
+ "name": "InvalidOracleAccount",
3439
+ "msg": "Invalid oracle account"
3440
+ },
3441
+ {
3442
+ "code": 6006,
3443
+ "name": "InvalidOracleState",
3444
+ "msg": "Invalid oracle state"
3445
+ },
3446
+ {
3447
+ "code": 6007,
3448
+ "name": "StaleOraclePrice",
3449
+ "msg": "Stale oracle price"
3450
+ },
3451
+ {
3452
+ "code": 6008,
3453
+ "name": "InvalidOraclePrice",
3454
+ "msg": "Invalid oracle price"
3455
+ },
3456
+ {
3457
+ "code": 6009,
3458
+ "name": "InvalidEnvironment",
3459
+ "msg": "Instruction is not allowed in production"
3460
+ },
3461
+ {
3462
+ "code": 6010,
3463
+ "name": "InvalidPoolState",
3464
+ "msg": "Invalid pool state"
3465
+ },
3466
+ {
3467
+ "code": 6011,
3468
+ "name": "InvalidCustodyState",
3469
+ "msg": "Invalid custody state"
3470
+ },
3471
+ {
3472
+ "code": 6012,
3473
+ "name": "InvalidPositionState",
3474
+ "msg": "Invalid position state"
3475
+ },
3476
+ {
3477
+ "code": 6013,
3478
+ "name": "InvalidPerpetualsConfig",
3479
+ "msg": "Invalid perpetuals config"
3480
+ },
3481
+ {
3482
+ "code": 6014,
3483
+ "name": "InvalidPoolConfig",
3484
+ "msg": "Invalid pool config"
3485
+ },
3486
+ {
3487
+ "code": 6015,
3488
+ "name": "InvalidCustodyConfig",
3489
+ "msg": "Invalid custody config"
3490
+ },
3491
+ {
3492
+ "code": 6016,
3493
+ "name": "InsufficientAmountReturned",
3494
+ "msg": "Insufficient token amount returned"
3495
+ },
3496
+ {
3497
+ "code": 6017,
3498
+ "name": "MaxPriceSlippage",
3499
+ "msg": "Price slippage limit exceeded"
3500
+ },
3501
+ {
3502
+ "code": 6018,
3503
+ "name": "MaxLeverage",
3504
+ "msg": "Position leverage limit exceeded"
3505
+ },
3506
+ {
3507
+ "code": 6019,
3508
+ "name": "CustodyAmountLimit",
3509
+ "msg": "Custody amount limit exceeded"
3510
+ },
3511
+ {
3512
+ "code": 6020,
3513
+ "name": "PositionAmountLimit",
3514
+ "msg": "Position amount limit exceeded"
3515
+ },
3516
+ {
3517
+ "code": 6021,
3518
+ "name": "TokenRatioOutOfRange",
3519
+ "msg": "Token ratio out of range"
3520
+ },
3521
+ {
3522
+ "code": 6022,
3523
+ "name": "UnsupportedToken",
3524
+ "msg": "Token is not supported"
3525
+ },
3526
+ {
3527
+ "code": 6023,
3528
+ "name": "InstructionNotAllowed",
3529
+ "msg": "Instruction is not allowed at this time"
3530
+ },
3531
+ {
3532
+ "code": 6024,
3533
+ "name": "MaxUtilization",
3534
+ "msg": "Token utilization limit exceeded"
3535
+ }
3536
+ ]
3537
+ }