@drift-labs/sdk 2.125.0-beta.0 → 2.125.0-beta.1

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.125.0-beta.0
1
+ 2.125.0-beta.1
@@ -99,7 +99,8 @@ function calculateLiveOracleStd(amm, oraclePriceData, now) {
99
99
  const sinceLastUpdate = index_1.BN.max(numericConstants_1.ONE, now.sub(amm.historicalOracleData.lastOraclePriceTwapTs));
100
100
  const sinceStart = index_1.BN.max(numericConstants_1.ZERO, amm.fundingPeriod.sub(sinceLastUpdate));
101
101
  const liveOracleTwap = calculateLiveOracleTwap(amm.historicalOracleData, oraclePriceData, now, amm.fundingPeriod);
102
- const priceDeltaVsTwap = oraclePriceData.price.sub(liveOracleTwap).abs();
102
+ const liveOracleTwap5MIN = calculateLiveOracleTwap(amm.historicalOracleData, oraclePriceData, now, numericConstants_1.FIVE_MINUTE);
103
+ const priceDeltaVsTwap = index_1.BN.max(oraclePriceData.price.sub(liveOracleTwap).abs(), oraclePriceData.price.sub(liveOracleTwap5MIN).abs());
103
104
  const oracleStd = priceDeltaVsTwap.add(amm.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate)));
104
105
  return oracleStd;
105
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../../src/math/oracles.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAa,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUnD,OAAO,EACN,EAAE,EACF,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAC7C,CAAC,EAAE,EAAE,EAAE,CAAC,CAUV;AAED,wBAAgB,kCAAkC,CACjD,MAAM,EAAE,iBAAiB,GACvB,EAAE,CAcJ;AAED,wBAAgB,aAAa,CAC5B,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,GACV,OAAO,CAmCT;AAED,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,EAAE,GACL,OAAO,CAsBT;AAED,wBAAgB,uBAAuB,CACtC,cAAc,EAAE,oBAAoB,EACpC,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,EAAE,EACP,MAAM,EAAE,EAAE,GACR,EAAE,CA6BJ;AAED,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,EAAE,GACL,EAAE,CAqBJ;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,EAAE,EAChB,GAAG,EAAE,EAAE,GACL,EAAE,CAwBJ;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAe5D;AAED,wBAAgB,+BAA+B,CAC9C,iBAAiB,EAAE,YAAY,EAC/B,kBAAkB,EAAE,YAAY,GAC9B;IAAE,SAAS,EAAE,EAAE,CAAC;IAAC,WAAW,EAAE,EAAE,CAAA;CAAE,CA0DpC"}
1
+ {"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../../src/math/oracles.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAa,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUnD,OAAO,EACN,EAAE,EACF,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAC7C,CAAC,EAAE,EAAE,EAAE,CAAC,CAUV;AAED,wBAAgB,kCAAkC,CACjD,MAAM,EAAE,iBAAiB,GACvB,EAAE,CAcJ;AAED,wBAAgB,aAAa,CAC5B,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,GACV,OAAO,CAmCT;AAED,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,EAAE,GACL,OAAO,CAsBT;AAED,wBAAgB,uBAAuB,CACtC,cAAc,EAAE,oBAAoB,EACpC,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,EAAE,EACP,MAAM,EAAE,EAAE,GACR,EAAE,CA6BJ;AAED,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,EAAE,GACL,EAAE,CA+BJ;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,EAAE,EAChB,GAAG,EAAE,EAAE,GACL,EAAE,CAwBJ;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAe5D;AAED,wBAAgB,+BAA+B,CAC9C,iBAAiB,EAAE,YAAY,EAC/B,kBAAkB,EAAE,YAAY,GAC9B;IAAE,SAAS,EAAE,EAAE,CAAC;IAAC,WAAW,EAAE,EAAE,CAAA;CAAE,CA0DpC"}
@@ -99,7 +99,8 @@ function calculateLiveOracleStd(amm, oraclePriceData, now) {
99
99
  const sinceLastUpdate = index_1.BN.max(numericConstants_1.ONE, now.sub(amm.historicalOracleData.lastOraclePriceTwapTs));
100
100
  const sinceStart = index_1.BN.max(numericConstants_1.ZERO, amm.fundingPeriod.sub(sinceLastUpdate));
101
101
  const liveOracleTwap = calculateLiveOracleTwap(amm.historicalOracleData, oraclePriceData, now, amm.fundingPeriod);
102
- const priceDeltaVsTwap = oraclePriceData.price.sub(liveOracleTwap).abs();
102
+ const liveOracleTwap5MIN = calculateLiveOracleTwap(amm.historicalOracleData, oraclePriceData, now, numericConstants_1.FIVE_MINUTE);
103
+ const priceDeltaVsTwap = index_1.BN.max(oraclePriceData.price.sub(liveOracleTwap).abs(), oraclePriceData.price.sub(liveOracleTwap5MIN).abs());
103
104
  const oracleStd = priceDeltaVsTwap.add(amm.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate)));
