ETH Price: $2,799.12 (+1.02%)

Contract

0x9ce3064bd899f9854D3f7013D9705Df963B05d5c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Token Per...84731852019-09-02 21:25:152000 days ago1567459515IN
0x9ce3064b...963B05d5c
0 ETH0.000057042
Update Token Per...84401972019-08-28 18:25:192006 days ago1567016719IN
0x9ce3064b...963B05d5c
0 ETH0.0002852210
Update Token Per...84212592019-08-25 19:29:322009 days ago1566761372IN
0x9ce3064b...963B05d5c
0 ETH0.000085563
Update Token Per...84070282019-08-23 14:26:132011 days ago1566570373IN
0x9ce3064b...963B05d5c
0 ETH0.000228178
Update Token Per...83936332019-08-21 12:26:322013 days ago1566390392IN
0x9ce3064b...963B05d5c
0 ETH0.000199657
Update Token Per...83754062019-08-18 16:26:402016 days ago1566145600IN
0x9ce3064b...963B05d5c
0 ETH0.000031371.1
Update Token Per...83572102019-08-15 20:25:372019 days ago1565900737IN
0x9ce3064b...963B05d5c
0 ETH0.000028521
Update Token Per...83535022019-08-15 6:29:142019 days ago1565850554IN
0x9ce3064b...963B05d5c
0 ETH0.0004563516
Update Token Per...83499842019-08-14 17:25:182020 days ago1565803518IN
0x9ce3064b...963B05d5c
0 ETH0.0003422612
Update Token Per...83497192019-08-14 16:25:452020 days ago1565799945IN
0x9ce3064b...963B05d5c
0 ETH0.000057042
Update Token Per...83156112019-08-09 9:29:072025 days ago1565342947IN
0x9ce3064b...963B05d5c
0 ETH0.000156875.5
Update Token Per...82994732019-08-06 21:25:182027 days ago1565126718IN
0x9ce3064b...963B05d5c
0 ETH0.000034221.2
Update Token Per...82965322019-08-06 10:30:372028 days ago1565087437IN
0x9ce3064b...963B05d5c
0 ETH0.000028521
Update Token Per...82750052019-08-03 2:26:162031 days ago1564799176IN
0x9ce3064b...963B05d5c
0 ETH0.0005704420
Update Token Per...82320842019-07-27 10:28:422038 days ago1564223322IN
0x9ce3064b...963B05d5c
0 ETH0.000028521
Update Token Per...82197772019-07-25 12:25:162040 days ago1564057516IN
0x9ce3064b...963B05d5c
0 ETH0.0005704420
Update Token Per...82053222019-07-23 6:25:372042 days ago1563863137IN
0x9ce3064b...963B05d5c
0 ETH0.000114084
Update Token Per...81757492019-07-18 16:25:362047 days ago1563467136IN
0x9ce3064b...963B05d5c
0 ETH0.000085563
Update Token Per...81690412019-07-17 15:25:412048 days ago1563377141IN
0x9ce3064b...963B05d5c
0 ETH0.000057042
Update Token Per...81631972019-07-16 17:25:172049 days ago1563297917IN
0x9ce3064b...963B05d5c
0 ETH0.0007130525
Update Token Per...81629472019-07-16 16:25:282049 days ago1563294328IN
0x9ce3064b...963B05d5c
0 ETH0.0005704420
Update Token Per...81544842019-07-15 8:17:252050 days ago1563178645IN
0x9ce3064b...963B05d5c
0 ETH0.000031371.1
Update Token Per...81524282019-07-15 0:25:142050 days ago1563150314IN
0x9ce3064b...963B05d5c
0 ETH0.000128344.5
Update Token Per...81486372019-07-14 10:26:172051 days ago1563099977IN
0x9ce3064b...963B05d5c
0 ETH0.000162575.7
Update Token Per...81280742019-07-11 5:25:492054 days ago1562822749IN
0x9ce3064b...963B05d5c
0 ETH0.000085563
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
65872062018-10-26 13:26:332312 days ago1540560393
0x9ce3064b...963B05d5c
0.02982235 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DOCTokenSale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.19;
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}

