pragma solidity ^0.4.17; contract Lottery { address public manager; address[] public players; uint256[] private amount; constructor () public { manager = msg.sender; } function enter() public payable { require(msg.value > 0.01 ether ); players.push(msg.sender); amount.push(msg.value); } function getAllPlayers() public view returns(address[]) { return players; } function random () private view returns(uint) { return uint(keccak256(block.difficulty,now,players)); } function pickWinner () public restricted { // uint index = random() % players.length ; players[index].transfer(this.balance ); players = new address[](0); } modifier restricted () { require(msg.sender == manager); _; } function cancelLottery () public restricted { for (uint i=0; i<amount.length; i++){ players[i].transfer(amount[i]); } } }
0.4.17