{"version":3,"file":"conversions.mjs","sources":["../../../src/utils/conversions.ts"],"sourcesContent":["import { bignum } from '@convergence-rfq/beet';\nimport BN from 'bn.js';\n\n/**\n * Take bignum and convert it to a UI number while taking into account\n * token mint decimals.\n *\n * ```\n * const value = 9_500_000_000\n * const decimals = 9\n * removeDecimals(value, decimals) // 9.5\n * ```\n *\n * @param value {number} BN number\n * @param decimals {number} amount of decimals to remove\n * @returns {number} UI representation of the number\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const removeDecimals = (value: bignum, decimals: number = 0): number => {\n  const number = Number(value);\n  if (decimals > 0) {\n    return number / Math.pow(10, decimals);\n  }\n  return number;\n};\n\n/**\n * Take UI number and convert it to a BN while taking into account\n * token mint decimals.\n *\n * ```\n * const value = 9.5\n * const decimals = 9\n * addDecimals(value, decimals) // 9_500_000_000\n * ```\n *\n * @param value {number} UI number\n * @param decimals {number} amount of decimals to add\n * @returns {BN} BN representation of the number\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const addDecimals = (value: number, decimals: number = 0): BN => {\n  const number = (value * Math.pow(10, decimals)).toFixed(0);\n  return new BN(number);\n};\n\n/**\n * Used to convert timestamps from CPL to numbers in milliseconds.\n *\n * @param timestamp {bignum} Solita timestamp\n * @returns {number} timestamp in milliseconds\n */\nexport function convertTimestampToMilliSeconds(\n  timestamp: bignum | number\n): number {\n  if (typeof timestamp === 'number') {\n    return timestamp * 1_000;\n  }\n  return Number(timestamp) * 1_000;\n}\n\nexport function convertTimestampToSeconds(timestamp: bignum | number): number {\n  if (typeof timestamp === 'number') {\n    return Math.floor(timestamp / 1_000);\n  }\n  return Math.floor(Number(timestamp) / 1_000);\n}\n\n/**\n * Used to roundUp values to a certain amount of decimals.\n *\n * @param amount {number} amount to round Up\n * @param decimals {number} amount of decimals to round Up to\n * @returns {number} rounded up amount\n */\nexport const roundUp = (amount: number, decimals: number) => {\n  return Math.ceil(amount * Math.pow(10, decimals)) / Math.pow(10, decimals);\n};\n\n/**\n * Used to roundDown values to a certain amount of decimals.\n *\n * @param amount {number} amount to round down\n * @param decimals {number} amount of decimals to round down to\n * @returns {number} rounded down amount\n */\nexport const roundDown = (amount: number, decimals: number) => {\n  return Math.floor(amount * Math.pow(10, decimals)) / Math.pow(10, decimals);\n};\n"],"names":["removeDecimals","value","decimals","arguments","length","undefined","number","Number","Math","pow","addDecimals","toFixed","BN","convertTimestampToMilliSeconds","timestamp","convertTimestampToSeconds","floor","roundUp","amount","ceil","roundDown"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaA,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAa,EAAmC;AAAA,EAAA,IAAjCC,QAAgB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAChE,EAAA,IAAMG,MAAM,GAAGC,MAAM,CAACN,KAAK,CAAC,CAAA;EAC5B,IAAIC,QAAQ,GAAG,CAAC,EAAE;IAChB,OAAOI,MAAM,GAAGE,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,QAAQ,CAAC,CAAA;AACxC,GAAA;AACA,EAAA,OAAOI,MAAM,CAAA;AACf,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaI,WAAW,GAAG,SAAdA,WAAWA,CAAIT,KAAa,EAA+B;AAAA,EAAA,IAA7BC,QAAgB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAC7D,EAAA,IAAMG,MAAM,GAAG,CAACL,KAAK,GAAGO,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,QAAQ,CAAC,EAAES,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1D,EAAA,OAAO,IAAIC,EAAE,CAACN,MAAM,CAAC,CAAA;AACvB,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,8BAA8BA,CAC5CC,SAA0B,EAClB;AACR,EAAA,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;IACjC,OAAOA,SAAS,GAAG,IAAK,CAAA;AAC1B,GAAA;AACA,EAAA,OAAOP,MAAM,CAACO,SAAS,CAAC,GAAG,IAAK,CAAA;AAClC,CAAA;AAEO,SAASC,yBAAyBA,CAACD,SAA0B,EAAU;AAC5E,EAAA,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;AACjC,IAAA,OAAON,IAAI,CAACQ,KAAK,CAACF,SAAS,GAAG,IAAK,CAAC,CAAA;AACtC,GAAA;EACA,OAAON,IAAI,CAACQ,KAAK,CAACT,MAAM,CAACO,SAAS,CAAC,GAAG,IAAK,CAAC,CAAA;AAC9C,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMG,OAAO,GAAG,SAAVA,OAAOA,CAAIC,MAAc,EAAEhB,QAAgB,EAAK;EAC3D,OAAOM,IAAI,CAACW,IAAI,CAACD,MAAM,GAAGV,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,QAAQ,CAAC,CAAC,GAAGM,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,QAAQ,CAAC,CAAA;AAC5E,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMkB,SAAS,GAAG,SAAZA,SAASA,CAAIF,MAAc,EAAEhB,QAAgB,EAAK;EAC7D,OAAOM,IAAI,CAACQ,KAAK,CAACE,MAAM,GAAGV,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,QAAQ,CAAC,CAAC,GAAGM,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,QAAQ,CAAC,CAAA;AAC7E;;;;"}