@drift-labs/sdk 2.144.0-beta.0 → 2.144.0-beta.2

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.144.0-beta.0
1
+ 2.144.0-beta.2
@@ -1287,6 +1287,17 @@ exports.MainnetPerpMarkets = [
1287
1287
  oracleSource: types_1.OracleSource.PYTH_LAZER_1K,
1288
1288
  pythLazerId: 1578,
1289
1289
  },
1290
+ {
1291
+ fullName: 'Meteroa',
1292
+ category: ['Solana', 'DEX'],
1293
+ symbol: 'MET-PERP',
1294
+ baseAssetSymbol: 'MET',
1295
+ marketIndex: 82,
1296
+ oracle: new web3_js_1.PublicKey('HN7qfUNM5Q7gQTwyEucmYdCF4CjwUrspj3DbNQ4V8P52'),
1297
+ launchTs: 1761225524000,
1298
+ oracleSource: types_1.OracleSource.PYTH_LAZER,
1299
+ pythLazerId: 2382,
1300
+ },
1290
1301
  ];
1291
1302
  exports.PerpMarkets = {
1292
1303
  devnet: exports.DevnetPerpMarkets,
@@ -851,6 +851,19 @@ exports.MainnetSpotMarkets = [
851
851
  pythLazerId: 2316,
852
852
  launchTs: 1759412919000,
853
853
  },
854
+ {
855
+ symbol: 'MET',
856
+ marketIndex: 60,
857
+ poolId: 0,
858
+ oracle: new web3_js_1.PublicKey('HN7qfUNM5Q7gQTwyEucmYdCF4CjwUrspj3DbNQ4V8P52'),
859
+ oracleSource: types_1.OracleSource.PYTH_LAZER,
860
+ mint: new web3_js_1.PublicKey('METvsvVRapdj9cFLzq4Tr43xK4tAjQfwX76z3n6mWQL'),
861
+ precision: new anchor_1.BN(10).pow(numericConstants_1.SIX),
862
+ precisionExp: numericConstants_1.SIX,
863
+ pythFeedId: '0x0292e0f405bcd4a496d34e48307f6787349ad2bcd8505c3d3a9f77d81a67a682',
864
+ pythLazerId: 2382,
865
+ launchTs: 1761225524000,
866
+ },
854
867
  ];
855
868
  exports.SpotMarkets = {
856
869
  devnet: exports.DevnetSpotMarkets,
@@ -34,4 +34,4 @@ export declare function calculateOrderBaseAssetAmount(order: Order, existingBase
34
34
  * - BN size (>=0) if bounded
35
35
  * - null if impossible (target < liabilityWeight) OR imfFactor == 0 (unbounded)
36
36
  */
37
- export declare function maxSizeForTargetLiabilityWeightBN(target: BN, imfFactor: BN, liabilityWeight: BN): BN | null;
37
+ export declare function maxSizeForTargetLiabilityWeightBN(target: BN, imfFactor: BN, liabilityWeight: BN, market: PerpMarketAccount): BN | null;
@@ -277,7 +277,7 @@ exports.calculateOrderBaseAssetAmount = calculateOrderBaseAssetAmount;
277
277
  * - BN size (>=0) if bounded
278
278
  * - null if impossible (target < liabilityWeight) OR imfFactor == 0 (unbounded)
279
279
  */
280
- function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight) {
280
+ function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight, market) {
281
281
  if (target.lt(liabilityWeight))
282
282
  return null;
283
283
  if (imfFactor.isZero())
@@ -307,6 +307,11 @@ function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight) {
307
307
  hi = mid.sub(numericConstants_1.ONE);
308
308
  }
309
309
  }
310
+ // cap at max OI
311
+ const maxOpenInterest = market.amm.maxOpenInterest;
312
+ if (lo.gt(maxOpenInterest)) {
313
+ return maxOpenInterest;
314
+ }
310
315
  return lo;