104
105
  return oracleStd;
105
106
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.125.0-beta.0",
3
+ "version": "2.125.0-beta.1",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "browser": "./lib/browser/index.js",
@@ -3960,6 +3960,46 @@ export class AdminClient extends DriftClient {
3960
3960
  );
3961
3961
  }
3962
3962
 
3963
+ public async updatePerpMarketOracleSlotDelayOverride(
3964
+ perpMarketIndex: number,
3965
+ oracleSlotDelay: number
3966
+ ): Promise<TransactionSignature> {
3967
+ const updatePerpMarketOracleSlotDelayOverrideIx =
3968
+ await this.getUpdatePerpMarketOracleSlotDelayOverrideIx(
3969
+ perpMarketIndex,
3970
+ oracleSlotDelay
3971
+ );
3972
+ const tx = await this.buildTransaction(
3973
+ updatePerpMarketOracleSlotDelayOverrideIx
3974
+ );
3975
+ const { txSig } = await this.sendTransaction(tx, [], this.opts);
3976
+
3977
+ return txSig;
3978
+ }
3979
+
3980
+ public async getUpdatePerpMarketOracleSlotDelayOverrideIx(
3981
+ perpMarketIndex: number,
3982
+ oracleSlotDelay: number
3983
+ ): Promise<TransactionInstruction> {
3984
+ const perpMarketPublicKey = await getPerpMarketPublicKey(
3985
+ this.program.programId,
3986
+ perpMarketIndex
3987
+ );
3988
+
3989
+ return await this.program.instruction.updatePerpMarketOracleSlotDelayOverride(
3990
+ oracleSlotDelay,
3991
+ {
3992
+ accounts: {
3993
+ admin: this.useHotWalletAdmin
3994
+ ? this.wallet.publicKey
3995
+ : this.getStateAccount().admin,
3996
+ state: await this.getStatePublicKey(),
3997
+ perpMarket: perpMarketPublicKey,
3998
+ },
3999
+ }
4000
+ );
4001
+ }
4002
+
3963
4003
  public async updatePerpMarketAmmSpreadAdjustment(
3964
4004
  perpMarketIndex: number,
3965
4005
  ammSpreadAdjustment: number
@@ -175,7 +175,17 @@ export function calculateLiveOracleStd(
175
175
  amm.fundingPeriod
176
176
  );
177
177
 
178
- const priceDeltaVsTwap = oraclePriceData.price.sub(liveOracleTwap).abs();
178
+ const liveOracleTwap5MIN = calculateLiveOracleTwap(
179
+ amm.historicalOracleData,
180
+ oraclePriceData,
181
+ now,
182
+ FIVE_MINUTE
183
+ );
184
+
185
+ const priceDeltaVsTwap = BN.max(
186
+ oraclePriceData.price.sub(liveOracleTwap).abs(),
187
+ oraclePriceData.price.sub(liveOracleTwap5MIN).abs()
188
+ );
179
189
 
180
190
  const oracleStd = priceDeltaVsTwap.add(
181
191
  amm.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate))