@drift-labs/vaults-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 (78) hide show
  1. package/.env.example +2 -0
  2. package/README.md +58 -0
  3. package/cli/cli.ts +105 -0
  4. package/cli/commands/applyProfitShare.ts +48 -0
  5. package/cli/commands/deposit.ts +35 -0
  6. package/cli/commands/index.ts +13 -0
  7. package/cli/commands/initVault.ts +61 -0
  8. package/cli/commands/initVaultDepositor.ts +43 -0
  9. package/cli/commands/listDepositorsForVault.ts +33 -0
  10. package/cli/commands/managerCancelWithdraw.ts +25 -0
  11. package/cli/commands/managerDeposit.ts +34 -0
  12. package/cli/commands/managerRequestWithdraw.ts +27 -0
  13. package/cli/commands/managerUpdateVault.ts +36 -0
  14. package/cli/commands/managerWithdraw.ts +25 -0
  15. package/cli/commands/requestWithdraw.ts +29 -0
  16. package/cli/commands/vaultDeposit.ts +43 -0
  17. package/cli/commands/vaultWithdraw.ts +43 -0
  18. package/cli/commands/viewVault.ts +30 -0
  19. package/cli/commands/viewVaultDepositor.ts +37 -0
  20. package/cli/commands/withdraw.ts +25 -0
  21. package/cli/utils.ts +119 -0
  22. package/lib/accountSubscribers/index.d.ts +2 -0
  23. package/lib/accountSubscribers/index.js +14 -0
  24. package/lib/accountSubscribers/pollingVaultDepositorSubscriber.d.ts +7 -0
  25. package/lib/accountSubscribers/pollingVaultDepositorSubscriber.js +44 -0
  26. package/lib/accountSubscribers/pollingVaultSubscriber.d.ts +7 -0
  27. package/lib/accountSubscribers/pollingVaultSubscriber.js +44 -0
  28. package/lib/accountSubscribers/pollingVaultsProgramAccountSubscriber.d.ts +28 -0
  29. package/lib/accountSubscribers/pollingVaultsProgramAccountSubscriber.js +68 -0
  30. package/lib/accounts/index.d.ts +2 -0
  31. package/lib/accounts/index.js +14 -0
  32. package/lib/accounts/vaultAccount.d.ts +15 -0
  33. package/lib/accounts/vaultAccount.js +53 -0
  34. package/lib/accounts/vaultDepositorAccount.d.ts +18 -0
  35. package/lib/accounts/vaultDepositorAccount.js +45 -0
  36. package/lib/accounts/vaultsProgramAccount.d.ts +13 -0
  37. package/lib/accounts/vaultsProgramAccount.js +25 -0
  38. package/lib/addresses.d.ts +4 -0
  39. package/lib/addresses.js +46 -0
  40. package/lib/constants/index.d.ts +3 -0
  41. package/lib/constants/index.js +5 -0
  42. package/lib/index.d.ts +9 -0
  43. package/lib/index.js +21 -0
  44. package/lib/name.d.ts +3 -0
  45. package/lib/name.js +19 -0
  46. package/lib/parsers/index.d.ts +1 -0
  47. package/lib/parsers/index.js +13 -0
  48. package/lib/parsers/logParser.d.ts +14 -0
  49. package/lib/parsers/logParser.js +21 -0
  50. package/lib/types/drift_vaults.d.ts +1475 -0
  51. package/lib/types/drift_vaults.js +1477 -0
  52. package/lib/types/types.d.ts +137 -0
  53. package/lib/types/types.js +20 -0
  54. package/lib/utils.d.ts +7 -0
  55. package/lib/utils.js +43 -0
  56. package/lib/vaultClient.d.ts +100 -0
  57. package/lib/vaultClient.js +596 -0
  58. package/package.json +29 -0
  59. package/src/accountSubscribers/index.ts +2 -0
  60. package/src/accountSubscribers/pollingVaultDepositorSubscriber.ts +68 -0
  61. package/src/accountSubscribers/pollingVaultSubscriber.ts +62 -0
  62. package/src/accountSubscribers/pollingVaultsProgramAccountSubscriber.ts +111 -0
  63. package/src/accounts/index.ts +2 -0
  64. package/src/accounts/vaultAccount.ts +86 -0
  65. package/src/accounts/vaultDepositorAccount.ts +67 -0
  66. package/src/accounts/vaultsProgramAccount.ts +37 -0
  67. package/src/addresses.ts +43 -0
  68. package/src/constants/index.ts +3 -0
  69. package/src/idl/drift_vaults.json +1547 -0
  70. package/src/index.ts +9 -0
  71. package/src/name.ts +18 -0
  72. package/src/parsers/index.ts +1 -0
  73. package/src/parsers/logParser.ts +28 -0
  74. package/src/types/drift_vaults.ts +2949 -0
  75. package/src/types/types.ts +158 -0
  76. package/src/utils.ts +33 -0
  77. package/src/vaultClient.ts +904 -0
  78. package/tsconfig.json +13 -0
