Sponsored:   Color - Revolutionizing the Dapp Ecosystem, Bounty & Airdrop, Get 240,000 COL NOW!
Contract Overview | E4ROWToken
Balance: 0.234072600138177401 Ether
Ether Value: $69.29 (@ $296.03/ETH)
Transactions: 699 txns
Token Tracker: E4ROW (E4ROW)
 Latest 25 txns from a total Of 699 transactions

TxHash Age From To Value [TxFee]
0x7b9184a72eb9a7b50ceeaf30f36748c93f2684af6380e479049543cf6ed4f71a14 days 19 hrs ago0xe258d753a865f4dee0562ce335e32cb22ef513b9  IN   E4ROWToken0 Ether0.00158445
0x11cc96f71de6e68b975af520b050875b149c54592079af67d97652bf810c8bc660 days 19 hrs ago0x76550200bdb836b534f4d631064103ea8b7feaa0  IN   E4ROWToken0 Ether0.000239336
0x93d3a498f7a842a2995746f4ed130459238f04571cefb9c864a98a1369a82ad466 days 11 hrs ago0xa2dffc197986ec9bf77bd13511d9a2563b9acef3  IN   E4ROWToken0 Ether0.00018108
0x0309a27419d191bd125ace0ea0a797d53d938200a9b24ed1287eceb64307227873 days 7 hrs ago0xd1e5e5265aac4f6f4b602a1113f3bc377784b38e  IN   E4ROWToken0 Ether0.00072432
0xc9bf862192c71fc11655ca4b01489c8d9221e86c5ff6406b59db3331bf3d9b6573 days 7 hrs ago0xe3c0445173c7ad2039461e8c8c8f3133f54ba2c1  IN   E4ROWToken0 Ether0.000906414
0x1acfe71fea2dee79e8b2c3c0372da27b3c4ea93e64064a82275aa806b3ba4f4897 days 15 hrs ago0xff63d4afdca1da087f24da11d0dd9aed3c64d5e4  IN   E4ROWToken0 Ether0.003692997
0xd18ae3225ebeddd163142b3302850ea5690adcda1dad8341e9d627764c56fa8a124 days 16 hrs ago0x5d72e3a257114ec0422813222d57d16c9a1b80e8  IN   E4ROWToken0 Ether0.00009054
0x867a87623eea8cd825686c84006e1c9d5eb224ac668fe093945b935e84268940134 days 9 hrs ago0xf22b8f091beffea7afa7b931488ffdc298055432  IN   E4ROWToken0 Ether0.000179592
0x8d0dff473c0f2b98ff974078fe278cb8872b04b2c96f52413fdc4fa95419dd69134 days 9 hrs ago0x7c6003edeb99886e8d65b5a3af81cd82962266f6  IN   E4ROWToken0 Ether0.00680345
0x90465dd0efd28c13a44d67e78f39d57097f489bfb85da515c854577e0bbde44b138 days 5 hrs ago0x6e4c4ed7527e8694cb15970fbba1bc9bae748aa8  IN   E4ROWToken0 Ether0.00004527
0x246b7d6e17840cb938aa5a319a4a399d3d36bf3b8e24317d465e641b9138a53b147 days 1 hr ago0xdaf830a124db4b5492952c29611f4d359ee27a35  IN   E4ROWToken0 Ether0.000361648
0xd59501d472331ce360f1ea78fe783c2eac9fa2d2ff68081613d7f1dfa8d42e62150 days 16 hrs ago0x60573d1a8861d311916467ccb4c5b6f8c618d745  IN   E4ROWToken0 Ether0.000179592
0xd56389f60bfa64be807da5b0cae644a56792d096b7d2ef3ea7d4551f5ddacfb1150 days 16 hrs ago0x60573d1a8861d311916467ccb4c5b6f8c618d745  IN   E4ROWToken0 Ether0.000299336
0x53abb3d63c2a0238857c7e561e98ae306bbaf97cf765d0b7aa23d424b7c91485204 days 13 hrs ago0x73aa55afb6f0258b2e8b723b7598eb3b3a8312ed  IN   E4ROWToken0 Ether0.00018108
0xeb249eff04222c6b01af2ad04c811b73af2e9938a92819c110143e0842e4f74a204 days 13 hrs ago0xea05bb689aa77d2257ebd2b12d8ff5435100b13a  IN   E4ROWToken0 Ether0.001257858
0xefead65492e02f3958cfbbe083fc7e7e97e761cd8c313e071bf66a1042e84f61208 days 5 hrs ago0x759211feed7744efe6edf3e4251b66dbee4e7059  IN   E4ROWToken0 Ether0.005578829
0x328886ccaa1116c95b780679921e1e2061a6e486ef95a5efe127e09593790016211 days 19 hrs ago0x8b5804a49289448e75d464426f08e51119445e13  IN   E4ROWToken0 Ether0.0018108
0x314d281a003a51ee7559e88d64a94efafe33eb877d3486145814944d25b7105a216 days 23 hrs ago0x97975f7751ed766832eb416df7fcd79fc840795d  IN   E4ROWToken0 Ether0.012110141
0x988456e5f5286d584b16c1ac224fb6a59538faefda6058b4c63aaddf7319a02e216 days 23 hrs ago0x97975f7751ed766832eb416df7fcd79fc840795d  IN   E4ROWToken0 Ether0.004634141
0xe40417d26e85d596ef8ee1edcf82d5a1e37ff59d36ee526918aa1ecc01231c82222 days 5 hrs ago0x219c6fc2b564fea0a8868a4e300174a15c7f1589  IN   E4ROWToken0.15170322 Ether0.00042
0x9c48f6cf6a2fc5fb229c578a62e62a8786a614f8133744dea35c687b0c34469d223 days 12 hrs ago0x8efdb5ee103c2295dab1410b4e3d1ed7a91584d4  IN   E4ROWToken0 Ether0.00140337
0xf4cb4f7c568f1da57ad8706d43c4584aa4fc0a27ffc095c7396809564fd1c346224 days 10 hrs ago0x996130491d7695d6531ae8753ae5a2f96cfdc2df  IN   E4ROWToken0 Ether0.00150941
0x72a142a71b07039486cdc15afac049ae969e4ee2e30afe67582fda859bca5404224 days 20 hrs ago0x2a23b88ab2fc709894596b48181fd8932b0cb9b9  IN   E4ROWToken0 Ether0.00408207
0x07f4a9ba8a08afce6eab1897b6e7c86bb251f91c94fe90e657950872a6951536225 days 5 hrs ago0x8efdb5ee103c2295dab1410b4e3d1ed7a91584d4  IN   E4ROWToken0 Ether0.001614139
0xfa7dc8617f40eda2030709ae09e11a5df7fd5a79f7cbbdcf1b9c067284b26230225 days 5 hrs ago0x8efdb5ee103c2295dab1410b4e3d1ed7a91584d4  IN   E4ROWToken0 Ether0.005916567
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0xc41d7c392e5f166b6e794a9edadfaea9596c310fbd7c82f20e22a2628448cf135492726118 days 2 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005397 Ether
0xb914048d979b7a15ca26060da22e78638ae70618d0971b24b9efe0eb935e54655487904118 days 22 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005397 Ether
0x01974f020a3b3def44018e45c1749870698feb91295b85c73c1661b41491a0255483020119 days 18 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005124 Ether
0x045465a9046be760cbcb074c4bea742b05803d6850f830086c2d033c2c5949f15207362166 days 4 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.00525 Ether
0x429066ea435131a761f78067403e38f838b1e9260859c5bf25510d40752742cf5140684177 days 12 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005082 Ether
0x869720fbbdfe673dc7cc3c731a3a869a0e16a8188692d3ade53934e5e0656f115089658186 days 3 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005271 Ether
0xf0df3e1893713a623ec18550e92175bb5f74b88863fab3dc59615fc62de5912f5010678199 days 10 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005523 Ether
0x300b468b630223bf76747d388f1ab785872176627f80178e9cc5afec885137f94997939201 days 14 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005397 Ether
0x988456e5f5286d584b16c1ac224fb6a59538faefda6058b4c63aaddf7319a02e4908838216 days 23 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x97975f7751ed766832eb416df7fcd79fc840795d0.00008558538702152 Ether
0x07f4a9ba8a08afce6eab1897b6e7c86bb251f91c94fe90e657950872a69515364863901225 days 5 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x8efdb5ee103c2295dab1410b4e3d1ed7a91584d40.00003640385282992 Ether
0x7e7c407786d99e33ed4a3a12d245888d51d51035df358938354089d09aa18eea4846102228 days 12 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x996130491d7695d6531ae8753ae5a2f96cfdc2df0.000918778549157584 Ether
0x236de593ef8c45dc3f4a12d8995be725d9f90b5fbae5ba6914ebef87e6cea8294830947231 days 2 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x9560e8ac6718a6a1cdcff189d603c9063e413da60.000614304061110726 Ether
0x8b022796ceab245b415ecca8d799cdae2e6fb80791e898d5058ac80b55842ec04828619231 days 12 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0xf0ca603fdf1ac5764253fe3b9751bec533f6527f0.000333764317945158 Ether
0x5a3c1d28299bb98b4527efbe13ba823a778edbae4dbb82cff59985054d0b5a144822408232 days 13 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x81e2c0e0d50c520478245b9a9a4b645fa062a3080.0001820192641496 Ether
0x1bc6b55f81771dbb0047aa71b85369062c31647275bb93e988aa063b200dcf494822342232 days 13 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005019 Ether
0x8d84cd6ee6e9290a3cd61a0f4089c7777462a26aa632b8eacca3875c695a76934739381246 days 20 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.001 Ether
0xb3f77d323de065b07a9366cf9c2f5bbec3cf3e75debcdd3b8aa65a88b8823c1d4651898261 days 23 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x5e2038b9167150275af02f170569dac0fcbdb8b60.00001383859771017 Ether
0x449ee33c626085eac496f3b791d0f2f290a6afe5bb6f2ad1acdbf2cebb8bf2394644888263 days 3 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0xa075ae734be14133e53043a6c14e2b6be2df15b70.000035359250261367 Ether
0x6b6c79a01f38a3cf2cce34655427740f9c7ce3741928fca06f128f5108cce4b24634003264 days 21 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0xaf2eb959de0e5728952059a5bba495dd37e744d10.000020161749394655 Ether
0xd16c02cb51cf13801e468c795f919ad9d8dceea05b4f91b9de8a88a88c6f30b34630405265 days 12 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005208 Ether
0x09fe92898e8c9c2783fee02d075371383e2c524555a7342da695c619bb6b150a4629367265 days 16 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x7529a59623873cbcd2eea00ef2c942b4541f71280.001231526553280111 Ether
0x956f6d76c294c3f212e0925f375f5699d6290e128b94224792d883cb42eb9a7a4627602265 days 22 hrs ago0xce5c603c78d047ef43032e96b5b785324f753a4f0xd936e10ae73418d41b633fc952f0812f3bd512ad0.000103366192297466 Ether
0x49b68ad3528b1d7908c0f9825dfb1ee67498769100b6f0eaac8666967f32d2b24571483275 days 3 mins ago0xce5c603c78d047ef43032e96b5b785324f753a4f0xe0bff04fd52690162a997d6ee6bde4e8b5e78be00.000201894481105866 Ether
0xfc99474dfec4a0f9123e2f4e86d10c32fad5261a619da8606060fe62bc9495844540093280 days 1 hr ago0xce5c603c78d047ef43032e96b5b785324f753a4f0x5aae0865d2aac5162c8b24e0be929ad17bf2340e0.001722769871624435 Ether
0x8ecc304918d031867f43a17c4dd2aca04b309a5acf0e6233e026f554eb0189c04522370282 days 21 hrs ago0xb56c725467c7eec851b1a4a4222d930932b04e890xce5c603c78d047ef43032e96b5b785324f753a4f0.005103 Ether
[ Download CSV Export  ] 
Contract Name: E4Lava
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.11;                                                                                                           
                                                                                                                                   
