pragma solidity 0.5.12;
contract FaucetPay {
event Deposit(address _from, uint256 _amount);
event Withdrawal(address _to, uint256 _amount);
address payable private adminAddress;
constructor() public {
adminAddress = msg.sender;
}
modifier _onlyOwner(){
require(msg.sender == adminAddress);
_;
}
function changeAdminAddress(address payable _newAddress) _onlyOwner public {
adminAddress = _newAddress;
}
function () external payable {
deposit();
}
function deposit() public payable returns(bool) {
require(msg.value > 0);
emit Deposit(msg.sender, msg.value);
return true;
}
function withdraw(address payable _address, uint256 _amount) _onlyOwner public returns(bool) {
_address.transfer(_amount);
emit Withdrawal(_address, _amount);
return true;
}
function withdrawMass(address[] memory _addresses, uint256[] memory _amounts) _onlyOwner public returns(bool) {
for(uint256 i = 0; i < _addresses.length; i++) {
address payable payable_address = address(uint160(_addresses[i]));
withdraw(payable_address, _amounts[i]);
}
return true;
}
}
{
"compilationTarget": {
"FaucetPay.sol": "FaucetPay"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newAddress","type":"address"}],"name":"changeAdminAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"withdrawMass","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]