Skip to content

Commit

Permalink
feat: Linea (#7547)
Browse files Browse the repository at this point in the history
<!--
Before opening a pull request, please read the [contributing
guidelines](https://github.com/pancakeswap/pancake-frontend/blob/develop/CONTRIBUTING.md)
first
-->

<!--
copilot:all
-->
### <samp>🤖 Generated by Copilot at 0864022</samp>

### Summary
🌐🥞🚀

<!--
1. 🌐 - This emoji represents the addition of a new blockchain network,
which is a major feature for the web app and the packages.
2. 🥞 - This emoji represents the integration with PancakeSwap, which is
a popular decentralized exchange on the Linea chain and enables V2
features.
3. 🚀 - This emoji represents the improvement of the cross-chain and
cross-protocol swap functionality, which is enabled by the v3 router and
the smart router packages.
-->
This pull request adds support for the Linea chain, a new blockchain
network, to the PancakeSwap web app and smart router packages. It
defines the Linea chain parameters, contract addresses, tokens, pools,
and subgraph URL in various files. It also enables V2 and V3 features
for the Linea chain, such as cross-chain and cross-protocol swaps, gas
model, and multicall.

> _Sing, O Muse, of the valiant developers who dared_
> _To add support for the Linea chain, a new network fair_
> _They updated the web app and the packages with skill and care_
> _And defined the tokens, contracts, and queries with `chains.ts` as
their lair_

### Walkthrough
* Add Linea chain support to the web app and the smart router packages
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-5b02b946734e39568c018763a8445fe22e5633c04fa393f78eaec1947165713dR146),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R29),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R94-R135),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R148),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R160),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ccab19ffbec70686dc2221f7b79432ece4302c36067c91063d258209c09ec07R197),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ccab19ffbec70686dc2221f7b79432ece4302c36067c91063d258209c09ec07R211),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-7238357db46da6bb48ca41841457ac0e832ee21fb8fd76a6b3c9dbf701ce8c62R76),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR16),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR38),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR54),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR70),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR93),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-17218d64565ce12e09953351575126053d6b30541c3605f7ee38a34374a7daecR4),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-17218d64565ce12e09953351575126053d6b30541c3605f7ee38a34374a7daecR36),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-17218d64565ce12e09953351575126053d6b30541c3605f7ee38a34374a7daecR73),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ddce95e802c6a0d90c11aede57b78c496812dc5c4b41ad90624e555af6bde95R15),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ddce95e802c6a0d90c11aede57b78c496812dc5c4b41ad90624e555af6bde95R31),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ddce95e802c6a0d90c11aede57b78c496812dc5c4b41ad90624e555af6bde95R46),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-d8d2e80f999905e1bd9986d3e969db239634d3022e41fc1471625e64ec294a54R48-R51),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-8678467f9c5f232cf1e8d50d56227b3901ce30af399e575a2d1b39ef99eebf8dR219),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-dfa0d43a8db000e0c6466316afa72d83e8ce626238b0960dae8ecdf2de43bfc3R53),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-49573f110ec3a7b2c18b2aec89dcca7184192e3187731aaed499af0da5ae3c08R23),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R17),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R33),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R48),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R63),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R87),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-24d3b14038aadecce9558c47648b19363b226e949e3580a1381f1b4eb5af9bdfR11),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-24d3b14038aadecce9558c47648b19363b226e949e3580a1381f1b4eb5af9bdfR28),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-811cce7aeac21c9b1e6aceba276b6f1c541076dbf4722a255a0c1c7c40b9c3ccR83),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-b61d8bdd98a286c72deb45821a4ec9c7f76e5d799076e05a8f094a0ca72f79c2R21),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-b61d8bdd98a286c72deb45821a4ec9c7f76e5d799076e05a8f094a0ca72f79c2R36),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-f6944a0f19cabcd660c00c460c8db3a84157604fd85ec718e2530b2bf300e952R26),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-9ee18cb7fa7b08aada0e9a3c92dede9202fb872ba10bd8f230843faef707f463R31),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-9ee18cb7fa7b08aada0e9a3c92dede9202fb872ba10bd8f230843faef707f463R48),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R16),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R38),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R56),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R141-R148),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R197),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R226),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-e19e37172da9e6ea69624bbf503812c8bf3999c4bc79c78a9fe7288219c0de7eR1-R7),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-8dce334490b3aef54ec2484deec6ef79b4438828dc1ee3324cfa3b2a5244251bR210),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-8dce334490b3aef54ec2484deec6ef79b4438828dc1ee3324cfa3b2a5244251bR272))
* Define the chain id, name, network, native currency, rpc urls, block
explorers, contracts, and testnet flag for the Linea chain in
`chains.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R94-R135),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R160))
* Add the Linea chain name and query name to the network switcher
component and the chain explorer URL in `NetworkSwitcher.tsx` and
`chains.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-5b02b946734e39568c018763a8445fe22e5633c04fa393f78eaec1947165713dR146),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-870705bc610c873933b2d04d9a57db54345cab8d9ad2af707454ac577b21f6e4R29))
* Add the Linea rpc urls for the server and public nodes in `nodes.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-17218d64565ce12e09953351575126053d6b30541c3605f7ee38a34374a7daecR4),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-17218d64565ce12e09953351575126053d6b30541c3605f7ee38a34374a7daecR36),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-17218d64565ce12e09953351575126053d6b30541c3605f7ee38a34374a7daecR73))
* Add the Linea addresses for the PancakeSwap V2 factory and router
contracts in `contracts.ts` and `exchange.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ccab19ffbec70686dc2221f7b79432ece4302c36067c91063d258209c09ec07R197),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ccab19ffbec70686dc2221f7b79432ece4302c36067c91063d258209c09ec07R211),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R48))
* Add the Linea subgraph URL for the Uniswap V3 pools in `endpoints.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-7238357db46da6bb48ca41841457ac0e832ee21fb8fd76a6b3c9dbf701ce8c62R76))
* Add the Linea chain refresh time, suggested bases, bases to track
liquidity, and pairs to track liquidity in `exchange.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR38),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR54),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR70),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6c1ab0c7f31ca2b1900f09bca08f47eb81d6df582ebc368bdcc1000dbf59659fR93))
* Add the Linea revalidation time for the fast, normal, and slow pools
in `pools.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ddce95e802c6a0d90c11aede57b78c496812dc5c4b41ad90624e555af6bde95R15),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ddce95e802c6a0d90c11aede57b78c496812dc5c4b41ad90624e555af6bde95R31),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-6ddce95e802c6a0d90c11aede57b78c496812dc5c4b41ad90624e555af6bde95R46))
* Add the Linea default token and pool list in
`useInfoUserSavedTokensAndPoolsList.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-d8d2e80f999905e1bd9986d3e969db239634d3022e41fc1471625e64ec294a54R48-R51))
* Add the Linea chain to the combineMaps function in `lists/hooks.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-8678467f9c5f232cf1e8d50d56227b3901ce30af399e575a2d1b39ef99eebf8dR219))
* Add the Linea swap data to the SWAP_INFO_BY_CHAIN object in
`fetchDerivedPriceData.ts`
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-dfa0d43a8db000e0c6466316afa72d83e8ce626238b0960dae8ecdf2de43bfc3R53))
* Add the Linea chain name to the CHAIN_ID_TO_CHAIN_NAME object in
`common.ts` for the smart router package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-49573f110ec3a7b2c18b2aec89dcca7184192e3187731aaed499af0da5ae3c08R23))
* Add the Linea address for the smart router contract in `exchange.ts`
for the smart router package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R33))
* Add the Linea address for the stable swap info contract in
`exchange.ts` for the smart router package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R63))
* Add the Linea bases to check trades against in `exchange.ts` for the
smart router package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-78ce9cd83b6e1807ee9752c395d004a76077b4df666c24beafa7932c76193b02R87))
* Add the Linea usd gas tokens in `gasModel/index.ts` for the gas model
package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-24d3b14038aadecce9558c47648b19363b226e949e3580a1381f1b4eb5af9bdfR28))
* Add the Linea chain to the BATCH_MULTICALL_CONFIGS object in
`multicall.ts` for the multicall package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-811cce7aeac21c9b1e6aceba276b6f1c541076dbf4722a255a0c1c7c40b9c3ccR83))
* Add the Linea address for the mixed route quoter contract and the
Uniswap V3 quoter contract in `v3.ts` for the v3 router package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-b61d8bdd98a286c72deb45821a4ec9c7f76e5d799076e05a8f094a0ca72f79c2R21),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-b61d8bdd98a286c72deb45821a4ec9c7f76e5d799076e05a8f094a0ca72f79c2R36))
* Add the Linea address for the PancakeSwap multicall contract in
`multicallSwapProvider.ts` for the multicall swap provider package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-f6944a0f19cabcd660c00c460c8db3a84157604fd85ec718e2530b2bf300e952R26))
* Add the Linea success rate config and block conflict tolerance in
`onChainQuoteProvider.ts` for the on chain quote provider package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-9ee18cb7fa7b08aada0e9a3c92dede9202fb872ba10bd8f230843faef707f463R31),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-9ee18cb7fa7b08aada0e9a3c92dede9202fb872ba10bd8f230843faef707f463R48))
* Add the Linea chain id, factory address, init code hash, wrapped ether
token, wrapped native token, and native token in `constants.ts` for the
swap sdk package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R16),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R38),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R56),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R141-R148),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R197),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-47643406d29b8598e2ec7264a59eca0794e0b4f77eded976f680d8dc5c145595R226))
* Add the Linea tokens in `59144.ts` and `common.ts` for the tokens
package
([link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-e19e37172da9e6ea69624bbf503812c8bf3999c4bc79c78a9fe7288219c0de7eR1-R7),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-8dce334490b3aef54ec2484deec6ef79b4438828dc1ee3324cfa3b2a5244251bR210),
[link](https://github.com/pancakeswap/pancake-frontend/pull/7547/files?diff=unified&w=0#diff-8dce334490b3aef54ec2484deec6ef79b4438828dc1ee3324cfa3b2a5244251bR272))

---------

Co-authored-by: chefjackson <[email protected]>
  • Loading branch information
0xjojoex and chefjackson authored Aug 24, 2023
1 parent 05cdbea commit 5e15c61
Show file tree
Hide file tree
Showing 27 changed files with 149 additions and 13 deletions.
9 changes: 9 additions & 0 deletions .changeset/wild-insects-fetch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'routing-api': minor
'@pancakeswap/smart-router': minor
'@pancakeswap/sdk': minor
'@pancakeswap/tokens': minor
'@pancakeswap/v3-sdk': minor
---

Add linea support
2 changes: 2 additions & 0 deletions apis/routing/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export const SUPPORTED_CHAINS = [
ChainId.ARBITRUM_ONE,
ChainId.SCROLL_SEPOLIA,
ChainId.BASE_TESTNET,
ChainId.LINEA,
] as const

export type SupportedChainId = (typeof SUPPORTED_CHAINS)[number]
Expand All @@ -24,6 +25,7 @@ export const V3_SUBGRAPH_URLS: Record<SupportedChainId, string> = {
[ChainId.ZKSYNC]: 'https://api.studio.thegraph.com/query/45376/exchange-v3-zksync/version/latest',
[ChainId.SCROLL_SEPOLIA]: 'https://api.studio.thegraph.com/query/45376/exchange-v3-scroll-sepolia/version/latest',
[ChainId.BASE_TESTNET]: 'https://api.studio.thegraph.com/query/45376/exchange-v3-base-testnet/version/latest',
[ChainId.LINEA]: 'https://graph-query.linea.build/subgraphs/name/pancakeswap/exchange-v3-linea',
[ChainId.LINEA_TESTNET]:
'https://thegraph.goerli.zkevm.consensys.net/subgraphs/name/pancakeswap/exchange-v3-linea-goerli',
[ChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/pancakeswap/exchange-v3-arb',
Expand Down
1 change: 1 addition & 0 deletions apps/aptos/components/NetworkSwitcher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const evmChains = [
{ id: 324, name: 'zkSync Era', chainName: 'zkSync' },
{ id: 1101, name: 'Polygon zkEVM', chainName: 'polygonZkEVM' },
{ id: 42161, name: 'Arbitrum One', chainName: 'arb' },
{ id: 59144, name: 'Linea', chainName: 'linea' },
]

const NetworkSelect = () => {
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/components/NetworkSwitcher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ const SHORT_SYMBOL = {
[ChainId.POLYGON_ZKEVM_TESTNET]: 'tZkEVM',
[ChainId.ZKSYNC]: 'zkSync',
[ChainId.ZKSYNC_TESTNET]: 'tZkSync',
[ChainId.LINEA]: 'Linea',
[ChainId.LINEA_TESTNET]: 'tLinea',
[ChainId.OPBNB_TESTNET]: 'tOpBNB',
[ChainId.BASE_TESTNET]: 'tBase',
Expand Down
51 changes: 49 additions & 2 deletions apps/web/src/config/chains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export const CHAIN_QUERY_NAME = {
[ChainId.POLYGON_ZKEVM_TESTNET]: 'polygonZkEVMTestnet',
[ChainId.ZKSYNC]: 'zkSync',
[ChainId.ZKSYNC_TESTNET]: 'zkSyncTestnet',
[ChainId.LINEA]: 'linea',
[ChainId.LINEA_TESTNET]: 'lineaTestnet',
[ChainId.OPBNB_TESTNET]: 'opBnbTestnet',
[ChainId.BASE_TESTNET]: 'baseTestnet',
Expand Down Expand Up @@ -99,6 +100,48 @@ export const opbnbTestnet = {
testnet: true,
} as const satisfies Chain

export const linea = {
id: 59_144,
name: 'Linea Mainnet',
network: 'linea-mainnet',
nativeCurrency: { name: 'Linea Ether', symbol: 'ETH', decimals: 18 },
rpcUrls: {
infura: {
http: ['https://linea-mainnet.infura.io/v3'],
webSocket: ['wss://linea-mainnet.infura.io/ws/v3'],
},
default: {
http: ['https://rpc.linea.build'],
webSocket: ['wss://rpc.linea.build'],
},
public: {
http: ['https://rpc.linea.build'],
webSocket: ['wss://rpc.linea.build'],
},
},
blockExplorers: {
default: {
name: 'Etherscan',
url: 'https://lineascan.build',
},
etherscan: {
name: 'Etherscan',
url: 'https://lineascan.build',
},
blockscout: {
name: 'Blockscout',
url: 'https://explorer.linea.build',
},
},
contracts: {
multicall3: {
address: '0xcA11bde05977b3631167028862bE2a173976CA11',
blockCreated: 42,
},
},
testnet: false,
} as const satisfies Chain

/**
* Controls some L2 specific behavior, e.g. slippage tolerance, special UI behavior.
* The expectation is that all of these networks have immediate transaction confirmation.
Expand All @@ -111,17 +154,21 @@ export const L2_CHAIN_IDS: ChainId[] = [
ChainId.ZKSYNC,
ChainId.ZKSYNC_TESTNET,
ChainId.LINEA_TESTNET,
ChainId.LINEA,
]

export const CHAINS = [
bsc,
mainnet,
bscTestnet,
goerli,
zkSync,
zkSyncTestnet,
polygonZkEvm,
polygonZkEvmTestnet,
zkSync,
zkSyncTestnet,
arbitrum,
arbitrumGoerli,
linea,
lineaTestnet,
arbitrumGoerli,
arbitrum,
Expand Down
2 changes: 2 additions & 0 deletions apps/web/src/config/constants/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ export default {
[ChainId.POLYGON_ZKEVM]: '0x46A15B0b27311cedF172AB29E4f4766fbE7F4364',
[ChainId.POLYGON_ZKEVM_TESTNET]: '0x1f489dd5B559E976AE74303F939Cfd0aF1b62C2B',
[ChainId.ARBITRUM_ONE]: '0x46A15B0b27311cedF172AB29E4f4766fbE7F4364',
[ChainId.LINEA]: '0x46A15B0b27311cedF172AB29E4f4766fbE7F4364',
[ChainId.LINEA_TESTNET]: '0xacFa791C833120c769Fd3066c940B7D30Cd8BC73',
[ChainId.ARBITRUM_GOERLI]: '0xb10120961f7504766976A89E29802Fa00553da5b',
[ChainId.OPBNB_TESTNET]: '0x9d4277f1D41CCB30C0e91f7d1bBA2A739E19032C',
Expand All @@ -217,6 +218,7 @@ export default {
[ChainId.POLYGON_ZKEVM]: '0xbC203d7f83677c7ed3F7acEc959963E7F4ECC5C2',
[ChainId.POLYGON_ZKEVM_TESTNET]: '0x4A3902773F947ce028969db670E568fFC9524E8C',
[ChainId.ARBITRUM_ONE]: '0xbC203d7f83677c7ed3F7acEc959963E7F4ECC5C2',
[ChainId.LINEA]: '0xbC203d7f83677c7ed3F7acEc959963E7F4ECC5C2',
[ChainId.LINEA_TESTNET]: '0x3652Fc6EDcbD76161b8554388867d3dAb65eCA93',
[ChainId.ARBITRUM_GOERLI]: '0xCcf770BdBD8ccC57a7a7ABff53825fD895a06238',
[ChainId.OPBNB_TESTNET]: '0xA1911b740c07c0d58cAa71b54CD06f7D11218a3B',
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/config/constants/endpoints.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ export const V3_SUBGRAPH_URLS = {
[ChainId.POLYGON_ZKEVM_TESTNET]: null,
[ChainId.ZKSYNC]: 'https://api.studio.thegraph.com/query/45376/exchange-v3-zksync/version/latest',
[ChainId.ZKSYNC_TESTNET]: 'https://api.studio.thegraph.com/query/45376/exchange-v3-zksync-testnet/version/latest',
[ChainId.LINEA]: 'https://graph-query.linea.build/subgraphs/name/pancakeswap/exchange-v3-linea',
[ChainId.LINEA_TESTNET]:
'https://thegraph.goerli.zkevm.consensys.net/subgraphs/name/pancakeswap/exchange-v3-linea-goerli',
[ChainId.BASE_TESTNET]: 'https://api.studio.thegraph.com/query/45376/exchange-v3-base-testnet/version/latest',
Expand Down
5 changes: 5 additions & 0 deletions apps/web/src/config/constants/exchange.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {
opBnbTestnetTokens,
baseTestnetTokens,
scrollSepoliaTokens,
lineaTokens,
} from '@pancakeswap/tokens'
import { ChainTokenList } from './types'

Expand All @@ -37,6 +38,7 @@ export const CHAIN_REFRESH_TIME = {
[ChainId.POLYGON_ZKEVM_TESTNET]: 7_000,
[ChainId.ZKSYNC]: 3_000,
[ChainId.ZKSYNC_TESTNET]: 3_000,
[ChainId.LINEA]: 12_000,
[ChainId.LINEA_TESTNET]: 12_000,
[ChainId.OPBNB_TESTNET]: 6_000,
[ChainId.BASE_TESTNET]: 6_000,
Expand All @@ -55,6 +57,7 @@ export const SUGGESTED_BASES: ChainTokenList = {
[ChainId.POLYGON_ZKEVM_TESTNET]: [polygonZkEvmTestnetTokens.weth, polygonZkEvmTestnetTokens.usdt],
[ChainId.ZKSYNC]: [zksyncTokens.usdc, zksyncTokens.weth],
[ChainId.ZKSYNC_TESTNET]: [zkSyncTestnetTokens.usdc, zkSyncTestnetTokens.weth],
[ChainId.LINEA]: [lineaTokens.usdc, lineaTokens.weth],
[ChainId.LINEA_TESTNET]: [lineaTestnetTokens.usdc, lineaTestnetTokens.weth],
[ChainId.OPBNB_TESTNET]: [
opBnbTestnetTokens.usdc,
Expand All @@ -78,6 +81,7 @@ export const BASES_TO_TRACK_LIQUIDITY_FOR: ChainTokenList = {
[ChainId.POLYGON_ZKEVM_TESTNET]: [polygonZkEvmTestnetTokens.weth, polygonZkEvmTestnetTokens.usdt],
[ChainId.ZKSYNC]: [zksyncTokens.usdc, zksyncTokens.weth],
[ChainId.ZKSYNC_TESTNET]: [zkSyncTestnetTokens.usdc, zkSyncTestnetTokens.weth],
[ChainId.LINEA]: [lineaTokens.usdc, lineaTokens.weth],
[ChainId.LINEA_TESTNET]: [lineaTestnetTokens.usdc, lineaTestnetTokens.weth],
[ChainId.OPBNB_TESTNET]: [opBnbTestnetTokens.usdc, opBnbTestnetTokens.wbnb, opBnbTestnetTokens.usdt],
[ChainId.BASE_TESTNET]: [baseTestnetTokens.usdc, baseTestnetTokens.weth],
Expand All @@ -103,6 +107,7 @@ export const PINNED_PAIRS: { readonly [chainId in ChainId]?: [Token, Token][] }
[ChainId.POLYGON_ZKEVM]: [[polygonZkEvmTokens.weth, polygonZkEvmTokens.usdt]],
[ChainId.ZKSYNC]: [[zksyncTokens.usdc, zksyncTokens.weth]],
[ChainId.ZKSYNC_TESTNET]: [[zkSyncTestnetTokens.usdc, zkSyncTestnetTokens.weth]],
[ChainId.LINEA]: [[lineaTokens.usdc, lineaTokens.weth]],
[ChainId.LINEA_TESTNET]: [[lineaTestnetTokens.usdc, lineaTestnetTokens.weth]],
[ChainId.OPBNB_TESTNET]: [[opBnbTestnetTokens.usdc, opBnbTestnetTokens.wbnb]],
[ChainId.BASE_TESTNET]: [[baseTestnetTokens.usdc, baseTestnetTokens.weth]],
Expand Down
29 changes: 19 additions & 10 deletions apps/web/src/config/constants/lists.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
import { ChainId } from '@pancakeswap/sdk'

export const PANCAKE_EXTENDED = 'https://tokens.pancakeswap.finance/pancakeswap-extended.json'
export const COINGECKO = 'https://tokens.pancakeswap.finance/coingecko.json'
export const PANCAKE_ETH_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-eth-default.json'
export const PANCAKE_ZKSYNC_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-zksync-default.json'
export const PANCAKE_POLYGON_ZKEVM_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-polygon-zkevm-default.json'

const COINGECKO = 'https://tokens.pancakeswap.finance/coingecko.json'
const PANCAKE_ETH_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-eth-default.json'
const PANCAKE_ZKSYNC_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-zksync-default.json'
const PANCAKE_POLYGON_ZKEVM_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-polygon-zkevm-default.json'
const PANCAKE_ARB_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-arbitrum-default.json'
const PANCAKE_LINEA_DEFAULT = 'https://tokens.pancakeswap.finance/pancakeswap-linea-default.json'

export const PANCAKE_ETH_MM = 'https://tokens.pancakeswap.finance/pancakeswap-eth-mm.json'
export const PANCAKE_BSC_MM = 'https://tokens.pancakeswap.finance/pancakeswap-bnb-mm.json'
export const COINGECKO_ETH = 'https://tokens.coingecko.com/uniswap/all.json'
export const CMC = 'https://tokens.pancakeswap.finance/cmc.json'

export const ETH_URLS = [PANCAKE_ETH_DEFAULT, PANCAKE_ETH_MM, COINGECKO_ETH]
export const BSC_URLS = [PANCAKE_EXTENDED, CMC, COINGECKO, PANCAKE_BSC_MM]
export const POLYGON_ZKEVM_URLS = [PANCAKE_POLYGON_ZKEVM_DEFAULT]
const COINGECKO_ETH = 'https://tokens.coingecko.com/uniswap/all.json'
// export const CMC = 'https://tokens.pancakeswap.finance/cmc.json' // not updated for a while

const ETH_URLS = [PANCAKE_ETH_DEFAULT, PANCAKE_ETH_MM, COINGECKO_ETH]
const BSC_URLS = [PANCAKE_EXTENDED, COINGECKO, PANCAKE_BSC_MM]
const POLYGON_ZKEVM_URLS = [PANCAKE_POLYGON_ZKEVM_DEFAULT]
const ARBITRUM_URLS = [PANCAKE_ARB_DEFAULT]
export const ZKSYNC_URLS = [PANCAKE_ZKSYNC_DEFAULT]

const LINEA_URLS = [PANCAKE_LINEA_DEFAULT]
const ZKSYNC_URLS = [PANCAKE_ZKSYNC_DEFAULT]

// List of official tokens list
export const OFFICIAL_LISTS = [PANCAKE_EXTENDED, PANCAKE_ETH_DEFAULT]
Expand All @@ -28,6 +34,7 @@ export const DEFAULT_LIST_OF_LISTS: string[] = [
...BSC_URLS,
...ETH_URLS,
...ZKSYNC_URLS,
...LINEA_URLS,
...POLYGON_ZKEVM_URLS,
...ARBITRUM_URLS,
...UNSUPPORTED_LIST_URLS, // need to load unsupported tokens as well
Expand All @@ -44,6 +51,7 @@ export const DEFAULT_ACTIVE_LIST_URLS: string[] = [
PANCAKE_POLYGON_ZKEVM_DEFAULT,
PANCAKE_ZKSYNC_DEFAULT,
PANCAKE_ARB_DEFAULT,
PANCAKE_LINEA_DEFAULT,
]

export const MULTI_CHAIN_LIST_URLS: { [chainId: number]: string[] } = {
Expand All @@ -52,4 +60,5 @@ export const MULTI_CHAIN_LIST_URLS: { [chainId: number]: string[] } = {
[ChainId.ZKSYNC]: ZKSYNC_URLS,
[ChainId.POLYGON_ZKEVM]: POLYGON_ZKEVM_URLS,
[ChainId.ARBITRUM_ONE]: ARBITRUM_URLS,
[ChainId.LINEA]: LINEA_URLS,
}
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,14 @@
"chainId": 1101,
"logoURI": "https://tokens.pancakeswap.finance/images/symbol/usdc.png"
},
{
"name": "USD Coin",
"address": "0x176211869cA2b568f2A7D4EE941E073a821EE1ff",
"symbol": "USDC",
"decimals": 6,
"chainId": 59144,
"logoURI": "https://tokens.pancakeswap.finance/images/symbol/usdc.png"
},
{
"name": "USD Coin",
"address": "0x02a3e7E0480B668bD46b42852C58363F93e3bA5C",
Expand Down
4 changes: 3 additions & 1 deletion apps/web/src/config/nodes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
scrollSepolia,
} from 'wagmi/chains'
import { getNodeRealUrlV2 } from 'utils/nodeReal'
import { opbnbTestnet } from './chains'
import { opbnbTestnet, linea } from './chains'

const POLYGON_ZKEVM_NODES = [
'https://f2562de09abc5efbd21eefa083ff5326.zkevm-rpc.com/',
Expand Down Expand Up @@ -48,6 +48,7 @@ export const SERVER_NODES = {
],
[ChainId.ZKSYNC]: zkSync.rpcUrls.public.http,
[ChainId.ZKSYNC_TESTNET]: zkSyncTestnet.rpcUrls.public.http,
[ChainId.LINEA]: linea.rpcUrls.public.http,
[ChainId.LINEA_TESTNET]: [
'https://rpc.goerli.linea.build',
'https://linea-testnet.rpc.thirdweb.com',
Expand Down Expand Up @@ -87,6 +88,7 @@ export const PUBLIC_NODES = {
],
[ChainId.ZKSYNC]: zkSync.rpcUrls.public.http,
[ChainId.ZKSYNC_TESTNET]: zkSyncTestnet.rpcUrls.public.http,
[ChainId.LINEA]: linea.rpcUrls.public.http,
[ChainId.LINEA_TESTNET]: [
'https://rpc.goerli.linea.build',
'https://linea-testnet.rpc.thirdweb.com',
Expand Down
3 changes: 3 additions & 0 deletions apps/web/src/config/pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export const POOLS_FAST_REVALIDATE = {
[ChainId.POLYGON_ZKEVM_TESTNET]: 15_000,
[ChainId.ZKSYNC]: 15_000,
[ChainId.ZKSYNC_TESTNET]: 15_000,
[ChainId.LINEA]: 20_000,
[ChainId.LINEA_TESTNET]: 20_000,
[ChainId.OPBNB_TESTNET]: 10_000,
[ChainId.BASE_TESTNET]: 10_000,
Expand All @@ -30,6 +31,7 @@ export const POOLS_NORMAL_REVALIDATE = {
[ChainId.POLYGON_ZKEVM_TESTNET]: 15_000,
[ChainId.ZKSYNC]: 15_000,
[ChainId.ZKSYNC_TESTNET]: 15_000,
[ChainId.LINEA]: 20_000,
[ChainId.LINEA_TESTNET]: 20_000,
[ChainId.OPBNB_TESTNET]: 15_000,
[ChainId.BASE_TESTNET]: 15_000,
Expand All @@ -47,6 +49,7 @@ export const POOLS_SLOW_REVALIDATE = {
[ChainId.POLYGON_ZKEVM_TESTNET]: 20_000,
[ChainId.ZKSYNC]: 20_000,
[ChainId.ZKSYNC_TESTNET]: 20_000,
[ChainId.LINEA]: 30_000,
[ChainId.LINEA_TESTNET]: 30_000,
[ChainId.OPBNB_TESTNET]: 20_000,
[ChainId.BASE_TESTNET]: 20_000,
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/state/swap/fetch/fetchDerivedPriceData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ const SWAP_INFO_BY_CHAIN = {
v3: V3_SUBGRAPH_URLS[ChainId.ZKSYNC],
},
[ChainId.ZKSYNC_TESTNET]: {},
[ChainId.LINEA]: {},
[ChainId.LINEA_TESTNET]: {
v2: INFO_CLIENT_WITH_CHAIN[ChainId.LINEA_TESTNET],
v3: V3_SUBGRAPH_URLS[ChainId.LINEA_TESTNET],
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/utils/graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export const v3Clients = {
[ChainId.POLYGON_ZKEVM]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.POLYGON_ZKEVM]),
[ChainId.ZKSYNC]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.ZKSYNC]),
[ChainId.ZKSYNC_TESTNET]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.ZKSYNC_TESTNET]),
[ChainId.LINEA]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.LINEA]),
[ChainId.LINEA_TESTNET]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.LINEA_TESTNET]),
[ChainId.BASE_TESTNET]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.BASE_TESTNET]),
[ChainId.SCROLL_SEPOLIA]: new GraphQLClient(V3_SUBGRAPH_URLS[ChainId.SCROLL_SEPOLIA]),
Expand Down
1 change: 1 addition & 0 deletions packages/smart-router/evm/constants/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ export const CHAIN_ID_TO_CHAIN_NAME = {
[ChainId.BASE_TESTNET]: '',
[ChainId.OPBNB_TESTNET]: '',
[ChainId.SCROLL_SEPOLIA]: '',
[ChainId.LINEA]: 'linea',
} satisfies Record<ChainId, string>
5 changes: 5 additions & 0 deletions packages/smart-router/evm/constants/exchange.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import {
baseTestnetTokens,
opBnbTestnetTokens,
scrollSepoliaTokens,
lineaTokens,
} from '@pancakeswap/tokens'

import { ChainMap, ChainTokenList } from '../types'
Expand All @@ -32,6 +33,7 @@ export const SMART_ROUTER_ADDRESSES = {
[ChainId.POLYGON_ZKEVM_TESTNET]: '0x365C5F0B816828936320ea143e337fbA7D1b911E',
[ChainId.ZKSYNC]: '0xf8b59f3c3Ab33200ec80a8A58b2aA5F5D2a8944C',
[ChainId.ZKSYNC_TESTNET]: '0x4DC9186c6C5F7dd430c7b6D8D513076637902241',
[ChainId.LINEA]: '0x678Aa4bF4E210cf2166753e054d5b7c31cc7fa86',
[ChainId.LINEA_TESTNET]: '0x21d809FB4052bb1807cfe2418bA638d72F4aEf87',
[ChainId.OPBNB_TESTNET]: '0xf317eD77Baed624d0EA2384AA88D91B774a9b009',
[ChainId.BASE_TESTNET]: '0xDDC44b8507B4Ca992fB60F0ECdF5651A87668509',
Expand All @@ -49,6 +51,7 @@ export const V2_ROUTER_ADDRESS: ChainMap<string> = {
[ChainId.POLYGON_ZKEVM_TESTNET]: '0x1ac9F6489487a282961b3929bCFA0a773251315E',
[ChainId.ZKSYNC]: '0x5aEaF2883FBf30f3D62471154eDa3C0c1b05942d',
[ChainId.ZKSYNC_TESTNET]: '0xA0Fbd5d1474950bc9417FB00f9d4e2ee0385c560',
[ChainId.LINEA]: '0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb',
[ChainId.LINEA_TESTNET]: '0xD7A304138D50C125733d1fE8a2041199E4944Aa1',
[ChainId.OPBNB_TESTNET]: '0x62FF25CFD64E55673168c3656f4902bD7Aa5F0f4',
[ChainId.BASE_TESTNET]: '0xC259d1D3476558630d83b0b60c105ae958382792',
Expand All @@ -66,6 +69,7 @@ export const STABLE_SWAP_INFO_ADDRESS: ChainMap<string> = {
[ChainId.POLYGON_ZKEVM_TESTNET]: '',
[ChainId.ZKSYNC]: '',
[ChainId.ZKSYNC_TESTNET]: '',
[ChainId.LINEA]: '',
[ChainId.LINEA_TESTNET]: '',
[ChainId.OPBNB_TESTNET]: '',
[ChainId.BASE_TESTNET]: '',
Expand All @@ -92,6 +96,7 @@ export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
[ChainId.POLYGON_ZKEVM_TESTNET]: [polygonZkEvmTestnetTokens.weth, polygonZkEvmTestnetTokens.usdt],
[ChainId.ZKSYNC]: [zksyncTokens.usdc, zksyncTokens.weth],
[ChainId.ZKSYNC_TESTNET]: [zkSyncTestnetTokens.usdc, zkSyncTestnetTokens.weth],
[ChainId.LINEA]: [lineaTokens.usdc, lineaTokens.weth],
[ChainId.LINEA_TESTNET]: [lineaTestnetTokens.usdc, lineaTestnetTokens.weth],
[ChainId.OPBNB_TESTNET]: [opBnbTestnetTokens.usdc, opBnbTestnetTokens.wbnb],
[ChainId.BASE_TESTNET]: [baseTestnetTokens.usdc, baseTestnetTokens.weth],
Expand Down
2 changes: 2 additions & 0 deletions packages/smart-router/evm/constants/gasModel/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
polygonZkEvmTestnetTokens,
zkSyncTestnetTokens,
zksyncTokens,
lineaTokens,
lineaTestnetTokens,
arbitrumGoerliTokens,
arbitrumTokens,
Expand All @@ -27,6 +28,7 @@ export const usdGasTokensByChain = {
[ChainId.POLYGON_ZKEVM_TESTNET]: [polygonZkEvmTestnetTokens.usdt],
[ChainId.ZKSYNC]: [zksyncTokens.usdc],
[ChainId.ZKSYNC_TESTNET]: [zkSyncTestnetTokens.usdc],
[ChainId.LINEA]: [lineaTokens.usdc],
[ChainId.LINEA_TESTNET]: [lineaTestnetTokens.usdc],
[ChainId.OPBNB_TESTNET]: [opBnbTestnetTokens.usdc],
[ChainId.BASE_TESTNET]: [baseTestnetTokens.usdc],
Expand Down
1 change: 1 addition & 0 deletions packages/smart-router/evm/constants/multicall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ export const BATCH_MULTICALL_CONFIGS: ChainMap<BatchMulticallConfigs> = {
},
[ChainId.ZKSYNC]: DEFAULT,
[ChainId.ZKSYNC_TESTNET]: DEFAULT,
[ChainId.LINEA]: DEFAULT,
[ChainId.LINEA_TESTNET]: DEFAULT,
[ChainId.BASE_TESTNET]: DEFAULT,
[ChainId.OPBNB_TESTNET]: DEFAULT,
Expand Down
Loading

0 comments on commit 5e15c61

Please sign in to comment.