-
Notifications
You must be signed in to change notification settings - Fork 2
/
providers.ts
36 lines (30 loc) · 1.02 KB
/
providers.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { useWeb3React } from "@web3-react/core"
import { ethers } from "ethers"
import { Contract } from '@ethersproject/contracts'
import { Signer } from '@ethersproject/abstract-signer'
import React, { Dispatch, SetStateAction, useContext, useEffect, useState } from "react"
export interface IContractsContext {
main: Contract,
deployed: Contract,
setDeployed: Dispatch<SetStateAction>,
signer: Signer,
setSigner: Dispatch<SetStateAction>,
account: string,
setAccount: Dispatch<SetStateAction>,
graph: string,
setGraph: Dispatch<SetStateAction>,
chainId: number,
}
export const ContractsContext = React.createContext<Partial<IContractsContext>>({})
interface IErrorsContext {
error: string,
setError(error: string) : void,
}
export const ErrorsContext = React.createContext<IErrorsContext>(null)
export const useErrors = () : IErrorsContext => {
const errors = useContext(ErrorsContext)
if (errors === undefined) {
throw new Error('useErrors must be used within an ErrorsContext')
}
return errors
}