@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,1547 @@
1
+ {
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": [
803
+ "The vault deposited into"
804
+ ],
805
+ "type": "publicKey"
806
+ },
807
+ {
808
+ "name": "pubkey",
809
+ "docs": [
810
+ "The vault depositor account's pubkey. It is a pda of vault and authority"
811
+ ],
812
+ "type": "publicKey"
813
+ },
814
+ {
815
+ "name": "authority",
816
+ "docs": [
817
+ "The authority is the address w permission to deposit/withdraw"
818
+ ],
819
+ "type": "publicKey"
820
+ },
821
+ {
822
+ "name": "vaultShares",
823
+ "docs": [
824
+ "share of vault owned by this depositor. vault_shares / vault.total_shares is depositor's ownership of vault_equity"
825
+ ],
826
+ "type": "u128"
827
+ },
828
+ {
829
+ "name": "lastWithdrawRequest",
830
+ "docs": [
831
+ "last withdraw request"
832
+ ],
833
+ "type": {
834
+ "defined": "WithdrawRequest"
835
+ }
836
+ },
837
+ {
838
+ "name": "lastValidTs",
839
+ "docs": [
840
+ "creation ts of vault depositor"
841
+ ],
842
+ "type": "i64"
843
+ },
844
+ {
845
+ "name": "netDeposits",
846
+ "docs": [
847
+ "lifetime net deposits of vault depositor for the vault"
848
+ ],
849
+ "type": "i64"
850
+ },
851
+ {
852
+ "name": "totalDeposits",
853
+ "docs": [
854
+ "lifetime total deposits"
855
+ ],
856
+ "type": "u64"
857
+ },
858
+ {
859
+ "name": "totalWithdraws",
860
+ "docs": [
861
+ "lifetime total withdraws"
862
+ ],
863
+ "type": "u64"
864
+ },
865
+ {
866
+ "name": "cumulativeProfitShareAmount",
867
+ "docs": [
868
+ "the token amount of gains the vault depositor has paid performance fees on"
869
+ ],
870
+ "type": "i64"
871
+ },
872
+ {
873
+ "name": "profitShareFeePaid",
874
+ "type": "u64"
875
+ },
876
+ {
877
+ "name": "vaultSharesBase",
878
+ "docs": [
879
+ "the exponent for vault_shares decimal places"
880
+ ],
881
+ "type": "u32"
882
+ },
883
+ {
884
+ "name": "padding1",
885
+ "type": "u32"
886
+ },
887
+ {
888
+ "name": "padding",
889
+ "type": {
890
+ "array": [
891
+ "u64",
892
+ 8
893
+ ]
894
+ }
895
+ }
896
+ ]
897
+ }
898
+ },
899
+ {
900
+ "name": "Vault",
901
+ "type": {
902
+ "kind": "struct",
903
+ "fields": [
904
+ {
905
+ "name": "name",
906
+ "docs": [
907
+ "The name of the vault. Vault pubkey is derived from this name."
908
+ ],
909
+ "type": {
910
+ "array": [
911
+ "u8",
912
+ 32
913
+ ]
914
+ }
915
+ },
916
+ {
917
+ "name": "pubkey",
918
+ "docs": [
919
+ "The vault's pubkey. It is a pda of name and also used as the authority for drift user"
920
+ ],
921
+ "type": "publicKey"
922
+ },
923
+ {
924
+ "name": "manager",
925
+ "docs": [
926
+ "The manager of the vault who has ability to update vault params"
927
+ ],
928
+ "type": "publicKey"
929
+ },
930
+ {
931
+ "name": "tokenAccount",
932
+ "docs": [
933
+ "The vaults token account. Used to receive tokens between deposits and withdrawals"
934
+ ],
935
+ "type": "publicKey"
936
+ },
937
+ {
938
+ "name": "userStats",
939
+ "docs": [
940
+ "The drift user stats account for the vault"
941
+ ],
942
+ "type": "publicKey"
943
+ },
944
+ {
945
+ "name": "user",
946
+ "docs": [
947
+ "The drift user account for the vault"
948
+ ],
949
+ "type": "publicKey"
950
+ },
951
+ {
952
+ "name": "delegate",
953
+ "docs": [
954
+ "The vaults designated delegate for drift user account",
955
+ "Can differ from actual user delegate if vault is in liquidation"
956
+ ],
957
+ "type": "publicKey"
958
+ },
959
+ {
960
+ "name": "liquidationDelegate",
961
+ "docs": [
962
+ "The delegate handling liquidation for depositor"
963
+ ],
964
+ "type": "publicKey"
965
+ },
966
+ {
967
+ "name": "userShares",
968
+ "docs": [
969
+ "the sum of all shares held by the users (vault depositors)"
970
+ ],
971
+ "type": "u128"
972
+ },
973
+ {
974
+ "name": "totalShares",
975
+ "docs": [
976
+ "the sum of all shares (including vault manager)"
977
+ ],
978
+ "type": "u128"
979
+ },
980
+ {
981
+ "name": "lastFeeUpdateTs",
982
+ "docs": [
983
+ "last fee update unix timestamp"
984
+ ],
985
+ "type": "i64"
986
+ },
987
+ {
988
+ "name": "liquidationStartTs",
989
+ "docs": [
990
+ "When the liquidation start"
991
+ ],
992
+ "type": "i64"
993
+ },
994
+ {
995
+ "name": "redeemPeriod",
996
+ "docs": [
997
+ "the period (in seconds) that a vault depositor must wait after requesting a withdraw to complete withdraw"
998
+ ],
999
+ "type": "i64"
1000
+ },
1001
+ {
1002
+ "name": "totalWithdrawRequested",
1003
+ "docs": [
1004
+ "the sum of all outstanding withdraw requests"
1005
+ ],
1006
+ "type": "u64"
1007
+ },
1008
+ {
1009
+ "name": "maxTokens",
1010
+ "docs": [
1011
+ "max token capacity, once hit/passed vault will reject new deposits (updateable)"
1012
+ ],
1013
+ "type": "u64"
1014
+ },
1015
+ {
1016
+ "name": "managementFee",
1017
+ "docs": [
1018
+ "manager fee"
1019
+ ],
1020
+ "type": "i64"
1021
+ },
1022
+ {
1023
+ "name": "initTs",
1024
+ "docs": [
1025
+ "timestamp vault initialized"
1026
+ ],
1027
+ "type": "i64"
1028
+ },
1029
+ {
1030
+ "name": "netDeposits",
1031
+ "docs": [
1032
+ "the net deposits for the vault"
1033
+ ],
1034
+ "type": "i64"
1035
+ },
1036
+ {
1037
+ "name": "managerNetDeposits",
1038
+ "docs": [
1039
+ "the net deposits for the vault manager"
1040
+ ],
1041
+ "type": "i64"
1042
+ },
1043
+ {
1044
+ "name": "totalDeposits",
1045
+ "docs": [
1046
+ "total deposits"
1047
+ ],
1048
+ "type": "u64"
1049
+ },
1050
+ {
1051
+ "name": "totalWithdraws",
1052
+ "docs": [
1053
+ "total withdraws"
1054
+ ],
1055
+ "type": "u64"
1056
+ },
1057
+ {
1058
+ "name": "managerTotalDeposits",
1059
+ "docs": [
1060
+ "total deposits for the vault manager"
1061
+ ],
1062
+ "type": "u64"
1063
+ },
1064
+ {
1065
+ "name": "managerTotalWithdraws",
1066
+ "docs": [
1067
+ "total withdraws for the vault manager"
1068
+ ],
1069
+ "type": "u64"
1070
+ },
1071
+ {
1072
+ "name": "managerTotalFee",
1073
+ "docs": [
1074
+ "total mgmt fee charged by vault manager"
1075
+ ],
1076
+ "type": "i64"
1077
+ },
1078
+ {
1079
+ "name": "managerTotalProfitShare",
1080
+ "docs": [
1081
+ "total profit share charged by vault manager"
1082
+ ],
1083
+ "type": "u64"
1084
+ },
1085
+ {
1086
+ "name": "minDepositAmount",
1087
+ "docs": [
1088
+ "the minimum deposit amount"
1089
+ ],
1090
+ "type": "u64"
1091
+ },
1092
+ {
1093
+ "name": "lastManagerWithdrawRequest",
1094
+ "type": {
1095
+ "defined": "WithdrawRequest"
1096
+ }
1097
+ },
1098
+ {
1099
+ "name": "sharesBase",
1100
+ "docs": [
1101
+ "the base 10 exponent of the shares (given massive share inflation can occur at near zero vault equity)"
1102
+ ],
1103
+ "type": "u32"
1104
+ },
1105
+ {
1106
+ "name": "profitShare",
1107
+ "docs": [
1108
+ "percentage of gains for vault admin upon depositor's realize/withdraw: PERCENTAGE_PRECISION"
1109
+ ],
1110
+ "type": "u32"
1111
+ },
1112
+ {
1113
+ "name": "hurdleRate",
1114
+ "docs": [
1115
+ "vault admin only collect incentive fees during periods when returns are higher than this amount: PERCENTAGE_PRECISION"
1116
+ ],
1117
+ "type": "u32"
1118
+ },
1119
+ {
1120
+ "name": "spotMarketIndex",
1121
+ "docs": [
1122
+ "The spot market index the vault deposits into/withdraws from"
1123
+ ],
1124
+ "type": "u16"
1125
+ },
1126
+ {
1127
+ "name": "bump",
1128
+ "docs": [
1129
+ "The bump for the vault pda"
1130
+ ],
1131
+ "type": "u8"
1132
+ },
1133
+ {
1134
+ "name": "permissioned",
1135
+ "docs": [
1136
+ "Whether or not anybody can be a depositor"
1137
+ ],
1138
+ "type": "bool"
1139
+ },
1140
+ {
1141
+ "name": "padding",
1142
+ "type": {
1143
+ "array": [
1144
+ "u64",
1145
+ 8
1146
+ ]
1147
+ }
1148
+ }
1149
+ ]
1150
+ }
1151
+ }
1152
+ ],
1153
+ "types": [
1154
+ {
1155
+ "name": "VaultParams",
1156
+ "type": {
1157
+ "kind": "struct",
1158
+ "fields": [
1159
+ {
1160
+ "name": "name",
1161
+ "type": {
1162
+ "array": [
1163
+ "u8",
1164
+ 32
1165
+ ]
1166
+ }
1167
+ },
1168
+ {
1169
+ "name": "redeemPeriod",
1170
+ "type": "i64"
1171
+ },
1172
+ {
1173
+ "name": "maxTokens",
1174
+ "type": "u64"
1175
+ },
1176
+ {
1177
+ "name": "managementFee",
1178
+ "type": "i64"
1179
+ },
1180
+ {
1181
+ "name": "minDepositAmount",
1182
+ "type": "u64"
1183
+ },
1184
+ {
1185
+ "name": "profitShare",
1186
+ "type": "u32"
1187
+ },
1188
+ {
1189
+ "name": "hurdleRate",
1190
+ "type": "u32"
1191
+ },
1192
+ {
1193
+ "name": "spotMarketIndex",
1194
+ "type": "u16"
1195
+ },
1196
+ {
1197
+ "name": "permissioned",
1198
+ "type": "bool"
1199
+ }
1200
+ ]
1201
+ }
1202
+ },
1203
+ {
1204
+ "name": "UpdateVaultParams",
1205
+ "type": {
1206
+ "kind": "struct",
1207
+ "fields": [
1208
+ {
1209
+ "name": "redeemPeriod",
1210
+ "type": {
1211
+ "option": "i64"
1212
+ }
1213
+ },
1214
+ {
1215
+ "name": "maxTokens",
1216
+ "type": {
1217
+ "option": "u64"
1218
+ }
1219
+ },
1220
+ {
1221
+ "name": "managementFee",
1222
+ "type": {
1223
+ "option": "i64"
1224
+ }
1225
+ },
1226
+ {
1227
+ "name": "minDepositAmount",
1228
+ "type": {
1229
+ "option": "u64"
1230
+ }
1231
+ },
1232
+ {
1233
+ "name": "profitShare",
1234
+ "type": {
1235
+ "option": "u32"
1236
+ }
1237
+ },
1238
+ {
1239
+ "name": "hurdleRate",
1240
+ "type": {
1241
+ "option": "u32"
1242
+ }
1243
+ },
1244
+ {
1245
+ "name": "permissioned",
1246
+ "type": {
1247
+ "option": "bool"
1248
+ }
1249
+ }
1250
+ ]
1251
+ }
1252
+ },
1253
+ {
1254
+ "name": "WithdrawRequest",
1255
+ "type": {
1256
+ "kind": "struct",
1257
+ "fields": [
1258
+ {
1259
+ "name": "shares",
1260
+ "docs": [
1261
+ "request shares of vault withdraw"
1262
+ ],
1263
+ "type": "u128"
1264
+ },
1265
+ {
1266
+ "name": "value",
1267
+ "docs": [
1268
+ "requested value (in vault spot_market_index) of shares for withdraw"
1269
+ ],
1270
+ "type": "u64"
1271
+ },
1272
+ {
1273
+ "name": "ts",
1274
+ "docs": [
1275
+ "request ts of vault withdraw"
1276
+ ],
1277
+ "type": "i64"
1278
+ }
1279
+ ]
1280
+ }
1281
+ },
1282
+ {
1283
+ "name": "VaultDepositorAction",
1284
+ "type": {
1285
+ "kind": "enum",
1286
+ "variants": [
1287
+ {
1288
+ "name": "Deposit"
1289
+ },
1290
+ {
1291
+ "name": "WithdrawRequest"
1292
+ },
1293
+ {
1294
+ "name": "CancelWithdrawRequest"
1295
+ },
1296
+ {
1297
+ "name": "Withdraw"
1298
+ },
1299
+ {
1300
+ "name": "FeePayment"
1301
+ }
1302
+ ]
1303
+ }
1304
+ },
1305
+ {
1306
+ "name": "WithdrawUnit",
1307
+ "type": {
1308
+ "kind": "enum",
1309
+ "variants": [
1310
+ {
1311
+ "name": "Shares"
1312
+ },
1313
+ {
1314
+ "name": "Token"
1315
+ },
1316
+ {
1317
+ "name": "SharesPercent"
1318
+ }
1319
+ ]
1320
+ }
1321
+ }
1322
+ ],
1323
+ "events": [
1324
+ {
1325
+ "name": "VaultRecord",
1326
+ "fields": [
1327
+ {
1328
+ "name": "ts",
1329
+ "type": "i64",
1330
+ "index": false
1331
+ },
1332
+ {
1333
+ "name": "spotMarketIndex",
1334
+ "type": "u16",
1335
+ "index": false
1336
+ },
1337
+ {
1338
+ "name": "vaultEquityBefore",
1339
+ "type": "u64",
1340
+ "index": false
1341
+ }
1342
+ ]
1343
+ },
1344
+ {
1345
+ "name": "VaultDepositorRecord",
1346
+ "fields": [
1347
+ {
1348
+ "name": "ts",
1349
+ "type": "i64",
1350
+ "index": false
1351
+ },
1352
+ {
1353
+ "name": "vault",
1354
+ "type": "publicKey",
1355
+ "index": false
1356
+ },
1357
+ {
1358
+ "name": "depositorAuthority",
1359
+ "type": "publicKey",
1360
+ "index": false
1361
+ },
1362
+ {
1363
+ "name": "action",
1364
+ "type": {
1365
+ "defined": "VaultDepositorAction"
1366
+ },
1367
+ "index": false
1368
+ },
1369
+ {
1370
+ "name": "amount",
1371
+ "type": "u64",
1372
+ "index": false
1373
+ },
1374
+ {
1375
+ "name": "spotMarketIndex",
1376
+ "type": "u16",
1377
+ "index": false
1378
+ },
1379
+ {
1380
+ "name": "vaultSharesBefore",
1381
+ "type": "u128",
1382
+ "index": false
1383
+ },
1384
+ {
1385
+ "name": "vaultSharesAfter",
1386
+ "type": "u128",
1387
+ "index": false
1388
+ },
1389
+ {
1390
+ "name": "vaultEquityBefore",
1391
+ "type": "u64",
1392
+ "index": false
1393
+ },
1394
+ {
1395
+ "name": "userVaultSharesBefore",
1396
+ "type": "u128",
1397
+ "index": false
1398
+ },
1399
+ {
1400
+ "name": "totalVaultSharesBefore",
1401
+ "type": "u128",
1402
+ "index": false
1403
+ },
1404
+ {
1405
+ "name": "userVaultSharesAfter",
1406
+ "type": "u128",
1407
+ "index": false
1408
+ },
1409
+ {
1410
+ "name": "totalVaultSharesAfter",
1411
+ "type": "u128",
1412
+ "index": false
1413
+ },
1414
+ {
1415
+ "name": "profitShare",
1416
+ "type": "u64",
1417
+ "index": false
1418
+ },
1419
+ {
1420
+ "name": "managementFee",
1421
+ "type": "i64",
1422
+ "index": false
1423
+ },
1424
+ {
1425
+ "name": "managementFeeShares",
1426
+ "type": "i64",
1427
+ "index": false
1428
+ }
1429
+ ]
1430
+ }
1431
+ ],
1432
+ "errors": [
1433
+ {
1434
+ "code": 6000,
1435
+ "name": "Default",
1436
+ "msg": "Default"
1437
+ },
1438
+ {
1439
+ "code": 6001,
1440
+ "name": "InvalidVaultRebase",
1441
+ "msg": "InvalidVaultRebase"
1442
+ },
1443
+ {
1444
+ "code": 6002,
1445
+ "name": "InvalidVaultSharesDetected",
1446
+ "msg": "InvalidVaultSharesDetected"
1447
+ },
1448
+ {
1449
+ "code": 6003,
1450
+ "name": "CannotWithdrawBeforeRedeemPeriodEnd",
1451
+ "msg": "CannotWithdrawBeforeRedeemPeriodEnd"
1452
+ },
1453
+ {
1454
+ "code": 6004,
1455
+ "name": "InvalidVaultWithdraw",
1456
+ "msg": "InvalidVaultWithdraw"
1457
+ },
1458
+ {
1459
+ "code": 6005,
1460
+ "name": "InsufficientVaultShares",
1461
+ "msg": "InsufficientVaultShares"
1462
+ },
1463
+ {
1464
+ "code": 6006,
1465
+ "name": "InvalidVaultWithdrawSize",
1466
+ "msg": "InvalidVaultWithdrawSize"
1467
+ },
1468
+ {
1469
+ "code": 6007,
1470
+ "name": "InvalidVaultForNewDepositors",
1471
+ "msg": "InvalidVaultForNewDepositors"
1472
+ },
1473
+ {
1474
+ "code": 6008,
1475
+ "name": "VaultWithdrawRequestInProgress",
1476
+ "msg": "VaultWithdrawRequestInProgress"
1477
+ },
1478
+ {
1479
+ "code": 6009,
1480
+ "name": "VaultIsAtCapacity",
1481
+ "msg": "VaultIsAtCapacity"
1482
+ },
1483
+ {
1484
+ "code": 6010,
1485
+ "name": "InvalidVaultDepositorInitialization",
1486
+ "msg": "InvalidVaultDepositorInitialization"
1487
+ },
1488
+ {
1489
+ "code": 6011,
1490
+ "name": "DelegateNotAvailableForLiquidation",
1491
+ "msg": "DelegateNotAvailableForLiquidation"
1492
+ },
1493
+ {
1494
+ "code": 6012,
1495
+ "name": "InvalidEquityValue",
1496
+ "msg": "InvalidEquityValue"
1497
+ },
1498
+ {
1499
+ "code": 6013,
1500
+ "name": "VaultInLiquidation",
1501
+ "msg": "VaultInLiquidation"
1502
+ },
1503
+ {
1504
+ "code": 6014,
1505
+ "name": "DriftError",
1506
+ "msg": "DriftError"
1507
+ },
1508
+ {
1509
+ "code": 6015,
1510
+ "name": "InvalidVaultInitialization",
1511
+ "msg": "InvalidVaultInitialization"
1512
+ },
1513
+ {
1514
+ "code": 6016,
1515
+ "name": "InvalidVaultUpdate",
1516
+ "msg": "InvalidVaultUpdate"
1517
+ },
1518
+ {
1519
+ "code": 6017,
1520
+ "name": "PermissionedVault",
1521
+ "msg": "PermissionedVault"
1522
+ },
1523
+ {
1524
+ "code": 6018,
1525
+ "name": "WithdrawInProgress",
1526
+ "msg": "WithdrawInProgress"
1527
+ },
1528
+ {
1529
+ "code": 6019,
1530
+ "name": "SharesPercentTooLarge",
1531
+ "msg": "SharesPercentTooLarge"
1532
+ },
1533
+ {
1534
+ "code": 6020,
1535
+ "name": "InvalidVaultDeposit",
1536
+ "msg": "InvalidVaultDeposit"
1537
+ },
1538
+ {
1539
+ "code": 6021,
1540
+ "name": "OngoingLiquidation",
1541
+ "msg": "OngoingLiquidation"
1542
+ }
1543
+ ],
1544
+ "metadata": {
1545
+ "address": "vAuLTsyrvSfZRuRB3XgvkPwNGgYSs9YRYymVebLKoxR"
1546
+ }
1547
+ }