@left-curve/utils
v1.0.0
Published
General-purpose utilities for the [Dango](https://dango.exchange) ecosystem.
Downloads
208
Readme
@left-curve/utils
General-purpose utilities for the Dango ecosystem.
Installation
npm install @left-curve/utilsUsage
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");API
Decimal
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"));Formatting
formatNumber(value, options)- locale-aware number formattingformatUnits(value, decimals)/parseUnits(value, decimals)- unit conversiontruncateAddress(address)- shorten addresses for displaytruncateDec(value, digits)- truncate decimal places
Strings
camelToSnake(str)/snakeToCamel(str)- case conversioncapitalize(str)- capitalize first letter
Assertions
assertString(value),assertNumber(value),assertBoolean(value), etc.assertDeepEqual(a, b)- deep equality checkassertNotEmpty(value)- non-empty check
Async
withRetry(fn, options)- retry with backoffwithTimeout(fn, timeout)- timeout wrapperwait(ms)- promise-based delaywithResolvers()- deferred promise
Objects
recursiveTransform(obj, fn)- deep transform object valuessortObject(obj)- sort object keysinvertObject(obj)- swap keys and values
DEX
calculateTradeSize(params),calculateFees(params),calculatePrice(params)adjustPrice(price, tickSize)- snap price to tickformatOrderId(id)- format order ID for display
Vault
sharesToUsd(shares, params)/usdToShares(usd, params)- vault conversionscomputeVaultApy(snapshots)- compute vault APY from snapshots
Misc
uid()- generate unique IDdebounce(fn, delay)- debounce function callstryCatch(fn)- Result type wrappercreateSubscription(options)- subscription helperbatchPoller(fn, interval)- batch pollinggetNavigatorOS(),isMobileOrTable()- browser detection
License
TBD