@@ -0,0 +1,2949 @@
1
+ export type DriftVaults = {
2
+ version: '0.1.0';
3
+ name: 'drift_vaults';
4
+ instructions: [
5
+ {
6
+ name: 'initializeVault';
7
+ accounts: [
8
+ {
9
+ name: 'vault';
10
+ isMut: true;
11
+ isSigner: false;
12
+ },
13
+ {
14
+ name: 'tokenAccount';
15
+ isMut: true;
16
+ isSigner: false;
17
+ },
18
+ {
19
+ name: 'driftUserStats';
20
+ isMut: true;
21
+ isSigner: false;
22
+ },
23
+ {
24
+ name: 'driftUser';
25
+ isMut: true;
26
+ isSigner: false;
27
+ },
28
+ {
29
+ name: 'driftState';
30
+ isMut: true;
31
+ isSigner: false;
32
+ },
33
+ {
34
+ name: 'driftSpotMarket';
35
+ isMut: false;
36
+ isSigner: false;
37
+ },
38
+ {
39
+ name: 'driftSpotMarketMint';
40
+ isMut: false;
41
+ isSigner: false;
42
+ },
43
+ {
44
+ name: 'manager';
45
+ isMut: false;
46
+ isSigner: true;
47
+ },
48
+ {
49
+ name: 'payer';
50
+ isMut: true;
51
+ isSigner: true;
52
+ },
53
+ {
54
+ name: 'rent';
55
+ isMut: false;
56
+ isSigner: false;
57
+ },
58
+ {
59
+ name: 'systemProgram';
60
+ isMut: false;
61
+ isSigner: false;
62
+ },
63
+ {
64
+ name: 'driftProgram';
65
+ isMut: false;
66
+ isSigner: false;
67
+ },
68
+ {
69
+ name: 'tokenProgram';
70
+ isMut: false;
71
+ isSigner: false;
72
+ }
73
+ ];
74
+ args: [
75
+ {
76
+ name: 'params';
77
+ type: {
78
+ defined: 'VaultParams';
79
+ };
80
+ }
81
+ ];
82
+ },
83
+ {
84
+ name: 'updateDelegate';
85
+ accounts: [
86
+ {
87
+ name: 'vault';
88
+ isMut: true;
89
+ isSigner: false;
90
+ },
91
+ {
92
+ name: 'manager';
93
+ isMut: false;
94
+ isSigner: true;
95
+ },
96
+ {
97
+ name: 'driftUser';
98
+ isMut: true;
99
+ isSigner: false;
100
+ },
101
+ {
102
+ name: 'driftProgram';
103
+ isMut: false;
104
+ isSigner: false;
105
+ }
106
+ ];
107
+ args: [
108
+ {
109
+ name: 'delegate';
110
+ type: 'publicKey';
111
+ }
112
+ ];
113
+ },
114
+ {
115
+ name: 'updateMarginTradingEnabled';
116
+ accounts: [
117
+ {
118
+ name: 'vault';
119
+ isMut: true;
120
+ isSigner: false;
121
+ },
122
+ {
123
+ name: 'manager';
124
+ isMut: false;
125
+ isSigner: true;
126
+ },
127
+ {
128
+ name: 'driftUser';
129
+ isMut: true;
130
+ isSigner: false;
131
+ },
132
+ {
133
+ name: 'driftProgram';
134
+ isMut: false;
135
+ isSigner: false;
136
+ }
137
+ ];
138
+ args: [
139
+ {
140
+ name: 'enabled';
141
+ type: 'bool';
142
+ }
143
+ ];
144
+ },
145
+ {
146
+ name: 'updateVault';
147
+ accounts: [
148
+ {
149
+ name: 'vault';
150
+ isMut: true;
151
+ isSigner: false;
152
+ },
153
+ {
154
+ name: 'manager';
155
+ isMut: false;
156
+ isSigner: true;
157
+ }
158
+ ];
159
+ args: [
160
+ {
161
+ name: 'params';
162
+ type: {
163
+ defined: 'UpdateVaultParams';
164
+ };
165
+ }
166
+ ];
167
+ },
168
+ {
169
+ name: 'initializeVaultDepositor';
170
+ accounts: [
171
+ {
172
+ name: 'vault';
173
+ isMut: false;
174
+ isSigner: false;
175
+ },
176
+ {
177
+ name: 'vaultDepositor';
178
+ isMut: true;
179
+ isSigner: false;
180
+ },
181
+ {
182
+ name: 'authority';
183
+ isMut: false;
184
+ isSigner: false;
185
+ },
186
+ {
187
+ name: 'payer';
188
+ isMut: true;
189
+ isSigner: true;
190
+ },
191
+ {
192
+ name: 'rent';
193
+ isMut: false;
194
+ isSigner: false;
195
+ },
196
+ {
197
+ name: 'systemProgram';
198
+ isMut: false;
199
+ isSigner: false;
200
+ }
201
+ ];
202
+ args: [];
203
+ },
204
+ {
205
+ name: 'deposit';
206
+ accounts: [
207
+ {
208
+ name: 'vault';
209
+ isMut: true;
210
+ isSigner: false;
211
+ },
212
+ {
213
+ name: 'vaultDepositor';
214
+ isMut: true;
215
+ isSigner: false;
216
+ },
217
+ {
218
+ name: 'authority';
219
+ isMut: false;
220
+ isSigner: true;
221
+ },
222
+ {
223
+ name: 'vaultTokenAccount';
224
+ isMut: true;
225
+ isSigner: false;
226
+ },
227
+ {
228
+ name: 'driftUserStats';
229
+ isMut: true;
230
+ isSigner: false;
231
+ },
232
+ {
233
+ name: 'driftUser';
234
+ isMut: true;
235
+ isSigner: false;
236
+ },
237
+ {
238
+ name: 'driftState';
239
+ isMut: false;
240
+ isSigner: false;
241
+ },
242
+ {
243
+ name: 'driftSpotMarketVault';
244
+ isMut: true;
245
+ isSigner: false;
246
+ },
247
+ {
248
+ name: 'userTokenAccount';
249
+ isMut: true;
250
+ isSigner: false;
251
+ },
252
+ {
253
+ name: 'driftProgram';
254
+ isMut: false;
255
+ isSigner: false;
256
+ },
257
+ {
258
+ name: 'tokenProgram';
259
+ isMut: false;
260
+ isSigner: false;
261
+ }
262
+ ];
263
+ args: [
264
+ {
265
+ name: 'amount';
266
+ type: 'u64';
267
+ }
268
+ ];
269
+ },
270
+ {
271
+ name: 'requestWithdraw';
272
+ accounts: [
273
+ {
274
+ name: 'vault';
275
+ isMut: true;
276
+ isSigner: false;
277
+ },
278
+ {
279
+ name: 'vaultDepositor';
280
+ isMut: true;
281
+ isSigner: false;
282
+ },
283
+ {
284
+ name: 'authority';
285
+ isMut: false;
286
+ isSigner: true;
287
+ },
288
+ {
289
+ name: 'driftUserStats';
290
+ isMut: false;
291
+ isSigner: false;
292
+ },
293
+ {
294
+ name: 'driftUser';
295
+ isMut: false;
296
+ isSigner: false;
297
+ },
298
+ {
299
+ name: 'driftState';
300
+ isMut: false;
301
+ isSigner: false;
302
+ }
303
+ ];
304
+ args: [
305
+ {
306
+ name: 'withdrawAmount';
307
+ type: 'u64';
308
+ },
309
+ {
310
+ name: 'withdrawUnit';
311
+ type: {
312
+ defined: 'WithdrawUnit';
313
+ };
314
+ }
315
+ ];
316
+ },
317
+ {
318
+ name: 'cancelRequestWithdraw';
319
+ accounts: [
320
+ {
321
+ name: 'vault';
322
+ isMut: true;
323
+ isSigner: false;
324
+ },
325
+ {
326
+ name: 'vaultDepositor';
327
+ isMut: true;
328
+ isSigner: false;
329
+ },
330
+ {
331
+ name: 'authority';
332
+ isMut: false;
333
+ isSigner: true;
334
+ },
335
+ {
336
+ name: 'driftUserStats';
337
+ isMut: false;
338
+ isSigner: false;
339
+ },
340
+ {
341
+ name: 'driftUser';
342
+ isMut: false;
343
+ isSigner: false;
344
+ },
345
+ {
346
+ name: 'driftState';
347
+ isMut: false;
348
+ isSigner: false;
349
+ }
350
+ ];
351
+ args: [];
352
+ },
353
+ {
354
+ name: 'withdraw';
355
+ accounts: [
356
+ {
357
+ name: 'vault';
358
+ isMut: true;
359
+ isSigner: false;
360
+ },
361
+ {
362
+ name: 'vaultDepositor';
363
+ isMut: true;
364
+ isSigner: false;
365
+ },
366
+ {
367
+ name: 'authority';
368
+ isMut: false;
369
+ isSigner: true;
370
+ },
371
+ {
372
+ name: 'vaultTokenAccount';
373
+ isMut: true;
374
+ isSigner: false;
375
+ },
376
+ {
377
+ name: 'driftUserStats';
378
+ isMut: true;
379
+ isSigner: false;
380
+ },
381
+ {
382
+ name: 'driftUser';
383
+ isMut: true;
384
+ isSigner: false;
385
+ },
386
+ {
387
+ name: 'driftState';
388
+ isMut: false;
389
+ isSigner: false;
390
+ },
391
+ {
392
+ name: 'driftSpotMarketVault';
393
+ isMut: true;
394
+ isSigner: false;
395
+ },
396
+ {
397
+ name: 'driftSigner';
398
+ isMut: false;
399
+ isSigner: false;
400
+ },
401
+ {
402
+ name: 'userTokenAccount';
403
+ isMut: true;
404
+ isSigner: false;
405
+ },
406
+ {
407
+ name: 'driftProgram';
408
+ isMut: false;
409
+ isSigner: false;
410
+ },
411
+ {
412
+ name: 'tokenProgram';
413
+ isMut: false;
414
+ isSigner: false;
415
+ }
416
+ ];
417
+ args: [];
418
+ },
419
+ {
420
+ name: 'liquidate';
421
+ accounts: [
422
+ {
423
+ name: 'vault';
424
+ isMut: true;
425
+ isSigner: false;
426
+ },
427
+ {
428
+ name: 'vaultDepositor';
429
+ isMut: true;
430
+ isSigner: false;
431
+ },
432
+ {
433
+ name: 'authority';
434
+ isMut: false;
435
+ isSigner: true;
436
+ },
437
+ {
438
+ name: 'driftUserStats';
439
+ isMut: true;
440
+ isSigner: false;
441
+ },
442
+ {
443
+ name: 'driftUser';
444
+ isMut: true;
445
+ isSigner: false;
446
+ },
447
+ {
448
+ name: 'driftState';
449
+ isMut: false;
450
+ isSigner: false;
451
+ },
452
+ {
453
+ name: 'driftProgram';
454
+ isMut: false;
455
+ isSigner: false;
456
+ }
457
+ ];
458
+ args: [];
459
+ },
460
+ {
461
+ name: 'resetDelegate';
462
+ accounts: [
463
+ {
464
+ name: 'vault';
465
+ isMut: true;
466
+ isSigner: false;
467
+ },
468
+ {
469
+ name: 'authority';
470
+ isMut: false;
471
+ isSigner: true;
472
+ },
473
+ {
474
+ name: 'driftUser';
475
+ isMut: true;
476
+ isSigner: false;
477
+ },
478
+ {
479
+ name: 'driftProgram';
480
+ isMut: false;
481
+ isSigner: false;
482
+ }
483
+ ];
484
+ args: [];
485
+ },
486
+ {
487
+ name: 'managerDeposit';
488
+ accounts: [
489
+ {
490
+ name: 'vault';
491
+ isMut: true;
492
+ isSigner: false;
493
+ },
494
+ {
495
+ name: 'manager';
496
+ isMut: false;
497
+ isSigner: true;
498
+ },
499
+ {
500
+ name: 'vaultTokenAccount';
501
+ isMut: true;
502
+ isSigner: false;
503
+ },
504
+ {
505
+ name: 'driftUserStats';
506
+ isMut: true;
507
+ isSigner: false;
508
+ },
509
+ {
510
+ name: 'driftUser';
511
+ isMut: true;
512
+ isSigner: false;
513
+ },
514
+ {
515
+ name: 'driftState';
516
+ isMut: false;
517
+ isSigner: false;
518
+ },
519
+ {
520
+ name: 'driftSpotMarketVault';
521
+ isMut: true;
522
+ isSigner: false;
523
+ },
524
+ {
525
+ name: 'userTokenAccount';
526
+ isMut: true;
527
+ isSigner: false;
528
+ },
529
+ {
530
+ name: 'driftProgram';
531
+ isMut: false;
532
+ isSigner: false;
533
+ },
534
+ {
535
+ name: 'tokenProgram';
536
+ isMut: false;
537
+ isSigner: false;
538
+ }
539
+ ];
540
+ args: [
541
+ {
542
+ name: 'amount';
543
+ type: 'u64';
544
+ }
545
+ ];
546
+ },
547
+ {
548
+ name: 'managerRequestWithdraw';
549
+ accounts: [
550
+ {
551
+ name: 'vault';
552
+ isMut: true;
553
+ isSigner: false;
554
+ },
555
+ {
556
+ name: 'manager';
557
+ isMut: false;
558
+ isSigner: true;
559
+ },
560
+ {
561
+ name: 'driftUserStats';
562
+ isMut: false;
563
+ isSigner: false;
564
+ },
565
+ {
566
+ name: 'driftUser';
567
+ isMut: false;
568
+ isSigner: false;
569
+ },
570
+ {
571
+ name: 'driftState';
572
+ isMut: false;
573
+ isSigner: false;
574
+ }
575
+ ];
576
+ args: [
577
+ {
578
+ name: 'withdrawAmount';
579
+ type: 'u64';
580
+ },
581
+ {
582
+ name: 'withdrawUnit';
583
+ type: {
584
+ defined: 'WithdrawUnit';
585
+ };
586
+ }
587
+ ];
588
+ },
589
+ {
590
+ name: 'mangerCancelWithdrawRequest';
591
+ accounts: [
592
+ {
593
+ name: 'vault';
594
+ isMut: true;
595
+ isSigner: false;
596
+ },
597
+ {
598
+ name: 'manager';
599
+ isMut: false;
600
+ isSigner: true;
601
+ },
602
+ {
603
+ name: 'driftUserStats';
604
+ isMut: false;
605
+ isSigner: false;
606
+ },
607
+ {
608
+ name: 'driftUser';
609
+ isMut: false;
610
+ isSigner: false;
611
+ },
612
+ {
613
+ name: 'driftState';
614
+ isMut: false;
615
+ isSigner: false;
616
+ }
617
+ ];
618
+ args: [];
619
+ },
620
+ {
621
+ name: 'managerWithdraw';
622
+ accounts: [
623
+ {
624
+ name: 'vault';
625
+ isMut: true;
626
+ isSigner: false;
627
+ },
628
+ {
629
+ name: 'manager';
630
+ isMut: false;
631
+ isSigner: true;
632
+ },
633
+ {
634
+ name: 'vaultTokenAccount';
635
+ isMut: true;
636
+ isSigner: false;
637
+ },
638
+ {
639
+ name: 'driftUserStats';
640
+ isMut: true;
641
+ isSigner: false;
642
+ },
643
+ {
644
+ name: 'driftUser';
645
+ isMut: true;
646
+ isSigner: false;
647
+ },
648
+ {
649
+ name: 'driftState';
650
+ isMut: false;
651
+ isSigner: false;
652
+ },
653
+ {
654
+ name: 'driftSpotMarketVault';
655
+ isMut: true;
656
+ isSigner: false;
657
+ },
658
+ {
659
+ name: 'driftSigner';
660
+ isMut: false;
661
+ isSigner: false;
662
+ },
663
+ {
664
+ name: 'userTokenAccount';
665
+ isMut: true;
666
+ isSigner: false;
667
+ },
668
+ {
669
+ name: 'driftProgram';
670
+ isMut: false;
671
+ isSigner: false;
672
+ },
673
+ {
674
+ name: 'tokenProgram';
675
+ isMut: false;
676
+ isSigner: false;
677
+ }
678
+ ];
679
+ args: [];
680
+ },
681
+ {
682
+ name: 'applyProfitShare';
683
+ accounts: [
684
+ {
685
+ name: 'vault';
686
+ isMut: true;
687
+ isSigner: false;
688
+ },
689
+ {
690
+ name: 'vaultDepositor';
691
+ isMut: true;
692
+ isSigner: false;
693
+ },
694
+ {
695
+ name: 'manager';
696
+ isMut: false;
697
+ isSigner: true;
698
+ },
699
+ {
700
+ name: 'driftUserStats';
701
+ isMut: true;
702
+ isSigner: false;
703
+ },
704
+ {
705
+ name: 'driftUser';
706
+ isMut: true;
707
+ isSigner: false;
708
+ },
709
+ {
710
+ name: 'driftState';
711
+ isMut: false;
712
+ isSigner: false;
713
+ },
714
+ {
715
+ name: 'driftSigner';
716
+ isMut: false;
717
+ isSigner: false;
718
+ },
719
+ {
720
+ name: 'driftProgram';
721
+ isMut: false;
722
+ isSigner: false;
723
+ }
724
+ ];
725
+ args: [];
726
+ },
727
+ {
728
+ name: 'forceWithdraw';
729
+ accounts: [
730
+ {
731
+ name: 'vault';
732
+ isMut: true;
733
+ isSigner: false;
734
+ },
735
+ {
736
+ name: 'manager';
737
+ isMut: false;
738
+ isSigner: true;
739
+ },
740
+ {
741
+ name: 'vaultDepositor';
742
+ isMut: true;
743
+ isSigner: false;
744
+ },
745
+ {
746
+ name: 'vaultTokenAccount';
747
+ isMut: true;
748
+ isSigner: false;
749
+ },
750
+ {
751
+ name: 'driftUserStats';
752
+ isMut: true;
753
+ isSigner: false;
754
+ },
755
+ {
756
+ name: 'driftUser';
757
+ isMut: true;
758
+ isSigner: false;
759
+ },
760
+ {
761
+ name: 'driftState';
762
+ isMut: false;
763
+ isSigner: false;
764
+ },
765
+ {
766
+ name: 'driftSpotMarketVault';
767
+ isMut: true;
768
+ isSigner: false;
769
+ },
770
+ {
771
+ name: 'driftSigner';
772
+ isMut: false;
773
+ isSigner: false;
774
+ },
775
+ {
776
+ name: 'userTokenAccount';
777
+ isMut: true;
778
+ isSigner: false;
779
+ },
780
+ {
781
+ name: 'driftProgram';
782
+ isMut: false;
783
+ isSigner: false;
784
+ },
785
+ {
786
+ name: 'tokenProgram';
787
+ isMut: false;
788
+ isSigner: false;
789
+ }
790
+ ];
791
+ args: [];
792
+ }
793
+ ];
794
+ accounts: [
795
+ {
796
+ name: 'vaultDepositor';
797
+ type: {
798
+ kind: 'struct';
799
+ fields: [
800
+ {
801
+ name: 'vault';
802
+ docs: ['The vault deposited into'];
803
+ type: 'publicKey';
804
+ },
805
+ {
806
+ name: 'pubkey';
807
+ docs: [
808
+ "The vault depositor account's pubkey. It is a pda of vault and authority"
809
+ ];
810
+ type: 'publicKey';
811
+ },
812
+ {
813
+ name: 'authority';
814
+ docs: [
815
+ 'The authority is the address w permission to deposit/withdraw'
816
+ ];
817
+ type: 'publicKey';
818
+ },
819
+ {
820
+ name: 'vaultShares';
821
+ docs: [
822
+ "share of vault owned by this depositor. vault_shares / vault.total_shares is depositor's ownership of vault_equity"
823
+ ];
824
+ type: 'u128';
825
+ },
826
+ {
827
+ name: 'lastWithdrawRequest';
828
+ docs: ['last withdraw request'];
829
+ type: {
830
+ defined: 'WithdrawRequest';
831
+ };
832
+ },
833
+ {
834
+ name: 'lastValidTs';
835
+ docs: ['creation ts of vault depositor'];
836
+ type: 'i64';
837
+ },
838
+ {
839
+ name: 'netDeposits';
840
+ docs: ['lifetime net deposits of vault depositor for the vault'];
841
+ type: 'i64';
842
+ },
843
+ {
844
+ name: 'totalDeposits';
845
+ docs: ['lifetime total deposits'];
846
+ type: 'u64';
847
+ },
848
+ {
849
+ name: 'totalWithdraws';
850
+ docs: ['lifetime total withdraws'];
851
+ type: 'u64';
852
+ },
853
+ {
854
+ name: 'cumulativeProfitShareAmount';
855
+ docs: [
856
+ 'the token amount of gains the vault depositor has paid performance fees on'
857
+ ];
858
+ type: 'i64';
859
+ },
860
+ {
861
+ name: 'profitShareFeePaid';
862
+ type: 'u64';
863
+ },
864
+ {
865
+ name: 'vaultSharesBase';
866
+ docs: ['the exponent for vault_shares decimal places'];
867
+ type: 'u32';
868
+ },
869
+ {
870
+ name: 'padding1';
871
+ type: 'u32';
872
+ },
873
+ {
874
+ name: 'padding';
875
+ type: {
876
+ array: ['u64', 8];
877
+ };
878
+ }
879
+ ];
880
+ };
881
+ },
882
+ {
883
+ name: 'vault';
884
+ type: {
885
+ kind: 'struct';
886
+ fields: [
887
+ {
888
+ name: 'name';
889
+ docs: [
890
+ 'The name of the vault. Vault pubkey is derived from this name.'
891
+ ];
892
+ type: {
893
+ array: ['u8', 32];
894
+ };
895
+ },
896
+ {
897
+ name: 'pubkey';
898
+ docs: [
899
+ "The vault's pubkey. It is a pda of name and also used as the authority for drift user"
900
+ ];
901
+ type: 'publicKey';
902
+ },
903
+ {
904
+ name: 'manager';
905
+ docs: [
906
+ 'The manager of the vault who has ability to update vault params'
907
+ ];
908
+ type: 'publicKey';
909
+ },
910
+ {
911
+ name: 'tokenAccount';
912
+ docs: [
913
+ 'The vaults token account. Used to receive tokens between deposits and withdrawals'
914
+ ];
915
+ type: 'publicKey';
916
+ },
917
+ {
918
+ name: 'userStats';
919
+ docs: ['The drift user stats account for the vault'];
920
+ type: 'publicKey';
921
+ },
922
+ {
923
+ name: 'user';
924
+ docs: ['The drift user account for the vault'];
925
+ type: 'publicKey';
926
+ },
927
+ {
928
+ name: 'delegate';
929
+ docs: [
930
+ 'The vaults designated delegate for drift user account',
931
+ 'Can differ from actual user delegate if vault is in liquidation'
932
+ ];
933
+ type: 'publicKey';
934
+ },
935
+ {
936
+ name: 'liquidationDelegate';
937
+ docs: ['The delegate handling liquidation for depositor'];
938
+ type: 'publicKey';
939
+ },
940
+ {
941
+ name: 'userShares';
942
+ docs: [
943
+ 'the sum of all shares held by the users (vault depositors)'
944
+ ];
945
+ type: 'u128';
946
+ },
947
+ {
948
+ name: 'totalShares';
949
+ docs: ['the sum of all shares (including vault manager)'];
950
+ type: 'u128';
951
+ },
952
+ {
953
+ name: 'lastFeeUpdateTs';
954
+ docs: ['last fee update unix timestamp'];
955
+ type: 'i64';
956
+ },
957
+ {
958
+ name: 'liquidationStartTs';
959
+ docs: ['When the liquidation start'];
960
+ type: 'i64';
961
+ },
962
+ {
963
+ name: 'redeemPeriod';
964
+ docs: [
965
+ 'the period (in seconds) that a vault depositor must wait after requesting a withdraw to complete withdraw'
966
+ ];
967
+ type: 'i64';
968
+ },
969
+ {
970
+ name: 'totalWithdrawRequested';
971
+ docs: ['the sum of all outstanding withdraw requests'];
972
+ type: 'u64';
973
+ },
974
+ {
975
+ name: 'maxTokens';
976
+ docs: [
977
+ 'max token capacity, once hit/passed vault will reject new deposits (updateable)'
978
+ ];
979
+ type: 'u64';
980
+ },
981
+ {
982
+ name: 'managementFee';
983
+ docs: ['manager fee'];
984
+ type: 'i64';
985
+ },
986
+ {
987
+ name: 'initTs';
988
+ docs: ['timestamp vault initialized'];
989
+ type: 'i64';
990
+ },
991
+ {
992
+ name: 'netDeposits';
993
+ docs: ['the net deposits for the vault'];
994
+ type: 'i64';
995
+ },
996
+ {
997
+ name: 'managerNetDeposits';
998
+ docs: ['the net deposits for the vault manager'];
999
+ type: 'i64';
1000
+ },
1001
+ {
1002
+ name: 'totalDeposits';
1003
+ docs: ['total deposits'];
1004
+ type: 'u64';
1005
+ },
1006
+ {
1007
+ name: 'totalWithdraws';
1008
+ docs: ['total withdraws'];
1009
+ type: 'u64';
1010
+ },
1011
+ {
1012
+ name: 'managerTotalDeposits';
1013
+ docs: ['total deposits for the vault manager'];
1014
+ type: 'u64';
1015
+ },
1016
+ {
1017
+ name: 'managerTotalWithdraws';
1018
+ docs: ['total withdraws for the vault manager'];
1019
+ type: 'u64';
1020
+ },
1021
+ {
1022
+ name: 'managerTotalFee';
1023
+ docs: ['total mgmt fee charged by vault manager'];
1024
+ type: 'i64';
1025
+ },
1026
+ {
1027
+ name: 'managerTotalProfitShare';
1028
+ docs: ['total profit share charged by vault manager'];
1029
+ type: 'u64';
1030
+ },
1031
+ {
1032
+ name: 'minDepositAmount';
1033
+ docs: ['the minimum deposit amount'];
1034
+ type: 'u64';
1035
+ },
1036
+ {
1037
+ name: 'lastManagerWithdrawRequest';
1038
+ type: {
1039
+ defined: 'WithdrawRequest';
1040
+ };
1041
+ },
1042
+ {
1043
+ name: 'sharesBase';
1044
+ docs: [
1045
+ 'the base 10 exponent of the shares (given massive share inflation can occur at near zero vault equity)'
1046
+ ];
1047
+ type: 'u32';
1048
+ },
1049
+ {
1050
+ name: 'profitShare';
1051
+ docs: [
1052
+ "percentage of gains for vault admin upon depositor's realize/withdraw: PERCENTAGE_PRECISION"
1053
+ ];
1054
+ type: 'u32';
1055
+ },
1056
+ {
1057
+ name: 'hurdleRate';
1058
+ docs: [
1059
+ 'vault admin only collect incentive fees during periods when returns are higher than this amount: PERCENTAGE_PRECISION'
1060
+ ];
1061
+ type: 'u32';
1062
+ },
1063
+ {
1064
+ name: 'spotMarketIndex';
1065
+ docs: [
1066
+ 'The spot market index the vault deposits into/withdraws from'
1067
+ ];
1068
+ type: 'u16';
1069
+ },
1070
+ {
1071
+ name: 'bump';
1072
+ docs: ['The bump for the vault pda'];
1073
+ type: 'u8';
1074
+ },
1075
+ {
1076
+ name: 'permissioned';
1077
+ docs: ['Whether or not anybody can be a depositor'];
1078
+ type: 'bool';
1079
+ },
1080
+ {
1081
+ name: 'padding';
1082
+ type: {
1083
+ array: ['u64', 8];
1084
+ };
1085
+ }
1086
+ ];
1087
+ };
1088
+ }
1089
+ ];
1090
+ types: [
1091
+ {
1092
+ name: 'VaultParams';
1093
+ type: {
1094
+ kind: 'struct';
1095
+ fields: [
1096
+ {
1097
+ name: 'name';
1098
+ type: {
1099
+ array: ['u8', 32];
1100
+ };
1101
+ },
1102
+ {
1103
+ name: 'redeemPeriod';
1104
+ type: 'i64';
1105
+ },
1106
+ {
1107
+ name: 'maxTokens';
1108
+ type: 'u64';
1109
+ },
1110
+ {
1111
+ name: 'managementFee';
1112
+ type: 'i64';
1113
+ },
1114
+ {
1115
+ name: 'minDepositAmount';
1116
+ type: 'u64';
1117
+ },
1118
+ {
1119
+ name: 'profitShare';
1120
+ type: 'u32';
1121
+ },
1122
+ {
1123
+ name: 'hurdleRate';
1124
+ type: 'u32';
1125
+ },
1126
+ {
1127
+ name: 'spotMarketIndex';
1128
+ type: 'u16';
1129
+ },
1130
+ {
1131
+ name: 'permissioned';
1132
+ type: 'bool';
1133
+ }
1134
+ ];
1135
+ };
1136
+ },
1137
+ {
1138
+ name: 'UpdateVaultParams';
1139
+ type: {
1140
+ kind: 'struct';
1141
+ fields: [
1142
+ {
1143
+ name: 'redeemPeriod';
1144
+ type: {
1145
+ option: 'i64';
1146
+ };
1147
+ },
1148
+ {
1149
+ name: 'maxTokens';
1150
+ type: {
1151
+ option: 'u64';
1152
+ };
1153
+ },
1154
+ {
1155
+ name: 'managementFee';
1156
+ type: {
1157
+ option: 'i64';
1158
+ };
1159
+ },
1160
+ {
1161
+ name: 'minDepositAmount';
1162
+ type: {
1163
+ option: 'u64';
1164
+ };
1165
+ },
1166
+ {
1167
+ name: 'profitShare';
1168
+ type: {
1169
+ option: 'u32';
1170
+ };
1171
+ },
1172
+ {
1173
+ name: 'hurdleRate';
1174
+ type: {
1175
+ option: 'u32';
1176
+ };
1177
+ },
1178
+ {
1179
+ name: 'permissioned';
1180
+ type: {
1181
+ option: 'bool';
1182
+ };
1183
+ }
1184
+ ];
1185
+ };
1186
+ },
1187
+ {
1188
+ name: 'WithdrawRequest';
1189
+ type: {
1190
+ kind: 'struct';
1191
+ fields: [
1192
+ {
1193
+ name: 'shares';
1194
+ docs: ['request shares of vault withdraw'];
1195
+ type: 'u128';
1196
+ },
1197
+ {
1198
+ name: 'value';
1199
+ docs: [
1200
+ 'requested value (in vault spot_market_index) of shares for withdraw'
1201
+ ];
1202
+ type: 'u64';
1203
+ },
1204
+ {
1205
+ name: 'ts';
1206
+ docs: ['request ts of vault withdraw'];
1207
+ type: 'i64';
1208
+ }
1209
+ ];
1210
+ };
1211
+ },
1212
+ {
1213
+ name: 'VaultDepositorAction';
1214
+ type: {
1215
+ kind: 'enum';
1216
+ variants: [
1217
+ {
1218
+ name: 'Deposit';
1219
+ },
1220
+ {
1221
+ name: 'WithdrawRequest';
1222
+ },
1223
+ {
1224
+ name: 'CancelWithdrawRequest';
1225
+ },
1226
+ {
1227
+ name: 'Withdraw';
1228
+ },
1229
+ {
1230
+ name: 'FeePayment';
1231
+ }
1232
+ ];
1233
+ };
1234
+ },
1235
+ {
1236
+ name: 'WithdrawUnit';
1237
+ type: {
1238
+ kind: 'enum';
1239
+ variants: [
1240
+ {
1241
+ name: 'Shares';
1242
+ },
1243
+ {
1244
+ name: 'Token';
1245
+ },
1246
+ {
1247
+ name: 'SharesPercent';
1248
+ }
1249
+ ];
1250
+ };
1251
+ }
1252
+ ];
1253
+ events: [
1254
+ {
1255
+ name: 'VaultRecord';
1256
+ fields: [
1257
+ {
1258
+ name: 'ts';
1259
+ type: 'i64';
1260
+ index: false;
1261
+ },
1262
+ {
1263
+ name: 'spotMarketIndex';
1264
+ type: 'u16';
1265
+ index: false;
1266
+ },
1267
+ {
1268
+ name: 'vaultEquityBefore';
1269
+ type: 'u64';
1270
+ index: false;
1271
+ }
1272
+ ];
1273
+ },
1274
+ {
1275
+ name: 'VaultDepositorRecord';
1276
+ fields: [
1277
+ {
1278
+ name: 'ts';
1279
+ type: 'i64';
1280
+ index: false;
1281
+ },
1282
+ {
1283
+ name: 'vault';
1284
+ type: 'publicKey';
1285
+ index: false;
1286
+ },
1287
+ {
1288
+ name: 'depositorAuthority';
1289
+ type: 'publicKey';
1290
+ index: false;
1291
+ },
1292
+ {
1293
+ name: 'action';
1294
+ type: {
1295
+ defined: 'VaultDepositorAction';
1296
+ };
1297
+ index: false;
1298
+ },
1299
+ {
1300
+ name: 'amount';
1301
+ type: 'u64';
1302
+ index: false;
1303
+ },
1304
+ {
1305
+ name: 'spotMarketIndex';
1306
+ type: 'u16';
1307
+ index: false;
1308
+ },
1309
+ {
1310
+ name: 'vaultSharesBefore';
1311
+ type: 'u128';
1312
+ index: false;
1313
+ },
1314
+ {
1315
+ name: 'vaultSharesAfter';
1316
+ type: 'u128';
1317
+ index: false;
1318
+ },
1319
+ {
1320
+ name: 'vaultEquityBefore';
1321
+ type: 'u64';
1322
+ index: false;
1323
+ },
1324
+ {
1325
+ name: 'userVaultSharesBefore';
1326
+ type: 'u128';
1327
+ index: false;
1328
+ },
1329
+ {
1330
+ name: 'totalVaultSharesBefore';
1331
+ type: 'u128';
1332
+ index: false;
1333
+ },
1334
+ {
1335
+ name: 'userVaultSharesAfter';
1336
+ type: 'u128';
1337
+ index: false;
1338
+ },
1339
+ {
1340
+ name: 'totalVaultSharesAfter';
1341
+ type: 'u128';
1342
+ index: false;
1343
+ },
1344
+ {
1345
+ name: 'profitShare';
1346
+ type: 'u64';
1347
+ index: false;
1348
+ },
1349
+ {
1350
+ name: 'managementFee';
1351
+ type: 'i64';
1352
+ index: false;
1353
+ },
1354
+ {
1355
+ name: 'managementFeeShares';
1356
+ type: 'i64';
1357
+ index: false;
1358
+ }
1359
+ ];
1360
+ }
1361
+ ];
1362
+ errors: [
1363
+ {
1364
+ code: 6000;
1365
+ name: 'Default';
1366
+ msg: 'Default';
1367
+ },
1368
+ {
1369
+ code: 6001;
1370
+ name: 'InvalidVaultRebase';
1371
+ msg: 'InvalidVaultRebase';
1372
+ },
1373
+ {
1374
+ code: 6002;
1375
+ name: 'InvalidVaultSharesDetected';
1376
+ msg: 'InvalidVaultSharesDetected';
1377
+ },
1378
+ {
1379
+ code: 6003;
1380
+ name: 'CannotWithdrawBeforeRedeemPeriodEnd';
1381
+ msg: 'CannotWithdrawBeforeRedeemPeriodEnd';
1382
+ },
1383
+ {
1384
+ code: 6004;
1385
+ name: 'InvalidVaultWithdraw';
1386
+ msg: 'InvalidVaultWithdraw';
1387
+ },
1388
+ {
1389
+ code: 6005;
1390
+ name: 'InsufficientVaultShares';
1391
+ msg: 'InsufficientVaultShares';
1392
+ },
1393
+ {
1394
+ code: 6006;
1395
+ name: 'InvalidVaultWithdrawSize';
1396
+ msg: 'InvalidVaultWithdrawSize';
1397
+ },
1398
+ {
1399
+ code: 6007;
1400
+ name: 'InvalidVaultForNewDepositors';
1401
+ msg: 'InvalidVaultForNewDepositors';
1402
+ },
1403
+ {
1404
+ code: 6008;
1405
+ name: 'VaultWithdrawRequestInProgress';
1406
+ msg: 'VaultWithdrawRequestInProgress';
1407
+ },
1408
+ {
1409
+ code: 6009;
1410
+ name: 'VaultIsAtCapacity';
1411
+ msg: 'VaultIsAtCapacity';
1412
+ },
1413
+ {
1414
+ code: 6010;
1415
+ name: 'InvalidVaultDepositorInitialization';
1416
+ msg: 'InvalidVaultDepositorInitialization';
1417
+ },
1418
+ {
1419
+ code: 6011;
1420
+ name: 'DelegateNotAvailableForLiquidation';
1421
+ msg: 'DelegateNotAvailableForLiquidation';
1422
+ },
1423
+ {
1424
+ code: 6012;
1425
+ name: 'InvalidEquityValue';
1426
+ msg: 'InvalidEquityValue';
1427
+ },
1428
+ {
1429
+ code: 6013;
1430
+ name: 'VaultInLiquidation';
1431
+ msg: 'VaultInLiquidation';
1432
+ },
1433
+ {
1434
+ code: 6014;
1435
+ name: 'DriftError';
1436
+ msg: 'DriftError';
1437
+ },
1438
+ {
1439
+ code: 6015;
1440
+ name: 'InvalidVaultInitialization';
1441
+ msg: 'InvalidVaultInitialization';
1442
+ },
1443
+ {
1444
+ code: 6016;
1445
+ name: 'InvalidVaultUpdate';
1446
+ msg: 'InvalidVaultUpdate';
1447
+ },
1448
+ {
1449
+ code: 6017;
1450
+ name: 'PermissionedVault';
1451
+ msg: 'PermissionedVault';
1452
+ },
1453
+ {
1454
+ code: 6018;
1455
+ name: 'WithdrawInProgress';
1456
+ msg: 'WithdrawInProgress';
1457
+ },
1458
+ {
1459
+ code: 6019;
1460
+ name: 'SharesPercentTooLarge';
1461
+ msg: 'SharesPercentTooLarge';
1462
+ },
1463
+ {
1464
+ code: 6020;
1465
+ name: 'InvalidVaultDeposit';
1466
+ msg: 'InvalidVaultDeposit';
1467
+ },
1468
+ {
1469
+ code: 6021;
1470
+ name: 'OngoingLiquidation';
1471
+ msg: 'OngoingLiquidation';
1472
+ }
1473
+ ];
1474
+ };
1475
+
1476
+ export const IDL: DriftVaults = {
1477
+ version: '0.1.0',
1478
+ name: 'drift_vaults',
1479
+ instructions: [
1480
+ {
1481
+ name: 'initializeVault',
1482
+ accounts: [
1483
+ {
1484
+ name: 'vault',
1485
+ isMut: true,
1486
+ isSigner: false,
1487
+ },
1488
+ {
1489
+ name: 'tokenAccount',
1490
+ isMut: true,
1491
+ isSigner: false,
1492
+ },
1493
+ {
1494
+ name: 'driftUserStats',
1495
+ isMut: true,
1496
+ isSigner: false,
1497
+ },
1498
+ {
1499
+ name: 'driftUser',
1500
+ isMut: true,
1501
+ isSigner: false,
1502
+ },
1503
+ {
1504
+ name: 'driftState',
1505
+ isMut: true,
1506
+ isSigner: false,
1507
+ },
1508
+ {
1509
+ name: 'driftSpotMarket',
1510
+ isMut: false,
1511
+ isSigner: false,
1512
+ },
1513
+ {
1514
+ name: 'driftSpotMarketMint',
1515
+ isMut: false,
1516
+ isSigner: false,
1517
+ },
1518
+ {
1519
+ name: 'manager',
1520
+ isMut: false,
1521
+ isSigner: true,
1522
+ },
1523
+ {
1524
+ name: 'payer',
1525
+ isMut: true,
1526
+ isSigner: true,
1527
+ },
1528
+ {
1529
+ name: 'rent',
1530
+ isMut: false,
1531
+ isSigner: false,
1532
+ },
1533
+ {
1534
+ name: 'systemProgram',
1535
+ isMut: false,
1536
+ isSigner: false,
1537
+ },
1538
+ {
1539
+ name: 'driftProgram',
1540
+ isMut: false,
1541
+ isSigner: false,
1542
+ },
1543
+ {
1544
+ name: 'tokenProgram',
1545
+ isMut: false,
1546
+ isSigner: false,
1547
+ },
1548
+ ],
1549
+ args: [
1550
+ {
1551
+ name: 'params',
1552
+ type: {
1553
+ defined: 'VaultParams',
1554
+ },
1555
+ },
1556
+ ],
1557
+ },
1558
+ {
1559
+ name: 'updateDelegate',
1560
+ accounts: [
1561
+ {
1562
+ name: 'vault',
1563
+ isMut: true,
1564
+ isSigner: false,
1565
+ },
1566
+ {
1567
+ name: 'manager',
1568
+ isMut: false,
1569
+ isSigner: true,
1570
+ },
1571
+ {
1572
+ name: 'driftUser',
1573
+ isMut: true,
1574
+ isSigner: false,
1575
+ },
1576
+ {
1577
+ name: 'driftProgram',
1578
+ isMut: false,
1579
+ isSigner: false,
1580
+ },
1581
+ ],
1582
+ args: [
1583
+ {
1584
+ name: 'delegate',
1585
+ type: 'publicKey',
1586
+ },
1587
+ ],
1588
+ },
1589
+ {
1590
+ name: 'updateMarginTradingEnabled',
1591
+ accounts: [
1592
+ {
1593
+ name: 'vault',
1594
+ isMut: true,
1595
+ isSigner: false,
1596
+ },
1597
+ {
1598
+ name: 'manager',
1599
+ isMut: false,
1600
+ isSigner: true,
1601
+ },
1602
+ {
1603
+ name: 'driftUser',
1604
+ isMut: true,
1605
+ isSigner: false,
1606
+ },
1607
+ {
1608
+ name: 'driftProgram',
1609
+ isMut: false,
1610
+ isSigner: false,
1611
+ },
1612
+ ],
1613
+ args: [
1614
+ {
1615
+ name: 'enabled',
1616
+ type: 'bool',
1617
+ },
1618
+ ],
1619
+ },
1620
+ {
1621
+ name: 'updateVault',
1622
+ accounts: [
1623
+ {
1624
+ name: 'vault',
1625
+ isMut: true,
1626
+ isSigner: false,
1627
+ },
1628
+ {
1629
+ name: 'manager',
1630
+ isMut: false,
1631
+ isSigner: true,
1632
+ },
1633
+ ],
1634
+ args: [
1635
+ {
1636
+ name: 'params',
1637
+ type: {
1638
+ defined: 'UpdateVaultParams',
1639
+ },
1640
+ },
1641
+ ],
1642
+ },
1643
+ {
1644
+ name: 'initializeVaultDepositor',
1645
+ accounts: [
1646
+ {
1647
+ name: 'vault',
1648
+ isMut: false,
1649
+ isSigner: false,
1650
+ },
1651
+ {
1652
+ name: 'vaultDepositor',
1653
+ isMut: true,
1654
+ isSigner: false,
1655
+ },
1656
+ {
1657
+ name: 'authority',
1658
+ isMut: false,
1659
+ isSigner: false,
1660
+ },
1661
+ {
1662
+ name: 'payer',
1663
+ isMut: true,
1664
+ isSigner: true,
1665
+ },
1666
+ {
1667
+ name: 'rent',
1668
+ isMut: false,
1669
+ isSigner: false,
1670
+ },
1671
+ {
1672
+ name: 'systemProgram',
1673
+ isMut: false,
1674
+ isSigner: false,
1675
+ },
1676
+ ],
1677
+ args: [],
1678
+ },
1679
+ {
1680
+ name: 'deposit',
1681
+ accounts: [
1682
+ {
1683
+ name: 'vault',
1684
+ isMut: true,
1685
+ isSigner: false,
1686
+ },
1687
+ {
1688
+ name: 'vaultDepositor',
1689
+ isMut: true,
1690
+ isSigner: false,
1691
+ },
1692
+ {
1693
+ name: 'authority',
1694
+ isMut: false,
1695
+ isSigner: true,
1696
+ },
1697
+ {
1698
+ name: 'vaultTokenAccount',
1699
+ isMut: true,
1700
+ isSigner: false,
1701
+ },
1702
+ {
1703
+ name: 'driftUserStats',
1704
+ isMut: true,
1705
+ isSigner: false,
1706
+ },
1707
+ {
1708
+ name: 'driftUser',
1709
+ isMut: true,
1710
+ isSigner: false,
1711
+ },
1712
+ {
1713
+ name: 'driftState',
1714
+ isMut: false,
1715
+ isSigner: false,
1716
+ },
1717
+ {
1718
+ name: 'driftSpotMarketVault',
1719
+ isMut: true,
1720
+ isSigner: false,
1721
+ },
1722
+ {
1723
+ name: 'userTokenAccount',
1724
+ isMut: true,
1725
+ isSigner: false,
1726
+ },
1727
+ {
1728
+ name: 'driftProgram',
1729
+ isMut: false,
1730
+ isSigner: false,
1731
+ },
1732
+ {
1733
+ name: 'tokenProgram',
1734
+ isMut: false,
1735
+ isSigner: false,
1736
+ },
1737
+ ],
1738
+ args: [
1739
+ {
1740
+ name: 'amount',
1741
+ type: 'u64',
1742
+ },
1743
+ ],
1744
+ },
1745
+ {
1746
+ name: 'requestWithdraw',
1747
+ accounts: [
1748
+ {
1749
+ name: 'vault',
1750
+ isMut: true,
1751
+ isSigner: false,
1752
+ },
1753
+ {
1754
+ name: 'vaultDepositor',
1755
+ isMut: true,
1756
+ isSigner: false,
1757
+ },
1758
+ {
1759
+ name: 'authority',
1760
+ isMut: false,
1761
+ isSigner: true,
1762
+ },
1763
+ {
1764
+ name: 'driftUserStats',
1765
+ isMut: false,
1766
+ isSigner: false,
1767
+ },
1768
+ {
1769
+ name: 'driftUser',
1770
+ isMut: false,
1771
+ isSigner: false,
1772
+ },
1773
+ {
1774
+ name: 'driftState',
1775
+ isMut: false,
1776
+ isSigner: false,
1777
+ },
1778
+ ],
1779
+ args: [
1780
+ {
1781
+ name: 'withdrawAmount',
1782
+ type: 'u64',
1783
+ },
1784
+ {
1785
+ name: 'withdrawUnit',
1786
+ type: {
1787
+ defined: 'WithdrawUnit',
1788
+ },
1789
+ },
1790
+ ],
1791
+ },
1792
+ {
1793
+ name: 'cancelRequestWithdraw',
1794
+ accounts: [
1795
+ {
1796
+ name: 'vault',
1797
+ isMut: true,
1798
+ isSigner: false,
1799
+ },
1800
+ {
1801
+ name: 'vaultDepositor',
1802
+ isMut: true,
1803
+ isSigner: false,
1804
+ },
1805
+ {
1806
+ name: 'authority',
1807
+ isMut: false,
1808
+ isSigner: true,
1809
+ },
1810
+ {
1811
+ name: 'driftUserStats',
1812
+ isMut: false,
1813
+ isSigner: false,
1814
+ },
1815
+ {
1816
+ name: 'driftUser',
1817
+ isMut: false,
1818
+ isSigner: false,
1819
+ },
1820
+ {
1821
+ name: 'driftState',
1822
+ isMut: false,
1823
+ isSigner: false,
1824
+ },
1825
+ ],
1826
+ args: [],
1827
+ },
1828
+ {
1829
+ name: 'withdraw',
1830
+ accounts: [
1831
+ {
1832
+ name: 'vault',
1833
+ isMut: true,
1834
+ isSigner: false,
1835
+ },
1836
+ {
1837
+ name: 'vaultDepositor',
1838
+ isMut: true,
1839
+ isSigner: false,
1840
+ },
1841
+ {
1842
+ name: 'authority',
1843
+ isMut: false,
1844
+ isSigner: true,
1845
+ },
1846
+ {
1847
+ name: 'vaultTokenAccount',
1848
+ isMut: true,
1849
+ isSigner: false,
1850
+ },
1851
+ {
1852
+ name: 'driftUserStats',
1853
+ isMut: true,
1854
+ isSigner: false,
1855
+ },
1856
+ {
1857
+ name: 'driftUser',
1858
+ isMut: true,
1859
+ isSigner: false,
1860
+ },
1861
+ {
1862
+ name: 'driftState',
1863
+ isMut: false,
1864
+ isSigner: false,
1865
+ },
1866
+ {
1867
+ name: 'driftSpotMarketVault',
1868
+ isMut: true,
1869
+ isSigner: false,
1870
+ },
1871
+ {
1872
+ name: 'driftSigner',
1873
+ isMut: false,
1874
+ isSigner: false,
1875
+ },
1876
+ {
1877
+ name: 'userTokenAccount',
1878
+ isMut: true,
1879
+ isSigner: false,
1880
+ },
1881
+ {
1882
+ name: 'driftProgram',
1883
+ isMut: false,
1884
+ isSigner: false,
1885
+ },
1886
+ {
1887
+ name: 'tokenProgram',
1888
+ isMut: false,
1889
+ isSigner: false,
1890
+ },
1891
+ ],
1892
+ args: [],
1893
+ },
1894
+ {
1895
+ name: 'liquidate',
1896
+ accounts: [
1897
+ {
1898
+ name: 'vault',
1899
+ isMut: true,
1900
+ isSigner: false,
1901
+ },
1902
+ {
1903
+ name: 'vaultDepositor',
1904
+ isMut: true,
1905
+ isSigner: false,
1906
+ },
1907
+ {
1908
+ name: 'authority',
1909
+ isMut: false,
1910
+ isSigner: true,
1911
+ },
1912
+ {
1913
+ name: 'driftUserStats',
1914
+ isMut: true,
1915
+ isSigner: false,
1916
+ },
1917
+ {
1918
+ name: 'driftUser',
1919
+ isMut: true,
1920
+ isSigner: false,
1921
+ },
1922
+ {
1923
+ name: 'driftState',
1924
+ isMut: false,
1925
+ isSigner: false,
1926
+ },
1927
+ {
1928
+ name: 'driftProgram',
1929
+ isMut: false,
1930
+ isSigner: false,
1931
+ },
1932
+ ],
1933
+ args: [],
1934
+ },
1935
+ {
1936
+ name: 'resetDelegate',
1937
+ accounts: [
1938
+ {
1939
+ name: 'vault',
1940
+ isMut: true,
1941
+ isSigner: false,
1942
+ },
1943
+ {
1944
+ name: 'authority',
1945
+ isMut: false,
1946
+ isSigner: true,
1947
+ },
1948
+ {
1949
+ name: 'driftUser',
1950
+ isMut: true,
1951
+ isSigner: false,
1952
+ },
1953
+ {
1954
+ name: 'driftProgram',
1955
+ isMut: false,
1956
+ isSigner: false,
1957
+ },
1958
+ ],
1959
+ args: [],
1960
+ },
1961
+ {
1962
+ name: 'managerDeposit',
1963
+ accounts: [
1964
+ {
1965
+ name: 'vault',
1966
+ isMut: true,
1967
+ isSigner: false,
1968
+ },
1969
+ {
1970
+ name: 'manager',
1971
+ isMut: false,
1972
+ isSigner: true,
1973
+ },
1974
+ {
1975
+ name: 'vaultTokenAccount',
1976
+ isMut: true,
1977
+ isSigner: false,
1978
+ },
1979
+ {
1980
+ name: 'driftUserStats',
1981
+ isMut: true,
1982
+ isSigner: false,
1983
+ },
1984
+ {
1985
+ name: 'driftUser',
1986
+ isMut: true,
1987
+ isSigner: false,
1988
+ },
1989
+ {
1990
+ name: 'driftState',
1991
+ isMut: false,
1992
+ isSigner: false,
1993
+ },
1994
+ {
1995
+ name: 'driftSpotMarketVault',
1996
+ isMut: true,
1997
+ isSigner: false,
1998
+ },
1999
+ {
2000
+ name: 'userTokenAccount',
2001
+ isMut: true,
2002
+ isSigner: false,
2003
+ },
2004
+ {
2005
+ name: 'driftProgram',
2006
+ isMut: false,
2007
+ isSigner: false,
2008
+ },
2009
+ {
2010
+ name: 'tokenProgram',
2011
+ isMut: false,
2012
+ isSigner: false,
2013
+ },
2014
+ ],
2015
+ args: [
2016
+ {
2017
+ name: 'amount',
2018
+ type: 'u64',
2019
+ },
2020
+ ],
2021
+ },
2022
+ {
2023
+ name: 'managerRequestWithdraw',
2024
+ accounts: [
2025
+ {
2026
+ name: 'vault',
2027
+ isMut: true,
2028
+ isSigner: false,
2029
+ },
2030
+ {
2031
+ name: 'manager',
2032
+ isMut: false,
2033
+ isSigner: true,
2034
+ },
2035
+ {
2036
+ name: 'driftUserStats',
2037
+ isMut: false,
2038
+ isSigner: false,
2039
+ },
2040
+ {
2041
+ name: 'driftUser',
2042
+ isMut: false,
2043
+ isSigner: false,
2044
+ },
2045
+ {
2046
+ name: 'driftState',
2047
+ isMut: false,
2048
+ isSigner: false,
2049
+ },
2050
+ ],
2051
+ args: [
2052
+ {
2053
+ name: 'withdrawAmount',
2054
+ type: 'u64',
2055
+ },
2056
+ {
2057
+ name: 'withdrawUnit',
2058
+ type: {
2059
+ defined: 'WithdrawUnit',
2060
+ },
2061
+ },
2062
+ ],
2063
+ },
2064
+ {
2065
+ name: 'mangerCancelWithdrawRequest',
2066
+ accounts: [
2067
+ {
2068
+ name: 'vault',
2069
+ isMut: true,
2070
+ isSigner: false,
2071
+ },
2072
+ {
2073
+ name: 'manager',
2074
+ isMut: false,
2075
+ isSigner: true,
2076
+ },
2077
+ {
2078
+ name: 'driftUserStats',
2079
+ isMut: false,
2080
+ isSigner: false,
2081
+ },
2082
+ {
2083
+ name: 'driftUser',
2084
+ isMut: false,
2085
+ isSigner: false,
2086
+ },
2087
+ {
2088
+ name: 'driftState',
2089
+ isMut: false,
2090
+ isSigner: false,
2091
+ },
2092
+ ],
2093
+ args: [],
2094
+ },
2095
+ {
2096
+ name: 'managerWithdraw',
2097
+ accounts: [
2098
+ {
2099
+ name: 'vault',
2100
+ isMut: true,
2101
+ isSigner: false,
2102
+ },
2103
+ {
2104
+ name: 'manager',
2105
+ isMut: false,
2106
+ isSigner: true,
2107
+ },
2108
+ {
2109
+ name: 'vaultTokenAccount',
2110
+ isMut: true,
2111
+ isSigner: false,
2112
+ },
2113
+ {
2114
+ name: 'driftUserStats',
2115
+ isMut: true,
2116
+ isSigner: false,
2117
+ },
2118
+ {
2119
+ name: 'driftUser',
2120
+ isMut: true,
2121
+ isSigner: false,
2122
+ },
2123
+ {
2124
+ name: 'driftState',
2125
+ isMut: false,
2126
+ isSigner: false,
2127
+ },
2128
+ {
2129
+ name: 'driftSpotMarketVault',
2130
+ isMut: true,
2131
+ isSigner: false,
2132
+ },
2133
+ {
2134
+ name: 'driftSigner',
2135
+ isMut: false,
2136
+ isSigner: false,
2137
+ },
2138
+ {
2139
+ name: 'userTokenAccount',
2140
+ isMut: true,
2141
+ isSigner: false,
2142
+ },
2143
+ {
2144
+ name: 'driftProgram',
2145
+ isMut: false,
2146
+ isSigner: false,
2147
+ },
2148
+ {
2149
+ name: 'tokenProgram',
2150
+ isMut: false,
2151
+ isSigner: false,
2152
+ },
2153
+ ],
2154
+ args: [],
2155
+ },
2156
+ {
2157
+ name: 'applyProfitShare',
2158
+ accounts: [
2159
+ {
2160
+ name: 'vault',
2161
+ isMut: true,
2162
+ isSigner: false,
2163
+ },
2164
+ {
2165
+ name: 'vaultDepositor',
2166
+ isMut: true,
2167
+ isSigner: false,
2168
+ },
2169
+ {
2170
+ name: 'manager',
2171
+ isMut: false,
2172
+ isSigner: true,
2173
+ },
2174
+ {
2175
+ name: 'driftUserStats',
2176
+ isMut: true,
2177
+ isSigner: false,
2178
+ },
2179
+ {
2180
+ name: 'driftUser',
2181
+ isMut: true,
2182
+ isSigner: false,
2183
+ },
2184
+ {
2185
+ name: 'driftState',
2186
+ isMut: false,
2187
+ isSigner: false,
2188
+ },
2189
+ {
2190
+ name: 'driftSigner',
2191
+ isMut: false,
2192
+ isSigner: false,
2193
+ },
2194
+ {
2195
+ name: 'driftProgram',
2196
+ isMut: false,
2197
+ isSigner: false,
2198
+ },
2199
+ ],
2200
+ args: [],
2201
+ },
2202
+ {
2203
+ name: 'forceWithdraw',
2204
+ accounts: [
2205
+ {
2206
+ name: 'vault',
2207
+ isMut: true,
2208
+ isSigner: false,
2209
+ },
2210
+ {
2211
+ name: 'manager',
2212
+ isMut: false,
2213
+ isSigner: true,
2214
+ },
2215
+ {
2216
+ name: 'vaultDepositor',
2217
+ isMut: true,
2218
+ isSigner: false,
2219
+ },
2220
+ {
2221
+ name: 'vaultTokenAccount',
2222
+ isMut: true,
2223
+ isSigner: false,
2224
+ },
2225
+ {
2226
+ name: 'driftUserStats',
2227
+ isMut: true,
2228
+ isSigner: false,
2229
+ },
2230
+ {
2231
+ name: 'driftUser',
2232
+ isMut: true,
2233
+ isSigner: false,
2234
+ },
2235
+ {
2236
+ name: 'driftState',
2237
+ isMut: false,
2238
+ isSigner: false,
2239
+ },
2240
+ {
2241
+ name: 'driftSpotMarketVault',
2242
+ isMut: true,
2243
+ isSigner: false,
2244
+ },
2245
+ {
2246
+ name: 'driftSigner',
2247
+ isMut: false,
2248
+ isSigner: false,
2249
+ },
2250
+ {
2251
+ name: 'userTokenAccount',
2252
+ isMut: true,
2253
+ isSigner: false,
2254
+ },
2255
+ {
2256
+ name: 'driftProgram',
2257
+ isMut: false,
2258
+ isSigner: false,
2259
+ },
2260
+ {
2261
+ name: 'tokenProgram',
2262
+ isMut: false,
2263
+ isSigner: false,
2264
+ },
2265
+ ],
2266
+ args: [],
2267
+ },
2268
+ ],
2269
+ accounts: [
2270
+ {
2271
+ name: 'vaultDepositor',
2272
+ type: {
2273
+ kind: 'struct',
2274
+ fields: [
2275
+ {
2276
+ name: 'vault',
2277
+ docs: ['The vault deposited into'],
2278
+ type: 'publicKey',
2279
+ },
2280
+ {
2281
+ name: 'pubkey',
2282
+ docs: [
2283
+ "The vault depositor account's pubkey. It is a pda of vault and authority",
2284
+ ],
2285
+ type: 'publicKey',
2286
+ },
2287
+ {
2288
+ name: 'authority',
2289
+ docs: [
2290
+ 'The authority is the address w permission to deposit/withdraw',
2291
+ ],
2292
+ type: 'publicKey',
2293
+ },
2294
+ {
2295
+ name: 'vaultShares',
2296
+ docs: [
2297
+ "share of vault owned by this depositor. vault_shares / vault.total_shares is depositor's ownership of vault_equity",
2298
+ ],
2299
+ type: 'u128',
2300
+ },
2301
+ {
2302
+ name: 'lastWithdrawRequest',
2303
+ docs: ['last withdraw request'],
2304
+ type: {
2305
+ defined: 'WithdrawRequest',
2306
+ },
2307
+ },
2308
+ {
2309
+ name: 'lastValidTs',
2310
+ docs: ['creation ts of vault depositor'],
2311
+ type: 'i64',
2312
+ },
2313
+ {
2314
+ name: 'netDeposits',
2315
+ docs: ['lifetime net deposits of vault depositor for the vault'],
2316
+ type: 'i64',
2317
+ },
2318
+ {
2319
+ name: 'totalDeposits',
2320
+ docs: ['lifetime total deposits'],
2321
+ type: 'u64',
2322
+ },
2323
+ {
2324
+ name: 'totalWithdraws',
2325
+ docs: ['lifetime total withdraws'],
2326
+ type: 'u64',
2327
+ },
2328
+ {
2329
+ name: 'cumulativeProfitShareAmount',
2330
+ docs: [
2331
+ 'the token amount of gains the vault depositor has paid performance fees on',
2332
+ ],
2333
+ type: 'i64',
2334
+ },
2335
+ {
2336
+ name: 'profitShareFeePaid',
2337
+ type: 'u64',
2338
+ },
2339
+ {
2340
+ name: 'vaultSharesBase',
2341
+ docs: ['the exponent for vault_shares decimal places'],
2342
+ type: 'u32',
2343
+ },
2344
+ {
2345
+ name: 'padding1',
2346
+ type: 'u32',
2347
+ },
2348
+ {
2349
+ name: 'padding',
2350
+ type: {
2351
+ array: ['u64', 8],
2352
+ },
2353
+ },
2354
+ ],
2355
+ },
2356
+ },
2357
+ {
2358
+ name: 'vault',
2359
+ type: {
2360
+ kind: 'struct',
2361
+ fields: [
2362
+ {
2363
+ name: 'name',
2364
+ docs: [
2365
+ 'The name of the vault. Vault pubkey is derived from this name.',
2366
+ ],
2367
+ type: {
2368
+ array: ['u8', 32],
2369
+ },
2370
+ },
2371
+ {
2372
+ name: 'pubkey',
2373
+ docs: [
2374
+ "The vault's pubkey. It is a pda of name and also used as the authority for drift user",
2375
+ ],
2376
+ type: 'publicKey',
2377
+ },
2378
+ {
2379
+ name: 'manager',
2380
+ docs: [
2381
+ 'The manager of the vault who has ability to update vault params',
2382
+ ],
2383
+ type: 'publicKey',
2384
+ },
2385
+ {
2386
+ name: 'tokenAccount',
2387
+ docs: [
2388
+ 'The vaults token account. Used to receive tokens between deposits and withdrawals',
2389
+ ],
2390
+ type: 'publicKey',
2391
+ },
2392
+ {
2393
+ name: 'userStats',
2394
+ docs: ['The drift user stats account for the vault'],
2395
+ type: 'publicKey',
2396
+ },
2397
+ {
2398
+ name: 'user',
2399
+ docs: ['The drift user account for the vault'],
2400
+ type: 'publicKey',
2401
+ },
2402
+ {
2403
+ name: 'delegate',
2404
+ docs: [
2405
+ 'The vaults designated delegate for drift user account',
2406
+ 'Can differ from actual user delegate if vault is in liquidation',
2407
+ ],
2408
+ type: 'publicKey',
2409
+ },
2410
+ {
2411
+ name: 'liquidationDelegate',
2412
+ docs: ['The delegate handling liquidation for depositor'],
2413
+ type: 'publicKey',
2414
+ },
2415
+ {
2416
+ name: 'userShares',
2417
+ docs: [
2418
+ 'the sum of all shares held by the users (vault depositors)',
2419
+ ],
2420
+ type: 'u128',
2421
+ },
2422
+ {
2423
+ name: 'totalShares',
2424
+ docs: ['the sum of all shares (including vault manager)'],
2425
+ type: 'u128',
2426
+ },
2427
+ {
2428
+ name: 'lastFeeUpdateTs',
2429
+ docs: ['last fee update unix timestamp'],
2430
+ type: 'i64',
2431
+ },
2432
+ {
2433
+ name: 'liquidationStartTs',
2434
+ docs: ['When the liquidation start'],
2435
+ type: 'i64',
2436
+ },
2437
+ {
2438
+ name: 'redeemPeriod',
2439
+ docs: [
2440
+ 'the period (in seconds) that a vault depositor must wait after requesting a withdraw to complete withdraw',
2441
+ ],
2442
+ type: 'i64',
2443
+ },
2444
+ {
2445
+ name: 'totalWithdrawRequested',
2446
+ docs: ['the sum of all outstanding withdraw requests'],
2447
+ type: 'u64',
2448
+ },
2449
+ {
2450
+ name: 'maxTokens',
2451
+ docs: [
2452
+ 'max token capacity, once hit/passed vault will reject new deposits (updateable)',
2453
+ ],
2454
+ type: 'u64',
2455
+ },
2456
+ {
2457
+ name: 'managementFee',
2458
+ docs: ['manager fee'],
2459
+ type: 'i64',
2460
+ },
2461
+ {
2462
+ name: 'initTs',
2463
+ docs: ['timestamp vault initialized'],
2464
+ type: 'i64',
2465
+ },
2466
+ {
2467
+ name: 'netDeposits',
2468
+ docs: ['the net deposits for the vault'],
2469
+ type: 'i64',
2470
+ },
2471
+ {
2472
+ name: 'managerNetDeposits',
2473
+ docs: ['the net deposits for the vault manager'],
2474
+ type: 'i64',
2475
+ },
2476
+ {
2477
+ name: 'totalDeposits',
2478
+ docs: ['total deposits'],
2479
+ type: 'u64',
2480
+ },
2481
+ {
2482
+ name: 'totalWithdraws',
2483
+ docs: ['total withdraws'],
2484
+ type: 'u64',
2485
+ },
2486
+ {
2487
+ name: 'managerTotalDeposits',
2488
+ docs: ['total deposits for the vault manager'],
2489
+ type: 'u64',
2490
+ },
2491
+ {
2492
+ name: 'managerTotalWithdraws',
2493
+ docs: ['total withdraws for the vault manager'],
2494
+ type: 'u64',
2495
+ },
2496
+ {
2497
+ name: 'managerTotalFee',
2498
+ docs: ['total mgmt fee charged by vault manager'],
2499
+ type: 'i64',
2500
+ },
2501
+ {
2502
+ name: 'managerTotalProfitShare',
2503
+ docs: ['total profit share charged by vault manager'],
2504
+ type: 'u64',
2505
+ },
2506
+ {
2507
+ name: 'minDepositAmount',
2508
+ docs: ['the minimum deposit amount'],
2509
+ type: 'u64',
2510
+ },
2511
+ {
2512
+ name: 'lastManagerWithdrawRequest',
2513
+ type: {
2514
+ defined: 'WithdrawRequest',
2515
+ },
2516
+ },
2517
+ {
2518
+ name: 'sharesBase',
2519
+ docs: [
2520
+ 'the base 10 exponent of the shares (given massive share inflation can occur at near zero vault equity)',
2521
+ ],
2522
+ type: 'u32',
2523
+ },
2524
+ {
2525
+ name: 'profitShare',
2526
+ docs: [
2527
+ "percentage of gains for vault admin upon depositor's realize/withdraw: PERCENTAGE_PRECISION",
2528
+ ],
2529
+ type: 'u32',
2530
+ },
2531
+ {
2532
+ name: 'hurdleRate',
2533
+ docs: [
2534
+ 'vault admin only collect incentive fees during periods when returns are higher than this amount: PERCENTAGE_PRECISION',
2535
+ ],
2536
+ type: 'u32',
2537
+ },
2538
+ {
2539
+ name: 'spotMarketIndex',
2540
+ docs: [
2541
+ 'The spot market index the vault deposits into/withdraws from',
2542
+ ],
2543
+ type: 'u16',
2544
+ },
2545
+ {
2546
+ name: 'bump',
2547
+ docs: ['The bump for the vault pda'],
2548
+ type: 'u8',
2549
+ },
2550
+ {
2551
+ name: 'permissioned',
2552
+ docs: ['Whether or not anybody can be a depositor'],
2553
+ type: 'bool',
2554
+ },
2555
+ {
2556
+ name: 'padding',
2557
+ type: {
2558
+ array: ['u64', 8],
2559
+ },
2560
+ },
2561
+ ],
2562
+ },
2563
+ },
2564
+ ],
2565
+ types: [
2566
+ {
2567
+ name: 'VaultParams',
2568
+ type: {
2569
+ kind: 'struct',
2570
+ fields: [
2571
+ {
2572
+ name: 'name',
2573
+ type: {
2574
+ array: ['u8', 32],
2575
+ },
2576
+ },
2577
+ {
2578
+ name: 'redeemPeriod',
2579
+ type: 'i64',
2580
+ },
2581
+ {
2582
+ name: 'maxTokens',
2583
+ type: 'u64',
2584
+ },
2585
+ {
2586
+ name: 'managementFee',
2587
+ type: 'i64',
2588
+ },
2589
+ {
2590
+ name: 'minDepositAmount',
2591
+ type: 'u64',
2592
+ },
2593
+ {
2594
+ name: 'profitShare',
2595
+ type: 'u32',
2596
+ },
2597
+ {
2598
+ name: 'hurdleRate',
2599
+ type: 'u32',
2600
+ },
2601
+ {
2602
+ name: 'spotMarketIndex',
2603
+ type: 'u16',
2604
+ },
2605
+ {
2606
+ name: 'permissioned',
2607
+ type: 'bool',
2608
+ },
2609
+ ],
2610
+ },
2611
+ },
2612
+ {
2613
+ name: 'UpdateVaultParams',
2614
+ type: {
2615
+ kind: 'struct',
2616
+ fields: [
2617
+ {
2618
+ name: 'redeemPeriod',
2619
+ type: {
2620
+ option: 'i64',
2621
+ },
2622
+ },
2623
+ {
2624
+ name: 'maxTokens',
2625
+ type: {
2626
+ option: 'u64',
2627
+ },
2628
+ },
2629
+ {
2630
+ name: 'managementFee',
2631
+ type: {
2632
+ option: 'i64',
2633
+ },
2634
+ },
2635
+ {
2636
+ name: 'minDepositAmount',
2637
+ type: {
2638
+ option: 'u64',
2639
+ },
2640
+ },
2641
+ {
2642
+ name: 'profitShare',
2643
+ type: {
2644
+ option: 'u32',
2645
+ },
2646
+ },
2647
+ {
2648
+ name: 'hurdleRate',
2649
+ type: {
2650
+ option: 'u32',
2651
+ },
2652
+ },
2653
+ {
2654
+ name: 'permissioned',
2655
+ type: {
2656
+ option: 'bool',
2657
+ },
2658
+ },
2659
+ ],
2660
+ },
2661
+ },
2662
+ {
2663
+ name: 'WithdrawRequest',
2664
+ type: {
2665
+ kind: 'struct',
2666
+ fields: [
2667
+ {
2668
+ name: 'shares',
2669
+ docs: ['request shares of vault withdraw'],
2670
+ type: 'u128',
2671
+ },
2672
+ {
2673
+ name: 'value',
2674
+ docs: [
2675
+ 'requested value (in vault spot_market_index) of shares for withdraw',
2676
+ ],
2677
+ type: 'u64',
2678
+ },
2679
+ {
2680
+ name: 'ts',
2681
+ docs: ['request ts of vault withdraw'],
2682
+ type: 'i64',
2683
+ },
2684
+ ],
2685
+ },
2686
+ },
2687
+ {
2688
+ name: 'VaultDepositorAction',
2689
+ type: {
2690
+ kind: 'enum',
2691
+ variants: [
2692
+ {
2693
+ name: 'Deposit',
2694
+ },
2695
+ {
2696
+ name: 'WithdrawRequest',
2697
+ },
2698
+ {
2699
+ name: 'CancelWithdrawRequest',
2700
+ },
2701
+ {
2702
+ name: 'Withdraw',
2703
+ },
2704
+ {
2705
+ name: 'FeePayment',
2706
+ },
2707
+ ],
2708
+ },
2709
+ },
2710
+ {
2711
+ name: 'WithdrawUnit',
2712
+ type: {
2713
+ kind: 'enum',
2714
+ variants: [
2715
+ {
2716
+ name: 'Shares',
2717
+ },
2718
+ {
2719
+ name: 'Token',
2720
+ },
2721
+ {
2722
+ name: 'SharesPercent',
2723
+ },
2724
+ ],
2725
+ },
2726
+ },
2727
+ ],
2728
+ events: [
2729
+ {
2730
+ name: 'VaultRecord',
2731
+ fields: [
2732
+ {
2733
+ name: 'ts',
2734
+ type: 'i64',
2735
+ index: false,
2736
+ },
2737
+ {
2738
+ name: 'spotMarketIndex',
2739
+ type: 'u16',
2740
+ index: false,
2741
+ },
2742
+ {
2743
+ name: 'vaultEquityBefore',
2744
+ type: 'u64',
2745
+ index: false,
2746
+ },
2747
+ ],
2748
+ },
2749
+ {
2750
+ name: 'VaultDepositorRecord',
2751
+ fields: [
2752
+ {
2753
+ name: 'ts',
2754
+ type: 'i64',
2755
+ index: false,
2756
+ },
2757
+ {
2758
+ name: 'vault',
2759
+ type: 'publicKey',
2760
+ index: false,
2761
+ },
2762
+ {
2763
+ name: 'depositorAuthority',
2764
+ type: 'publicKey',
2765
+ index: false,
2766
+ },
2767
+ {
2768
+ name: 'action',
2769
+ type: {
2770
+ defined: 'VaultDepositorAction',
2771
+ },
2772
+ index: false,
2773
+ },
2774
+ {
2775
+ name: 'amount',
2776
+ type: 'u64',
2777
+ index: false,
2778
+ },
2779
+ {
2780
+ name: 'spotMarketIndex',
2781
+ type: 'u16',
2782
+ index: false,
2783
+ },
2784
+ {
2785
+ name: 'vaultSharesBefore',
2786
+ type: 'u128',
2787
+ index: false,
2788
+ },
2789
+ {
2790
+ name: 'vaultSharesAfter',
2791
+ type: 'u128',
2792
+ index: false,
2793
+ },
2794
+ {
2795
+ name: 'vaultEquityBefore',
2796
+ type: 'u64',
2797
+ index: false,
2798
+ },
2799
+ {
2800
+ name: 'userVaultSharesBefore',
2801
+ type: 'u128',
2802
+ index: false,
2803
+ },
2804
+ {
2805
+ name: 'totalVaultSharesBefore',
2806
+ type: 'u128',
2807
+ index: false,
2808
+ },
2809
+ {
2810
+ name: 'userVaultSharesAfter',
2811
+ type: 'u128',
2812
+ index: false,
2813
+ },
2814
+ {
2815
+ name: 'totalVaultSharesAfter',
2816
+ type: 'u128',
2817
+ index: false,
2818
+ },
2819
+ {
2820
+ name: 'profitShare',
2821
+ type: 'u64',
2822
+ index: false,
2823
+ },
2824
+ {
2825
+ name: 'managementFee',
2826
+ type: 'i64',
2827
+ index: false,
2828
+ },
2829
+ {
2830
+ name: 'managementFeeShares',
2831
+ type: 'i64',
2832
+ index: false,
2833
+ },
2834
+ ],
2835
+ },
2836
+ ],
2837
+ errors: [
2838
+ {
2839
+ code: 6000,
2840
+ name: 'Default',
2841
+ msg: 'Default',
2842
+ },
2843
+ {
2844
+ code: 6001,
2845
+ name: 'InvalidVaultRebase',
2846
+ msg: 'InvalidVaultRebase',
2847
+ },
2848
+ {
2849
+ code: 6002,
2850
+ name: 'InvalidVaultSharesDetected',
2851
+ msg: 'InvalidVaultSharesDetected',
2852
+ },
2853
+ {
2854
+ code: 6003,
2855
+ name: 'CannotWithdrawBeforeRedeemPeriodEnd',
2856
+ msg: 'CannotWithdrawBeforeRedeemPeriodEnd',
2857
+ },
2858
+ {
2859
+ code: 6004,
2860
+ name: 'InvalidVaultWithdraw',
2861
+ msg: 'InvalidVaultWithdraw',
2862
+ },
2863
+ {
2864
+ code: 6005,
2865
+ name: 'InsufficientVaultShares',
2866
+ msg: 'InsufficientVaultShares',
2867
+ },
2868
+ {
2869
+ code: 6006,
2870
+ name: 'InvalidVaultWithdrawSize',
2871
+ msg: 'InvalidVaultWithdrawSize',
2872
+ },
2873
+ {
2874
+ code: 6007,
2875
+ name: 'InvalidVaultForNewDepositors',
2876
+ msg: 'InvalidVaultForNewDepositors',
2877
+ },
2878
+ {
2879
+ code: 6008,
2880
+ name: 'VaultWithdrawRequestInProgress',
2881
+ msg: 'VaultWithdrawRequestInProgress',
2882
+ },
2883
+ {
2884
+ code: 6009,
2885
+ name: 'VaultIsAtCapacity',
2886
+ msg: 'VaultIsAtCapacity',
2887
+ },
2888
+ {
2889
+ code: 6010,
2890
+ name: 'InvalidVaultDepositorInitialization',
2891
+ msg: 'InvalidVaultDepositorInitialization',
2892
+ },
2893
+ {
2894
+ code: 6011,
2895
+ name: 'DelegateNotAvailableForLiquidation',
2896
+ msg: 'DelegateNotAvailableForLiquidation',
2897
+ },
2898
+ {
2899
+ code: 6012,
2900
+ name: 'InvalidEquityValue',
2901
+ msg: 'InvalidEquityValue',
2902
+ },
2903
+ {
2904
+ code: 6013,
2905
+ name: 'VaultInLiquidation',
2906
+ msg: 'VaultInLiquidation',
2907
+ },
2908
+ {
2909
+ code: 6014,
2910
+ name: 'DriftError',
2911
+ msg: 'DriftError',
2912
+ },
2913
+ {
2914
+ code: 6015,
2915
+ name: 'InvalidVaultInitialization',
2916
+ msg: 'InvalidVaultInitialization',
2917
+ },
2918
+ {
2919
+ code: 6016,
2920
+ name: 'InvalidVaultUpdate',
2921
+ msg: 'InvalidVaultUpdate',
2922
+ },
2923
+ {
2924
+ code: 6017,
2925
+ name: 'PermissionedVault',
2926
+ msg: 'PermissionedVault',
2927
+ },
2928
+ {
2929
+ code: 6018,
2930
+ name: 'WithdrawInProgress',
2931
+ msg: 'WithdrawInProgress',
2932
+ },
2933
+ {
2934
+ code: 6019,
2935
+ name: 'SharesPercentTooLarge',
2936
+ msg: 'SharesPercentTooLarge',
2937
+ },
2938
+ {
2939
+ code: 6020,
2940
+ name: 'InvalidVaultDeposit',
2941
+ msg: 'InvalidVaultDeposit',
2942
+ },
2943
+ {
2944
+ code: 6021,
2945
+ name: 'OngoingLiquidation',
2946
+ msg: 'OngoingLiquidation',
2947
+ },
2948
+ ],
2949
+ };