Skip to main content

Function: safeDivideWithMinimum()

Gala Launchpad SDK 9.0.0-rc.5


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:

  1. Returns fallback if denominator is zero
  2. 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