@drift-labs/sdk 2.42.0-beta.7 → 2.42.0-beta.8
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
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.42.0-beta.
|
|
1
|
+
2.42.0-beta.8
|
|
@@ -50,6 +50,7 @@ export declare const AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO: any;
|
|
|
50
50
|
export declare const MARGIN_PRECISION: any;
|
|
51
51
|
export declare const BID_ASK_SPREAD_PRECISION: any;
|
|
52
52
|
export declare const LIQUIDATION_PCT_PRECISION: any;
|
|
53
|
+
export declare const FUNDING_RATE_OFFSET_DENOMINATOR: any;
|
|
53
54
|
export declare const FIVE_MINUTE: any;
|
|
54
55
|
export declare const ONE_HOUR: any;
|
|
55
56
|
export declare const ONE_YEAR: any;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_RATE_BUFFER_PRECISION = exports.FUNDING_RATE_PRECISION = exports.PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.SPOT_MARKET_IMF_PRECISION = exports.SPOT_MARKET_IMF_PRECISION_EXP = exports.SPOT_MARKET_BALANCE_PRECISION = exports.SPOT_MARKET_BALANCE_PRECISION_EXP = exports.SPOT_MARKET_WEIGHT_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = exports.SPOT_MARKET_RATE_PRECISION = exports.SPOT_MARKET_RATE_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.PRICE_PRECISION_EXP = exports.FUNDING_RATE_BUFFER_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.CONCENTRATION_PRECISION = exports.PERCENTAGE_PRECISION = exports.PERCENTAGE_PRECISION_EXP = exports.MAX_LEVERAGE_ORDER_SIZE = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.NINE = exports.EIGHT = exports.SEVEN = exports.SIX = exports.FIVE = exports.FOUR = exports.THREE = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
|
-
exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = void 0;
|
|
4
|
+
exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = void 0;
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
const __1 = require("../");
|
|
7
7
|
exports.ZERO = new __1.BN(0);
|
|
@@ -56,6 +56,7 @@ exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.m
|
|
|
56
56
|
exports.MARGIN_PRECISION = exports.TEN_THOUSAND;
|
|
57
57
|
exports.BID_ASK_SPREAD_PRECISION = new __1.BN(1000000); // 10^6
|
|
58
58
|
exports.LIQUIDATION_PCT_PRECISION = exports.TEN_THOUSAND;
|
|
59
|
+
exports.FUNDING_RATE_OFFSET_DENOMINATOR = new __1.BN(5000);
|
|
59
60
|
exports.FIVE_MINUTE = new __1.BN(60 * 5);
|
|
60
61
|
exports.ONE_HOUR = new __1.BN(60 * 60);
|
|
61
62
|
exports.ONE_YEAR = new __1.BN(31536000);
|
package/lib/math/funding.js
CHANGED
|
@@ -72,7 +72,8 @@ async function calculateAllEstimatedFundingRate(market, oraclePriceData, markPri
|
|
|
72
72
|
// console.log('shrink orac:', liveOracleTwap.toString(), '->', oracleTwap.toString());
|
|
73
73
|
// }
|
|
74
74
|
const twapSpread = markTwap.sub(oracleTwap);
|
|
75
|
-
const
|
|
75
|
+
const twapSpreadWithOffset = twapSpread.add(anchor_1.BN.abs(oracleTwap).div(numericConstants_1.FUNDING_RATE_OFFSET_DENOMINATOR));
|
|
76
|
+
const twapSpreadPct = twapSpreadWithOffset
|
|
76
77
|
.mul(numericConstants_1.PRICE_PRECISION)
|
|
77
78
|
.mul(new anchor_1.BN(100))
|
|
78
79
|
.div(oracleTwap);
|
package/package.json
CHANGED
|
@@ -83,6 +83,7 @@ export const AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO =
|
|
|
83
83
|
export const MARGIN_PRECISION = TEN_THOUSAND;
|
|
84
84
|
export const BID_ASK_SPREAD_PRECISION = new BN(1000000); // 10^6
|
|
85
85
|
export const LIQUIDATION_PCT_PRECISION = TEN_THOUSAND;
|
|
86
|
+
export const FUNDING_RATE_OFFSET_DENOMINATOR = new BN(5000);
|
|
86
87
|
|
|
87
88
|
export const FIVE_MINUTE = new BN(60 * 5);
|
|
88
89
|
export const ONE_HOUR = new BN(60 * 60);
|
package/src/math/funding.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
QUOTE_PRECISION,
|
|
6
6
|
ZERO,
|
|
7
7
|
ONE,
|
|
8
|
+
FUNDING_RATE_OFFSET_DENOMINATOR,
|
|
8
9
|
} from '../constants/numericConstants';
|
|
9
10
|
import { PerpMarketAccount, isVariant } from '../types';
|
|
10
11
|
import { OraclePriceData } from '../oracles/types';
|
|
@@ -156,7 +157,11 @@ export async function calculateAllEstimatedFundingRate(
|
|
|
156
157
|
// }
|
|
157
158
|
|
|
158
159
|
const twapSpread = markTwap.sub(oracleTwap);
|
|
159
|
-
const
|
|
160
|
+
const twapSpreadWithOffset = twapSpread.add(
|
|
161
|
+
BN.abs(oracleTwap).div(FUNDING_RATE_OFFSET_DENOMINATOR)
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
const twapSpreadPct = twapSpreadWithOffset
|
|
160
165
|
.mul(PRICE_PRECISION)
|
|
161
166
|
.mul(new BN(100))
|
|
162
167
|
.div(oracleTwap);
|