// VERSION LAVA(J)                                                                                                                 
                                                                                                                                   
                                                                                                                                   
// --------------------------                                                                                                      
// here's how this works:                                                                                                          
// the current amount of dividends due to each token-holder's  is:                                                                 
//   previous_due + [ p(x) * t(x)/N ] + [ p(x+1) * t(x+1)/N ] + ...                                                                
//   where p(x) is the x'th payment received by the contract                                                                       
//         t(x) is the number of tokens held by the token-holder at the time of p(x)                                               
//         N    is the total number of tokens, which never changes                                                                 
//                                                                                                                                 
// assume that t(x) takes on 3 values, t(a), t(b) and t(c), during periods a, b, and c. then:
// factoring:
//   current_due = { (t(a) * [p(x) + p(x+1)] ...) +
//                   (t(b) * [p(y) + p(y+1)] ...) +
//                   (t(c) * [p(z) + p(z+1)] ...) } / N
//
// or
//
//   current_due = { (t(a) * period_a_fees) +
//                   (t(b) * period_b_fees) +
//                   (t(c) * period_c_fees) } / N
//
// if we designate current_due * N as current-points, then
//
//   currentPoints = {  (t(a) * period_a_fees) +
//                      (t(b) * period_b_fees) +
//                      (t(c) * period_c_fees) }
//
// or more succictly, if we recompute current points before a token-holder's number of
// tokens, T, is about to change:
//
//   currentPoints = previous_points + (T * current-period-fees)
//
// when we want to do a payout, we'll calculate:
//  current_due = current-points / N
//
// we'll keep track of a token-holder's current-period-points, which is:
//   T * current-period-fees
// by taking a snapshot of fees collected exactly when the current period began; that is, the when the
// number of tokens last changed. that is, we keep a running count of total fees received
//
//   TotalFeesReceived = p(x) + p(x+1) + p(x+2)
//
// (which happily is the same for all token holders) then, before any token holder changes their number of
// tokens we compute (for that token holder):
//
//  function calcCurPointsForAcct(acct) {
//    currentPoints[acct] += (TotalFeesReceived - lastSnapshot[acct]) * T[acct]
//    lastSnapshot[acct] = TotalFeesReceived
//  }
//
// in the withdraw fcn, all we need is:
//
//  function withdraw(acct) {
//    calcCurPointsForAcct(acct);
//    current_amount_due = currentPoints[acct] / N
//    currentPoints[acct] = 0;
//    send(current_amount_due);
//  }
//
//
// special provisions for transfers from the old e4row contract (token-split transfers)
// -------------------------------------------------------------------------------------
// normally when a new acct is created, eg cuz tokens are transferred from one acct to another, we first call
// calcCurPointsForAcct(acct) on the old acct; on the new acct we set:
//  currentPoints[acct] = 0;
//  lastSnapshot[acct] = TotalFeesReceived;
//
// this starts the new account with no credits for any dividends that have been collected so far, which is what
// you would generally want. however, there is a case in which tokens are transferred from the old e4row contract.
// in that case the tokens were reserved on this contract all along, and they earn dividends even before they are
// assigned to an account. so for token-split transfers:
//  currentPoints[acct] = 0;
//  lastSnapshot[acct] = 0;
//
// then immediately call calcCurPointsForAcct(acct) for the new token-split account. he will get credit
// for all the accumulated points, from the beginning of time.
//
// --------------------------


