{"version":3,"sources":["../../src/helpers/index.ts"],"sourcesContent":["import { Network } from \"@aptos-labs/ts-sdk\";\n\nexport const getUrlFromNetwork = (network: Network) => {\n  switch (network) {\n    case Network.MAINNET:\n      return \"https://api.testnet.tapp.exchange/v1\";\n    case Network.TESTNET:\n      return \"https://api.testnet.tapp.exchange/v1\";\n    default:\n      throw new Error(`Network is not supported: ${network}`);\n  }\n};\n\nexport const getSpacingFromFee = (fee: number): number => {\n  const feeSpacingMap: Record<number, number> = {\n    100: 1,\n    500: 10,\n    3000: 60,\n    10000: 200,\n  };\n\n  const spacing = feeSpacingMap[fee];\n  if (spacing === undefined) {\n    throw new Error(`Unsupported fee tier: ${fee}`);\n  }\n\n  return spacing;\n};\n\nexport const toU64 = (value: number): bigint => {\n  if (value < 0) {\n    // Convert signed value to its unsigned (two's complement) representation\n    const U64_MAX = 2n ** 64n; // Maximum value for u64\n    return U64_MAX + BigInt(value);\n  }\n  return BigInt(value);\n};\n\nexport const priceToTickIndex = (price: number, tickSpacing = 60) => {\n  if (price <= 0) {\n    throw new Error(\"Price must be greater than 0\");\n  }\n\n  const ln1_0001 = Math.log(1.0001); // Natural log of 1.0001\n  const tickIndex = Math.log(price) / ln1_0001; // Compute raw tick index\n\n  // Align tick index to tick spacing\n  return Math.floor(tickIndex / tickSpacing) * tickSpacing;\n};\n\nexport const roundPriceToTickSpacing = (price: number, fee: number) => {\n  const tickSpacing = getSpacingFromFee(fee);\n  const tick = Math.floor(Math.log(price) / Math.log(1.0001));\n  const roundedTick = Math.round(tick / tickSpacing) * tickSpacing;\n  return Math.pow(1.0001, roundedTick);\n};\n"],"mappings":"AAAA,OAAS,WAAAA,MAAe,qBAEjB,IAAMC,EAAqBC,GAAqB,CACrD,OAAQA,EAAS,CACf,KAAKF,EAAQ,QACX,MAAO,uCACT,KAAKA,EAAQ,QACX,MAAO,uCACT,QACE,MAAM,IAAI,MAAM,6BAA6BE,CAAO,EAAE,CAC1D,CACF,EAEaC,EAAqBC,GAAwB,CAQxD,IAAMC,EAPwC,CAC5C,IAAK,EACL,IAAK,GACL,IAAM,GACN,IAAO,GACT,EAE8BD,CAAG,EACjC,GAAIC,IAAY,OACd,MAAM,IAAI,MAAM,yBAAyBD,CAAG,EAAE,EAGhD,OAAOC,CACT,EAEaC,EAASC,GAChBA,EAAQ,EAEM,IAAM,IACL,OAAOA,CAAK,EAExB,OAAOA,CAAK,EAGRC,EAAmB,CAACC,EAAeC,EAAc,KAAO,CACnE,GAAID,GAAS,EACX,MAAM,IAAI,MAAM,8BAA8B,EAGhD,IAAME,EAAW,KAAK,IAAI,MAAM,EAC1BC,EAAY,KAAK,IAAIH,CAAK,EAAIE,EAGpC,OAAO,KAAK,MAAMC,EAAYF,CAAW,EAAIA,CAC/C,EAEaG,EAA0B,CAACJ,EAAeL,IAAgB,CACrE,IAAMM,EAAcP,EAAkBC,CAAG,EACnCU,EAAO,KAAK,MAAM,KAAK,IAAIL,CAAK,EAAI,KAAK,IAAI,MAAM,CAAC,EACpDM,EAAc,KAAK,MAAMD,EAAOJ,CAAW,EAAIA,EACrD,OAAO,KAAK,IAAI,OAAQK,CAAW,CACrC","names":["Network","getUrlFromNetwork","network","getSpacingFromFee","fee","spacing","toU64","value","priceToTickIndex","price","tickSpacing","ln1_0001","tickIndex","roundPriceToTickSpacing","tick","roundedTick"]}