@xchainjs/xchain-util
Version:
Helper utilities for XChain clients
49 lines (48 loc) • 1.87 kB
TypeScript
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 {};