Skip to content

Commit

Permalink
feat: support op sepolia (#486)
Browse files Browse the repository at this point in the history
* support op sepolia

* filter out op sepolia from running integ-test
  • Loading branch information
jsy1218 authored Feb 9, 2024
1 parent 35e6bd0 commit af15e49
Show file tree
Hide file tree
Showing 17 changed files with 124 additions and 24 deletions.
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"@uniswap/default-token-list": "^11.2.0",
"@uniswap/permit2-sdk": "^1.2.0",
"@uniswap/router-sdk": "^1.7.5",
"@uniswap/sdk-core": "^4.0.7",
"@uniswap/sdk-core": "^4.0.9",
"@uniswap/swap-router-contracts": "^1.3.0",
"@uniswap/token-lists": "^1.0.0-beta.31",
"@uniswap/universal-router": "^1.6.0",
Expand Down
16 changes: 11 additions & 5 deletions src/providers/caching-token-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import {
DAI_MAINNET,
DAI_MOONBEAM,
DAI_OPTIMISM,
DAI_OPTIMISM_GOERLI,
DAI_OPTIMISM_GOERLI, DAI_OPTIMISM_SEPOLIA,
DAI_POLYGON_MUMBAI,
ETH_BNB,
ITokenProvider,
Expand All @@ -34,21 +34,21 @@ import {
USDC_MAINNET,
USDC_MOONBEAM,
USDC_OPTIMISM,
USDC_OPTIMISM_GOERLI,
USDC_OPTIMISM_GOERLI, USDC_OPTIMISM_SEPOLIA,
USDC_POLYGON,
USDC_SEPOLIA,
USDT_ARBITRUM,
USDT_BNB,
USDT_MAINNET,
USDT_OPTIMISM,
USDT_OPTIMISM_GOERLI,
USDT_OPTIMISM_GOERLI, USDT_OPTIMISM_SEPOLIA,
WBTC_ARBITRUM,
WBTC_MAINNET,
WBTC_MOONBEAM,
WBTC_OPTIMISM,
WBTC_OPTIMISM_GOERLI,
WBTC_OPTIMISM_GOERLI, WBTC_OPTIMISM_SEPOLIA,
WMATIC_POLYGON,
WMATIC_POLYGON_MUMBAI,
WMATIC_POLYGON_MUMBAI
} from './token-provider';

// These tokens will added to the Token cache on initialization.
Expand Down Expand Up @@ -87,6 +87,12 @@ export const CACHE_SEED_TOKENS: {
WBTC: WBTC_OPTIMISM_GOERLI,
DAI: DAI_OPTIMISM_GOERLI,
},
[ChainId.OPTIMISM_SEPOLIA]: {
USDC: USDC_OPTIMISM_SEPOLIA,
USDT: USDT_OPTIMISM_SEPOLIA,
WBTC: WBTC_OPTIMISM_SEPOLIA,
DAI: DAI_OPTIMISM_SEPOLIA,
},
[ChainId.ARBITRUM_ONE]: {
USDC: USDC_ARBITRUM,
USDT: USDT_ARBITRUM,
Expand Down
35 changes: 35 additions & 0 deletions src/providers/token-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,35 @@ export const DAI_OPTIMISM_GOERLI = new Token(
'Dai Stablecoin'
);

export const USDC_OPTIMISM_SEPOLIA = new Token(
ChainId.OPTIMISM_SEPOLIA,
'0x7E07E15D2a87A24492740D16f5bdF58c16db0c4E',
6,
'USDC',
'USD//C'
);
export const USDT_OPTIMISM_SEPOLIA = new Token(
ChainId.OPTIMISM_SEPOLIA,
'0x853eb4bA5D0Ba2B77a0A5329Fd2110d5CE149ECE',
6,
'USDT',
'Tether USD'
);
export const WBTC_OPTIMISM_SEPOLIA = new Token(
ChainId.OPTIMISM_SEPOLIA,
'0xe0a592353e81a94Db6E3226fD4A99F881751776a',
8,
'WBTC',
'Wrapped BTC'
);
export const DAI_OPTIMISM_SEPOLIA = new Token(
ChainId.OPTIMISM_SEPOLIA,
'0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1',
18,
'DAI',
'Dai Stablecoin'
);

export const USDC_ARBITRUM = new Token(
ChainId.ARBITRUM_ONE,
'0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8',
Expand Down Expand Up @@ -721,6 +750,8 @@ export const DAI_ON = (chainId: ChainId): Token => {
return DAI_OPTIMISM;
case ChainId.OPTIMISM_GOERLI:
return DAI_OPTIMISM_GOERLI;
case ChainId.OPTIMISM_SEPOLIA:
return DAI_OPTIMISM_SEPOLIA;
case ChainId.ARBITRUM_ONE:
return DAI_ARBITRUM;
case ChainId.ARBITRUM_GOERLI:
Expand Down Expand Up @@ -754,6 +785,8 @@ export const USDT_ON = (chainId: ChainId): Token => {
return USDT_OPTIMISM;
case ChainId.OPTIMISM_GOERLI:
return USDT_OPTIMISM_GOERLI;
case ChainId.OPTIMISM_SEPOLIA:
return USDT_OPTIMISM_SEPOLIA;
case ChainId.ARBITRUM_ONE:
return USDT_ARBITRUM;
case ChainId.BNB:
Expand All @@ -775,6 +808,8 @@ export const USDC_ON = (chainId: ChainId): Token => {
return USDC_OPTIMISM;
case ChainId.OPTIMISM_GOERLI:
return USDC_OPTIMISM_GOERLI;
case ChainId.OPTIMISM_SEPOLIA:
return USDC_OPTIMISM_SEPOLIA;
case ChainId.ARBITRUM_ONE:
return USDC_ARBITRUM;
case ChainId.ARBITRUM_GOERLI:
Expand Down
1 change: 1 addition & 0 deletions src/providers/v2/static-subgraph-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
],
[ChainId.ARBITRUM_GOERLI]: [],
[ChainId.OPTIMISM_GOERLI]: [],
[ChainId.OPTIMISM_SEPOLIA]: [],
[ChainId.POLYGON]: [USDC_POLYGON, WETH_POLYGON, WMATIC_POLYGON],
[ChainId.POLYGON_MUMBAI]: [],
[ChainId.CELO]: [CELO, CUSD_CELO, CEUR_CELO, DAI_CELO],
Expand Down
4 changes: 4 additions & 0 deletions src/providers/v3/static-subgraph-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@ const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
WBTC_OPTIMISM,
OP_OPTIMISM,
],
// todo: once subgraph is created
[ChainId.OPTIMISM_SEPOLIA]: [
// WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM_SEPOLIA]!,
],
[ChainId.ARBITRUM_ONE]: [
WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_ONE]!,
WBTC_ARBITRUM,
Expand Down
2 changes: 2 additions & 0 deletions src/providers/v3/subgraph-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ const SUBGRAPH_URL_BY_CHAIN: { [chainId in ChainId]?: string } = {
'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3',
[ChainId.OPTIMISM]:
'https://api.thegraph.com/subgraphs/name/ianlapham/optimism-post-regenesis',
// todo: add once subgraph is live
[ChainId.OPTIMISM_SEPOLIA]: '',
[ChainId.ARBITRUM_ONE]:
'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal',
[ChainId.POLYGON]:
Expand Down
1 change: 1 addition & 0 deletions src/routers/alpha-router/alpha-router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,7 @@ export class AlphaRouter
switch (chainId) {
case ChainId.OPTIMISM:
case ChainId.OPTIMISM_GOERLI:
case ChainId.OPTIMISM_SEPOLIA:
this.onChainQuoteProvider = new OnChainQuoteProvider(
chainId,
provider,
Expand Down
1 change: 1 addition & 0 deletions src/routers/alpha-router/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export const DEFAULT_ROUTING_CONFIG_BY_CHAIN = (
// Optimism
case ChainId.OPTIMISM:
case ChainId.OPTIMISM_GOERLI:
case ChainId.OPTIMISM_SEPOLIA:
case ChainId.BASE:
case ChainId.BASE_GOERLI:
return {
Expand Down
11 changes: 9 additions & 2 deletions src/routers/alpha-router/functions/get-candidate-pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ import { FeeAmount } from '@uniswap/v3-sdk';
import _ from 'lodash';

import {
DAI_OPTIMISM_SEPOLIA,
ITokenListProvider,
IV2SubgraphProvider,
V2SubgraphPool,
IV2SubgraphProvider, USDC_OPTIMISM_SEPOLIA, USDT_OPTIMISM_SEPOLIA,
V2SubgraphPool, WBTC_OPTIMISM_SEPOLIA
} from '../../../providers';
import {
CELO,
Expand Down Expand Up @@ -148,6 +149,12 @@ const baseTokensByChain: { [chainId in ChainId]?: Token[] } = {
USDT_OPTIMISM_GOERLI,
WBTC_OPTIMISM_GOERLI,
],
[ChainId.OPTIMISM_SEPOLIA]: [
DAI_OPTIMISM_SEPOLIA,
USDC_OPTIMISM_SEPOLIA,
USDT_OPTIMISM_SEPOLIA,
WBTC_OPTIMISM_SEPOLIA,
],
[ChainId.ARBITRUM_ONE]: [
DAI_ARBITRUM,
USDC_ARBITRUM,
Expand Down
15 changes: 6 additions & 9 deletions src/routers/alpha-router/gas-models/gas-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
DAI_GOERLI,
DAI_MAINNET,
DAI_OPTIMISM,
DAI_OPTIMISM_GOERLI,
DAI_OPTIMISM_GOERLI, DAI_OPTIMISM_SEPOLIA,
DAI_POLYGON_MUMBAI,
DAI_SEPOLIA,
USDC_ARBITRUM,
Expand All @@ -30,16 +30,16 @@ import {
USDC_MAINNET,
USDC_MOONBEAM,
USDC_OPTIMISM,
USDC_OPTIMISM_GOERLI,
USDC_OPTIMISM_GOERLI, USDC_OPTIMISM_SEPOLIA,
USDC_POLYGON,
USDC_SEPOLIA,
USDT_ARBITRUM,
USDT_BNB,
USDT_GOERLI,
USDT_MAINNET,
USDT_OPTIMISM,
USDT_OPTIMISM_GOERLI,
WBTC_GOERLI,
USDT_OPTIMISM_GOERLI, USDT_OPTIMISM_SEPOLIA,
WBTC_GOERLI
} from '../../../providers/token-provider';
import { IV2PoolProvider } from '../../../providers/v2/pool-provider';
import {
Expand All @@ -63,11 +63,8 @@ export const usdGasTokensByChain: { [chainId in ChainId]?: Token[] } = {
[ChainId.MAINNET]: [DAI_MAINNET, USDC_MAINNET, USDT_MAINNET],
[ChainId.ARBITRUM_ONE]: [DAI_ARBITRUM, USDC_ARBITRUM, USDT_ARBITRUM],
[ChainId.OPTIMISM]: [DAI_OPTIMISM, USDC_OPTIMISM, USDT_OPTIMISM],
[ChainId.OPTIMISM_GOERLI]: [
DAI_OPTIMISM_GOERLI,
USDC_OPTIMISM_GOERLI,
USDT_OPTIMISM_GOERLI,
],
[ChainId.OPTIMISM_GOERLI]: [DAI_OPTIMISM_GOERLI, USDC_OPTIMISM_GOERLI, USDT_OPTIMISM_GOERLI],
[ChainId.OPTIMISM_SEPOLIA]: [DAI_OPTIMISM_SEPOLIA, USDC_OPTIMISM_SEPOLIA, USDT_OPTIMISM_SEPOLIA],
[ChainId.ARBITRUM_GOERLI]: [USDC_ARBITRUM_GOERLI],
[ChainId.GOERLI]: [DAI_GOERLI, USDC_GOERLI, USDT_GOERLI, WBTC_GOERLI],
[ChainId.SEPOLIA]: [USDC_SEPOLIA, DAI_SEPOLIA],
Expand Down
3 changes: 3 additions & 0 deletions src/routers/alpha-router/gas-models/v3/gas-costs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export const BASE_SWAP_COST = (id: ChainId): BigNumber => {
case ChainId.SEPOLIA:
case ChainId.OPTIMISM:
case ChainId.OPTIMISM_GOERLI:
case ChainId.OPTIMISM_SEPOLIA:
case ChainId.BNB:
case ChainId.AVALANCHE:
case ChainId.BASE:
Expand Down Expand Up @@ -48,6 +49,7 @@ export const COST_PER_INIT_TICK = (id: ChainId): BigNumber => {
return BigNumber.from(31000);
case ChainId.OPTIMISM:
case ChainId.OPTIMISM_GOERLI:
case ChainId.OPTIMISM_SEPOLIA:
case ChainId.BASE:
case ChainId.BASE_GOERLI:
return BigNumber.from(31000);
Expand Down Expand Up @@ -75,6 +77,7 @@ export const COST_PER_HOP = (id: ChainId): BigNumber => {
case ChainId.BNB:
case ChainId.OPTIMISM:
case ChainId.OPTIMISM_GOERLI:
case ChainId.OPTIMISM_SEPOLIA:
case ChainId.AVALANCHE:
case ChainId.BASE:
case ChainId.BASE_GOERLI:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ export class V3HeuristicGasModelFactory extends IOnChainGasModelFactory {
const opStackChains = [
ChainId.OPTIMISM,
ChainId.OPTIMISM_GOERLI,
ChainId.OPTIMISM_SEPOLIA,
ChainId.BASE,
ChainId.BASE_GOERLI,
];
Expand Down
3 changes: 3 additions & 0 deletions src/routers/legacy-router/bases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ export const BASES_TO_CHECK_TRADES_AGAINST = (
[ChainId.OPTIMISM_GOERLI]: [
WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM_GOERLI]!,
],
[ChainId.OPTIMISM_SEPOLIA]: [
WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM_SEPOLIA]!,
],
[ChainId.ARBITRUM_ONE]: [WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_ONE]!],
[ChainId.ARBITRUM_GOERLI]: [
WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_GOERLI]!,
Expand Down
13 changes: 13 additions & 0 deletions src/util/addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ export const V3_CORE_FACTORY_ADDRESSES: AddressMap = {
CHAIN_TO_ADDRESSES_MAP[ChainId.CELO_ALFAJORES].v3CoreFactoryAddress,
[ChainId.OPTIMISM_GOERLI]:
CHAIN_TO_ADDRESSES_MAP[ChainId.OPTIMISM_GOERLI].v3CoreFactoryAddress,
[ChainId.OPTIMISM_SEPOLIA]:
CHAIN_TO_ADDRESSES_MAP[ChainId.OPTIMISM_SEPOLIA].v3CoreFactoryAddress,
[ChainId.SEPOLIA]:
CHAIN_TO_ADDRESSES_MAP[ChainId.SEPOLIA].v3CoreFactoryAddress,
[ChainId.ARBITRUM_GOERLI]:
Expand All @@ -39,6 +41,8 @@ export const QUOTER_V2_ADDRESSES: AddressMap = {
CHAIN_TO_ADDRESSES_MAP[ChainId.CELO_ALFAJORES].quoterAddress,
[ChainId.OPTIMISM_GOERLI]:
CHAIN_TO_ADDRESSES_MAP[ChainId.OPTIMISM_GOERLI].quoterAddress,
[ChainId.OPTIMISM_SEPOLIA]:
CHAIN_TO_ADDRESSES_MAP[ChainId.OPTIMISM_SEPOLIA].quoterAddress,
[ChainId.SEPOLIA]: CHAIN_TO_ADDRESSES_MAP[ChainId.SEPOLIA].quoterAddress,
[ChainId.ARBITRUM_GOERLI]:
CHAIN_TO_ADDRESSES_MAP[ChainId.ARBITRUM_GOERLI].quoterAddress,
Expand All @@ -64,6 +68,8 @@ export const UNISWAP_MULTICALL_ADDRESSES: AddressMap = {
CHAIN_TO_ADDRESSES_MAP[ChainId.CELO_ALFAJORES].multicallAddress,
[ChainId.OPTIMISM_GOERLI]:
CHAIN_TO_ADDRESSES_MAP[ChainId.OPTIMISM_GOERLI].multicallAddress,
[ChainId.OPTIMISM_SEPOLIA]:
CHAIN_TO_ADDRESSES_MAP[ChainId.OPTIMISM_SEPOLIA].multicallAddress,
[ChainId.SEPOLIA]: CHAIN_TO_ADDRESSES_MAP[ChainId.SEPOLIA].multicallAddress,
[ChainId.ARBITRUM_GOERLI]:
CHAIN_TO_ADDRESSES_MAP[ChainId.ARBITRUM_GOERLI].multicallAddress,
Expand Down Expand Up @@ -158,6 +164,13 @@ export const WETH9: {
'WETH',
'Wrapped Ether'
),
[ChainId.OPTIMISM_SEPOLIA]: new Token(
ChainId.OPTIMISM_SEPOLIA,
'0x4200000000000000000000000000000000000006',
18,
'WETH',
'Wrapped Ether'
),
[ChainId.ARBITRUM_ONE]: new Token(
ChainId.ARBITRUM_ONE,
'0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
Expand Down
Loading

0 comments on commit af15e49

Please sign in to comment.