From d2776b19bbeecc223bd0d511b51b19a8d98c97cd Mon Sep 17 00:00:00 2001 From: Matthew Pereira Date: Sat, 14 Dec 2024 11:26:29 -0800 Subject: [PATCH 1/2] add base network configs --- .env.example | 3 ++- Makefile | 2 +- packages/nextjs/contracts/externalContracts.ts | 18 +++++++++++++----- packages/nextjs/hooks/balancer/useApiConfig.ts | 1 + packages/nextjs/hooks/cow/getPoolUrl.ts | 2 ++ packages/nextjs/scaffold.config.ts | 2 +- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.env.example b/.env.example index a165c419..59b66ff6 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,5 @@ SEPOLIA_RPC_URL= MAINNET_RPC_URL= GNOSIS_RPC_URL= -ARBITRUM_RPC_URL= \ No newline at end of file +ARBITRUM_RPC_URL= +BASE_RPC_URL= \ No newline at end of file diff --git a/Makefile b/Makefile index ac637064..23781956 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -include .env -fork: fork-sepolia fork-mainnet fork-gnosis fork-arbitrum +fork: fork-sepolia fork-mainnet fork-gnosis fork-arbitrum fork-base fork-%: @echo "Forking the $* network..." diff --git a/packages/nextjs/contracts/externalContracts.ts b/packages/nextjs/contracts/externalContracts.ts index 9d4c4aa8..9485a58d 100644 --- a/packages/nextjs/contracts/externalContracts.ts +++ b/packages/nextjs/contracts/externalContracts.ts @@ -1,13 +1,14 @@ import { abis } from "./abis"; -import { arbitrum, gnosis, mainnet, sepolia } from "viem/chains"; +import { arbitrum, base, gnosis, mainnet, sepolia } from "viem/chains"; import scaffoldConfig from "~~/scaffold.config"; import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract"; const FACTORY_ADDRESSES = { - 11155111: "0x1E3D76AC2BB67a2D7e8395d3A624b30AA9056DF9", - 1: "0xf76c421bAb7df8548604E60deCCcE50477C10462", - 100: "0x703Bd8115E6F21a37BB5Df97f78614ca72Ad7624", - 42161: "0xE0e2Ba143EE5268DA87D529949a2521115987302", + 11155111: "0x1E3D76AC2BB67a2D7e8395d3A624b30AA9056DF9", // Sepolia + 1: "0xf76c421bAb7df8548604E60deCCcE50477C10462", // Mainnet + 100: "0x703Bd8115E6F21a37BB5Df97f78614ca72Ad7624", // Gnosis + 42161: "0xE0e2Ba143EE5268DA87D529949a2521115987302", // Arbitrum + 8453: "0x03362f847B4fAbC12e1Ce98b6b59F94401E4588e", // Base -> https://basescan.org/address/0x03362f847b4fabc12e1ce98b6b59f94401e4588e#code } as const; const externalContracts = { @@ -46,6 +47,13 @@ const externalContracts = { fromBlock: 248291297n, }, }, + 8453: { + BCoWFactory: { + address: FACTORY_ADDRESSES[base.id], + abi: abis.CoW.BCoWFactory, + fromBlock: 23650200n, + }, + }, } as const; export default externalContracts satisfies GenericContractsDeclaration; diff --git a/packages/nextjs/hooks/balancer/useApiConfig.ts b/packages/nextjs/hooks/balancer/useApiConfig.ts index 4b5dc414..29df1fb7 100644 --- a/packages/nextjs/hooks/balancer/useApiConfig.ts +++ b/packages/nextjs/hooks/balancer/useApiConfig.ts @@ -23,4 +23,5 @@ export const CHAIN_NAMES: { [key: number]: string } = { 100: "GNOSIS", 11155111: "SEPOLIA", 42161: "ARBITRUM", + 8453: "BASE", }; diff --git a/packages/nextjs/hooks/cow/getPoolUrl.ts b/packages/nextjs/hooks/cow/getPoolUrl.ts index f41c2c05..5200b685 100644 --- a/packages/nextjs/hooks/cow/getPoolUrl.ts +++ b/packages/nextjs/hooks/cow/getPoolUrl.ts @@ -8,6 +8,8 @@ export function getPoolUrl(chainId: number, poolAddress: string) { return `https://test.balancer.fi/pools/sepolia/cow/${poolAddress}`; case 42161: return `https://balancer.fi/pools/arbitrum/cow/${poolAddress}`; + case 8453: + return `https://balancer.fi/pools/base/cow/${poolAddress}`; default: return "unknown"; } diff --git a/packages/nextjs/scaffold.config.ts b/packages/nextjs/scaffold.config.ts index 6ddade60..ce2cf795 100644 --- a/packages/nextjs/scaffold.config.ts +++ b/packages/nextjs/scaffold.config.ts @@ -12,7 +12,7 @@ export type ScaffoldConfig = { const scaffoldConfig = { // The networks on which your DApp is live - targetNetworks: [chains.sepolia, chains.mainnet, chains.gnosis, chains.arbitrum], + targetNetworks: [chains.sepolia, chains.mainnet, chains.gnosis, chains.arbitrum, chains.base], // If using chains.foundry as your targetNetwork, you must specify a network to fork targetFork: chains.sepolia, From 7839bf3afb8a07bdb6048d1c7fc7fff7d2397489 Mon Sep 17 00:00:00 2001 From: Matthew Pereira Date: Mon, 16 Dec 2024 09:15:29 -0800 Subject: [PATCH 2/2] add fork base instructions to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0a6daae3..3e466101 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ SEPOLIA_RPC_URL= MAINNET_RPC_URL= GNOSIS_RPC_URL= ARBITRUM_RPC_URL= +BASE_RPC_URL= ``` 2. Add `chains.foundry` as the first item of `targetNetworks` in the `scaffold.config.ts` file @@ -56,6 +57,7 @@ make fork-sepolia make fork-mainnet make fork-gnosis make fork-arbitrum +make fork-base ``` 5. Start the frontend