From 11cb6e2d1922e7330bc4309ab48714b6bbb83a02 Mon Sep 17 00:00:00 2001 From: samepant Date: Tue, 30 Jan 2024 12:01:57 -0500 Subject: [PATCH] add base network support --- packages/app/.env.sample | 3 ++- packages/app/src/services/index.ts | 4 ++++ packages/app/src/utils/explorers.ts | 14 ++++++++++++++ packages/app/src/utils/networks.ts | 8 ++++++++ .../wizards/RealityModule/service/monitoring.ts | 2 ++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/app/.env.sample b/packages/app/.env.sample index ccc48edd..0da673ad 100644 --- a/packages/app/.env.sample +++ b/packages/app/.env.sample @@ -11,4 +11,5 @@ REACT_APP_POLYGONSCAN_KEY= REACT_APP_BSCSCAN_KEY= REACT_APP_OPTIMISTIC_ETHERSCAN_KEY= REACT_APP_ARBISCAN_KEY= -REACT_APP_SNOWTRACE_KEY= \ No newline at end of file +REACT_APP_SNOWTRACE_KEY= +REACT_APP_BASESCAN_KEY= diff --git a/packages/app/src/services/index.ts b/packages/app/src/services/index.ts index a147665b..8155c300 100644 --- a/packages/app/src/services/index.ts +++ b/packages/app/src/services/index.ts @@ -94,6 +94,8 @@ export function getTellorOracle(chainId: number): string { return "0xD9157453E2668B2fc45b7A803D3FEF3642430cC0" case NETWORK.SEPOLIA: return "" // TODO + case NETWORK.BASE: + return "" // TODO } return "" } @@ -118,6 +120,8 @@ export function getDefaultOracle(chainId: number): string { return "0xD88cd78631Ea0D068cedB0d1357a6eabe59D7502" case NETWORK.SEPOLIA: return "" // TODO + case NETWORK.BASE: + return "" // TODO } return "" } diff --git a/packages/app/src/utils/explorers.ts b/packages/app/src/utils/explorers.ts index d6f7ba0d..fa1904aa 100644 --- a/packages/app/src/utils/explorers.ts +++ b/packages/app/src/utils/explorers.ts @@ -36,6 +36,11 @@ if (!isDev && !REACT_APP_SNOWTRACE_KEY) { throw new Error("REACT_APP_SNOWTRACE_KEY is not set") } +const REACT_APP_BASESCAN_KEY = process.env.REACT_APP_BASESCAN_KEY +if (!isDev && !REACT_APP_BASESCAN_KEY) { + throw new Error("REACT_APP_BASESCAN_KEY is not set") +} + interface ExplorerData { networkExplorerName: string networkExplorerUrl: string @@ -128,6 +133,15 @@ export const EXPLORERS_CONFIG: Record = { verifyContractUrl: "https://sepolia.etherscan.io/verifyContract", explorerApiKey: REACT_APP_ETHERSCAN_KEY, }, + [NETWORK.BASE]: { + networkExplorerName: "Basescan", + networkExplorerUrl: "https://basescan.org", + networkExplorerApiUrl: "https://api.basescan.org/api", + safeTransactionApi: "https://safe-transaction-base.safe.global", + safeUrl: "https://app.safe.global/base:", + verifyContractUrl: "https://basescan.org/verifyContract", + explorerApiKey: REACT_APP_BASESCAN_KEY, + }, } export const getNetworkExplorerInfo = (chainId: number) => { diff --git a/packages/app/src/utils/networks.ts b/packages/app/src/utils/networks.ts index 80198f5f..253d1d70 100644 --- a/packages/app/src/utils/networks.ts +++ b/packages/app/src/utils/networks.ts @@ -8,6 +8,7 @@ export enum NETWORK { ARBITRUM = 42161, AVALANCHE = 43114, SEPOLIA = 11155111, + BASE = 8453, } export interface Coin { @@ -85,6 +86,12 @@ export const NETWORKS: Record = { shortName: "sep", nativeAsset: NATIVE_ASSET.ETH, }, + [NETWORK.BASE]: { + chainId: NETWORK.BASE, + name: "base", + shortName: "base", + nativeAsset: NATIVE_ASSET.ETH, + }, } export const NETWORK_NATIVE_ASSET: Record = { @@ -97,4 +104,5 @@ export const NETWORK_NATIVE_ASSET: Record = { [NETWORK.ARBITRUM]: NATIVE_ASSET.ETH, [NETWORK.AVALANCHE]: NATIVE_ASSET.AVAX, [NETWORK.SEPOLIA]: NATIVE_ASSET.ETH, + [NETWORK.BASE]: NATIVE_ASSET.ETH, } diff --git a/packages/app/src/views/AddModule/wizards/RealityModule/service/monitoring.ts b/packages/app/src/views/AddModule/wizards/RealityModule/service/monitoring.ts index c27d9dec..263da8d6 100644 --- a/packages/app/src/views/AddModule/wizards/RealityModule/service/monitoring.ts +++ b/packages/app/src/views/AddModule/wizards/RealityModule/service/monitoring.ts @@ -137,6 +137,8 @@ const networkToOzDefenderNetworkName = (network: NETWORK) => { return "avalanche" case NETWORK.SEPOLIA: return "sepolia" + case NETWORK.BASE: + return "base" default: throw new Error("Unsupported network") }