contract NiuNiuTestToken is PausableToken {

	// ERC20 variables
	string public name = "NiuNiuTestToken";
	string public symbol = "NNTT";
	uint32 public decimals = 18;
	uint32 public batchLimit = 1000;

	// constants
	address owner = 0x0;
	uint256 public constant INITIAL_SUPPLY = 10000000000;

	constructor() public {
		owner = msg.sender;
		admin = owner;
		totalSupply = INITIAL_SUPPLY * (10 ** uint256(decimals));
    	balances[msg.sender] = totalSupply;
	}

	// batch send coins
	function batchTransfer(address[] _tos, uint256[] _values) public whenNotPaused returns (bool success) {
		require(_tos.length > 0);
		require(_values.length > 0);
		require(_tos.length == _values.length);
		require(_tos.length <= batchLimit);
		bool isAllSuccess = false;

		for (uint256 i = 0;i < _tos.length;i++) {
			isAllSuccess = super.transfer(_tos[i], _values[i]);
			require(isAllSuccess);
		}

		return isAllSuccess;
	}

	function setBatchLimit(uint32 _batchLimit) public onlyOwner {
		batchLimit = _batchLimit;
	}
}
function batchTransfer(address[] _tos, uint256[] _values) public whenNotPaused returns (bool success) {
	require(_tos.length > 0);
	require(_values.length > 0);
	require(_tos.length == _values.length);
	require(_tos.length <= batchLimit);
	bool isAllSuccess = false;

	for (uint256 i = 0;i < _tos.length;i++) {
		isAllSuccess = super.transfer(_tos[i], _values[i]);
		require(isAllSuccess);
	}

	return isAllSuccess;
}

// batch send coins