Skip to main content

Pair

constructor(tokenAmountA: TokenAmount, tokenAmountB: TokenAmount)

The Pair entity represents a Pegasys pair with a balance of each of its pair tokens.

Example#

import { ChainId, Token, TokenAmount, Pair } from "@pollum-io/pegasys-sdk";
const HOT = new Token(
ChainId.NEVM,
"0xc0FFee0000000000000000000000000000000000",
18,
"HOT",
"Caffeine"
);
const NOT = new Token(
ChainId.NEVM,
"0xDeCAf00000000000000000000000000000000000",
18,
"NOT",
"Caffeine"
);
const pair = new Pair(
new TokenAmount(HOT, "2000000000000000000"),
new TokenAmount(NOT, "1000000000000000000")
);

Static Methods#

getAddress#

getAddress(tokenA: Token, tokenB: Token): string

Computes the pair address for the passed Tokens. See Pair Addresses.

Properties#

liquidityToken#

liquidityToken: Token;

A Token representing the liquidity token for the pair. See Pair (ERC-20).

token0#

token0: Token;

See token0.

token1#

token1: Token;

See token1.

reserve0#

reserve0: TokenAmount;

The reserve of token0.

reserve1#

reserve1: TokenAmount;

The reserve of token1.

Methods#

reserveOf#

reserveOf(token: Token): TokenAmount

Returns reserve0 or reserve1, depending on whether token0 or token1 is passed in.

getOutputAmount#

getOutputAmount(inputAmount: TokenAmount): [TokenAmount, Pair]

Pricing function for exact input amounts. Returns maximum output amount based on current reserves and the new Pair that would exist if the trade were executed.

getInputAmount#

getInputAmount(outputAmount: TokenAmount): [TokenAmount, Pair]

Pricing function for exact output amounts. Returns minimum input amount based on current reserves and the new Pair that would exist if the trade were executed.

getLiquidityMinted#

getLiquidityMinted(totalSupply: TokenAmount, tokenAmountA: TokenAmount, tokenAmountB: TokenAmount): TokenAmount

Calculates the exact amount of liquidity tokens minted from a given amount of token0 and token1.

  • totalSupply must be looked up on-chain.
  • The value returned from this function cannot be used as an input to getLiquidityValue.

getLiquidityValue#

getLiquidityValue(
token: Token,
totalSupply: TokenAmount,
liquidity: TokenAmount,
feeOn: boolean = false,
kLast?: BigintIsh
): TokenAmount

Calculates the exact amount of token0 or token1 that the given amount of liquidity tokens represent.

  • totalSupply must be looked up on-chain.
  • If the protocol charge is on, feeOn must be set to true, and kLast must be provided from an on-chain lookup.
  • Values returned from this function cannot be used as inputs to getLiquidityMinted.