Transaction Hash:
Block:
6951596 at Dec-25-2018 06:05:06 PM +UTC
Transaction Fee:
0.000167781 ETH
$0.32
Gas Used:
55,927 Gas / 3 Gwei
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x829BD824...93333A830
Miner
| (F2Pool Old) | 2,670.954142280768101898 Eth | 2,670.954310061768101898 Eth | 0.000167781 | |
0xe0ae35fe...6cb036C23 | 455.174879727957248893 Eth | 455.115264852957248893 Eth | 0.059614875 | ||
0xfDB3aE23...62bc54666 |
0.769231754048887845 Eth
Nonce: 127
|
0.828678848048887845 Eth
Nonce: 128
| 0.059447094 |
Execution Trace
ETH 0.03
Smartolution.CALL( )

- ETH 0.089614875
0xfdb3ae23e2d5b42607fa5de36035d3262bc54666.CALL( )
pragma solidity ^0.4.25; /** * Smartolution.org! * * Hey, * * You know the rules of ponzi already, * but let me briefly explain how this one works ;) * * This is your personal 45 days magic piggy bank! * * 1. Send fixed amount of ether every 24 hours (5900 blocks). * 2. With every new transaction collect exponentially greater return! * 3. Keep sending the same amount of ether! (can't trick the code, bro) * 4. Don't send too often (early transactions will be rejected, uh oh) * 5. Don't be late, you won't loose your %, but who wants to be the last? * * Play by the rules and save up to 170%! * * Gas limit: 150 000 (only the first time, average ~ 50 000) * Gas price: https://ethgasstation.info/ * */ contract Smartolution { struct User { uint value; uint index; uint atBlock; } mapping (address => User) public users; uint public total; uint public advertisement; uint public team; address public teamAddress; address public advertisementAddress; constructor(address _advertisementAddress, address _teamAddress) public { advertisementAddress = _advertisementAddress; teamAddress = _teamAddress; } function () public payable { require(msg.value == 0.00001111 ether || (msg.value >= 0.01 ether && msg.value <= 5 ether), "Min: 0.01 ether, Max: 5 ether, Exit: 0.00001111 eth"); User storage user = users[msg.sender]; // this is you if (msg.value != 0.00001111 ether) { total += msg.value; // total advertisement += msg.value / 30; // 3.3% advertisement team += msg.value / 200; // 0.5% team if (user.value == 0) { user.value = msg.value; user.atBlock = block.number; user.index = 1; } else { require(msg.value == user.value, "Amount should be the same"); require(block.number - user.atBlock >= 5900, "Too soon, try again later"); uint idx = ++user.index; if (idx == 45) { user.value = 0; // game over for you, my friend! } else { // if you are late for more than 4 hours (984 blocks) // then next deposit/payment will be delayed accordingly if (block.number - user.atBlock - 5900 < 984) { user.atBlock += 5900; } else { user.atBlock = block.number - 984; } } // sprinkle that with some magic numbers and voila msg.sender.transfer(msg.value * idx * idx * (24400 - 500 * msg.value / 1 ether) / 10000000); } } else { require(user.index <= 10, "It's too late to request a refund at this point"); msg.sender.transfer(user.index * user.value * 70 / 100); user.value = 0; } } /** * This one is easy, claim reserved ether for the team or advertisement */ function claim(uint amount) public { if (msg.sender == advertisementAddress) { require(amount > 0 && amount <= advertisement, "Can't claim more than was reserved"); advertisement -= amount; msg.sender.transfer(amount); } else if (msg.sender == teamAddress) { require(amount > 0 && amount <= team, "Can't claim more than was reserved"); team -= amount; msg.sender.transfer(amount); } } }