diff --git a/lib/client/rpc/market-clients/ammMarkets.ts b/lib/client/rpc/market-clients/ammMarkets.ts index 2576c82..f8831b2 100644 --- a/lib/client/rpc/market-clients/ammMarkets.ts +++ b/lib/client/rpc/market-clients/ammMarkets.ts @@ -66,6 +66,10 @@ export class FutarchyAmmMarketsRPCClient implements FutarchyAmmMarketsClient { ammAccount.quoteMint, this.rpcProvider ); + const lpToken = await enrichTokenMetadata( + ammAccount.lpMint, + this.rpcProvider + ); const ammMintAccountSupply = await this.rpcProvider.connection.getTokenSupply(ammAccount.lpMint); @@ -73,6 +77,7 @@ export class FutarchyAmmMarketsRPCClient implements FutarchyAmmMarketsClient { return { baseAmount: ammAccount.baseAmount, quoteAmount: ammAccount.quoteAmount, + lpToken, lpMintSupply: parseInt(ammMintAccountSupply.value.amount), baseMint: ammAccount.baseMint, baseToken, @@ -245,16 +250,25 @@ export class FutarchyAmmMarketsRPCClient implements FutarchyAmmMarketsClient { quoteAmountArg ); - const simulationBase = - simulation.baseAmount.toNumber() / 10 ** ammMarket.baseToken.decimals; - const simulationQuote = - simulation.quoteAmount.toNumber() / 10 ** ammMarket.quoteToken.decimals; + const simulationBase = PriceMath.getHumanAmount( + simulation.baseAmount, + ammMarket.baseToken.decimals + ); + const simulationQuote = PriceMath.getHumanAmount( + simulation.quoteAmount, + ammMarket.quoteToken.decimals + ); + + const simulationExpectedLp = PriceMath.getHumanAmount( + simulation.expectedLpTokens, + ammMarket.lpToken.decimals + ); return { baseAmount: simulationBase, quoteAmount: simulationQuote, // warning this value is not divided by the lot size of the LP tokens - expectedLpTokens: simulation.expectedLpTokens.toNumber() + expectedLpTokens: simulationExpectedLp }; } diff --git a/lib/types/amm.ts b/lib/types/amm.ts index a23d37f..322d143 100644 --- a/lib/types/amm.ts +++ b/lib/types/amm.ts @@ -1,6 +1,7 @@ import { PublicKey } from "@solana/web3.js"; import { Market, MarketFetchRequest } from "./markets"; import { BN } from "@coral-xyz/anchor"; +import { TokenProps } from "./tokens"; export class AmmMarketFetchRequest implements MarketFetchRequest { public marketKey: PublicKey; @@ -15,6 +16,7 @@ export type AmmMarket = Market & { baseAmount: BN; quoteAmount: BN; lpMintSupply: number; + lpToken: TokenProps; createdAtSlot: BN; twapLastUpdatedSlot: BN; twapAggregator: BN; @@ -34,7 +36,6 @@ export type AddLiquiditySimulationResponse = { expectedLpTokens: number; }; - export type RemoveLiquiditySimulationResponse = { baseAmount: number; quoteAmount: number;