contract TokenSaleKYC is Ownable {
    
    // @dev This creates an array with all verification statuses of addresses 
    mapping(address=>bool) public verified;

    //@dev Trigger `verification status` events
    event VerificationStatusUpdated(address participant, bool verificationStatus);

    /**
     * @dev Updates verification status of an address
     * @dev Only owner can update
     * @param participant Address that is submitted by a participant 
     * @param verificationStatus True or false
     */
    function updateVerificationStatus(address participant, bool verificationStatus) public onlyOwner {
        verified[participant] = verificationStatus;
        emit VerificationStatusUpdated(participant, verificationStatus);
    }

    /**
     * @dev Updates verification statuses of addresses
     * @dev Only owner can update
     * @param participants An array of addresses
     * @param verificationStatus True or false
     */
    function updateVerificationStatuses(address[] participants, bool verificationStatus) public onlyOwner {
        for (uint i = 0; i < participants.length; i++) {
            updateVerificationStatus(participants[i], verificationStatus);
        }
    }
}
/**
 * @title tokensale.digipay.network TokenSaleKYC
 * @dev Verified addresses can participate in the token sale
 */
function updateVerificationStatuses(address[] participants, bool verificationStatus) public onlyOwner {
    for (uint i = 0; i < participants.length; i++) {
        updateVerificationStatus(participants[i], verificationStatus);
    }
}

/**
 * @dev Updates verification statuses of addresses
 * @dev Only owner can update
 * @param participants An array of addresses
 * @param verificationStatus True or false
 */