{"version":3,"sources":["../../../../src/raydium/launchpad/curve/func.ts"],"sourcesContent":["import BN from \"bn.js\";\nimport Decimal from \"decimal.js\";\n\nexport class MathLaunch {\n  static _Q64 = new Decimal(new BN(1).shln(64).toString());\n\n  static _multipler(decimals: number): Decimal {\n    return new Decimal(10).pow(decimals);\n  }\n\n  static getPrice({ priceX64, decimalA, decimalB }: { priceX64: BN; decimalA: number; decimalB: number }): Decimal {\n    const priceWithDecimals = new Decimal(priceX64.toString()).div(this._Q64);\n    const price = priceWithDecimals.mul(this._multipler(decimalA)).div(this._multipler(decimalB));\n\n    return price;\n  }\n\n  static getPriceX64({ price, decimalA, decimalB }: { price: Decimal; decimalA: number; decimalB: number }): BN {\n    const priceWithDecimals = price.mul(this._multipler(decimalB)).div(this._multipler(decimalA));\n    const priceX64 = new BN(priceWithDecimals.mul(this._Q64).toFixed(0));\n    return priceX64;\n  }\n}\n\nexport function checkPoolToAmm({\n  supply,\n  totalFundRaisingB,\n  totalLockedAmount,\n  totalSellA,\n  migrateType,\n  decimalsA,\n}: {\n  supply: BN;\n  totalSellA: BN;\n  totalLockedAmount: BN;\n  totalFundRaisingB: BN;\n  migrateType: \"amm\" | \"cpmm\";\n  decimalsA: number;\n}): boolean {\n  const migrateAmountA = supply.sub(totalSellA).sub(totalLockedAmount);\n  const liquidity = new BN(new Decimal(migrateAmountA.mul(totalFundRaisingB).toString()).sqrt().toFixed(0));\n\n  if (migrateType === \"amm\") {\n    if (liquidity.gt(new BN(10).pow(new BN(decimalsA)))) return true;\n  } else if (migrateType === \"cpmm\") {\n    if (liquidity.gt(new BN(100))) return true;\n  } else {\n    throw Error(\"migrate type error\");\n  }\n\n  return false;\n}\n"],"mappings":"AAAA,OAAOA,MAAQ,QACf,OAAOC,MAAa,aAEb,IAAMC,EAAN,KAAiB,CAGtB,OAAO,WAAWC,EAA2B,CAC3C,OAAO,IAAIF,EAAQ,EAAE,EAAE,IAAIE,CAAQ,CACrC,CAEA,OAAO,SAAS,CAAE,SAAAC,EAAU,SAAAC,EAAU,SAAAC,CAAS,EAAkE,CAI/G,OAH0B,IAAIL,EAAQG,EAAS,SAAS,CAAC,EAAE,IAAI,KAAK,IAAI,EACxC,IAAI,KAAK,WAAWC,CAAQ,CAAC,EAAE,IAAI,KAAK,WAAWC,CAAQ,CAAC,CAG9F,CAEA,OAAO,YAAY,CAAE,MAAAC,EAAO,SAAAF,EAAU,SAAAC,CAAS,EAA+D,CAC5G,IAAME,EAAoBD,EAAM,IAAI,KAAK,WAAWD,CAAQ,CAAC,EAAE,IAAI,KAAK,WAAWD,CAAQ,CAAC,EAE5F,OADiB,IAAIL,EAAGQ,EAAkB,IAAI,KAAK,IAAI,EAAE,QAAQ,CAAC,CAAC,CAErE,CACF,EAnBaN,EACJ,KAAO,IAAID,EAAQ,IAAID,EAAG,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,EAoBlD,SAASS,EAAe,CAC7B,OAAAC,EACA,kBAAAC,EACA,kBAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,CACF,EAOY,CACV,IAAMC,EAAiBN,EAAO,IAAIG,CAAU,EAAE,IAAID,CAAiB,EAC7DK,EAAY,IAAIjB,EAAG,IAAIC,EAAQe,EAAe,IAAIL,CAAiB,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,EAExG,GAAIG,IAAgB,OAClB,GAAIG,EAAU,GAAG,IAAIjB,EAAG,EAAE,EAAE,IAAI,IAAIA,EAAGe,CAAS,CAAC,CAAC,EAAG,MAAO,WACnDD,IAAgB,QACzB,GAAIG,EAAU,GAAG,IAAIjB,EAAG,GAAG,CAAC,EAAG,MAAO,OAEtC,OAAM,MAAM,oBAAoB,EAGlC,MAAO,EACT","names":["BN","Decimal","MathLaunch","decimals","priceX64","decimalA","decimalB","price","priceWithDecimals","checkPoolToAmm","supply","totalFundRaisingB","totalLockedAmount","totalSellA","migrateType","decimalsA","migrateAmountA","liquidity"]}