Function: safeDivideWithMinimum()
Gala Launchpad SDK 9.0.0-rc.5 / index / safeDivideWithMinimum
Function: safeDivideWithMinimum()
safeDivideWithMinimum(
numerator,denominator,minimum?,fallback?):BigNumber
Defined in: packages/launchpad-sdk/dist/utils/numeric-patterns.d.ts:227
Divide with zero fallback AND minimum threshold check
Performs safe division with two layers of protection:
- Returns fallback if denominator is zero
- Returns minimum threshold if computed result is less than minimum
This prevents calculations from producing unrealistic micro-values (e.g., APR calculations that shouldn't return 0.0000001%).
Consolidates 3 partial occurrences across APR and portfolio calculations.
Parameters
numerator
string | number | BigNumber
Dividend
denominator
string | number | BigNumber
Divisor
minimum?
string | number | BigNumber
Minimum threshold (default: "0", meaning no minimum)
fallback?
string | number | BigNumber
Value to return if denominator is zero (default: "0")
Returns
BigNumber
The quotient, minimum threshold if result is too small, or fallback if denominator is zero
Throws
Error if minimum is negative or minimum > maximum representable value
Example
// Safe division with zero fallback
const ratio = safeDivideWithMinimum('100', '0', undefined, '0');
// Returns: "0" (denominator is zero)
// Enforce minimum APR (never report less than 0.01%)
const apr = safeDivideWithMinimum(
feeAmount,
liquidityValue,
'0.0001' // Minimum 0.01% APR
);
// Threshold prevents micro-values
const tiny = safeDivideWithMinimum('1', '1000000', '0.001');
// Result 0.000001 is < minimum 0.001, so returns 0.001
// Normal division (result meets threshold)
const normal = safeDivideWithMinimum('100', '10', '0.001');
// Result 10 > minimum 0.001, so returns 10