Transaction Hash:
Block:
1381477 at Apr-22-2016 05:44:11 AM +UTC
Transaction Fee:
0.00243484 ETH
$6.14
Gas Used:
121,742 Gas / 20 Gwei
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x4Bb96091...F90f81B01
Miner
| (Ethpool 2) | 104.091847656885990666 Eth | 104.094282496885990666 Eth | 0.00243484 | |
0x562236C0...420ca1716 |
2,728.450289276572311299 Eth
Nonce: 132
|
2,727.497854436572311299 Eth
Nonce: 133
| 0.95243484 | ||
0x5AD48D89...1a0aac29c | 99.205903335883685932 Eth | 99.255903335883685932 Eth | 0.05 | ||
0xB3e34298...7F44C6015 | 2.32716819000000001 Eth | 3.42716819000000001 Eth | 1.1 | ||
0xF4571755...008167Ae3 | (PonziGovernmental) | 1,099.0668 Eth | 1,098.8668 Eth | 0.2 |
Execution Trace
ETH 1
Government.lendGovernmentMoney( buddy=0x562236C0D4FD95E26c53aC56b7d118E420ca1716 ) => ( True )
- ETH 0.05
0x5ad48d8917b5e3dac087f9f7bb34cfe1a0aac29c.CALL( )
- ETH 0.05
0x562236c0d4fd95e26c53ac56b7d118e420ca1716.CALL( )
- ETH 1.1
0xb3e3429824d31ba87edea73fac823a67f44c6015.CALL( )
lendGovernmentMoney[Government (ln:22)]
contract Government { // Global Variables uint32 public lastCreditorPayedOut; uint public lastTimeOfNewCredit; uint public profitFromCrash; address[] public creditorAddresses; uint[] public creditorAmounts; address public corruptElite; mapping (address => uint) buddies; uint constant TWELVE_HOURS = 43200; uint8 public round; function Government() { // The corrupt elite establishes a new government // this is the commitment of the corrupt Elite - everything that can not be saved from a crash profitFromCrash = msg.value; corruptElite = msg.sender; lastTimeOfNewCredit = block.timestamp; } function lendGovernmentMoney(address buddy) returns (bool) { uint amount = msg.value; // check if the system already broke down. If for 12h no new creditor gives new credit to the system it will brake down. // 12h are on average = 60*60*12/12.5 = 3456 if (lastTimeOfNewCredit + TWELVE_HOURS < block.timestamp) { // Return money to sender msg.sender.send(amount); // Sends all contract money to the last creditor creditorAddresses[creditorAddresses.length - 1].send(profitFromCrash); corruptElite.send(this.balance); // Reset contract state lastCreditorPayedOut = 0; lastTimeOfNewCredit = block.timestamp; profitFromCrash = 0; creditorAddresses = new address[](0); creditorAmounts = new uint[](0); round += 1; return false; } else { // the system needs to collect at least 1% of the profit from a crash to stay alive if (amount >= 10 ** 18) { // the System has received fresh money, it will survive at leat 12h more lastTimeOfNewCredit = block.timestamp; // register the new creditor and his amount with 10% interest rate creditorAddresses.push(msg.sender); creditorAmounts.push(amount * 110 / 100); // now the money is distributed // first the corrupt elite grabs 5% - thieves! corruptElite.send(amount * 5/100); // 5% are going into the economy (they will increase the value for the person seeing the crash comming) if (profitFromCrash < 10000 * 10**18) { profitFromCrash += amount * 5/100; } // if you have a buddy in the government (and he is in the creditor list) he can get 5% of your credits. // Make a deal with him. if(buddies[buddy] >= amount) { buddy.send(amount * 5/100); } buddies[msg.sender] += amount * 110 / 100; // 90% of the money will be used to pay out old creditors if (creditorAmounts[lastCreditorPayedOut] <= address(this).balance - profitFromCrash) { creditorAddresses[lastCreditorPayedOut].send(creditorAmounts[lastCreditorPayedOut]); buddies[creditorAddresses[lastCreditorPayedOut]] -= creditorAmounts[lastCreditorPayedOut]; lastCreditorPayedOut += 1; } return true; } else { msg.sender.send(amount); return false; } } } // fallback function function() { lendGovernmentMoney(0); } function totalDebt() returns (uint debt) { for(uint i=lastCreditorPayedOut; i<creditorAmounts.length; i++){ debt += creditorAmounts[i]; } } function totalPayedOut() returns (uint payout) { for(uint i=0; i<lastCreditorPayedOut; i++){ payout += creditorAmounts[i]; } } // better don't do it (unless you are the corrupt elite and you want to establish trust in the system) function investInTheSystem() { profitFromCrash += msg.value; } // From time to time the corrupt elite inherits it's power to the next generation function inheritToNextGeneration(address nextGeneration) { if (msg.sender == corruptElite) { corruptElite = nextGeneration; } } function getCreditorAddresses() returns (address[]) { return creditorAddresses; } function getCreditorAmounts() returns (uint[]) { return creditorAmounts; } }