contract DefiToken is ERC20, Ownable {
    bool public lockStarted = false;
    
    constructor ()
        ERC20('DEFI Token', 'DEFI')
        public
    {
        //Uniswap
        _mint(0x13DDFA1473E2E37ED5b7854C3A070E602ca6C8fF, 75000 * 10 ** uint(decimals()));
        
        //Airdrop
        _mint(0xd40AfBA90892ca8c1FE58D91c05CA38161149D5b, 25000 * 10 ** uint(decimals()));
    }
    
    // Initializes locking and vesting
    function startLock(address _defiVesting) public onlyOwner {
        require(!lockStarted, "Lock already started");
        
        lockStarted = true;

        _mint(_defiVesting, 9900000 * 10 ** uint(decimals()));
    }
    
    function burn(uint256 amount) public {
        //You can only burn tokens from Private Sale and Seed wallets
        require(msg.sender == 0xF6c69A7b00f1C26C27D2Fdf91Bbe9C2e7806b9E4 || msg.sender == 0x08648056d95A2c216d52dc9eED85bF7AD5dCdd5A, "You can only burn unsold tokens");
        
        _burn(msg.sender, amount);
    }
}
function startLock(address _defiVesting) public onlyOwner {
    require(!lockStarted, "Lock already started");
        
    lockStarted = true;

    _mint(_defiVesting, 9900000 * 10 ** uint(decimals()));
}

// Initializes locking and vesting