文件 1 的 1:TaxManFarmer.sol
pragma solidity ^0.4.18;
interface CornFarm
{
function buyObject(address _beneficiary) public payable;
}
interface Corn
{
function transfer(address to, uint256 value) public returns (bool);
}
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
contract TaxManFarmer {
using SafeMath for uint256;
bool private reentrancy_lock = false;
address public shop = 0x0e5c8681609560F4E48F6a7d95379e9b68A5B4F3;
address public object = 0xAD5017098E876a277885Ae4a2eD3d9d6c7d3d38E;
address public taxMan = 0xd5048F05Ed7185821C999e3e077A3d1baed0952c;
mapping(address => uint256) public workDone;
modifier nonReentrant() {
require(!reentrancy_lock);
reentrancy_lock = true;
_;
reentrancy_lock = false;
}
function pepFarm() nonReentrant external {
for (uint8 i = 0; i < 100; i++) {
CornFarm(shop).buyObject(this);
}
workDone[msg.sender] = workDone[msg.sender].add(uint256(95 ether));
workDone[taxMan] = workDone[taxMan].add(uint256(5 ether));
}
function reapFarm() nonReentrant external {
require(workDone[msg.sender] > 0);
Corn(object).transfer(msg.sender, workDone[msg.sender]);
Corn(object).transfer(taxMan, workDone[taxMan]);
workDone[msg.sender] = 0;
workDone[taxMan] = 0;
}
}
{
"compilationTarget": {
"TaxManFarmer.sol": "TaxManFarmer"
},
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}