contract Owned {

    address public owner;
    address public proposedOwner = address(0);

    event OwnershipTransferInitiated(address indexed _proposedOwner);
    event OwnershipTransferCompleted(address indexed _newOwner);
    event OwnershipTransferCanceled();


    function Owned() public
    {
        owner = msg.sender;
    }


    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }


    function isOwner(address _address) public view returns (bool) {
        return (_address == owner);
    }


    function initiateOwnershipTransfer(address _proposedOwner) public onlyOwner returns (bool) {
        require(_proposedOwner != address(0));
        require(_proposedOwner != address(this));
        require(_proposedOwner != owner);

        proposedOwner = _proposedOwner;

        OwnershipTransferInitiated(proposedOwner);

        return true;
    }


    function cancelOwnershipTransfer() public onlyOwner returns (bool) {
        //if proposedOwner address already address(0) then it will return true.
        if (proposedOwner == address(0)) {
            return true;
        }
        //if not then first it will do address(0( then it will return true.
        proposedOwner = address(0);

        OwnershipTransferCanceled();

        return true;
    }


    function completeOwnershipTransfer() public returns (bool) {

        require(msg.sender == proposedOwner);

        owner = msg.sender;
        proposedOwner = address(0);

        OwnershipTransferCompleted(owner);

        return true;
    }
}

contract TokenTransfer {
    // minimal subset of ERC20
    function transfer(address _to, uint256 _value) public returns (bool success);
    function decimals() public view returns (uint8 tokenDecimals);
    function balanceOf(address _owner) public view returns (uint256 balance);
}