// Abstract contract for the full ERC 20 Token standard
// https://github.com/ethereum/EIPs/issues/20

// ---------------------------------
// ABSTRACT standard token class
// ---------------------------------
contract Token {
    function totalSupply() constant returns (uint256 supply);
    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}


// --------------------------
//  E4RowRewards - abstract e4 dividend contract
// --------------------------
contract E4LavaRewards
{
        function checkDividends(address _addr) constant returns(uint _amount);
        function withdrawDividends() public returns (uint namount);
        function transferDividends(address _to) returns (bool success);
        function getAccountInfo(address _addr) constant returns(uint _tokens, uint _snapshot, uint _points);

}

// --------------------------
//  E4LavaOptin - abstract e4 optin contract
// --------------------------
contract E4LavaOptIn
{
        function optInFromClassic() public;
}


// --------------------------
//  E4ROW (LAVA) - token contract
// --------------------------
contract E4Lava is Token, E4LavaRewards, E4LavaOptIn {
        event StatEvent(string msg);
        event StatEventI(string msg, uint val);

        enum SettingStateValue  {debug, lockedRelease}

        struct tokenAccount {
                bool alloced;       // flag to ascert prior allocation
                uint tokens;        // num tokens currently held in this acct
                uint currentPoints; // updated before token balance changes, or before a withdrawal. credit for owning tokens
                uint lastSnapshot;  // snapshot of global TotalPoints, last time we updated this acct's currentPoints
        }

// -----------------------------
//  data storage
// ----------------------------------------
        uint constant NumOrigTokens         = 5762;   // number of old tokens, from original token contract
        uint constant NewTokensPerOrigToken = 100000; // how many new tokens are created for each from original token
        uint constant NewTokenSupply        = 5762 * 100000;
        uint public numToksSwitchedOver;              // count old tokens that have been converted
        uint public holdoverBalance;                  // funds received, but not yet distributed
        uint public TotalFeesReceived;                // total fees received from partner contract(s)

        address public developers;                    // developers token holding address
        address public owner;                         // deployer executor
        address public oldE4;                         // addr of old e4 token contract
        address public oldE4RecycleBin;               // addr to transfer old tokens

        uint public decimals;
        string public symbol;

        mapping (address => tokenAccount) holderAccounts;          // who holds how many tokens (high two bytes contain curPayId)
        mapping (uint => address) holderIndexes;                   // for iteration thru holder
        mapping (address => mapping (address => uint256)) allowed; // approvals
        uint public numAccounts;

        uint public payoutThreshold;                  // no withdrawals less than this amount, to avoid remainders
        uint public rwGas;                            // reward gas
        uint public optInXferGas;                     // gas used when optInFromClassic calls xfer on old contract
        uint public optInFcnMinGas;                   // gas we need for the optInFromClassic fcn, *excluding* optInXferGas
        uint public vestTime = 1525219201;            // 1 year past sale vest developer tokens

        SettingStateValue public settingsState;


        // --------------------
        // contract constructor
        // --------------------
        function E4Lava()
        {
                owner = msg.sender;
                developers = msg.sender;
                decimals = 2;
                symbol = "E4ROW";
        }

        // -----------------------------------
        // use this to reset everything, will never be called after lockRelease
        // -----------------------------------
        function applySettings(SettingStateValue qState, uint _threshold, uint _rw, uint _optXferGas, uint _optFcnGas )
        {
                if (msg.sender != owner)
                        return;

                // these settings are permanently tweakable for performance adjustments
                payoutThreshold = _threshold;
                rwGas = _rw;
                optInXferGas = _optXferGas;
                optInFcnMinGas = _optFcnGas;

                // this first test checks if already locked
                if (settingsState == SettingStateValue.lockedRelease)
                        return;

                settingsState = qState;

                // this second test allows locking without changing other permanent settings
                // WARNING, MAKE SURE YOUR'RE HAPPY WITH ALL SETTINGS
                // BEFORE LOCKING

                if (qState == SettingStateValue.lockedRelease) {
                        StatEvent("Locking!");
                        return;
                }

                // zero out all token holders.
                // leave alloced on, leave num accounts
                // cant delete them anyways

                for (uint i = 0; i < numAccounts; i++ ) {
                        address a = holderIndexes[i];
                        if (a != address(0)) {
                                holderAccounts[a].tokens = 0;
                                holderAccounts[a].currentPoints = 0;
                                holderAccounts[a].lastSnapshot = 0;
                        }
                }

                numToksSwitchedOver = 0;
                holdoverBalance = 0;
                TotalFeesReceived = 0;

                if (this.balance > 0) {
                        if (!owner.call.gas(rwGas).value(this.balance)())
                                StatEvent("ERROR!");
                }
                StatEvent("ok");

        }


        // ---------------------------------------------------
        // allocate a new account by setting alloc to true
        // add holder index, bump the num accounts
        // ---------------------------------------------------
        function addAccount(address _addr) internal  {
                holderAccounts[_addr].alloced = true;
                holderAccounts[_addr].tokens = 0;
                holderAccounts[_addr].currentPoints = 0;
                holderAccounts[_addr].lastSnapshot = TotalFeesReceived;
                holderIndexes[numAccounts++] = _addr;
        }


// --------------------------------------
// BEGIN ERC-20 from StandardToken
// --------------------------------------

        function totalSupply() constant returns (uint256 supply)
        {
                supply = NewTokenSupply;
        }

        // ----------------------------
        // sender transfers tokens to a new acct
        // do not use this fcn for a token-split transfer from the old token contract!
        // ----------------------------
        function transfer(address _to, uint256 _value) returns (bool success)
        {
                if ((msg.sender == developers)
                        &&  (now < vestTime)) {
                        //statEvent("Tokens not yet vested.");
                        return false;
                }

                //Default assumes totalSupply can't be over max (2^256 - 1).
                //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
                //Replace the if with this one instead.
                //if (holderAccounts[msg.sender].tokens >= _value && balances[_to] + _value > holderAccounts[_to]) {
                if (holderAccounts[msg.sender].tokens >= _value && _value > 0) {
                    //first credit sender with points accrued so far.. must do this before number of held tokens changes
                    calcCurPointsForAcct(msg.sender);
                    holderAccounts[msg.sender].tokens -= _value;

                    if (!holderAccounts[_to].alloced) {
                        addAccount(_to);
                    }
                    //credit destination acct with points accrued so far.. must do this before number of held tokens changes
                    calcCurPointsForAcct(_to);
                    holderAccounts[_to].tokens += _value;

                    Transfer(msg.sender, _to, _value);
                    return true;
                } else {
                    return false;
                }
        }


        function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
                if ((_from == developers)
                        &&  (now < vestTime)) {
                        //statEvent("Tokens not yet vested.");
                        return false;
                }

                //same as above. Replace this line with the following if you want to protect against wrapping uints.
                //if (holderAccounts[_from].tokens >= _value && allowed[_from][msg.sender] >= _value && holderAccounts[_to].tokens + _value > holderAccounts[_to].tokens) {
                if (holderAccounts[_from].tokens >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {

                    calcCurPointsForAcct(_from);
                    holderAccounts[_from].tokens -= _value;

                    if (!holderAccounts[_to].alloced) {
                        addAccount(_to);
                    }
                    //credit destination acct with points accrued so far.. must do this before number of held tokens changes
                    calcCurPointsForAcct(_to);
                    holderAccounts[_to].tokens += _value;

                    allowed[_from][msg.sender] -= _value;
                    Transfer(_from, _to, _value);
                    return true;
                } else {
                    return false;
                }
        }


        function balanceOf(address _owner) constant returns (uint256 balance) {
                balance = holderAccounts[_owner].tokens;
        }

        function approve(address _spender, uint256 _value) returns (bool success) {
                allowed[msg.sender][_spender] = _value;
                Approval(msg.sender, _spender, _value);
                return true;
        }

        function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
                return allowed[_owner][_spender];
        }
