@plasma-fi/sdk
Version:
🛠An SDK for building dapp on PlasmaSwap.
50 lines (49 loc) • 2.17 kB
TypeScript
import { Price } from '../amounts/price';
import { TokenAmount } from '../amounts/currency-amount';
import { BigintIsh, ChainId, LiquidityProvider } from '../constants/constants';
import { Token } from './currency';
export declare class Pair {
readonly liquidityToken: Token;
readonly liquidityProvider: LiquidityProvider;
private readonly tokenAmounts;
static getAddress(tokenA: Token, tokenB: Token, lp: LiquidityProvider): string;
/**
* Given two tokens return the liquidity token that represents its liquidity shares
* @param tokenA one of the two tokens
* @param tokenB the other token
* @param lp
*/
static toTokenOfLiquidity(tokenA: Token, tokenB: Token, lp: LiquidityProvider): Token;
constructor(tokenAmountA: TokenAmount, tokenAmountB: TokenAmount, lp: LiquidityProvider);
/**
* Returns true if the token is either token0 or token1
* @param token to check
*/
involvesToken(token: Token): boolean;
/**
* Returns the current mid price of the pair in terms of token0, i.e. the ratio of reserve1 to reserve0
*/
get token0Price(): Price;
/**
* Returns the current mid price of the pair in terms of token1, i.e. the ratio of reserve0 to reserve1
*/
get token1Price(): Price;
/**
* Return the price of the given token in terms of the other token in the pair.
* @param token token to return price of
*/
priceOf(token: Token): Price;
/**
* Returns the chain ID of the tokens in the pair.
*/
get chainId(): ChainId;
get token0(): Token;
get token1(): Token;
get reserve0(): TokenAmount;
get reserve1(): TokenAmount;
reserveOf(token: Token): TokenAmount;
getOutputAmount(inputAmount: TokenAmount): [TokenAmount, Pair];
getInputAmount(outputAmount: TokenAmount): [TokenAmount, Pair];
getLiquidityMinted(totalSupply: TokenAmount, tokenAmountA: TokenAmount, tokenAmountB: TokenAmount): TokenAmount;
getLiquidityValue(token: Token, totalSupply: TokenAmount, liquidity: TokenAmount, feeOn?: boolean, kLast?: BigintIsh): TokenAmount;
}