@drift-labs/vaults-sdk 0.1.531 → 0.1.532
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.
- package/cli/cli.ts +6 -0
- package/cli/commands/applyProfitShare.ts +14 -16
- package/cli/commands/forceWithdrawAll.ts +101 -0
- package/cli/commands/index.ts +1 -0
- package/cli/utils.ts +2 -0
- package/lib/addresses.d.ts +2 -0
- package/lib/addresses.js +16 -0
- package/lib/types/drift_vaults.d.ts +402 -51
- package/lib/types/drift_vaults.js +402 -51
- package/lib/utils.d.ts +2 -1
- package/lib/utils.js +20 -1
- package/lib/vaultClient.d.ts +31 -11
- package/lib/vaultClient.js +244 -55
- package/package.json +2 -2
- package/src/addresses.ts +30 -0
- package/src/idl/drift_vaults.json +1265 -207
- package/src/types/drift_vaults.ts +811 -109
- package/src/utils.ts +37 -1
- package/src/vaultClient.ts +456 -79
|
@@ -312,6 +312,177 @@ export type DriftVaults = {
|
|
|
312
312
|
];
|
|
313
313
|
args: [];
|
|
314
314
|
},
|
|
315
|
+
{
|
|
316
|
+
name: 'initializeTokenizedVaultDepositor';
|
|
317
|
+
accounts: [
|
|
318
|
+
{
|
|
319
|
+
name: 'vault';
|
|
320
|
+
isMut: false;
|
|
321
|
+
isSigner: false;
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: 'vaultDepositor';
|
|
325
|
+
isMut: true;
|
|
326
|
+
isSigner: false;
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
name: 'mintAccount';
|
|
330
|
+
isMut: true;
|
|
331
|
+
isSigner: false;
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
name: 'metadataAccount';
|
|
335
|
+
isMut: true;
|
|
336
|
+
isSigner: false;
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: 'payer';
|
|
340
|
+
isMut: true;
|
|
341
|
+
isSigner: true;
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
name: 'tokenProgram';
|
|
345
|
+
isMut: false;
|
|
346
|
+
isSigner: false;
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
name: 'tokenMetadataProgram';
|
|
350
|
+
isMut: false;
|
|
351
|
+
isSigner: false;
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
name: 'rent';
|
|
355
|
+
isMut: false;
|
|
356
|
+
isSigner: false;
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
name: 'systemProgram';
|
|
360
|
+
isMut: false;
|
|
361
|
+
isSigner: false;
|
|
362
|
+
}
|
|
363
|
+
];
|
|
364
|
+
args: [
|
|
365
|
+
{
|
|
366
|
+
name: 'params';
|
|
367
|
+
type: {
|
|
368
|
+
defined: 'InitializeTokenizedVaultDepositorParams';
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
];
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
name: 'tokenizeShares';
|
|
375
|
+
accounts: [
|
|
376
|
+
{
|
|
377
|
+
name: 'vault';
|
|
378
|
+
isMut: true;
|
|
379
|
+
isSigner: false;
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
name: 'vaultDepositor';
|
|
383
|
+
isMut: true;
|
|
384
|
+
isSigner: false;
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
name: 'authority';
|
|
388
|
+
isMut: false;
|
|
389
|
+
isSigner: true;
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
name: 'tokenizedVaultDepositor';
|
|
393
|
+
isMut: true;
|
|
394
|
+
isSigner: false;
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
name: 'mint';
|
|
398
|
+
isMut: true;
|
|
399
|
+
isSigner: false;
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
name: 'userTokenAccount';
|
|
403
|
+
isMut: false;
|
|
404
|
+
isSigner: false;
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
name: 'driftUser';
|
|
408
|
+
isMut: true;
|
|
409
|
+
isSigner: false;
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
name: 'tokenProgram';
|
|
413
|
+
isMut: false;
|
|
414
|
+
isSigner: false;
|
|
415
|
+
}
|
|
416
|
+
];
|
|
417
|
+
args: [
|
|
418
|
+
{
|
|
419
|
+
name: 'amount';
|
|
420
|
+
type: 'u64';
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
name: 'unit';
|
|
424
|
+
type: {
|
|
425
|
+
defined: 'WithdrawUnit';
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
];
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
name: 'redeemTokens';
|
|
432
|
+
accounts: [
|
|
433
|
+
{
|
|
434
|
+
name: 'vault';
|
|
435
|
+
isMut: true;
|
|
436
|
+
isSigner: false;
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
name: 'vaultDepositor';
|
|
440
|
+
isMut: true;
|
|
441
|
+
isSigner: false;
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
name: 'authority';
|
|
445
|
+
isMut: false;
|
|
446
|
+
isSigner: true;
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
name: 'tokenizedVaultDepositor';
|
|
450
|
+
isMut: true;
|
|
451
|
+
isSigner: false;
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
name: 'mint';
|
|
455
|
+
isMut: true;
|
|
456
|
+
isSigner: false;
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
name: 'userTokenAccount';
|
|
460
|
+
isMut: true;
|
|
461
|
+
isSigner: false;
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
name: 'vaultTokenAccount';
|
|
465
|
+
isMut: true;
|
|
466
|
+
isSigner: false;
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
name: 'driftUser';
|
|
470
|
+
isMut: true;
|
|
471
|
+
isSigner: false;
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
name: 'tokenProgram';
|
|
475
|
+
isMut: false;
|
|
476
|
+
isSigner: false;
|
|
477
|
+
}
|
|
478
|
+
];
|
|
479
|
+
args: [
|
|
480
|
+
{
|
|
481
|
+
name: 'tokensToBurn';
|
|
482
|
+
type: 'u64';
|
|
483
|
+
}
|
|
484
|
+
];
|
|
485
|
+
},
|
|
315
486
|
{
|
|
316
487
|
name: 'deposit';
|
|
317
488
|
accounts: [
|
|
@@ -835,6 +1006,48 @@ export type DriftVaults = {
|
|
|
835
1006
|
];
|
|
836
1007
|
args: [];
|
|
837
1008
|
},
|
|
1009
|
+
{
|
|
1010
|
+
name: 'applyRebase';
|
|
1011
|
+
accounts: [
|
|
1012
|
+
{
|
|
1013
|
+
name: 'vault';
|
|
1014
|
+
isMut: true;
|
|
1015
|
+
isSigner: false;
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
name: 'vaultDepositor';
|
|
1019
|
+
isMut: true;
|
|
1020
|
+
isSigner: false;
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
name: 'driftUser';
|
|
1024
|
+
isMut: true;
|
|
1025
|
+
isSigner: false;
|
|
1026
|
+
}
|
|
1027
|
+
];
|
|
1028
|
+
args: [];
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
name: 'applyRebaseTokenizedDepositor';
|
|
1032
|
+
accounts: [
|
|
1033
|
+
{
|
|
1034
|
+
name: 'vault';
|
|
1035
|
+
isMut: true;
|
|
1036
|
+
isSigner: false;
|
|
1037
|
+
},
|
|
1038
|
+
{
|
|
1039
|
+
name: 'tokenizedVaultDepositor';
|
|
1040
|
+
isMut: true;
|
|
1041
|
+
isSigner: false;
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
name: 'driftUser';
|
|
1045
|
+
isMut: true;
|
|
1046
|
+
isSigner: false;
|
|
1047
|
+
}
|
|
1048
|
+
];
|
|
1049
|
+
args: [];
|
|
1050
|
+
},
|
|
838
1051
|
{
|
|
839
1052
|
name: 'forceWithdraw';
|
|
840
1053
|
accounts: [
|
|
@@ -962,57 +1175,6 @@ export type DriftVaults = {
|
|
|
962
1175
|
}
|
|
963
1176
|
];
|
|
964
1177
|
},
|
|
965
|
-
{
|
|
966
|
-
name: 'initializeCompetitor';
|
|
967
|
-
accounts: [
|
|
968
|
-
{
|
|
969
|
-
name: 'vault';
|
|
970
|
-
isMut: true;
|
|
971
|
-
isSigner: false;
|
|
972
|
-
},
|
|
973
|
-
{
|
|
974
|
-
name: 'manager';
|
|
975
|
-
isMut: false;
|
|
976
|
-
isSigner: true;
|
|
977
|
-
},
|
|
978
|
-
{
|
|
979
|
-
name: 'payer';
|
|
980
|
-
isMut: true;
|
|
981
|
-
isSigner: true;
|
|
982
|
-
},
|
|
983
|
-
{
|
|
984
|
-
name: 'rent';
|
|
985
|
-
isMut: false;
|
|
986
|
-
isSigner: false;
|
|
987
|
-
},
|
|
988
|
-
{
|
|
989
|
-
name: 'systemProgram';
|
|
990
|
-
isMut: false;
|
|
991
|
-
isSigner: false;
|
|
992
|
-
},
|
|
993
|
-
{
|
|
994
|
-
name: 'competitor';
|
|
995
|
-
isMut: true;
|
|
996
|
-
isSigner: false;
|
|
997
|
-
},
|
|
998
|
-
{
|
|
999
|
-
name: 'driftCompetitions';
|
|
1000
|
-
isMut: true;
|
|
1001
|
-
isSigner: false;
|
|
1002
|
-
},
|
|
1003
|
-
{
|
|
1004
|
-
name: 'driftUserStats';
|
|
1005
|
-
isMut: true;
|
|
1006
|
-
isSigner: false;
|
|
1007
|
-
},
|
|
1008
|
-
{
|
|
1009
|
-
name: 'driftCompetitionsProgram';
|
|
1010
|
-
isMut: false;
|
|
1011
|
-
isSigner: false;
|
|
1012
|
-
}
|
|
1013
|
-
];
|
|
1014
|
-
args: [];
|
|
1015
|
-
},
|
|
1016
1178
|
{
|
|
1017
1179
|
name: 'protocolRequestWithdraw';
|
|
1018
1180
|
accounts: [
|
|
@@ -1164,6 +1326,105 @@ export type DriftVaults = {
|
|
|
1164
1326
|
}
|
|
1165
1327
|
];
|
|
1166
1328
|
accounts: [
|
|
1329
|
+
{
|
|
1330
|
+
name: 'tokenizedVaultDepositor';
|
|
1331
|
+
type: {
|
|
1332
|
+
kind: 'struct';
|
|
1333
|
+
fields: [
|
|
1334
|
+
{
|
|
1335
|
+
name: 'vault';
|
|
1336
|
+
docs: ['The vault deposited into'];
|
|
1337
|
+
type: 'publicKey';
|
|
1338
|
+
},
|
|
1339
|
+
{
|
|
1340
|
+
name: 'pubkey';
|
|
1341
|
+
docs: [
|
|
1342
|
+
"The vault depositor account's pubkey. It is a pda of vault"
|
|
1343
|
+
];
|
|
1344
|
+
type: 'publicKey';
|
|
1345
|
+
},
|
|
1346
|
+
{
|
|
1347
|
+
name: 'mint';
|
|
1348
|
+
docs: [
|
|
1349
|
+
'The token mint for tokenized shares owned by this VaultDepositor'
|
|
1350
|
+
];
|
|
1351
|
+
type: 'publicKey';
|
|
1352
|
+
},
|
|
1353
|
+
{
|
|
1354
|
+
name: 'vaultShares';
|
|
1355
|
+
docs: [
|
|
1356
|
+
"share of vault owned by this depositor. vault_shares / vault.total_shares is depositor's ownership of vault_equity"
|
|
1357
|
+
];
|
|
1358
|
+
type: 'u128';
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
name: 'lastVaultShares';
|
|
1362
|
+
docs: [
|
|
1363
|
+
'stores the vault_shares from the most recent liquidity event (redeem or issuance) before a spl token',
|
|
1364
|
+
'CPI is done, used to track invariants'
|
|
1365
|
+
];
|
|
1366
|
+
type: 'u128';
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
name: 'lastValidTs';
|
|
1370
|
+
docs: ['creation ts of vault depositor'];
|
|
1371
|
+
type: 'i64';
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
name: 'netDeposits';
|
|
1375
|
+
docs: ['lifetime net deposits of vault depositor for the vault'];
|
|
1376
|
+
type: 'i64';
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
name: 'totalDeposits';
|
|
1380
|
+
docs: ['lifetime total deposits'];
|
|
1381
|
+
type: 'u64';
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
name: 'totalWithdraws';
|
|
1385
|
+
docs: ['lifetime total withdraws'];
|
|
1386
|
+
type: 'u64';
|
|
1387
|
+
},
|
|
1388
|
+
{
|
|
1389
|
+
name: 'cumulativeProfitShareAmount';
|
|
1390
|
+
docs: [
|
|
1391
|
+
'the token amount of gains the vault depositor has paid performance fees on'
|
|
1392
|
+
];
|
|
1393
|
+
type: 'i64';
|
|
1394
|
+
},
|
|
1395
|
+
{
|
|
1396
|
+
name: 'profitShareFeePaid';
|
|
1397
|
+
type: 'u64';
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
name: 'vaultSharesBase';
|
|
1401
|
+
docs: [
|
|
1402
|
+
'The exponent for vault_shares decimal places at the time the tokenized vault depositor was initialized.',
|
|
1403
|
+
'If the vault undergoes a rebase, this TokenizedVaultDepositor can no longer issue new tokens, only redeem',
|
|
1404
|
+
'is possible.'
|
|
1405
|
+
];
|
|
1406
|
+
type: 'u32';
|
|
1407
|
+
},
|
|
1408
|
+
{
|
|
1409
|
+
name: 'bump';
|
|
1410
|
+
docs: ['The bump for the vault pda'];
|
|
1411
|
+
type: 'u8';
|
|
1412
|
+
},
|
|
1413
|
+
{
|
|
1414
|
+
name: 'padding1';
|
|
1415
|
+
type: {
|
|
1416
|
+
array: ['u8', 3];
|
|
1417
|
+
};
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
name: 'padding';
|
|
1421
|
+
type: {
|
|
1422
|
+
array: ['u64', 10];
|
|
1423
|
+
};
|
|
1424
|
+
}
|
|
1425
|
+
];
|
|
1426
|
+
};
|
|
1427
|
+
},
|
|
1167
1428
|
{
|
|
1168
1429
|
name: 'vaultDepositor';
|
|
1169
1430
|
type: {
|
|
@@ -1554,6 +1815,30 @@ export type DriftVaults = {
|
|
|
1554
1815
|
}
|
|
1555
1816
|
];
|
|
1556
1817
|
types: [
|
|
1818
|
+
{
|
|
1819
|
+
name: 'InitializeTokenizedVaultDepositorParams';
|
|
1820
|
+
type: {
|
|
1821
|
+
kind: 'struct';
|
|
1822
|
+
fields: [
|
|
1823
|
+
{
|
|
1824
|
+
name: 'tokenName';
|
|
1825
|
+
type: 'string';
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
name: 'tokenSymbol';
|
|
1829
|
+
type: 'string';
|
|
1830
|
+
},
|
|
1831
|
+
{
|
|
1832
|
+
name: 'tokenUri';
|
|
1833
|
+
type: 'string';
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
name: 'decimals';
|
|
1837
|
+
type: 'u8';
|
|
1838
|
+
}
|
|
1839
|
+
];
|
|
1840
|
+
};
|
|
1841
|
+
},
|
|
1557
1842
|
{
|
|
1558
1843
|
name: 'VaultWithProtocolParams';
|
|
1559
1844
|
type: {
|
|
@@ -1786,6 +2071,12 @@ export type DriftVaults = {
|
|
|
1786
2071
|
},
|
|
1787
2072
|
{
|
|
1788
2073
|
name: 'FeePayment';
|
|
2074
|
+
},
|
|
2075
|
+
{
|
|
2076
|
+
name: 'TokenizeShares';
|
|
2077
|
+
},
|
|
2078
|
+
{
|
|
2079
|
+
name: 'RedeemTokens';
|
|
1789
2080
|
}
|
|
1790
2081
|
];
|
|
1791
2082
|
};
|
|
@@ -2027,6 +2318,61 @@ export type DriftVaults = {
|
|
|
2027
2318
|
index: false;
|
|
2028
2319
|
}
|
|
2029
2320
|
];
|
|
2321
|
+
},
|
|
2322
|
+
{
|
|
2323
|
+
name: 'ShareTransferRecord';
|
|
2324
|
+
fields: [
|
|
2325
|
+
{
|
|
2326
|
+
name: 'ts';
|
|
2327
|
+
type: 'i64';
|
|
2328
|
+
index: false;
|
|
2329
|
+
},
|
|
2330
|
+
{
|
|
2331
|
+
name: 'vault';
|
|
2332
|
+
type: 'publicKey';
|
|
2333
|
+
index: false;
|
|
2334
|
+
},
|
|
2335
|
+
{
|
|
2336
|
+
name: 'fromVaultDepositor';
|
|
2337
|
+
type: 'publicKey';
|
|
2338
|
+
index: false;
|
|
2339
|
+
},
|
|
2340
|
+
{
|
|
2341
|
+
name: 'toVaultDepositor';
|
|
2342
|
+
type: 'publicKey';
|
|
2343
|
+
index: false;
|
|
2344
|
+
},
|
|
2345
|
+
{
|
|
2346
|
+
name: 'shares';
|
|
2347
|
+
type: 'u128';
|
|
2348
|
+
index: false;
|
|
2349
|
+
},
|
|
2350
|
+
{
|
|
2351
|
+
name: 'value';
|
|
2352
|
+
type: 'u64';
|
|
2353
|
+
index: false;
|
|
2354
|
+
},
|
|
2355
|
+
{
|
|
2356
|
+
name: 'fromDepositorSharesBefore';
|
|
2357
|
+
type: 'u128';
|
|
2358
|
+
index: false;
|
|
2359
|
+
},
|
|
2360
|
+
{
|
|
2361
|
+
name: 'fromDepositorSharesAfter';
|
|
2362
|
+
type: 'u128';
|
|
2363
|
+
index: false;
|
|
2364
|
+
},
|
|
2365
|
+
{
|
|
2366
|
+
name: 'toDepositorSharesBefore';
|
|
2367
|
+
type: 'u128';
|
|
2368
|
+
index: false;
|
|
2369
|
+
},
|
|
2370
|
+
{
|
|
2371
|
+
name: 'toDepositorSharesAfter';
|
|
2372
|
+
type: 'u128';
|
|
2373
|
+
index: false;
|
|
2374
|
+
}
|
|
2375
|
+
];
|
|
2030
2376
|
}
|
|
2031
2377
|
];
|
|
2032
2378
|
errors: [
|
|
@@ -2144,6 +2490,11 @@ export type DriftVaults = {
|
|
|
2144
2490
|
code: 6022;
|
|
2145
2491
|
name: 'VaultProtocolMissing';
|
|
2146
2492
|
msg: 'VaultProtocolMissing';
|
|
2493
|
+
},
|
|
2494
|
+
{
|
|
2495
|
+
code: 6023;
|
|
2496
|
+
name: 'InvalidTokenization';
|
|
2497
|
+
msg: 'InvalidTokenization';
|
|
2147
2498
|
}
|
|
2148
2499
|
];
|
|
2149
2500
|
};
|