-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtypes.ts
115 lines (100 loc) · 2.52 KB
/
types.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import { BigNumber } from "ethers";
export interface NetworksUserConfig {
hardhat?: HardhatNetworkUserConfig;
[networkName: string]:
| HardhatNetworkUserConfig
| HttpNetworkUserConfig
| undefined;
}
//#region Hardhat network config
export interface HardhatNetworkUserConfig {
chainId?: number;
from?: string;
gas?: "auto" | number;
gasPrice?: "auto" | number;
gasMultiplier?: number;
initialBaseFeePerGas?: number;
hardfork?: string;
mining?: HardhatNetworkMiningUserConfig;
accounts?: HardhatNetworkAccountsUserConfig;
blockGasLimit?: number;
minGasPrice?: number | string;
throwOnTransactionFailures?: boolean;
throwOnCallFailures?: boolean;
allowUnlimitedContractSize?: boolean;
initialDate?: string;
loggingEnabled?: boolean;
forking?: HardhatNetworkForkingUserConfig;
coinbase?: string;
}
//#region hardhat mining config
interface HardhatNetworkMiningUserConfig {
auto?: boolean;
interval?: number | [number, number];
mempool?: HardhatNetworkMempoolUserConfig;
}
interface HardhatNetworkMempoolUserConfig {
order?: string;
}
//#endregion
interface HardhatNetworkForkingUserConfig {
enabled?: boolean;
url: string;
blockNumber?: number;
}
//#region hardhat network normal accounts config
type HardhatNetworkAccountsUserConfig =
| HardhatNetworkAccountUserConfig[]
| HardhatNetworkHDAccountsUserConfig;
interface HardhatNetworkAccountUserConfig {
privateKey: string;
balance: string;
}
//#endregion
interface HardhatNetworkHDAccountsUserConfig {
mnemonic?: string;
initialIndex?: number;
count?: number;
path?: string;
accountsBalance?: string;
passphrase?: string;
}
//#endregion
//#region Http chain network config
export interface HttpNetworkUserConfig {
chainId?: number;
from?: string;
gas?: "auto" | number;
gasPrice?: "auto" | number;
gasMultiplier?: number;
url?: string;
timeout?: number;
httpHeaders?: { [name: string]: string };
accounts?: HttpNetworkAccountsUserConfig;
}
type HttpNetworkAccountsUserConfig = "remote" | string[] | HDAccountsUserConfig;
interface HDAccountsUserConfig {
mnemonic: string;
initialIndex?: number;
count?: number;
path?: string;
passphrase?: string;
}
//#endregion
export interface VRF {
VRFCoordinator: string;
LinkAddress: string;
KeyHash: string;
Fee: string | BigNumber;
}
export interface ContractAddresses {
MaskTokenAddress: string;
UniswapRouterAddress?: string;
}
export type ChainType = {
Chain: string;
ChainID: number;
RPC: string;
BlockExplorer: string;
Stage: string;
};