// ----------------------------------
// END ERC20
// ----------------------------------

        // ----------------------------
        // calc current points for a token holder; that is, points that are due to this token holder for all dividends
        // received by the contract during the current "period". the period began the last time this fcn was called, at which
        // time we updated the account's snapshot of the running point count, TotalFeesReceived. during the period the account's
        // number of tokens must not have changed. so always call this fcn before changing the number of tokens.
        // ----------------------------
        function calcCurPointsForAcct(address _acct) internal {
              holderAccounts[_acct].currentPoints += (TotalFeesReceived - holderAccounts[_acct].lastSnapshot) * holderAccounts[_acct].tokens;
              holderAccounts[_acct].lastSnapshot = TotalFeesReceived;
        }


        // ---------------------------
        // accept payment from a partner contract
        // funds sent here are added to TotalFeesReceived
        // WARNING! DO NOT CALL THIS FUNCTION LEST YOU LOSE YOUR MONEY
        // ---------------------------
        function () payable {
                holdoverBalance += msg.value;
                TotalFeesReceived += msg.value;
                StatEventI("Payment", msg.value);
        }

        // ---------------------------
        // one never knows if this will come in handy.
        // ---------------------------
        function blackHole() payable {
                StatEventI("adjusted", msg.value);
        }

        // ----------------------------
        // sender withdraw entire rewards/dividends
        // ----------------------------
        function withdrawDividends() public returns (uint _amount)
        {
                calcCurPointsForAcct(msg.sender);

                _amount = holderAccounts[msg.sender].currentPoints / NewTokenSupply;
                if (_amount <= payoutThreshold) {
                        StatEventI("low Balance", _amount);
                        return;
                } else {
                        if ((msg.sender == developers)
                                &&  (now < vestTime)) {
                                StatEvent("Tokens not yet vested.");
                                _amount = 0;
                                return;
                        }

                        uint _pointsUsed = _amount * NewTokenSupply;
                        holderAccounts[msg.sender].currentPoints -= _pointsUsed;
                        holdoverBalance -= _amount;
                        if (!msg.sender.call.gas(rwGas).value(_amount)())
                                throw;
                }
        }

        // ----------------------------
        // allow sender to transfer dividends
        // ----------------------------
        function transferDividends(address _to) returns (bool success)
        {
                if ((msg.sender == developers)
                        &&  (now < vestTime)) {
                        //statEvent("Tokens not yet vested.");
                        return false;
                }
                calcCurPointsForAcct(msg.sender);
                if (holderAccounts[msg.sender].currentPoints == 0) {
                        StatEvent("Zero balance");
                        return false;
                }
                if (!holderAccounts[_to].alloced) {
                        addAccount(_to);
                }
                calcCurPointsForAcct(_to);
                holderAccounts[_to].currentPoints += holderAccounts[msg.sender].currentPoints;
                holderAccounts[msg.sender].currentPoints = 0;
                StatEvent("Trasnfered Dividends");
                return true;
        }



        // ----------------------------
        // set gas for operations
        // ----------------------------
        function setOpGas(uint _rw, uint _optXferGas, uint _optFcnGas)
        {
                if (msg.sender != owner && msg.sender != developers) {
                        //StatEvent("only owner calls");
                        return;
                } else {
                        rwGas = _rw;
                        optInXferGas = _optXferGas;
                        optInFcnMinGas = _optFcnGas;
                }
        }


        // ----------------------------
        // check rewards.  pass in address of token holder
        // ----------------------------
        function checkDividends(address _addr) constant returns(uint _amount)
        {
                if (holderAccounts[_addr].alloced) {
                   //don't call calcCurPointsForAcct here, cuz this is a constant fcn
                   uint _currentPoints = holderAccounts[_addr].currentPoints +
                        ((TotalFeesReceived - holderAccounts[_addr].lastSnapshot) * holderAccounts[_addr].tokens);
                   _amount = _currentPoints / NewTokenSupply;

                // low balance? let him see it -Etansky
                  // if (_amount <= payoutThreshold) {
                  //    _amount = 0;
                  // }

                }
        }



        // ----------------------------
        // swap executor
        // ----------------------------
        function changeOwner(address _addr)
        {
                if (msg.sender != owner
                        || settingsState == SettingStateValue.lockedRelease)
                         throw;
                owner = _addr;
        }

        // ----------------------------
        // set developers account
        // ----------------------------
        function setDeveloper(address _addr)
        {
                if (msg.sender != owner
                        || settingsState == SettingStateValue.lockedRelease)
                         throw;
                developers = _addr;
        }

        // ----------------------------
        // set oldE4 Addresses
        // ----------------------------
        function setOldE4(address _oldE4, address _oldE4Recyle)
        {
                if (msg.sender != owner
                        || settingsState == SettingStateValue.lockedRelease)
                         throw;
                oldE4 = _oldE4;
                oldE4RecycleBin = _oldE4Recyle;
        }

        // ----------------------------
        // get account info
        // ----------------------------
        function getAccountInfo(address _addr) constant returns(uint _tokens, uint _snapshot, uint _points)
        {
                _tokens = holderAccounts[_addr].tokens;
                _snapshot = holderAccounts[_addr].lastSnapshot;
                _points = holderAccounts[_addr].currentPoints;
        }


        // ----------------------------
        // DEBUG ONLY - end this contract, suicide to developers
        // ----------------------------
        function haraKiri()
        {
                if (settingsState != SettingStateValue.debug)
                        throw;
                if (msg.sender != owner)
                         throw;
                suicide(developers);
        }


        // ----------------------------
        // OPT IN FROM CLASSIC.
        // All old token holders can opt into this new contract by calling this function.
        // This "transferFrom"s tokens from the old addresses to the new recycleBin address
        // which is a new address set up on the old contract.  Afterwhich new tokens
        // are credited to the old holder.  Also the lastSnapShot is set to 0 then
        // calcCredited points are called setting up the new signatoree all of his
        // accrued dividends.
        // ----------------------------
        function optInFromClassic() public
        {
                if (oldE4 == address(0)) {
                        StatEvent("config err");
                        return;
                }
                // 1. check balance of msg.sender in old contract.
                address nrequester = msg.sender;

                // 2. make sure account not already allocd (in fact, it's ok if it's allocd, so long
                // as it is empty now. the reason for this check is cuz we are going to credit him with
                // dividends, according to his token count, from the begin of time.
                if (holderAccounts[nrequester].tokens != 0) {
                        StatEvent("Account has already has tokens!");
                        return;
                }

                // 3. check his tok balance
                Token iclassic = Token(oldE4);
                uint _toks = iclassic.balanceOf(nrequester);
                if (_toks == 0) {
                        StatEvent("Nothing to do");
                        return;
                }

                // must be 100 percent of holdings
                if (iclassic.allowance(nrequester, address(this)) < _toks) {
                        StatEvent("Please approve this contract to transfer");
                        return;
                }

                // 4. before we do the transfer, make sure that we have at least enough gas for the
                // transfer plus the remainder of this fcn.
                if (msg.gas < optInXferGas + optInFcnMinGas)
                        throw;

                // 5. transfer his old toks to recyle bin
                iclassic.transferFrom.gas(optInXferGas)(nrequester, oldE4RecycleBin, _toks);

                // todo, error check?
                if (iclassic.balanceOf(nrequester) == 0) {
                        // success, add the account, set the tokens, set snapshot to zero
                        if (!holderAccounts[nrequester].alloced)
                                addAccount(nrequester);
                        holderAccounts[nrequester].tokens = _toks * NewTokensPerOrigToken;
                        holderAccounts[nrequester].lastSnapshot = 0;
                        calcCurPointsForAcct(nrequester);
                        numToksSwitchedOver += _toks;
                        // no need to decrement points from a "holding account"
                        // b/c there is no need to keep it.
                        StatEvent("Success Switched Over");
                } else
                        StatEvent("Transfer Error! please contact Dev team!");


        }



}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"qState","type":"uint8"},{"name":"_threshold","type":"uint256"},{"name":"_rw","type":"uint256"},{"name":"_optXferGas","type":"uint256"},{"name":"_optFcnGas","type":"uint256"}],"name":"applySettings","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numToksSwitchedOver","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"checkDividends","outputs":[{"name":"_amount","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"developers","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdrawDividends","outputs":[{"name":"_amount","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_rw","type":"uint256"},{"name":"_optXferGas","type":"uint256"},{"name":"_optFcnGas","type":"uint256"}],"name":"setOpGas","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TotalFeesReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vestTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rwGas","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"settingsState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"payoutThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"optInXferGas","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getAccountInfo","outputs":[{"name":"_tokens","type":"uint256"},{"name":"_snapshot","type":"uint256"},{"name":"_points","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numAccounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"blackHole","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_oldE4","type":"address"},{"name":"_oldE4Recyle","type":"address"}],"name":"setOldE4","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"haraKiri","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"oldE4","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"optInFcnMinGas","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"transferDividends","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"oldE4RecycleBin","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"holdoverBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optInFromClassic","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setDeveloper","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg","type":"string"}],"name":"StatEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg","type":"string"},{"indexed":false,"name":"val","type":"uint256"}],"name":"StatEventI","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052635ae8ff8160115534156200001557fe5b5b60048054600160a060020a033316600160a060020a0319918216811790925560038054909116909117905560026007556040805180820190915260058082527f4534524f5700000000000000000000000000000000000000000000000000000060209092019182526200008c9160089162000094565b505b6200013e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000d757805160ff191683800117855562000107565b8280016001018555821562000107579182015b8281111562000107578251825591602001919060010190620000ea565b5b50620001169291506200011a565b5090565b6200013b91905b8082111562000116576000815560010162000121565b5090565b90565b611a4b806200014e6000396000f300606060405236156101a95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461022b57806313bd53e61461025e57806318160ddd146102825780631d7786e3146102a457806322f16c8d146102c657806323b872dd146102f45780632bc31ca41461032d5780632e92abdd14610359578063313ce5671461037b5780633cebb4d71461039d5780633ed8ff25146103b85780634d22d1d1146103da5780635876d2ef146103fc5780635f437e481461041e5780636b5e1a181461045257806370a0823114610474578063766719f0146104a25780637b510fe8146104c45780638ce25a93146104fe5780638da5cb5b1461052057806395d89b411461054c5780639e90f9aa146105dc578063a6f9dae1146105e6578063a9059cbb14610604578063ae4eba1f14610637578063c40525591461065b578063c741764c1461066d578063c99a975d14610699578063ccf0768a146106bb578063dd62ed3e146106eb578063f9e856ae1461071f578063fa1e4fcb1461074b578063ff5639c41461076d578063ff70fa491461077f575b6102295b600180543490810190915560028054820190556040805160208101929092528082526007828201527f5061796d656e74000000000000000000000000000000000000000000000000006060830152517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a15b565b005b341561023357fe5b61024a600160a060020a036004351660243561079d565b604080519115158252519081900360200190f35b341561026657fe5b61022960ff60043516602435604435606435608435610808565b005b341561028a57fe5b610292610a3a565b60408051918252519081900360200190f35b34156102ac57fe5b610292610a43565b60408051918252519081900360200190f35b34156102ce57fe5b610292600160a060020a0360043516610a49565b60408051918252519081900360200190f35b34156102fc57fe5b61024a600160a060020a0360043581169060243516604435610aac565b604080519115158252519081900360200190f35b341561033557fe5b61033d610c1c565b60408051600160a060020a039092168252519081900360200190f35b341561036157fe5b610292610c2b565b60408051918252519081900360200190f35b341561038357fe5b610292610dae565b60408051918252519081900360200190f35b34156103a557fe5b610229600435602435604435610db4565b005b34156103c057fe5b610292610e02565b60408051918252519081900360200190f35b34156103e257fe5b610292610e08565b60408051918252519081900360200190f35b341561040457fe5b610292610e0e565b60408051918252519081900360200190f35b341561042657fe5b61042e610e14565b6040518082600181111561043e57fe5b60ff16815260200191505060405180910390f35b341561045a57fe5b610292610e1d565b60408051918252519081900360200190f35b341561047c57fe5b610292600160a060020a0360043516610e23565b60408051918252519081900360200190f35b34156104aa57fe5b610292610e45565b60408051918252519081900360200190f35b34156104cc57fe5b6104e0600160a060020a0360043516610e4b565b60408051938452602084019290925282820152519081900360600190f35b341561050657fe5b610292610e7e565b60408051918252519081900360200190f35b341561052857fe5b61033d610e84565b60408051600160a060020a039092168252519081900360200190f35b341561055457fe5b61055c610e93565b6040805160208082528351818301528351919283929083019185019080838382156105a2575b8051825260208311156105a257601f199092019160209182019101610582565b505050905090810190601f1680156105ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610229610f21565b005b34156105ee57fe5b610229600160a060020a0360043516610f89565b005b341561060c57fe5b61024a600160a060020a0360043516602435610fef565b604080519115158252519081900360200190f35b341561063f57fe5b610229600160a060020a0360043581169060243516611112565b005b341561066357fe5b61022961118e565b005b341561067557fe5b61033d6111d9565b60408051600160a060020a039092168252519081900360200190f35b34156106a157fe5b6102926111e8565b60408051918252519081900360200190f35b34156106c357fe5b61024a600160a060020a03600435166111ee565b604080519115158252519081900360200190f35b34156106f357fe5b610292600160a060020a0360043581169060243516611363565b60408051918252519081900360200190f35b341561072757fe5b61033d611390565b60408051600160a060020a039092168252519081900360200190f35b341561075357fe5b61029261139f565b60408051918252519081900360200190f35b341561077557fe5b6102296113a5565b005b341561078757fe5b610229600160a060020a03600435166118e7565b005b600160a060020a033381166000818152600b6020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600454600090819033600160a060020a0390811691161461082857610a31565b600d869055600e859055600f849055601083905560015b60125460ff16600181111561085057fe5b141561085b57610a31565b6012805488919060ff19166001838181111561087357fe5b021790555060015b87600181111561088757fe5b14156108e0576040805160208082526008908201527f4c6f636b696e6721000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610a31565b600091505b600c5482101561094557506000818152600a6020526040902054600160a060020a0316801561093957600160a060020a03811660009081526009602052604081206001810182905560028101829055600301555b5b6001909101906108e5565b600080805560018190556002819055600160a060020a0330163111156109e157600454600e54604051600160a060020a0392831692301631906000818181858888f1935050505015156109e1576040805160208082526006908201527f4552524f52210000000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a15b5b6040805160208082526002908201527f6f6b000000000000000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a15b50505050505050565b6322581d405b90565b60005481565b600160a060020a038116600090815260096020526040812054819060ff1615610aa55750600160a060020a03821660009081526009602052604090206001810154600382015460028054930154920302016322581d40815b0491505b5b50919050565b600354600090600160a060020a038581169116148015610acd575060115442105b15610ada57506000610c14565b600160a060020a038416600090815260096020526040902060010154829010801590610b2d5750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b8015610b395750600082115b15610c1057610b478461194d565b600160a060020a03808516600090815260096020526040808220600101805486900390559185168152205460ff161515610b8457610b848361198b565b5b610b8e8361194d565b600160a060020a038084166000818152600960209081526040808320600101805488019055888516808452600b83528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610c14565b5060005b5b9392505050565b600354600160a060020a031681565b60006000610c383361194d565b600160a060020a0333166000908152600960205260409020600201546322581d40905b049150600d5482111515610cd4576040805160208101849052818152600b818301527f6c6f772042616c616e6365000000000000000000000000000000000000000000606082015290517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a1610da8565b60035433600160a060020a039081169116148015610cf3575060115442105b15610d4f576040805160208082526016908201527f546f6b656e73206e6f7420796574207665737465642e00000000000000000000818301529051600080516020611a008339815191529181900360600190a160009150610da8565b50600160a060020a03331660008181526009602052604080822060020180546322581d40860290819003909155600180548690039055600e549151909392859190818181858888f193505050501515610da85760006000fd5b5b5b5090565b60075481565b60045433600160a060020a03908116911614801590610de2575060035433600160a060020a03908116911614155b15610dec57610dfc565b600e839055600f82905560108190555b5b505050565b60025481565b60115481565b600e5481565b60125460ff1681565b600d5481565b600160a060020a0381166000908152600960205260409020600101545b919050565b600f5481565b600160a060020a0381166000908152600960205260409020600181015460038201546002909201549091905b9193909250565b600c5481565b600454600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f195780601f10610eee57610100808354040283529160200191610f19565b820191906000526020600020905b815481529060010190602001808311610efc57829003601f168201915b505050505081565b604080513460208201528181526008818301527f61646a7573746564000000000000000000000000000000000000000000000000606082015290517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a15b565b60045433600160a060020a039081169116141580610fb8575060015b60125460ff166001811115610fb657fe5b145b15610fc35760006000fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60035460009033600160a060020a039081169116148015611011575060115442105b1561101e57506000610802565b600160a060020a03331660009081526009602052604090206001015482901080159061104a5750600082115b15611103576110583361194d565b600160a060020a03338116600090815260096020526040808220600101805486900390559185168152205460ff161515611095576110958361198b565b5b61109f8361194d565b600160a060020a038084166000818152600960209081526040918290206001018054870190558151868152915192933316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610802565b506000610802565b5b92915050565b60045433600160a060020a039081169116141580611141575060015b60125460ff16600181111561113f57fe5b145b1561114c5760006000fd5b60058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161790925560068054928416929091169190911790555b5050565b60005b60125460ff1660018111156111a257fe5b146111ad5760006000fd5b60045433600160a060020a039081169116146111c95760006000fd5b600354600160a060020a0316ff5b565b600554600160a060020a031681565b60105481565b60035460009033600160a060020a039081169116148015611210575060115442105b1561121d57506000610e40565b6112263361194d565b600160a060020a033316600090815260096020526040902060020154151561129e57604080516020808252600c908201527f5a65726f2062616c616e63650000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1506000610e40565b600160a060020a03821660009081526009602052604090205460ff1615156112c9576112c98261198b565b5b6112d38261194d565b600160a060020a0333811660008181526009602090815260408083206002908101805496891685528285209091018054909601909555928252925580518281526014928101929092527f547261736e6665726564204469766964656e64730000000000000000000000008282015251600080516020611a008339815191529181900360600190a15060015b919050565b600160a060020a038083166000908152600b60209081526040808320938516835292905220545b92915050565b600654600160a060020a031681565b60015481565b60055460009081908190600160a060020a0316151561141157604080516020808252600a908201527f636f6e6669672065727200000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b33600160a060020a0381166000908152600960205260409020600101549093501561148957604080516020808252601f908201527f4163636f756e742068617320616c72656164792068617320746f6b656e732100818301529051600080516020611a008339815191529181900360600190a1610dfc565b600554604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152935193909416955085936370a08231936024808301949391928390030190829087803b15156114fa57fe5b6102c65a03f1151561150857fe5b50506040515191505080151561156b57604080516020808252600d908201527f4e6f7468696e6720746f20646f00000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b8082600160a060020a031663dd62ed3e85306000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a0316815260200192505050602060405180830381600087803b15156115ff57fe5b6102c65a03f1151561160d57fe5b505050604051805190501015611696576040805160208082526028908201527f506c6561736520617070726f7665207468697320636f6e747261637420746f20818301527f7472616e7366657200000000000000000000000000000000000000000000000060608201529051600080516020611a008339815191529181900360800190a1610dfc565b601054600f54015a10156116aa5760006000fd5b600f54600654604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529283166024820152604481018590529051918516926323b872dd9290916064808201926020929091908290030181600088803b151561172257fe5b87f1151561172c57fe5b5050604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152935193881695506370a08231945060248082019492918390030190829087803b151561179957fe5b6102c65a03f115156117a757fe5b5050604051511515905061186c57600160a060020a03831660009081526009602052604090205460ff1615156117e0576117e08361198b565b5b600160a060020a0383166000908152600960205260408120620186a083026001820155600301556118118361194d565b60008054820190556040805160208082526015908201527f53756363657373205377697463686564204f7665720000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b6040805160208082526028908201527f5472616e73666572204572726f722120706c6561736520636f6e746163742044818301527f6576207465616d2100000000000000000000000000000000000000000000000060608201529051600080516020611a008339815191529181900360800190a15b5b505050565b60045433600160a060020a039081169116141580611916575060015b60125460ff16600181111561191457fe5b145b156119215760006000fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600160a060020a0381166000908152600960205260409020600181015460038201805460028054948101805492909503909302019092555490555b50565b600160a060020a0381166000818152600960209081526040808320805460ff191660019081178255818101859055600280830186905554600390920191909155600c805491820190558352600a9091529020805473ffffffffffffffffffffffffffffffffffffffff191690911790555b5056001df4241f9d28385037b9339fabdb2fac8a42cb5e489c20da7a82bb32f517e648a165627a7a723058208f9ecb66d84a15962dea7676fcf8ba9cea6e8f5e666ac5a2c5649445feabf8800029

   Swarm Source:
bzzr://8f9ecb66d84a15962dea7676fcf8ba9cea6e8f5e666ac5a2c5649445feabf880

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.