contract FlexibleTokenSale is  Owned {

    using SafeMath for uint256;

    //
    // Lifecycle
    //
    bool public suspended;

    //
    // Pricing
    //
    uint256 public tokenPrice;
    uint256 public tokenPerEther;
    uint256 public contributionMin;
    uint256 public tokenConversionFactor;

    //
    // Wallets
    //
    address public walletAddress;

    //
    // Token
    //
    TokenTransfer token;


    //
    // Counters
    //
    uint256 public totalTokensSold;
    uint256 public totalEtherCollected;
    
    //
    // Price Update Address
    //
    address public priceUpdateAddress;


    //
    // Events
    //
    event Initialized();
    event TokenPriceUpdated(uint256 _newValue);
    event TokenPerEtherUpdated(uint256 _newValue);
    event TokenMinUpdated(uint256 _newValue);
    event WalletAddressUpdated(address indexed _newAddress);
    event SaleSuspended();
    event SaleResumed();
    event TokensPurchased(address indexed _beneficiary, uint256 _cost, uint256 _tokens);
    event TokensReclaimed(uint256 _amount);
    event PriceAddressUpdated(address indexed _newAddress);


    function FlexibleTokenSale(address _tokenAddress,address _walletAddress,uint _tokenPerEther,address _priceUpdateAddress) public
    Owned()
    {

        require(_walletAddress != address(0));
        require(_walletAddress != address(this));
        require(address(token) == address(0));
        require(address(_tokenAddress) != address(0));
        require(address(_tokenAddress) != address(this));
        require(address(_tokenAddress) != address(walletAddress));

        walletAddress = _walletAddress;
        priceUpdateAddress = _priceUpdateAddress;
        token = TokenTransfer(_tokenAddress);
        suspended = false;
        tokenPrice = 100;
        tokenPerEther = _tokenPerEther;
        contributionMin     = 5 * 10**18;//minimum 5 DOC token
        totalTokensSold     = 0;
        totalEtherCollected = 0;
        // This factor is used when converting cost <-> tokens.
       // 18 is because of the ETH -> Wei conversion.
      // 2 because toekn price  and etherPerToken Price are expressed as 100 for $1.00  and 100000 for $1000.00 (with 2 decimals).
       tokenConversionFactor = 10**(uint256(18).sub(token.decimals()).add(2));
        assert(tokenConversionFactor > 0);
    }


    //
    // Owner Configuation
    //

    // Allows the owner to change the wallet address which is used for collecting
    // ether received during the token sale.
    function setWalletAddress(address _walletAddress) external onlyOwner returns(bool) {
        require(_walletAddress != address(0));
        require(_walletAddress != address(this));
        require(_walletAddress != address(token));
        require(isOwner(_walletAddress) == false);

        walletAddress = _walletAddress;

        WalletAddressUpdated(_walletAddress);

        return true;
    }

    //set token price in between $1 to $1000, pass 111 for $1.11, 100000 for $1000
    function setTokenPrice(uint _tokenPrice) external onlyOwner returns (bool) {
        require(_tokenPrice >= 100 && _tokenPrice <= 100000);

        tokenPrice=_tokenPrice;

        TokenPriceUpdated(_tokenPrice);
        return true;
    }

    function setMinToken(uint256 _minToken) external onlyOwner returns(bool) {
        require(_minToken > 0);

        contributionMin = _minToken;

        TokenMinUpdated(_minToken);

        return true;
    }

    // Allows the owner to suspend the sale until it is manually resumed at a later time.
    function suspend() external onlyOwner returns(bool) {
        if (suspended == true) {
            return false;
        }

        suspended = true;

        SaleSuspended();

        return true;
    }

    // Allows the owner to resume the sale.
    function resume() external onlyOwner returns(bool) {
        if (suspended == false) {
            return false;
        }

        suspended = false;

        SaleResumed();

        return true;
    }


    //
    // Contributions
    //

    // Default payable function which can be used to purchase tokens.
    function () payable public {
        buyTokens(msg.sender);
    }


    // Allows the caller to purchase tokens for a specific beneficiary (proxy purchase).
    function buyTokens(address _beneficiary) public payable returns (uint256) {
        require(!suspended);

        require(address(token) !=  address(0));
        require(_beneficiary != address(0));
        require(_beneficiary != address(this));
        require(_beneficiary != address(token));


        // We don't want to allow the wallet collecting ETH to
        // directly be used to purchase tokens.
        require(msg.sender != address(walletAddress));

        // Check how many tokens are still available for sale.
        uint256 saleBalance = token.balanceOf(address(this));
        assert(saleBalance > 0);


        return buyTokensInternal(_beneficiary);
    }

    function updateTokenPerEther(uint _etherPrice) public returns(bool){
        require(_etherPrice > 0);
        require(msg.sender == priceUpdateAddress || msg.sender == owner);
        tokenPerEther=_etherPrice;
        TokenPerEtherUpdated(_etherPrice);
        return true;
    }
    
    function updatePriceAddress(address _newAddress) public onlyOwner returns(bool){
        require(_newAddress != address(0));
        priceUpdateAddress=_newAddress;
        PriceAddressUpdated(_newAddress);
        return true;
    }


    function buyTokensInternal(address _beneficiary) internal returns (uint256) {

        // Calculate how many tokens the contributor could purchase based on ETH received.
        uint256 tokens =msg.value.mul(tokenPerEther.mul(100).div(tokenPrice)).div(tokenConversionFactor);
        require(tokens >= contributionMin);

        // This is the actual amount of ETH that can be sent to the wallet.
        uint256 contribution =msg.value;
        walletAddress.transfer(contribution);
        totalEtherCollected = totalEtherCollected.add(contribution);

        // Update our stats counters.
        totalTokensSold = totalTokensSold.add(tokens);

        // Transfer tokens to the beneficiary.
        require(token.transfer(_beneficiary, tokens));

        TokensPurchased(_beneficiary, msg.value, tokens);

        return tokens;
    }


    // Allows the owner to take back the tokens that are assigned to the sale contract.
    function reclaimTokens() external onlyOwner returns (bool) {

        uint256 tokens = token.balanceOf(address(this));

        if (tokens == 0) {
            return false;
        }

        require(token.transfer(owner, tokens));

        TokensReclaimed(tokens);

        return true;
    }
}

contract DOCTokenSaleConfig {
    address WALLET_ADDRESS = 0x347364f2bc343f6c676620d09eb9c37431dbee60;
    address TOKEN_ADDRESS = 0xede3fe45d0c671f21ed10eb7bcd0a85ec9f8418e;
    address UPDATE_PRICE_ADDRESS = 0x29b997d4b41b9840e60b86f32be029382b14bdcd;
    uint ETHER_PRICE = 46500;//set current ether price. if current price 1000.00 then write 100000
}

