Commit 513c9072 authored by Zach Pomerantz's avatar Zach Pomerantz Committed by GitHub

build: upgrade ethers@5.7.2, smart-order-router@3.6.0, widgets@2.43.2 (#5958)

* build: upgrade ethers@5.7.2

* fix: use namehash directly

* fix: TS7030

* build: upgrade widgets version and smart-order-router (#6053)

* upgrade widgets

* build: dedup router packages

---------
Co-authored-by: default avatarZach Pomerantz <zzmp@uniswap.org>

* chore: remove deprecated chains (#6054)

* start

* more

* more

* more

* use SupportedChainId from sdk

* add support for arbitrum goerli

* add arbitrum_goerli to jsonrpc list

* local sdk-core

* Revert "add arbitrum_goerli to jsonrpc list"

This reverts commit 51b29764f55685fc2f29a0366725ed7ba4b3bde6.

* add local chain ids

* Revert "add support for arbitrum goerli"

This reverts commit 46cdd15543170d76f816eacb932d325a6cca98a6.

* rm arb goerli in supported chain ids

* autofix

* fix import

* fix import

* fix import

* move back down for sdk-core

* use the supportedchainid

* add-types

* comment

---------
Co-authored-by: default avatarJordan Frankfurt <jordanwfrankfurt@gmail.com>

* combine

---------
Co-authored-by: default avatarVignesh Mohankumar <vignesh@vigneshmohankumar.com>
Co-authored-by: default avatarVignesh Mohankumar <me@vig.xyz>
Co-authored-by: default avatarJordan Frankfurt <jordanwfrankfurt@gmail.com>
parent ef388e17
...@@ -32,7 +32,6 @@ const SHOULD_SHOW_ALERT = { ...@@ -32,7 +32,6 @@ const SHOULD_SHOW_ALERT = {
[SupportedChainId.OPTIMISM]: true, [SupportedChainId.OPTIMISM]: true,
[SupportedChainId.OPTIMISM_GOERLI]: true, [SupportedChainId.OPTIMISM_GOERLI]: true,
[SupportedChainId.ARBITRUM_ONE]: true, [SupportedChainId.ARBITRUM_ONE]: true,
[SupportedChainId.ARBITRUM_RINKEBY]: true,
[SupportedChainId.POLYGON]: true, [SupportedChainId.POLYGON]: true,
[SupportedChainId.POLYGON_MUMBAI]: true, [SupportedChainId.POLYGON_MUMBAI]: true,
[SupportedChainId.CELO]: true, [SupportedChainId.CELO]: true,
...@@ -59,8 +58,6 @@ const BG_COLORS_BY_DARK_MODE_AND_CHAIN_ID: { ...@@ -59,8 +58,6 @@ const BG_COLORS_BY_DARK_MODE_AND_CHAIN_ID: {
'radial-gradient(948% 292% at 42% 0%, rgba(255, 58, 212, 0.04) 0%, rgba(255, 255, 255, 0.04) 100%),radial-gradient(98% 96% at 2% 0%, rgba(255, 39, 39, 0.04) 0%, rgba(235, 0, 255, 0.01 96%)', 'radial-gradient(948% 292% at 42% 0%, rgba(255, 58, 212, 0.04) 0%, rgba(255, 255, 255, 0.04) 100%),radial-gradient(98% 96% at 2% 0%, rgba(255, 39, 39, 0.04) 0%, rgba(235, 0, 255, 0.01 96%)',
[SupportedChainId.ARBITRUM_ONE]: [SupportedChainId.ARBITRUM_ONE]:
'radial-gradient(285% 8200% at 30% 50%, rgba(40, 160, 240, 0.01) 0%, rgba(219, 255, 0, 0) 100%),radial-gradient(75% 75% at 0% 0%, rgba(150, 190, 220, 0.05) 0%, rgba(33, 114, 229, 0.05) 100%), hsla(0, 0%, 100%, 0.05)', 'radial-gradient(285% 8200% at 30% 50%, rgba(40, 160, 240, 0.01) 0%, rgba(219, 255, 0, 0) 100%),radial-gradient(75% 75% at 0% 0%, rgba(150, 190, 220, 0.05) 0%, rgba(33, 114, 229, 0.05) 100%), hsla(0, 0%, 100%, 0.05)',
[SupportedChainId.ARBITRUM_RINKEBY]:
'radial-gradient(285% 8200% at 30% 50%, rgba(40, 160, 240, 0.05) 0%, rgba(219, 255, 0, 0) 100%),radial-gradient(75% 75% at 0% 0%, rgba(150, 190, 220, 0.05) 0%, rgba(33, 114, 229, 0.1) 100%), hsla(0, 0%, 100%, 0.05)',
}, },
light: { light: {
[SupportedChainId.POLYGON]: [SupportedChainId.POLYGON]:
...@@ -77,8 +74,6 @@ const BG_COLORS_BY_DARK_MODE_AND_CHAIN_ID: { ...@@ -77,8 +74,6 @@ const BG_COLORS_BY_DARK_MODE_AND_CHAIN_ID: {
'radial-gradient(92% 105% at 50% 7%, rgba(255, 58, 212, 0.04) 0%, rgba(255, 255, 255, 0.03) 100%),radial-gradient(100% 97% at 0% 12%, rgba(235, 0, 255, 0.1) 0%, rgba(243, 19, 19, 0.1) 100%), hsla(0, 0%, 100%, 0.1)', 'radial-gradient(92% 105% at 50% 7%, rgba(255, 58, 212, 0.04) 0%, rgba(255, 255, 255, 0.03) 100%),radial-gradient(100% 97% at 0% 12%, rgba(235, 0, 255, 0.1) 0%, rgba(243, 19, 19, 0.1) 100%), hsla(0, 0%, 100%, 0.1)',
[SupportedChainId.ARBITRUM_ONE]: [SupportedChainId.ARBITRUM_ONE]:
'radial-gradient(285% 8200% at 30% 50%, rgba(40, 160, 240, 0.1) 0%, rgba(219, 255, 0, 0) 100%),radial-gradient(circle at top left, hsla(206, 50%, 75%, 0.01), hsla(215, 79%, 51%, 0.12)), hsla(0, 0%, 100%, 0.1)', 'radial-gradient(285% 8200% at 30% 50%, rgba(40, 160, 240, 0.1) 0%, rgba(219, 255, 0, 0) 100%),radial-gradient(circle at top left, hsla(206, 50%, 75%, 0.01), hsla(215, 79%, 51%, 0.12)), hsla(0, 0%, 100%, 0.1)',
[SupportedChainId.ARBITRUM_RINKEBY]:
'radial-gradient(285% 8200% at 30% 50%, rgba(40, 160, 240, 0.1) 0%, rgba(219, 255, 0, 0) 100%),radial-gradient(circle at top left, hsla(206, 50%, 75%, 0.01), hsla(215, 79%, 51%, 0.12)), hsla(0, 0%, 100%, 0.1)',
}, },
} }
...@@ -137,7 +132,6 @@ const TEXT_COLORS: { [chainId in NetworkAlertChains]: string } = { ...@@ -137,7 +132,6 @@ const TEXT_COLORS: { [chainId in NetworkAlertChains]: string } = {
[SupportedChainId.OPTIMISM]: '#ff3856', [SupportedChainId.OPTIMISM]: '#ff3856',
[SupportedChainId.OPTIMISM_GOERLI]: '#ff3856', [SupportedChainId.OPTIMISM_GOERLI]: '#ff3856',
[SupportedChainId.ARBITRUM_ONE]: '#0490ed', [SupportedChainId.ARBITRUM_ONE]: '#0490ed',
[SupportedChainId.ARBITRUM_RINKEBY]: '#0490ed',
} }
function shouldShowAlert(chainId: number | undefined): chainId is NetworkAlertChains { function shouldShowAlert(chainId: number | undefined): chainId is NetworkAlertChains {
......
import { Trans } from '@lingui/macro' import { Trans } from '@lingui/macro'
import { SupportedChainId } from '@uniswap/sdk-core'
import { getChainInfo } from 'constants/chainInfo' import { getChainInfo } from 'constants/chainInfo'
import { SupportedChainId } from 'constants/chains'
import { darken } from 'polished' import { darken } from 'polished'
import { useState } from 'react' import { useState } from 'react'
import styled from 'styled-components/macro' import styled from 'styled-components/macro'
......
import { Trans } from '@lingui/macro' import { Trans } from '@lingui/macro'
import { formatCurrencyAmount, NumberType } from '@uniswap/conedison/format' import { formatCurrencyAmount, NumberType } from '@uniswap/conedison/format'
import { Currency, SupportedChainId } from '@uniswap/sdk-core' import { Currency } from '@uniswap/sdk-core'
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import CurrencyLogo from 'components/Logo/CurrencyLogo' import CurrencyLogo from 'components/Logo/CurrencyLogo'
import { getChainInfo } from 'constants/chainInfo' import { getChainInfo } from 'constants/chainInfo'
import { SupportedChainId } from 'constants/chains'
import { isSupportedChain } from 'constants/chains' import { isSupportedChain } from 'constants/chains'
import { useStablecoinValue } from 'hooks/useStablecoinPrice' import { useStablecoinValue } from 'hooks/useStablecoinPrice'
import useCurrencyBalance from 'lib/hooks/useCurrencyBalance' import useCurrencyBalance from 'lib/hooks/useCurrencyBalance'
......
import { FACTORY_ADDRESS as V2_FACTORY_ADDRESS } from '@uniswap/v2-sdk' import { FACTORY_ADDRESS as V2_FACTORY_ADDRESS } from '@uniswap/v2-sdk'
import { FACTORY_ADDRESS as V3_FACTORY_ADDRESS } from '@uniswap/v3-sdk' import { FACTORY_ADDRESS as V3_FACTORY_ADDRESS } from '@uniswap/v3-sdk'
import { SupportedChainId } from 'constants/chains'
import { constructSameAddressMap } from '../utils/constructSameAddressMap' import { constructSameAddressMap } from '../utils/constructSameAddressMap'
import { SupportedChainId } from './chains'
type AddressMap = { [chainId: number]: string } type AddressMap = { [chainId: number]: string }
...@@ -28,7 +28,6 @@ export const V3_CORE_FACTORY_ADDRESSES: AddressMap = { ...@@ -28,7 +28,6 @@ export const V3_CORE_FACTORY_ADDRESSES: AddressMap = {
SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISM,
SupportedChainId.OPTIMISM_GOERLI, SupportedChainId.OPTIMISM_GOERLI,
SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_ONE,
SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
]), ]),
...@@ -39,7 +38,6 @@ export const V3_CORE_FACTORY_ADDRESSES: AddressMap = { ...@@ -39,7 +38,6 @@ export const V3_CORE_FACTORY_ADDRESSES: AddressMap = {
export const V3_MIGRATOR_ADDRESSES: AddressMap = { export const V3_MIGRATOR_ADDRESSES: AddressMap = {
...constructSameAddressMap('0xA5644E29708357803b5A882D272c41cC0dF92B34', [ ...constructSameAddressMap('0xA5644E29708357803b5A882D272c41cC0dF92B34', [
SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_ONE,
SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
]), ]),
...@@ -55,7 +53,6 @@ export const MULTICALL_ADDRESS: AddressMap = { ...@@ -55,7 +53,6 @@ export const MULTICALL_ADDRESS: AddressMap = {
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
]), ]),
[SupportedChainId.ARBITRUM_ONE]: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB', [SupportedChainId.ARBITRUM_ONE]: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',
[SupportedChainId.ARBITRUM_RINKEBY]: '0xa501c031958F579dB7676fF1CE78AD305794d579',
[SupportedChainId.CELO]: CELO_MULTICALL_ADDRESS, [SupportedChainId.CELO]: CELO_MULTICALL_ADDRESS,
[SupportedChainId.CELO_ALFAJORES]: CELO_MULTICALL_ADDRESS, [SupportedChainId.CELO_ALFAJORES]: CELO_MULTICALL_ADDRESS,
} }
...@@ -65,7 +62,6 @@ export const SWAP_ROUTER_ADDRESSES: AddressMap = { ...@@ -65,7 +62,6 @@ export const SWAP_ROUTER_ADDRESSES: AddressMap = {
SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISM,
SupportedChainId.OPTIMISM_GOERLI, SupportedChainId.OPTIMISM_GOERLI,
SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_ONE,
SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
]), ]),
...@@ -107,7 +103,6 @@ export const QUOTER_ADDRESSES: AddressMap = { ...@@ -107,7 +103,6 @@ export const QUOTER_ADDRESSES: AddressMap = {
SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISM,
SupportedChainId.OPTIMISM_GOERLI, SupportedChainId.OPTIMISM_GOERLI,
SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_ONE,
SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
]), ]),
...@@ -120,7 +115,6 @@ export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = { ...@@ -120,7 +115,6 @@ export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {
SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISM,
SupportedChainId.OPTIMISM_GOERLI, SupportedChainId.OPTIMISM_GOERLI,
SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_ONE,
SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
]), ]),
...@@ -130,9 +124,7 @@ export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = { ...@@ -130,9 +124,7 @@ export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {
export const ENS_REGISTRAR_ADDRESSES: AddressMap = { export const ENS_REGISTRAR_ADDRESSES: AddressMap = {
[SupportedChainId.MAINNET]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', [SupportedChainId.MAINNET]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[SupportedChainId.ROPSTEN]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[SupportedChainId.GOERLI]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', [SupportedChainId.GOERLI]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[SupportedChainId.RINKEBY]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
} }
export const SOCKS_CONTROLLER_ADDRESSES: AddressMap = { export const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {
...@@ -141,7 +133,6 @@ export const SOCKS_CONTROLLER_ADDRESSES: AddressMap = { ...@@ -141,7 +133,6 @@ export const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {
export const TICK_LENS_ADDRESSES: AddressMap = { export const TICK_LENS_ADDRESSES: AddressMap = {
[SupportedChainId.ARBITRUM_ONE]: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573', [SupportedChainId.ARBITRUM_ONE]: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',
[SupportedChainId.ARBITRUM_RINKEBY]: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',
[SupportedChainId.CELO]: CELO_TICK_LENS_ADDRESSES, [SupportedChainId.CELO]: CELO_TICK_LENS_ADDRESSES,
[SupportedChainId.CELO_ALFAJORES]: CELO_TICK_LENS_ADDRESSES, [SupportedChainId.CELO_ALFAJORES]: CELO_TICK_LENS_ADDRESSES,
} }
...@@ -5,10 +5,11 @@ import { default as arbitrumCircleLogoUrl, default as arbitrumLogoUrl } from 'as ...@@ -5,10 +5,11 @@ import { default as arbitrumCircleLogoUrl, default as arbitrumLogoUrl } from 'as
import celoLogo from 'assets/svg/celo_logo.svg' import celoLogo from 'assets/svg/celo_logo.svg'
import optimismLogoUrl from 'assets/svg/optimistic_ethereum.svg' import optimismLogoUrl from 'assets/svg/optimistic_ethereum.svg'
import polygonMaticLogo from 'assets/svg/polygon-matic-logo.svg' import polygonMaticLogo from 'assets/svg/polygon-matic-logo.svg'
import { SupportedChainId } from 'constants/chains'
import ms from 'ms.macro' import ms from 'ms.macro'
import { darkTheme } from 'theme/colors' import { darkTheme } from 'theme/colors'
import { SupportedChainId, SupportedL1ChainId, SupportedL2ChainId } from './chains' import { SupportedL1ChainId, SupportedL2ChainId } from './chains'
import { ARBITRUM_LIST, CELO_LIST, OPTIMISM_LIST } from './lists' import { ARBITRUM_LIST, CELO_LIST, OPTIMISM_LIST } from './lists'
export const AVERAGE_L1_BLOCK_TIME = ms`12s` export const AVERAGE_L1_BLOCK_TIME = ms`12s`
...@@ -64,36 +65,6 @@ const CHAIN_INFO: ChainInfoMap = { ...@@ -64,36 +65,6 @@ const CHAIN_INFO: ChainInfoMap = {
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
color: darkTheme.chain_1, color: darkTheme.chain_1,
}, },
[SupportedChainId.RINKEBY]: {
networkType: NetworkType.L1,
docs: 'https://docs.uniswap.org/',
explorer: 'https://rinkeby.etherscan.io/',
infoLink: 'https://info.uniswap.org/#/',
label: 'Rinkeby',
logoUrl: ethereumLogoUrl,
nativeCurrency: { name: 'Rinkeby Ether', symbol: 'rETH', decimals: 18 },
color: darkTheme.chain_4,
},
[SupportedChainId.ROPSTEN]: {
networkType: NetworkType.L1,
docs: 'https://docs.uniswap.org/',
explorer: 'https://ropsten.etherscan.io/',
infoLink: 'https://info.uniswap.org/#/',
label: 'Ropsten',
logoUrl: ethereumLogoUrl,
nativeCurrency: { name: 'Ropsten Ether', symbol: 'ropETH', decimals: 18 },
color: darkTheme.chain_3,
},
[SupportedChainId.KOVAN]: {
networkType: NetworkType.L1,
docs: 'https://docs.uniswap.org/',
explorer: 'https://kovan.etherscan.io/',
infoLink: 'https://info.uniswap.org/#/',
label: 'Kovan',
logoUrl: ethereumLogoUrl,
nativeCurrency: { name: 'Kovan Ether', symbol: 'kovETH', decimals: 18 },
color: darkTheme.chain_420,
},
[SupportedChainId.GOERLI]: { [SupportedChainId.GOERLI]: {
networkType: NetworkType.L1, networkType: NetworkType.L1,
docs: 'https://docs.uniswap.org/', docs: 'https://docs.uniswap.org/',
...@@ -153,20 +124,6 @@ const CHAIN_INFO: ChainInfoMap = { ...@@ -153,20 +124,6 @@ const CHAIN_INFO: ChainInfoMap = {
color: darkTheme.chain_42, color: darkTheme.chain_42,
backgroundColor: darkTheme.chain_42161_background, backgroundColor: darkTheme.chain_42161_background,
}, },
[SupportedChainId.ARBITRUM_RINKEBY]: {
networkType: NetworkType.L2,
blockWaitMsBeforeWarning: ms`10m`,
bridge: 'https://bridge.arbitrum.io/',
docs: 'https://offchainlabs.com/',
explorer: 'https://rinkeby-explorer.arbitrum.io/',
infoLink: 'https://info.uniswap.org/#/arbitrum/',
label: 'Arbitrum Rinkeby',
logoUrl: arbitrumLogoUrl,
defaultListUrl: ARBITRUM_LIST,
helpCenterUrl: 'https://help.uniswap.org/en/collections/3137787-uniswap-on-arbitrum',
nativeCurrency: { name: 'Rinkeby Arbitrum Ether', symbol: 'rinkArbETH', decimals: 18 },
color: darkTheme.chain_421611,
},
[SupportedChainId.POLYGON]: { [SupportedChainId.POLYGON]: {
networkType: NetworkType.L1, networkType: NetworkType.L1,
blockWaitMsBeforeWarning: ms`10m`, blockWaitMsBeforeWarning: ms`10m`,
......
/** /**
* List of all the networks supported by the Uniswap Interface * List of all the networks supported by the Uniswap Interface
* TODO(INFRA-90): Eventually this may be derived from sdk-core.
*/ */
export enum SupportedChainId { export enum SupportedChainId {
MAINNET = 1, MAINNET = 1,
ROPSTEN = 3,
RINKEBY = 4,
GOERLI = 5, GOERLI = 5,
KOVAN = 42,
ARBITRUM_ONE = 42161, ARBITRUM_ONE = 42161,
ARBITRUM_RINKEBY = 421611,
OPTIMISM = 10, OPTIMISM = 10,
OPTIMISM_GOERLI = 420, OPTIMISM_GOERLI = 420,
...@@ -23,16 +20,12 @@ export enum SupportedChainId { ...@@ -23,16 +20,12 @@ export enum SupportedChainId {
export const CHAIN_IDS_TO_NAMES = { export const CHAIN_IDS_TO_NAMES = {
[SupportedChainId.MAINNET]: 'mainnet', [SupportedChainId.MAINNET]: 'mainnet',
[SupportedChainId.ROPSTEN]: 'ropsten',
[SupportedChainId.RINKEBY]: 'rinkeby',
[SupportedChainId.GOERLI]: 'goerli', [SupportedChainId.GOERLI]: 'goerli',
[SupportedChainId.KOVAN]: 'kovan',
[SupportedChainId.POLYGON]: 'polygon', [SupportedChainId.POLYGON]: 'polygon',
[SupportedChainId.POLYGON_MUMBAI]: 'polygon_mumbai', [SupportedChainId.POLYGON_MUMBAI]: 'polygon_mumbai',
[SupportedChainId.CELO]: 'celo', [SupportedChainId.CELO]: 'celo',
[SupportedChainId.CELO_ALFAJORES]: 'celo_alfajores', [SupportedChainId.CELO_ALFAJORES]: 'celo_alfajores',
[SupportedChainId.ARBITRUM_ONE]: 'arbitrum', [SupportedChainId.ARBITRUM_ONE]: 'arbitrum',
[SupportedChainId.ARBITRUM_RINKEBY]: 'arbitrum_rinkeby',
[SupportedChainId.OPTIMISM]: 'optimism', [SupportedChainId.OPTIMISM]: 'optimism',
[SupportedChainId.OPTIMISM_GOERLI]: 'optimism_goerli', [SupportedChainId.OPTIMISM_GOERLI]: 'optimism_goerli',
} }
...@@ -66,12 +59,8 @@ export const UNSUPPORTED_V2POOL_CHAIN_IDS = [ ...@@ -66,12 +59,8 @@ export const UNSUPPORTED_V2POOL_CHAIN_IDS = [
] ]
export const TESTNET_CHAIN_IDS = [ export const TESTNET_CHAIN_IDS = [
SupportedChainId.ROPSTEN,
SupportedChainId.RINKEBY,
SupportedChainId.GOERLI, SupportedChainId.GOERLI,
SupportedChainId.KOVAN,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
SupportedChainId.ARBITRUM_RINKEBY,
SupportedChainId.OPTIMISM_GOERLI, SupportedChainId.OPTIMISM_GOERLI,
] as const ] as const
...@@ -82,10 +71,7 @@ export type SupportedTestnetChainId = typeof TESTNET_CHAIN_IDS[number] ...@@ -82,10 +71,7 @@ export type SupportedTestnetChainId = typeof TESTNET_CHAIN_IDS[number]
*/ */
export const L1_CHAIN_IDS = [ export const L1_CHAIN_IDS = [
SupportedChainId.MAINNET, SupportedChainId.MAINNET,
SupportedChainId.ROPSTEN,
SupportedChainId.RINKEBY,
SupportedChainId.GOERLI, SupportedChainId.GOERLI,
SupportedChainId.KOVAN,
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
SupportedChainId.POLYGON_MUMBAI, SupportedChainId.POLYGON_MUMBAI,
SupportedChainId.CELO, SupportedChainId.CELO,
...@@ -100,7 +86,6 @@ export type SupportedL1ChainId = typeof L1_CHAIN_IDS[number] ...@@ -100,7 +86,6 @@ 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.OPTIMISM, SupportedChainId.OPTIMISM,
SupportedChainId.OPTIMISM_GOERLI, SupportedChainId.OPTIMISM_GOERLI,
] as const ] as const
......
import { SupportedChainId } from 'constants/chains'
import { import {
GOVERNANCE_ALPHA_V0_ADDRESSES, GOVERNANCE_ALPHA_V0_ADDRESSES,
GOVERNANCE_ALPHA_V1_ADDRESSES, GOVERNANCE_ALPHA_V1_ADDRESSES,
...@@ -5,7 +7,6 @@ import { ...@@ -5,7 +7,6 @@ import {
TIMELOCK_ADDRESS, TIMELOCK_ADDRESS,
UNI_ADDRESS, UNI_ADDRESS,
} from './addresses' } from './addresses'
import { SupportedChainId } from './chains'
export const COMMON_CONTRACT_NAMES: Record<number, { [address: string]: string }> = { export const COMMON_CONTRACT_NAMES: Record<number, { [address: string]: string }> = {
[SupportedChainId.MAINNET]: { [SupportedChainId.MAINNET]: {
......
import { SupportedChainId } from './chains' import { SupportedChainId } from 'constants/chains'
const INFURA_KEY = process.env.REACT_APP_INFURA_KEY const INFURA_KEY = process.env.REACT_APP_INFURA_KEY
if (typeof INFURA_KEY === 'undefined') { if (typeof INFURA_KEY === 'undefined') {
...@@ -24,26 +24,12 @@ export const FALLBACK_URLS: { [key in SupportedChainId]: string[] } = { ...@@ -24,26 +24,12 @@ export const FALLBACK_URLS: { [key in SupportedChainId]: string[] } = {
'https://rpc.ankr.com/eth', 'https://rpc.ankr.com/eth',
'https://eth-mainnet.public.blastapi.io', 'https://eth-mainnet.public.blastapi.io',
], ],
[SupportedChainId.ROPSTEN]: [
// "Fallback" URLs
'https://rpc.ankr.com/eth_ropsten',
],
[SupportedChainId.RINKEBY]: [
// "Fallback" URLs
'https://rinkeby-light.eth.linkpool.io/',
],
[SupportedChainId.GOERLI]: [ [SupportedChainId.GOERLI]: [
// "Safe" URLs // "Safe" URLs
'https://rpc.goerli.mudit.blog/', 'https://rpc.goerli.mudit.blog/',
// "Fallback" URLs // "Fallback" URLs
'https://rpc.ankr.com/eth_goerli', 'https://rpc.ankr.com/eth_goerli',
], ],
[SupportedChainId.KOVAN]: [
// "Safe" URLs
'https://kovan.poa.network',
// "Fallback" URLs
'https://eth-kovan.public.blastapi.io',
],
[SupportedChainId.POLYGON]: [ [SupportedChainId.POLYGON]: [
// "Safe" URLs // "Safe" URLs
'https://polygon-rpc.com/', 'https://polygon-rpc.com/',
...@@ -65,10 +51,6 @@ export const FALLBACK_URLS: { [key in SupportedChainId]: string[] } = { ...@@ -65,10 +51,6 @@ export const FALLBACK_URLS: { [key in SupportedChainId]: string[] } = {
// "Fallback" URLs // "Fallback" URLs
'https://arbitrum.public-rpc.com', 'https://arbitrum.public-rpc.com',
], ],
[SupportedChainId.ARBITRUM_RINKEBY]: [
// "Safe" URLs
'https://rinkeby.arbitrum.io/rpc',
],
[SupportedChainId.OPTIMISM]: [ [SupportedChainId.OPTIMISM]: [
// "Safe" URLs // "Safe" URLs
'https://mainnet.optimism.io/', 'https://mainnet.optimism.io/',
...@@ -98,16 +80,7 @@ export const RPC_URLS: { [key in SupportedChainId]: string[] } = { ...@@ -98,16 +80,7 @@ export const RPC_URLS: { [key in SupportedChainId]: string[] } = {
`https://mainnet.infura.io/v3/${INFURA_KEY}`, `https://mainnet.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.MAINNET], ...FALLBACK_URLS[SupportedChainId.MAINNET],
], ],
[SupportedChainId.RINKEBY]: [
`https://rinkeby.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.RINKEBY],
],
[SupportedChainId.ROPSTEN]: [
`https://ropsten.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.ROPSTEN],
],
[SupportedChainId.GOERLI]: [`https://goerli.infura.io/v3/${INFURA_KEY}`, ...FALLBACK_URLS[SupportedChainId.GOERLI]], [SupportedChainId.GOERLI]: [`https://goerli.infura.io/v3/${INFURA_KEY}`, ...FALLBACK_URLS[SupportedChainId.GOERLI]],
[SupportedChainId.KOVAN]: [`https://kovan.infura.io/v3/${INFURA_KEY}`, ...FALLBACK_URLS[SupportedChainId.KOVAN]],
[SupportedChainId.OPTIMISM]: [ [SupportedChainId.OPTIMISM]: [
`https://optimism-mainnet.infura.io/v3/${INFURA_KEY}`, `https://optimism-mainnet.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.OPTIMISM], ...FALLBACK_URLS[SupportedChainId.OPTIMISM],
...@@ -120,10 +93,6 @@ export const RPC_URLS: { [key in SupportedChainId]: string[] } = { ...@@ -120,10 +93,6 @@ export const RPC_URLS: { [key in SupportedChainId]: string[] } = {
`https://arbitrum-mainnet.infura.io/v3/${INFURA_KEY}`, `https://arbitrum-mainnet.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.ARBITRUM_ONE], ...FALLBACK_URLS[SupportedChainId.ARBITRUM_ONE],
], ],
[SupportedChainId.ARBITRUM_RINKEBY]: [
`https://arbitrum-rinkeby.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.ARBITRUM_RINKEBY],
],
[SupportedChainId.POLYGON]: [ [SupportedChainId.POLYGON]: [
`https://polygon-mainnet.infura.io/v3/${INFURA_KEY}`, `https://polygon-mainnet.infura.io/v3/${INFURA_KEY}`,
...FALLBACK_URLS[SupportedChainId.POLYGON], ...FALLBACK_URLS[SupportedChainId.POLYGON],
......
...@@ -3,9 +3,10 @@ import { deepCopy } from '@ethersproject/properties' ...@@ -3,9 +3,10 @@ import { deepCopy } from '@ethersproject/properties'
// eslint-disable-next-line @typescript-eslint/no-restricted-imports // eslint-disable-next-line @typescript-eslint/no-restricted-imports
import { StaticJsonRpcProvider } from '@ethersproject/providers' import { StaticJsonRpcProvider } from '@ethersproject/providers'
import { isPlain } from '@reduxjs/toolkit' import { isPlain } from '@reduxjs/toolkit'
import { SupportedChainId } from 'constants/chains'
import { AVERAGE_L1_BLOCK_TIME } from './chainInfo' import { AVERAGE_L1_BLOCK_TIME } from './chainInfo'
import { CHAIN_IDS_TO_NAMES, SupportedChainId } from './chains' import { CHAIN_IDS_TO_NAMES } from './chains'
import { RPC_URLS } from './networks' import { RPC_URLS } from './networks'
class AppJsonRpcProvider extends StaticJsonRpcProvider { class AppJsonRpcProvider extends StaticJsonRpcProvider {
...@@ -58,14 +59,10 @@ class AppJsonRpcProvider extends StaticJsonRpcProvider { ...@@ -58,14 +59,10 @@ class AppJsonRpcProvider extends StaticJsonRpcProvider {
*/ */
export const RPC_PROVIDERS: { [key in SupportedChainId]: StaticJsonRpcProvider } = { export const RPC_PROVIDERS: { [key in SupportedChainId]: StaticJsonRpcProvider } = {
[SupportedChainId.MAINNET]: new AppJsonRpcProvider(SupportedChainId.MAINNET), [SupportedChainId.MAINNET]: new AppJsonRpcProvider(SupportedChainId.MAINNET),
[SupportedChainId.RINKEBY]: new AppJsonRpcProvider(SupportedChainId.RINKEBY),
[SupportedChainId.ROPSTEN]: new AppJsonRpcProvider(SupportedChainId.ROPSTEN),
[SupportedChainId.GOERLI]: new AppJsonRpcProvider(SupportedChainId.GOERLI), [SupportedChainId.GOERLI]: new AppJsonRpcProvider(SupportedChainId.GOERLI),
[SupportedChainId.KOVAN]: new AppJsonRpcProvider(SupportedChainId.KOVAN),
[SupportedChainId.OPTIMISM]: new AppJsonRpcProvider(SupportedChainId.OPTIMISM), [SupportedChainId.OPTIMISM]: new AppJsonRpcProvider(SupportedChainId.OPTIMISM),
[SupportedChainId.OPTIMISM_GOERLI]: new AppJsonRpcProvider(SupportedChainId.OPTIMISM_GOERLI), [SupportedChainId.OPTIMISM_GOERLI]: new AppJsonRpcProvider(SupportedChainId.OPTIMISM_GOERLI),
[SupportedChainId.ARBITRUM_ONE]: new AppJsonRpcProvider(SupportedChainId.ARBITRUM_ONE), [SupportedChainId.ARBITRUM_ONE]: new AppJsonRpcProvider(SupportedChainId.ARBITRUM_ONE),
[SupportedChainId.ARBITRUM_RINKEBY]: new AppJsonRpcProvider(SupportedChainId.ARBITRUM_RINKEBY),
[SupportedChainId.POLYGON]: new AppJsonRpcProvider(SupportedChainId.POLYGON), [SupportedChainId.POLYGON]: new AppJsonRpcProvider(SupportedChainId.POLYGON),
[SupportedChainId.POLYGON_MUMBAI]: new AppJsonRpcProvider(SupportedChainId.POLYGON_MUMBAI), [SupportedChainId.POLYGON_MUMBAI]: new AppJsonRpcProvider(SupportedChainId.POLYGON_MUMBAI),
[SupportedChainId.CELO]: new AppJsonRpcProvider(SupportedChainId.CELO), [SupportedChainId.CELO]: new AppJsonRpcProvider(SupportedChainId.CELO),
......
// a list of tokens by chain // a list of tokens by chain
import { Currency, Token } from '@uniswap/sdk-core' import { Currency, Token } from '@uniswap/sdk-core'
import { SupportedChainId } from 'constants/chains'
import { SupportedChainId } from './chains'
import { import {
AMPL, AMPL,
CEUR_CELO, CEUR_CELO,
...@@ -122,22 +122,10 @@ export const COMMON_BASES: ChainCurrencyList = { ...@@ -122,22 +122,10 @@ export const COMMON_BASES: ChainCurrencyList = {
WBTC, WBTC,
WRAPPED_NATIVE_CURRENCY[SupportedChainId.MAINNET] as Token, WRAPPED_NATIVE_CURRENCY[SupportedChainId.MAINNET] as Token,
], ],
[SupportedChainId.ROPSTEN]: [
nativeOnChain(SupportedChainId.ROPSTEN),
WRAPPED_NATIVE_CURRENCY[SupportedChainId.ROPSTEN] as Token,
],
[SupportedChainId.RINKEBY]: [
nativeOnChain(SupportedChainId.RINKEBY),
WRAPPED_NATIVE_CURRENCY[SupportedChainId.RINKEBY] as Token,
],
[SupportedChainId.GOERLI]: [ [SupportedChainId.GOERLI]: [
nativeOnChain(SupportedChainId.GOERLI), nativeOnChain(SupportedChainId.GOERLI),
WRAPPED_NATIVE_CURRENCY[SupportedChainId.GOERLI] as Token, WRAPPED_NATIVE_CURRENCY[SupportedChainId.GOERLI] as Token,
], ],
[SupportedChainId.KOVAN]: [
nativeOnChain(SupportedChainId.KOVAN),
WRAPPED_NATIVE_CURRENCY[SupportedChainId.KOVAN] as Token,
],
[SupportedChainId.ARBITRUM_ONE]: [ [SupportedChainId.ARBITRUM_ONE]: [
nativeOnChain(SupportedChainId.ARBITRUM_ONE), nativeOnChain(SupportedChainId.ARBITRUM_ONE),
DAI_ARBITRUM_ONE, DAI_ARBITRUM_ONE,
...@@ -146,10 +134,6 @@ export const COMMON_BASES: ChainCurrencyList = { ...@@ -146,10 +134,6 @@ export const COMMON_BASES: ChainCurrencyList = {
WBTC_ARBITRUM_ONE, WBTC_ARBITRUM_ONE,
WRAPPED_NATIVE_CURRENCY[SupportedChainId.ARBITRUM_ONE] as Token, WRAPPED_NATIVE_CURRENCY[SupportedChainId.ARBITRUM_ONE] as Token,
], ],
[SupportedChainId.ARBITRUM_RINKEBY]: [
nativeOnChain(SupportedChainId.ARBITRUM_RINKEBY),
WRAPPED_NATIVE_CURRENCY[SupportedChainId.ARBITRUM_RINKEBY] as Token,
],
[SupportedChainId.OPTIMISM]: [ [SupportedChainId.OPTIMISM]: [
nativeOnChain(SupportedChainId.OPTIMISM), nativeOnChain(SupportedChainId.OPTIMISM),
DAI_OPTIMISM, DAI_OPTIMISM,
......
import { Currency, Ether, NativeCurrency, Token, WETH9 } from '@uniswap/sdk-core' import { Currency, Ether, NativeCurrency, Token, WETH9 } from '@uniswap/sdk-core'
import { SupportedChainId } from 'constants/chains'
import invariant from 'tiny-invariant' import invariant from 'tiny-invariant'
import { UNI_ADDRESS } from './addresses' import { UNI_ADDRESS } from './addresses'
import { SupportedChainId } from './chains'
export const NATIVE_CHAIN_ID = 'NATIVE' export const NATIVE_CHAIN_ID = 'NATIVE'
...@@ -18,20 +18,6 @@ export const USDC_MAINNET = new Token( ...@@ -18,20 +18,6 @@ export const USDC_MAINNET = new Token(
'USDC', 'USDC',
'USD//C' 'USD//C'
) )
const USDC_ROPSTEN = new Token(
SupportedChainId.ROPSTEN,
'0x07865c6e87b9f70255377e024ace6630c1eaa37f',
6,
'USDC',
'USD//C'
)
const USDC_RINKEBY = new Token(
SupportedChainId.RINKEBY,
'0x4DBCdF9B62e891a7cec5A2568C3F4FAF9E8Abe2b',
6,
'tUSDC',
'test USD//C'
)
const USDC_GOERLI = new Token( const USDC_GOERLI = new Token(
SupportedChainId.GOERLI, SupportedChainId.GOERLI,
'0x07865c6e87b9f70255377e024ace6630c1eaa37f', '0x07865c6e87b9f70255377e024ace6630c1eaa37f',
...@@ -39,7 +25,6 @@ const USDC_GOERLI = new Token( ...@@ -39,7 +25,6 @@ const USDC_GOERLI = new Token(
'USDC', 'USDC',
'USD//C' 'USD//C'
) )
const USDC_KOVAN = new Token(SupportedChainId.KOVAN, '0x31eeb2d0f9b6fd8642914ab10f4dd473677d80df', 6, 'USDC', 'USD//C')
export const USDC_OPTIMISM = new Token( export const USDC_OPTIMISM = new Token(
SupportedChainId.OPTIMISM, SupportedChainId.OPTIMISM,
'0x7F5c764cBc14f9669B88837ca1490cCa17c31607', '0x7F5c764cBc14f9669B88837ca1490cCa17c31607',
...@@ -61,13 +46,6 @@ export const USDC_ARBITRUM = new Token( ...@@ -61,13 +46,6 @@ export const USDC_ARBITRUM = new Token(
'USDC', 'USDC',
'USD//C' 'USD//C'
) )
const USDC_ARBITRUM_RINKEBY = new Token(
SupportedChainId.ARBITRUM_RINKEBY,
'0x09b98f8b2395d076514037ff7d39a091a536206c',
6,
'USDC',
'USD//C'
)
export const USDC_POLYGON = new Token( export const USDC_POLYGON = new Token(
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
'0x2791bca1f2de4661ed88a30c99a7a9449aa84174', '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
...@@ -311,10 +289,7 @@ export const CEUR_CELO_ALFAJORES = new Token( ...@@ -311,10 +289,7 @@ export const CEUR_CELO_ALFAJORES = new Token(
export const UNI: { [chainId: number]: Token } = { export const UNI: { [chainId: number]: Token } = {
[SupportedChainId.MAINNET]: new Token(SupportedChainId.MAINNET, UNI_ADDRESS[1], 18, 'UNI', 'Uniswap'), [SupportedChainId.MAINNET]: new Token(SupportedChainId.MAINNET, UNI_ADDRESS[1], 18, 'UNI', 'Uniswap'),
[SupportedChainId.RINKEBY]: new Token(SupportedChainId.RINKEBY, UNI_ADDRESS[4], 18, 'UNI', 'Uniswap'),
[SupportedChainId.ROPSTEN]: new Token(SupportedChainId.ROPSTEN, UNI_ADDRESS[3], 18, 'UNI', 'Uniswap'),
[SupportedChainId.GOERLI]: new Token(SupportedChainId.GOERLI, UNI_ADDRESS[5], 18, 'UNI', 'Uniswap'), [SupportedChainId.GOERLI]: new Token(SupportedChainId.GOERLI, UNI_ADDRESS[5], 18, 'UNI', 'Uniswap'),
[SupportedChainId.KOVAN]: new Token(SupportedChainId.KOVAN, UNI_ADDRESS[42], 18, 'UNI', 'Uniswap'),
} }
export const WRAPPED_NATIVE_CURRENCY: { [chainId: number]: Token | undefined } = { export const WRAPPED_NATIVE_CURRENCY: { [chainId: number]: Token | undefined } = {
...@@ -340,13 +315,6 @@ export const WRAPPED_NATIVE_CURRENCY: { [chainId: number]: Token | undefined } = ...@@ -340,13 +315,6 @@ export const WRAPPED_NATIVE_CURRENCY: { [chainId: number]: Token | undefined } =
'WETH', 'WETH',
'Wrapped Ether' 'Wrapped Ether'
), ),
[SupportedChainId.ARBITRUM_RINKEBY]: new Token(
SupportedChainId.ARBITRUM_RINKEBY,
'0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681',
18,
'WETH',
'Wrapped Ether'
),
[SupportedChainId.POLYGON]: new Token( [SupportedChainId.POLYGON]: new Token(
SupportedChainId.POLYGON, SupportedChainId.POLYGON,
'0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
...@@ -447,15 +415,11 @@ export const TOKEN_SHORTHANDS: { [shorthand: string]: { [chainId in SupportedCha ...@@ -447,15 +415,11 @@ export const TOKEN_SHORTHANDS: { [shorthand: string]: { [chainId in SupportedCha
[SupportedChainId.MAINNET]: USDC_MAINNET.address, [SupportedChainId.MAINNET]: USDC_MAINNET.address,
[SupportedChainId.ARBITRUM_ONE]: USDC_ARBITRUM.address, [SupportedChainId.ARBITRUM_ONE]: USDC_ARBITRUM.address,
[SupportedChainId.OPTIMISM]: USDC_OPTIMISM.address, [SupportedChainId.OPTIMISM]: USDC_OPTIMISM.address,
[SupportedChainId.ARBITRUM_RINKEBY]: USDC_ARBITRUM_RINKEBY.address,
[SupportedChainId.OPTIMISM_GOERLI]: USDC_OPTIMISM_GOERLI.address, [SupportedChainId.OPTIMISM_GOERLI]: USDC_OPTIMISM_GOERLI.address,
[SupportedChainId.POLYGON]: USDC_POLYGON.address, [SupportedChainId.POLYGON]: USDC_POLYGON.address,
[SupportedChainId.POLYGON_MUMBAI]: USDC_POLYGON_MUMBAI.address, [SupportedChainId.POLYGON_MUMBAI]: USDC_POLYGON_MUMBAI.address,
[SupportedChainId.CELO]: PORTAL_USDC_CELO.address, [SupportedChainId.CELO]: PORTAL_USDC_CELO.address,
[SupportedChainId.CELO_ALFAJORES]: PORTAL_USDC_CELO.address, [SupportedChainId.CELO_ALFAJORES]: PORTAL_USDC_CELO.address,
[SupportedChainId.GOERLI]: USDC_GOERLI.address, [SupportedChainId.GOERLI]: USDC_GOERLI.address,
[SupportedChainId.RINKEBY]: USDC_RINKEBY.address,
[SupportedChainId.KOVAN]: USDC_KOVAN.address,
[SupportedChainId.ROPSTEN]: USDC_ROPSTEN.address,
}, },
} }
...@@ -62,7 +62,6 @@ export const CHAIN_ID_TO_BACKEND_NAME: { [key: number]: Chain } = { ...@@ -62,7 +62,6 @@ export const CHAIN_ID_TO_BACKEND_NAME: { [key: number]: Chain } = {
[SupportedChainId.CELO]: Chain.Celo, [SupportedChainId.CELO]: Chain.Celo,
[SupportedChainId.CELO_ALFAJORES]: Chain.Celo, [SupportedChainId.CELO_ALFAJORES]: Chain.Celo,
[SupportedChainId.ARBITRUM_ONE]: Chain.Arbitrum, [SupportedChainId.ARBITRUM_ONE]: Chain.Arbitrum,
[SupportedChainId.ARBITRUM_RINKEBY]: Chain.Arbitrum,
[SupportedChainId.OPTIMISM]: Chain.Optimism, [SupportedChainId.OPTIMISM]: Chain.Optimism,
[SupportedChainId.OPTIMISM_GOERLI]: Chain.Optimism, [SupportedChainId.OPTIMISM_GOERLI]: Chain.Optimism,
} }
......
...@@ -5,7 +5,6 @@ import store, { AppState } from '../../state/index' ...@@ -5,7 +5,6 @@ import store, { AppState } from '../../state/index'
const CHAIN_SUBGRAPH_URL: Record<number, string> = { const CHAIN_SUBGRAPH_URL: Record<number, string> = {
[SupportedChainId.MAINNET]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3', [SupportedChainId.MAINNET]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3',
[SupportedChainId.RINKEBY]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3',
[SupportedChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal', [SupportedChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal',
......
...@@ -13,7 +13,6 @@ import { useQuoter } from './useContract' ...@@ -13,7 +13,6 @@ import { useQuoter } from './useContract'
const QUOTE_GAS_OVERRIDES: { [chainId: number]: number } = { const QUOTE_GAS_OVERRIDES: { [chainId: number]: number } = {
[SupportedChainId.ARBITRUM_ONE]: 25_000_000, [SupportedChainId.ARBITRUM_ONE]: 25_000_000,
[SupportedChainId.ARBITRUM_RINKEBY]: 25_000_000,
[SupportedChainId.CELO]: 50_000_000, [SupportedChainId.CELO]: 50_000_000,
[SupportedChainId.CELO_ALFAJORES]: 50_000_000, [SupportedChainId.CELO_ALFAJORES]: 50_000_000,
[SupportedChainId.POLYGON]: 40_000_000, [SupportedChainId.POLYGON]: 40_000_000,
......
import { namehash } from '@ethersproject/hash'
import { useSingleCallResult } from 'lib/hooks/multicall' import { useSingleCallResult } from 'lib/hooks/multicall'
import { useMemo } from 'react' import { useMemo } from 'react'
import { safeNamehash } from 'utils/safeNamehash'
import isZero from '../utils/isZero' import isZero from '../utils/isZero'
import { useENSRegistrarContract, useENSResolverContract } from './useContract' import { useENSRegistrarContract, useENSResolverContract } from './useContract'
...@@ -11,10 +11,7 @@ import useDebounce from './useDebounce' ...@@ -11,10 +11,7 @@ import useDebounce from './useDebounce'
*/ */
export default function useENSAddress(ensName?: string | null): { loading: boolean; address: string | null } { export default function useENSAddress(ensName?: string | null): { loading: boolean; address: string | null } {
const debouncedName = useDebounce(ensName, 200) const debouncedName = useDebounce(ensName, 200)
const ensNodeArgument = useMemo( const ensNodeArgument = useMemo(() => [debouncedName ? namehash(debouncedName) : undefined], [debouncedName])
() => [debouncedName === null ? undefined : safeNamehash(debouncedName)],
[debouncedName]
)
const registrarContract = useENSRegistrarContract(false) const registrarContract = useENSRegistrarContract(false)
const resolverAddress = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument) const resolverAddress = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)
const resolverAddressResult = resolverAddress.result?.[0] const resolverAddressResult = resolverAddress.result?.[0]
......
...@@ -5,7 +5,6 @@ import { useWeb3React } from '@web3-react/core' ...@@ -5,7 +5,6 @@ import { useWeb3React } from '@web3-react/core'
import { useSingleCallResult } from 'lib/hooks/multicall' import { useSingleCallResult } from 'lib/hooks/multicall'
import uriToHttp from 'lib/utils/uriToHttp' import uriToHttp from 'lib/utils/uriToHttp'
import { useEffect, useMemo, useState } from 'react' import { useEffect, useMemo, useState } from 'react'
import { safeNamehash } from 'utils/safeNamehash'
import { isAddress } from '../utils' import { isAddress } from '../utils'
import isZero from '../utils/isZero' import isZero from '../utils/isZero'
...@@ -29,7 +28,7 @@ export default function useENSAvatar( ...@@ -29,7 +28,7 @@ export default function useENSAvatar(
const addressAvatar = useAvatarFromNode(node) const addressAvatar = useAvatarFromNode(node)
const ENSName = useENSName(address).ENSName const ENSName = useENSName(address).ENSName
const nameAvatar = useAvatarFromNode(ENSName === null ? undefined : safeNamehash(ENSName)) const nameAvatar = useAvatarFromNode(ENSName === null ? undefined : namehash(ENSName))
let avatar = addressAvatar.avatar || nameAvatar.avatar let avatar = addressAvatar.avatar || nameAvatar.avatar
const nftAvatar = useAvatarFromNFT(avatar, enforceOwnership) const nftAvatar = useAvatarFromNFT(avatar, enforceOwnership)
......
import { namehash } from '@ethersproject/hash'
import { useSingleCallResult } from 'lib/hooks/multicall' import { useSingleCallResult } from 'lib/hooks/multicall'
import { useMemo } from 'react' import { useMemo } from 'react'
import { safeNamehash } from 'utils/safeNamehash'
import isZero from '../utils/isZero' import isZero from '../utils/isZero'
import { useENSRegistrarContract, useENSResolverContract } from './useContract' import { useENSRegistrarContract, useENSResolverContract } from './useContract'
...@@ -9,7 +9,7 @@ import { useENSRegistrarContract, useENSResolverContract } from './useContract' ...@@ -9,7 +9,7 @@ import { useENSRegistrarContract, useENSResolverContract } from './useContract'
* Does a lookup for an ENS name to find its contenthash. * Does a lookup for an ENS name to find its contenthash.
*/ */
export default function useENSContentHash(ensName?: string | null): { loading: boolean; contenthash: string | null } { export default function useENSContentHash(ensName?: string | null): { loading: boolean; contenthash: string | null } {
const ensNodeArgument = useMemo(() => [ensName === null ? undefined : safeNamehash(ensName)], [ensName]) const ensNodeArgument = useMemo(() => [ensName ? namehash(ensName) : undefined], [ensName])
const registrarContract = useENSRegistrarContract(false) const registrarContract = useENSRegistrarContract(false)
const resolverAddressResult = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument) const resolverAddressResult = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)
const resolverAddress = resolverAddressResult.result?.[0] const resolverAddress = resolverAddressResult.result?.[0]
......
...@@ -3,6 +3,7 @@ import { splitSignature } from '@ethersproject/bytes' ...@@ -3,6 +3,7 @@ import { splitSignature } from '@ethersproject/bytes'
import { Trade } from '@uniswap/router-sdk' import { Trade } from '@uniswap/router-sdk'
import { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core' import { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core'
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import { SupportedChainId } from 'constants/chains'
import JSBI from 'jsbi' import JSBI from 'jsbi'
import { useSingleCallResult } from 'lib/hooks/multicall' import { useSingleCallResult } from 'lib/hooks/multicall'
import { useMemo, useState } from 'react' import { useMemo, useState } from 'react'
...@@ -33,24 +34,13 @@ const PERMITTABLE_TOKENS: { ...@@ -33,24 +34,13 @@ const PERMITTABLE_TOKENS: {
[checksummedTokenAddress: string]: PermitInfo [checksummedTokenAddress: string]: PermitInfo
} }
} = { } = {
1: { [SupportedChainId.MAINNET]: {
[USDC_MAINNET.address]: { type: PermitType.AMOUNT, name: 'USD Coin', version: '2' }, [USDC_MAINNET.address]: { type: PermitType.AMOUNT, name: 'USD Coin', version: '2' },
[DAI.address]: { type: PermitType.ALLOWED, name: 'Dai Stablecoin', version: '1' }, [DAI.address]: { type: PermitType.ALLOWED, name: 'Dai Stablecoin', version: '1' },
[UNI[1].address]: { type: PermitType.AMOUNT, name: 'Uniswap' }, [UNI[SupportedChainId.MAINNET].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },
}, },
4: { [SupportedChainId.GOERLI]: {
'0xc7AD46e0b8a400Bb3C915120d284AafbA8fc4735': { type: PermitType.ALLOWED, name: 'Dai Stablecoin', version: '1' }, [UNI[SupportedChainId.GOERLI].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },
[UNI[4].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },
},
3: {
[UNI[3].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },
'0x07865c6E87B9F70255377e024ace6630C1Eaa37F': { type: PermitType.AMOUNT, name: 'USD Coin', version: '2' },
},
5: {
[UNI[5].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },
},
42: {
[UNI[42].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },
}, },
} }
......
...@@ -15,7 +15,7 @@ import { useTickLens } from './useContract' ...@@ -15,7 +15,7 @@ import { useTickLens } from './useContract'
import { PoolState, usePool } from './usePools' import { PoolState, usePool } from './usePools'
const PRICE_FIXED_DIGITS = 8 const PRICE_FIXED_DIGITS = 8
const CHAIN_IDS_MISSING_SUBGRAPH_DATA = [SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_RINKEBY] const CHAIN_IDS_MISSING_SUBGRAPH_DATA = [SupportedChainId.ARBITRUM_ONE]
// Tick with fields parsed to JSBIs, and active liquidity computed. // Tick with fields parsed to JSBIs, and active liquidity computed.
export interface TickProcessed { export interface TickProcessed {
......
import { Currency, CurrencyAmount, Price, Token, TradeType } from '@uniswap/sdk-core' import { Currency, CurrencyAmount, Price, Token, TradeType } from '@uniswap/sdk-core'
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import { SupportedChainId } from 'constants/chains'
import tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount' import tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount'
import { useMemo, useRef } from 'react' import { useMemo, useRef } from 'react'
import { RouterPreference } from 'state/routing/slice' import { RouterPreference } from 'state/routing/slice'
import { useRoutingAPITrade } from 'state/routing/useRoutingAPITrade' import { useRoutingAPITrade } from 'state/routing/useRoutingAPITrade'
import { SupportedChainId } from '../constants/chains'
import { CUSD_CELO, DAI_OPTIMISM, USDC_ARBITRUM, USDC_MAINNET, USDC_POLYGON } from '../constants/tokens' import { CUSD_CELO, DAI_OPTIMISM, USDC_ARBITRUM, USDC_MAINNET, USDC_POLYGON } from '../constants/tokens'
// Stablecoin amounts used when calculating spot price for a given currency. // Stablecoin amounts used when calculating spot price for a given currency.
......
...@@ -32,7 +32,6 @@ export function shouldCheck(lastBlockNumber: number, tx: Transaction): boolean { ...@@ -32,7 +32,6 @@ export function shouldCheck(lastBlockNumber: number, tx: Transaction): boolean {
const RETRY_OPTIONS_BY_CHAIN_ID: { [chainId: number]: RetryOptions } = { const RETRY_OPTIONS_BY_CHAIN_ID: { [chainId: number]: RetryOptions } = {
[SupportedChainId.ARBITRUM_ONE]: { n: 10, minWait: 250, maxWait: 1000 }, [SupportedChainId.ARBITRUM_ONE]: { n: 10, minWait: 250, maxWait: 1000 },
[SupportedChainId.ARBITRUM_RINKEBY]: { n: 10, minWait: 250, maxWait: 1000 },
[SupportedChainId.OPTIMISM_GOERLI]: { n: 10, minWait: 250, maxWait: 1000 }, [SupportedChainId.OPTIMISM_GOERLI]: { n: 10, minWait: 250, maxWait: 1000 },
[SupportedChainId.OPTIMISM]: { n: 10, minWait: 250, maxWait: 1000 }, [SupportedChainId.OPTIMISM]: { n: 10, minWait: 250, maxWait: 1000 },
} }
......
...@@ -16,6 +16,7 @@ import { ...@@ -16,6 +16,7 @@ import {
GOVERNANCE_ALPHA_V1_ADDRESSES, GOVERNANCE_ALPHA_V1_ADDRESSES,
GOVERNANCE_BRAVO_ADDRESSES, GOVERNANCE_BRAVO_ADDRESSES,
} from 'constants/addresses' } from 'constants/addresses'
import { SupportedChainId } from 'constants/chains'
import { LATEST_GOVERNOR_INDEX } from 'constants/governance' import { LATEST_GOVERNOR_INDEX } from 'constants/governance'
import { POLYGON_PROPOSAL_TITLE } from 'constants/proposals/polygon_proposal_title' import { POLYGON_PROPOSAL_TITLE } from 'constants/proposals/polygon_proposal_title'
import { UNISWAP_GRANTS_PROPOSAL_DESCRIPTION } from 'constants/proposals/uniswap_grants_proposal_description' import { UNISWAP_GRANTS_PROPOSAL_DESCRIPTION } from 'constants/proposals/uniswap_grants_proposal_description'
...@@ -24,7 +25,6 @@ import { useSingleCallResult, useSingleContractMultipleData } from 'lib/hooks/mu ...@@ -24,7 +25,6 @@ import { useSingleCallResult, useSingleContractMultipleData } from 'lib/hooks/mu
import { useCallback, useMemo } from 'react' import { useCallback, useMemo } from 'react'
import { calculateGasMargin } from 'utils/calculateGasMargin' import { calculateGasMargin } from 'utils/calculateGasMargin'
import { SupportedChainId } from '../../constants/chains'
import { import {
BRAVO_START_BLOCK, BRAVO_START_BLOCK,
MOONBEAN_START_BLOCK, MOONBEAN_START_BLOCK,
......
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import { SupportedChainId } from 'constants/chains'
import { useIsNftPage } from 'hooks/useIsNftPage' import { useIsNftPage } from 'hooks/useIsNftPage'
import { useEffect } from 'react' import { useEffect } from 'react'
import { useDarkModeManager } from 'state/user/hooks' import { useDarkModeManager } from 'state/user/hooks'
import { SupportedChainId } from '../../constants/chains'
import { darkTheme, lightTheme } from '../colors' import { darkTheme, lightTheme } from '../colors'
const initialStyles = { const initialStyles = {
...@@ -47,8 +47,7 @@ export default function RadialGradientByChainUpdater(): null { ...@@ -47,8 +47,7 @@ export default function RadialGradientByChainUpdater(): null {
} }
switch (chainId) { switch (chainId) {
case SupportedChainId.ARBITRUM_ONE: case SupportedChainId.ARBITRUM_ONE: {
case SupportedChainId.ARBITRUM_RINKEBY: {
setBackground(backgroundResetStyles) setBackground(backgroundResetStyles)
const arbitrumLightGradient = const arbitrumLightGradient =
'radial-gradient(100% 100% at 50% 0%, rgba(205, 232, 251, 0.7) 0%, rgba(252, 243, 249, 0.6536) 49.48%, rgba(255, 255, 255, 0) 100%), #FFFFFF' 'radial-gradient(100% 100% at 50% 0%, rgba(205, 232, 251, 0.7) 0%, rgba(252, 243, 249, 0.6536) 49.48%, rgba(255, 255, 255, 0) 100%), #FFFFFF'
......
...@@ -11,26 +11,18 @@ describe('#anonymizeLink', () => { ...@@ -11,26 +11,18 @@ describe('#anonymizeLink', () => {
expect(anonymizeLink('https://goerli.etherscan.io/address/0xabcd')).toEqual( expect(anonymizeLink('https://goerli.etherscan.io/address/0xabcd')).toEqual(
'https://goerli.etherscan.io/address/***' 'https://goerli.etherscan.io/address/***'
) )
expect(anonymizeLink('https://ropsten.etherscan.io/address/0xabcd')).toEqual(
'https://ropsten.etherscan.io/address/***'
)
}) })
it('anonymizes hashes in the middle of the url', () => { it('anonymizes hashes in the middle of the url', () => {
expect(anonymizeLink('https://ropsten.etherscan.io/address/0xabcd/test')).toEqual( expect(anonymizeLink('https://goerli.etherscan.io/address/0xabcd/test')).toEqual(
'https://ropsten.etherscan.io/address/***/test' 'https://goerli.etherscan.io/address/***/test'
) )
}) })
it('does not anonymize 0x', () => { it('does not anonymize 0x', () => {
expect(anonymizeLink('https://ropsten.etherscan.io/address/0x/test')).toEqual( expect(anonymizeLink('https://goerli.etherscan.io/address/0x/test')).toEqual(
'https://ropsten.etherscan.io/address/0x/test' 'https://goerli.etherscan.io/address/0x/test'
) )
}) })
it('works for arbitrum urls', () => { it('works for arbitrum urls', () => {
expect(anonymizeLink('https://arbiscan.io/0x/0xabc')).toEqual('https://arbiscan.io/0x/***') expect(anonymizeLink('https://arbiscan.io/0x/0xabc')).toEqual('https://arbiscan.io/0x/***')
}) })
it('works for arbitrum rinkeby urls', () => {
expect(anonymizeLink('https://rinkeby-explorer.arbitrum.io/0x/0xabc')).toEqual(
'https://rinkeby-explorer.arbitrum.io/0x/***'
)
})
}) })
const EXPLORER_HOSTNAMES: { [hostname: string]: true } = { const EXPLORER_HOSTNAMES: { [hostname: string]: true } = {
'etherscan.io': true, 'etherscan.io': true,
'ropsten.etherscan.io': true,
'rinkeby.etherscan.io': true,
'kovan.etherscan.io': true,
'goerli.etherscan.io': true, 'goerli.etherscan.io': true,
'optimistic.etherscan.io': true, 'optimistic.etherscan.io': true,
'goerli-optimism.etherscan.io': true, 'goerli-optimism.etherscan.io': true,
'rinkeby-explorer.arbitrum.io': true,
'arbiscan.io': true, 'arbiscan.io': true,
} }
......
import { SupportedChainId } from '../constants/chains' import { SupportedChainId } from 'constants/chains'
const DEFAULT_NETWORKS = [ const DEFAULT_NETWORKS = [SupportedChainId.MAINNET, SupportedChainId.GOERLI]
SupportedChainId.MAINNET,
SupportedChainId.ROPSTEN,
SupportedChainId.RINKEBY,
SupportedChainId.GOERLI,
SupportedChainId.KOVAN,
]
export function constructSameAddressMap<T extends string>( export function constructSameAddressMap<T extends string>(
address: T, address: T,
......
import { SupportedChainId } from '../constants/chains' import { SupportedChainId } from 'constants/chains'
const BLOCK_EXPLORER_PREFIXES: { [chainId: number]: string } = { const BLOCK_EXPLORER_PREFIXES: { [chainId: number]: string } = {
[SupportedChainId.MAINNET]: 'https://etherscan.io', [SupportedChainId.MAINNET]: 'https://etherscan.io',
[SupportedChainId.ROPSTEN]: 'https://ropsten.etherscan.io',
[SupportedChainId.RINKEBY]: 'https://rinkeby.etherscan.io',
[SupportedChainId.GOERLI]: 'https://goerli.etherscan.io', [SupportedChainId.GOERLI]: 'https://goerli.etherscan.io',
[SupportedChainId.KOVAN]: 'https://kovan.etherscan.io',
[SupportedChainId.OPTIMISM]: 'https://optimistic.etherscan.io', [SupportedChainId.OPTIMISM]: 'https://optimistic.etherscan.io',
[SupportedChainId.OPTIMISM_GOERLI]: 'https://goerli-optimism.etherscan.io', [SupportedChainId.OPTIMISM_GOERLI]: 'https://goerli-optimism.etherscan.io',
[SupportedChainId.POLYGON]: 'https://polygonscan.com', [SupportedChainId.POLYGON]: 'https://polygonscan.com',
...@@ -42,20 +39,6 @@ export function getExplorerLink(chainId: number, data: string, type: ExplorerDat ...@@ -42,20 +39,6 @@ export function getExplorerLink(chainId: number, data: string, type: ExplorerDat
} }
} }
if (chainId === SupportedChainId.ARBITRUM_RINKEBY) {
switch (type) {
case ExplorerDataType.TRANSACTION:
return `https://rinkeby-explorer.arbitrum.io/tx/${data}`
case ExplorerDataType.ADDRESS:
case ExplorerDataType.TOKEN:
return `https://rinkeby-explorer.arbitrum.io/address/${data}`
case ExplorerDataType.BLOCK:
return `https://rinkeby-explorer.arbitrum.io/block/${data}`
default:
return `https://rinkeby-explorer.arbitrum.io/`
}
}
const prefix = BLOCK_EXPLORER_PREFIXES[chainId] ?? 'https://etherscan.io' const prefix = BLOCK_EXPLORER_PREFIXES[chainId] ?? 'https://etherscan.io'
switch (type) { switch (type) {
......
import { namehash } from '@ethersproject/hash'
import { safeNamehash } from './safeNamehash'
describe('#safeNamehash', () => {
const emoji = '🤔'
it('#namehash fails', () => {
expect(() => namehash(emoji)).toThrow('STRINGPREP_CONTAINS_UNASSIGNED')
})
// suppress console.debug for the next test
beforeEach(() => {
// eslint-disable-next-line @typescript-eslint/no-empty-function
jest.spyOn(console, 'debug').mockImplementation(() => {})
})
it('works', () => {
expect(safeNamehash(emoji)).toEqual(undefined)
})
})
import { namehash } from '@ethersproject/hash'
export function safeNamehash(name?: string): string | undefined {
if (name === undefined) return undefined
try {
return namehash(name)
} catch (error) {
console.debug(error)
return undefined
}
}
import { SupportedChainId } from '../constants/chains' import { SupportedChainId } from 'constants/chains'
/** /**
* Returns the input chain ID if chain is supported. If not, return undefined * Returns the input chain ID if chain is supported. If not, return undefined
......
import { Connector } from '@web3-react/types' import { Connector } from '@web3-react/types'
import { networkConnection, walletConnectConnection } from 'connection' import { networkConnection, walletConnectConnection } from 'connection'
import { getChainInfo } from 'constants/chainInfo' import { getChainInfo } from 'constants/chainInfo'
import { isSupportedChain, SupportedChainId } from 'constants/chains' import { SupportedChainId } from 'constants/chains'
import { isSupportedChain } from 'constants/chains'
import { FALLBACK_URLS, RPC_URLS } from 'constants/networks' import { FALLBACK_URLS, RPC_URLS } from 'constants/networks'
function getRpcUrl(chainId: SupportedChainId): string { function getRpcUrl(chainId: SupportedChainId): string {
switch (chainId) { switch (chainId) {
case SupportedChainId.MAINNET: case SupportedChainId.MAINNET:
case SupportedChainId.RINKEBY:
case SupportedChainId.ROPSTEN:
case SupportedChainId.KOVAN:
case SupportedChainId.GOERLI: case SupportedChainId.GOERLI:
return RPC_URLS[chainId][0] return RPC_URLS[chainId][0]
// Attempting to add a chain using an infura URL will not work, as the URL will be unreachable from the MetaMask background page. // Attempting to add a chain using an infura URL will not work, as the URL will be unreachable from the MetaMask background page.
......
This diff is collapsed.
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