From 0f549583efe8d858aaa2bbd775a523d2926223c9 Mon Sep 17 00:00:00 2001 From: Mark Grothe Date: Tue, 11 Feb 2025 06:24:42 -0600 Subject: [PATCH 01/12] feat: linea [skip cypress] (#2339) Co-authored-by: Mark Hinschberger --- .github/workflows/build-test-deploy-dev.yml | 12 ++++++------ .github/workflows/dependency-review.yml | 2 +- package.json | 4 ++-- src/ui-config/marketsConfig.tsx | 18 ++++++++++++++++++ src/ui-config/networksConfig.ts | 8 ++++++-- src/ui-config/permitConfig.ts | 5 +++++ src/ui-config/wagmiConfig.ts | 2 ++ yarn.lock | 16 ++++++++-------- 8 files changed, 48 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-test-deploy-dev.yml b/.github/workflows/build-test-deploy-dev.yml index 763e23c234..56da5c5503 100644 --- a/.github/workflows/build-test-deploy-dev.yml +++ b/.github/workflows/build-test-deploy-dev.yml @@ -16,12 +16,12 @@ jobs: (github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name && !contains(github.head_ref, 'dependabot')) strategy: - matrix: - build: - - name: 'out' - cypress_enabled: 'false' - - name: 'out_cypress' - cypress_enabled: 'true' + matrix: + build: + - name: 'out' + cypress_enabled: 'false' + - name: 'out_cypress' + cypress_enabled: 'true' steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 with: diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 8697164ea7..5541bc3ee0 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -19,4 +19,4 @@ jobs: - name: 'Dependency Review' uses: actions/dependency-review-action@v2 with: - fail-on-severity: critical \ No newline at end of file + fail-on-severity: critical diff --git a/package.json b/package.json index 7f5aac95e3..476733ccef 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "test:coverage": "jest --coverage" }, "dependencies": { - "@aave/contract-helpers": "1.30.5", - "@aave/math-utils": "1.30.5", + "@aave/contract-helpers": "1.31.1", + "@aave/math-utils": "1.31.1", "@bgd-labs/aave-address-book": "4.10.0", "@emotion/cache": "11.10.3", "@emotion/react": "11.10.4", diff --git a/src/ui-config/marketsConfig.tsx b/src/ui-config/marketsConfig.tsx index 899bf0f0f7..534238c48a 100644 --- a/src/ui-config/marketsConfig.tsx +++ b/src/ui-config/marketsConfig.tsx @@ -13,6 +13,7 @@ import { AaveV3EthereumEtherFi, AaveV3EthereumLido, AaveV3Gnosis, + AaveV3Linea, AaveV3Metis, AaveV3Optimism, AaveV3OptimismSepolia, @@ -92,6 +93,7 @@ export enum CustomMarket { proto_lido_v3 = 'proto_lido_v3', proto_zksync_v3 = 'proto_zksync_v3', proto_etherfi_v3 = 'proto_etherfi_v3', + proto_linea_v3 = 'proto_linea_v3', // v2 proto_mainnet = 'proto_mainnet', proto_avalanche = 'proto_avalanche', @@ -681,4 +683,20 @@ export const marketsData: { COLLECTOR: AaveV3ZkSync.COLLECTOR, }, }, + [CustomMarket.proto_linea_v3]: { + marketTitle: 'Linea', + market: CustomMarket.proto_linea_v3, + chainId: ChainId.linea, + v3: true, + subgraphUrl: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/Gz2kjnmRV1fQj3R8cssoZa5y9VTanhrDo4Mh7nWW1wHa`, + addresses: { + LENDING_POOL_ADDRESS_PROVIDER: AaveV3Linea.POOL_ADDRESSES_PROVIDER, + LENDING_POOL: AaveV3Linea.POOL, + WETH_GATEWAY: AaveV3Linea.WETH_GATEWAY, + WALLET_BALANCE_PROVIDER: AaveV3Linea.WALLET_BALANCE_PROVIDER, + UI_POOL_DATA_PROVIDER: AaveV3Linea.UI_POOL_DATA_PROVIDER, + UI_INCENTIVE_DATA_PROVIDER: AaveV3Linea.UI_INCENTIVE_DATA_PROVIDER, + COLLECTOR: AaveV3Linea.COLLECTOR, + }, + }, } as const; diff --git a/src/ui-config/networksConfig.ts b/src/ui-config/networksConfig.ts index 79e8432efb..b8b098af7e 100644 --- a/src/ui-config/networksConfig.ts +++ b/src/ui-config/networksConfig.ts @@ -396,10 +396,14 @@ export const networkConfigs: Record = { }, ratesHistoryApiUrl, }, - [59144]: { + [ChainId.linea]: { name: 'Linea', privateJsonRPCUrl: 'https://linea-mainnet.g.alchemy.com/v2/6uk5qBl8QvjpEbgF3TgZBbxWkKlmWZR-', - publicJsonRPCUrl: ['https://1rpc.io/linea'], + publicJsonRPCUrl: [ + 'https://1rpc.io/linea', + 'https://linea.drpc.org', + 'https://linea-rpc.publicnode.com', + ], baseAssetSymbol: 'ETH', wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, diff --git a/src/ui-config/permitConfig.ts b/src/ui-config/permitConfig.ts index f791317d4b..87c5188fbf 100644 --- a/src/ui-config/permitConfig.ts +++ b/src/ui-config/permitConfig.ts @@ -41,4 +41,9 @@ export const permitByChainAndToken: { '0x493257fd37edb34451f62edf8d2a0c418852ba4c': true, '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91': true, }, + [ChainId.linea]: { + '0xa219439258ca9da29e9cc4ce5596924745e12b93': true, // USDT + '0x2416092f143378750bb29b79ed961ab195cceea5': true, // ezETH + '0xb5bedd42000b71fdde22d3ee8a79bd49a568fc8f': true, // wstETH + }, }; diff --git a/src/ui-config/wagmiConfig.ts b/src/ui-config/wagmiConfig.ts index dfcc2f6cf2..fe6fef4c99 100644 --- a/src/ui-config/wagmiConfig.ts +++ b/src/ui-config/wagmiConfig.ts @@ -19,6 +19,7 @@ import { baseSepolia, bsc, gnosis, + linea, mainnet, metis, optimism, @@ -52,6 +53,7 @@ let prodChains: CreateConfigParameters['chains'] = [ bsc, scroll, zksync, + linea, ]; const { name, baseAssetDecimals, baseAssetSymbol } = networkConfigs[FORK_BASE_CHAIN_ID]; diff --git a/yarn.lock b/yarn.lock index 4d89bde038..ed628954fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,17 @@ # yarn lockfile v1 -"@aave/contract-helpers@1.30.5": - version "1.30.5" - resolved "https://registry.yarnpkg.com/@aave/contract-helpers/-/contract-helpers-1.30.5.tgz#2dca36c08701548eb7ad52551514215cfd4c3b6a" - integrity sha512-4CCLROduGD6HG3/DYAWS9KPDe30Pbo+b2LNKblLCy+Y90lE8aB5/e0RVZ47+vHheV9qOCjEjLYXEyeUYo7NvFg== +"@aave/contract-helpers@1.31.1": + version "1.31.1" + resolved "https://registry.yarnpkg.com/@aave/contract-helpers/-/contract-helpers-1.31.1.tgz#e0464847f18b7daa063cd5f1a1926c4b7ffce767" + integrity sha512-68/RIxOSZXpAJ0CbzN25tPDGF0QUoVbJQ6c7UDtA1hT2aL5g06URqHKhdIg1+Jvnz4VU8Qu0YYC26F5K+lVUcQ== dependencies: isomorphic-unfetch "^3.1.0" -"@aave/math-utils@1.30.5": - version "1.30.5" - resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.30.5.tgz#6c6bbf46d8a422e00504e92cf8b3f6fcad626d04" - integrity sha512-aBAHCK6p3sMuyD4mipxH0vF+kn22Ocu7TzotCPzvKgkifVvGWFY7XsM5CNWubvDksL1+uNSoUvX2v3LOr23UHA== +"@aave/math-utils@1.31.1": + version "1.31.1" + resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.31.1.tgz#f465a316c1b59b75b112b772236118541e14b716" + integrity sha512-thdudjGLygOhvDlhhndhSZjVcwglWfYROv1z6qfx9c4LsyiVITAxfz1FLUXbjEOI3kirHitl060Ng4rNuYjT1Q== "@adobe/css-tools@^4.0.1": version "4.4.1" From effd810d7f89ff6889f00c1223bc62061268cdb1 Mon Sep 17 00:00:00 2001 From: Mark Hinschberger Date: Tue, 11 Feb 2025 13:36:48 +0000 Subject: [PATCH 02/12] Revert "feat: linea [skip cypress] (#2339)" (#2342) --- .github/workflows/build-test-deploy-dev.yml | 12 ++++++------ .github/workflows/dependency-review.yml | 2 +- package.json | 4 ++-- src/ui-config/marketsConfig.tsx | 18 ------------------ src/ui-config/networksConfig.ts | 8 ++------ src/ui-config/permitConfig.ts | 5 ----- src/ui-config/wagmiConfig.ts | 2 -- yarn.lock | 16 ++++++++-------- 8 files changed, 19 insertions(+), 48 deletions(-) diff --git a/.github/workflows/build-test-deploy-dev.yml b/.github/workflows/build-test-deploy-dev.yml index 56da5c5503..763e23c234 100644 --- a/.github/workflows/build-test-deploy-dev.yml +++ b/.github/workflows/build-test-deploy-dev.yml @@ -16,12 +16,12 @@ jobs: (github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name && !contains(github.head_ref, 'dependabot')) strategy: - matrix: - build: - - name: 'out' - cypress_enabled: 'false' - - name: 'out_cypress' - cypress_enabled: 'true' + matrix: + build: + - name: 'out' + cypress_enabled: 'false' + - name: 'out_cypress' + cypress_enabled: 'true' steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 with: diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 5541bc3ee0..8697164ea7 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -19,4 +19,4 @@ jobs: - name: 'Dependency Review' uses: actions/dependency-review-action@v2 with: - fail-on-severity: critical + fail-on-severity: critical \ No newline at end of file diff --git a/package.json b/package.json index 476733ccef..7f5aac95e3 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "test:coverage": "jest --coverage" }, "dependencies": { - "@aave/contract-helpers": "1.31.1", - "@aave/math-utils": "1.31.1", + "@aave/contract-helpers": "1.30.5", + "@aave/math-utils": "1.30.5", "@bgd-labs/aave-address-book": "4.10.0", "@emotion/cache": "11.10.3", "@emotion/react": "11.10.4", diff --git a/src/ui-config/marketsConfig.tsx b/src/ui-config/marketsConfig.tsx index 534238c48a..899bf0f0f7 100644 --- a/src/ui-config/marketsConfig.tsx +++ b/src/ui-config/marketsConfig.tsx @@ -13,7 +13,6 @@ import { AaveV3EthereumEtherFi, AaveV3EthereumLido, AaveV3Gnosis, - AaveV3Linea, AaveV3Metis, AaveV3Optimism, AaveV3OptimismSepolia, @@ -93,7 +92,6 @@ export enum CustomMarket { proto_lido_v3 = 'proto_lido_v3', proto_zksync_v3 = 'proto_zksync_v3', proto_etherfi_v3 = 'proto_etherfi_v3', - proto_linea_v3 = 'proto_linea_v3', // v2 proto_mainnet = 'proto_mainnet', proto_avalanche = 'proto_avalanche', @@ -683,20 +681,4 @@ export const marketsData: { COLLECTOR: AaveV3ZkSync.COLLECTOR, }, }, - [CustomMarket.proto_linea_v3]: { - marketTitle: 'Linea', - market: CustomMarket.proto_linea_v3, - chainId: ChainId.linea, - v3: true, - subgraphUrl: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/Gz2kjnmRV1fQj3R8cssoZa5y9VTanhrDo4Mh7nWW1wHa`, - addresses: { - LENDING_POOL_ADDRESS_PROVIDER: AaveV3Linea.POOL_ADDRESSES_PROVIDER, - LENDING_POOL: AaveV3Linea.POOL, - WETH_GATEWAY: AaveV3Linea.WETH_GATEWAY, - WALLET_BALANCE_PROVIDER: AaveV3Linea.WALLET_BALANCE_PROVIDER, - UI_POOL_DATA_PROVIDER: AaveV3Linea.UI_POOL_DATA_PROVIDER, - UI_INCENTIVE_DATA_PROVIDER: AaveV3Linea.UI_INCENTIVE_DATA_PROVIDER, - COLLECTOR: AaveV3Linea.COLLECTOR, - }, - }, } as const; diff --git a/src/ui-config/networksConfig.ts b/src/ui-config/networksConfig.ts index b8b098af7e..79e8432efb 100644 --- a/src/ui-config/networksConfig.ts +++ b/src/ui-config/networksConfig.ts @@ -396,14 +396,10 @@ export const networkConfigs: Record = { }, ratesHistoryApiUrl, }, - [ChainId.linea]: { + [59144]: { name: 'Linea', privateJsonRPCUrl: 'https://linea-mainnet.g.alchemy.com/v2/6uk5qBl8QvjpEbgF3TgZBbxWkKlmWZR-', - publicJsonRPCUrl: [ - 'https://1rpc.io/linea', - 'https://linea.drpc.org', - 'https://linea-rpc.publicnode.com', - ], + publicJsonRPCUrl: ['https://1rpc.io/linea'], baseAssetSymbol: 'ETH', wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, diff --git a/src/ui-config/permitConfig.ts b/src/ui-config/permitConfig.ts index 87c5188fbf..f791317d4b 100644 --- a/src/ui-config/permitConfig.ts +++ b/src/ui-config/permitConfig.ts @@ -41,9 +41,4 @@ export const permitByChainAndToken: { '0x493257fd37edb34451f62edf8d2a0c418852ba4c': true, '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91': true, }, - [ChainId.linea]: { - '0xa219439258ca9da29e9cc4ce5596924745e12b93': true, // USDT - '0x2416092f143378750bb29b79ed961ab195cceea5': true, // ezETH - '0xb5bedd42000b71fdde22d3ee8a79bd49a568fc8f': true, // wstETH - }, }; diff --git a/src/ui-config/wagmiConfig.ts b/src/ui-config/wagmiConfig.ts index fe6fef4c99..dfcc2f6cf2 100644 --- a/src/ui-config/wagmiConfig.ts +++ b/src/ui-config/wagmiConfig.ts @@ -19,7 +19,6 @@ import { baseSepolia, bsc, gnosis, - linea, mainnet, metis, optimism, @@ -53,7 +52,6 @@ let prodChains: CreateConfigParameters['chains'] = [ bsc, scroll, zksync, - linea, ]; const { name, baseAssetDecimals, baseAssetSymbol } = networkConfigs[FORK_BASE_CHAIN_ID]; diff --git a/yarn.lock b/yarn.lock index ed628954fc..4d89bde038 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,17 @@ # yarn lockfile v1 -"@aave/contract-helpers@1.31.1": - version "1.31.1" - resolved "https://registry.yarnpkg.com/@aave/contract-helpers/-/contract-helpers-1.31.1.tgz#e0464847f18b7daa063cd5f1a1926c4b7ffce767" - integrity sha512-68/RIxOSZXpAJ0CbzN25tPDGF0QUoVbJQ6c7UDtA1hT2aL5g06URqHKhdIg1+Jvnz4VU8Qu0YYC26F5K+lVUcQ== +"@aave/contract-helpers@1.30.5": + version "1.30.5" + resolved "https://registry.yarnpkg.com/@aave/contract-helpers/-/contract-helpers-1.30.5.tgz#2dca36c08701548eb7ad52551514215cfd4c3b6a" + integrity sha512-4CCLROduGD6HG3/DYAWS9KPDe30Pbo+b2LNKblLCy+Y90lE8aB5/e0RVZ47+vHheV9qOCjEjLYXEyeUYo7NvFg== dependencies: isomorphic-unfetch "^3.1.0" -"@aave/math-utils@1.31.1": - version "1.31.1" - resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.31.1.tgz#f465a316c1b59b75b112b772236118541e14b716" - integrity sha512-thdudjGLygOhvDlhhndhSZjVcwglWfYROv1z6qfx9c4LsyiVITAxfz1FLUXbjEOI3kirHitl060Ng4rNuYjT1Q== +"@aave/math-utils@1.30.5": + version "1.30.5" + resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.30.5.tgz#6c6bbf46d8a422e00504e92cf8b3f6fcad626d04" + integrity sha512-aBAHCK6p3sMuyD4mipxH0vF+kn22Ocu7TzotCPzvKgkifVvGWFY7XsM5CNWubvDksL1+uNSoUvX2v3LOr23UHA== "@adobe/css-tools@^4.0.1": version "4.4.1" From cd61caf0a21a13a191c3db1c4cf645914033d28c Mon Sep 17 00:00:00 2001 From: Mark Hinschberger Date: Tue, 11 Feb 2025 14:45:13 +0000 Subject: [PATCH 03/12] Revert "Revert "feat: linea [skip cypress] (#2339)"" [skip cypress] (#2343) --- .github/workflows/build-test-deploy-dev.yml | 12 ++++++------ .github/workflows/dependency-review.yml | 2 +- package.json | 4 ++-- src/ui-config/marketsConfig.tsx | 18 ++++++++++++++++++ src/ui-config/networksConfig.ts | 8 ++++++-- src/ui-config/permitConfig.ts | 5 +++++ src/ui-config/wagmiConfig.ts | 2 ++ yarn.lock | 16 ++++++++-------- 8 files changed, 48 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-test-deploy-dev.yml b/.github/workflows/build-test-deploy-dev.yml index 763e23c234..56da5c5503 100644 --- a/.github/workflows/build-test-deploy-dev.yml +++ b/.github/workflows/build-test-deploy-dev.yml @@ -16,12 +16,12 @@ jobs: (github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name && !contains(github.head_ref, 'dependabot')) strategy: - matrix: - build: - - name: 'out' - cypress_enabled: 'false' - - name: 'out_cypress' - cypress_enabled: 'true' + matrix: + build: + - name: 'out' + cypress_enabled: 'false' + - name: 'out_cypress' + cypress_enabled: 'true' steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 with: diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 8697164ea7..5541bc3ee0 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -19,4 +19,4 @@ jobs: - name: 'Dependency Review' uses: actions/dependency-review-action@v2 with: - fail-on-severity: critical \ No newline at end of file + fail-on-severity: critical diff --git a/package.json b/package.json index 7f5aac95e3..476733ccef 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "test:coverage": "jest --coverage" }, "dependencies": { - "@aave/contract-helpers": "1.30.5", - "@aave/math-utils": "1.30.5", + "@aave/contract-helpers": "1.31.1", + "@aave/math-utils": "1.31.1", "@bgd-labs/aave-address-book": "4.10.0", "@emotion/cache": "11.10.3", "@emotion/react": "11.10.4", diff --git a/src/ui-config/marketsConfig.tsx b/src/ui-config/marketsConfig.tsx index 899bf0f0f7..534238c48a 100644 --- a/src/ui-config/marketsConfig.tsx +++ b/src/ui-config/marketsConfig.tsx @@ -13,6 +13,7 @@ import { AaveV3EthereumEtherFi, AaveV3EthereumLido, AaveV3Gnosis, + AaveV3Linea, AaveV3Metis, AaveV3Optimism, AaveV3OptimismSepolia, @@ -92,6 +93,7 @@ export enum CustomMarket { proto_lido_v3 = 'proto_lido_v3', proto_zksync_v3 = 'proto_zksync_v3', proto_etherfi_v3 = 'proto_etherfi_v3', + proto_linea_v3 = 'proto_linea_v3', // v2 proto_mainnet = 'proto_mainnet', proto_avalanche = 'proto_avalanche', @@ -681,4 +683,20 @@ export const marketsData: { COLLECTOR: AaveV3ZkSync.COLLECTOR, }, }, + [CustomMarket.proto_linea_v3]: { + marketTitle: 'Linea', + market: CustomMarket.proto_linea_v3, + chainId: ChainId.linea, + v3: true, + subgraphUrl: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/Gz2kjnmRV1fQj3R8cssoZa5y9VTanhrDo4Mh7nWW1wHa`, + addresses: { + LENDING_POOL_ADDRESS_PROVIDER: AaveV3Linea.POOL_ADDRESSES_PROVIDER, + LENDING_POOL: AaveV3Linea.POOL, + WETH_GATEWAY: AaveV3Linea.WETH_GATEWAY, + WALLET_BALANCE_PROVIDER: AaveV3Linea.WALLET_BALANCE_PROVIDER, + UI_POOL_DATA_PROVIDER: AaveV3Linea.UI_POOL_DATA_PROVIDER, + UI_INCENTIVE_DATA_PROVIDER: AaveV3Linea.UI_INCENTIVE_DATA_PROVIDER, + COLLECTOR: AaveV3Linea.COLLECTOR, + }, + }, } as const; diff --git a/src/ui-config/networksConfig.ts b/src/ui-config/networksConfig.ts index 79e8432efb..b8b098af7e 100644 --- a/src/ui-config/networksConfig.ts +++ b/src/ui-config/networksConfig.ts @@ -396,10 +396,14 @@ export const networkConfigs: Record = { }, ratesHistoryApiUrl, }, - [59144]: { + [ChainId.linea]: { name: 'Linea', privateJsonRPCUrl: 'https://linea-mainnet.g.alchemy.com/v2/6uk5qBl8QvjpEbgF3TgZBbxWkKlmWZR-', - publicJsonRPCUrl: ['https://1rpc.io/linea'], + publicJsonRPCUrl: [ + 'https://1rpc.io/linea', + 'https://linea.drpc.org', + 'https://linea-rpc.publicnode.com', + ], baseAssetSymbol: 'ETH', wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, diff --git a/src/ui-config/permitConfig.ts b/src/ui-config/permitConfig.ts index f791317d4b..87c5188fbf 100644 --- a/src/ui-config/permitConfig.ts +++ b/src/ui-config/permitConfig.ts @@ -41,4 +41,9 @@ export const permitByChainAndToken: { '0x493257fd37edb34451f62edf8d2a0c418852ba4c': true, '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91': true, }, + [ChainId.linea]: { + '0xa219439258ca9da29e9cc4ce5596924745e12b93': true, // USDT + '0x2416092f143378750bb29b79ed961ab195cceea5': true, // ezETH + '0xb5bedd42000b71fdde22d3ee8a79bd49a568fc8f': true, // wstETH + }, }; diff --git a/src/ui-config/wagmiConfig.ts b/src/ui-config/wagmiConfig.ts index dfcc2f6cf2..fe6fef4c99 100644 --- a/src/ui-config/wagmiConfig.ts +++ b/src/ui-config/wagmiConfig.ts @@ -19,6 +19,7 @@ import { baseSepolia, bsc, gnosis, + linea, mainnet, metis, optimism, @@ -52,6 +53,7 @@ let prodChains: CreateConfigParameters['chains'] = [ bsc, scroll, zksync, + linea, ]; const { name, baseAssetDecimals, baseAssetSymbol } = networkConfigs[FORK_BASE_CHAIN_ID]; diff --git a/yarn.lock b/yarn.lock index 4d89bde038..ed628954fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,17 @@ # yarn lockfile v1 -"@aave/contract-helpers@1.30.5": - version "1.30.5" - resolved "https://registry.yarnpkg.com/@aave/contract-helpers/-/contract-helpers-1.30.5.tgz#2dca36c08701548eb7ad52551514215cfd4c3b6a" - integrity sha512-4CCLROduGD6HG3/DYAWS9KPDe30Pbo+b2LNKblLCy+Y90lE8aB5/e0RVZ47+vHheV9qOCjEjLYXEyeUYo7NvFg== +"@aave/contract-helpers@1.31.1": + version "1.31.1" + resolved "https://registry.yarnpkg.com/@aave/contract-helpers/-/contract-helpers-1.31.1.tgz#e0464847f18b7daa063cd5f1a1926c4b7ffce767" + integrity sha512-68/RIxOSZXpAJ0CbzN25tPDGF0QUoVbJQ6c7UDtA1hT2aL5g06URqHKhdIg1+Jvnz4VU8Qu0YYC26F5K+lVUcQ== dependencies: isomorphic-unfetch "^3.1.0" -"@aave/math-utils@1.30.5": - version "1.30.5" - resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.30.5.tgz#6c6bbf46d8a422e00504e92cf8b3f6fcad626d04" - integrity sha512-aBAHCK6p3sMuyD4mipxH0vF+kn22Ocu7TzotCPzvKgkifVvGWFY7XsM5CNWubvDksL1+uNSoUvX2v3LOr23UHA== +"@aave/math-utils@1.31.1": + version "1.31.1" + resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.31.1.tgz#f465a316c1b59b75b112b772236118541e14b716" + integrity sha512-thdudjGLygOhvDlhhndhSZjVcwglWfYROv1z6qfx9c4LsyiVITAxfz1FLUXbjEOI3kirHitl060Ng4rNuYjT1Q== "@adobe/css-tools@^4.0.1": version "4.4.1" From 6ce57af969b792b66ab0212b120d4735c0a14563 Mon Sep 17 00:00:00 2001 From: Mark Grothe Date: Wed, 12 Feb 2025 09:45:13 -0600 Subject: [PATCH 04/12] feat: linea rates [skip cypress] (#2344) --- src/ui-config/networksConfig.ts | 239 ++++++++++++++++---------------- src/ui-config/wagmiConfig.ts | 48 ++----- 2 files changed, 130 insertions(+), 157 deletions(-) diff --git a/src/ui-config/networksConfig.ts b/src/ui-config/networksConfig.ts index b8b098af7e..7a86de8e68 100644 --- a/src/ui-config/networksConfig.ts +++ b/src/ui-config/networksConfig.ts @@ -1,4 +1,25 @@ import { ChainId } from '@aave/contract-helpers'; +import { + arbitrum, + arbitrumSepolia, + avalanche, + avalancheFuji, + base, + baseSepolia, + bsc, + Chain, + gnosis, + linea, + mainnet, + metis, + optimism, + optimismSepolia, + polygon, + scroll, + scrollSepolia, + sepolia, + zksync, +} from 'wagmi/chains'; export type ExplorerLinkBuilderProps = { tx?: string; @@ -46,13 +67,14 @@ export type NetworkConfig = { name: string; url: string; }; + wagmiChain: Chain; }; export type BaseNetworkConfig = Omit; const ratesHistoryApiUrl = `${process.env.NEXT_PUBLIC_API_BASEURL}/data/rates-history`; -export const networkConfigs: Record = { +export const testnetConfig: Record = { [ChainId.sepolia]: { name: 'Ethereum Sepolia', publicJsonRPCUrl: [ @@ -67,27 +89,96 @@ export const networkConfigs: Record = { wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, explorerLink: 'https://sepolia.etherscan.io', - // usdMarket: true, isTestnet: true, networkLogoPath: '/icons/networks/ethereum.svg', + wagmiChain: sepolia, }, - [ChainId.goerli]: { - name: 'Ethereum Görli', + [ChainId.fuji]: { + name: 'Avalanche Fuji', publicJsonRPCUrl: [ - 'https://eth-goerli.public.blastapi.io', - 'https://rpc.ankr.com/eth_goerli', - 'https://goerli.prylabs.net', + 'https://api.avax-test.network/ext/bc/C/rpc', + 'https://rpc.ankr.com/avalanche_fuji', + 'https://ava-testnet.public.blastapi.io/ext/bc/C/rpc', ], - publicJsonRPCWSUrl: 'wss://eth-goerli.public.blastapi.io', + publicJsonRPCWSUrl: 'wss://api.avax-test.network/ext/bc/C/rpc', + baseUniswapAdapter: '0x0', + baseAssetSymbol: 'AVAX', + wrappedBaseAssetSymbol: 'WAVAX', + baseAssetDecimals: 18, + explorerLink: 'https://cchain.explorer.avax-test.network', + isTestnet: true, + networkLogoPath: '/icons/networks/avalanche.svg', + bridge: { + icon: '/icons/bridge/avalanche.svg', + name: 'Avalanche Bridge', + url: 'https://bridge.avax.network/', + }, + wagmiChain: avalancheFuji, + }, + [ChainId.arbitrum_sepolia]: { + name: 'Arbitrum Sepolia', + publicJsonRPCUrl: [ + 'https://sepolia-rollup.arbitrum.io/rpc', + 'https://public.stackup.sh/api/v1/node/arbitrum-sepolia', + ], + publicJsonRPCWSUrl: 'https://sepolia-rollup.arbitrum.io/rpc', baseUniswapAdapter: '0x0', baseAssetSymbol: 'ETH', wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, - explorerLink: 'https://goerli.etherscan.io', - // usdMarket: true, + explorerLink: 'https://sepolia.arbiscan.io', isTestnet: true, - networkLogoPath: '/icons/networks/ethereum.svg', + networkLogoPath: '/icons/networks/arbitrum.svg', + wagmiChain: arbitrumSepolia, }, + [ChainId.base_sepolia]: { + name: 'Base Sepolia', + publicJsonRPCUrl: [ + 'https://base-sepolia.blockpi.network/v1/rpc/public', + 'https://sepolia.base.org', + 'https://base-sepolia.gateway.tenderly.co', + ], + publicJsonRPCWSUrl: 'wss://base-sepolia-rpc.publicnode.com', + baseUniswapAdapter: '0x0', + baseAssetSymbol: 'ETH', + wrappedBaseAssetSymbol: 'WETH', + baseAssetDecimals: 18, + explorerLink: 'https://sepolia.basescan.org', + isTestnet: true, + networkLogoPath: '/icons/networks/base.svg', + wagmiChain: baseSepolia, + }, + [ChainId.optimism_sepolia]: { + name: 'Optimism Sepolia', + publicJsonRPCUrl: ['https://sepolia.optimism.io'], + baseUniswapAdapter: '0x0', + baseAssetSymbol: 'ETH', + wrappedBaseAssetSymbol: 'WETH', + baseAssetDecimals: 18, + explorerLink: 'https://sepolia-optimistic.etherscan.io', + isTestnet: true, + networkLogoPath: '/icons/networks/optimism.svg', + wagmiChain: optimismSepolia, + }, + [ChainId.scroll_sepolia]: { + name: 'Scroll Sepolia', + publicJsonRPCUrl: [ + 'https://sepolia-rpc.scroll.io', + 'https://scroll-sepolia.blockpi.network/v1/rpc/public', + ], + publicJsonRPCWSUrl: 'wss://sepolia-rpc.scroll.io', + baseUniswapAdapter: '0x0', + baseAssetSymbol: 'ETH', + wrappedBaseAssetSymbol: 'WETH', + baseAssetDecimals: 18, + explorerLink: 'https://sepolia.scrollscan.dev', + isTestnet: true, + networkLogoPath: '/icons/networks/scroll.svg', + wagmiChain: scrollSepolia, + }, +}; + +export const prodNetworkConfig: Record = { [ChainId.mainnet]: { name: 'Ethereum', privateJsonRPCUrl: 'https://eth-mainnet.g.alchemy.com/v2/ZiMMq2478EVIEJdsxC5dMal_ccQwtb31', @@ -105,6 +196,7 @@ export const networkConfigs: Record = { explorerLink: 'https://etherscan.io', ratesHistoryApiUrl, networkLogoPath: '/icons/networks/ethereum.svg', + wagmiChain: mainnet, }, [ChainId.polygon]: { name: 'Polygon POS', @@ -127,28 +219,7 @@ export const networkConfigs: Record = { url: 'https://wallet.polygon.technology/polygon/bridge', }, ratesHistoryApiUrl, - }, - [ChainId.fuji]: { - name: 'Avalanche Fuji', - publicJsonRPCUrl: [ - 'https://api.avax-test.network/ext/bc/C/rpc', - 'https://rpc.ankr.com/avalanche_fuji', - 'https://ava-testnet.public.blastapi.io/ext/bc/C/rpc', - ], - publicJsonRPCWSUrl: 'wss://api.avax-test.network/ext/bc/C/rpc', - baseUniswapAdapter: '0x0', - baseAssetSymbol: 'AVAX', - wrappedBaseAssetSymbol: 'WAVAX', - baseAssetDecimals: 18, - explorerLink: 'https://cchain.explorer.avax-test.network', - // usdMarket: true, - isTestnet: true, - networkLogoPath: '/icons/networks/avalanche.svg', - bridge: { - icon: '/icons/bridge/avalanche.svg', - name: 'Avalanche Bridge', - url: 'https://bridge.avax.network/', - }, + wagmiChain: polygon, }, [ChainId.avalanche]: { name: 'Avalanche', @@ -164,7 +235,6 @@ export const networkConfigs: Record = { wrappedBaseAssetSymbol: 'WAVAX', baseAssetDecimals: 18, explorerLink: 'https://cchain.explorer.avax.network', - // usdMarket: true, networkLogoPath: '/icons/networks/avalanche.svg', bridge: { icon: '/icons/bridge/avalanche.svg', @@ -172,42 +242,7 @@ export const networkConfigs: Record = { url: 'https://bridge.avax.network/', }, ratesHistoryApiUrl, - }, - [ChainId.arbitrum_goerli]: { - name: 'Arbitrum Görli', - publicJsonRPCUrl: [ - 'https://goerli-rollup.arbitrum.io/rpc', - 'https://arb-goerli.g.alchemy.com/v2/demo', - ], - publicJsonRPCWSUrl: 'wss://goerli-rollup.arbitrum.io/rpc', - baseUniswapAdapter: '0x0', - baseAssetSymbol: 'ETH', - wrappedBaseAssetSymbol: 'WETH', - baseAssetDecimals: 18, - explorerLink: 'https://goerli.arbiscan.io', - // usdMarket: true, - isTestnet: true, - networkLogoPath: '/icons/networks/arbitrum.svg', - bridge: { - icon: '/icons/bridge/arbitrum.svg', - name: 'Arbitrum Bridge', - url: 'https://bridge.arbitrum.io', - }, - }, - [ChainId.arbitrum_sepolia]: { - name: 'Arbitrum Sepolia', - publicJsonRPCUrl: [ - 'https://sepolia-rollup.arbitrum.io/rpc', - 'https://public.stackup.sh/api/v1/node/arbitrum-sepolia', - ], - publicJsonRPCWSUrl: 'https://sepolia-rollup.arbitrum.io/rpc', - baseUniswapAdapter: '0x0', - baseAssetSymbol: 'ETH', - wrappedBaseAssetSymbol: 'WETH', - baseAssetDecimals: 18, - explorerLink: 'https://sepolia.arbiscan.io', - isTestnet: true, - networkLogoPath: '/icons/networks/arbitrum.svg', + wagmiChain: avalanche, }, [ChainId.arbitrum_one]: { name: 'Arbitrum', @@ -223,7 +258,6 @@ export const networkConfigs: Record = { wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, explorerLink: 'https://arbiscan.io', - // usdMarket: true, networkLogoPath: '/icons/networks/arbitrum.svg', bridge: { icon: '/icons/bridge/arbitrum.svg', @@ -231,6 +265,7 @@ export const networkConfigs: Record = { url: 'https://bridge.arbitrum.io', }, ratesHistoryApiUrl, + wagmiChain: arbitrum, }, [ChainId.base]: { name: 'Base', @@ -246,7 +281,6 @@ export const networkConfigs: Record = { wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, explorerLink: 'https://basescan.org', - // usdMarket: true, networkLogoPath: '/icons/networks/base.svg', bridge: { icon: '/icons/networks/base.svg', @@ -254,22 +288,7 @@ export const networkConfigs: Record = { url: 'https://bridge.base.org/', }, ratesHistoryApiUrl, - }, - [ChainId.base_sepolia]: { - name: 'Base Sepolia', - publicJsonRPCUrl: [ - 'https://base-sepolia.blockpi.network/v1/rpc/public', - 'https://sepolia.base.org', - 'https://base-sepolia.gateway.tenderly.co', - ], - publicJsonRPCWSUrl: 'wss://base-sepolia-rpc.publicnode.com', - baseUniswapAdapter: '0x0', - baseAssetSymbol: 'ETH', - wrappedBaseAssetSymbol: 'WETH', - baseAssetDecimals: 18, - explorerLink: 'https://sepolia.basescan.org', - isTestnet: true, - networkLogoPath: '/icons/networks/base.svg', + wagmiChain: base, }, [ChainId.optimism]: { name: 'OP', @@ -277,11 +296,10 @@ export const networkConfigs: Record = { publicJsonRPCUrl: ['https://optimism-mainnet.public.blastapi.io', 'https://1rpc.io/op'], publicJsonRPCWSUrl: 'wss://optimism-mainnet.public.blastapi.io', baseUniswapAdapter: '0x0', - baseAssetSymbol: 'ETH', // OETH + baseAssetSymbol: 'ETH', wrappedBaseAssetSymbol: 'WETH', baseAssetDecimals: 18, explorerLink: 'https://optimistic.etherscan.io', - // usdMarket: true, networkLogoPath: '/icons/networks/optimism.svg', bridge: { icon: '/icons/bridge/optimism.svg', @@ -289,32 +307,7 @@ export const networkConfigs: Record = { url: 'https://app.optimism.io/bridge', }, ratesHistoryApiUrl, - }, - [ChainId.optimism_sepolia]: { - name: 'Optimism Sepolia', - publicJsonRPCUrl: ['https://sepolia.optimism.io'], - baseUniswapAdapter: '0x0', - baseAssetSymbol: 'ETH', - wrappedBaseAssetSymbol: 'WETH', - baseAssetDecimals: 18, - explorerLink: 'https://sepolia-optimistic.etherscan.io', - isTestnet: true, - networkLogoPath: '/icons/networks/optimism.svg', - }, - [ChainId.scroll_sepolia]: { - name: 'Scroll Sepolia', - publicJsonRPCUrl: [ - 'https://sepolia-rpc.scroll.io', - 'https://scroll-sepolia.blockpi.network/v1/rpc/public', - ], - publicJsonRPCWSUrl: 'wss://sepolia-rpc.scroll.io', - baseUniswapAdapter: '0x0', - baseAssetSymbol: 'ETH', - wrappedBaseAssetSymbol: 'WETH', - baseAssetDecimals: 18, - explorerLink: 'https://sepolia.scrollscan.dev', - isTestnet: true, - networkLogoPath: '/icons/networks/scroll.svg', + wagmiChain: optimism, }, [ChainId.metis_andromeda]: { name: 'Metis Andromeda', @@ -326,6 +319,7 @@ export const networkConfigs: Record = { explorerLink: 'https://andromeda-explorer.metis.io', networkLogoPath: '/icons/networks/metis.svg', ratesHistoryApiUrl, + wagmiChain: metis, }, [ChainId.xdai]: { name: 'Gnosis Chain', @@ -345,6 +339,7 @@ export const networkConfigs: Record = { url: 'https://bridge.gnosischain.com/', }, ratesHistoryApiUrl, + wagmiChain: gnosis, }, [ChainId.bnb]: { name: 'Binance Smart Chain', @@ -362,6 +357,7 @@ export const networkConfigs: Record = { url: 'https://www.bnbchain.org/en/bnb-chain-bridges', }, ratesHistoryApiUrl, + wagmiChain: bsc, }, [ChainId.scroll]: { name: 'Scroll', @@ -379,6 +375,7 @@ export const networkConfigs: Record = { url: 'https://scroll.io/bridge', }, ratesHistoryApiUrl, + wagmiChain: scroll, }, [ChainId.zksync]: { name: 'ZKsync', @@ -395,6 +392,7 @@ export const networkConfigs: Record = { url: 'https://portal.zksync.io/bridge/', }, ratesHistoryApiUrl, + wagmiChain: zksync, }, [ChainId.linea]: { name: 'Linea', @@ -414,5 +412,12 @@ export const networkConfigs: Record = { name: 'Linea Bridge', url: 'https://bridge.linea.build/', }, + ratesHistoryApiUrl, + wagmiChain: linea, }, -} as const; +}; + +export const networkConfigs = { + ...testnetConfig, + ...prodNetworkConfig, +}; diff --git a/src/ui-config/wagmiConfig.ts b/src/ui-config/wagmiConfig.ts index fe6fef4c99..e7b7791e0f 100644 --- a/src/ui-config/wagmiConfig.ts +++ b/src/ui-config/wagmiConfig.ts @@ -10,50 +10,18 @@ import { } from 'src/utils/marketsAndNetworksConfig'; import { type Chain } from 'viem'; import { createConfig, CreateConfigParameters, http } from 'wagmi'; -import { - arbitrum, - arbitrumSepolia, - avalanche, - avalancheFuji, - base, - baseSepolia, - bsc, - gnosis, - linea, - mainnet, - metis, - optimism, - optimismSepolia, - polygon, - scroll, - scrollSepolia, - sepolia, - zksync, -} from 'wagmi/chains'; import { injected, safe } from 'wagmi/connectors'; -const testnetChains: CreateConfigParameters['chains'] = [ - sepolia, - baseSepolia, - arbitrumSepolia, - avalancheFuji, - optimismSepolia, - scrollSepolia, +import { prodNetworkConfig, testnetConfig } from './networksConfig'; + +const testnetChains = Object.values(testnetConfig).map((config) => config.wagmiChain) as [ + Chain, + ...Chain[] ]; -let prodChains: CreateConfigParameters['chains'] = [ - mainnet, - base, - arbitrum, - avalanche, - optimism, - polygon, - metis, - gnosis, - bsc, - scroll, - zksync, - linea, +let prodChains = Object.values(prodNetworkConfig).map((config) => config.wagmiChain) as [ + Chain, + ...Chain[] ]; const { name, baseAssetDecimals, baseAssetSymbol } = networkConfigs[FORK_BASE_CHAIN_ID]; From e9fc6a65da687f2a965a8ff5861f47cdde6556ac Mon Sep 17 00:00:00 2001 From: Bigint <69431456+bigint@users.noreply.github.com> Date: Mon, 17 Feb 2025 22:11:01 +0530 Subject: [PATCH 05/12] fix: ENS avatar not getting displayed on the navbar (#2350) --- src/components/UserDisplay.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/UserDisplay.tsx b/src/components/UserDisplay.tsx index a2273a27c1..efe15fc752 100644 --- a/src/components/UserDisplay.tsx +++ b/src/components/UserDisplay.tsx @@ -42,6 +42,7 @@ export const UserDisplay: React.FC = ({ } invisibleBadge={!readOnlyMode} From 9808ce4b02a24d50e4bf3a7910ea4b6d8a9de329 Mon Sep 17 00:00:00 2001 From: Mark Hinschberger Date: Tue, 18 Feb 2025 10:09:32 +0000 Subject: [PATCH 06/12] chore: update banner (#2367) --- src/layouts/MainLayout.tsx | 38 +++++++++++++++++++++++++++--------- src/layouts/TopBarNotify.tsx | 5 +++++ 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/layouts/MainLayout.tsx b/src/layouts/MainLayout.tsx index 7228d00326..f6c8372830 100644 --- a/src/layouts/MainLayout.tsx +++ b/src/layouts/MainLayout.tsx @@ -2,23 +2,43 @@ import { Box } from '@mui/material'; import React, { ReactNode } from 'react'; import AnalyticsConsent from 'src/components/Analytics/AnalyticsConsent'; import { FeedbackModal } from 'src/layouts/FeedbackDialog'; +import { useRootStore } from 'src/store/root'; import { FORK_ENABLED } from 'src/utils/marketsAndNetworksConfig'; import { AppFooter } from './AppFooter'; import { AppHeader } from './AppHeader'; -// import TopBarNotify from './TopBarNotify'; +import TopBarNotify from './TopBarNotify'; +const SwitchIcon = () => ( + + + +); export function MainLayout({ children }: { children: ReactNode }) { - // const APP_BANNER_VERSION = '5.0.0'; - + const APP_BANNER_VERSION = '6.0.0'; + const currentMarket = useRootStore((state) => state.currentMarket); return ( <> - {/* */} + {currentMarket === 'proto_base_v3' && ( + } + /> + )} + {children} diff --git a/src/layouts/TopBarNotify.tsx b/src/layouts/TopBarNotify.tsx index e9322acc1e..6149460470 100644 --- a/src/layouts/TopBarNotify.tsx +++ b/src/layouts/TopBarNotify.tsx @@ -17,6 +17,7 @@ interface TopBarNotifyProps { buttonText?: string; bannerVersion: string; icon?: string; + customIcon?: ReactNode; } export default function TopBarNotify({ @@ -25,6 +26,7 @@ export default function TopBarNotify({ buttonText, bannerVersion, icon, + customIcon, }: TopBarNotifyProps) { const { breakpoints } = useTheme(); const md = useMediaQuery(breakpoints.down('md')); @@ -86,6 +88,8 @@ export default function TopBarNotify({ > {notifyText} + {customIcon ? customIcon : null} + {icon && !sm ? : ''} {learnMoreLink && md ? ( @@ -99,6 +103,7 @@ export default function TopBarNotify({ ) : null} + {!md && learnMoreLink ? (