wrappedAmount function

TokenAmount wrappedAmount(
  1. CurrencyAmount currencyAmount,
  2. ChainId chainId
)

Given a currency amount and a chain ID, returns the equivalent representation as the token amount. In other words, if the currency is ETHER, returns the WETH token amount for the given chain. Otherwise, returns the input currency amount.

Implementation

TokenAmount wrappedAmount(CurrencyAmount currencyAmount, ChainId chainId) {
  if (currencyAmount is TokenAmount) return currencyAmount;
  if(currencyAmount.currency is Token){
    if (currencyAmount.currency == Token.WETH[ChainId.MAINNET.value]) {
      return TokenAmount(Token.WETH[chainId.value]!, currencyAmount.raw);
    }
  }else{
    if (currencyAmount.currency == ETHER) {
      return TokenAmount(Token.WETH[chainId.value]!, currencyAmount.raw);
    }
  }
  if ((currencyAmount.currency.symbol ?? '').contains(ETHER.symbol ?? '')) {
    return TokenAmount(Token.WETH[chainId.value]!, currencyAmount.raw);
  }
  invariant(false, 'CURRENCY');
  return TokenAmount(Token.WETH[chainId.value]!, currencyAmount.raw);
}