Transaction Hash:
Block:
6593877 at Oct-27-2018 03:27:34 PM +UTC
Transaction Fee:
0.00052272 ETH
$1.33
Gas Used:
47,520 Gas / 11 Gwei
Emitted Events:
61 |
Project424.LogPayment( _addr=[Sender] 0x51371e39bce591a1a91cd1eae5f874bf5022090d, _value=3443319662199081 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x36D57482...1CE624585 | |||||
0x51371E39...F5022090D |
0.00709 Eth
Nonce: 116
|
0.010010599662199081 Eth
Nonce: 117
| 0.002920599662199081 | ||
0x84A0d77c...010577051
Miner
| 118.79604730447433659 Eth | 118.79657002447433659 Eth | 0.00052272 | ||
0xbEa72B7d...16Ba2EDEf | (project424.us) | 445.160364511867435989 Eth | 445.156921192205236908 Eth | 0.003443319662199081 |
Execution Trace
Project424.CALL( )
-
0x36d57482f85bcb2b993d6a4652c56111ce624585.7aaa3470( )
-
0x36d57482f85bcb2b993d6a4652c56111ce624585.d573a003( )
-
0x36d57482f85bcb2b993d6a4652c56111ce624585.04ee65c0( )
-
0x36d57482f85bcb2b993d6a4652c56111ce624585.702f5e19( )
- ETH 0.003443319662199081
0x51371e39bce591a1a91cd1eae5f874bf5022090d.CALL( )
[Project424 (ln:151)]
withdraw[Project424 (ln:153)]
nextWave[Project424 (ln:180)]
LogNewWave[Project424 (ln:196)]
mul[Project424 (ln:184)]
div[Project424 (ln:184)]
sub[Project424 (ln:184)]
c[Project424 (ln:184)]
div[Project424 (ln:184)]
mul[Project424 (ln:184)]
d[Project424 (ln:184)]
getInterest[Project424 (ln:184)]
updateCheckpoint[Project424 (ln:185)]
transfer[Project424 (ln:188)]
LogPayment[Project424 (ln:189)]
invest[Project424 (ln:155)]
transfer[Project424 (ln:161)]
transfer[Project424 (ln:162)]
d[Project424 (ln:164)]
withdraw[Project424 (ln:165)]
nextWave[Project424 (ln:180)]
LogNewWave[Project424 (ln:196)]
mul[Project424 (ln:184)]
div[Project424 (ln:184)]
sub[Project424 (ln:184)]
c[Project424 (ln:184)]
div[Project424 (ln:184)]
mul[Project424 (ln:184)]
d[Project424 (ln:184)]
getInterest[Project424 (ln:184)]
updateCheckpoint[Project424 (ln:185)]
transfer[Project424 (ln:188)]
LogPayment[Project424 (ln:189)]
updateInfo[Project424 (ln:168)]
toReferrer[Project424 (ln:171)]
bytesToAddress[Project424 (ln:132)]
transfer[Project424 (ln:134)]
LogReferralInvestment[Project424 (ln:135)]
LogInvestment[Project424 (ln:174)]
pragma solidity ^0.4.24; /** * Website: www.project424.us * * Telegram: https://t.me/joinchat/HtqvCxCb_B0jVIJyq3Tdgg * * RECOMMENDED GAS LIMIT: 200000 * RECOMMENDED GAS PRICE: https://ethgasstation.info/ */ library SafeMath { function mul(uint256 _a, uint256 _b) internal pure returns (uint256) { if (_a == 0) { return 0; } uint256 c = _a * _b; require(c / _a == _b); return c; } function div(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b > 0); uint256 c = _a / _b; return c; } function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b <= _a); uint256 c = _a - _b; return c; } function add(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; require(c >= _a); return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } contract InvestorsStorage { address private owner; mapping (address => Investor) private investors; struct Investor { uint deposit; uint checkpoint; } constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function updateInfo(address _address, uint _value) external onlyOwner { investors[_address].deposit += _value; investors[_address].checkpoint = block.timestamp; } function updateCheckpoint(address _address) external onlyOwner { investors[_address].checkpoint = block.timestamp; } function d(address _address) external view onlyOwner returns(uint) { return investors[_address].deposit; } function c(address _address) external view onlyOwner returns(uint) { return investors[_address].checkpoint; } function getInterest(address _address) external view onlyOwner returns(uint) { if (investors[_address].deposit < 4240000000000000000) { return 424; } else { return 600; } } } contract Project424 { using SafeMath for uint; address public owner; address admin; address marketing; uint waveStartUp; uint nextPayDay; event LogInvestment(address indexed _addr, uint _value); event LogPayment(address indexed _addr, uint _value); event LogReferralInvestment(address indexed _referral, address indexed _referrer, uint _value); event LogNewWave(uint _waveStartUp); InvestorsStorage private x; modifier notOnPause() { require(waveStartUp <= block.timestamp); _; } function renounceOwnership() external { require(msg.sender == owner); owner = 0x0; } function bytesToAddress(bytes _source) internal pure returns(address parsedReferrer) { assembly { parsedReferrer := mload(add(_source,0x14)) } return parsedReferrer; } function toReferrer(uint _value) internal { address _referrer = bytesToAddress(bytes(msg.data)); if (_referrer != msg.sender) { _referrer.transfer(_value / 20); emit LogReferralInvestment(msg.sender, _referrer, _value); } } constructor(address _admin, address _marketing) public { owner = msg.sender; admin = _admin; marketing = _marketing; x = new InvestorsStorage(); } function getInfo(address _address) external view returns(uint deposit, uint amountToWithdraw) { deposit = x.d(_address); amountToWithdraw = block.timestamp.sub(x.c(_address)).div(1 days).mul(x.d(_address).mul(x.getInterest(_address)).div(10000)); } function() external payable { if (msg.value == 0) { withdraw(); } else { invest(); } } function invest() notOnPause public payable { admin.transfer(msg.value * 5 / 100); marketing.transfer(msg.value / 10); if (x.d(msg.sender) > 0) { withdraw(); } x.updateInfo(msg.sender, msg.value); if (msg.data.length == 20) { toReferrer(msg.value); } emit LogInvestment(msg.sender, msg.value); } function withdraw() notOnPause public { if (address(this).balance < 100000000000000000) { nextWave(); return; } uint _payout = block.timestamp.sub(x.c(msg.sender)).div(1 days).mul(x.d(msg.sender).mul(x.getInterest(msg.sender)).div(10000)); x.updateCheckpoint(msg.sender); if (_payout > 0) { msg.sender.transfer(_payout); emit LogPayment(msg.sender, _payout); } } function nextWave() private { x = new InvestorsStorage(); waveStartUp = block.timestamp + 7 days; emit LogNewWave(waveStartUp); } }