@drift-labs/vaults-sdk 0.4.32 → 0.4.33
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/lib/constants/index.d.ts +3 -0
- package/lib/constants/index.js +6 -1
- package/lib/math/vaultDepositor.d.ts +4 -1
- package/lib/math/vaultDepositor.js +75 -0
- package/lib/types/drift_vaults.d.ts +207 -5
- package/lib/types/drift_vaults.js +207 -5
- package/lib/types/types.d.ts +26 -2
- package/lib/types/types.js +6 -1
- package/lib/vaultClient.d.ts +24 -4
- package/lib/vaultClient.js +325 -464
- package/package.json +1 -1
- package/src/constants/index.ts +8 -1
- package/src/idl/drift_vaults.json +215 -5
- package/src/math/vaultDepositor.ts +122 -1
- package/src/types/drift_vaults.ts +414 -10
- package/src/types/types.ts +28 -5
- package/src/vaultClient.ts +653 -541
package/lib/constants/index.d.ts
CHANGED
package/lib/constants/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VAULT_SHARES_PRECISION_EXP = void 0;
|
|
3
|
+
exports.MAGIC_FUEL_START_TS = exports.FUEL_SHARE_PRECISION = exports.FUEL_SHARE_PRECISION_EXP = exports.VAULT_SHARES_PRECISION_EXP = void 0;
|
|
4
4
|
const sdk_1 = require("@drift-labs/sdk");
|
|
5
5
|
exports.VAULT_SHARES_PRECISION_EXP = new sdk_1.BN(6);
|
|
6
|
+
// arbitrarily large fuel per share precision
|
|
7
|
+
exports.FUEL_SHARE_PRECISION_EXP = new sdk_1.BN(18);
|
|
8
|
+
exports.FUEL_SHARE_PRECISION = sdk_1.TEN.pow(exports.FUEL_SHARE_PRECISION_EXP);
|
|
9
|
+
// some arbitrary timestamp to identify VaultDepositors created after fuel distribution started.
|
|
10
|
+
exports.MAGIC_FUEL_START_TS = 123;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BN } from '@drift-labs/sdk';
|
|
1
|
+
import { BN, FuelOverflowAccount, UserStatsAccount } from '@drift-labs/sdk';
|
|
2
2
|
import { Vault, VaultDepositor, VaultProtocol } from '../types/types';
|
|
3
3
|
/**
|
|
4
4
|
* Calculates the unrealized profitShare for a vaultDepositor
|
|
@@ -21,3 +21,6 @@ export declare function calculateProfitShare(vaultDepositor: VaultDepositor, tot
|
|
|
21
21
|
* @returns
|
|
22
22
|
*/
|
|
23
23
|
export declare function calculateRealizedVaultDepositorEquity(vaultDepositor: VaultDepositor, vaultEquity: BN, vault: Vault, vaultProtocol?: VaultProtocol): BN;
|
|
24
|
+
export declare function calculateVaultUnsettledFuelPerShare(vault: Vault, vaultUserStats: UserStatsAccount, fuelOverflow?: FuelOverflowAccount): BN;
|
|
25
|
+
export declare function calculateVaultDepositorUnsettledFuel(vaultDepositor: VaultDepositor, vault: Vault, vaultUserStats: UserStatsAccount, fuelOverflow?: FuelOverflowAccount): BN;
|
|
26
|
+
export declare function calculateVaultDepositorFuel(vaultDepositor: VaultDepositor, vault: Vault, vaultUserStats: UserStatsAccount, fuelOverflow?: FuelOverflowAccount): BN;
|
|
@@ -3,7 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.calculateApplyProfitShare = calculateApplyProfitShare;
|
|
4
4
|
exports.calculateProfitShare = calculateProfitShare;
|
|
5
5
|
exports.calculateRealizedVaultDepositorEquity = calculateRealizedVaultDepositorEquity;
|
|
6
|
+
exports.calculateVaultUnsettledFuelPerShare = calculateVaultUnsettledFuelPerShare;
|
|
7
|
+
exports.calculateVaultDepositorUnsettledFuel = calculateVaultDepositorUnsettledFuel;
|
|
8
|
+
exports.calculateVaultDepositorFuel = calculateVaultDepositorFuel;
|
|
6
9
|
const sdk_1 = require("@drift-labs/sdk");
|
|
10
|
+
const types_1 = require("../types/types");
|
|
11
|
+
const constants_1 = require("../constants");
|
|
7
12
|
/**
|
|
8
13
|
* Calculates the unrealized profitShare for a vaultDepositor
|
|
9
14
|
* @param vaultDepositor
|
|
@@ -47,3 +52,73 @@ function calculateRealizedVaultDepositorEquity(vaultDepositor, vaultEquity, vaul
|
|
|
47
52
|
const profitShareAmount = calculateProfitShare(vaultDepositor, vdAmount, vault, vaultProtocol);
|
|
48
53
|
return vdAmount.sub(profitShareAmount);
|
|
49
54
|
}
|
|
55
|
+
function calculateVaultUnsettledFuelPerShare(vault, vaultUserStats, fuelOverflow) {
|
|
56
|
+
if ((vaultUserStats.fuelOverflowStatus & sdk_1.FuelOverflowStatus.Exists) === 1 &&
|
|
57
|
+
!fuelOverflow) {
|
|
58
|
+
throw new Error('UserStats requires a FuelOverflow account to calculate total fuel');
|
|
59
|
+
}
|
|
60
|
+
const userStatsTotalFuel = new sdk_1.BN(vaultUserStats.fuelInsurance)
|
|
61
|
+
.add(new sdk_1.BN(vaultUserStats.fuelDeposits))
|
|
62
|
+
.add(new sdk_1.BN(vaultUserStats.fuelBorrows))
|
|
63
|
+
.add(new sdk_1.BN(vaultUserStats.fuelPositions))
|
|
64
|
+
.add(new sdk_1.BN(vaultUserStats.fuelTaker))
|
|
65
|
+
.add(new sdk_1.BN(vaultUserStats.fuelMaker));
|
|
66
|
+
const overflowFuel = fuelOverflow
|
|
67
|
+
? new sdk_1.BN(fuelOverflow.fuelInsurance)
|
|
68
|
+
.add(fuelOverflow.fuelDeposits)
|
|
69
|
+
.add(fuelOverflow.fuelBorrows)
|
|
70
|
+
.add(fuelOverflow.fuelPositions)
|
|
71
|
+
.add(fuelOverflow.fuelTaker)
|
|
72
|
+
.add(fuelOverflow.fuelMaker)
|
|
73
|
+
: sdk_1.ZERO;
|
|
74
|
+
const totalFuel = userStatsTotalFuel.add(overflowFuel);
|
|
75
|
+
if (totalFuel > vault.cumulativeFuel) {
|
|
76
|
+
let shareDenominator = vault.userShares;
|
|
77
|
+
if (vault.fuelDistributionMode === types_1.FuelDistributionMode.UsersOnly) {
|
|
78
|
+
if (vault.userShares.eq(sdk_1.ZERO)) {
|
|
79
|
+
shareDenominator = vault.totalShares;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
shareDenominator = vault.userShares;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (vault.fuelDistributionMode === types_1.FuelDistributionMode.UsersAndManager) {
|
|
86
|
+
shareDenominator = vault.totalShares;
|
|
87
|
+
}
|
|
88
|
+
if (shareDenominator.gt(sdk_1.ZERO)) {
|
|
89
|
+
const fuelDelta = totalFuel.sub(vault.cumulativeFuel);
|
|
90
|
+
const fuelDeltaPerShare = fuelDelta
|
|
91
|
+
.mul(constants_1.FUEL_SHARE_PRECISION)
|
|
92
|
+
.div(shareDenominator);
|
|
93
|
+
return vault.cumulativeFuelPerShare.add(fuelDeltaPerShare);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return vault.cumulativeFuelPerShare;
|
|
97
|
+
}
|
|
98
|
+
function calculateVaultDepositorUnsettledFuel(vaultDepositor, vault, vaultUserStats, fuelOverflow) {
|
|
99
|
+
// If timestamp hasn't changed, no new fuel to calculate
|
|
100
|
+
if (Date.now() / 1000 <= vaultDepositor.lastFuelUpdateTs) {
|
|
101
|
+
return vaultDepositor.fuelAmount;
|
|
102
|
+
}
|
|
103
|
+
// Special case for initial fuel setup
|
|
104
|
+
if (vaultDepositor.lastFuelUpdateTs === constants_1.MAGIC_FUEL_START_TS) {
|
|
105
|
+
return vaultDepositor.fuelAmount;
|
|
106
|
+
}
|
|
107
|
+
const cumulativeFuelPerShare = calculateVaultUnsettledFuelPerShare(vault, vaultUserStats, fuelOverflow);
|
|
108
|
+
// If vault's cumulative fuel per share is less than depositor's recorded amount,
|
|
109
|
+
// this means the vault's fuel was reset - no new fuel to add
|
|
110
|
+
if (cumulativeFuelPerShare.lt(vaultDepositor.cumulativeFuelPerShareAmount)) {
|
|
111
|
+
return vaultDepositor.fuelAmount;
|
|
112
|
+
}
|
|
113
|
+
// Calculate new fuel
|
|
114
|
+
const fuelPerShareDelta = cumulativeFuelPerShare.sub(vaultDepositor.cumulativeFuelPerShareAmount);
|
|
115
|
+
const newFuel = fuelPerShareDelta
|
|
116
|
+
.mul(vaultDepositor.vaultShares)
|
|
117
|
+
.div(constants_1.FUEL_SHARE_PRECISION);
|
|
118
|
+
return vaultDepositor.fuelAmount.add(newFuel);
|
|
119
|
+
}
|
|
120
|
+
function calculateVaultDepositorFuel(vaultDepositor, vault, vaultUserStats, fuelOverflow) {
|
|
121
|
+
const vdFuel = vaultDepositor.fuelAmount;
|
|
122
|
+
const unsettledFuel = calculateVaultDepositorUnsettledFuel(vaultDepositor, vault, vaultUserStats, fuelOverflow);
|
|
123
|
+
return vdFuel.add(unsettledFuel);
|
|
124
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type DriftVaults = {
|
|
2
|
-
version: '0.
|
|
2
|
+
version: '0.4.0';
|
|
3
3
|
name: 'drift_vaults';
|
|
4
4
|
instructions: [
|
|
5
5
|
{
|
|
@@ -276,6 +276,32 @@ export type DriftVaults = {
|
|
|
276
276
|
}
|
|
277
277
|
];
|
|
278
278
|
},
|
|
279
|
+
{
|
|
280
|
+
name: 'updateCumulativeFuelAmount';
|
|
281
|
+
accounts: [
|
|
282
|
+
{
|
|
283
|
+
name: 'vault';
|
|
284
|
+
isMut: true;
|
|
285
|
+
isSigner: false;
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
name: 'vaultDepositor';
|
|
289
|
+
isMut: true;
|
|
290
|
+
isSigner: false;
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
name: 'signer';
|
|
294
|
+
isMut: false;
|
|
295
|
+
isSigner: true;
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: 'driftUserStats';
|
|
299
|
+
isMut: true;
|
|
300
|
+
isSigner: false;
|
|
301
|
+
}
|
|
302
|
+
];
|
|
303
|
+
args: [];
|
|
304
|
+
},
|
|
279
305
|
{
|
|
280
306
|
name: 'initializeVaultDepositor';
|
|
281
307
|
accounts: [
|
|
@@ -745,6 +771,58 @@ export type DriftVaults = {
|
|
|
745
771
|
];
|
|
746
772
|
args: [];
|
|
747
773
|
},
|
|
774
|
+
{
|
|
775
|
+
name: 'resetFuelSeason';
|
|
776
|
+
accounts: [
|
|
777
|
+
{
|
|
778
|
+
name: 'vault';
|
|
779
|
+
isMut: true;
|
|
780
|
+
isSigner: false;
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
name: 'vaultDepositor';
|
|
784
|
+
isMut: true;
|
|
785
|
+
isSigner: false;
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
name: 'admin';
|
|
789
|
+
isMut: false;
|
|
790
|
+
isSigner: true;
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
name: 'driftUserStats';
|
|
794
|
+
isMut: true;
|
|
795
|
+
isSigner: false;
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
name: 'driftState';
|
|
799
|
+
isMut: false;
|
|
800
|
+
isSigner: false;
|
|
801
|
+
}
|
|
802
|
+
];
|
|
803
|
+
args: [];
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
name: 'resetVaultFuelSeason';
|
|
807
|
+
accounts: [
|
|
808
|
+
{
|
|
809
|
+
name: 'vault';
|
|
810
|
+
isMut: true;
|
|
811
|
+
isSigner: false;
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
name: 'admin';
|
|
815
|
+
isMut: false;
|
|
816
|
+
isSigner: true;
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
name: 'driftState';
|
|
820
|
+
isMut: false;
|
|
821
|
+
isSigner: false;
|
|
822
|
+
}
|
|
823
|
+
];
|
|
824
|
+
args: [];
|
|
825
|
+
},
|
|
748
826
|
{
|
|
749
827
|
name: 'managerDeposit';
|
|
750
828
|
accounts: [
|
|
@@ -930,6 +1008,27 @@ export type DriftVaults = {
|
|
|
930
1008
|
];
|
|
931
1009
|
args: [];
|
|
932
1010
|
},
|
|
1011
|
+
{
|
|
1012
|
+
name: 'managerUpdateFuelDistributionMode';
|
|
1013
|
+
accounts: [
|
|
1014
|
+
{
|
|
1015
|
+
name: 'vault';
|
|
1016
|
+
isMut: true;
|
|
1017
|
+
isSigner: false;
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
name: 'manager';
|
|
1021
|
+
isMut: false;
|
|
1022
|
+
isSigner: true;
|
|
1023
|
+
}
|
|
1024
|
+
];
|
|
1025
|
+
args: [
|
|
1026
|
+
{
|
|
1027
|
+
name: 'fuelDistributionMode';
|
|
1028
|
+
type: 'u8';
|
|
1029
|
+
}
|
|
1030
|
+
];
|
|
1031
|
+
},
|
|
933
1032
|
{
|
|
934
1033
|
name: 'applyProfitShare';
|
|
935
1034
|
accounts: [
|
|
@@ -1722,13 +1821,23 @@ export type DriftVaults = {
|
|
|
1722
1821
|
type: 'u32';
|
|
1723
1822
|
},
|
|
1724
1823
|
{
|
|
1725
|
-
name: '
|
|
1824
|
+
name: 'lastFuelUpdateTs';
|
|
1726
1825
|
type: 'u32';
|
|
1727
1826
|
},
|
|
1827
|
+
{
|
|
1828
|
+
name: 'cumulativeFuelPerShareAmount';
|
|
1829
|
+
docs: ['precision: FUEL_SHARE_PRECISION'];
|
|
1830
|
+
type: 'u128';
|
|
1831
|
+
},
|
|
1832
|
+
{
|
|
1833
|
+
name: 'fuelAmount';
|
|
1834
|
+
docs: ['precision: none'];
|
|
1835
|
+
type: 'u128';
|
|
1836
|
+
},
|
|
1728
1837
|
{
|
|
1729
1838
|
name: 'padding';
|
|
1730
1839
|
type: {
|
|
1731
|
-
array: ['u64',
|
|
1840
|
+
array: ['u64', 4];
|
|
1732
1841
|
};
|
|
1733
1842
|
}
|
|
1734
1843
|
];
|
|
@@ -2020,16 +2129,40 @@ export type DriftVaults = {
|
|
|
2020
2129
|
docs: ['The optional [`VaultProtocol`] account.'];
|
|
2021
2130
|
type: 'bool';
|
|
2022
2131
|
},
|
|
2132
|
+
{
|
|
2133
|
+
name: 'fuelDistributionMode';
|
|
2134
|
+
docs: [
|
|
2135
|
+
'How fuel distribution should be treated [`FuelDistributionMode`]. Default is `UsersOnly`'
|
|
2136
|
+
];
|
|
2137
|
+
type: 'u8';
|
|
2138
|
+
},
|
|
2023
2139
|
{
|
|
2024
2140
|
name: 'padding1';
|
|
2025
2141
|
type: {
|
|
2026
|
-
array: ['u8',
|
|
2142
|
+
array: ['u8', 2];
|
|
2027
2143
|
};
|
|
2028
2144
|
},
|
|
2145
|
+
{
|
|
2146
|
+
name: 'lastCumulativeFuelPerShareTs';
|
|
2147
|
+
docs: ['The timestamp cumulative_fuel_per_share was last updated'];
|
|
2148
|
+
type: 'u32';
|
|
2149
|
+
},
|
|
2150
|
+
{
|
|
2151
|
+
name: 'cumulativeFuelPerShare';
|
|
2152
|
+
docs: [
|
|
2153
|
+
'The cumulative fuel per share (scaled up by 1e6 to avoid losing precision)'
|
|
2154
|
+
];
|
|
2155
|
+
type: 'u128';
|
|
2156
|
+
},
|
|
2157
|
+
{
|
|
2158
|
+
name: 'cumulativeFuel';
|
|
2159
|
+
docs: ['The total fuel accumulated'];
|
|
2160
|
+
type: 'u128';
|
|
2161
|
+
},
|
|
2029
2162
|
{
|
|
2030
2163
|
name: 'padding';
|
|
2031
2164
|
type: {
|
|
2032
|
-
array: ['u64',
|
|
2165
|
+
array: ['u64', 3];
|
|
2033
2166
|
};
|
|
2034
2167
|
}
|
|
2035
2168
|
];
|
|
@@ -2303,6 +2436,20 @@ export type DriftVaults = {
|
|
|
2303
2436
|
];
|
|
2304
2437
|
};
|
|
2305
2438
|
},
|
|
2439
|
+
{
|
|
2440
|
+
name: 'FuelDistributionMode';
|
|
2441
|
+
type: {
|
|
2442
|
+
kind: 'enum';
|
|
2443
|
+
variants: [
|
|
2444
|
+
{
|
|
2445
|
+
name: 'UsersOnly';
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
name: 'UsersAndManager';
|
|
2449
|
+
}
|
|
2450
|
+
];
|
|
2451
|
+
};
|
|
2452
|
+
},
|
|
2306
2453
|
{
|
|
2307
2454
|
name: 'WithdrawUnit';
|
|
2308
2455
|
type: {
|
|
@@ -2595,6 +2742,56 @@ export type DriftVaults = {
|
|
|
2595
2742
|
index: false;
|
|
2596
2743
|
}
|
|
2597
2744
|
];
|
|
2745
|
+
},
|
|
2746
|
+
{
|
|
2747
|
+
name: 'FuelSeasonRecord';
|
|
2748
|
+
fields: [
|
|
2749
|
+
{
|
|
2750
|
+
name: 'ts';
|
|
2751
|
+
type: 'i64';
|
|
2752
|
+
index: false;
|
|
2753
|
+
},
|
|
2754
|
+
{
|
|
2755
|
+
name: 'authority';
|
|
2756
|
+
type: 'publicKey';
|
|
2757
|
+
index: false;
|
|
2758
|
+
},
|
|
2759
|
+
{
|
|
2760
|
+
name: 'fuelInsurance';
|
|
2761
|
+
type: 'u128';
|
|
2762
|
+
index: false;
|
|
2763
|
+
},
|
|
2764
|
+
{
|
|
2765
|
+
name: 'fuelDeposits';
|
|
2766
|
+
type: 'u128';
|
|
2767
|
+
index: false;
|
|
2768
|
+
},
|
|
2769
|
+
{
|
|
2770
|
+
name: 'fuelBorrows';
|
|
2771
|
+
type: 'u128';
|
|
2772
|
+
index: false;
|
|
2773
|
+
},
|
|
2774
|
+
{
|
|
2775
|
+
name: 'fuelPositions';
|
|
2776
|
+
type: 'u128';
|
|
2777
|
+
index: false;
|
|
2778
|
+
},
|
|
2779
|
+
{
|
|
2780
|
+
name: 'fuelTaker';
|
|
2781
|
+
type: 'u128';
|
|
2782
|
+
index: false;
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
name: 'fuelMaker';
|
|
2786
|
+
type: 'u128';
|
|
2787
|
+
index: false;
|
|
2788
|
+
},
|
|
2789
|
+
{
|
|
2790
|
+
name: 'fuelTotal';
|
|
2791
|
+
type: 'u128';
|
|
2792
|
+
index: false;
|
|
2793
|
+
}
|
|
2794
|
+
];
|
|
2598
2795
|
}
|
|
2599
2796
|
];
|
|
2600
2797
|
errors: [
|
|
@@ -2717,6 +2914,11 @@ export type DriftVaults = {
|
|
|
2717
2914
|
code: 6023;
|
|
2718
2915
|
name: 'InvalidTokenization';
|
|
2719
2916
|
msg: 'InvalidTokenization';
|
|
2917
|
+
},
|
|
2918
|
+
{
|
|
2919
|
+
code: 6024;
|
|
2920
|
+
name: 'InvalidFuelDistributionMode';
|
|
2921
|
+
msg: 'InvalidFuelDistributionMode';
|
|
2720
2922
|
}
|
|
2721
2923
|
];
|
|
2722
2924
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IDL = void 0;
|
|
4
4
|
exports.IDL = {
|
|
5
|
-
version: '0.
|
|
5
|
+
version: '0.4.0',
|
|
6
6
|
name: 'drift_vaults',
|
|
7
7
|
instructions: [
|
|
8
8
|
{
|
|
@@ -279,6 +279,32 @@ exports.IDL = {
|
|
|
279
279
|
},
|
|
280
280
|
],
|
|
281
281
|
},
|
|
282
|
+
{
|
|
283
|
+
name: 'updateCumulativeFuelAmount',
|
|
284
|
+
accounts: [
|
|
285
|
+
{
|
|
286
|
+
name: 'vault',
|
|
287
|
+
isMut: true,
|
|
288
|
+
isSigner: false,
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: 'vaultDepositor',
|
|
292
|
+
isMut: true,
|
|
293
|
+
isSigner: false,
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
name: 'signer',
|
|
297
|
+
isMut: false,
|
|
298
|
+
isSigner: true,
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: 'driftUserStats',
|
|
302
|
+
isMut: true,
|
|
303
|
+
isSigner: false,
|
|
304
|
+
},
|
|
305
|
+
],
|
|
306
|
+
args: [],
|
|
307
|
+
},
|
|
282
308
|
{
|
|
283
309
|
name: 'initializeVaultDepositor',
|
|
284
310
|
accounts: [
|
|
@@ -748,6 +774,58 @@ exports.IDL = {
|
|
|
748
774
|
],
|
|
749
775
|
args: [],
|
|
750
776
|
},
|
|
777
|
+
{
|
|
778
|
+
name: 'resetFuelSeason',
|
|
779
|
+
accounts: [
|
|
780
|
+
{
|
|
781
|
+
name: 'vault',
|
|
782
|
+
isMut: true,
|
|
783
|
+
isSigner: false,
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
name: 'vaultDepositor',
|
|
787
|
+
isMut: true,
|
|
788
|
+
isSigner: false,
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
name: 'admin',
|
|
792
|
+
isMut: false,
|
|
793
|
+
isSigner: true,
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
name: 'driftUserStats',
|
|
797
|
+
isMut: true,
|
|
798
|
+
isSigner: false,
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
name: 'driftState',
|
|
802
|
+
isMut: false,
|
|
803
|
+
isSigner: false,
|
|
804
|
+
},
|
|
805
|
+
],
|
|
806
|
+
args: [],
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
name: 'resetVaultFuelSeason',
|
|
810
|
+
accounts: [
|
|
811
|
+
{
|
|
812
|
+
name: 'vault',
|
|
813
|
+
isMut: true,
|
|
814
|
+
isSigner: false,
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
name: 'admin',
|
|
818
|
+
isMut: false,
|
|
819
|
+
isSigner: true,
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
name: 'driftState',
|
|
823
|
+
isMut: false,
|
|
824
|
+
isSigner: false,
|
|
825
|
+
},
|
|
826
|
+
],
|
|
827
|
+
args: [],
|
|
828
|
+
},
|
|
751
829
|
{
|
|
752
830
|
name: 'managerDeposit',
|
|
753
831
|
accounts: [
|
|
@@ -933,6 +1011,27 @@ exports.IDL = {
|
|
|
933
1011
|
],
|
|
934
1012
|
args: [],
|
|
935
1013
|
},
|
|
1014
|
+
{
|
|
1015
|
+
name: 'managerUpdateFuelDistributionMode',
|
|
1016
|
+
accounts: [
|
|
1017
|
+
{
|
|
1018
|
+
name: 'vault',
|
|
1019
|
+
isMut: true,
|
|
1020
|
+
isSigner: false,
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
name: 'manager',
|
|
1024
|
+
isMut: false,
|
|
1025
|
+
isSigner: true,
|
|
1026
|
+
},
|
|
1027
|
+
],
|
|
1028
|
+
args: [
|
|
1029
|
+
{
|
|
1030
|
+
name: 'fuelDistributionMode',
|
|
1031
|
+
type: 'u8',
|
|
1032
|
+
},
|
|
1033
|
+
],
|
|
1034
|
+
},
|
|
936
1035
|
{
|
|
937
1036
|
name: 'applyProfitShare',
|
|
938
1037
|
accounts: [
|
|
@@ -1725,13 +1824,23 @@ exports.IDL = {
|
|
|
1725
1824
|
type: 'u32',
|
|
1726
1825
|
},
|
|
1727
1826
|
{
|
|
1728
|
-
name: '
|
|
1827
|
+
name: 'lastFuelUpdateTs',
|
|
1729
1828
|
type: 'u32',
|
|
1730
1829
|
},
|
|
1830
|
+
{
|
|
1831
|
+
name: 'cumulativeFuelPerShareAmount',
|
|
1832
|
+
docs: ['precision: FUEL_SHARE_PRECISION'],
|
|
1833
|
+
type: 'u128',
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
name: 'fuelAmount',
|
|
1837
|
+
docs: ['precision: none'],
|
|
1838
|
+
type: 'u128',
|
|
1839
|
+
},
|
|
1731
1840
|
{
|
|
1732
1841
|
name: 'padding',
|
|
1733
1842
|
type: {
|
|
1734
|
-
array: ['u64',
|
|
1843
|
+
array: ['u64', 4],
|
|
1735
1844
|
},
|
|
1736
1845
|
},
|
|
1737
1846
|
],
|
|
@@ -2023,16 +2132,40 @@ exports.IDL = {
|
|
|
2023
2132
|
docs: ['The optional [`VaultProtocol`] account.'],
|
|
2024
2133
|
type: 'bool',
|
|
2025
2134
|
},
|
|
2135
|
+
{
|
|
2136
|
+
name: 'fuelDistributionMode',
|
|
2137
|
+
docs: [
|
|
2138
|
+
'How fuel distribution should be treated [`FuelDistributionMode`]. Default is `UsersOnly`',
|
|
2139
|
+
],
|
|
2140
|
+
type: 'u8',
|
|
2141
|
+
},
|
|
2026
2142
|
{
|
|
2027
2143
|
name: 'padding1',
|
|
2028
2144
|
type: {
|
|
2029
|
-
array: ['u8',
|
|
2145
|
+
array: ['u8', 2],
|
|
2030
2146
|
},
|
|
2031
2147
|
},
|
|
2148
|
+
{
|
|
2149
|
+
name: 'lastCumulativeFuelPerShareTs',
|
|
2150
|
+
docs: ['The timestamp cumulative_fuel_per_share was last updated'],
|
|
2151
|
+
type: 'u32',
|
|
2152
|
+
},
|
|
2153
|
+
{
|
|
2154
|
+
name: 'cumulativeFuelPerShare',
|
|
2155
|
+
docs: [
|
|
2156
|
+
'The cumulative fuel per share (scaled up by 1e6 to avoid losing precision)',
|
|
2157
|
+
],
|
|
2158
|
+
type: 'u128',
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
name: 'cumulativeFuel',
|
|
2162
|
+
docs: ['The total fuel accumulated'],
|
|
2163
|
+
type: 'u128',
|
|
2164
|
+
},
|
|
2032
2165
|
{
|
|
2033
2166
|
name: 'padding',
|
|
2034
2167
|
type: {
|
|
2035
|
-
array: ['u64',
|
|
2168
|
+
array: ['u64', 3],
|
|
2036
2169
|
},
|
|
2037
2170
|
},
|
|
2038
2171
|
],
|
|
@@ -2306,6 +2439,20 @@ exports.IDL = {
|
|
|
2306
2439
|
],
|
|
2307
2440
|
},
|
|
2308
2441
|
},
|
|
2442
|
+
{
|
|
2443
|
+
name: 'FuelDistributionMode',
|
|
2444
|
+
type: {
|
|
2445
|
+
kind: 'enum',
|
|
2446
|
+
variants: [
|
|
2447
|
+
{
|
|
2448
|
+
name: 'UsersOnly',
|
|
2449
|
+
},
|
|
2450
|
+
{
|
|
2451
|
+
name: 'UsersAndManager',
|
|
2452
|
+
},
|
|
2453
|
+
],
|
|
2454
|
+
},
|
|
2455
|
+
},
|
|
2309
2456
|
{
|
|
2310
2457
|
name: 'WithdrawUnit',
|
|
2311
2458
|
type: {
|
|
@@ -2599,6 +2746,56 @@ exports.IDL = {
|
|
|
2599
2746
|
},
|
|
2600
2747
|
],
|
|
2601
2748
|
},
|
|
2749
|
+
{
|
|
2750
|
+
name: 'FuelSeasonRecord',
|
|
2751
|
+
fields: [
|
|
2752
|
+
{
|
|
2753
|
+
name: 'ts',
|
|
2754
|
+
type: 'i64',
|
|
2755
|
+
index: false,
|
|
2756
|
+
},
|
|
2757
|
+
{
|
|
2758
|
+
name: 'authority',
|
|
2759
|
+
type: 'publicKey',
|
|
2760
|
+
index: false,
|
|
2761
|
+
},
|
|
2762
|
+
{
|
|
2763
|
+
name: 'fuelInsurance',
|
|
2764
|
+
type: 'u128',
|
|
2765
|
+
index: false,
|
|
2766
|
+
},
|
|
2767
|
+
{
|
|
2768
|
+
name: 'fuelDeposits',
|
|
2769
|
+
type: 'u128',
|
|
2770
|
+
index: false,
|
|
2771
|
+
},
|
|
2772
|
+
{
|
|
2773
|
+
name: 'fuelBorrows',
|
|
2774
|
+
type: 'u128',
|
|
2775
|
+
index: false,
|
|
2776
|
+
},
|
|
2777
|
+
{
|
|
2778
|
+
name: 'fuelPositions',
|
|
2779
|
+
type: 'u128',
|
|
2780
|
+
index: false,
|
|
2781
|
+
},
|
|
2782
|
+
{
|
|
2783
|
+
name: 'fuelTaker',
|
|
2784
|
+
type: 'u128',
|
|
2785
|
+
index: false,
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
name: 'fuelMaker',
|
|
2789
|
+
type: 'u128',
|
|
2790
|
+
index: false,
|
|
2791
|
+
},
|
|
2792
|
+
{
|
|
2793
|
+
name: 'fuelTotal',
|
|
2794
|
+
type: 'u128',
|
|
2795
|
+
index: false,
|
|
2796
|
+
},
|
|
2797
|
+
],
|
|
2798
|
+
},
|
|
2602
2799
|
],
|
|
2603
2800
|
errors: [
|
|
2604
2801
|
{
|
|
@@ -2721,5 +2918,10 @@ exports.IDL = {
|
|
|
2721
2918
|
name: 'InvalidTokenization',
|
|
2722
2919
|
msg: 'InvalidTokenization',
|
|
2723
2920
|
},
|
|
2921
|
+
{
|
|
2922
|
+
code: 6024,
|
|
2923
|
+
name: 'InvalidFuelDistributionMode',
|
|
2924
|
+
msg: 'InvalidFuelDistributionMode',
|
|
2925
|
+
},
|
|
2724
2926
|
],
|
|
2725
2927
|
};
|