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
|
pragma solidity >=0.0;
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
);
emit UltimateOracleCreation(
msg.sender,
ultimateOracle,
oracle,
collateralToken,
spreadMultiplier,
challengePeriod,
challengeAmount,
frontRunnerPeriod
);
}
}
|