@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,1475 @@
1
+ export declare 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
+ export declare const IDL: DriftVaults;