contract DOCTokenSale is FlexibleTokenSale, DOCTokenSaleConfig {

    function DOCTokenSale() public
    FlexibleTokenSale(TOKEN_ADDRESS,WALLET_ADDRESS,ETHER_PRICE,UPDATE_PRICE_ADDRESS)
    {

    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"resume","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cancelOwnershipTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPerEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenConversionFactor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minToken","type":"uint256"}],"name":"setMinToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenPrice","type":"uint256"}],"name":"setTokenPrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"walletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"updatePriceAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"suspended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceUpdateAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_walletAddress","type":"address"}],"name":"setWalletAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_etherPrice","type":"uint256"}],"name":"updateTokenPerEther","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contributionMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"initiateOwnershipTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEtherCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suspend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"completeOwnershipTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newValue","type":"uint256"}],"name":"TokenPriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newValue","type":"uint256"}],"name":"TokenPerEtherUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newValue","type":"uint256"}],"name":"TokenMinUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newAddress","type":"address"}],"name":"WalletAddressUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleSuspended","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_cost","type":"uint256"},{"indexed":false,"name":"_tokens","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"TokensReclaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newAddress","type":"address"}],"name":"PriceAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_proposedOwner","type":"address"}],"name":"OwnershipTransferInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransferCompleted","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipTransferCanceled","type":"event"}]

