solidity/test/compilationTests/gnosis/Oracles/UltimateOracleFactory.sol

65 lines
1.8 KiB
Solidity
Raw Normal View History

2018-10-24 12:52:11 +00:00
pragma solidity >=0.0;
2017-07-12 13:46:33 +00:00
import "../Oracles/UltimateOracle.sol";
/// @title Ultimate oracle factory contract - Allows to create ultimate oracle contracts
/// @author Stefan George - <stefan@gnosis.pm>
contract UltimateOracleFactory {
/*
* Events
*/
event UltimateOracleCreation(
address indexed creator,
UltimateOracle ultimateOracle,
Oracle oracle,
Token collateralToken,
uint8 spreadMultiplier,
uint challengePeriod,
uint challengeAmount,
uint frontRunnerPeriod
);
/*
* Public functions
*/
/// @dev Creates a new ultimate Oracle contract
/// @param oracle Oracle address
/// @param collateralToken Collateral token address
/// @param spreadMultiplier Defines the spread as a multiple of the money bet on other outcomes
/// @param challengePeriod Time to challenge oracle outcome
/// @param challengeAmount Amount to challenge the outcome
/// @param frontRunnerPeriod Time to overbid the front-runner
/// @return Oracle contract
function createUltimateOracle(
Oracle oracle,
Token collateralToken,
uint8 spreadMultiplier,
uint challengePeriod,
uint challengeAmount,
uint frontRunnerPeriod
)
public
returns (UltimateOracle ultimateOracle)
{
ultimateOracle = new UltimateOracle(
oracle,
collateralToken,
spreadMultiplier,
challengePeriod,
challengeAmount,
frontRunnerPeriod
);
2018-06-27 08:35:38 +00:00
emit UltimateOracleCreation(
2017-07-12 13:46:33 +00:00
msg.sender,
ultimateOracle,
oracle,
collateralToken,
spreadMultiplier,
challengePeriod,
challengeAmount,
frontRunnerPeriod
);
}
}