From 4de402afa2c17e9deddb41b86ca3183d30d29200 Mon Sep 17 00:00:00 2001 From: DivyanshGupta Date: Wed, 1 Oct 2025 15:44:31 +0530 Subject: [PATCH 1/2] Assign position created at launchpad token graduation correctly --- src/chaincode/dex/addLiquidity.ts | 1 + src/chaincode/dex/position.helper.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/chaincode/dex/addLiquidity.ts b/src/chaincode/dex/addLiquidity.ts index 5d5d3b2..fbdb9bb 100644 --- a/src/chaincode/dex/addLiquidity.ts +++ b/src/chaincode/dex/addLiquidity.ts @@ -88,6 +88,7 @@ export async function addLiquidity( tickUpper, tickLower, dto.uniqueKey, + liquidityProvider, dto.positionId ); const { tickUpperData, tickLowerData } = await fetchOrCreateTickDataPair( diff --git a/src/chaincode/dex/position.helper.ts b/src/chaincode/dex/position.helper.ts index 859888d..52914fc 100644 --- a/src/chaincode/dex/position.helper.ts +++ b/src/chaincode/dex/position.helper.ts @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ChainError, NotFoundError } from "@gala-chain/api"; +import { ChainError, NotFoundError, UserAlias } from "@gala-chain/api"; import { GalaChainContext, getObjectByKey, putChainObject } from "@gala-chain/chaincode"; import { keccak256 } from "js-sha3"; @@ -36,11 +36,12 @@ export async function fetchOrCreateDexPosition( tickUpper: number, tickLower: number, uniqueKey: string, + liquidityProvider: UserAlias, positionId?: string ): Promise { const poolHash = pool.genPoolHash(); const tickRange = genTickRange(tickLower, tickUpper); - const emptyUserPosition = new DexPositionOwner(ctx.callingUser, poolHash); + const emptyUserPosition = new DexPositionOwner(liquidityProvider, poolHash); // Fetch or initialize positionHolder's DEX position owner record const fetchedUserPosition = await getObjectByKey( From 2edec71f213318391a3951388ad9da91edc63238 Mon Sep 17 00:00:00 2001 From: DivyanshGupta Date: Wed, 1 Oct 2025 20:12:43 +0530 Subject: [PATCH 2/2] Update comment header --- src/chaincode/dex/position.helper.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/chaincode/dex/position.helper.ts b/src/chaincode/dex/position.helper.ts index 52914fc..07cd30b 100644 --- a/src/chaincode/dex/position.helper.ts +++ b/src/chaincode/dex/position.helper.ts @@ -27,8 +27,12 @@ import { genTickRange, getUserPositionIds } from "./dexUtils"; * @param pool - The liquidity pool in which this position exists * @param tickUpper - The upper bound of the tick range * @param tickLower - The lower bound of the tick range - * @param owner - (Optional) The user address; defaults to the calling user + * @param uniqueKey - A unique key used to deterministically generate a position ID if none exists + * @param liquidityProvider - The user address or alias of the liquidity provider + * @param positionId - (Optional) The explicit position ID to fetch; if not provided, one is derived from the tick range * @returns The DexPositionData object representing the user's position + * @throws NotFoundError - If the provided positionId does not match the given tick range + * @throws ValidationError - If the user’s position record fails validation */ export async function fetchOrCreateDexPosition( ctx: GalaChainContext,