60606040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073347364f2bc343f6c676620d09eb9c37431dbee60600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ede3fe45d0c671f21ed10eb7bcd0a85ec9f8418e600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507329b997d4b41b9840e60b86f32be029382b14bdcd600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061b5a4600e5534156200015757600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e54600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156200024057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156200027c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515620002da57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200031757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200035357600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515620003b157600080fd5b82600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160146101000a81548160ff021916908315150217905550606460028190555081600381905550674563918244f4000060048190555060006008819055506000600981905550620005b1600262000594600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200055657600080fd5b6102c65a03f115156200056857600080fd5b5050506040518051905060ff166012620005d36401000000000262001918179091906401000000009004565b620005f064010000000002620018fc179091906401000000009004565b600a0a6005819055506000600554111515620005c957fe5b505050506200060d565b6000828211151515620005e557600080fd5b818303905092915050565b600081830190508281101515156200060757600080fd5b92915050565b611960806200061d6000396000f30060606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063046f7da21461014a57806323452b9c146101775780632f54bf6e146101a45780632f77dba4146101f55780633c54caa51461021e57806353105fbc1461024b5780635558e1c31461027457806363b20117146102af5780636a61e5fc146102d85780636ad5b3ea146103135780636e8a6d1214610368578063702efdf3146103b95780637ff9b596146103e65780638da5cb5b1461040f5780639d8f4c2714610464578063ac1a386a146104b9578063b7dfc8a51461050a578063bcc13d1d14610545578063c0b6f5611461056e578063c7a02061146105bf578063d153b60c146105e8578063e6400bbe1461063d578063e71a78111461066a578063ec8ac4d814610697575b610147336106d9565b50005b341561015557600080fd5b61015d610986565b604051808215151515815260200191505060405180910390f35b341561018257600080fd5b61018a610a10565b604051808215151515815260200191505060405180910390f35b34156101af57600080fd5b6101db600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610afc565b604051808215151515815260200191505060405180910390f35b341561020057600080fd5b610208610b55565b6040518082815260200191505060405180910390f35b341561022957600080fd5b610231610b5b565b604051808215151515815260200191505060405180910390f35b341561025657600080fd5b61025e610dba565b6040518082815260200191505060405180910390f35b341561027f57600080fd5b6102956004808035906020019091905050610dc0565b604051808215151515815260200191505060405180910390f35b34156102ba57600080fd5b6102c2610e2c565b6040518082815260200191505060405180910390f35b34156102e357600080fd5b6102f96004808035906020019091905050610e32565b604051808215151515815260200191505060405180910390f35b341561031e57600080fd5b610326610eae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037357600080fd5b61039f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ed4565b604051808215151515815260200191505060405180910390f35b34156103c457600080fd5b6103cc610fb3565b604051808215151515815260200191505060405180910390f35b34156103f157600080fd5b6103f9610fc6565b6040518082815260200191505060405180910390f35b341561041a57600080fd5b610422610fcc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046f57600080fd5b610477610ff1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104c457600080fd5b6104f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611017565b604051808215151515815260200191505060405180910390f35b341561051557600080fd5b61052b60048080359060200190919050506111a9565b604051808215151515815260200191505060405180910390f35b341561055057600080fd5b6105586112b3565b6040518082815260200191505060405180910390f35b341561057957600080fd5b6105a5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112b9565b604051808215151515815260200191505060405180910390f35b34156105ca57600080fd5b6105d2611451565b6040518082815260200191505060405180910390f35b34156105f357600080fd5b6105fb611457565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561064857600080fd5b61065061147d565b604051808215151515815260200191505060405180910390f35b341561067557600080fd5b61067d611506565b604051808215151515815260200191505060405180910390f35b6106c3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106d9565b6040518082815260200191505060405180910390f35b600080600160149054906101000a900460ff161515156106f857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561075657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561079257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107cd57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561082a57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561088757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561094c57600080fd5b6102c65a03f1151561095d57600080fd5b50505060405180519050905060008111151561097557fe5b61097e83611651565b915050919050565b600061099133610afc565b151561099c57600080fd5b60001515600160149054906101000a900460ff16151514156109c15760009050610a0d565b6000600160146101000a81548160ff0219169083151502179055507fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb60405160405180910390a1600190505b90565b6000610a1b33610afc565b1515610a2657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a865760019050610af9565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f670699162ea7ba4de638b5a57c2148aed9ee8bd69740a5e6a7db727e3886c88b60405160405180910390a1600190505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60035481565b600080610b6733610afc565b1515610b7257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610c3757600080fd5b6102c65a03f11515610c4857600080fd5b5050506040518051905090506000811415610c665760009150610db6565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610d5457600080fd5b6102c65a03f11515610d6557600080fd5b505050604051805190501515610d7a57600080fd5b7fbce3cc672456937708767d1642a17cacb1962753bd5cff46c8dbd377906a6b4b816040518082815260200191505060405180910390a1600191505b5090565b60055481565b6000610dcb33610afc565b1515610dd657600080fd5b600082111515610de557600080fd5b816004819055507f838a23ac9e96487355a252492b0598f7ff9a62dc533be533083f9d87d8ed8281826040518082815260200191505060405180910390a160019050919050565b60085481565b6000610e3d33610afc565b1515610e4857600080fd5b60648210158015610e5c5750620186a08211155b1515610e6757600080fd5b816002819055507f6b361c807733cc94a3b7bda39c1c94dcc0511e91aa47b0f7f918068e93976890826040518082815260200191505060405180910390a160019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610edf33610afc565b1515610eea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2657600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167ff06d2ea62202cdc3fe76575c895b2d6e5463556b289a3e1eb5fd135bb81c556160405160405180910390a260019050919050565b600160149054906101000a900460ff1681565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061102233610afc565b151561102d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561106957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156110a457600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561110157600080fd5b6000151561110e83610afc565b151514151561111c57600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f0428ca271a7bee83fddcf583de5ba0a5a69f42cbe32587b07bb38925ed96de8d60405160405180910390a260019050919050565b600080821115156111b957600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061126157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561126c57600080fd5b816003819055507f448ac9d0b6fa10af70a395b7ea0e2959f605b9c71e08569ba806bf8a4f417ea3826040518082815260200191505060405180910390a160019050919050565b60045481565b60006112c433610afc565b15156112cf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561130b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561134657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156113a257600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f20f5afdf40bf7b43c89031a5d4369a30b159e512d164aa46124bcb706b4a1caf60405160405180910390a260019050919050565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061148833610afc565b151561149357600080fd5b60011515600160149054906101000a900460ff16151514156114b85760009050611503565b60018060146101000a81548160ff0219169083151502179055507fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb60405160405180910390a1600190505b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156457600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f624adc4c72536289dd9d5439ccdeccd8923cb9af95fb626b21935447c77b840760405160405180910390a26001905090565b60008060006116a660055461169861168960025461167b60646003546118a790919063ffffffff16565b6118d890919063ffffffff16565b346118a790919063ffffffff16565b6118d890919063ffffffff16565b915060045482101515156116b957600080fd5b349050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561171e57600080fd5b611733816009546118fc90919063ffffffff16565b60098190555061174e826008546118fc90919063ffffffff16565b600881905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561182157600080fd5b6102c65a03f1151561183257600080fd5b50505060405180519050151561184757600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f333484604051808381526020018281526020019250505060405180910390a28192505050919050565b6000818302905060008314806118c757508183828115156118c457fe5b04145b15156118d257600080fd5b92915050565b600080821115156118e857600080fd5b81838115156118f357fe5b04905092915050565b6000818301905082811015151561191257600080fd5b92915050565b600082821115151561192957600080fd5b8183039050929150505600a165627a7a72305820de8ba7c99c062f5237e5364cbb331056836c3d998137670049ef79aca151927f0029

