UNPKG

@xchainjs/xchain-util

Version:
49 lines (48 loc) 1.87 kB
import type BigNumber from 'bignumber.js'; import type { AnyAsset, Asset, AssetAmount, BaseAmount, SecuredAsset, SynthAsset, TokenAsset, TradeAsset } from './'; /** * Utility Class to combine an amount (asset/base) with the Asset * */ declare class BaseCryptoAmount<T extends AnyAsset> { baseAmount: BaseAmount; readonly asset: T; constructor(amount: BaseAmount, asset: T); plus(v: BaseCryptoAmount<T>): BaseCryptoAmount<T>; minus(v: BaseCryptoAmount<T>): BaseCryptoAmount<T>; times(v: BaseCryptoAmount<T> | number | BigNumber): BaseCryptoAmount<T>; div(v: BaseCryptoAmount<T> | number | BigNumber): BaseCryptoAmount<T>; lt(v: BaseCryptoAmount<T>): boolean; lte(v: BaseCryptoAmount<T>): boolean; gt(v: BaseCryptoAmount<T>): boolean; gte(v: BaseCryptoAmount<T>): boolean; eq(v: BaseCryptoAmount<T>): boolean; formatedAssetString(): string; assetAmountFixedString(): string; get assetAmount(): AssetAmount; /** * This guard protects against trying to perform math with different assets * * Example. * const x = new CryptoAmount(assetAmount(1),AssetBTC) * const y = new CryptoAmount(assetAmount(1),AssetETH) * * x.plus(y) <- will throw error "cannot perform math on 2 diff assets BTC.BTC ETH.ETH * * @param v - CryptoNumeric */ private check; } export declare class CryptoAmount<T extends AnyAsset = AnyAsset> extends BaseCryptoAmount<T> { } export declare class AssetCryptoAmount extends BaseCryptoAmount<Asset> { } export declare class TokenCryptoAmount extends BaseCryptoAmount<TokenAsset> { } export declare class SynthCryptoAmount extends BaseCryptoAmount<SynthAsset> { } export declare class TradeCryptoAmount extends BaseCryptoAmount<TradeAsset> { } export declare class SecuredCryptoAmount extends BaseCryptoAmount<SecuredAsset> { } export {};