fix(payment): round curency precision (#12803)

This commit is contained in:
Carlos R. L. Rodrigues
2025-06-24 13:41:14 -03:00
committed by GitHub
parent 93cf79cb0f
commit ba1e6595b7
4 changed files with 151 additions and 17 deletions

View File

@@ -5,20 +5,27 @@ import { BigNumber } from "./big-number"
type BNInput = BigNumberInput | BigNumber
export class MathBN {
static convert(num: BNInput): BigNumberJS {
static convert(num: BNInput, decimalPlaces?: number): BigNumberJS {
if (num == null) {
return new BigNumberJS(0)
}
let num_ = num
if (num instanceof BigNumber) {
return num.bigNumber!
num_ = num.bigNumber!
} else if (num instanceof BigNumberJS) {
return num
num_ = num
} else if (isDefined((num as BigNumberRawValue)?.value)) {
return new BigNumberJS((num as BigNumberRawValue).value)
num_ = new BigNumberJS((num as BigNumberRawValue).value)
} else {
num_ = new BigNumberJS(num as BigNumberJS | number)
}
return new BigNumberJS(num as BigNumberJS | number)
if (decimalPlaces) {
num_ = num_.decimalPlaces(decimalPlaces)
}
return num_
}
static add(...nums: BNInput[]): BigNumberJS {