ETH Price: $3,375.72 (-6.89%)
Gas: 23 Gwei

Contract

0x3715669c0624371d25CdEC2C3E22dDC0d3328FD4
 

Overview

ETH Balance

12 wei

Eth Value

Less Than $0.01 (@ $3,375.72/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Exit68493602018-12-08 15:34:251927 days ago1544283265IN
0x3715669c...0d3328FD4
0 ETH0.0008762113
Exit68483752018-12-08 11:32:471927 days ago1544268767IN
0x3715669c...0d3328FD4
0 ETH0.0009789210
Transfer68463822018-12-08 3:36:331928 days ago1544240193IN
0x3715669c...0d3328FD4
1 ETH0.0017003515
Buy68463412018-12-08 3:26:321928 days ago1544239592IN
0x3715669c...0d3328FD4
0.18 ETH0.00479441
0x6001608068463282018-12-08 3:24:081928 days ago1544239448IN
 Create: PantheonChina
0 ETH0.010154775

Latest 4 internal transactions

Advanced mode:
Parent Txn Hash Block From To Value
194108002024-03-11 8:56:117 days ago1710147371
0x3715669c...0d3328FD4
0.01976398 ETH
194108002024-03-11 8:56:117 days ago1710147371
0x3715669c...0d3328FD4
10 wei
68493602018-12-08 15:34:251927 days ago1544283265
0x3715669c...0d3328FD4
0.46983467 ETH
68483752018-12-08 11:32:471927 days ago1544268767
0x3715669c...0d3328FD4
0.69040134 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PantheonChina

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

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

pragma solidity 0.4.25;

/*
* Pantheon China 第一份智能合約提供穩定的收入。 
* 智能合約可確保您的資金免遭盜竊和黑客攻擊
* 不要投入超過你可以輸的
*/

contract PantheonChina {

    struct UserRecord {
        address referrer;
        uint tokens;
        uint gained_funds;
        uint ref_funds;
        // 這個領域可能是負面的
        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 China";
    string constant public symbol = "PAC";
    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%

    // 最少量的令牌將成為推薦計劃的參與者
    uint constant private minimal_stake = 10e18;

    // 轉換eth < - >令牌的因素,具有所需的計算精度
    uint constant private precision_factor = 1e18;

    // 定價政策
    //  - 如果用戶購買1個令牌,價格將增加“price_offset”值
    //  - 如果用戶賣出1個令牌,價格將降低“price_offset”值
    // 有關詳細信息,請參閱方法“fundsToTokens”和“tokensToFunds”
    uint private price = 1e29; // 100 Gwei * precision_factor
    uint constant private price_offset = 1e28; // 10 Gwei * precision_factor

    // 令牌總數
    uint private total_supply = 0;

    // 令牌持有者之間共享的總利潤。由於此參數,它並不能準確反映資金總額
    // 可以修改以在總供應量發生變化時保持真實用戶的股息
    // 有關詳細信息,請參閱方法“dividendsOf”並在代碼中使用“funds_correction”
    uint private shared_profit = 0;

    // 用戶數據的映射
    mapping(address => UserRecord) private user_data;

    // ==== 修改 ==== //

    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");
        _;
    }

    // ==== 上市 API ==== //

    // ---- 寫作方法 ---- //

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

    /*
    *  從收到的資金購買代幣
    */
    function buy(address referrer) public payable {

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

        // 更新用戶的推薦人
        //  - 你不能成為自己的推薦人
        //  - 用戶和他的推薦人將在一起生活
        UserRecord storage user = user_data[msg.sender];
        if (referrer != 0x0 && referrer != msg.sender && user.referrer == 0x0) {
            user.referrer = referrer;
        }

        // 申請推薦獎金
        if (user.referrer != 0x0) {
            fee_funds = rewardReferrer(msg.sender, user.referrer, fee_funds, msg.value);
            require(fee_funds != 0, "收入資金太小");
        }

        // 計算代幣金額和變更價格
        (uint tokens, uint _price) = fundsToTokens(taxed_funds);
        require(tokens != 0, "收入資金太小");
        price = _price;

        // 薄荷代幣,增加共享利潤
        mintTokens(msg.sender, tokens);
        shared_profit = shared_profit.add(fee_funds);

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

    /*
    *  出售給定數量的代幣並獲得資金
    */
    function sell(uint tokens) public onlyValidTokenAmount(tokens) {

        // 計算資金數額和變更價格
        (uint funds, uint _price) = tokensToFunds(tokens);
        require(funds != 0, "沒有足夠的令牌來做這件事");
        price = _price;

        // 申請費
        (uint fee_funds, uint taxed_funds) = fee_selling.split(funds);
        require(fee_funds != 0, "沒有足夠的令牌來做這件事");

        // 刻錄令牌並為用戶的股息增加資金
        burnTokens(msg.sender, tokens);
        UserRecord storage user = user_data[msg.sender];
        user.gained_funds = user.gained_funds.add(taxed_funds);

        // 增加共享利潤
        shared_profit = shared_profit.add(fee_funds);

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

    /*
    *  將給定數量的令牌從發件人轉移到另一個用戶
    * 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");

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

        // 計算資金數額和變更價格
        (uint funds, uint _price) = tokensToFunds(fee_tokens);
        require(funds != 0, "Insufficient tokens to do that");
        price = _price;

        // 燃燒和薄荷代幣,不含費用
        burnTokens(msg.sender, tokens);
        mintTokens(to_addr, taxed_tokens);

        // 增加共享利潤
        shared_profit = shared_profit.add(funds);

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

    /*
    *  再投資所有股息
    */
    function reinvest() public {

        // 獲得所有股息
        uint funds = dividendsOf(msg.sender);
        require(funds > 0, "You have no dividends");

        // 做出更正,之後的事件將為0
        UserRecord storage user = user_data[msg.sender];
        user.funds_correction = user.funds_correction.add(int(funds));

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

        // 申請推薦獎金
        if (user.referrer != 0x0) {
            fee_funds = rewardReferrer(msg.sender, user.referrer, fee_funds, funds);
            require(fee_funds != 0, "Insufficient dividends to do that");
        }

        // 計算代幣金額和變更價格
        (uint tokens, uint _price) = fundsToTokens(taxed_funds);
        require(tokens != 0, "Insufficient dividends to do that");
        price = _price;

        // 薄荷代幣,增加共享利潤
        mintTokens(msg.sender, tokens);
        shared_profit = shared_profit.add(fee_funds);

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

    /*
    *  撤回所有股息
    */
    function withdraw() public {

        // 獲得所有股息
        uint funds = dividendsOf(msg.sender);
        require(funds > 0, "You have no dividends");

        // 做出更正,之後的事件將為0
        UserRecord storage user = user_data[msg.sender];
        user.funds_correction = user.funds_correction.add(int(funds));

        // 發送資金
        msg.sender.transfer(funds);

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

    /*
    *  出售所有代幣和分紅
    */
    function exit() public {

        // 賣掉所有代幣
        uint tokens = user_data[msg.sender].tokens;
        if (tokens > 0) {
            sell(tokens);
        }

        withdraw();
    }

    /*
    * 警告!此方法在令牌持有者之間分配所有傳入資金,並且不提供任何內容
    * 它將在未來由我們的生態系統中的其他合同/地址使用
    * 但如果你想捐款,歡迎你
    */
    function donate() public payable {
        shared_profit = shared_profit.add(msg.value);
        emit Donation(msg.sender, msg.value, now);
    }

    
    function totalSupply() public view returns (uint) {
        return total_supply;
    }

   
    function balanceOf(address addr) public view returns (uint) {
        return user_data[addr].tokens;
    }

   
    function dividendsOf(address addr) public view returns (uint) {

        UserRecord memory user = user_data[addr];

       
        int d = int(user.gained_funds.add(user.ref_funds));
        require(d >= 0);

        if (total_supply > 0) {
            d = d.add(int(shared_profit.mul(user.tokens) / total_supply));
        }

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

        require(d >= 0);

        return uint(d);
    }

   
    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;
    }

    function expectedFunds(uint tokens, bool apply_fee) public view returns (uint) {
        // 總共有空令牌或沒有銷售代幣
        if (tokens == 0 || total_supply == 0) {
            return 0;
        }
        // 比總共開採更多的令牌,只是從計算中排除不必要的令牌
        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;
    }

    /*
    *  下一個令牌的購買價格
    */
    function buyPrice() public view returns (uint) {
        return price / precision_factor;
    }

    /*
    *  售價下一個令牌
    */
    function sellPrice() public view returns (uint) {
        return price.sub(price_offset) / precision_factor;
    }

    // ==== 私人的 API ==== //

    function mintTokens(address addr, uint tokens) internal {

        UserRecord storage user = user_data[addr];

        bool not_first_minting = total_supply > 0;

        if (not_first_minting) {
            shared_profit = shared_profit.mul(total_supply.add(tokens)) / total_supply;
        }

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

        if (not_first_minting) {
            user.funds_correction = user.funds_correction.add(int(tokens.mul(shared_profit) / total_supply));
        }
    }

    function burnTokens(address addr, uint tokens) internal {

        UserRecord storage user = user_data[addr];

        uint dividends_from_tokens = 0;
        if (total_supply == tokens) {
            dividends_from_tokens = shared_profit.mul(user.tokens) / total_supply;
        }

        shared_profit = shared_profit.mul(total_supply.sub(tokens)) / total_supply;

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

        if (total_supply > 0) {
            user.funds_correction = user.funds_correction.sub(int(tokens.mul(shared_profit) / total_supply));
        }
        else if (dividends_from_tokens != 0) {
            user.funds_correction = user.funds_correction.sub(int(dividends_from_tokens));
        }
    }

    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;
        }
    }

    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);
    }

    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);
    }

    // ==== 活動 ==== //

    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 {

    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;
    }

    function sub(uint a, uint b) internal pure returns (uint) {
        require(b <= a, "sub failed");
        return a - b;
    }

    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "add failed");
        return c;
    }

    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 {

    function sub(int a, int b) internal pure returns (int) {
        int c = a - b;
        require(c <= a, "sub failed");
        return c;
    }

    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;
    }

    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);
    }

    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 {

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

60016080819052600a60a0819052600082815581835560c0839052601460e081905260028490556003556101008390526064610120819052600493909355600583905561018060405260216101408190526101608490526006556007929092556c01431e0fae6d7217caa000000060085560098290555534801561008257600080fd5b50611a79806100926000396000f3006080604052600436106100ef5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461013357806306fdde031461016657806318160ddd146101f0578063313ce567146102055780633ccfd60b146102305780634b7503341461024557806370a082311461025a5780638620410b1461027b57806395d89b4114610290578063a9059cbb146102a5578063be2eaad4146102dd578063c5f60620146102fa578063e4849b3214610317578063e9fad8ee1461032f578063ed88c68e14610344578063f088d5471461034c578063fdb5a03e14610360575b61013161012c6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610375945050505050565b61037c565b005b34801561013f57600080fd5b50610154600160a060020a03600435166105e8565b60408051918252519081900360200190f35b34801561017257600080fd5b5061017b610718565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b557818101518382015260200161019d565b50505050905090810190601f1680156101e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101fc57600080fd5b5061015461074f565b34801561021157600080fd5b5061021a610755565b6040805160ff9092168252519081900360200190f35b34801561023c57600080fd5b5061013161075a565b34801561025157600080fd5b50610154610855565b34801561026657600080fd5b50610154600160a060020a0360043516610890565b34801561028757600080fd5b506101546108ae565b34801561029c57600080fd5b5061017b6108c3565b3480156102b157600080fd5b506102c9600160a060020a03600435166024356108fa565b604080519115158252519081900360200190f35b3480156102e957600080fd5b506101546004356024351515610bd4565b34801561030657600080fd5b506101546004356024351515610c4f565b34801561032357600080fd5b50610131600435610caa565b34801561033b57600080fd5b50610131610f79565b610131610fa8565b610131600160a060020a036004351661037c565b34801561036c57600080fd5b50610131610ff9565b6014015190565b6040805180820190915260008054825260015460208301529081908190819081906103ad903463ffffffff6112cb16565b9095509350841515610409576040805160e560020a62461bcd02815260206004820152601b60248201527f496e636f6d696e672066756e647320697320746f6f20736d616c6c0000000000604482015290519081900360640190fd5b336000908152600b602052604090209250600160a060020a0386161580159061043b5750600160a060020a0386163314155b801561044f57508254600160a060020a0316155b1561047b57825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161783555b8254600160a060020a0316156104fc5782546104a3903390600160a060020a0316873461131e565b94508415156104fc576040805160e560020a62461bcd02815260206004820152601260248201527fe694b6e585a5e8b387e98791e5a4aae5b08f0000000000000000000000000000604482015290519081900360640190fd5b610505846113f9565b9092509050811515610561576040805160e560020a62461bcd02815260206004820152601260248201527fe694b6e585a5e8b387e98791e5a4aae5b08f0000000000000000000000000000604482015290519081900360640190fd5b60088190556105703383611520565b600a54610583908663ffffffff6115f016565b600a5560085433907fd721454499cf9c37b757e03b9d675df451c229048129d6e2d552216a035e6a559034908590670de0b6b3a7640000905b6040805194855260208501939093520482820152426060830152519081900360800190a2505050505050565b60006105f2611a14565b50600160a060020a038083166000908152600b60209081526040808320815160a081018352815490951685526001810154928501929092526002820154908401819052600382015460608501819052600490920154608085015261065b9163ffffffff6115f016565b9050600081121561066b57600080fd5b600060095411156106b0576106ad6009546106958460200151600a5461165890919063ffffffff16565b81151561069e57fe5b8391900463ffffffff6116d116565b90505b6000826080015113156106da5760808201516106d390829063ffffffff61172e16565b9050610703565b60008260800151121561070357608082015161070090829060000363ffffffff6116d116565b90505b600081121561071157600080fd5b9392505050565b60408051808201909152600e81527f50616e7468656f6e204368696e61000000000000000000000000000000000000602082015281565b60095490565b601281565b600080610766336105e8565b9150600082116107c0576040805160e560020a62461bcd02815260206004820152601560248201527f596f752068617665206e6f206469766964656e64730000000000000000000000604482015290519081900360640190fd5b50336000908152600b6020526040902060048101546107e5908363ffffffff6116d116565b6004820155604051339083156108fc029084906000818181858888f19350505050158015610817573d6000803e3d6000fd5b5060408051838152426020820152815133927fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb928290030190a25050565b6000670de0b6b3a76400006108816b204fce5e3e2502611000000060085461178b90919063ffffffff16565b81151561088a57fe5b04905090565b600160a060020a03166000908152600b602052604090206001015490565b600854600090670de0b6b3a76400009061088a565b60408051808201909152600381527f5041430000000000000000000000000000000000000000000000000000000000602082015281565b6000808080808581811161097e576040805160e560020a62461bcd02815260206004820152602a60248201527f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657260448201527f207468616e207a65726f00000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600b60205260409020600101548111156109e8576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b600160a060020a038816331415610a6f576040805160e560020a62461bcd02815260206004820152602660248201527f596f752063616e6e6f74207472616e7366657220746f6b656e7320746f20796f60448201527f757273656c660000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6040805180820190915260045481526005546020820152610a96908863ffffffff6112cb16565b9095509350841515610af2576040805160e560020a62461bcd02815260206004820152601e60248201527f496e73756666696369656e7420746f6b656e7320746f20646f20746861740000604482015290519081900360640190fd5b610afb856117eb565b9093509150821515610b57576040805160e560020a62461bcd02815260206004820152601e60248201527f496e73756666696369656e7420746f6b656e7320746f20646f20746861740000604482015290519081900360640190fd5b6008829055610b6633886118b5565b610b708885611520565b600a54610b83908463ffffffff6115f016565b600a55604080518881529051600160a060020a038a169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001979650505050505050565b60008080841580610be55750600954155b15610bf35760009250610c47565b600954851115610c035760095494505b610c0c856117eb565b5091508315610c43576040805180820190915260025481526003546020820152610c3c908363ffffffff6112cb16565b9150508091505b8192505b505092915050565b60008080841515610c635760009250610c47565b8315610c97576040805180820190915260005481526001546020820152610c90908663ffffffff6112cb16565b9250508194505b610ca0856113f9565b5095945050505050565b60008080808085818111610d2e576040805160e560020a62461bcd02815260206004820152602a60248201527f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657260448201527f207468616e207a65726f00000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600b6020526040902060010154811115610d98576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b610da1876117eb565b9096509450851515610e22576040805160e560020a62461bcd028152602060048201526024808201527fe6b292e69c89e8b6b3e5a4a0e79a84e4bba4e7898ce4be86e5819ae98099e4bb60448201527fb6e4ba8b00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60088590556040805180820190915260025481526003546020820152610e4e908763ffffffff6112cb16565b9094509250831515610ecf576040805160e560020a62461bcd028152602060048201526024808201527fe6b292e69c89e8b6b3e5a4a0e79a84e4bba4e7898ce4be86e5819ae98099e4bb60448201527fb6e4ba8b00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ed933886118b5565b336000908152600b602052604090206002810154909250610f00908463ffffffff6115f016565b6002830155600a54610f18908563ffffffff6115f016565b600a556008546040805189815260208101899052670de0b6b3a7640000909204828201524260608301525133917fafd310387603da0dcf44f11f54b04254b548c58b194e75f85851e849f0eef307919081900360800190a250505050505050565b336000908152600b602052604081206001015490811115610f9d57610f9d81610caa565b610fa561075a565b50565b600a54610fbb903463ffffffff6115f016565b600a5560408051348152426020820152815133927f106aac375bbcf013d1e52338bbf9e740009a1a3a6869f8daa1b72aa1620f5fec928290030190a2565b60008060008060008061100b336105e8565b955060008611611065576040805160e560020a62461bcd02815260206004820152601560248201527f596f752068617665206e6f206469766964656e64730000000000000000000000604482015290519081900360640190fd5b336000908152600b60205260409020600481015490955061108c908763ffffffff6116d116565b600486015560408051808201909152600054815260015460208201526110b8908763ffffffff6112cb16565b909450925083151561113a576040805160e560020a62461bcd02815260206004820152602160248201527f496e73756666696369656e74206469766964656e647320746f20646f2074686160448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8454600160a060020a0316156111e1578454611162903390600160a060020a0316868961131e565b93508315156111e1576040805160e560020a62461bcd02815260206004820152602160248201527f496e73756666696369656e74206469766964656e647320746f20646f2074686160448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6111ea836113f9565b909250905081151561126c576040805160e560020a62461bcd02815260206004820152602160248201527f496e73756666696369656e74206469766964656e647320746f20646f2074686160448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600881905561127b3383611520565b600a5461128e908563ffffffff6115f016565b600a5560085433907f1abe689c7914cafd54f789eb0851e90cba235302161e81e259ee4c357c374d829088908590670de0b6b3a7640000906105bc565b6000808215156112e057506000905080611317565b602084015184516112f890859063ffffffff61165816565b81151561130157fe5b049150611314838363ffffffff61178b16565b90505b9250929050565b600160a060020a0383166000908152600b60205260408120600181015482908190678ac7230489e80000116113ea576040805180820190915260065481526007546020820152611374908763ffffffff6112cb16565b6003850154919350915061138e908363ffffffff6115f016565b6003840155604080518681526020810184905242818301529051600160a060020a03808a1692908b16917f870e4e1dcfab6c09707448d3659b3d8097c084bf06e7467d6029940cd7122ee09181900360600190a38093506113ee565b8593505b505050949350505050565b6000806000806000806114346b204fce5e3e25026110000000611428600260085461165890919063ffffffff16565b9063ffffffff61178b16565b935061148c611470670de0b6b3a76400006114648a816b204fce5e3e25026110000000600863ffffffff61165816565b9063ffffffff61165816565b611480868063ffffffff61165816565b9063ffffffff6115f016565b92506114ab6b204fce5e3e25026110000000600263ffffffff61165816565b6114c4670de0b6b3a764000061146487611428886119bb565b8115156114cd57fe5b049150611512670de0b6b3a76400006114f86b204fce5e3e250261100000008563ffffffff61165816565b81151561150157fe5b60085491900463ffffffff6115f016565b919791965090945050505050565b600160a060020a0382166000908152600b6020526040812060095490911080156115775760095461156961155a828663ffffffff6115f016565b600a549063ffffffff61165816565b81151561157257fe5b04600a555b60095461158a908463ffffffff6115f016565b60095560018201546115a2908463ffffffff6115f016565b600183015580156115ea576115e46009546115c8600a548661165890919063ffffffff16565b8115156115d157fe5b600485015491900463ffffffff6116d116565b60048301555b50505050565b60008282018381101561164d576040805160e560020a62461bcd02815260206004820152600a60248201527f616464206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b60008083151561166b5760009150611651565b5082820282848281151561167b57fe5b041461164d576040805160e560020a62461bcd02815260206004820152600a60248201527f6d756c206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008282018381121561164d576040805160e560020a62461bcd02815260206004820152600a60248201527f616464206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008183038381131561164d576040805160e560020a62461bcd02815260206004820152600a60248201527f737562206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828211156117e5576040805160e560020a62461bcd02815260206004820152600a60248201527f737562206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008060008060006118146b204fce5e3e2502611000000060085461178b90919063ffffffff16565b9250611864670de0b6b3a764000061183e6b204fce5e3e250261100000008963ffffffff61165816565b81151561184757fe5b04611428856b204fce5e3e2502611000000063ffffffff6115f016565b915061187f670de0b6b3a7640000600263ffffffff61165816565b61189387611464868663ffffffff6115f016565b81151561189c57fe5b670de0b6b3a76400009190040496919550909350505050565b600160a060020a0382166000908152600b60205260408120600954909190831415611901576009546001830154600a546118f49163ffffffff61165816565b8115156118fd57fe5b0490505b60095461191761155a828663ffffffff61178b16565b81151561192057fe5b04600a55600954611937908463ffffffff61178b16565b600955600182015461194f908463ffffffff61178b16565b6001830155600954600010156119a05761199660095461197a600a548661165890919063ffffffff16565b81151561198357fe5b600485015491900463ffffffff61172e16565b60048301556115ea565b80156115ea5760048201546115e4908263ffffffff61172e16565b60008060026119cb8460016115f0565b8115156119d457fe5b0490508291505b81811015611a0e5780915060026119fd82858115156119f657fe5b04836115f0565b811515611a0657fe5b0490506119db565b50919050565b60a0604051908101604052806000600160a060020a031681526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058208bfca6b637ee894d59a4a2e161ca0a02f9d50a42d56365ef0c2e0f0c2ca787590029

Deployed Bytecode

0x6080604052600436106100ef5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461013357806306fdde031461016657806318160ddd146101f0578063313ce567146102055780633ccfd60b146102305780634b7503341461024557806370a082311461025a5780638620410b1461027b57806395d89b4114610290578063a9059cbb146102a5578063be2eaad4146102dd578063c5f60620146102fa578063e4849b3214610317578063e9fad8ee1461032f578063ed88c68e14610344578063f088d5471461034c578063fdb5a03e14610360575b61013161012c6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610375945050505050565b61037c565b005b34801561013f57600080fd5b50610154600160a060020a03600435166105e8565b60408051918252519081900360200190f35b34801561017257600080fd5b5061017b610718565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b557818101518382015260200161019d565b50505050905090810190601f1680156101e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101fc57600080fd5b5061015461074f565b34801561021157600080fd5b5061021a610755565b6040805160ff9092168252519081900360200190f35b34801561023c57600080fd5b5061013161075a565b34801561025157600080fd5b50610154610855565b34801561026657600080fd5b50610154600160a060020a0360043516610890565b34801561028757600080fd5b506101546108ae565b34801561029c57600080fd5b5061017b6108c3565b3480156102b157600080fd5b506102c9600160a060020a03600435166024356108fa565b604080519115158252519081900360200190f35b3480156102e957600080fd5b506101546004356024351515610bd4565b34801561030657600080fd5b506101546004356024351515610c4f565b34801561032357600080fd5b50610131600435610caa565b34801561033b57600080fd5b50610131610f79565b610131610fa8565b610131600160a060020a036004351661037c565b34801561036c57600080fd5b50610131610ff9565b6014015190565b6040805180820190915260008054825260015460208301529081908190819081906103ad903463ffffffff6112cb16565b9095509350841515610409576040805160e560020a62461bcd02815260206004820152601b60248201527f496e636f6d696e672066756e647320697320746f6f20736d616c6c0000000000604482015290519081900360640190fd5b336000908152600b602052604090209250600160a060020a0386161580159061043b5750600160a060020a0386163314155b801561044f57508254600160a060020a0316155b1561047b57825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161783555b8254600160a060020a0316156104fc5782546104a3903390600160a060020a0316873461131e565b94508415156104fc576040805160e560020a62461bcd02815260206004820152601260248201527fe694b6e585a5e8b387e98791e5a4aae5b08f0000000000000000000000000000604482015290519081900360640190fd5b610505846113f9565b9092509050811515610561576040805160e560020a62461bcd02815260206004820152601260248201527fe694b6e585a5e8b387e98791e5a4aae5b08f0000000000000000000000000000604482015290519081900360640190fd5b60088190556105703383611520565b600a54610583908663ffffffff6115f016565b600a5560085433907fd721454499cf9c37b757e03b9d675df451c229048129d6e2d552216a035e6a559034908590670de0b6b3a7640000905b6040805194855260208501939093520482820152426060830152519081900360800190a2505050505050565b60006105f2611a14565b50600160a060020a038083166000908152600b60209081526040808320815160a081018352815490951685526001810154928501929092526002820154908401819052600382015460608501819052600490920154608085015261065b9163ffffffff6115f016565b9050600081121561066b57600080fd5b600060095411156106b0576106ad6009546106958460200151600a5461165890919063ffffffff16565b81151561069e57fe5b8391900463ffffffff6116d116565b90505b6000826080015113156106da5760808201516106d390829063ffffffff61172e16565b9050610703565b60008260800151121561070357608082015161070090829060000363ffffffff6116d116565b90505b600081121561071157600080fd5b9392505050565b60408051808201909152600e81527f50616e7468656f6e204368696e61000000000000000000000000000000000000602082015281565b60095490565b601281565b600080610766336105e8565b9150600082116107c0576040805160e560020a62461bcd02815260206004820152601560248201527f596f752068617665206e6f206469766964656e64730000000000000000000000604482015290519081900360640190fd5b50336000908152600b6020526040902060048101546107e5908363ffffffff6116d116565b6004820155604051339083156108fc029084906000818181858888f19350505050158015610817573d6000803e3d6000fd5b5060408051838152426020820152815133927fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb928290030190a25050565b6000670de0b6b3a76400006108816b204fce5e3e2502611000000060085461178b90919063ffffffff16565b81151561088a57fe5b04905090565b600160a060020a03166000908152600b602052604090206001015490565b600854600090670de0b6b3a76400009061088a565b60408051808201909152600381527f5041430000000000000000000000000000000000000000000000000000000000602082015281565b6000808080808581811161097e576040805160e560020a62461bcd02815260206004820152602a60248201527f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657260448201527f207468616e207a65726f00000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600b60205260409020600101548111156109e8576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b600160a060020a038816331415610a6f576040805160e560020a62461bcd02815260206004820152602660248201527f596f752063616e6e6f74207472616e7366657220746f6b656e7320746f20796f60448201527f757273656c660000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6040805180820190915260045481526005546020820152610a96908863ffffffff6112cb16565b9095509350841515610af2576040805160e560020a62461bcd02815260206004820152601e60248201527f496e73756666696369656e7420746f6b656e7320746f20646f20746861740000604482015290519081900360640190fd5b610afb856117eb565b9093509150821515610b57576040805160e560020a62461bcd02815260206004820152601e60248201527f496e73756666696369656e7420746f6b656e7320746f20646f20746861740000604482015290519081900360640190fd5b6008829055610b6633886118b5565b610b708885611520565b600a54610b83908463ffffffff6115f016565b600a55604080518881529051600160a060020a038a169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001979650505050505050565b60008080841580610be55750600954155b15610bf35760009250610c47565b600954851115610c035760095494505b610c0c856117eb565b5091508315610c43576040805180820190915260025481526003546020820152610c3c908363ffffffff6112cb16565b9150508091505b8192505b505092915050565b60008080841515610c635760009250610c47565b8315610c97576040805180820190915260005481526001546020820152610c90908663ffffffff6112cb16565b9250508194505b610ca0856113f9565b5095945050505050565b60008080808085818111610d2e576040805160e560020a62461bcd02815260206004820152602a60248201527f416d6f756e74206f6620746f6b656e73206d757374206265206772656174657260448201527f207468616e207a65726f00000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600b6020526040902060010154811115610d98576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b610da1876117eb565b9096509450851515610e22576040805160e560020a62461bcd028152602060048201526024808201527fe6b292e69c89e8b6b3e5a4a0e79a84e4bba4e7898ce4be86e5819ae98099e4bb60448201527fb6e4ba8b00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60088590556040805180820190915260025481526003546020820152610e4e908763ffffffff6112cb16565b9094509250831515610ecf576040805160e560020a62461bcd028152602060048201526024808201527fe6b292e69c89e8b6b3e5a4a0e79a84e4bba4e7898ce4be86e5819ae98099e4bb60448201527fb6e4ba8b00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ed933886118b5565b336000908152600b602052604090206002810154909250610f00908463ffffffff6115f016565b6002830155600a54610f18908563ffffffff6115f016565b600a556008546040805189815260208101899052670de0b6b3a7640000909204828201524260608301525133917fafd310387603da0dcf44f11f54b04254b548c58b194e75f85851e849f0eef307919081900360800190a250505050505050565b336000908152600b602052604081206001015490811115610f9d57610f9d81610caa565b610fa561075a565b50565b600a54610fbb903463ffffffff6115f016565b600a5560408051348152426020820152815133927f106aac375bbcf013d1e52338bbf9e740009a1a3a6869f8daa1b72aa1620f5fec928290030190a2565b60008060008060008061100b336105e8565b955060008611611065576040805160e560020a62461bcd02815260206004820152601560248201527f596f752068617665206e6f206469766964656e64730000000000000000000000604482015290519081900360640190fd5b336000908152600b60205260409020600481015490955061108c908763ffffffff6116d116565b600486015560408051808201909152600054815260015460208201526110b8908763ffffffff6112cb16565b909450925083151561113a576040805160e560020a62461bcd02815260206004820152602160248201527f496e73756666696369656e74206469766964656e647320746f20646f2074686160448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8454600160a060020a0316156111e1578454611162903390600160a060020a0316868961131e565b93508315156111e1576040805160e560020a62461bcd02815260206004820152602160248201527f496e73756666696369656e74206469766964656e647320746f20646f2074686160448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6111ea836113f9565b909250905081151561126c576040805160e560020a62461bcd02815260206004820152602160248201527f496e73756666696369656e74206469766964656e647320746f20646f2074686160448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600881905561127b3383611520565b600a5461128e908563ffffffff6115f016565b600a5560085433907f1abe689c7914cafd54f789eb0851e90cba235302161e81e259ee4c357c374d829088908590670de0b6b3a7640000906105bc565b6000808215156112e057506000905080611317565b602084015184516112f890859063ffffffff61165816565b81151561130157fe5b049150611314838363ffffffff61178b16565b90505b9250929050565b600160a060020a0383166000908152600b60205260408120600181015482908190678ac7230489e80000116113ea576040805180820190915260065481526007546020820152611374908763ffffffff6112cb16565b6003850154919350915061138e908363ffffffff6115f016565b6003840155604080518681526020810184905242818301529051600160a060020a03808a1692908b16917f870e4e1dcfab6c09707448d3659b3d8097c084bf06e7467d6029940cd7122ee09181900360600190a38093506113ee565b8593505b505050949350505050565b6000806000806000806114346b204fce5e3e25026110000000611428600260085461165890919063ffffffff16565b9063ffffffff61178b16565b935061148c611470670de0b6b3a76400006114648a816b204fce5e3e25026110000000600863ffffffff61165816565b9063ffffffff61165816565b611480868063ffffffff61165816565b9063ffffffff6115f016565b92506114ab6b204fce5e3e25026110000000600263ffffffff61165816565b6114c4670de0b6b3a764000061146487611428886119bb565b8115156114cd57fe5b049150611512670de0b6b3a76400006114f86b204fce5e3e250261100000008563ffffffff61165816565b81151561150157fe5b60085491900463ffffffff6115f016565b919791965090945050505050565b600160a060020a0382166000908152600b6020526040812060095490911080156115775760095461156961155a828663ffffffff6115f016565b600a549063ffffffff61165816565b81151561157257fe5b04600a555b60095461158a908463ffffffff6115f016565b60095560018201546115a2908463ffffffff6115f016565b600183015580156115ea576115e46009546115c8600a548661165890919063ffffffff16565b8115156115d157fe5b600485015491900463ffffffff6116d116565b60048301555b50505050565b60008282018381101561164d576040805160e560020a62461bcd02815260206004820152600a60248201527f616464206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b8091505b5092915050565b60008083151561166b5760009150611651565b5082820282848281151561167b57fe5b041461164d576040805160e560020a62461bcd02815260206004820152600a60248201527f6d756c206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008282018381121561164d576040805160e560020a62461bcd02815260206004820152600a60248201527f616464206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008183038381131561164d576040805160e560020a62461bcd02815260206004820152600a60248201527f737562206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828211156117e5576040805160e560020a62461bcd02815260206004820152600a60248201527f737562206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008060008060006118146b204fce5e3e2502611000000060085461178b90919063ffffffff16565b9250611864670de0b6b3a764000061183e6b204fce5e3e250261100000008963ffffffff61165816565b81151561184757fe5b04611428856b204fce5e3e2502611000000063ffffffff6115f016565b915061187f670de0b6b3a7640000600263ffffffff61165816565b61189387611464868663ffffffff6115f016565b81151561189c57fe5b670de0b6b3a76400009190040496919550909350505050565b600160a060020a0382166000908152600b60205260408120600954909190831415611901576009546001830154600a546118f49163ffffffff61165816565b8115156118fd57fe5b0490505b60095461191761155a828663ffffffff61178b16565b81151561192057fe5b04600a55600954611937908463ffffffff61178b16565b600955600182015461194f908463ffffffff61178b16565b6001830155600954600010156119a05761199660095461197a600a548661165890919063ffffffff16565b81151561198357fe5b600485015491900463ffffffff61172e16565b60048301556115ea565b80156115ea5760048201546115e4908263ffffffff61172e16565b60008060026119cb8460016115f0565b8115156119d457fe5b0490508291505b81811015611a0e5780915060026119fd82858115156119f657fe5b04836115f0565b811515611a0657fe5b0490506119db565b50919050565b60a0604051908101604052806000600160a060020a031681526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058208bfca6b637ee894d59a4a2e161ca0a02f9d50a42d56365ef0c2e0f0c2ca787590029

Swarm Source

bzzr://8bfca6b637ee894d59a4a2e161ca0a02f9d50a42d56365ef0c2e0f0c2ca78759

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.