mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Gnosis compilation contracts.
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
pragma solidity ^0.4.11;
|
||||
import "../Oracles/FutarchyOracle.sol";
|
||||
|
||||
|
||||
/// @title Futarchy oracle factory contract - Allows to create Futarchy oracle contracts
|
||||
/// @author Stefan George - <stefan@gnosis.pm>
|
||||
contract FutarchyOracleFactory {
|
||||
|
||||
/*
|
||||
* Events
|
||||
*/
|
||||
event FutarchyOracleCreation(
|
||||
address indexed creator,
|
||||
FutarchyOracle futarchyOracle,
|
||||
Token collateralToken,
|
||||
Oracle oracle,
|
||||
uint8 outcomeCount,
|
||||
int lowerBound,
|
||||
int upperBound,
|
||||
MarketFactory marketFactory,
|
||||
MarketMaker marketMaker,
|
||||
uint24 fee,
|
||||
uint deadline
|
||||
);
|
||||
|
||||
/*
|
||||
* Storage
|
||||
*/
|
||||
EventFactory eventFactory;
|
||||
|
||||
/*
|
||||
* Public functions
|
||||
*/
|
||||
/// @dev Constructor sets event factory contract
|
||||
/// @param _eventFactory Event factory contract
|
||||
function FutarchyOracleFactory(EventFactory _eventFactory)
|
||||
public
|
||||
{
|
||||
require(address(_eventFactory) != 0);
|
||||
eventFactory = _eventFactory;
|
||||
}
|
||||
|
||||
/// @dev Creates a new Futarchy oracle contract
|
||||
/// @param collateralToken Tokens used as collateral in exchange for outcome tokens
|
||||
/// @param oracle Oracle contract used to resolve the event
|
||||
/// @param outcomeCount Number of event outcomes
|
||||
/// @param lowerBound Lower bound for event outcome
|
||||
/// @param upperBound Lower bound for event outcome
|
||||
/// @param marketFactory Market factory contract
|
||||
/// @param marketMaker Market maker contract
|
||||
/// @param fee Market fee
|
||||
/// @param deadline Decision deadline
|
||||
/// @return Oracle contract
|
||||
function createFutarchyOracle(
|
||||
Token collateralToken,
|
||||
Oracle oracle,
|
||||
uint8 outcomeCount,
|
||||
int lowerBound,
|
||||
int upperBound,
|
||||
MarketFactory marketFactory,
|
||||
MarketMaker marketMaker,
|
||||
uint24 fee,
|
||||
uint deadline
|
||||
)
|
||||
public
|
||||
returns (FutarchyOracle futarchyOracle)
|
||||
{
|
||||
futarchyOracle = new FutarchyOracle(
|
||||
msg.sender,
|
||||
eventFactory,
|
||||
collateralToken,
|
||||
oracle,
|
||||
outcomeCount,
|
||||
lowerBound,
|
||||
upperBound,
|
||||
marketFactory,
|
||||
marketMaker,
|
||||
fee,
|
||||
deadline
|
||||
);
|
||||
FutarchyOracleCreation(
|
||||
msg.sender,
|
||||
futarchyOracle,
|
||||
collateralToken,
|
||||
oracle,
|
||||
outcomeCount,
|
||||
lowerBound,
|
||||
upperBound,
|
||||
marketFactory,
|
||||
marketMaker,
|
||||
fee,
|
||||
deadline
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user