From 1de29eab8c21d13e6d369e7818acef6eca6da306 Mon Sep 17 00:00:00 2001 From: Matthew Brown Date: Wed, 19 Jan 2022 10:34:42 -0300 Subject: [PATCH] fix ethereum-waffle dependency --- src/elf/providers/providers.ts | 12 ++++++++++-- tsconfig.json | 17 +++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/elf/providers/providers.ts b/src/elf/providers/providers.ts index b63544a6c..6b02c532d 100644 --- a/src/elf/providers/providers.ts +++ b/src/elf/providers/providers.ts @@ -1,6 +1,6 @@ import { createAlchemyWeb3 } from "@alch/alchemy-web3"; import { ExternalProvider, Provider } from "@ethersproject/providers"; -import { MockProvider } from "ethereum-waffle"; +import type { MockProvider } from "ethereum-waffle"; import { providers } from "ethers"; import { addressesJson } from "src/elf-council-addresses"; @@ -15,7 +15,15 @@ const { chainId } = addressesJson; export const ALCHEMY_GOERLI_HTTP_URL = `https://eth-goerli.alchemyapi.io/v2/${ALCHEMY_GOERLI_KEY}`; export const ALCHEMY_MAINNET_HTTP_URL = `https://eth-mainnet.alchemyapi.io/v2/${ALCHEMY_MAINNET_KEY}`; -export const testProvider = new MockProvider(); +// vercel won't build with ethereum-waffle as a production dependency. only import it if we are testing. +let mockProvider: MockProvider | undefined; +if (process.env.NODE_ENV === "test") { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { MockProvider } = require("ethereum-waffle"); + mockProvider = new MockProvider(); +} +// safe to cast since this should only ever be used in 'test' environment anyway. +export const testProvider = mockProvider as MockProvider; const provider = getProvider(); export const defaultProvider = provider; diff --git a/tsconfig.json b/tsconfig.json index 814b02a5d..32f1ff5c8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, @@ -13,11 +17,16 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react", + "jsx": "preserve", "rootDir": ".", "baseUrl": ".", "incremental": true }, - "include": ["pages", "src"], - "exclude": ["node_modules"] + "include": [ + "pages", + "src" + ], + "exclude": [ + "node_modules" + ] }