{"version":3,"sources":["/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-4QSKJTVQ.cjs","../src/utils/toUnits.ts"],"names":[],"mappings":"AAAA;ACOO,SAAS,OAAA,CAAQ,KAAA,EAAe,SAAA,EAAW,CAAA,EAAG;AACnD,EAAA,IAAI,CAAC,QAAA,EAAU,GAAA,EAAK,SAAA,EAAW,GAAG,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAErD,EAAA,MAAM,SAAA,EAAW,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA;AACvC,EAAA,GAAA,CAAI,QAAA,EAAU,QAAA,EAAU,OAAA,CAAQ,KAAA,CAAM,CAAC,CAAA;AAGvC,EAAA,SAAA,EAAW,QAAA,CAAS,OAAA,CAAQ,OAAA,EAAS,EAAE,CAAA;AAGvC,EAAA,GAAA,CAAI,SAAA,IAAa,CAAA,EAAG;AAClB,IAAA,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA;AACD,MAAA;AACtB,IAAA;AACgB,EAAA;AACC,IAAA;AACI,MAAA;AACD,MAAA;AACN,MAAA;AACzB,IAAA;AAEkC,IAAA;AACpB,IAAA;AACiB,MAAA;AACE,IAAA;AAED,IAAA;AACH,MAAA;AACI,MAAA;AACjC,IAAA;AAE6B,IAAA;AACxB,EAAA;AACsB,IAAA;AAC7B,EAAA;AAEoC,EAAA;AACtC;ADduC;AACA;AACA;AACA","file":"/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-4QSKJTVQ.cjs","sourcesContent":[null,"/**\n * Convert string-representation of number with specified decimals to bigint\n *\n * analog of `toNano` function from @ton/core package, but with custom decimals count\n *\n * @see [implementation by viem.](https://github.com/wevm/viem/blob/71a4e7aca259f0565005929d6584dca87bd59807/src/utils/unit/parseUnits.ts#L16)\n */\nexport function toUnits(value: string, decimals = 9) {\n  let [integer = \"0\", fraction = \"0\"] = value.split(\".\");\n\n  const negative = integer.startsWith(\"-\");\n  if (negative) integer = integer.slice(1);\n\n  // trim trailing zeros.\n  fraction = fraction.replace(/(0+)$/, \"\");\n\n  // round off if the fraction is larger than the number of decimals.\n  if (decimals === 0) {\n    if (Math.round(Number(`.${fraction}`)) === 1)\n      integer = `${BigInt(integer) + BigInt(1)}`;\n    fraction = \"\";\n  } else if (fraction.length > decimals) {\n    const [left, unit, right] = [\n      fraction.slice(0, decimals - 1),\n      fraction.slice(decimals - 1, decimals),\n      fraction.slice(decimals),\n    ];\n\n    const rounded = Math.round(Number(`${unit}.${right}`));\n    if (rounded > 9)\n      fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, \"0\");\n    else fraction = `${left}${rounded}`;\n\n    if (fraction.length > decimals) {\n      fraction = fraction.slice(1);\n      integer = `${BigInt(integer) + BigInt(1)}`;\n    }\n\n    fraction = fraction.slice(0, decimals);\n  } else {\n    fraction = fraction.padEnd(decimals, \"0\");\n  }\n\n  return BigInt(`${negative ? \"-\" : \"\"}${integer}${fraction}`);\n}\n"]}