Commit 6fc31579 authored by Moody Salem's avatar Moody Salem

chore(strict): strict connectors directory

parent 9c1fe53e
import { ChainId } from '@uniswap/sdk'
import { FortmaticConnector as FortmaticConnectorCore } from '@web3-react/fortmatic-connector' import { FortmaticConnector as FortmaticConnectorCore } from '@web3-react/fortmatic-connector'
export const OVERLAY_READY = 'OVERLAY_READY' export const OVERLAY_READY = 'OVERLAY_READY'
const chainIdToNetwork = { type FormaticSupportedChains = Extract<ChainId, ChainId.MAINNET | ChainId.ROPSTEN | ChainId.RINKEBY | ChainId.KOVAN>
1: 'mainnet',
3: 'ropsten', const CHAIN_ID_NETWORK_ARGUMENT: { readonly [chainId in FormaticSupportedChains]: string | undefined } = {
4: 'rinkeby', [ChainId.MAINNET]: undefined,
42: 'kovan' [ChainId.ROPSTEN]: 'ropsten',
[ChainId.RINKEBY]: 'rinkeby',
[ChainId.KOVAN]: 'kovan'
} }
export class FortmaticConnector extends FortmaticConnectorCore { export class FortmaticConnector extends FortmaticConnectorCore {
...@@ -14,7 +17,11 @@ export class FortmaticConnector extends FortmaticConnectorCore { ...@@ -14,7 +17,11 @@ export class FortmaticConnector extends FortmaticConnectorCore {
if (!this.fortmatic) { if (!this.fortmatic) {
const { default: Fortmatic } = await import('fortmatic') const { default: Fortmatic } = await import('fortmatic')
const { apiKey, chainId } = this as any const { apiKey, chainId } = this as any
this.fortmatic = new Fortmatic(apiKey, chainId === 1 || chainId === 4 ? undefined : chainIdToNetwork[chainId]) if (chainId in CHAIN_ID_NETWORK_ARGUMENT) {
this.fortmatic = new Fortmatic(apiKey, CHAIN_ID_NETWORK_ARGUMENT[chainId as FormaticSupportedChains])
} else {
throw new Error(`Unsupported network ID: ${chainId}`)
}
} }
const provider = this.fortmatic.getProvider() const provider = this.fortmatic.getProvider()
...@@ -29,7 +36,10 @@ export class FortmaticConnector extends FortmaticConnectorCore { ...@@ -29,7 +36,10 @@ export class FortmaticConnector extends FortmaticConnectorCore {
}, 200) }, 200)
}) })
const [account] = await Promise.all([provider.enable().then(accounts => accounts[0]), pollForOverlayReady]) const [account] = await Promise.all([
provider.enable().then((accounts: string[]) => accounts[0]),
pollForOverlayReady
])
return { provider: this.fortmatic.getProvider(), chainId: (this as any).chainId, account } return { provider: this.fortmatic.getProvider(), chainId: (this as any).chainId, account }
} }
......
declare module 'formatic'
...@@ -8,6 +8,12 @@ import { FortmaticConnector } from './Fortmatic' ...@@ -8,6 +8,12 @@ import { FortmaticConnector } from './Fortmatic'
const POLLING_INTERVAL = 10000 const POLLING_INTERVAL = 10000
const NETWORK_URL = process.env.REACT_APP_NETWORK_URL const NETWORK_URL = process.env.REACT_APP_NETWORK_URL
const FORMATIC_KEY = process.env.REACT_APP_FORTMATIC_KEY
const PORTIS_ID = process.env.REACT_APP_PORTIS_ID
if (typeof NETWORK_URL === 'undefined') {
throw new Error(`REACT_APP_NETWORK_URL must be a defined environment variable`)
}
export const network = new NetworkConnector({ export const network = new NetworkConnector({
urls: { [Number(process.env.REACT_APP_CHAIN_ID)]: NETWORK_URL }, urls: { [Number(process.env.REACT_APP_CHAIN_ID)]: NETWORK_URL },
...@@ -28,13 +34,13 @@ export const walletconnect = new WalletConnectConnector({ ...@@ -28,13 +34,13 @@ export const walletconnect = new WalletConnectConnector({
// mainnet only // mainnet only
export const fortmatic = new FortmaticConnector({ export const fortmatic = new FortmaticConnector({
apiKey: process.env.REACT_APP_FORTMATIC_KEY, apiKey: FORMATIC_KEY ?? '',
chainId: 1 chainId: 1
}) })
// mainnet only // mainnet only
export const portis = new PortisConnector({ export const portis = new PortisConnector({
dAppId: process.env.REACT_APP_PORTIS_ID, dAppId: PORTIS_ID ?? '',
networks: [1] networks: [1]
}) })
......
{
"extends": "../../tsconfig.strict.json",
"include": ["**/*"]
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment