ETH Price: $3,308.82 (-8.01%)
Gas: 33 Gwei

Contract

0xBd73E675e1Fa3d60a302C797dF5C82E558dA7ce1
 
Transaction Hash
Method
Block
From
To
Value
Exit193789082024-03-06 21:45:5912 days ago1709761559IN
0xBd73E675...558dA7ce1
0 ETH0.00897392122.90689027
Withdraw193786652024-03-06 20:57:1112 days ago1709758631IN
0xBd73E675...558dA7ce1
0 ETH0.00654745133
Exit193786542024-03-06 20:54:5912 days ago1709758499IN
0xBd73E675...558dA7ce1
0 ETH0.00971086133
Sell193786462024-03-06 20:53:2312 days ago1709758403IN
0xBd73E675...558dA7ce1
0 ETH0.00833351133
Withdraw193785922024-03-06 20:42:3512 days ago1709757755IN
0xBd73E675...558dA7ce1
0 ETH0.00654745133
Withdraw193785802024-03-06 20:40:1112 days ago1709757611IN
0xBd73E675...558dA7ce1
0 ETH0.00611766124.26945139
Sell193785592024-03-06 20:35:5912 days ago1709757359IN
0xBd73E675...558dA7ce1
0 ETH0.00833351133
Exit193785342024-03-06 20:30:5912 days ago1709757059IN
0xBd73E675...558dA7ce1
0 ETH0.00809355110.84936341
Withdraw193784472024-03-06 20:13:3512 days ago1709756015IN
0xBd73E675...558dA7ce1
0 ETH0.004480491.01153898
Sell193784302024-03-06 20:10:1112 days ago1709755811IN
0xBd73E675...558dA7ce1
0 ETH0.00628821100.3577262
Sell193751072024-03-06 9:02:4712 days ago1709715767IN
0xBd73E675...558dA7ce1
0 ETH0.0018264575.69850265
Exit193750582024-03-06 8:52:5912 days ago1709715179IN
0xBd73E675...558dA7ce1
0 ETH0.0029442477.65376641
Withdraw193750542024-03-06 8:52:1112 days ago1709715131IN
0xBd73E675...558dA7ce1
0 ETH0.0031403683.81012232
Exit193750432024-03-06 8:49:5912 days ago1709714999IN
0xBd73E675...558dA7ce1
0 ETH0.0026691470.39805696
Exit193750432024-03-06 8:49:5912 days ago1709714999IN
0xBd73E675...558dA7ce1
0 ETH0.0026691470.39801989
Exit193750162024-03-06 8:44:3512 days ago1709714675IN
0xBd73E675...558dA7ce1
0 ETH0.002189276.81420327
Exit189699562024-01-09 14:19:1169 days ago1704809951IN
0xBd73E675...558dA7ce1
0 ETH0.0014767220.22519797
Exit185478002023-11-11 9:29:35128 days ago1699694975IN
0xBd73E675...558dA7ce1
0 ETH0.0026488329.38414695
Exit184347132023-10-26 13:33:35144 days ago1698327215IN
0xBd73E675...558dA7ce1
0 ETH0.0023391825.94910871
Exit177373592023-07-20 22:29:35242 days ago1689892175IN
0xBd73E675...558dA7ce1
0 ETH0.002431833.30596966
Withdraw177373502023-07-20 22:27:47242 days ago1689892067IN
0xBd73E675...558dA7ce1
0 ETH0.0017558435.66686635
Transfer164952122023-01-27 2:35:59417 days ago1674786959IN
0xBd73E675...558dA7ce1
0 ETH0.0003918215.16530077
Exit158681432022-10-31 12:48:47504 days ago1667220527IN
0xBd73E675...558dA7ce1
0 ETH0.0019251721.35641861
Transfer141454342022-02-05 10:24:18772 days ago1644056658IN
0xBd73E675...558dA7ce1
0 ETH0.0010751251.19647899
Exit135550092021-11-05 6:29:42865 days ago1636093782IN
0xBd73E675...558dA7ce1
0 ETH0.009086100.79319794
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
193789082024-03-06 21:45:5912 days ago1709761559
0xBd73E675...558dA7ce1
0.01883489 ETH
193786652024-03-06 20:57:1112 days ago1709758631
0xBd73E675...558dA7ce1
1.59261574 ETH
193786542024-03-06 20:54:5912 days ago1709758499
0xBd73E675...558dA7ce1
0.01996771 ETH
193785922024-03-06 20:42:3512 days ago1709757755
0xBd73E675...558dA7ce1
0.34189484 ETH
193785802024-03-06 20:40:1112 days ago1709757611
0xBd73E675...558dA7ce1
1.9548527 ETH
193785342024-03-06 20:30:5912 days ago1709757059
0xBd73E675...558dA7ce1
0.04207419 ETH
193784472024-03-06 20:13:3512 days ago1709756015
0xBd73E675...558dA7ce1
4.09001244 ETH
189699562024-01-09 14:19:1169 days ago1704809951
0xBd73E675...558dA7ce1
0.00091198 ETH
185478002023-11-11 9:29:35128 days ago1699694975
0xBd73E675...558dA7ce1
0.01733818 ETH
184347132023-10-26 13:33:35144 days ago1698327215
0xBd73E675...558dA7ce1
0.02758088 ETH
177373592023-07-20 22:29:35242 days ago1689892175
0xBd73E675...558dA7ce1
0.00000016 ETH
177373502023-07-20 22:27:47242 days ago1689892067
0xBd73E675...558dA7ce1
0.00000037 ETH
158681432022-10-31 12:48:47504 days ago1667220527
0xBd73E675...558dA7ce1
0.04091964 ETH
135550092021-11-05 6:29:42865 days ago1636093782
0xBd73E675...558dA7ce1
0.06789108 ETH
129471462021-08-02 17:04:50959 days ago1627923890
0xBd73E675...558dA7ce1
0.14268717 ETH
126089802021-06-10 20:34:151012 days ago1623357255
0xBd73E675...558dA7ce1
0.00783736 ETH
125053222021-05-25 19:17:351028 days ago1621970255
0xBd73E675...558dA7ce1
0.09408163 ETH
125052912021-05-25 19:10:171028 days ago1621969817
0xBd73E675...558dA7ce1
0.30395234 ETH
123617982021-05-03 14:30:381050 days ago1620052238
0xBd73E675...558dA7ce1
0.07872753 ETH
123438522021-04-30 20:03:201053 days ago1619813000
0xBd73E675...558dA7ce1
1.31329082 ETH
122625672021-04-18 6:45:361066 days ago1618728336
0xBd73E675...558dA7ce1
3.30119869 ETH
122625502021-04-18 6:40:581066 days ago1618728058
0xBd73E675...558dA7ce1
75.32318203 ETH
122625092021-04-18 6:30:381066 days ago1618727438
0xBd73E675...558dA7ce1
27.4171847 ETH
121420402021-03-30 17:48:311084 days ago1617126511
0xBd73E675...558dA7ce1
1.79541888 ETH
118214692021-02-09 9:34:131133 days ago1612863253
0xBd73E675...558dA7ce1
8.24777169 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PantheonEcoSystem

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-11-28
*/

pragma solidity 0.4.25;

contract PantheonEcoSystem {

    struct UserRecord {
        address referrer;
        uint tokens;
        uint gained_funds;
        uint ref_funds;
        // this field can be negative
        int funds_correction;
    }

    using SafeMath for uint;
    using SafeMathInt for int;
    using Fee for Fee.fee;
    using ToAddress for bytes;

    // ERC20
    string constant public name = "Pantheon Ecosystem";
    string constant public symbol = "PAN";
    uint8 constant public decimals = 18;

    // Fees
    Fee.fee private fee_purchase = Fee.fee(1, 10); // 10%
    Fee.fee private fee_selling  = Fee.fee(1, 20); // 5%
    Fee.fee private fee_transfer = Fee.fee(1, 100); // 1%
    Fee.fee private fee_referral = Fee.fee(33, 100); // 33%

    // Minimal amount of tokens to be an participant of referral program
    uint constant private minimal_stake = 10e18;

    // Factor for converting eth <-> tokens with required precision of calculations
    uint constant private precision_factor = 1e18;

    // Pricing policy
    //  - if user buy 1 token, price will be increased by "price_offset" value
    //  - if user sell 1 token, price will be decreased by "price_offset" value
    // For details see methods "fundsToTokens" and "tokensToFunds"
    uint private price = 1e29; // 100 Gwei * precision_factor
    uint constant private price_offset = 1e28; // 10 Gwei * precision_factor

    // Total amount of tokens
    uint private total_supply = 0;

    // Total profit shared between token's holders. It's not reflect exactly sum of funds because this parameter
    // can be modified to keep the real user's dividends when total supply is changed
    // For details see method "dividendsOf" and using "funds_correction" in the code
    uint private shared_profit = 0;

    // Map of the users data
    mapping(address => UserRecord) private user_data;

    // ==== Modifiers ==== //

    modifier onlyValidTokenAmount(uint tokens) {
        require(tokens > 0, "Amount of tokens must be greater than zero");
        require(tokens <= user_data[msg.sender].tokens, "You have not enough tokens");
        _;
    }

    // ==== Public API ==== //

    // ---- Write methods ---- //

    function () public payable {
        buy(msg.data.toAddr());
    }

    /*
    * @dev Buy tokens from incoming funds
    */
    function buy(address referrer) public payable {

        // apply fee
        (uint fee_funds, uint taxed_funds) = fee_purchase.split(msg.value);
        require(fee_funds != 0, "Incoming funds is too small");

        // update user's referrer
        //  - you cannot be a referrer for yourself
        //  - user and his referrer will be together all the life
        UserRecord storage user = user_data[msg.sender];
        if (referrer != 0x0 && referrer != msg.sender && user.referrer == 0x0) {
            user.referrer = referrer;
        }

        // apply referral bonus
        if (user.referrer != 0x0) {
            fee_funds = rewardReferrer(msg.sender, user.referrer, fee_funds, msg.value);
            require(fee_funds != 0, "Incoming funds is too small");
        }

        // calculate amount of tokens and change price
        (uint tokens, uint _price) = fundsToTokens(taxed_funds);
        require(tokens != 0, "Incoming funds is too small");
        price = _price;

        // mint tokens and increase shared profit
        mintTokens(msg.sender, tokens);
        shared_profit = shared_profit.add(fee_funds);

        emit Purchase(msg.sender, msg.value, tokens, price / precision_factor, now);
    }

    /*
    * @dev Sell given amount of tokens and get funds
    */
    function sell(uint tokens) public onlyValidTokenAmount(tokens) {

        // calculate amount of funds and change price
        (uint funds, uint _price) = tokensToFunds(tokens);
        require(funds != 0, "Insufficient tokens to do that");
        price = _price;

        // apply fee
        (uint fee_funds, uint taxed_funds) = fee_selling.split(funds);
        require(fee_funds != 0, "Insufficient tokens to do that");

        // burn tokens and add funds to user's dividends
        burnTokens(msg.sender, tokens);
        UserRecord storage user = user_data[msg.sender];
        user.gained_funds = user.gained_funds.add(taxed_funds);

        // increase shared profit
        shared_profit = shared_profit.add(fee_funds);

        emit Selling(msg.sender, tokens, funds, price / precision_factor, now);
    }

    /*
    * @dev Transfer given amount of tokens from sender to another user
    * ERC20
    */
    function transfer(address to_addr, uint tokens) public onlyValidTokenAmount(tokens) returns (bool success) {

        require(to_addr != msg.sender, "You cannot transfer tokens to yourself");

        // apply fee
        (uint fee_tokens, uint taxed_tokens) = fee_transfer.split(tokens);
        require(fee_tokens != 0, "Insufficient tokens to do that");

        // calculate amount of funds and change price
        (uint funds, uint _price) = tokensToFunds(fee_tokens);
        require(funds != 0, "Insufficient tokens to do that");
        price = _price;

        // burn and mint tokens excluding fee
        burnTokens(msg.sender, tokens);
        mintTokens(to_addr, taxed_tokens);

        // increase shared profit
        shared_profit = shared_profit.add(funds);

        emit Transfer(msg.sender, to_addr, tokens);
        return true;
    }

    /*
    * @dev Reinvest all dividends
    */
    function reinvest() public {

        // get all dividends
        uint funds = dividendsOf(msg.sender);
        require(funds > 0, "You have no dividends");

        // make correction, dividents will be 0 after that
        UserRecord storage user = user_data[msg.sender];
        user.funds_correction = user.funds_correction.add(int(funds));

        // apply fee
        (uint fee_funds, uint taxed_funds) = fee_purchase.split(funds);
        require(fee_funds != 0, "Insufficient dividends to do that");

        // apply referral bonus
        if (user.referrer != 0x0) {
            fee_funds = rewardReferrer(msg.sender, user.referrer, fee_funds, funds);
            require(fee_funds != 0, "Insufficient dividends to do that");
        }

        // calculate amount of tokens and change price
        (uint tokens, uint _price) = fundsToTokens(taxed_funds);
        require(tokens != 0, "Insufficient dividends to do that");
        price = _price;

        // mint tokens and increase shared profit
        mintTokens(msg.sender, tokens);
        shared_profit = shared_profit.add(fee_funds);

        emit Reinvestment(msg.sender, funds, tokens, price / precision_factor, now);
    }

    /*
    * @dev Withdraw all dividends
    */
    function withdraw() public {

        // get all dividends
        uint funds = dividendsOf(msg.sender);
        require(funds > 0, "You have no dividends");

        // make correction, dividents will be 0 after that
        UserRecord storage user = user_data[msg.sender];
        user.funds_correction = user.funds_correction.add(int(funds));

        // send funds
        msg.sender.transfer(funds);

        emit Withdrawal(msg.sender, funds, now);
    }

    /*
    * @dev Sell all tokens and withraw dividends
    */
    function exit() public {

        // sell all tokens
        uint tokens = user_data[msg.sender].tokens;
        if (tokens > 0) {
            sell(tokens);
        }

        withdraw();
    }

    /*
    * @dev CAUTION! This method distributes all incoming funds between token's holders and gives you nothing
    * It will be used by another contracts/addresses from our ecosystem in future
    * But if you want to donate, you're welcome :)
    */
    function donate() public payable {
        shared_profit = shared_profit.add(msg.value);
        emit Donation(msg.sender, msg.value, now);
    }

    // ---- Read methods ---- //

    /*
    * @dev Total amount of tokens
    * ERC20
    */
    function totalSupply() public view returns (uint) {
        return total_supply;
    }

    /*
    * @dev Amount of user's tokens
    * ERC20
    */
    function balanceOf(address addr) public view returns (uint) {
        return user_data[addr].tokens;
    }

    /*
    * @dev Amount of user's dividends
    */
    function dividendsOf(address addr) public view returns (uint) {

        UserRecord memory user = user_data[addr];

        // gained funds from selling tokens + bonus funds from referrals
        // int because "user.funds_correction" can be negative
        int d = int(user.gained_funds.add(user.ref_funds));
        require(d >= 0);

        // avoid zero divizion
        if (total_supply > 0) {
            // profit is proportional to stake
            d = d.add(int(shared_profit.mul(user.tokens) / total_supply));
        }

        // correction
        // d -= user.funds_correction
        if (user.funds_correction > 0) {
            d = d.sub(user.funds_correction);
        }
        else if (user.funds_correction < 0) {
            d = d.add(-user.funds_correction);
        }

        // just in case
        require(d >= 0);

        // total sum must be positive uint
        return uint(d);
    }

    /*
    * @dev Amount of tokens can be gained from given amount of funds
    */
    function expectedTokens(uint funds, bool apply_fee) public view returns (uint) {
        if (funds == 0) {
            return 0;
        }
        if (apply_fee) {
            (,uint _funds) = fee_purchase.split(funds);
            funds = _funds;
        }
        (uint tokens,) = fundsToTokens(funds);
        return tokens;
    }

    /*
    * @dev Amount of funds can be gained from given amount of tokens
    */
    function expectedFunds(uint tokens, bool apply_fee) public view returns (uint) {
        // empty tokens in total OR no tokens was sold
        if (tokens == 0 || total_supply == 0) {
            return 0;
        }
        // more tokens than were mined in total, just exclude unnecessary tokens from calculating
        else if (tokens > total_supply) {
            tokens = total_supply;
        }
        (uint funds,) = tokensToFunds(tokens);
        if (apply_fee) {
            (,uint _funds) = fee_selling.split(funds);
            funds = _funds;
        }
        return funds;
    }

    /*
    * @dev Purchase price of next 1 token
    */
    function buyPrice() public view returns (uint) {
        return price / precision_factor;
    }

    /*
    * @dev Selling price of next 1 token
    */
    function sellPrice() public view returns (uint) {
        return price.sub(price_offset) / precision_factor;
    }

    // ==== Private API ==== //

    /*
    * @dev Mint given amount of tokens to given user
    */
    function mintTokens(address addr, uint tokens) internal {

        UserRecord storage user = user_data[addr];

        bool not_first_minting = total_supply > 0;

        // make correction to keep dividends the rest of the users
        if (not_first_minting) {
            shared_profit = shared_profit.mul(total_supply.add(tokens)) / total_supply;
        }

        // add tokens
        total_supply = total_supply.add(tokens);
        user.tokens = user.tokens.add(tokens);

        // make correction to keep dividends of user
        if (not_first_minting) {
            user.funds_correction = user.funds_correction.add(int(tokens.mul(shared_profit) / total_supply));
        }
    }

    /*
    * @dev Burn given amout of tokens from given user
    */
    function burnTokens(address addr, uint tokens) internal {

        UserRecord storage user = user_data[addr];

        // keep current dividents of user if last tokens will be burned
        uint dividends_from_tokens = 0;
        if (total_supply == tokens) {
            dividends_from_tokens = shared_profit.mul(user.tokens) / total_supply;
        }

        // make correction to keep dividends the rest of the users
        shared_profit = shared_profit.mul(total_supply.sub(tokens)) / total_supply;

        // sub tokens
        total_supply = total_supply.sub(tokens);
        user.tokens = user.tokens.sub(tokens);

        // make correction to keep dividends of the user
        // if burned not last tokens
        if (total_supply > 0) {
            user.funds_correction = user.funds_correction.sub(int(tokens.mul(shared_profit) / total_supply));
        }
        // if burned last tokens
        else if (dividends_from_tokens != 0) {
            user.funds_correction = user.funds_correction.sub(int(dividends_from_tokens));
        }
    }

    /*
     * @dev Rewards the referrer from given amount of funds
     */
    function rewardReferrer(address addr, address referrer_addr, uint funds, uint full_funds) internal returns (uint funds_after_reward) {
        UserRecord storage referrer = user_data[referrer_addr];
        if (referrer.tokens >= minimal_stake) {
            (uint reward_funds, uint taxed_funds) = fee_referral.split(funds);
            referrer.ref_funds = referrer.ref_funds.add(reward_funds);
            emit ReferralReward(addr, referrer_addr, full_funds, reward_funds, now);
            return taxed_funds;
        }
        else {
            return funds;
        }
    }

    /*
    * @dev Calculate tokens from funds
    *
    * Given:
    *   a[1] = price
    *   d = price_offset
    *   sum(n) = funds
    * Here is used arithmetic progression's equation transformed to a quadratic equation:
    *   a * n^2 + b * n + c = 0
    * Where:
    *   a = d
    *   b = 2 * a[1] - d
    *   c = -2 * sum(n)
    * Solve it and first root is what we need - amount of tokens
    * So:
    *   tokens = n
    *   price = a[n+1]
    *
    * For details see method below
    */
    function fundsToTokens(uint funds) internal view returns (uint tokens, uint _price) {
        uint b = price.mul(2).sub(price_offset);
        uint D = b.mul(b).add(price_offset.mul(8).mul(funds).mul(precision_factor));
        uint n = D.sqrt().sub(b).mul(precision_factor) / price_offset.mul(2);
        uint anp1 = price.add(price_offset.mul(n) / precision_factor);
        return (n, anp1);
    }

    /*
    * @dev Calculate funds from tokens
    *
    * Given:
    *   a[1] = sell_price
    *   d = price_offset
    *   n = tokens
    * Here is used arithmetic progression's equation (-d because of d must be negative to reduce price):
    *   a[n] = a[1] - d * (n - 1)
    *   sum(n) = (a[1] + a[n]) * n / 2
    * So:
    *   funds = sum(n)
    *   price = a[n]
    *
    * For details see method above
    */
    function tokensToFunds(uint tokens) internal view returns (uint funds, uint _price) {
        uint sell_price = price.sub(price_offset);
        uint an = sell_price.add(price_offset).sub(price_offset.mul(tokens) / precision_factor);
        uint sn = sell_price.add(an).mul(tokens) / precision_factor.mul(2);
        return (sn / precision_factor, an);
    }

    // ==== Events ==== //

    event Purchase(address indexed addr, uint funds, uint tokens, uint price, uint time);
    event Selling(address indexed addr, uint tokens, uint funds, uint price, uint time);
    event Reinvestment(address indexed addr, uint funds, uint tokens, uint price, uint time);
    event Withdrawal(address indexed addr, uint funds, uint time);
    event Donation(address indexed addr, uint funds, uint time);
    event ReferralReward(address indexed referral_addr, address indexed referrer_addr, uint funds, uint reward_funds, uint time);

    //ERC20
    event Transfer(address indexed from_addr, address indexed to_addr, uint tokens);

}

library SafeMath {

    /**
    * @dev Multiplies two numbers
    */
    function mul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) {
            return 0;
        }
        uint c = a * b;
        require(c / a == b, "mul failed");
        return c;
    }

    /**
    * @dev Subtracts two numbers
    */
    function sub(uint a, uint b) internal pure returns (uint) {
        require(b <= a, "sub failed");
        return a - b;
    }

    /**
    * @dev Adds two numbers
    */
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "add failed");
        return c;
    }

    /**
     * @dev Gives square root from number
     */
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = add(x, 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = add(x / z, z) / 2;
        }
    }
}

library SafeMathInt {

    /**
    * @dev Subtracts two numbers
    */
    function sub(int a, int b) internal pure returns (int) {
        int c = a - b;
        require(c <= a, "sub failed");
        return c;
    }

    /**
    * @dev Adds two numbers
    */
    function add(int a, int b) internal pure returns (int) {
        int c = a + b;
        require(c >= a, "add failed");
        return c;
    }
}

library Fee {

    using SafeMath for uint;

    struct fee {
        uint num;
        uint den;
    }

    /*
    * @dev Splits given value to two parts: tax itself and taxed value
    */
    function split(fee memory f, uint value) internal pure returns (uint tax, uint taxed_value) {
        if (value == 0) {
            return (0, 0);
        }
        tax = value.mul(f.num) / f.den;
        taxed_value = value.sub(tax);
    }

    /*
    * @dev Returns only tax part
    */
    function get_tax(fee memory f, uint value) internal pure returns (uint tax) {
        if (value == 0) {
            return 0;
        }
        tax = value.mul(f.num) / f.den;
    }
}

library ToAddress {

    /*
    * @dev Transforms bytes to address
    */
    function toAddr(bytes source) internal pure returns (address addr) {
        assembly {
            addr := mload(add(source, 0x14))
        }
        return addr;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to_addr","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokens","type":"uint256"},{"name":"apply_fee","type":"bool"}],"name":"expectedFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"funds","type":"uint256"},{"name":"apply_fee","type":"bool"}],"name":"expectedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"referrer","type":"address"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"funds","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"funds","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Selling","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"funds","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Reinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"funds","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"funds","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Donation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"referral_addr","type":"address"},{"indexed":true,"name":"referrer_addr","type":"address"},{"indexed":false,"name":"funds","type":"uint256"},{"indexed":false,"name":"reward_funds","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"ReferralReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from_addr","type":"address"},{"indexed":true,"name":"to_addr","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

6080604052604080519081016040528060018152602001600a81525060008082015181600001556020820151816001015550506040805190810160405280600181526020016014815250600260008201518160000155602082015181600101555050604080519081016040528060018152602001606481525060046000820151816000015560208201518160010155505060408051908101604052806021815260200160648152506006600082015181600001556020820151816001015550506c01431e0fae6d7217caa000000060085560006009556000600a553480156100e657600080fd5b506125b8806100f66000396000f3006080604052600436106100f0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461013657806306fdde031461018d57806318160ddd1461021d578063313ce567146102485780633ccfd60b146102795780634b7503341461029057806370a08231146102bb5780638620410b1461031257806395d89b411461033d578063a9059cbb146103cd578063be2eaad414610432578063c5f606201461047f578063e4849b32146104cc578063e9fad8ee146104f9578063ed88c68e14610510578063f088d5471461051a578063fdb5a03e14610550575b61013461012f6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050610567565b610578565b005b34801561014257600080fd5b50610177600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610978565b6040518082815260200191505060405180910390f35b34801561019957600080fd5b506101a2610b32565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e25780820151818401526020810190506101c7565b50505050905090810190601f16801561020f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022957600080fd5b50610232610b6b565b6040518082815260200191505060405180910390f35b34801561025457600080fd5b5061025d610b75565b604051808260ff1660ff16815260200191505060405180910390f35b34801561028557600080fd5b5061028e610b7a565b005b34801561029c57600080fd5b506102a5610d01565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d3c565b6040518082815260200191505060405180910390f35b34801561031e57600080fd5b50610327610d88565b6040518082815260200191505060405180910390f35b34801561034957600080fd5b50610352610da5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610392578082015181840152602081019050610377565b50505050905090810190601f1680156103bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d957600080fd5b50610418600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561043e57600080fd5b50610469600480360381019080803590602001909291908035151590602001909291905050506111e9565b6040518082815260200191505060405180910390f35b34801561048b57600080fd5b506104b660048036038101908080359060200190929190803515159060200190929190505050611274565b6040518082815260200191505060405180910390f35b3480156104d857600080fd5b506104f7600480360381019080803590602001909291905050506112e2565b005b34801561050557600080fd5b5061050e611689565b005b6105186116ee565b005b61054e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610578565b005b34801561055c57600080fd5b50610565611761565b005b600060148201519050809050919050565b60008060008060006105b334600060408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9450945060008514151515610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e636f6d696e672066756e647320697320746f6f20736d616c6c000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060008673ffffffffffffffffffffffffffffffffffffffff16141580156106c457503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561070a575060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561075357858360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610843576107c7338460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168734611bf7565b945060008514151515610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e636f6d696e672066756e647320697320746f6f20736d616c6c000000000081525060200191505060405180910390fd5b5b61084c84611d35565b91509150600082141515156108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e636f6d696e672066756e647320697320746f6f20736d616c6c000000000081525060200191505060405180910390fd5b806008819055506108da3383611e9e565b6108ef85600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167fd721454499cf9c37b757e03b9d675df451c229048129d6e2d552216a035e6a553484670de0b6b3a764000060085481151561094457fe5b04426040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b6000610982612546565b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150610a6a82606001518360400151611fb490919063ffffffff16565b905060008112151515610a7c57600080fd5b60006009541115610ac257610abf600954610aa68460200151600a5461203e90919063ffffffff16565b811515610aaf57fe5b04826120e590919063ffffffff16565b90505b600082608001511315610aed57610ae682608001518261216f90919063ffffffff16565b9050610b18565b600082608001511215610b1757610b148260800151600003826120e590919063ffffffff16565b90505b5b60008112151515610b2857600080fd5b8092505050919050565b6040805190810160405280601281526020017f50616e7468656f6e2045636f73797374656d000000000000000000000000000081525081565b6000600954905090565b601281565b600080610b8633610978565b9150600082111515610c00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f752068617665206e6f206469766964656e6473000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610c588282600401546120e590919063ffffffff16565b81600401819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ca6573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb8342604051808381526020018281526020019250505060405180910390a25050565b6000670de0b6b3a7640000610d2d6b204fce5e3e250261100000006008546121f990919063ffffffff16565b811515610d3657fe5b04905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000670de0b6b3a7640000600854811515610d9f57fe5b04905090565b6040805190810160405280600381526020017f50414e000000000000000000000000000000000000000000000000000000000081525081565b600080600080600085600081111515610e85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657281526020017f207468616e207a65726f0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548111151515610f3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f752068617665206e6f7420656e6f75676820746f6b656e7300000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515611009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f596f752063616e6e6f74207472616e7366657220746f6b656e7320746f20796f81526020017f757273656c66000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61103c87600460408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b94509450600085141515156110b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b6110c28561227e565b925092506000831415151561113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b81600881905550611150338861237b565b61115a8885611e9e565b61116f83600a54611fb490919063ffffffff16565b600a819055508773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a360019550505050505092915050565b6000806000808514806111fe57506000600954145b1561120c576000925061126c565b60095485111561121c5760095494505b6112258561227e565b50915083156112685761126182600260408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9150508091505b8192505b505092915050565b60008060008085141561128a57600092506112da565b83156112ca576112c385600060408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9250508194505b6112d385611d35565b5090508092505b505092915050565b600080600080600085600081111515611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657281526020017f207468616e207a65726f0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548111151515611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f752068617665206e6f7420656e6f75676820746f6b656e7300000000000081525060200191505060405180910390fd5b61144c8761227e565b95509550600086141515156114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b8460088190555061150386600260408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9350935060008414151515611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b61158a338861237b565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506115e2838360020154611fb490919063ffffffff16565b82600201819055506115ff84600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167fafd310387603da0dcf44f11f54b04254b548c58b194e75f85851e849f0eef3078888670de0b6b3a764000060085481151561165457fe5b04426040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905060008111156116e3576116e2816112e2565b5b6116eb610b7a565b50565b61170334600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167f106aac375bbcf013d1e52338bbf9e740009a1a3a6869f8daa1b72aa1620f5fec3442604051808381526020018281526020019250505060405180910390a2565b60008060008060008061177333610978565b95506000861115156117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f752068617665206e6f206469766964656e6473000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002094506118458686600401546120e590919063ffffffff16565b856004018190555061188086600060408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9350935060008414151515611923576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e73756666696369656e74206469766964656e647320746f20646f2074686181526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a3957611997338660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168689611bf7565b935060008414151515611a38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e73756666696369656e74206469766964656e647320746f20646f2074686181526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b611a4283611d35565b9150915060008214151515611ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e73756666696369656e74206469766964656e647320746f20646f2074686181526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600881905550611af63383611e9e565b611b0b84600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167f1abe689c7914cafd54f789eb0851e90cba235302161e81e259ee4c357c374d828784670de0b6b3a7640000600854811515611b6057fe5b04426040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b6000806000831415611bb25760008081915080905091509150611bf0565b8360200151611bce85600001518561203e90919063ffffffff16565b811515611bd757fe5b049150611bed82846121f990919063ffffffff16565b90505b9250929050565b600080600080600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250678ac7230489e800008360010154101515611d2657611c8686600660408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b91509150611ca1828460030154611fb490919063ffffffff16565b83600301819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f870e4e1dcfab6c09707448d3659b3d8097c084bf06e7467d6029940cd7122ee087854260405180848152602001838152602001828152602001935050505060405180910390a3809350611d2a565b8593505b505050949350505050565b600080600080600080611d726b204fce5e3e25026110000000611d64600260085461203e90919063ffffffff16565b6121f990919063ffffffff16565b9350611de4611dc3670de0b6b3a7640000611db58a611da760086b204fce5e3e2502611000000061203e90919063ffffffff16565b61203e90919063ffffffff16565b61203e90919063ffffffff16565b611dd6868761203e90919063ffffffff16565b611fb490919063ffffffff16565b9250611e0660026b204fce5e3e2502611000000061203e90919063ffffffff16565b611e3b670de0b6b3a7640000611e2d87611e1f886124ed565b6121f990919063ffffffff16565b61203e90919063ffffffff16565b811515611e4457fe5b049150611e8d670de0b6b3a7640000611e72846b204fce5e3e2502611000000061203e90919063ffffffff16565b811515611e7b57fe5b04600854611fb490919063ffffffff16565b905081819550955050505050915091565b600080600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020915060006009541190508015611f2d57600954611f1c611f0b85600954611fb490919063ffffffff16565b600a5461203e90919063ffffffff16565b811515611f2557fe5b04600a819055505b611f4283600954611fb490919063ffffffff16565b600981905550611f5f838360010154611fb490919063ffffffff16565b82600101819055508015611fae57611fa5600954611f88600a548661203e90919063ffffffff16565b811515611f9157fe5b0483600401546120e590919063ffffffff16565b82600401819055505b50505050565b6000808284019050838110151515612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f616464206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b600080600084141561205357600091506120de565b828402905082848281151561206457fe5b041415156120da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6d756c206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505b5092915050565b6000808284019050838112151515612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f616464206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b60008082840390508381131515156121ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f737562206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b6000828211151515612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f737562206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b60008060008060006122a76b204fce5e3e250261100000006008546121f990919063ffffffff16565b925061230b670de0b6b3a76400006122d4886b204fce5e3e2502611000000061203e90919063ffffffff16565b8115156122dd57fe5b046122fd6b204fce5e3e2502611000000086611fb490919063ffffffff16565b6121f990919063ffffffff16565b91506123296002670de0b6b3a764000061203e90919063ffffffff16565b61234e876123408587611fb490919063ffffffff16565b61203e90919063ffffffff16565b81151561235757fe5b049050670de0b6b3a76400008181151561236d57fe5b048294509450505050915091565b600080600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600090508260095414156123f6576009546123e98360010154600a5461203e90919063ffffffff16565b8115156123f257fe5b0490505b600954612422612411856009546121f990919063ffffffff16565b600a5461203e90919063ffffffff16565b81151561242b57fe5b04600a81905550612447836009546121f990919063ffffffff16565b6009819055506124648383600101546121f990919063ffffffff16565b8260010181905550600060095411156124bc576124af600954612492600a548661203e90919063ffffffff16565b81151561249b57fe5b04836004015461216f90919063ffffffff16565b82600401819055506124e7565b6000811415156124e6576124dd81836004015461216f90919063ffffffff16565b82600401819055505b5b50505050565b60008060026124fd846001611fb4565b81151561250657fe5b0490508291505b8181101561254057809150600261252f828581151561252857fe5b0483611fb4565b81151561253857fe5b04905061250d565b50919050565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820d955d83e2f50a5c7177643dd267b780a8970bb1eab8c7cc7e550b3edf856cb5f0029

Deployed Bytecode

0x6080604052600436106100f0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461013657806306fdde031461018d57806318160ddd1461021d578063313ce567146102485780633ccfd60b146102795780634b7503341461029057806370a08231146102bb5780638620410b1461031257806395d89b411461033d578063a9059cbb146103cd578063be2eaad414610432578063c5f606201461047f578063e4849b32146104cc578063e9fad8ee146104f9578063ed88c68e14610510578063f088d5471461051a578063fdb5a03e14610550575b61013461012f6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050610567565b610578565b005b34801561014257600080fd5b50610177600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610978565b6040518082815260200191505060405180910390f35b34801561019957600080fd5b506101a2610b32565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e25780820151818401526020810190506101c7565b50505050905090810190601f16801561020f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022957600080fd5b50610232610b6b565b6040518082815260200191505060405180910390f35b34801561025457600080fd5b5061025d610b75565b604051808260ff1660ff16815260200191505060405180910390f35b34801561028557600080fd5b5061028e610b7a565b005b34801561029c57600080fd5b506102a5610d01565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d3c565b6040518082815260200191505060405180910390f35b34801561031e57600080fd5b50610327610d88565b6040518082815260200191505060405180910390f35b34801561034957600080fd5b50610352610da5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610392578082015181840152602081019050610377565b50505050905090810190601f1680156103bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d957600080fd5b50610418600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561043e57600080fd5b50610469600480360381019080803590602001909291908035151590602001909291905050506111e9565b6040518082815260200191505060405180910390f35b34801561048b57600080fd5b506104b660048036038101908080359060200190929190803515159060200190929190505050611274565b6040518082815260200191505060405180910390f35b3480156104d857600080fd5b506104f7600480360381019080803590602001909291905050506112e2565b005b34801561050557600080fd5b5061050e611689565b005b6105186116ee565b005b61054e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610578565b005b34801561055c57600080fd5b50610565611761565b005b600060148201519050809050919050565b60008060008060006105b334600060408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9450945060008514151515610630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e636f6d696e672066756e647320697320746f6f20736d616c6c000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925060008673ffffffffffffffffffffffffffffffffffffffff16141580156106c457503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561070a575060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561075357858360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610843576107c7338460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168734611bf7565b945060008514151515610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e636f6d696e672066756e647320697320746f6f20736d616c6c000000000081525060200191505060405180910390fd5b5b61084c84611d35565b91509150600082141515156108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e636f6d696e672066756e647320697320746f6f20736d616c6c000000000081525060200191505060405180910390fd5b806008819055506108da3383611e9e565b6108ef85600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167fd721454499cf9c37b757e03b9d675df451c229048129d6e2d552216a035e6a553484670de0b6b3a764000060085481151561094457fe5b04426040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b6000610982612546565b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815250509150610a6a82606001518360400151611fb490919063ffffffff16565b905060008112151515610a7c57600080fd5b60006009541115610ac257610abf600954610aa68460200151600a5461203e90919063ffffffff16565b811515610aaf57fe5b04826120e590919063ffffffff16565b90505b600082608001511315610aed57610ae682608001518261216f90919063ffffffff16565b9050610b18565b600082608001511215610b1757610b148260800151600003826120e590919063ffffffff16565b90505b5b60008112151515610b2857600080fd5b8092505050919050565b6040805190810160405280601281526020017f50616e7468656f6e2045636f73797374656d000000000000000000000000000081525081565b6000600954905090565b601281565b600080610b8633610978565b9150600082111515610c00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f752068617665206e6f206469766964656e6473000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610c588282600401546120e590919063ffffffff16565b81600401819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ca6573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb8342604051808381526020018281526020019250505060405180910390a25050565b6000670de0b6b3a7640000610d2d6b204fce5e3e250261100000006008546121f990919063ffffffff16565b811515610d3657fe5b04905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000670de0b6b3a7640000600854811515610d9f57fe5b04905090565b6040805190810160405280600381526020017f50414e000000000000000000000000000000000000000000000000000000000081525081565b600080600080600085600081111515610e85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657281526020017f207468616e207a65726f0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548111151515610f3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f752068617665206e6f7420656e6f75676820746f6b656e7300000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515611009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f596f752063616e6e6f74207472616e7366657220746f6b656e7320746f20796f81526020017f757273656c66000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61103c87600460408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b94509450600085141515156110b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b6110c28561227e565b925092506000831415151561113f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b81600881905550611150338861237b565b61115a8885611e9e565b61116f83600a54611fb490919063ffffffff16565b600a819055508773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a360019550505050505092915050565b6000806000808514806111fe57506000600954145b1561120c576000925061126c565b60095485111561121c5760095494505b6112258561227e565b50915083156112685761126182600260408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9150508091505b8192505b505092915050565b60008060008085141561128a57600092506112da565b83156112ca576112c385600060408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9250508194505b6112d385611d35565b5090508092505b505092915050565b600080600080600085600081111515611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657281526020017f207468616e207a65726f0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548111151515611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f752068617665206e6f7420656e6f75676820746f6b656e7300000000000081525060200191505060405180910390fd5b61144c8761227e565b95509550600086141515156114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b8460088190555061150386600260408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9350935060008414151515611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e73756666696369656e7420746f6b656e7320746f20646f2074686174000081525060200191505060405180910390fd5b61158a338861237b565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506115e2838360020154611fb490919063ffffffff16565b82600201819055506115ff84600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167fafd310387603da0dcf44f11f54b04254b548c58b194e75f85851e849f0eef3078888670de0b6b3a764000060085481151561165457fe5b04426040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905060008111156116e3576116e2816112e2565b5b6116eb610b7a565b50565b61170334600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167f106aac375bbcf013d1e52338bbf9e740009a1a3a6869f8daa1b72aa1620f5fec3442604051808381526020018281526020019250505060405180910390a2565b60008060008060008061177333610978565b95506000861115156117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f752068617665206e6f206469766964656e6473000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002094506118458686600401546120e590919063ffffffff16565b856004018190555061188086600060408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b9350935060008414151515611923576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e73756666696369656e74206469766964656e647320746f20646f2074686181526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611a3957611997338660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168689611bf7565b935060008414151515611a38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e73756666696369656e74206469766964656e647320746f20646f2074686181526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b611a4283611d35565b9150915060008214151515611ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e73756666696369656e74206469766964656e647320746f20646f2074686181526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600881905550611af63383611e9e565b611b0b84600a54611fb490919063ffffffff16565b600a819055503373ffffffffffffffffffffffffffffffffffffffff167f1abe689c7914cafd54f789eb0851e90cba235302161e81e259ee4c357c374d828784670de0b6b3a7640000600854811515611b6057fe5b04426040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b6000806000831415611bb25760008081915080905091509150611bf0565b8360200151611bce85600001518561203e90919063ffffffff16565b811515611bd757fe5b049150611bed82846121f990919063ffffffff16565b90505b9250929050565b600080600080600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250678ac7230489e800008360010154101515611d2657611c8686600660408051908101604052908160008201548152602001600182015481525050611b9490919063ffffffff16565b91509150611ca1828460030154611fb490919063ffffffff16565b83600301819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f870e4e1dcfab6c09707448d3659b3d8097c084bf06e7467d6029940cd7122ee087854260405180848152602001838152602001828152602001935050505060405180910390a3809350611d2a565b8593505b505050949350505050565b600080600080600080611d726b204fce5e3e25026110000000611d64600260085461203e90919063ffffffff16565b6121f990919063ffffffff16565b9350611de4611dc3670de0b6b3a7640000611db58a611da760086b204fce5e3e2502611000000061203e90919063ffffffff16565b61203e90919063ffffffff16565b61203e90919063ffffffff16565b611dd6868761203e90919063ffffffff16565b611fb490919063ffffffff16565b9250611e0660026b204fce5e3e2502611000000061203e90919063ffffffff16565b611e3b670de0b6b3a7640000611e2d87611e1f886124ed565b6121f990919063ffffffff16565b61203e90919063ffffffff16565b811515611e4457fe5b049150611e8d670de0b6b3a7640000611e72846b204fce5e3e2502611000000061203e90919063ffffffff16565b811515611e7b57fe5b04600854611fb490919063ffffffff16565b905081819550955050505050915091565b600080600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020915060006009541190508015611f2d57600954611f1c611f0b85600954611fb490919063ffffffff16565b600a5461203e90919063ffffffff16565b811515611f2557fe5b04600a819055505b611f4283600954611fb490919063ffffffff16565b600981905550611f5f838360010154611fb490919063ffffffff16565b82600101819055508015611fae57611fa5600954611f88600a548661203e90919063ffffffff16565b811515611f9157fe5b0483600401546120e590919063ffffffff16565b82600401819055505b50505050565b6000808284019050838110151515612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f616464206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b600080600084141561205357600091506120de565b828402905082848281151561206457fe5b041415156120da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6d756c206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505b5092915050565b6000808284019050838112151515612165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f616464206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b60008082840390508381131515156121ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f737562206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b6000828211151515612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f737562206661696c65640000000000000000000000000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b60008060008060006122a76b204fce5e3e250261100000006008546121f990919063ffffffff16565b925061230b670de0b6b3a76400006122d4886b204fce5e3e2502611000000061203e90919063ffffffff16565b8115156122dd57fe5b046122fd6b204fce5e3e2502611000000086611fb490919063ffffffff16565b6121f990919063ffffffff16565b91506123296002670de0b6b3a764000061203e90919063ffffffff16565b61234e876123408587611fb490919063ffffffff16565b61203e90919063ffffffff16565b81151561235757fe5b049050670de0b6b3a76400008181151561236d57fe5b048294509450505050915091565b600080600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600090508260095414156123f6576009546123e98360010154600a5461203e90919063ffffffff16565b8115156123f257fe5b0490505b600954612422612411856009546121f990919063ffffffff16565b600a5461203e90919063ffffffff16565b81151561242b57fe5b04600a81905550612447836009546121f990919063ffffffff16565b6009819055506124648383600101546121f990919063ffffffff16565b8260010181905550600060095411156124bc576124af600954612492600a548661203e90919063ffffffff16565b81151561249b57fe5b04836004015461216f90919063ffffffff16565b82600401819055506124e7565b6000811415156124e6576124dd81836004015461216f90919063ffffffff16565b82600401819055505b5b50505050565b60008060026124fd846001611fb4565b81151561250657fe5b0490508291505b8181101561254057809150600261252f828581151561252857fe5b0483611fb4565b81151561253857fe5b04905061250d565b50919050565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820d955d83e2f50a5c7177643dd267b780a8970bb1eab8c7cc7e550b3edf856cb5f0029

Swarm Source

bzzr://d955d83e2f50a5c7177643dd267b780a8970bb1eab8c7cc7e550b3edf856cb5f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.