@meteora-ag/dlmm 1.0.39-rc.26 → 1.0.39-rc.28

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/dist/index.d.ts CHANGED
@@ -5311,7 +5311,7 @@ declare class DLMM {
5311
5311
  * @returns {Promise<Transaction>}
5312
5312
  */
5313
5313
  syncWithMarketPrice(marketPrice: number, owner: PublicKey): Promise<Transaction>;
5314
- getMaxPrice(binArrays?: BinArrayAccount[]): Promise<string>;
5314
+ getMaxPrice(): Promise<string>;
5315
5315
  /** Private static method */
5316
5316
  private static getBinArrays;
5317
5317
  private static getClaimableLMReward;
@@ -5357,7 +5357,7 @@ declare function getBinArrayLowerUpperBinId(binArrayIndex: BN): BN[];
5357
5357
  declare function isBinIdWithinBinArray(activeId: BN, binArrayIndex: BN): boolean;
5358
5358
  declare function getBinFromBinArray(binId: number, binArray: BinArray): Bin;
5359
5359
  declare function findNextBinArrayIndexWithLiquidity(swapForY: boolean, activeId: BN, lbPairState: LbPair, binArrayBitmapExtension: BinArrayBitmapExtension | null): BN | null;
5360
- declare function findNextBinArrayWithLiquidity(swapForY: boolean, activeBinId: BN, lbPairState: LbPair, binArrayBitmapExtension: BinArrayBitmapExtension, binArrays: BinArrayAccount[]): BinArrayAccount | null;
5360
+ declare function findNextBinArrayWithLiquidity(swapForY: boolean, activeBinId: BN, lbPairState: LbPair, binArrayBitmapExtension: BinArrayBitmapExtension | null, binArrays: BinArrayAccount[]): BinArrayAccount | null;
5361
5361
 
5362
5362
  declare function getPriceOfBinByBinId(binId: number, binStep: number): Decimal;
5363
5363
  /** private */
package/dist/index.js CHANGED
@@ -9898,39 +9898,26 @@ var DLMM = class {
9898
9898
  lastValidBlockHeight
9899
9899
  }).add(syncWithMarketPriceTx);
9900
9900
  }
9901
- async getMaxPrice(binArrays) {
9902
- const _binArrays = binArrays || await this.getBinArrays();
9903
- const sortedBinArrays = _binArrays.sort(
9904
- ({ account: { index: indexA } }, { account: { index: indexB } }) => indexA.toNumber() - indexB.toNumber()
9901
+ async getMaxPrice() {
9902
+ const binArrayIndex = findNextBinArrayIndexWithLiquidity(
9903
+ false,
9904
+ new (0, _anchor.BN)(this.lbPair.parameters.maxBinId),
9905
+ this.lbPair,
9906
+ _nullishCoalesce(_optionalChain([this, 'access', _67 => _67.binArrayBitmapExtension, 'optionalAccess', _68 => _68.account]), () => ( null))
9905
9907
  );
9906
- console.log(
9907
- "\u{1F680} ~ binArrays:",
9908
- _optionalChain([sortedBinArrays, 'optionalAccess', _67 => _67.flatMap, 'call', _68 => _68(
9909
- ({ account: { bins } }) => bins.map(({ amountX, amountY, price }) => ({
9910
- amountX: amountX.toString(),
9911
- amountY: amountY.toString(),
9912
- price: this.fromPricePerLamport(Number(price) / (2 ** 64 - 1))
9913
- }))
9914
- )])
9908
+ const [binArrayPubkey] = deriveBinArray(
9909
+ this.pubkey,
9910
+ binArrayIndex,
9911
+ this.program.programId
9915
9912
  );
9916
- let count = sortedBinArrays.length - 1;
9917
- let binPriceWithLastLiquidity;
9918
- while (count >= 0) {
9919
- const binArray = sortedBinArrays[count];
9920
- if (binArray) {
9921
- const bins = binArray.account.bins.reverse();
9922
- if (bins.every(({ amountX }) => amountX.isZero())) {
9923
- count--;
9924
- } else {
9925
- const lastBinWithLiquidityIndex = bins.findLastIndex(
9926
- ({ amountX }) => !amountX.isZero()
9927
- );
9928
- binPriceWithLastLiquidity = bins[lastBinWithLiquidityIndex].price.toString();
9929
- count = -1;
9930
- }
9931
- }
9932
- }
9933
- console.log(binPriceWithLastLiquidity);
9913
+ const binArrayAccount = await this.program.account.binArray.fetch(
9914
+ binArrayPubkey
9915
+ );
9916
+ const { bins } = binArrayAccount;
9917
+ const lastBinWithLiquidityIndex = bins.findLastIndex(
9918
+ ({ amountX }) => !amountX.isZero()
9919
+ );
9920
+ const binPriceWithLastLiquidity = bins[lastBinWithLiquidityIndex].price.toString();
9934
9921
  return this.fromPricePerLamport(
9935
9922
  Number(binPriceWithLastLiquidity) / (2 ** 64 - 1)
9936
9923
  );