Commit f0d10ba0 authored by Moody Salem's avatar Moody Salem

fix: add DAI and WBTC and USDT to routing for Optimism

fixes https://github.com/Uniswap/uniswap-interface/issues/2016
parent 88600d3a
...@@ -16,46 +16,40 @@ export enum SupportedChainId { ...@@ -16,46 +16,40 @@ export enum SupportedChainId {
export const ALL_SUPPORTED_CHAIN_IDS: SupportedChainId[] = Object.values(SupportedChainId) as SupportedChainId[] export const ALL_SUPPORTED_CHAIN_IDS: SupportedChainId[] = Object.values(SupportedChainId) as SupportedChainId[]
export type SupportedL2ChainId =
| SupportedChainId.ARBITRUM_ONE
| SupportedChainId.ARBITRUM_RINKEBY
| SupportedChainId.OPTIMISM
| SupportedChainId.OPTIMISTIC_KOVAN
export type SupportedL1ChainId =
| SupportedChainId.MAINNET
| SupportedChainId.ROPSTEN
| SupportedChainId.RINKEBY
| SupportedChainId.GOERLI
| SupportedChainId.KOVAN
export const L1_CHAIN_IDS = [ export const L1_CHAIN_IDS = [
SupportedChainId.MAINNET, SupportedChainId.MAINNET,
SupportedChainId.ROPSTEN, SupportedChainId.ROPSTEN,
SupportedChainId.RINKEBY, SupportedChainId.RINKEBY,
SupportedChainId.GOERLI, SupportedChainId.GOERLI,
SupportedChainId.KOVAN, SupportedChainId.KOVAN,
] ] as const
export type SupportedL1ChainId = typeof L1_CHAIN_IDS[number]
export const L2_CHAIN_IDS = [ export const L2_CHAIN_IDS = [
SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_ONE,
SupportedChainId.ARBITRUM_RINKEBY, SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISM,
SupportedChainId.OPTIMISTIC_KOVAN, SupportedChainId.OPTIMISTIC_KOVAN,
] ] as const
export type SupportedL2ChainId = typeof L2_CHAIN_IDS[number]
interface L1ChainInfo { interface L1ChainInfo {
docs: string readonly docs: string
explorer: string readonly explorer: string
infoLink: string readonly infoLink: string
label: string readonly label: string
} }
interface L2ChainInfo extends L1ChainInfo { interface L2ChainInfo extends L1ChainInfo {
bridge: string readonly bridge: string
logoUrl: string readonly logoUrl: string
} }
type ChainInfo = { [chainId in SupportedL2ChainId]: L2ChainInfo } & type ChainInfo = { readonly [chainId: number]: L1ChainInfo | L2ChainInfo } & {
{ [chainId in SupportedL1ChainId]: L1ChainInfo } & { [chainId: number]: L1ChainInfo | L2ChainInfo } readonly [chainId in SupportedL2ChainId]: L2ChainInfo
} &
{ readonly [chainId in SupportedL1ChainId]: L1ChainInfo }
export const CHAIN_INFO: ChainInfo = { export const CHAIN_INFO: ChainInfo = {
[SupportedChainId.ARBITRUM_ONE]: { [SupportedChainId.ARBITRUM_ONE]: {
......
...@@ -19,6 +19,9 @@ import { ...@@ -19,6 +19,9 @@ import {
WBTC, WBTC,
ETH2X_FLI, ETH2X_FLI,
WETH9_EXTENDED, WETH9_EXTENDED,
DAI_OPTIMISM,
USDT_OPTIMISM,
WBTC_OPTIMISM,
} from './tokens' } from './tokens'
type ChainTokenList = { type ChainTokenList = {
...@@ -58,6 +61,7 @@ const WETH_ONLY: ChainTokenList = Object.fromEntries( ...@@ -58,6 +61,7 @@ const WETH_ONLY: ChainTokenList = Object.fromEntries(
export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = { export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
...WETH_ONLY, ...WETH_ONLY,
[SupportedChainId.MAINNET]: [...WETH_ONLY[SupportedChainId.MAINNET], DAI, USDC, USDT, WBTC], [SupportedChainId.MAINNET]: [...WETH_ONLY[SupportedChainId.MAINNET], DAI, USDC, USDT, WBTC],
[SupportedChainId.OPTIMISM]: [...WETH_ONLY[SupportedChainId.OPTIMISM], DAI_OPTIMISM, USDT_OPTIMISM, WBTC_OPTIMISM],
} }
export const ADDITIONAL_BASES: { [chainId: number]: { [tokenAddress: string]: Token[] } } = { export const ADDITIONAL_BASES: { [chainId: number]: { [tokenAddress: string]: Token[] } } = {
[SupportedChainId.MAINNET]: { [SupportedChainId.MAINNET]: {
......
...@@ -44,6 +44,13 @@ export const USDT = new Token( ...@@ -44,6 +44,13 @@ export const USDT = new Token(
'USDT', 'USDT',
'Tether USD' 'Tether USD'
) )
export const USDT_OPTIMISM = new Token(
SupportedChainId.OPTIMISM,
'0x94b008aA00579c1307B0EF2c499aD98a8ce58e58',
6,
'USDT',
'Tether USD'
)
export const WBTC = new Token( export const WBTC = new Token(
SupportedChainId.MAINNET, SupportedChainId.MAINNET,
'0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
...@@ -51,6 +58,13 @@ export const WBTC = new Token( ...@@ -51,6 +58,13 @@ export const WBTC = new Token(
'WBTC', 'WBTC',
'Wrapped BTC' 'Wrapped BTC'
) )
export const WBTC_OPTIMISM = new Token(
SupportedChainId.OPTIMISM,
'0x68f180fcCe6836688e9084f035309E29Bf0A2095',
8,
'WBTC',
'Wrapped BTC'
)
export const FEI = new Token( export const FEI = new Token(
SupportedChainId.MAINNET, SupportedChainId.MAINNET,
'0x956F47F50A910163D8BF957Cf5846D573E7f87CA', '0x956F47F50A910163D8BF957Cf5846D573E7f87CA',
......
...@@ -4,7 +4,9 @@ export function constructSameAddressMap<T extends string>( ...@@ -4,7 +4,9 @@ export function constructSameAddressMap<T extends string>(
address: T, address: T,
additionalNetworks: SupportedChainId[] = [] additionalNetworks: SupportedChainId[] = []
): { [chainId: number]: T } { ): { [chainId: number]: T } {
return L1_CHAIN_IDS.concat(additionalNetworks).reduce<{ [chainId: number]: T }>((memo, chainId) => { return (L1_CHAIN_IDS as readonly SupportedChainId[])
.concat(additionalNetworks)
.reduce<{ [chainId: number]: T }>((memo, chainId) => {
memo[chainId] = address memo[chainId] = address
return memo return memo
}, {}) }, {})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment