@drift-labs/sdk 2.86.0-beta.23 → 2.86.0-beta.25
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/VERSION +1 -1
- package/lib/constants/perpMarkets.js +12 -12
- package/lib/constants/spotMarkets.js +11 -10
- package/lib/types.d.ts +1 -1
- package/lib/user.js +6 -1
- package/package.json +1 -1
- package/src/constants/perpMarkets.ts +12 -12
- package/src/constants/spotMarkets.ts +12 -10
- package/src/types.ts +1 -1
- package/src/user.ts +18 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.86.0-beta.
|
|
1
|
+
2.86.0-beta.25
|
|
@@ -496,9 +496,9 @@ exports.MainnetPerpMarkets = [
|
|
|
496
496
|
symbol: 'PYTH-PERP',
|
|
497
497
|
baseAssetSymbol: 'PYTH',
|
|
498
498
|
marketIndex: 18,
|
|
499
|
-
oracle: new web3_js_1.PublicKey('
|
|
499
|
+
oracle: new web3_js_1.PublicKey('GqkCu7CbsPVz1H6W6AAHuReqbJckYG59TXz7Y5HDV7hr'),
|
|
500
500
|
launchTs: 1700542800000,
|
|
501
|
-
oracleSource: __1.OracleSource.
|
|
501
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
502
502
|
pythFeedId: '0x0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff',
|
|
503
503
|
},
|
|
504
504
|
{
|
|
@@ -507,9 +507,9 @@ exports.MainnetPerpMarkets = [
|
|
|
507
507
|
symbol: 'TIA-PERP',
|
|
508
508
|
baseAssetSymbol: 'TIA',
|
|
509
509
|
marketIndex: 19,
|
|
510
|
-
oracle: new web3_js_1.PublicKey('
|
|
510
|
+
oracle: new web3_js_1.PublicKey('C6LHPUrgjrgo5eNUitC8raNEdEttfoRhmqdJ3BHVBJhi'),
|
|
511
511
|
launchTs: 1701880540000,
|
|
512
|
-
oracleSource: __1.OracleSource.
|
|
512
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
513
513
|
pythFeedId: '0x09f7c1d7dfbb7df2b8fe3d3d87ee94a2259d212da4f30c1f0540d066dfa44723',
|
|
514
514
|
},
|
|
515
515
|
{
|
|
@@ -551,9 +551,9 @@ exports.MainnetPerpMarkets = [
|
|
|
551
551
|
symbol: 'WIF-PERP',
|
|
552
552
|
baseAssetSymbol: 'WIF',
|
|
553
553
|
marketIndex: 23,
|
|
554
|
-
oracle: new web3_js_1.PublicKey('
|
|
554
|
+
oracle: new web3_js_1.PublicKey('6x6KfE7nY2xoLCRSMPT1u83wQ5fpGXoKNBqFjrCwzsCQ'),
|
|
555
555
|
launchTs: 1706219971000,
|
|
556
|
-
oracleSource: __1.OracleSource.
|
|
556
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
557
557
|
pythFeedId: '0x4ca4beeca86f0d164160323817a4e42b10010a724c2217c6ee41b54cd4cc61fc',
|
|
558
558
|
},
|
|
559
559
|
{
|
|
@@ -562,9 +562,9 @@ exports.MainnetPerpMarkets = [
|
|
|
562
562
|
symbol: 'JUP-PERP',
|
|
563
563
|
baseAssetSymbol: 'JUP',
|
|
564
564
|
marketIndex: 24,
|
|
565
|
-
oracle: new web3_js_1.PublicKey('
|
|
565
|
+
oracle: new web3_js_1.PublicKey('AwqRpfJ36jnSZQykyL1jYY35mhMteeEAjh7o8LveRQin'),
|
|
566
566
|
launchTs: 1706713201000,
|
|
567
|
-
oracleSource: __1.OracleSource.
|
|
567
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
568
568
|
pythFeedId: '0x0a0408d619e9380abad35060f9192039ed5042fa6f82301d0e48bb52be830996',
|
|
569
569
|
},
|
|
570
570
|
{
|
|
@@ -628,9 +628,9 @@ exports.MainnetPerpMarkets = [
|
|
|
628
628
|
symbol: 'DRIFT-PERP',
|
|
629
629
|
baseAssetSymbol: 'DRIFT',
|
|
630
630
|
marketIndex: 30,
|
|
631
|
-
oracle: new web3_js_1.PublicKey('
|
|
631
|
+
oracle: new web3_js_1.PublicKey('23KmX7SNikmUr2axSCy6Zer7XPBnvmVcASALnDGqBVRR'),
|
|
632
632
|
launchTs: 1716595200000,
|
|
633
|
-
oracleSource: __1.OracleSource.
|
|
633
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
634
634
|
pythFeedId: '0x5c1690b27bb02446db17cdda13ccc2c1d609ad6d2ef5bf4983a85ea8b6f19d07',
|
|
635
635
|
},
|
|
636
636
|
{
|
|
@@ -671,9 +671,9 @@ exports.MainnetPerpMarkets = [
|
|
|
671
671
|
symbol: 'POPCAT-PERP',
|
|
672
672
|
baseAssetSymbol: 'POPCAT',
|
|
673
673
|
marketIndex: 34,
|
|
674
|
-
oracle: new web3_js_1.PublicKey('
|
|
674
|
+
oracle: new web3_js_1.PublicKey('H3pn43tkNvsG5z3qzmERguSvKoyHZvvY6VPmNrJqiW5X'),
|
|
675
675
|
launchTs: 1720013054000,
|
|
676
|
-
oracleSource: __1.OracleSource.
|
|
676
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
677
677
|
pythFeedId: '0xb9312a7ee50e189ef045aa3c7842e099b061bd9bdc99ac645956c3b660dc8cce',
|
|
678
678
|
},
|
|
679
679
|
{
|
|
@@ -123,8 +123,8 @@ exports.MainnetSpotMarkets = [
|
|
|
123
123
|
{
|
|
124
124
|
symbol: 'PYTH',
|
|
125
125
|
marketIndex: 7,
|
|
126
|
-
oracle: new web3_js_1.PublicKey('
|
|
127
|
-
oracleSource: __1.OracleSource.
|
|
126
|
+
oracle: new web3_js_1.PublicKey('GqkCu7CbsPVz1H6W6AAHuReqbJckYG59TXz7Y5HDV7hr'),
|
|
127
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
128
128
|
mint: new web3_js_1.PublicKey('HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3'),
|
|
129
129
|
precision: new __1.BN(10).pow(numericConstants_1.SIX),
|
|
130
130
|
precisionExp: numericConstants_1.SIX,
|
|
@@ -158,8 +158,8 @@ exports.MainnetSpotMarkets = [
|
|
|
158
158
|
{
|
|
159
159
|
symbol: 'WIF',
|
|
160
160
|
marketIndex: 10,
|
|
161
|
-
oracle: new web3_js_1.PublicKey('
|
|
162
|
-
oracleSource: __1.OracleSource.
|
|
161
|
+
oracle: new web3_js_1.PublicKey('6x6KfE7nY2xoLCRSMPT1u83wQ5fpGXoKNBqFjrCwzsCQ'),
|
|
162
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
163
163
|
mint: new web3_js_1.PublicKey('EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm'),
|
|
164
164
|
precision: new __1.BN(10).pow(numericConstants_1.SIX),
|
|
165
165
|
precisionExp: numericConstants_1.SIX,
|
|
@@ -170,8 +170,8 @@ exports.MainnetSpotMarkets = [
|
|
|
170
170
|
{
|
|
171
171
|
symbol: 'JUP',
|
|
172
172
|
marketIndex: 11,
|
|
173
|
-
oracle: new web3_js_1.PublicKey('
|
|
174
|
-
oracleSource: __1.OracleSource.
|
|
173
|
+
oracle: new web3_js_1.PublicKey('AwqRpfJ36jnSZQykyL1jYY35mhMteeEAjh7o8LveRQin'),
|
|
174
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
175
175
|
mint: new web3_js_1.PublicKey('JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN'),
|
|
176
176
|
precision: new __1.BN(10).pow(numericConstants_1.SIX),
|
|
177
177
|
precisionExp: numericConstants_1.SIX,
|
|
@@ -218,8 +218,8 @@ exports.MainnetSpotMarkets = [
|
|
|
218
218
|
{
|
|
219
219
|
symbol: 'DRIFT',
|
|
220
220
|
marketIndex: 15,
|
|
221
|
-
oracle: new web3_js_1.PublicKey('
|
|
222
|
-
oracleSource: __1.OracleSource.
|
|
221
|
+
oracle: new web3_js_1.PublicKey('23KmX7SNikmUr2axSCy6Zer7XPBnvmVcASALnDGqBVRR'),
|
|
222
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
223
223
|
mint: new web3_js_1.PublicKey('DriFtupJYLTosbwoN8koMbEYSx54aFAVLddWsbksjwg7'),
|
|
224
224
|
precision: new __1.BN(10).pow(numericConstants_1.SIX),
|
|
225
225
|
precisionExp: numericConstants_1.SIX,
|
|
@@ -272,13 +272,14 @@ exports.MainnetSpotMarkets = [
|
|
|
272
272
|
{
|
|
273
273
|
symbol: 'POPCAT',
|
|
274
274
|
marketIndex: 20,
|
|
275
|
-
oracle: new web3_js_1.PublicKey('
|
|
276
|
-
oracleSource: __1.OracleSource.
|
|
275
|
+
oracle: new web3_js_1.PublicKey('H3pn43tkNvsG5z3qzmERguSvKoyHZvvY6VPmNrJqiW5X'),
|
|
276
|
+
oracleSource: __1.OracleSource.PYTH_PULL,
|
|
277
277
|
mint: new web3_js_1.PublicKey('7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr'),
|
|
278
278
|
precision: new __1.BN(10).pow(numericConstants_1.NINE),
|
|
279
279
|
precisionExp: numericConstants_1.NINE,
|
|
280
280
|
launchTs: 1720013054000,
|
|
281
281
|
phoenixMarket: new web3_js_1.PublicKey('31XgvAQ1HgFQEk31KdszbPkVXKaQqB1bgYZPoDrFpSR2'),
|
|
282
|
+
pythFeedId: '0xb9312a7ee50e189ef045aa3c7842e099b061bd9bdc99ac645956c3b660dc8cce',
|
|
282
283
|
},
|
|
283
284
|
];
|
|
284
285
|
exports.SpotMarkets = {
|
package/lib/types.d.ts
CHANGED
|
@@ -947,7 +947,7 @@ export type UserStatsAccount = {
|
|
|
947
947
|
isReferrer: boolean;
|
|
948
948
|
authority: PublicKey;
|
|
949
949
|
ifStakedQuoteAssetAmount: BN;
|
|
950
|
-
|
|
950
|
+
lastFuelIfBonusUpdateTs: number;
|
|
951
951
|
fuelInsurance: number;
|
|
952
952
|
fuelDeposits: number;
|
|
953
953
|
fuelBorrows: number;
|
package/lib/user.js
CHANGED
|
@@ -592,9 +592,14 @@ class User {
|
|
|
592
592
|
// todo: get real time ifStakedGovTokenAmount using ifStakeAccount
|
|
593
593
|
if (userStats.ifStakedGovTokenAmount.gt(numericConstants_1.ZERO)) {
|
|
594
594
|
const spotMarketAccount = this.driftClient.getSpotMarketAccount(numericConstants_1.GOV_SPOT_MARKET_INDEX);
|
|
595
|
-
const fuelBonusNumeratorUserStats = now.sub(new _1.BN(userStats.
|
|
595
|
+
const fuelBonusNumeratorUserStats = now.sub(_1.BN.max(new _1.BN(userStats.lastFuelIfBonusUpdateTs), numericConstants_1.FUEL_START_TS));
|
|
596
596
|
result.insuranceFuel = result.insuranceFuel.add((0, fuel_1.calculateInsuranceFuelBonus)(spotMarketAccount, userStats.ifStakedGovTokenAmount, fuelBonusNumeratorUserStats));
|
|
597
597
|
}
|
|
598
|
+
if (userStats.ifStakedQuoteAssetAmount.gt(numericConstants_1.ZERO)) {
|
|
599
|
+
const spotMarketAccount = this.driftClient.getSpotMarketAccount(numericConstants_1.QUOTE_SPOT_MARKET_INDEX);
|
|
600
|
+
const fuelBonusNumeratorUserStats = now.sub(_1.BN.max(new _1.BN(userStats.lastFuelIfBonusUpdateTs), numericConstants_1.FUEL_START_TS));
|
|
601
|
+
result.insuranceFuel = result.insuranceFuel.add((0, fuel_1.calculateInsuranceFuelBonus)(spotMarketAccount, userStats.ifStakedQuoteAssetAmount, fuelBonusNumeratorUserStats));
|
|
602
|
+
}
|
|
598
603
|
}
|
|
599
604
|
return result;
|
|
600
605
|
}
|
package/package.json
CHANGED
|
@@ -552,9 +552,9 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
552
552
|
symbol: 'PYTH-PERP',
|
|
553
553
|
baseAssetSymbol: 'PYTH',
|
|
554
554
|
marketIndex: 18,
|
|
555
|
-
oracle: new PublicKey('
|
|
555
|
+
oracle: new PublicKey('GqkCu7CbsPVz1H6W6AAHuReqbJckYG59TXz7Y5HDV7hr'),
|
|
556
556
|
launchTs: 1700542800000,
|
|
557
|
-
oracleSource: OracleSource.
|
|
557
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
558
558
|
pythFeedId:
|
|
559
559
|
'0x0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff',
|
|
560
560
|
},
|
|
@@ -564,9 +564,9 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
564
564
|
symbol: 'TIA-PERP',
|
|
565
565
|
baseAssetSymbol: 'TIA',
|
|
566
566
|
marketIndex: 19,
|
|
567
|
-
oracle: new PublicKey('
|
|
567
|
+
oracle: new PublicKey('C6LHPUrgjrgo5eNUitC8raNEdEttfoRhmqdJ3BHVBJhi'),
|
|
568
568
|
launchTs: 1701880540000,
|
|
569
|
-
oracleSource: OracleSource.
|
|
569
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
570
570
|
pythFeedId:
|
|
571
571
|
'0x09f7c1d7dfbb7df2b8fe3d3d87ee94a2259d212da4f30c1f0540d066dfa44723',
|
|
572
572
|
},
|
|
@@ -612,9 +612,9 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
612
612
|
symbol: 'WIF-PERP',
|
|
613
613
|
baseAssetSymbol: 'WIF',
|
|
614
614
|
marketIndex: 23,
|
|
615
|
-
oracle: new PublicKey('
|
|
615
|
+
oracle: new PublicKey('6x6KfE7nY2xoLCRSMPT1u83wQ5fpGXoKNBqFjrCwzsCQ'),
|
|
616
616
|
launchTs: 1706219971000,
|
|
617
|
-
oracleSource: OracleSource.
|
|
617
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
618
618
|
pythFeedId:
|
|
619
619
|
'0x4ca4beeca86f0d164160323817a4e42b10010a724c2217c6ee41b54cd4cc61fc',
|
|
620
620
|
},
|
|
@@ -624,9 +624,9 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
624
624
|
symbol: 'JUP-PERP',
|
|
625
625
|
baseAssetSymbol: 'JUP',
|
|
626
626
|
marketIndex: 24,
|
|
627
|
-
oracle: new PublicKey('
|
|
627
|
+
oracle: new PublicKey('AwqRpfJ36jnSZQykyL1jYY35mhMteeEAjh7o8LveRQin'),
|
|
628
628
|
launchTs: 1706713201000,
|
|
629
|
-
oracleSource: OracleSource.
|
|
629
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
630
630
|
pythFeedId:
|
|
631
631
|
'0x0a0408d619e9380abad35060f9192039ed5042fa6f82301d0e48bb52be830996',
|
|
632
632
|
},
|
|
@@ -696,9 +696,9 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
696
696
|
symbol: 'DRIFT-PERP',
|
|
697
697
|
baseAssetSymbol: 'DRIFT',
|
|
698
698
|
marketIndex: 30,
|
|
699
|
-
oracle: new PublicKey('
|
|
699
|
+
oracle: new PublicKey('23KmX7SNikmUr2axSCy6Zer7XPBnvmVcASALnDGqBVRR'),
|
|
700
700
|
launchTs: 1716595200000,
|
|
701
|
-
oracleSource: OracleSource.
|
|
701
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
702
702
|
pythFeedId:
|
|
703
703
|
'0x5c1690b27bb02446db17cdda13ccc2c1d609ad6d2ef5bf4983a85ea8b6f19d07',
|
|
704
704
|
},
|
|
@@ -742,9 +742,9 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
|
|
|
742
742
|
symbol: 'POPCAT-PERP',
|
|
743
743
|
baseAssetSymbol: 'POPCAT',
|
|
744
744
|
marketIndex: 34,
|
|
745
|
-
oracle: new PublicKey('
|
|
745
|
+
oracle: new PublicKey('H3pn43tkNvsG5z3qzmERguSvKoyHZvvY6VPmNrJqiW5X'),
|
|
746
746
|
launchTs: 1720013054000,
|
|
747
|
-
oracleSource: OracleSource.
|
|
747
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
748
748
|
pythFeedId:
|
|
749
749
|
'0xb9312a7ee50e189ef045aa3c7842e099b061bd9bdc99ac645956c3b660dc8cce',
|
|
750
750
|
},
|
|
@@ -165,8 +165,8 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
|
|
|
165
165
|
{
|
|
166
166
|
symbol: 'PYTH',
|
|
167
167
|
marketIndex: 7,
|
|
168
|
-
oracle: new PublicKey('
|
|
169
|
-
oracleSource: OracleSource.
|
|
168
|
+
oracle: new PublicKey('GqkCu7CbsPVz1H6W6AAHuReqbJckYG59TXz7Y5HDV7hr'),
|
|
169
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
170
170
|
mint: new PublicKey('HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3'),
|
|
171
171
|
precision: new BN(10).pow(SIX),
|
|
172
172
|
precisionExp: SIX,
|
|
@@ -207,8 +207,8 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
|
|
|
207
207
|
{
|
|
208
208
|
symbol: 'WIF',
|
|
209
209
|
marketIndex: 10,
|
|
210
|
-
oracle: new PublicKey('
|
|
211
|
-
oracleSource: OracleSource.
|
|
210
|
+
oracle: new PublicKey('6x6KfE7nY2xoLCRSMPT1u83wQ5fpGXoKNBqFjrCwzsCQ'),
|
|
211
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
212
212
|
mint: new PublicKey('EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm'),
|
|
213
213
|
precision: new BN(10).pow(SIX),
|
|
214
214
|
precisionExp: SIX,
|
|
@@ -222,8 +222,8 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
|
|
|
222
222
|
{
|
|
223
223
|
symbol: 'JUP',
|
|
224
224
|
marketIndex: 11,
|
|
225
|
-
oracle: new PublicKey('
|
|
226
|
-
oracleSource: OracleSource.
|
|
225
|
+
oracle: new PublicKey('AwqRpfJ36jnSZQykyL1jYY35mhMteeEAjh7o8LveRQin'),
|
|
226
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
227
227
|
mint: new PublicKey('JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN'),
|
|
228
228
|
precision: new BN(10).pow(SIX),
|
|
229
229
|
precisionExp: SIX,
|
|
@@ -280,8 +280,8 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
|
|
|
280
280
|
{
|
|
281
281
|
symbol: 'DRIFT',
|
|
282
282
|
marketIndex: 15,
|
|
283
|
-
oracle: new PublicKey('
|
|
284
|
-
oracleSource: OracleSource.
|
|
283
|
+
oracle: new PublicKey('23KmX7SNikmUr2axSCy6Zer7XPBnvmVcASALnDGqBVRR'),
|
|
284
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
285
285
|
mint: new PublicKey('DriFtupJYLTosbwoN8koMbEYSx54aFAVLddWsbksjwg7'),
|
|
286
286
|
precision: new BN(10).pow(SIX),
|
|
287
287
|
precisionExp: SIX,
|
|
@@ -339,8 +339,8 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
|
|
|
339
339
|
{
|
|
340
340
|
symbol: 'POPCAT',
|
|
341
341
|
marketIndex: 20,
|
|
342
|
-
oracle: new PublicKey('
|
|
343
|
-
oracleSource: OracleSource.
|
|
342
|
+
oracle: new PublicKey('H3pn43tkNvsG5z3qzmERguSvKoyHZvvY6VPmNrJqiW5X'),
|
|
343
|
+
oracleSource: OracleSource.PYTH_PULL,
|
|
344
344
|
mint: new PublicKey('7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr'),
|
|
345
345
|
precision: new BN(10).pow(NINE),
|
|
346
346
|
precisionExp: NINE,
|
|
@@ -348,6 +348,8 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
|
|
|
348
348
|
phoenixMarket: new PublicKey(
|
|
349
349
|
'31XgvAQ1HgFQEk31KdszbPkVXKaQqB1bgYZPoDrFpSR2'
|
|
350
350
|
),
|
|
351
|
+
pythFeedId:
|
|
352
|
+
'0xb9312a7ee50e189ef045aa3c7842e099b061bd9bdc99ac645956c3b660dc8cce',
|
|
351
353
|
},
|
|
352
354
|
];
|
|
353
355
|
|
package/src/types.ts
CHANGED
|
@@ -887,7 +887,7 @@ export type UserStatsAccount = {
|
|
|
887
887
|
authority: PublicKey;
|
|
888
888
|
ifStakedQuoteAssetAmount: BN;
|
|
889
889
|
|
|
890
|
-
|
|
890
|
+
lastFuelIfBonusUpdateTs: number; // u32 onchain
|
|
891
891
|
|
|
892
892
|
fuelInsurance: number;
|
|
893
893
|
fuelDeposits: number;
|
package/src/user.ts
CHANGED
|
@@ -1011,7 +1011,7 @@ export class User {
|
|
|
1011
1011
|
this.driftClient.getSpotMarketAccount(GOV_SPOT_MARKET_INDEX);
|
|
1012
1012
|
|
|
1013
1013
|
const fuelBonusNumeratorUserStats = now.sub(
|
|
1014
|
-
new BN(userStats.
|
|
1014
|
+
BN.max(new BN(userStats.lastFuelIfBonusUpdateTs), FUEL_START_TS)
|
|
1015
1015
|
);
|
|
1016
1016
|
|
|
1017
1017
|
result.insuranceFuel = result.insuranceFuel.add(
|
|
@@ -1022,6 +1022,23 @@ export class User {
|
|
|
1022
1022
|
)
|
|
1023
1023
|
);
|
|
1024
1024
|
}
|
|
1025
|
+
|
|
1026
|
+
if (userStats.ifStakedQuoteAssetAmount.gt(ZERO)) {
|
|
1027
|
+
const spotMarketAccount: SpotMarketAccount =
|
|
1028
|
+
this.driftClient.getSpotMarketAccount(QUOTE_SPOT_MARKET_INDEX);
|
|
1029
|
+
|
|
1030
|
+
const fuelBonusNumeratorUserStats = now.sub(
|
|
1031
|
+
BN.max(new BN(userStats.lastFuelIfBonusUpdateTs), FUEL_START_TS)
|
|
1032
|
+
);
|
|
1033
|
+
|
|
1034
|
+
result.insuranceFuel = result.insuranceFuel.add(
|
|
1035
|
+
calculateInsuranceFuelBonus(
|
|
1036
|
+
spotMarketAccount,
|
|
1037
|
+
userStats.ifStakedQuoteAssetAmount,
|
|
1038
|
+
fuelBonusNumeratorUserStats
|
|
1039
|
+
)
|
|
1040
|
+
);
|
|
1041
|
+
}
|
|
1025
1042
|
}
|
|
1026
1043
|
|
|
1027
1044
|
return result;
|