ETH Price: $3,492.86 (+0.36%)
Gas: 5 Gwei

Token

E4ROW (E4ROW)
 

Overview

Max Total Supply

5,762,000 E4ROW

Holders

133

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Filtered by Token Holder
zibzub.eth
Balance
1,000 E4ROW

Value
$0.00
0x2511a8a4223333d730ecbb3e45d88e86d7f14bde
Loading...
Loading
Loading...
Loading
Loading...
Loading


 


# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
E4Lava

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-06-22
*/

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 Security Audit

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"}]

6060604052635ae8ff8160115534156200001557fe5b5b60048054600160a060020a033316600160a060020a0319918216811790925560038054909116909117905560026007556040805180820190915260058082527f4534524f5700000000000000000000000000000000000000000000000000000060209092019182526200008c9160089162000094565b505b6200013e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000d757805160ff191683800117855562000107565b8280016001018555821562000107579182015b8281111562000107578251825591602001919060010190620000ea565b5b50620001169291506200011a565b5090565b6200013b91905b8082111562000116576000815560010162000121565b5090565b90565b611a4b806200014e6000396000f300606060405236156101a95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461022b57806313bd53e61461025e57806318160ddd146102825780631d7786e3146102a457806322f16c8d146102c657806323b872dd146102f45780632bc31ca41461032d5780632e92abdd14610359578063313ce5671461037b5780633cebb4d71461039d5780633ed8ff25146103b85780634d22d1d1146103da5780635876d2ef146103fc5780635f437e481461041e5780636b5e1a181461045257806370a0823114610474578063766719f0146104a25780637b510fe8146104c45780638ce25a93146104fe5780638da5cb5b1461052057806395d89b411461054c5780639e90f9aa146105dc578063a6f9dae1146105e6578063a9059cbb14610604578063ae4eba1f14610637578063c40525591461065b578063c741764c1461066d578063c99a975d14610699578063ccf0768a146106bb578063dd62ed3e146106eb578063f9e856ae1461071f578063fa1e4fcb1461074b578063ff5639c41461076d578063ff70fa491461077f575b6102295b600180543490810190915560028054820190556040805160208101929092528082526007828201527f5061796d656e74000000000000000000000000000000000000000000000000006060830152517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a15b565b005b341561023357fe5b61024a600160a060020a036004351660243561079d565b604080519115158252519081900360200190f35b341561026657fe5b61022960ff60043516602435604435606435608435610808565b005b341561028a57fe5b610292610a3a565b60408051918252519081900360200190f35b34156102ac57fe5b610292610a43565b60408051918252519081900360200190f35b34156102ce57fe5b610292600160a060020a0360043516610a49565b60408051918252519081900360200190f35b34156102fc57fe5b61024a600160a060020a0360043581169060243516604435610aac565b604080519115158252519081900360200190f35b341561033557fe5b61033d610c1c565b60408051600160a060020a039092168252519081900360200190f35b341561036157fe5b610292610c2b565b60408051918252519081900360200190f35b341561038357fe5b610292610dae565b60408051918252519081900360200190f35b34156103a557fe5b610229600435602435604435610db4565b005b34156103c057fe5b610292610e02565b60408051918252519081900360200190f35b34156103e257fe5b610292610e08565b60408051918252519081900360200190f35b341561040457fe5b610292610e0e565b60408051918252519081900360200190f35b341561042657fe5b61042e610e14565b6040518082600181111561043e57fe5b60ff16815260200191505060405180910390f35b341561045a57fe5b610292610e1d565b60408051918252519081900360200190f35b341561047c57fe5b610292600160a060020a0360043516610e23565b60408051918252519081900360200190f35b34156104aa57fe5b610292610e45565b60408051918252519081900360200190f35b34156104cc57fe5b6104e0600160a060020a0360043516610e4b565b60408051938452602084019290925282820152519081900360600190f35b341561050657fe5b610292610e7e565b60408051918252519081900360200190f35b341561052857fe5b61033d610e84565b60408051600160a060020a039092168252519081900360200190f35b341561055457fe5b61055c610e93565b6040805160208082528351818301528351919283929083019185019080838382156105a2575b8051825260208311156105a257601f199092019160209182019101610582565b505050905090810190601f1680156105ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610229610f21565b005b34156105ee57fe5b610229600160a060020a0360043516610f89565b005b341561060c57fe5b61024a600160a060020a0360043516602435610fef565b604080519115158252519081900360200190f35b341561063f57fe5b610229600160a060020a0360043581169060243516611112565b005b341561066357fe5b61022961118e565b005b341561067557fe5b61033d6111d9565b60408051600160a060020a039092168252519081900360200190f35b34156106a157fe5b6102926111e8565b60408051918252519081900360200190f35b34156106c357fe5b61024a600160a060020a03600435166111ee565b604080519115158252519081900360200190f35b34156106f357fe5b610292600160a060020a0360043581169060243516611363565b60408051918252519081900360200190f35b341561072757fe5b61033d611390565b60408051600160a060020a039092168252519081900360200190f35b341561075357fe5b61029261139f565b60408051918252519081900360200190f35b341561077557fe5b6102296113a5565b005b341561078757fe5b610229600160a060020a03600435166118e7565b005b600160a060020a033381166000818152600b6020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600454600090819033600160a060020a0390811691161461082857610a31565b600d869055600e859055600f849055601083905560015b60125460ff16600181111561085057fe5b141561085b57610a31565b6012805488919060ff19166001838181111561087357fe5b021790555060015b87600181111561088757fe5b14156108e0576040805160208082526008908201527f4c6f636b696e6721000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610a31565b600091505b600c5482101561094557506000818152600a6020526040902054600160a060020a0316801561093957600160a060020a03811660009081526009602052604081206001810182905560028101829055600301555b5b6001909101906108e5565b600080805560018190556002819055600160a060020a0330163111156109e157600454600e54604051600160a060020a0392831692301631906000818181858888f1935050505015156109e1576040805160208082526006908201527f4552524f52210000000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a15b5b6040805160208082526002908201527f6f6b000000000000000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a15b50505050505050565b6322581d405b90565b60005481565b600160a060020a038116600090815260096020526040812054819060ff1615610aa55750600160a060020a03821660009081526009602052604090206001810154600382015460028054930154920302016322581d40815b0491505b5b50919050565b600354600090600160a060020a038581169116148015610acd575060115442105b15610ada57506000610c14565b600160a060020a038416600090815260096020526040902060010154829010801590610b2d5750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b8015610b395750600082115b15610c1057610b478461194d565b600160a060020a03808516600090815260096020526040808220600101805486900390559185168152205460ff161515610b8457610b848361198b565b5b610b8e8361194d565b600160a060020a038084166000818152600960209081526040808320600101805488019055888516808452600b83528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610c14565b5060005b5b9392505050565b600354600160a060020a031681565b60006000610c383361194d565b600160a060020a0333166000908152600960205260409020600201546322581d40905b049150600d5482111515610cd4576040805160208101849052818152600b818301527f6c6f772042616c616e6365000000000000000000000000000000000000000000606082015290517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a1610da8565b60035433600160a060020a039081169116148015610cf3575060115442105b15610d4f576040805160208082526016908201527f546f6b656e73206e6f7420796574207665737465642e00000000000000000000818301529051600080516020611a008339815191529181900360600190a160009150610da8565b50600160a060020a03331660008181526009602052604080822060020180546322581d40860290819003909155600180548690039055600e549151909392859190818181858888f193505050501515610da85760006000fd5b5b5b5090565b60075481565b60045433600160a060020a03908116911614801590610de2575060035433600160a060020a03908116911614155b15610dec57610dfc565b600e839055600f82905560108190555b5b505050565b60025481565b60115481565b600e5481565b60125460ff1681565b600d5481565b600160a060020a0381166000908152600960205260409020600101545b919050565b600f5481565b600160a060020a0381166000908152600960205260409020600181015460038201546002909201549091905b9193909250565b600c5481565b600454600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f195780601f10610eee57610100808354040283529160200191610f19565b820191906000526020600020905b815481529060010190602001808311610efc57829003601f168201915b505050505081565b604080513460208201528181526008818301527f61646a7573746564000000000000000000000000000000000000000000000000606082015290517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a15b565b60045433600160a060020a039081169116141580610fb8575060015b60125460ff166001811115610fb657fe5b145b15610fc35760006000fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60035460009033600160a060020a039081169116148015611011575060115442105b1561101e57506000610802565b600160a060020a03331660009081526009602052604090206001015482901080159061104a5750600082115b15611103576110583361194d565b600160a060020a03338116600090815260096020526040808220600101805486900390559185168152205460ff161515611095576110958361198b565b5b61109f8361194d565b600160a060020a038084166000818152600960209081526040918290206001018054870190558151868152915192933316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610802565b506000610802565b5b92915050565b60045433600160a060020a039081169116141580611141575060015b60125460ff16600181111561113f57fe5b145b1561114c5760006000fd5b60058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161790925560068054928416929091169190911790555b5050565b60005b60125460ff1660018111156111a257fe5b146111ad5760006000fd5b60045433600160a060020a039081169116146111c95760006000fd5b600354600160a060020a0316ff5b565b600554600160a060020a031681565b60105481565b60035460009033600160a060020a039081169116148015611210575060115442105b1561121d57506000610e40565b6112263361194d565b600160a060020a033316600090815260096020526040902060020154151561129e57604080516020808252600c908201527f5a65726f2062616c616e63650000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1506000610e40565b600160a060020a03821660009081526009602052604090205460ff1615156112c9576112c98261198b565b5b6112d38261194d565b600160a060020a0333811660008181526009602090815260408083206002908101805496891685528285209091018054909601909555928252925580518281526014928101929092527f547261736e6665726564204469766964656e64730000000000000000000000008282015251600080516020611a008339815191529181900360600190a15060015b919050565b600160a060020a038083166000908152600b60209081526040808320938516835292905220545b92915050565b600654600160a060020a031681565b60015481565b60055460009081908190600160a060020a0316151561141157604080516020808252600a908201527f636f6e6669672065727200000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b33600160a060020a0381166000908152600960205260409020600101549093501561148957604080516020808252601f908201527f4163636f756e742068617320616c72656164792068617320746f6b656e732100818301529051600080516020611a008339815191529181900360600190a1610dfc565b600554604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152935193909416955085936370a08231936024808301949391928390030190829087803b15156114fa57fe5b6102c65a03f1151561150857fe5b50506040515191505080151561156b57604080516020808252600d908201527f4e6f7468696e6720746f20646f00000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b8082600160a060020a031663dd62ed3e85306000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a0316815260200192505050602060405180830381600087803b15156115ff57fe5b6102c65a03f1151561160d57fe5b505050604051805190501015611696576040805160208082526028908201527f506c6561736520617070726f7665207468697320636f6e747261637420746f20818301527f7472616e7366657200000000000000000000000000000000000000000000000060608201529051600080516020611a008339815191529181900360800190a1610dfc565b601054600f54015a10156116aa5760006000fd5b600f54600654604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529283166024820152604481018590529051918516926323b872dd9290916064808201926020929091908290030181600088803b151561172257fe5b87f1151561172c57fe5b5050604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152935193881695506370a08231945060248082019492918390030190829087803b151561179957fe5b6102c65a03f115156117a757fe5b5050604051511515905061186c57600160a060020a03831660009081526009602052604090205460ff1615156117e0576117e08361198b565b5b600160a060020a0383166000908152600960205260408120620186a083026001820155600301556118118361194d565b60008054820190556040805160208082526015908201527f53756363657373205377697463686564204f7665720000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b6040805160208082526028908201527f5472616e73666572204572726f722120706c6561736520636f6e746163742044818301527f6576207465616d2100000000000000000000000000000000000000000000000060608201529051600080516020611a008339815191529181900360800190a15b5b505050565b60045433600160a060020a039081169116141580611916575060015b60125460ff16600181111561191457fe5b145b156119215760006000fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600160a060020a0381166000908152600960205260409020600181015460038201805460028054948101805492909503909302019092555490555b50565b600160a060020a0381166000818152600960209081526040808320805460ff191660019081178255818101859055600280830186905554600390920191909155600c805491820190558352600a9091529020805473ffffffffffffffffffffffffffffffffffffffff191690911790555b5056001df4241f9d28385037b9339fabdb2fac8a42cb5e489c20da7a82bb32f517e648a165627a7a723058208f9ecb66d84a15962dea7676fcf8ba9cea6e8f5e666ac5a2c5649445feabf8800029