311
316
  }
312
317
  exports.maxSizeForTargetLiabilityWeightBN = maxSizeForTargetLiabilityWeightBN;
@@ -1 +1 @@
1
- {"version":3,"file":"perpMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/perpMarkets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA6W/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EA8+BhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
1
+ {"version":3,"file":"perpMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/perpMarkets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA6W/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAy/BhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
@@ -1287,6 +1287,17 @@ exports.MainnetPerpMarkets = [
1287
1287
  oracleSource: types_1.OracleSource.PYTH_LAZER_1K,
1288
1288
  pythLazerId: 1578,
1289
1289
  },
1290
+ {
1291
+ fullName: 'Meteroa',
1292
+ category: ['Solana', 'DEX'],
1293
+ symbol: 'MET-PERP',
1294
+ baseAssetSymbol: 'MET',
1295
+ marketIndex: 82,
1296
+ oracle: new web3_js_1.PublicKey('HN7qfUNM5Q7gQTwyEucmYdCF4CjwUrspj3DbNQ4V8P52'),
1297
+ launchTs: 1761225524000,
1298
+ oracleSource: types_1.OracleSource.PYTH_LAZER,
1299
+ pythLazerId: 2382,
1300
+ },
1290
1301
  ];
1291
1302
  exports.PerpMarkets = {
1292
1303
  devnet: exports.DevnetPerpMarkets,
@@ -1 +1 @@
1
- {"version":3,"file":"spotMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/spotMarkets.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAuH/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAkzBhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
1
+ {"version":3,"file":"spotMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/spotMarkets.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAuH/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAg0BhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
@@ -851,6 +851,19 @@ exports.MainnetSpotMarkets = [
851
851
  pythLazerId: 2316,
852
852
  launchTs: 1759412919000,
853
853
  },
854
+ {
855
+ symbol: 'MET',
856
+ marketIndex: 60,
857
+ poolId: 0,
858
+ oracle: new web3_js_1.PublicKey('HN7qfUNM5Q7gQTwyEucmYdCF4CjwUrspj3DbNQ4V8P52'),
859
+ oracleSource: types_1.OracleSource.PYTH_LAZER,
860
+ mint: new web3_js_1.PublicKey('METvsvVRapdj9cFLzq4Tr43xK4tAjQfwX76z3n6mWQL'),
861
+ precision: new anchor_1.BN(10).pow(numericConstants_1.SIX),
862
+ precisionExp: numericConstants_1.SIX,
863
+ pythFeedId: '0x0292e0f405bcd4a496d34e48307f6787349ad2bcd8505c3d3a9f77d81a67a682',
864
+ pythLazerId: 2382,
865
+ launchTs: 1761225524000,
866
+ },
854
867
  ];
855
868
  exports.SpotMarkets = {
856
869
  devnet: exports.DevnetSpotMarkets,
@@ -34,5 +34,5 @@ export declare function calculateOrderBaseAssetAmount(order: Order, existingBase
34
34
  * - BN size (>=0) if bounded
35
35
  * - null if impossible (target < liabilityWeight) OR imfFactor == 0 (unbounded)
36
36
  */
37
- export declare function maxSizeForTargetLiabilityWeightBN(target: BN, imfFactor: BN, liabilityWeight: BN): BN | null;
37
+ export declare function maxSizeForTargetLiabilityWeightBN(target: BN, imfFactor: BN, liabilityWeight: BN, market: PerpMarketAccount): BN | null;
38
38
  //# sourceMappingURL=orders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../src/math/orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../src/math/orders.ts"],"names":[],"mappings":"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"}
@@ -277,7 +277,7 @@ exports.calculateOrderBaseAssetAmount = calculateOrderBaseAssetAmount;
277
277
  * - BN size (>=0) if bounded
278
278
  * - null if impossible (target < liabilityWeight) OR imfFactor == 0 (unbounded)
279
279
  */
280
- function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight) {
280
+ function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight, market) {
281
281
  if (target.lt(liabilityWeight))
282
282
  return null;
283
283
  if (imfFactor.isZero())
@@ -307,6 +307,11 @@ function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight) {
307
307
  hi = mid.sub(numericConstants_1.ONE);
308
308
  }
309
309
  }
310
+ // cap at max OI
311
+ const maxOpenInterest = market.amm.maxOpenInterest;
312
+ if (lo.gt(maxOpenInterest)) {
313
+ return maxOpenInterest;
314
+ }
310
315
  return lo;
311
316
  }
312
317
  exports.maxSizeForTargetLiabilityWeightBN = maxSizeForTargetLiabilityWeightBN;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.144.0-beta.0",
3
+ "version": "2.144.0-beta.2",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "module": "./lib/browser/index.js",
@@ -1388,6 +1388,17 @@ export const MainnetPerpMarkets: PerpMarketConfig[] = [
1388
1388
  oracleSource: OracleSource.PYTH_LAZER_1K,
1389
1389
  pythLazerId: 1578,
1390
1390
  },
1391
+ {
1392
+ fullName: 'Meteroa',
1393
+ category: ['Solana', 'DEX'],
1394
+ symbol: 'MET-PERP',
1395
+ baseAssetSymbol: 'MET',
1396
+ marketIndex: 82,
1397
+ oracle: new PublicKey('HN7qfUNM5Q7gQTwyEucmYdCF4CjwUrspj3DbNQ4V8P52'),
1398
+ launchTs: 1761225524000,
1399
+ oracleSource: OracleSource.PYTH_LAZER,
1400
+ pythLazerId: 2382,
1401
+ },
1391
1402
  ];
1392
1403
 
1393
1404
  export const PerpMarkets: { [key in DriftEnv]: PerpMarketConfig[] } = {
@@ -973,6 +973,20 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
973
973
  pythLazerId: 2316,
974
974
  launchTs: 1759412919000,
975
975
  },
976
+ {
977
+ symbol: 'MET',
978
+ marketIndex: 60,
979
+ poolId: 0,
980
+ oracle: new PublicKey('HN7qfUNM5Q7gQTwyEucmYdCF4CjwUrspj3DbNQ4V8P52'),
981
+ oracleSource: OracleSource.PYTH_LAZER,
982
+ mint: new PublicKey('METvsvVRapdj9cFLzq4Tr43xK4tAjQfwX76z3n6mWQL'),
983
+ precision: new BN(10).pow(SIX),
984
+ precisionExp: SIX,
985
+ pythFeedId:
986
+ '0x0292e0f405bcd4a496d34e48307f6787349ad2bcd8505c3d3a9f77d81a67a682',
987
+ pythLazerId: 2382,
988
+ launchTs: 1761225524000,
989
+ },
976
990
  ];
977
991
 
978
992
  export const SpotMarkets: { [key in DriftEnv]: SpotMarketConfig[] } = {
@@ -459,7 +459,8 @@ export function calculateOrderBaseAssetAmount(
459
459
  export function maxSizeForTargetLiabilityWeightBN(
460
460
  target: BN,
461
461
  imfFactor: BN,
462
- liabilityWeight: BN
462
+ liabilityWeight: BN,
463
+ market: PerpMarketAccount
463
464
  ): BN | null {
464
465
  if (target.lt(liabilityWeight)) return null;
465
466
  if (imfFactor.isZero()) return null;
@@ -506,5 +507,11 @@ export function maxSizeForTargetLiabilityWeightBN(
506
507
  }
507
508
  }
508
509
 
510
+ // cap at max OI
511
+ const maxOpenInterest = market.amm.maxOpenInterest;
512
+ if (lo.gt(maxOpenInterest)) {
513
+ return maxOpenInterest;
514
+ }
515
+
509
516
  return lo;
510
517
  }