@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,1477 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IDL = void 0;
4
+ exports.IDL = {
5
+ version: '0.1.0',
6
+ name: 'drift_vaults',
7
+ instructions: [
8
+ {
9
+ name: 'initializeVault',
10
+ accounts: [
11
+ {
12
+ name: 'vault',
13
+ isMut: true,
14
+ isSigner: false,
15
+ },
16
+ {
17
+ name: 'tokenAccount',
18
+ isMut: true,
19
+ isSigner: false,
20
+ },
21
+ {
22
+ name: 'driftUserStats',
23
+ isMut: true,
24
+ isSigner: false,
25
+ },
26
+ {
27
+ name: 'driftUser',
28
+ isMut: true,
29
+ isSigner: false,
30
+ },
31
+ {
32
+ name: 'driftState',
33
+ isMut: true,
34
+ isSigner: false,
35
+ },
36
+ {
37
+ name: 'driftSpotMarket',
38
+ isMut: false,
39
+ isSigner: false,
40
+ },
41
+ {
42
+ name: 'driftSpotMarketMint',
43
+ isMut: false,
44
+ isSigner: false,
45
+ },
46
+ {
47
+ name: 'manager',
48
+ isMut: false,
49
+ isSigner: true,
50
+ },
51
+ {
52
+ name: 'payer',
53
+ isMut: true,
54
+ isSigner: true,
55
+ },
56
+ {
57
+ name: 'rent',
58
+ isMut: false,
59
+ isSigner: false,
60
+ },
61
+ {
62
+ name: 'systemProgram',
63
+ isMut: false,
64
+ isSigner: false,
65
+ },
66
+ {
67
+ name: 'driftProgram',
68
+ isMut: false,
69
+ isSigner: false,
70
+ },
71
+ {
72
+ name: 'tokenProgram',
73
+ isMut: false,
74
+ isSigner: false,
75
+ },
76
+ ],
77
+ args: [
78
+ {
79
+ name: 'params',
80
+ type: {
81
+ defined: 'VaultParams',
82
+ },
83
+ },
84
+ ],
85
+ },
86
+ {
87
+ name: 'updateDelegate',
88
+ accounts: [
89
+ {
90
+ name: 'vault',
91
+ isMut: true,
92
+ isSigner: false,
93
+ },
94
+ {
95
+ name: 'manager',
96
+ isMut: false,
97
+ isSigner: true,
98
+ },
99
+ {
100
+ name: 'driftUser',
101
+ isMut: true,
102
+ isSigner: false,
103
+ },
104
+ {
105
+ name: 'driftProgram',
106
+ isMut: false,
107
+ isSigner: false,
108
+ },
109
+ ],
110
+ args: [
111
+ {
112
+ name: 'delegate',
113
+ type: 'publicKey',
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ name: 'updateMarginTradingEnabled',
119
+ accounts: [
120
+ {
121
+ name: 'vault',
122
+ isMut: true,
123
+ isSigner: false,
124
+ },
125
+ {
126
+ name: 'manager',
127
+ isMut: false,
128
+ isSigner: true,
129
+ },
130
+ {
131
+ name: 'driftUser',
132
+ isMut: true,
133
+ isSigner: false,
134
+ },
135
+ {
136
+ name: 'driftProgram',
137
+ isMut: false,
138
+ isSigner: false,
139
+ },
140
+ ],
141
+ args: [
142
+ {
143
+ name: 'enabled',
144
+ type: 'bool',
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ name: 'updateVault',
150
+ accounts: [
151
+ {
152
+ name: 'vault',
153
+ isMut: true,
154
+ isSigner: false,
155
+ },
156
+ {
157
+ name: 'manager',
158
+ isMut: false,
159
+ isSigner: true,
160
+ },
161
+ ],
162
+ args: [
163
+ {
164
+ name: 'params',
165
+ type: {
166
+ defined: 'UpdateVaultParams',
167
+ },
168
+ },
169
+ ],
170
+ },
171
+ {
172
+ name: 'initializeVaultDepositor',
173
+ accounts: [
174
+ {
175
+ name: 'vault',
176
+ isMut: false,
177
+ isSigner: false,
178
+ },
179
+ {
180
+ name: 'vaultDepositor',
181
+ isMut: true,
182
+ isSigner: false,
183
+ },
184
+ {
185
+ name: 'authority',
186
+ isMut: false,
187
+ isSigner: false,
188
+ },
189
+ {
190
+ name: 'payer',
191
+ isMut: true,
192
+ isSigner: true,
193
+ },
194
+ {
195
+ name: 'rent',
196
+ isMut: false,
197
+ isSigner: false,
198
+ },
199
+ {
200
+ name: 'systemProgram',
201
+ isMut: false,
202
+ isSigner: false,
203
+ },
204
+ ],
205
+ args: [],
206
+ },
207
+ {
208
+ name: 'deposit',
209
+ accounts: [
210
+ {
211
+ name: 'vault',
212
+ isMut: true,
213
+ isSigner: false,
214
+ },
215
+ {
216
+ name: 'vaultDepositor',
217
+ isMut: true,
218
+ isSigner: false,
219
+ },
220
+ {
221
+ name: 'authority',
222
+ isMut: false,
223
+ isSigner: true,
224
+ },
225
+ {
226
+ name: 'vaultTokenAccount',
227
+ isMut: true,
228
+ isSigner: false,
229
+ },
230
+ {
231
+ name: 'driftUserStats',
232
+ isMut: true,
233
+ isSigner: false,
234
+ },
235
+ {
236
+ name: 'driftUser',
237
+ isMut: true,
238
+ isSigner: false,
239
+ },
240
+ {
241
+ name: 'driftState',
242
+ isMut: false,
243
+ isSigner: false,
244
+ },
245
+ {
246
+ name: 'driftSpotMarketVault',
247
+ isMut: true,
248
+ isSigner: false,
249
+ },
250
+ {
251
+ name: 'userTokenAccount',
252
+ isMut: true,
253
+ isSigner: false,
254
+ },
255
+ {
256
+ name: 'driftProgram',
257
+ isMut: false,
258
+ isSigner: false,
259
+ },
260
+ {
261
+ name: 'tokenProgram',
262
+ isMut: false,
263
+ isSigner: false,
264
+ },
265
+ ],
266
+ args: [
267
+ {
268
+ name: 'amount',
269
+ type: 'u64',
270
+ },
271
+ ],
272
+ },
273
+ {
274
+ name: 'requestWithdraw',
275
+ accounts: [
276
+ {
277
+ name: 'vault',
278
+ isMut: true,
279
+ isSigner: false,
280
+ },
281
+ {
282
+ name: 'vaultDepositor',
283
+ isMut: true,
284
+ isSigner: false,
285
+ },
286
+ {
287
+ name: 'authority',
288
+ isMut: false,
289
+ isSigner: true,
290
+ },
291
+ {
292
+ name: 'driftUserStats',
293
+ isMut: false,
294
+ isSigner: false,
295
+ },
296
+ {
297
+ name: 'driftUser',
298
+ isMut: false,
299
+ isSigner: false,
300
+ },
301
+ {
302
+ name: 'driftState',
303
+ isMut: false,
304
+ isSigner: false,
305
+ },
306
+ ],
307
+ args: [
308
+ {
309
+ name: 'withdrawAmount',
310
+ type: 'u64',
311
+ },
312
+ {
313
+ name: 'withdrawUnit',
314
+ type: {
315
+ defined: 'WithdrawUnit',
316
+ },
317
+ },
318
+ ],
319
+ },
320
+ {
321
+ name: 'cancelRequestWithdraw',
322
+ accounts: [
323
+ {
324
+ name: 'vault',
325
+ isMut: true,
326
+ isSigner: false,
327
+ },
328
+ {
329
+ name: 'vaultDepositor',
330
+ isMut: true,
331
+ isSigner: false,
332
+ },
333
+ {
334
+ name: 'authority',
335
+ isMut: false,
336
+ isSigner: true,
337
+ },
338
+ {
339
+ name: 'driftUserStats',
340
+ isMut: false,
341
+ isSigner: false,
342
+ },
343
+ {
344
+ name: 'driftUser',
345
+ isMut: false,
346
+ isSigner: false,
347
+ },
348
+ {
349
+ name: 'driftState',
350
+ isMut: false,
351
+ isSigner: false,
352
+ },
353
+ ],
354
+ args: [],
355
+ },
356
+ {
357
+ name: 'withdraw',
358
+ accounts: [
359
+ {
360
+ name: 'vault',
361
+ isMut: true,
362
+ isSigner: false,
363
+ },
364
+ {
365
+ name: 'vaultDepositor',
366
+ isMut: true,
367
+ isSigner: false,
368
+ },
369
+ {
370
+ name: 'authority',
371
+ isMut: false,
372
+ isSigner: true,
373
+ },
374
+ {
375
+ name: 'vaultTokenAccount',
376
+ isMut: true,
377
+ isSigner: false,
378
+ },
379
+ {
380
+ name: 'driftUserStats',
381
+ isMut: true,
382
+ isSigner: false,
383
+ },
384
+ {
385
+ name: 'driftUser',
386
+ isMut: true,
387
+ isSigner: false,
388
+ },
389
+ {
390
+ name: 'driftState',
391
+ isMut: false,
392
+ isSigner: false,
393
+ },
394
+ {
395
+ name: 'driftSpotMarketVault',
396
+ isMut: true,
397
+ isSigner: false,
398
+ },
399
+ {
400
+ name: 'driftSigner',
401
+ isMut: false,
402
+ isSigner: false,
403
+ },
404
+ {
405
+ name: 'userTokenAccount',
406
+ isMut: true,
407
+ isSigner: false,
408
+ },
409
+ {
410
+ name: 'driftProgram',
411
+ isMut: false,
412
+ isSigner: false,
413
+ },
414
+ {
415
+ name: 'tokenProgram',
416
+ isMut: false,
417
+ isSigner: false,
418
+ },
419
+ ],
420
+ args: [],
421
+ },
422
+ {
423
+ name: 'liquidate',
424
+ accounts: [
425
+ {
426
+ name: 'vault',
427
+ isMut: true,
428
+ isSigner: false,
429
+ },
430
+ {
431
+ name: 'vaultDepositor',
432
+ isMut: true,
433
+ isSigner: false,
434
+ },
435
+ {
436
+ name: 'authority',
437
+ isMut: false,
438
+ isSigner: true,
439
+ },
440
+ {
441
+ name: 'driftUserStats',
442
+ isMut: true,
443
+ isSigner: false,
444
+ },
445
+ {
446
+ name: 'driftUser',
447
+ isMut: true,
448
+ isSigner: false,
449
+ },
450
+ {
451
+ name: 'driftState',
452
+ isMut: false,
453
+ isSigner: false,
454
+ },
455
+ {
456
+ name: 'driftProgram',
457
+ isMut: false,
458
+ isSigner: false,
459
+ },
460
+ ],
461
+ args: [],
462
+ },
463
+ {
464
+ name: 'resetDelegate',
465
+ accounts: [
466
+ {
467
+ name: 'vault',
468
+ isMut: true,
469
+ isSigner: false,
470
+ },
471
+ {
472
+ name: 'authority',
473
+ isMut: false,
474
+ isSigner: true,
475
+ },
476
+ {
477
+ name: 'driftUser',
478
+ isMut: true,
479
+ isSigner: false,
480
+ },
481
+ {
482
+ name: 'driftProgram',
483
+ isMut: false,
484
+ isSigner: false,
485
+ },
486
+ ],
487
+ args: [],
488
+ },
489
+ {
490
+ name: 'managerDeposit',
491
+ accounts: [
492
+ {
493
+ name: 'vault',
494
+ isMut: true,
495
+ isSigner: false,
496
+ },
497
+ {
498
+ name: 'manager',
499
+ isMut: false,
500
+ isSigner: true,
501
+ },
502
+ {
503
+ name: 'vaultTokenAccount',
504
+ isMut: true,
505
+ isSigner: false,
506
+ },
507
+ {
508
+ name: 'driftUserStats',
509
+ isMut: true,
510
+ isSigner: false,
511
+ },
512
+ {
513
+ name: 'driftUser',
514
+ isMut: true,
515
+ isSigner: false,
516
+ },
517
+ {
518
+ name: 'driftState',
519
+ isMut: false,
520
+ isSigner: false,
521
+ },
522
+ {
523
+ name: 'driftSpotMarketVault',
524
+ isMut: true,
525
+ isSigner: false,
526
+ },
527
+ {
528
+ name: 'userTokenAccount',
529
+ isMut: true,
530
+ isSigner: false,
531
+ },
532
+ {
533
+ name: 'driftProgram',
534
+ isMut: false,
535
+ isSigner: false,
536
+ },
537
+ {
538
+ name: 'tokenProgram',
539
+ isMut: false,
540
+ isSigner: false,
541
+ },
542
+ ],
543
+ args: [
544
+ {
545
+ name: 'amount',
546
+ type: 'u64',
547
+ },
548
+ ],
549
+ },
550
+ {
551
+ name: 'managerRequestWithdraw',
552
+ accounts: [
553
+ {
554
+ name: 'vault',
555
+ isMut: true,
556
+ isSigner: false,
557
+ },
558
+ {
559
+ name: 'manager',
560
+ isMut: false,
561
+ isSigner: true,
562
+ },
563
+ {
564
+ name: 'driftUserStats',
565
+ isMut: false,
566
+ isSigner: false,
567
+ },
568
+ {
569
+ name: 'driftUser',
570
+ isMut: false,
571
+ isSigner: false,
572
+ },
573
+ {
574
+ name: 'driftState',
575
+ isMut: false,
576
+ isSigner: false,
577
+ },
578
+ ],
579
+ args: [
580
+ {
581
+ name: 'withdrawAmount',
582
+ type: 'u64',
583
+ },
584
+ {
585
+ name: 'withdrawUnit',
586
+ type: {
587
+ defined: 'WithdrawUnit',
588
+ },
589
+ },
590
+ ],
591
+ },
592
+ {
593
+ name: 'mangerCancelWithdrawRequest',
594
+ accounts: [
595
+ {
596
+ name: 'vault',
597
+ isMut: true,
598
+ isSigner: false,
599
+ },
600
+ {
601
+ name: 'manager',
602
+ isMut: false,
603
+ isSigner: true,
604
+ },
605
+ {
606
+ name: 'driftUserStats',
607
+ isMut: false,
608
+ isSigner: false,
609
+ },
610
+ {
611
+ name: 'driftUser',
612
+ isMut: false,
613
+ isSigner: false,
614
+ },
615
+ {
616
+ name: 'driftState',
617
+ isMut: false,
618
+ isSigner: false,
619
+ },
620
+ ],
621
+ args: [],
622
+ },
623
+ {
624
+ name: 'managerWithdraw',
625
+ accounts: [
626
+ {
627
+ name: 'vault',
628
+ isMut: true,
629
+ isSigner: false,
630
+ },
631
+ {
632
+ name: 'manager',
633
+ isMut: false,
634
+ isSigner: true,
635
+ },
636
+ {
637
+ name: 'vaultTokenAccount',
638
+ isMut: true,
639
+ isSigner: false,
640
+ },
641
+ {
642
+ name: 'driftUserStats',
643
+ isMut: true,
644
+ isSigner: false,
645
+ },
646
+ {
647
+ name: 'driftUser',
648
+ isMut: true,
649
+ isSigner: false,
650
+ },
651
+ {
652
+ name: 'driftState',
653
+ isMut: false,
654
+ isSigner: false,
655
+ },
656
+ {
657
+ name: 'driftSpotMarketVault',
658
+ isMut: true,
659
+ isSigner: false,
660
+ },
661
+ {
662
+ name: 'driftSigner',
663
+ isMut: false,
664
+ isSigner: false,
665
+ },
666
+ {
667
+ name: 'userTokenAccount',
668
+ isMut: true,
669
+ isSigner: false,
670
+ },
671
+ {
672
+ name: 'driftProgram',
673
+ isMut: false,
674
+ isSigner: false,
675
+ },
676
+ {
677
+ name: 'tokenProgram',
678
+ isMut: false,
679
+ isSigner: false,
680
+ },
681
+ ],
682
+ args: [],
683
+ },
684
+ {
685
+ name: 'applyProfitShare',
686
+ accounts: [
687
+ {
688
+ name: 'vault',
689
+ isMut: true,
690
+ isSigner: false,
691
+ },
692
+ {
693
+ name: 'vaultDepositor',
694
+ isMut: true,
695
+ isSigner: false,
696
+ },
697
+ {
698
+ name: 'manager',
699
+ isMut: false,
700
+ isSigner: true,
701
+ },
702
+ {
703
+ name: 'driftUserStats',
704
+ isMut: true,
705
+ isSigner: false,
706
+ },
707
+ {
708
+ name: 'driftUser',
709
+ isMut: true,
710
+ isSigner: false,
711
+ },
712
+ {
713
+ name: 'driftState',
714
+ isMut: false,
715
+ isSigner: false,
716
+ },
717
+ {
718
+ name: 'driftSigner',
719
+ isMut: false,
720
+ isSigner: false,
721
+ },
722
+ {
723
+ name: 'driftProgram',
724
+ isMut: false,
725
+ isSigner: false,
726
+ },
727
+ ],
728
+ args: [],
729
+ },
730
+ {
731
+ name: 'forceWithdraw',
732
+ accounts: [
733
+ {
734
+ name: 'vault',
735
+ isMut: true,
736
+ isSigner: false,
737
+ },
738
+ {
739
+ name: 'manager',
740
+ isMut: false,
741
+ isSigner: true,
742
+ },
743
+ {
744
+ name: 'vaultDepositor',
745
+ isMut: true,
746
+ isSigner: false,
747
+ },
748
+ {
749
+ name: 'vaultTokenAccount',
750
+ isMut: true,
751
+ isSigner: false,
752
+ },
753
+ {
754
+ name: 'driftUserStats',
755
+ isMut: true,
756
+ isSigner: false,
757
+ },
758
+ {
759
+ name: 'driftUser',
760
+ isMut: true,
761
+ isSigner: false,
762
+ },
763
+ {
764
+ name: 'driftState',
765
+ isMut: false,
766
+ isSigner: false,
767
+ },
768
+ {
769
+ name: 'driftSpotMarketVault',
770
+ isMut: true,
771
+ isSigner: false,
772
+ },
773
+ {
774
+ name: 'driftSigner',
775
+ isMut: false,
776
+ isSigner: false,
777
+ },
778
+ {
779
+ name: 'userTokenAccount',
780
+ isMut: true,
781
+ isSigner: false,
782
+ },
783
+ {
784
+ name: 'driftProgram',
785
+ isMut: false,
786
+ isSigner: false,
787
+ },
788
+ {
789
+ name: 'tokenProgram',
790
+ isMut: false,
791
+ isSigner: false,
792
+ },
793
+ ],
794
+ args: [],
795
+ },
796
+ ],
797
+ accounts: [
798
+ {
799
+ name: 'vaultDepositor',
800
+ type: {
801
+ kind: 'struct',
802
+ fields: [
803
+ {
804
+ name: 'vault',
805
+ docs: ['The vault deposited into'],
806
+ type: 'publicKey',
807
+ },
808
+ {
809
+ name: 'pubkey',
810
+ docs: [
811
+ "The vault depositor account's pubkey. It is a pda of vault and authority",
812
+ ],
813
+ type: 'publicKey',
814
+ },
815
+ {
816
+ name: 'authority',
817
+ docs: [
818
+ 'The authority is the address w permission to deposit/withdraw',
819
+ ],
820
+ type: 'publicKey',
821
+ },
822
+ {
823
+ name: 'vaultShares',
824
+ docs: [
825
+ "share of vault owned by this depositor. vault_shares / vault.total_shares is depositor's ownership of vault_equity",
826
+ ],
827
+ type: 'u128',
828
+ },
829
+ {
830
+ name: 'lastWithdrawRequest',
831
+ docs: ['last withdraw request'],
832
+ type: {
833
+ defined: 'WithdrawRequest',
834
+ },
835
+ },
836
+ {
837
+ name: 'lastValidTs',
838
+ docs: ['creation ts of vault depositor'],
839
+ type: 'i64',
840
+ },
841
+ {
842
+ name: 'netDeposits',
843
+ docs: ['lifetime net deposits of vault depositor for the vault'],
844
+ type: 'i64',
845
+ },
846
+ {
847
+ name: 'totalDeposits',
848
+ docs: ['lifetime total deposits'],
849
+ type: 'u64',
850
+ },
851
+ {
852
+ name: 'totalWithdraws',
853
+ docs: ['lifetime total withdraws'],
854
+ type: 'u64',
855
+ },
856
+ {
857
+ name: 'cumulativeProfitShareAmount',
858
+ docs: [
859
+ 'the token amount of gains the vault depositor has paid performance fees on',
860
+ ],
861
+ type: 'i64',
862
+ },
863
+ {
864
+ name: 'profitShareFeePaid',
865
+ type: 'u64',
866
+ },
867
+ {
868
+ name: 'vaultSharesBase',
869
+ docs: ['the exponent for vault_shares decimal places'],
870
+ type: 'u32',
871
+ },
872
+ {
873
+ name: 'padding1',
874
+ type: 'u32',
875
+ },
876
+ {
877
+ name: 'padding',
878
+ type: {
879
+ array: ['u64', 8],
880
+ },
881
+ },
882
+ ],
883
+ },
884
+ },
885
+ {
886
+ name: 'vault',
887
+ type: {
888
+ kind: 'struct',
889
+ fields: [
890
+ {
891
+ name: 'name',
892
+ docs: [
893
+ 'The name of the vault. Vault pubkey is derived from this name.',
894
+ ],
895
+ type: {
896
+ array: ['u8', 32],
897
+ },
898
+ },
899
+ {
900
+ name: 'pubkey',
901
+ docs: [
902
+ "The vault's pubkey. It is a pda of name and also used as the authority for drift user",
903
+ ],
904
+ type: 'publicKey',
905
+ },
906
+ {
907
+ name: 'manager',
908
+ docs: [
909
+ 'The manager of the vault who has ability to update vault params',
910
+ ],
911
+ type: 'publicKey',
912
+ },
913
+ {
914
+ name: 'tokenAccount',
915
+ docs: [
916
+ 'The vaults token account. Used to receive tokens between deposits and withdrawals',
917
+ ],
918
+ type: 'publicKey',
919
+ },
920
+ {
921
+ name: 'userStats',
922
+ docs: ['The drift user stats account for the vault'],
923
+ type: 'publicKey',
924
+ },
925
+ {
926
+ name: 'user',
927
+ docs: ['The drift user account for the vault'],
928
+ type: 'publicKey',
929
+ },
930
+ {
931
+ name: 'delegate',
932
+ docs: [
933
+ 'The vaults designated delegate for drift user account',
934
+ 'Can differ from actual user delegate if vault is in liquidation',
935
+ ],
936
+ type: 'publicKey',
937
+ },
938
+ {
939
+ name: 'liquidationDelegate',
940
+ docs: ['The delegate handling liquidation for depositor'],
941
+ type: 'publicKey',
942
+ },
943
+ {
944
+ name: 'userShares',
945
+ docs: [
946
+ 'the sum of all shares held by the users (vault depositors)',
947
+ ],
948
+ type: 'u128',
949
+ },
950
+ {
951
+ name: 'totalShares',
952
+ docs: ['the sum of all shares (including vault manager)'],
953
+ type: 'u128',
954
+ },
955
+ {
956
+ name: 'lastFeeUpdateTs',
957
+ docs: ['last fee update unix timestamp'],
958
+ type: 'i64',
959
+ },
960
+ {
961
+ name: 'liquidationStartTs',
962
+ docs: ['When the liquidation start'],
963
+ type: 'i64',
964
+ },
965
+ {
966
+ name: 'redeemPeriod',
967
+ docs: [
968
+ 'the period (in seconds) that a vault depositor must wait after requesting a withdraw to complete withdraw',
969
+ ],
970
+ type: 'i64',
971
+ },
972
+ {
973
+ name: 'totalWithdrawRequested',
974
+ docs: ['the sum of all outstanding withdraw requests'],
975
+ type: 'u64',
976
+ },
977
+ {
978
+ name: 'maxTokens',
979
+ docs: [
980
+ 'max token capacity, once hit/passed vault will reject new deposits (updateable)',
981
+ ],
982
+ type: 'u64',
983
+ },
984
+ {
985
+ name: 'managementFee',
986
+ docs: ['manager fee'],
987
+ type: 'i64',
988
+ },
989
+ {
990
+ name: 'initTs',
991
+ docs: ['timestamp vault initialized'],
992
+ type: 'i64',
993
+ },
994
+ {
995
+ name: 'netDeposits',
996
+ docs: ['the net deposits for the vault'],
997
+ type: 'i64',
998
+ },
999
+ {
1000
+ name: 'managerNetDeposits',
1001
+ docs: ['the net deposits for the vault manager'],
1002
+ type: 'i64',
1003
+ },
1004
+ {
1005
+ name: 'totalDeposits',
1006
+ docs: ['total deposits'],
1007
+ type: 'u64',
1008
+ },
1009
+ {
1010
+ name: 'totalWithdraws',
1011
+ docs: ['total withdraws'],
1012
+ type: 'u64',
1013
+ },
1014
+ {
1015
+ name: 'managerTotalDeposits',
1016
+ docs: ['total deposits for the vault manager'],
1017
+ type: 'u64',
1018
+ },
1019
+ {
1020
+ name: 'managerTotalWithdraws',
1021
+ docs: ['total withdraws for the vault manager'],
1022
+ type: 'u64',
1023
+ },
1024
+ {
1025
+ name: 'managerTotalFee',
1026
+ docs: ['total mgmt fee charged by vault manager'],
1027
+ type: 'i64',
1028
+ },
1029
+ {
1030
+ name: 'managerTotalProfitShare',
1031
+ docs: ['total profit share charged by vault manager'],
1032
+ type: 'u64',
1033
+ },
1034
+ {
1035
+ name: 'minDepositAmount',
1036
+ docs: ['the minimum deposit amount'],
1037
+ type: 'u64',
1038
+ },
1039
+ {
1040
+ name: 'lastManagerWithdrawRequest',
1041
+ type: {
1042
+ defined: 'WithdrawRequest',
1043
+ },
1044
+ },
1045
+ {
1046
+ name: 'sharesBase',
1047
+ docs: [
1048
+ 'the base 10 exponent of the shares (given massive share inflation can occur at near zero vault equity)',
1049
+ ],
1050
+ type: 'u32',
1051
+ },
1052
+ {
1053
+ name: 'profitShare',
1054
+ docs: [
1055
+ "percentage of gains for vault admin upon depositor's realize/withdraw: PERCENTAGE_PRECISION",
1056
+ ],
1057
+ type: 'u32',
1058
+ },
1059
+ {
1060
+ name: 'hurdleRate',
1061
+ docs: [
1062
+ 'vault admin only collect incentive fees during periods when returns are higher than this amount: PERCENTAGE_PRECISION',
1063
+ ],
1064
+ type: 'u32',
1065
+ },
1066
+ {
1067
+ name: 'spotMarketIndex',
1068
+ docs: [
1069
+ 'The spot market index the vault deposits into/withdraws from',
1070
+ ],
1071
+ type: 'u16',
1072
+ },
1073
+ {
1074
+ name: 'bump',
1075
+ docs: ['The bump for the vault pda'],
1076
+ type: 'u8',
1077
+ },
1078
+ {
1079
+ name: 'permissioned',
1080
+ docs: ['Whether or not anybody can be a depositor'],
1081
+ type: 'bool',
1082
+ },
1083
+ {
1084
+ name: 'padding',
1085
+ type: {
1086
+ array: ['u64', 8],
1087
+ },
1088
+ },
1089
+ ],
1090
+ },
1091
+ },
1092
+ ],
1093
+ types: [
1094
+ {
1095
+ name: 'VaultParams',
1096
+ type: {
1097
+ kind: 'struct',
1098
+ fields: [
1099
+ {
1100
+ name: 'name',
1101
+ type: {
1102
+ array: ['u8', 32],
1103
+ },
1104
+ },
1105
+ {
1106
+ name: 'redeemPeriod',
1107
+ type: 'i64',
1108
+ },
1109
+ {
1110
+ name: 'maxTokens',
1111
+ type: 'u64',
1112
+ },
1113
+ {
1114
+ name: 'managementFee',
1115
+ type: 'i64',
1116
+ },
1117
+ {
1118
+ name: 'minDepositAmount',
1119
+ type: 'u64',
1120
+ },
1121
+ {
1122
+ name: 'profitShare',
1123
+ type: 'u32',
1124
+ },
1125
+ {
1126
+ name: 'hurdleRate',
1127
+ type: 'u32',
1128
+ },
1129
+ {
1130
+ name: 'spotMarketIndex',
1131
+ type: 'u16',
1132
+ },
1133
+ {
1134
+ name: 'permissioned',
1135
+ type: 'bool',
1136
+ },
1137
+ ],
1138
+ },
1139
+ },
1140
+ {
1141
+ name: 'UpdateVaultParams',
1142
+ type: {
1143
+ kind: 'struct',
1144
+ fields: [
1145
+ {
1146
+ name: 'redeemPeriod',
1147
+ type: {
1148
+ option: 'i64',
1149
+ },
1150
+ },
1151
+ {
1152
+ name: 'maxTokens',
1153
+ type: {
1154
+ option: 'u64',
1155
+ },
1156
+ },
1157
+ {
1158
+ name: 'managementFee',
1159
+ type: {
1160
+ option: 'i64',
1161
+ },
1162
+ },
1163
+ {
1164
+ name: 'minDepositAmount',
1165
+ type: {
1166
+ option: 'u64',
1167
+ },
1168
+ },
1169
+ {
1170
+ name: 'profitShare',
1171
+ type: {
1172
+ option: 'u32',
1173
+ },
1174
+ },
1175
+ {
1176
+ name: 'hurdleRate',
1177
+ type: {
1178
+ option: 'u32',
1179
+ },
1180
+ },
1181
+ {
1182
+ name: 'permissioned',
1183
+ type: {
1184
+ option: 'bool',
1185
+ },
1186
+ },
1187
+ ],
1188
+ },
1189
+ },
1190
+ {
1191
+ name: 'WithdrawRequest',
1192
+ type: {
1193
+ kind: 'struct',
1194
+ fields: [
1195
+ {
1196
+ name: 'shares',
1197
+ docs: ['request shares of vault withdraw'],
1198
+ type: 'u128',
1199
+ },
1200
+ {
1201
+ name: 'value',
1202
+ docs: [
1203
+ 'requested value (in vault spot_market_index) of shares for withdraw',
1204
+ ],
1205
+ type: 'u64',
1206
+ },
1207
+ {
1208
+ name: 'ts',
1209
+ docs: ['request ts of vault withdraw'],
1210
+ type: 'i64',
1211
+ },
1212
+ ],
1213
+ },
1214
+ },
1215
+ {
1216
+ name: 'VaultDepositorAction',
1217
+ type: {
1218
+ kind: 'enum',
1219
+ variants: [
1220
+ {
1221
+ name: 'Deposit',
1222
+ },
1223
+ {
1224
+ name: 'WithdrawRequest',
1225
+ },
1226
+ {
1227
+ name: 'CancelWithdrawRequest',
1228
+ },
1229
+ {
1230
+ name: 'Withdraw',
1231
+ },
1232
+ {
1233
+ name: 'FeePayment',
1234
+ },
1235
+ ],
1236
+ },
1237
+ },
1238
+ {
1239
+ name: 'WithdrawUnit',
1240
+ type: {
1241
+ kind: 'enum',
1242
+ variants: [
1243
+ {
1244
+ name: 'Shares',
1245
+ },
1246
+ {
1247
+ name: 'Token',
1248
+ },
1249
+ {
1250
+ name: 'SharesPercent',
1251
+ },
1252
+ ],
1253
+ },
1254
+ },
1255
+ ],
1256
+ events: [
1257
+ {
1258
+ name: 'VaultRecord',
1259
+ fields: [
1260
+ {
1261
+ name: 'ts',
1262
+ type: 'i64',
1263
+ index: false,
1264
+ },
1265
+ {
1266
+ name: 'spotMarketIndex',
1267
+ type: 'u16',
1268
+ index: false,
1269
+ },
1270
+ {
1271
+ name: 'vaultEquityBefore',
1272
+ type: 'u64',
1273
+ index: false,
1274
+ },
1275
+ ],
1276
+ },
1277
+ {
1278
+ name: 'VaultDepositorRecord',
1279
+ fields: [
1280
+ {
1281
+ name: 'ts',
1282
+ type: 'i64',
1283
+ index: false,
1284
+ },
1285
+ {
1286
+ name: 'vault',
1287
+ type: 'publicKey',
1288
+ index: false,
1289
+ },
1290
+ {
1291
+ name: 'depositorAuthority',
1292
+ type: 'publicKey',
1293
+ index: false,
1294
+ },
1295
+ {
1296
+ name: 'action',
1297
+ type: {
1298
+ defined: 'VaultDepositorAction',
1299
+ },
1300
+ index: false,
1301
+ },
1302
+ {
1303
+ name: 'amount',
1304
+ type: 'u64',
1305
+ index: false,
1306
+ },
1307
+ {
1308
+ name: 'spotMarketIndex',
1309
+ type: 'u16',
1310
+ index: false,
1311
+ },
1312
+ {
1313
+ name: 'vaultSharesBefore',
1314
+ type: 'u128',
1315
+ index: false,
1316
+ },
1317
+ {
1318
+ name: 'vaultSharesAfter',
1319
+ type: 'u128',
1320
+ index: false,
1321
+ },
1322
+ {
1323
+ name: 'vaultEquityBefore',
1324
+ type: 'u64',
1325
+ index: false,
1326
+ },
1327
+ {
1328
+ name: 'userVaultSharesBefore',
1329
+ type: 'u128',
1330
+ index: false,
1331
+ },
1332
+ {
1333
+ name: 'totalVaultSharesBefore',
1334
+ type: 'u128',
1335
+ index: false,
1336
+ },
1337
+ {
1338
+ name: 'userVaultSharesAfter',
1339
+ type: 'u128',
1340
+ index: false,
1341
+ },
1342
+ {
1343
+ name: 'totalVaultSharesAfter',
1344
+ type: 'u128',
1345
+ index: false,
1346
+ },
1347
+ {
1348
+ name: 'profitShare',
1349
+ type: 'u64',
1350
+ index: false,
1351
+ },
1352
+ {
1353
+ name: 'managementFee',
1354
+ type: 'i64',
1355
+ index: false,
1356
+ },
1357
+ {
1358
+ name: 'managementFeeShares',
1359
+ type: 'i64',
1360
+ index: false,
1361
+ },
1362
+ ],
1363
+ },
1364
+ ],
1365
+ errors: [
1366
+ {
1367
+ code: 6000,
1368
+ name: 'Default',
1369
+ msg: 'Default',
1370
+ },
1371
+ {
1372
+ code: 6001,
1373
+ name: 'InvalidVaultRebase',
1374
+ msg: 'InvalidVaultRebase',
1375
+ },
1376
+ {
1377
+ code: 6002,
1378
+ name: 'InvalidVaultSharesDetected',
1379
+ msg: 'InvalidVaultSharesDetected',
1380
+ },
1381
+ {
1382
+ code: 6003,
1383
+ name: 'CannotWithdrawBeforeRedeemPeriodEnd',
1384
+ msg: 'CannotWithdrawBeforeRedeemPeriodEnd',
1385
+ },
1386
+ {
1387
+ code: 6004,
1388
+ name: 'InvalidVaultWithdraw',
1389
+ msg: 'InvalidVaultWithdraw',
1390
+ },
1391
+ {
1392
+ code: 6005,
1393
+ name: 'InsufficientVaultShares',
1394
+ msg: 'InsufficientVaultShares',
1395
+ },
1396
+ {
1397
+ code: 6006,
1398
+ name: 'InvalidVaultWithdrawSize',
1399
+ msg: 'InvalidVaultWithdrawSize',
1400
+ },
1401
+ {
1402
+ code: 6007,
1403
+ name: 'InvalidVaultForNewDepositors',
1404
+ msg: 'InvalidVaultForNewDepositors',
1405
+ },
1406
+ {
1407
+ code: 6008,
1408
+ name: 'VaultWithdrawRequestInProgress',
1409
+ msg: 'VaultWithdrawRequestInProgress',
1410
+ },
1411
+ {
1412
+ code: 6009,
1413
+ name: 'VaultIsAtCapacity',
1414
+ msg: 'VaultIsAtCapacity',
1415
+ },
1416
+ {
1417
+ code: 6010,
1418
+ name: 'InvalidVaultDepositorInitialization',
1419
+ msg: 'InvalidVaultDepositorInitialization',
1420
+ },
1421
+ {
1422
+ code: 6011,
1423
+ name: 'DelegateNotAvailableForLiquidation',
1424
+ msg: 'DelegateNotAvailableForLiquidation',
1425
+ },
1426
+ {
1427
+ code: 6012,
1428
+ name: 'InvalidEquityValue',
1429
+ msg: 'InvalidEquityValue',
1430
+ },
1431
+ {
1432
+ code: 6013,
1433
+ name: 'VaultInLiquidation',
1434
+ msg: 'VaultInLiquidation',
1435
+ },
1436
+ {
1437
+ code: 6014,
1438
+ name: 'DriftError',
1439
+ msg: 'DriftError',
1440
+ },
1441
+ {
1442
+ code: 6015,
1443
+ name: 'InvalidVaultInitialization',
1444
+ msg: 'InvalidVaultInitialization',
1445
+ },
1446
+ {
1447
+ code: 6016,
1448
+ name: 'InvalidVaultUpdate',
1449
+ msg: 'InvalidVaultUpdate',
1450
+ },
1451
+ {
1452
+ code: 6017,
1453
+ name: 'PermissionedVault',
1454
+ msg: 'PermissionedVault',
1455
+ },
1456
+ {
1457
+ code: 6018,
1458
+ name: 'WithdrawInProgress',
1459
+ msg: 'WithdrawInProgress',
1460
+ },
1461
+ {
1462
+ code: 6019,
1463
+ name: 'SharesPercentTooLarge',
1464
+ msg: 'SharesPercentTooLarge',
1465
+ },
1466
+ {
1467
+ code: 6020,
1468
+ name: 'InvalidVaultDeposit',
1469
+ msg: 'InvalidVaultDeposit',
1470
+ },
1471
+ {
1472
+ code: 6021,
1473
+ name: 'OngoingLiquidation',
1474
+ msg: 'OngoingLiquidation',
1475
+ },
1476
+ ],
1477
+ };