@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.
@@ -1,2 +1,5 @@
1
1
  import { BN } from '@drift-labs/sdk';
2
2
  export declare const VAULT_SHARES_PRECISION_EXP: BN;
3
+ export declare const FUEL_SHARE_PRECISION_EXP: BN;
4
+ export declare const FUEL_SHARE_PRECISION: BN;
5
+ export declare const MAGIC_FUEL_START_TS = 123;
@@ -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.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: 'padding1';
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', 8];
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', 7];
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', 7];
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.2.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: 'padding1',
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', 8],
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', 7],
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', 7],
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
  };