Left Curve Software Stack
    Preparing search index...

    Module @left-curve/utils

    @left-curve/utils

    General-purpose utilities for the Dango ecosystem.

    npm install @left-curve/utils
    
    import { Decimal, formatUnits, parseUnits, truncateAddress } from "@left-curve/utils";

    const amount = Decimal("1000.50");
    const formatted = formatUnits("1000000", 6); // "1.000000"
    const parsed = parseUnits("1.5", 6); // "1500000"
    const short = truncateAddress("0x1234...abcd");

    Arbitrary-precision decimal arithmetic (wraps big.js). Use for all financial math — never use Number.

    import { Decimal } from "@left-curve/utils";

    const a = Decimal("100.5");
    const b = a.mul(Decimal("2"));
    • formatNumber(value, options) - locale-aware number formatting
    • formatUnits(value, decimals) / parseUnits(value, decimals) - unit conversion
    • truncateAddress(address) - shorten addresses for display
    • truncateDec(value, digits) - truncate decimal places
    • camelToSnake(str) / snakeToCamel(str) - case conversion
    • capitalize(str) - capitalize first letter
    • assertString(value), assertNumber(value), assertBoolean(value), etc.
    • assertDeepEqual(a, b) - deep equality check
    • assertNotEmpty(value) - non-empty check
    • withRetry(fn, options) - retry with backoff
    • withTimeout(fn, timeout) - timeout wrapper
    • wait(ms) - promise-based delay
    • withResolvers() - deferred promise
    • recursiveTransform(obj, fn) - deep transform object values
    • sortObject(obj) - sort object keys
    • invertObject(obj) - swap keys and values
    • calculateTradeSize(params), calculateFees(params), calculatePrice(params)
    • adjustPrice(price, tickSize) - snap price to tick
    • formatOrderId(id) - format order ID for display
    • sharesToUsd(shares, params) / usdToShares(usd, params) - vault conversions
    • computeVaultApy(snapshots) - compute vault APY from snapshots
    • uid() - generate unique ID
    • debounce(fn, delay) - debounce function calls
    • tryCatch(fn) - Result type wrapper
    • createSubscription(options) - subscription helper
    • batchPoller(fn, interval) - batch polling
    • getNavigatorOS(), isMobileOrTable() - browser detection

    TBD

    Type Aliases

    DisplayPart
    FormatNumberOptions
    SubscriptionOptions
    TransportMode

    Variables

    batchPoller
    Decimal

    Functions

    adjustPrice
    assertArray
    assertBoolean
    assertDeepEqual
    assertNotEmpty
    assertNumber
    assertObject
    assertSet
    assertString
    bucketSizeToFractionDigits
    calculateFees
    calculatePrice
    calculateTradeSize
    camelToSnake
    camelToTitleCase
    capitalize
    composeArbitraryTypedData
    composeTxTypedData
    computeVaultApy
    createBatchScheduler
    createSubscription
    debounce
    formatDisplayNumber
    formatDisplayString
    formatNumber
    formatOrderId
    formatUnits
    getCoinsTypedData
    getNavigatorOS
    getRootDomain
    invertObject
    isMobileOrTable
    mayTransform
    parseUnits
    plainObject
    randomBetween
    recursiveTransform
    resolveRateSchedule
    sharesToUsd
    snakeToCamel
    sortObject
    truncateAddress
    truncateDec
    tryCatch
    uid
    usdToShares
    wait
    withResolvers
    withRetry
    withTimeout