function transfer(address receiver, uint amount) external;
}

contract TMONEYsale{
    address public beneficiary;
    uint public fundingGoal;
    uint public amountRaised;
    uint public deadline;
    uint public priceT1;
    uint public priceT2;
    uint public priceT3;
    uint public priceT4;
    uint public startDate;
    token public tokenReward;
    mapping(address => uint256) public balanceOf;
    bool fundingGoalReached = false;
    bool crowdsaleClosed = false;

    event GoalReached(address recipient, uint totalAmountRaised);
    event FundTransfer(address backer, uint amount, bool isContribution);

    
    constructor() public {


	    address ifSuccessfulSendTo = 0xb2769a802438C39f01C700D718Aea13754C7D378;
        uint fundingGoalInEthers = 8000;
        uint durationInMinutes = 43200;
        uint weiCostOfEachToken = 213000000000000;
        address addressOfTokenUsedAsReward = 0x66d544B100966F99A72734c7eB471fB9556BadFd;
	
        beneficiary = ifSuccessfulSendTo;
        fundingGoal = fundingGoalInEthers * 1 ether;
        deadline = now + durationInMinutes * 1 minutes;
        priceT1 = weiCostOfEachToken;
        priceT2 = weiCostOfEachToken + 12000000000000;
        priceT3 = weiCostOfEachToken + 24000000000000;
        priceT4 = weiCostOfEachToken + 26000000000000;
        tokenReward = token(addressOfTokenUsedAsReward);
        
        startDate = now;
    }