Skip to main content

Amount Conversion

toSmallestUnits / to_smallest_units

Convert a display amount to the smallest unit (e.g., BTC to satoshis).
import { toSmallestUnits } from 'kaleidoswap-sdk';

const sats = toSmallestUnits(0.001, 8);   // 100000
const usdt = toSmallestUnits(10.50, 2);   // 1050

toDisplayUnits / to_display_units

Convert from smallest units back to display units.
import { toDisplayUnits } from 'kaleidoswap-sdk';

const btc = toDisplayUnits(100000, 8);   // 0.001
const usd = toDisplayUnits(1050, 2);     // 10.50

toRawAmount / to_raw_amount

Equivalent to toSmallestUnits. Convert display to raw.
import { toRawAmount } from 'kaleidoswap-sdk';

const raw = toRawAmount(0.5, 8);  // 50000000

toDisplayAmount / to_display_amount

Equivalent to toDisplayUnits. Convert raw to display.
import { toDisplayAmount } from 'kaleidoswap-sdk';

const display = toDisplayAmount(50000000, 8);  // 0.5

PrecisionHandler

The PrecisionHandler manages amount conversions for multiple assets, using their metadata to look up precision automatically.

Creating a PrecisionHandler

import { createPrecisionHandler } from 'kaleidoswap-sdk';

// MappedAsset objects with asset_id and precision
const assets = [
  { asset_id: 'btc-asset-id', ticker: 'BTC', precision: 8, /* ... */ },
  { asset_id: 'usdt-asset-id', ticker: 'USDT', precision: 2, /* ... */ },
];

const handler = createPrecisionHandler(assets);

Methods

toRawAmount / to_raw_amount

Convert display amount to raw, using the asset’s precision.
const raw = handler.toRawAmount(0.5, 'btc-asset-id');  // 50000000

toDisplayAmount / to_display_amount

Convert raw amount to display.
const display = handler.toDisplayAmount(50000000, 'btc-asset-id');  // 0.5

getAssetPrecision / get_asset_precision

Get the precision for a specific asset.
const precision = handler.getAssetPrecision('btc-asset-id');  // 8

formatDisplayAmount / format_display_amount

Format a display amount with the correct number of decimal places.
const formatted = handler.formatDisplayAmount(0.5, 'btc-asset-id');  // "0.50000000"

validateOrderSize / validate_order_size

Validate an order amount against min/max limits.
const result = handler.validateOrderSize(0.001, btcAsset);
// Returns: { valid: boolean, reason?: string }

getOrderSizeLimits / get_order_size_limits

Get the min/max order size for an asset.
const limits = handler.getOrderSizeLimits(btcAsset);
// Returns: { min: number, max: number }

AssetPairMapper (TypeScript)

The AssetPairMapper helps look up assets and trading pairs from the listPairs response. This utility is available in the TypeScript SDK.

Creating a Mapper

import { createAssetPairMapper } from 'kaleidoswap-sdk';

const pairsResponse = await client.maker.listPairs();
const mapper = createAssetPairMapper(pairsResponse);

Methods

findByTicker

Find an asset by its ticker symbol.
const btc = mapper.findByTicker('BTC');
// Returns: MappedAsset | undefined

findById

Find an asset by its asset ID.
const asset = mapper.findById('btc-asset-id');
// Returns: MappedAsset | undefined

getAllAssets

Get all assets.
const allAssets = mapper.getAllAssets();
// Returns: MappedAsset[]

canTrade / canTradeByTicker

Check if two assets can be traded.
const canTrade = mapper.canTrade('btc-asset-id', 'usdt-asset-id');  // boolean
const canTradeByTicker = mapper.canTradeByTicker('BTC', 'USDT');     // boolean

getTradingPartners

Get all assets that can be traded with a given asset.
const partners = mapper.getTradingPartners('btc-asset-id');
// Returns: MappedAsset[]

getActivePairs

Get all active trading pairs.
const activePairs = mapper.getActivePairs();
// Returns: TradingPair[]

findPairByTickers

Find a specific pair by base and quote tickers.
const pair = mapper.findPairByTickers('BTC', 'USDT');
// Returns: TradingPair | undefined

SDK Info

getVersion / get_version

Get the SDK version string.
import { getVersion } from 'kaleidoswap-sdk';
console.log(getVersion());  // "0.4.0"

getSdkName / get_sdk_name

Get the SDK package name.
import { getSdkName } from 'kaleidoswap-sdk';
console.log(getSdkName());  // "kaleidoswap-sdk"