contract EthorseRace {

    //Encapsulation of racing information 
    struct chronus_info {
        bool  betting_open; // boolean: check if betting is open
        bool  race_start; //boolean: check if race has started
        bool  race_end; //boolean: check if race has ended
        bool  voided_bet; //boolean: check if race has been voided
        uint32  starting_time; // timestamp of when the race starts
        uint32  betting_duration;
        uint32  race_duration; // duration of the race
        uint32 voided_timestamp;
    }

    address public owner;
    
    //Point to racing information
    chronus_info public chronus;

    //Coin index mapping to flag - true if index is winner
    mapping (bytes32 => bool) public winner_horse;
    /*
            // exposing the coin pool details for DApp
    function getCoinIndex(bytes32 index, address candidate) external constant returns (uint, uint, uint, bool, uint) {
        return (coinIndex[index].total, coinIndex[index].pre, coinIndex[index].post, coinIndex[index].price_check, voterIndex[candidate].bets[index]);
    }
    */
    // exposing the coin pool details for DApp
    function getCoinIndex(bytes32 index, address candidate) external constant returns (uint, uint, uint, bool, uint);
}
/**
 @title Race contract - used for linking ethorse Race struct 
 @dev This interface is losely based on ethorse race contract
 */
function getCoinIndex(bytes32 index, address candidate) external constant returns (uint, uint, uint, bool, uint);

// exposing the coin pool details for DApp