pragma solidity 0.4.20; import 'libraries/ITyped.sol'; import 'libraries/IOwnable.sol'; import 'trading/ICash.sol'; import 'trading/IShareToken.sol'; import 'reporting/IUniverse.sol'; import 'reporting/IFeeWindow.sol'; import 'trading/IShareToken.sol'; import 'reporting/IReportingParticipant.sol'; import 'reporting/IReputationToken.sol'; //import 'reporting/IInitialReporter.sol'; import 'reporting/IMailbox.sol'; contract IMarket is ITyped, IOwnable { enum MarketType { YES_NO, CATEGORICAL, SCALAR } function initialize(IUniverse _universe, uint256 _endTime, uint256 _feePerEthInAttoeth, ICash _cash, address _designatedReporterAddress, address _creator, uint256 _numOutcomes, uint256 _numTicks) public payable returns (bool _success); function derivePayoutDistributionHash(uint256[] _payoutNumerators, bool _invalid) public view returns (bytes32); function getUniverse() public view returns (IUniverse); function getFeeWindow() public view returns (IFeeWindow); function getNumberOfOutcomes() public view returns (uint256); function getNumTicks() public view returns (uint256); function getDenominationToken() public view returns (ICash); function getShareToken(uint256 _outcome) public view returns (IShareToken); function getMarketCreatorSettlementFeeDivisor() public view returns (uint256); function getForkingMarket() public view returns (IMarket _market); function getEndTime() public view returns (uint256); function getMarketCreatorMailbox() public view returns (IMailbox); function getWinningPayoutDistributionHash() public view returns (bytes32); function getWinningPayoutNumerator(uint256 _outcome) public view returns (uint256); function getReputationToken() public view returns (IReputationToken); function getFinalizationTime() public view returns (uint256); function getInitialReporterAddress() public view returns (address); function deriveMarketCreatorFeeAmount(uint256 _amount) public view returns (uint256); function isContainerForShareToken(IShareToken _shadyTarget) public view returns (bool); function isContainerForReportingParticipant(IReportingParticipant _reportingParticipant) public view returns (bool); function isInvalid() public view returns (bool); function finalize() public returns (bool); function designatedReporterWasCorrect() public view returns (bool); function designatedReporterShowed() public view returns (bool); function isFinalized() public view returns (bool); function finalizeFork() public returns (bool); function assertBalances() public view returns (bool); }