Deployed Bytecode

0x60606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063046f7da21461014a57806323452b9c146101775780632f54bf6e146101a45780632f77dba4146101f55780633c54caa51461021e57806353105fbc1461024b5780635558e1c31461027457806363b20117146102af5780636a61e5fc146102d85780636ad5b3ea146103135780636e8a6d1214610368578063702efdf3146103b95780637ff9b596146103e65780638da5cb5b1461040f5780639d8f4c2714610464578063ac1a386a146104b9578063b7dfc8a51461050a578063bcc13d1d14610545578063c0b6f5611461056e578063c7a02061146105bf578063d153b60c146105e8578063e6400bbe1461063d578063e71a78111461066a578063ec8ac4d814610697575b610147336106d9565b50005b341561015557600080fd5b61015d610986565b604051808215151515815260200191505060405180910390f35b341561018257600080fd5b61018a610a10565b604051808215151515815260200191505060405180910390f35b34156101af57600080fd5b6101db600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610afc565b604051808215151515815260200191505060405180910390f35b341561020057600080fd5b610208610b55565b6040518082815260200191505060405180910390f35b341561022957600080fd5b610231610b5b565b604051808215151515815260200191505060405180910390f35b341561025657600080fd5b61025e610dba565b6040518082815260200191505060405180910390f35b341561027f57600080fd5b6102956004808035906020019091905050610dc0565b604051808215151515815260200191505060405180910390f35b34156102ba57600080fd5b6102c2610e2c565b6040518082815260200191505060405180910390f35b34156102e357600080fd5b6102f96004808035906020019091905050610e32565b604051808215151515815260200191505060405180910390f35b341561031e57600080fd5b610326610eae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037357600080fd5b61039f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ed4565b604051808215151515815260200191505060405180910390f35b34156103c457600080fd5b6103cc610fb3565b604051808215151515815260200191505060405180910390f35b34156103f157600080fd5b6103f9610fc6565b6040518082815260200191505060405180910390f35b341561041a57600080fd5b610422610fcc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046f57600080fd5b610477610ff1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104c457600080fd5b6104f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611017565b604051808215151515815260200191505060405180910390f35b341561051557600080fd5b61052b60048080359060200190919050506111a9565b604051808215151515815260200191505060405180910390f35b341561055057600080fd5b6105586112b3565b6040518082815260200191505060405180910390f35b341561057957600080fd5b6105a5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112b9565b604051808215151515815260200191505060405180910390f35b34156105ca57600080fd5b6105d2611451565b6040518082815260200191505060405180910390f35b34156105f357600080fd5b6105fb611457565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561064857600080fd5b61065061147d565b604051808215151515815260200191505060405180910390f35b341561067557600080fd5b61067d611506565b604051808215151515815260200191505060405180910390f35b6106c3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106d9565b6040518082815260200191505060405180910390f35b600080600160149054906101000a900460ff161515156106f857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561075657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561079257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107cd57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561082a57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561088757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561094c57600080fd5b6102c65a03f1151561095d57600080fd5b50505060405180519050905060008111151561097557fe5b61097e83611651565b915050919050565b600061099133610afc565b151561099c57600080fd5b60001515600160149054906101000a900460ff16151514156109c15760009050610a0d565b6000600160146101000a81548160ff0219169083151502179055507fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb60405160405180910390a1600190505b90565b6000610a1b33610afc565b1515610a2657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a865760019050610af9565b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f670699162ea7ba4de638b5a57c2148aed9ee8bd69740a5e6a7db727e3886c88b60405160405180910390a1600190505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60035481565b600080610b6733610afc565b1515610b7257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610c3757600080fd5b6102c65a03f11515610c4857600080fd5b5050506040518051905090506000811415610c665760009150610db6565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610d5457600080fd5b6102c65a03f11515610d6557600080fd5b505050604051805190501515610d7a57600080fd5b7fbce3cc672456937708767d1642a17cacb1962753bd5cff46c8dbd377906a6b4b816040518082815260200191505060405180910390a1600191505b5090565b60055481565b6000610dcb33610afc565b1515610dd657600080fd5b600082111515610de557600080fd5b816004819055507f838a23ac9e96487355a252492b0598f7ff9a62dc533be533083f9d87d8ed8281826040518082815260200191505060405180910390a160019050919050565b60085481565b6000610e3d33610afc565b1515610e4857600080fd5b60648210158015610e5c5750620186a08211155b1515610e6757600080fd5b816002819055507f6b361c807733cc94a3b7bda39c1c94dcc0511e91aa47b0f7f918068e93976890826040518082815260200191505060405180910390a160019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610edf33610afc565b1515610eea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2657600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167ff06d2ea62202cdc3fe76575c895b2d6e5463556b289a3e1eb5fd135bb81c556160405160405180910390a260019050919050565b600160149054906101000a900460ff1681565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061102233610afc565b151561102d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561106957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156110a457600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561110157600080fd5b6000151561110e83610afc565b151514151561111c57600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f0428ca271a7bee83fddcf583de5ba0a5a69f42cbe32587b07bb38925ed96de8d60405160405180910390a260019050919050565b600080821115156111b957600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061126157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561126c57600080fd5b816003819055507f448ac9d0b6fa10af70a395b7ea0e2959f605b9c71e08569ba806bf8a4f417ea3826040518082815260200191505060405180910390a160019050919050565b60045481565b60006112c433610afc565b15156112cf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561130b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561134657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156113a257600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f20f5afdf40bf7b43c89031a5d4369a30b159e512d164aa46124bcb706b4a1caf60405160405180910390a260019050919050565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061148833610afc565b151561149357600080fd5b60011515600160149054906101000a900460ff16151514156114b85760009050611503565b60018060146101000a81548160ff0219169083151502179055507fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb60405160405180910390a1600190505b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156457600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f624adc4c72536289dd9d5439ccdeccd8923cb9af95fb626b21935447c77b840760405160405180910390a26001905090565b60008060006116a660055461169861168960025461167b60646003546118a790919063ffffffff16565b6118d890919063ffffffff16565b346118a790919063ffffffff16565b6118d890919063ffffffff16565b915060045482101515156116b957600080fd5b349050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561171e57600080fd5b611733816009546118fc90919063ffffffff16565b60098190555061174e826008546118fc90919063ffffffff16565b600881905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561182157600080fd5b6102c65a03f1151561183257600080fd5b50505060405180519050151561184757600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f333484604051808381526020018281526020019250505060405180910390a28192505050919050565b6000818302905060008314806118c757508183828115156118c457fe5b04145b15156118d257600080fd5b92915050565b600080821115156118e857600080fd5b81838115156118f357fe5b04905092915050565b6000818301905082811015151561191257600080fd5b92915050565b600082821115151561192957600080fd5b8183039050929150505600a165627a7a72305820de8ba7c99c062f5237e5364cbb331056836c3d998137670049ef79aca151927f0029

Swarm Source

bzzr://de8ba7c99c062f5237e5364cbb331056836c3d998137670049ef79aca151927f

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

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.