WhiteSwap
  • About WhiteSwap
  • Protocol Overview
    • How WhiteSwap Works
    • Eсosystem Participants
    • Smart Contracts
    • Glossary
  • Core Concepts
    • Swaps
    • Pools
    • Flash Swaps
    • Oracles
    • Farming
    • WSD Staking
  • Advanced Topics
    • Fees
    • Pricing
    • Understanding Returns
    • Security
    • Research
  • Governance
    • Overview
    • Process
    • Glossary
  • Governance Token
    • Introducing WSD
    • Allocation & Vesting
    • Community Treasury
  • Developer Guides
    • Token Listing
    • Javascript SDK
      • SDK Quick Start
      • Fetching Data
      • Pricing
      • Trading
      • Pair Addresses
  • Reference
    • API
      • API Overview
      • Entities
      • Queries
    • SDK
      • Getting Started
      • Token
      • Pair
      • Route
      • Trade
      • Fractions
      • Fetcher
      • Other Exports
    • Smart Contracts
Powered by GitBook
On this page
  • Example
  • Static Methods
  • getAddress
  • Properties
  • liquidityToken
  • token0
  • token1
  • reserve0
  • reserve1
  • Methods
  • reserveOf
  • getOutputAmount
  • getInputAmount
  • getLiquidityMinted
  • getLiquidityValue

Was this helpful?

  1. Reference
  2. SDK

Pair

PreviousTokenNextRoute

Last updated 4 years ago

Was this helpful?

constructor(tokenAmountA: TokenAmount, tokenAmountB: TokenAmount)

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

Example

import { ChainId, Token, TokenAmount, Pair } from '@whiteswap/sdk'

const HOT = new Token(ChainId.MAINNET, '0xc0FFee0000000000000000000000000000000000', 18, 'HOT', 'Caffeine')
const NOT = new Token(ChainId.MAINNET, '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 s. See .

Properties

liquidityToken

liquidityToken: Token

token0

token0: Token

token1

token1: Token

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.

A Token representing the liquidity token for the pair. See .

Token
Pair Addresses
Pair (ERC-20)