-
Notifications
You must be signed in to change notification settings - Fork 0
/
gurupassdeployer.sol
55 lines (45 loc) · 1.88 KB
/
gurupassdeployer.sol
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
/*
This file is part of the Guru Collective DAO.
The GuruPassDeployer Contract is free software: you can redistribute it and/or
modify it under the terms of the GNU lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The GuruPassDeployer Contract is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU lesser General Public License for more details.
You should have received a copy of the GNU lesser General Public License
along with the GuruPassDeployer Contract. If not, see <http://www.gnu.org/licenses/>.
@author Ilya Svirin <[email protected]>
*/
// SPDX-License-Identifier: GNU lesser General Public License
pragma solidity ^0.8.0;
import "./gurupassminter.sol";
import "./gurupasslottery.sol";
import "./gurupassdistribution.sol";
contract GuruPassDeployer is Context
{
event Deployed(
address token,
address minter,
address whitelistfactory,
address distributionfactory,
address lotteryfactory);
function deploy(address treasury) public
{
address token = address(new GuruPassToken());
address whitelistfactory = address(new GuruPassWhitelistFactory());
address distributionfactory = address(new GuruPassDistributionFactory());
address lotteryfactory = address(new GuruPassLotteryFactory(token));
address minter = address(new GuruPassMinter(token, treasury));
//GuruPassToken(token).transferOwnership(minter);
Ownable(token).transferOwnership(_msgSender());
Ownable(minter).transferOwnership(_msgSender());
emit Deployed(
token,
minter,
whitelistfactory,
distributionfactory,
lotteryfactory);
}
}