Deployed Bytecode

0x606060405236156101a95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461022b57806313bd53e61461025e57806318160ddd146102825780631d7786e3146102a457806322f16c8d146102c657806323b872dd146102f45780632bc31ca41461032d5780632e92abdd14610359578063313ce5671461037b5780633cebb4d71461039d5780633ed8ff25146103b85780634d22d1d1146103da5780635876d2ef146103fc5780635f437e481461041e5780636b5e1a181461045257806370a0823114610474578063766719f0146104a25780637b510fe8146104c45780638ce25a93146104fe5780638da5cb5b1461052057806395d89b411461054c5780639e90f9aa146105dc578063a6f9dae1146105e6578063a9059cbb14610604578063ae4eba1f14610637578063c40525591461065b578063c741764c1461066d578063c99a975d14610699578063ccf0768a146106bb578063dd62ed3e146106eb578063f9e856ae1461071f578063fa1e4fcb1461074b578063ff5639c41461076d578063ff70fa491461077f575b6102295b600180543490810190915560028054820190556040805160208101929092528082526007828201527f5061796d656e74000000000000000000000000000000000000000000000000006060830152517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a15b565b005b341561023357fe5b61024a600160a060020a036004351660243561079d565b604080519115158252519081900360200190f35b341561026657fe5b61022960ff60043516602435604435606435608435610808565b005b341561028a57fe5b610292610a3a565b60408051918252519081900360200190f35b34156102ac57fe5b610292610a43565b60408051918252519081900360200190f35b34156102ce57fe5b610292600160a060020a0360043516610a49565b60408051918252519081900360200190f35b34156102fc57fe5b61024a600160a060020a0360043581169060243516604435610aac565b604080519115158252519081900360200190f35b341561033557fe5b61033d610c1c565b60408051600160a060020a039092168252519081900360200190f35b341561036157fe5b610292610c2b565b60408051918252519081900360200190f35b341561038357fe5b610292610dae565b60408051918252519081900360200190f35b34156103a557fe5b610229600435602435604435610db4565b005b34156103c057fe5b610292610e02565b60408051918252519081900360200190f35b34156103e257fe5b610292610e08565b60408051918252519081900360200190f35b341561040457fe5b610292610e0e565b60408051918252519081900360200190f35b341561042657fe5b61042e610e14565b6040518082600181111561043e57fe5b60ff16815260200191505060405180910390f35b341561045a57fe5b610292610e1d565b60408051918252519081900360200190f35b341561047c57fe5b610292600160a060020a0360043516610e23565b60408051918252519081900360200190f35b34156104aa57fe5b610292610e45565b60408051918252519081900360200190f35b34156104cc57fe5b6104e0600160a060020a0360043516610e4b565b60408051938452602084019290925282820152519081900360600190f35b341561050657fe5b610292610e7e565b60408051918252519081900360200190f35b341561052857fe5b61033d610e84565b60408051600160a060020a039092168252519081900360200190f35b341561055457fe5b61055c610e93565b6040805160208082528351818301528351919283929083019185019080838382156105a2575b8051825260208311156105a257601f199092019160209182019101610582565b505050905090810190601f1680156105ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610229610f21565b005b34156105ee57fe5b610229600160a060020a0360043516610f89565b005b341561060c57fe5b61024a600160a060020a0360043516602435610fef565b604080519115158252519081900360200190f35b341561063f57fe5b610229600160a060020a0360043581169060243516611112565b005b341561066357fe5b61022961118e565b005b341561067557fe5b61033d6111d9565b60408051600160a060020a039092168252519081900360200190f35b34156106a157fe5b6102926111e8565b60408051918252519081900360200190f35b34156106c357fe5b61024a600160a060020a03600435166111ee565b604080519115158252519081900360200190f35b34156106f357fe5b610292600160a060020a0360043581169060243516611363565b60408051918252519081900360200190f35b341561072757fe5b61033d611390565b60408051600160a060020a039092168252519081900360200190f35b341561075357fe5b61029261139f565b60408051918252519081900360200190f35b341561077557fe5b6102296113a5565b005b341561078757fe5b610229600160a060020a03600435166118e7565b005b600160a060020a033381166000818152600b6020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600454600090819033600160a060020a0390811691161461082857610a31565b600d869055600e859055600f849055601083905560015b60125460ff16600181111561085057fe5b141561085b57610a31565b6012805488919060ff19166001838181111561087357fe5b021790555060015b87600181111561088757fe5b14156108e0576040805160208082526008908201527f4c6f636b696e6721000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610a31565b600091505b600c5482101561094557506000818152600a6020526040902054600160a060020a0316801561093957600160a060020a03811660009081526009602052604081206001810182905560028101829055600301555b5b6001909101906108e5565b600080805560018190556002819055600160a060020a0330163111156109e157600454600e54604051600160a060020a0392831692301631906000818181858888f1935050505015156109e1576040805160208082526006908201527f4552524f52210000000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a15b5b6040805160208082526002908201527f6f6b000000000000000000000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a15b50505050505050565b6322581d405b90565b60005481565b600160a060020a038116600090815260096020526040812054819060ff1615610aa55750600160a060020a03821660009081526009602052604090206001810154600382015460028054930154920302016322581d40815b0491505b5b50919050565b600354600090600160a060020a038581169116148015610acd575060115442105b15610ada57506000610c14565b600160a060020a038416600090815260096020526040902060010154829010801590610b2d5750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b8015610b395750600082115b15610c1057610b478461194d565b600160a060020a03808516600090815260096020526040808220600101805486900390559185168152205460ff161515610b8457610b848361198b565b5b610b8e8361194d565b600160a060020a038084166000818152600960209081526040808320600101805488019055888516808452600b83528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610c14565b5060005b5b9392505050565b600354600160a060020a031681565b60006000610c383361194d565b600160a060020a0333166000908152600960205260409020600201546322581d40905b049150600d5482111515610cd4576040805160208101849052818152600b818301527f6c6f772042616c616e6365000000000000000000000000000000000000000000606082015290517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a1610da8565b60035433600160a060020a039081169116148015610cf3575060115442105b15610d4f576040805160208082526016908201527f546f6b656e73206e6f7420796574207665737465642e00000000000000000000818301529051600080516020611a008339815191529181900360600190a160009150610da8565b50600160a060020a03331660008181526009602052604080822060020180546322581d40860290819003909155600180548690039055600e549151909392859190818181858888f193505050501515610da85760006000fd5b5b5b5090565b60075481565b60045433600160a060020a03908116911614801590610de2575060035433600160a060020a03908116911614155b15610dec57610dfc565b600e839055600f82905560108190555b5b505050565b60025481565b60115481565b600e5481565b60125460ff1681565b600d5481565b600160a060020a0381166000908152600960205260409020600101545b919050565b600f5481565b600160a060020a0381166000908152600960205260409020600181015460038201546002909201549091905b9193909250565b600c5481565b600454600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f195780601f10610eee57610100808354040283529160200191610f19565b820191906000526020600020905b815481529060010190602001808311610efc57829003601f168201915b505050505081565b604080513460208201528181526008818301527f61646a7573746564000000000000000000000000000000000000000000000000606082015290517f9e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d9181900360800190a15b565b60045433600160a060020a039081169116141580610fb8575060015b60125460ff166001811115610fb657fe5b145b15610fc35760006000fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60035460009033600160a060020a039081169116148015611011575060115442105b1561101e57506000610802565b600160a060020a03331660009081526009602052604090206001015482901080159061104a5750600082115b15611103576110583361194d565b600160a060020a03338116600090815260096020526040808220600101805486900390559185168152205460ff161515611095576110958361198b565b5b61109f8361194d565b600160a060020a038084166000818152600960209081526040918290206001018054870190558151868152915192933316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001610802565b506000610802565b5b92915050565b60045433600160a060020a039081169116141580611141575060015b60125460ff16600181111561113f57fe5b145b1561114c5760006000fd5b60058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161790925560068054928416929091169190911790555b5050565b60005b60125460ff1660018111156111a257fe5b146111ad5760006000fd5b60045433600160a060020a039081169116146111c95760006000fd5b600354600160a060020a0316ff5b565b600554600160a060020a031681565b60105481565b60035460009033600160a060020a039081169116148015611210575060115442105b1561121d57506000610e40565b6112263361194d565b600160a060020a033316600090815260096020526040902060020154151561129e57604080516020808252600c908201527f5a65726f2062616c616e63650000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1506000610e40565b600160a060020a03821660009081526009602052604090205460ff1615156112c9576112c98261198b565b5b6112d38261194d565b600160a060020a0333811660008181526009602090815260408083206002908101805496891685528285209091018054909601909555928252925580518281526014928101929092527f547261736e6665726564204469766964656e64730000000000000000000000008282015251600080516020611a008339815191529181900360600190a15060015b919050565b600160a060020a038083166000908152600b60209081526040808320938516835292905220545b92915050565b600654600160a060020a031681565b60015481565b60055460009081908190600160a060020a0316151561141157604080516020808252600a908201527f636f6e6669672065727200000000000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b33600160a060020a0381166000908152600960205260409020600101549093501561148957604080516020808252601f908201527f4163636f756e742068617320616c72656164792068617320746f6b656e732100818301529051600080516020611a008339815191529181900360600190a1610dfc565b600554604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152935193909416955085936370a08231936024808301949391928390030190829087803b15156114fa57fe5b6102c65a03f1151561150857fe5b50506040515191505080151561156b57604080516020808252600d908201527f4e6f7468696e6720746f20646f00000000000000000000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b8082600160a060020a031663dd62ed3e85306000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a0316815260200192505050602060405180830381600087803b15156115ff57fe5b6102c65a03f1151561160d57fe5b505050604051805190501015611696576040805160208082526028908201527f506c6561736520617070726f7665207468697320636f6e747261637420746f20818301527f7472616e7366657200000000000000000000000000000000000000000000000060608201529051600080516020611a008339815191529181900360800190a1610dfc565b601054600f54015a10156116aa5760006000fd5b600f54600654604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529283166024820152604481018590529051918516926323b872dd9290916064808201926020929091908290030181600088803b151561172257fe5b87f1151561172c57fe5b5050604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152935193881695506370a08231945060248082019492918390030190829087803b151561179957fe5b6102c65a03f115156117a757fe5b5050604051511515905061186c57600160a060020a03831660009081526009602052604090205460ff1615156117e0576117e08361198b565b5b600160a060020a0383166000908152600960205260408120620186a083026001820155600301556118118361194d565b60008054820190556040805160208082526015908201527f53756363657373205377697463686564204f7665720000000000000000000000818301529051600080516020611a008339815191529181900360600190a1610dfc565b6040805160208082526028908201527f5472616e73666572204572726f722120706c6561736520636f6e746163742044818301527f6576207465616d2100000000000000000000000000000000000000000000000060608201529051600080516020611a008339815191529181900360800190a15b5b505050565b60045433600160a060020a039081169116141580611916575060015b60125460ff16600181111561191457fe5b145b156119215760006000fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600160a060020a0381166000908152600960205260409020600181015460038201805460028054948101805492909503909302019092555490555b50565b600160a060020a0381166000818152600960209081526040808320805460ff191660019081178255818101859055600280830186905554600390920191909155600c805491820190558352600a9091529020805473ffffffffffffffffffffffffffffffffffffffff191690911790555b5056001df4241f9d28385037b9339fabdb2fac8a42cb5e489c20da7a82bb32f517e648a165627a7a723058208f9ecb66d84a15962dea7676fcf8ba9cea6e8f5e666ac5a2c5649445feabf8800029

Swarm Source

bzzr://8f9ecb66d84a15962dea7676fcf8ba9cea6e8f5e666ac5a2c5649445feabf880
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.