contract Tokensale {
    
    using SafeMath for uint;
    struct Beneficiar {
        uint weiReceived; // Amount of Ether
        uint coinSent;
    }
    
    /* Number of VenusCoins per Ether */
    uint public constant COIN_PER_ETHER = 20000; // 20,000 VenusCoins
    /*
    * Variables
    */
    /* VenusCoin contract reference */
    VenusCoin public coin;
    /* Number of Ether received */
    uint public etherReceived;
    /* Number of VenusCoins sent to Ether contributors */
    uint public coinSentToEther;
    /*  Beneficiar's Ether indexed by Ethereum address */
    mapping(address => Beneficiar) public beneficiars;
  
    /*
     * Event
    */
    event LogReceivedETH(address addr, uint value);
    event LogCoinsEmited(address indexed from, uint amount);
    /*
     * Constructor
    */
    function Tokensale(address _venusCoinAddress, address _to) {
        coin = VenusCoin(_venusCoinAddress);
    }
}
/*
 Tokensale Smart Contract for the VenusCoin project
 This smart contract collects ETH
 */
function Tokensale(address _venusCoinAddress, address _to) {
        coin = VenusCoin(_venusCoinAddress);
    }
/*
 * Constructor
 */