@meteora-ag/cp-amm-sdk 1.0.1-rc.8 → 1.0.1-rc.9

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.mjs CHANGED
@@ -6803,6 +6803,16 @@ var getPriceImpact = (amount, amountWithoutSlippage) => {
6803
6803
  return new Decimal2(diff.toString()).div(new Decimal2(amountWithoutSlippage.toString())).mul(100).toNumber();
6804
6804
  };
6805
6805
 
6806
+ // src/utils/accountFilters.ts
6807
+ var positionByPoolFilter = (pool) => {
6808
+ return {
6809
+ memcmp: {
6810
+ bytes: pool.toBase58(),
6811
+ offset: 8
6812
+ }
6813
+ };
6814
+ };
6815
+
6806
6816
  // src/CpAmm.ts
6807
6817
  var CpAmm = class {
6808
6818
  constructor(connection) {
@@ -6898,6 +6908,27 @@ var CpAmm = class {
6898
6908
  return poolAccounts;
6899
6909
  });
6900
6910
  }
6911
+ getUserPositionByPool(pool, user) {
6912
+ return __async(this, null, function* () {
6913
+ const positions = yield this._program.account.position.all([
6914
+ positionByPoolFilter(pool)
6915
+ ]);
6916
+ const result = [];
6917
+ for (const position of positions) {
6918
+ const largesTokenAccount = yield this._program.provider.connection.getTokenLargestAccounts(
6919
+ position.account.nftMint
6920
+ );
6921
+ const accountInfo = yield this._program.provider.connection.getParsedAccountInfo(
6922
+ largesTokenAccount.value[0].address
6923
+ );
6924
+ const owner = new PublicKey5(accountInfo.value.data.parsed.info.owner);
6925
+ if (owner.equals(user)) {
6926
+ result.push(position);
6927
+ }
6928
+ }
6929
+ return result;
6930
+ });
6931
+ }
6901
6932
  getPositionsByUser(user) {
6902
6933
  return __async(this, null, function* () {
6903
6934
  const positions = yield this._program.account.position.all();