-
Notifications
You must be signed in to change notification settings - Fork 2
/
hardhat.config.js
79 lines (74 loc) · 2.32 KB
/
hardhat.config.js
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
require("@nomiclabs/hardhat-ethers")
require("@nomiclabs/hardhat-waffle")
let secrets = require("./secrets")
task("startLottery", "Starts the lottery")
.addPositionalParam("address", "The address of the lottery contract")
.setAction(async (args) => {
const { address } = args;
const Lottery = await ethers.getContractFactory("Lottery");
const lottery = await Lottery.attach(address);
await lottery.startLottery();
console.log("Lottery started");
})
task("enterLottery", "Enters the lottery")
.addPositionalParam("address", "The address of the lottery contract")
.setAction(async (args) => {
const { address } = args;
const Lottery = await ethers.getContractFactory("Lottery");
const lottery = await Lottery.attach(address);
const value = await lottery.getEntranceFee();
await lottery.enter(overrides = {value: value});
console.log("Entered lottery");
})
task("fundWithLink", "Funds the lottery with LINK")
.addPositionalParam("contractAddress", "The address of the lottery contract")
.addPositionalParam("linkAddress", "The address of the LINK token")
.setAction(async (args) => {
const { contractAddress, linkAddress } = args;
const LinkToken = await ethers.getContractFactory("LinkToken");
const linkToken = await LinkToken.attach(linkAddress);
await linkToken.transfer(contractAddress, 1000000000000000);
console.log("Funded lottery with LINK");
})
task("endLottery", "Ends the lottery")
.addPositionalParam("address", "The address of the lottery contract")
.setAction(async (args) => {
const { address } = args;
const Lottery = await ethers.getContractFactory("Lottery");
const lottery = await Lottery.attach(address);
const winner = await lottery.endLottery();
console.log(winner + " won the lottery");
})
/**
* @type import('hardhat/config').HardhatUserConfig
*/
module.exports = {
solidity: {
compilers: [
{
version: "0.4.11",
},
{
version: "0.4.24",
},
{
version: "0.8.0",
}
],
},
networks: {
hardhat: {
forking: {
url: secrets.alchemyMainnetUrl,
gas: 10000,
}
},
rinkeby: {
url: secrets.alchemyRinkebyUrl,
accounts: [secrets.rinkebySecretKey],
timeout: 60000,
gas: 2100000,
gasPrice: 8000000000,
}
}
};