Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

Commit

Permalink
Merge branch 'main' into jsy1218/update-factory-address-to-use-sdk-core
Browse files Browse the repository at this point in the history
  • Loading branch information
jsy1218 authored Feb 23, 2024
2 parents 6580cc1 + bf68bb1 commit 324ea40
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 13 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@uniswap/v2-sdk",
"license": "MIT",
"version": "4.1.1",
"version": "4.2.0",
"description": "🛠 An SDK for building applications on top of Uniswap V2",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
Expand Down
16 changes: 15 additions & 1 deletion src/entities/pair.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { BigNumber } from '@ethersproject/bignumber'
import { ChainId, CurrencyAmount, Price, Token, WETH9 } from '@uniswap/sdk-core'
import { FACTORY_ADDRESS } from '../constants'
import { InsufficientInputAmountError } from '../errors'
import { computePairAddress, Pair } from './pair'
import { BigNumber } from '@ethersproject/bignumber'

describe('computePairAddress', () => {
it('should correctly compute the pool address', () => {
Expand Down Expand Up @@ -42,6 +43,9 @@ describe('Pair', () => {
const USDC = new Token(1, '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 18, 'USDC', 'USD Coin')
const DAI = new Token(1, '0x6B175474E89094C44Da98b954EedeAC495271d0F', 18, 'DAI', 'DAI Stablecoin')

const USDC_SEPOLIA = new Token(11155111, '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 18, 'USDC', 'USD Coin')
const DAI_SEPOLIA = new Token(11155111, '0x6B175474E89094C44Da98b954EedeAC495271d0F', 18, 'DAI', 'DAI Stablecoin')

describe('constructor', () => {
it('cannot be used for tokens on different chains', () => {
expect(
Expand All @@ -54,6 +58,16 @@ describe('Pair', () => {
it('returns the correct address', () => {
expect(Pair.getAddress(USDC, DAI)).toEqual('0xAE461cA67B15dc8dc81CE7615e0320dA1A9aB8D5')
})

it('returns the default address for a testnet not in the map', () => {
expect(Pair.getAddress(USDC_SEPOLIA, DAI_SEPOLIA)).toEqual(
computePairAddress({
factoryAddress: FACTORY_ADDRESS,
tokenA: USDC_SEPOLIA,
tokenB: DAI_SEPOLIA
})
)
})
})

describe('#token0', () => {
Expand Down
24 changes: 13 additions & 11 deletions src/entities/pair.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
import { BigintIsh, Price, sqrt, Token, CurrencyAmount, Percent } from '@uniswap/sdk-core'
import invariant from 'tiny-invariant'
import JSBI from 'jsbi'
import { pack, keccak256 } from '@ethersproject/solidity'
import { getCreate2Address } from '@ethersproject/address'
import { BigNumber } from '@ethersproject/bignumber'
import { keccak256, pack } from '@ethersproject/solidity'
import { BigintIsh, CurrencyAmount, Percent, Price, sqrt, Token } from '@uniswap/sdk-core'
import JSBI from 'jsbi'
import invariant from 'tiny-invariant'

import {
_1000,
_997,
BASIS_POINTS,
FACTORY_ADDRESS,
FACTORY_ADDRESS_MAP,
FIVE,
INIT_CODE_HASH,
MINIMUM_LIQUIDITY,
FIVE,
_997,
_1000,
ONE,
ZERO,
BASIS_POINTS,
ONE_HUNDRED_PERCENT,
ZERO,
ZERO_PERCENT
} from '../constants'
import { InsufficientReservesError, InsufficientInputAmountError } from '../errors'
import { InsufficientInputAmountError, InsufficientReservesError } from '../errors'

export const computePairAddress = ({
factoryAddress,
Expand All @@ -41,7 +42,8 @@ export class Pair {
private readonly tokenAmounts: [CurrencyAmount<Token>, CurrencyAmount<Token>]

public static getAddress(tokenA: Token, tokenB: Token): string {
return computePairAddress({ factoryAddress: FACTORY_ADDRESS_MAP[tokenA.chainId], tokenA, tokenB })
const factoryAddress = FACTORY_ADDRESS_MAP[tokenA.chainId] ?? FACTORY_ADDRESS
return computePairAddress({ factoryAddress, tokenA, tokenB })
}

public constructor(currencyAmountA: CurrencyAmount<Token>, tokenAmountB: CurrencyAmount<Token>) {
Expand Down

0 comments on commit 324ea40

Please sign in to comment.