mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| pragma solidity >=0.0;
 | |
| import "../Markets/Campaign.sol";
 | |
| 
 | |
| 
 | |
| /// @title Campaign factory contract - Allows to create campaign contracts
 | |
| /// @author Stefan George - <stefan@gnosis.pm>
 | |
| contract CampaignFactory {
 | |
| 
 | |
|     /*
 | |
|      *  Events
 | |
|      */
 | |
|     event CampaignCreation(address indexed creator, Campaign campaign, Event eventContract, MarketFactory marketFactory, MarketMaker marketMaker, uint24 fee, uint funding, uint deadline);
 | |
| 
 | |
|     /*
 | |
|      *  Public functions
 | |
|      */
 | |
|     /// @dev Creates a new campaign contract
 | |
|     /// @param eventContract Event contract
 | |
|     /// @param marketFactory Market factory contract
 | |
|     /// @param marketMaker Market maker contract
 | |
|     /// @param fee Market fee
 | |
|     /// @param funding Initial funding for market
 | |
|     /// @param deadline Campaign deadline
 | |
|     /// @return campaign Market contract
 | |
|     function createCampaigns(
 | |
|         Event eventContract,
 | |
|         MarketFactory marketFactory,
 | |
|         MarketMaker marketMaker,
 | |
|         uint24 fee,
 | |
|         uint funding,
 | |
|         uint deadline
 | |
|     )
 | |
|         public
 | |
|         returns (Campaign campaign)
 | |
|     {
 | |
|         campaign = new Campaign(eventContract, marketFactory, marketMaker, fee, funding, deadline);
 | |
|         emit CampaignCreation(msg.sender, campaign, eventContract, marketFactory, marketMaker, fee, funding, deadline);
 | |
|     }
 | |
| }
 |