ETH Price: $3,000.88 (-8.60%)

Contract

0x491559dd3DfdBCA13EDc74569e86c8A0D517975b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer68100642018-12-02 3:01:552234 days ago1543719715IN
0x491559dd...0D517975b
0.0080839 ETH0.00086141
Destroy55863482018-05-10 0:08:152440 days ago1525910895IN
0x491559dd...0D517975b
0 ETH0.0013138260
Destroy55863262018-05-10 0:03:542440 days ago1525910634IN
0x491559dd...0D517975b
0 ETH0.0012763860
Cleanup55524082018-05-04 2:11:352446 days ago1525399895IN
0x491559dd...0D517975b
0 ETH0.000940320
Refund55523762018-05-04 2:04:342446 days ago1525399474IN
0x491559dd...0D517975b
0 ETH0.00060120
Refund55434442018-05-02 12:26:262448 days ago1525263986IN
0x491559dd...0D517975b
0 ETH0.0006310521
Refund55382512018-05-01 14:33:262449 days ago1525185206IN
0x491559dd...0D517975b
0 ETH0.0015723541
Refund55258702018-04-29 10:30:312451 days ago1524997831IN
0x491559dd...0D517975b
0 ETH0.000237776.2
Refund55234082018-04-29 0:23:372451 days ago1524961417IN
0x491559dd...0D517975b
0 ETH0.0022537575
Refund54316112018-04-13 6:16:462467 days ago1523600206IN
0x491559dd...0D517975b
0 ETH0.0009916533
Refund53537992018-03-31 8:23:102480 days ago1522484590IN
0x491559dd...0D517975b
0 ETH0.0012320541
Refund53187262018-03-25 10:48:132486 days ago1521974893IN
0x491559dd...0D517975b
0 ETH0.000901530
Refund53152462018-03-24 20:45:542486 days ago1521924354IN
0x491559dd...0D517975b
0 ETH0.0012320541
Refund53028332018-03-22 19:13:582488 days ago1521746038IN
0x491559dd...0D517975b
0 ETH0.002103570
Refund52768272018-03-18 10:35:512493 days ago1521369351IN
0x491559dd...0D517975b
0 ETH0.0023393561
Refund52767552018-03-18 10:17:302493 days ago1521368250IN
0x491559dd...0D517975b
0 ETH0.0023393561
Refund52623612018-03-15 23:44:142495 days ago1521157454IN
0x491559dd...0D517975b
0 ETH0.000030051
Refund52580692018-03-15 6:14:272496 days ago1521094467IN
0x491559dd...0D517975b
0 ETH0.0012320541
Refund52499592018-03-13 20:53:562497 days ago1520974436IN
0x491559dd...0D517975b
0 ETH0.0029148597
Refund52237022018-03-09 9:54:042502 days ago1520589244IN
0x491559dd...0D517975b
0 ETH0.0010517535
Refund52202552018-03-08 19:44:312502 days ago1520538271IN
0x491559dd...0D517975b
0 ETH0.0012320541
Refund52046532018-03-06 4:09:322505 days ago1520309372IN
0x491559dd...0D517975b
0 ETH0.0012320541
Refund51809212018-03-02 3:43:122509 days ago1519962192IN
0x491559dd...0D517975b
0 ETH0.0012320541
Refund51796882018-03-01 22:46:512509 days ago1519944411IN
0x491559dd...0D517975b
0 ETH0.0006310521
Refund51796712018-03-01 22:42:452509 days ago1519944165IN
0x491559dd...0D517975b
0 ETH0.0012320541
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
55524082018-05-04 2:11:352446 days ago1525399895
0x491559dd...0D517975b
13.32368242 ETH
55523762018-05-04 2:04:342446 days ago1525399474
0x491559dd...0D517975b
5.464 ETH
55434442018-05-02 12:26:262448 days ago1525263986
0x491559dd...0D517975b
0.1 ETH
55234082018-04-29 0:23:372451 days ago1524961417
0x491559dd...0D517975b
2.369 ETH
54316112018-04-13 6:16:462467 days ago1523600206
0x491559dd...0D517975b
2 ETH
53537992018-03-31 8:23:102480 days ago1522484590
0x491559dd...0D517975b
0.1412148 ETH
53187262018-03-25 10:48:132486 days ago1521974893
0x491559dd...0D517975b
0.174 ETH
53152462018-03-24 20:45:542486 days ago1521924354
0x491559dd...0D517975b
0.5 ETH
53028332018-03-22 19:13:582488 days ago1521746038
0x491559dd...0D517975b
0.01 ETH
52623612018-03-15 23:44:142495 days ago1521157454
0x491559dd...0D517975b
0.01 ETH
52580692018-03-15 6:14:272496 days ago1521094467
0x491559dd...0D517975b
0.04 ETH
52499592018-03-13 20:53:562497 days ago1520974436
0x491559dd...0D517975b
3 ETH
52237022018-03-09 9:54:042502 days ago1520589244
0x491559dd...0D517975b
0.2 ETH
52202552018-03-08 19:44:312502 days ago1520538271
0x491559dd...0D517975b
0.34 ETH
52046532018-03-06 4:09:322505 days ago1520309372
0x491559dd...0D517975b
0.0508717 ETH
51809212018-03-02 3:43:122509 days ago1519962192
0x491559dd...0D517975b
0.48577126 ETH
51796882018-03-01 22:46:512509 days ago1519944411
0x491559dd...0D517975b
1.06 ETH
51796712018-03-01 22:42:452509 days ago1519944165
0x491559dd...0D517975b
1.05 ETH
51780582018-03-01 16:04:232510 days ago1519920263
0x491559dd...0D517975b
0.25 ETH
51723062018-02-28 16:32:272511 days ago1519835547
0x491559dd...0D517975b
0.04 ETH
51722332018-02-28 16:12:112511 days ago1519834331
0x491559dd...0D517975b
0.125 ETH
51714352018-02-28 12:58:372511 days ago1519822717
0x491559dd...0D517975b
0.65035159 ETH
51681422018-02-27 23:38:572511 days ago1519774737
0x491559dd...0D517975b
0.107 ETH
51658622018-02-27 14:31:122512 days ago1519741872
0x491559dd...0D517975b
1.04594055 ETH
51653342018-02-27 12:18:022512 days ago1519733882
0x491559dd...0D517975b
0.25 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Sale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-24
*/

pragma solidity ^0.4.15;

/**
* assert(2 + 2 is 4 - 1 thats 3) Quick Mafs 
*/
library QuickMafs {
    function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a * _b;
        assert(_a == 0 || c / _a == _b);
        return c;
    }

    function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
        assert(_b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = _a / _b;
        return c;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
        assert(_b <= _a);
        return _a - _b;
    }

    function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a + _b;
        assert(c >= _a);
        return c;
    }
}


/** 
* The ownable contract contains an owner address. This give us simple ownership privledges and can allow ownship transfer. 
*/
contract Ownable {

     /** 
     * The owner/admin of the contract
     */ 
     address public owner;
    
     /**
     * Constructor for contract. Sets The contract creator to the default owner.
     */
     function Ownable() public {
         owner = msg.sender;
     }
    
    /**
    * Modifier to apply to methods to restrict access to the owner
    */
     modifier onlyOwner(){
         require(msg.sender == owner);
         _; //Placeholder for method content
     }
    
    /**
    * Transfer the ownership to a new owner can only be done by the current owner. 
    */
    function transferOwnership(address _newOwner) public onlyOwner {
    
        //Only make the change if required
        if (_newOwner != address(0)) {
            owner = _newOwner;
        }
    }
}


/**
*  ERC Token Standard #20 Interface
*/
contract ERC20 {
    
    /**
    * Get the total token supply
    */
    function totalSupply() public constant returns (uint256 _totalSupply);
    
    /**
    * Get the account balance of another account with address _owner
    */
    function balanceOf(address _owner) public constant returns (uint256 balance);
    
    /**
    * Send _amount of tokens to address _to
    */
    function transfer(address _to, uint256 _amount) public returns (bool success);
    
    /**
    * Send _amount of tokens from address _from to address _to
    */
    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success);
    
    /**
    * Allow _spender to withdraw from your account, multiple times, up to the _amount.
    * If this function is called again it overwrites the current allowance with _amount.
    * this function is required for some DEX functionality
    */
    function approve(address _spender, uint256 _amount) public returns (bool success);
    
    /**
    * Returns the amount which _spender is still allowed to withdraw from _owner
    */
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining);
    
    /**
    * Triggered when tokens are transferred.
    */
    event Transfer(address indexed _from, address indexed _to, uint256 _amount);
    
    /**
    * Triggered whenever approve(address _spender, uint256 _amount) is called.
    */
    event Approval(address indexed _owner, address indexed _spender, uint256 _amount);
}


/**
* The CTN Token
*/
contract Token is ERC20, Ownable {

    using QuickMafs for uint256;
    
    string public constant SYMBOL = "CTN";
    string public constant NAME = "Crypto Trust Network";
    uint8 public constant DECIMALS = 18;
    
    /**
    * Total supply of tokens
    */
    uint256 totalTokens;
    
    /**
    * The initial supply of coins before minting
     */
    uint256 initialSupply;
    
    /**
    * Balances for each account
    */
    mapping(address => uint256) balances;
    
    /**
    * Whos allowed to withdrawl funds from which accounts
    */
    mapping(address => mapping (address => uint256)) allowed;
    
    /**
     * If the token is tradable
     */ 
     bool tradable;
     
    /**
    * The address to store the initialSupply
    */
    address public vault;
    
    /**
    * If the coin can be minted
    */
    bool public mintingFinished = false;
    
    /**
     * Event for when new coins are created 
     */
    event Mint(address indexed _to, uint256 _value);
    
    /**
    * Event that is fired when token sale is over
    */
    event MintFinished();
    
    /**
     * Tokens can now be traded
     */ 
    event TradableTokens(); 
    
    /**
     * Allows this coin to be traded between users
     */ 
    modifier isTradable(){
        require(tradable);
        _;
    }
    
    /**
     * If this coin can be minted modifier
     */
    modifier canMint() {
        require(!mintingFinished);
        _;
    }
    
    /**
    * Initializing the token, setting the owner, initial supply & vault
    */
    function Token() public {
        initialSupply = 4500000 * 1 ether;
        totalTokens = initialSupply;
        tradable = false;
        vault = 0x6e794AAA2db51fC246b1979FB9A9849f53919D1E; 
        balances[vault] = balances[vault].add(initialSupply); //Set initial supply to the vault
    }
    
    /**
    * Obtain current total supply of CTN tokens 
    */
    function totalSupply() public constant returns (uint256 totalAmount) {
          totalAmount = totalTokens;
    }
    
    /**
    * Get the initial supply of CTN coins 
    */
    function baseSupply() public constant returns (uint256 initialAmount) {
          initialAmount = initialSupply;
    }
    
    /**
    * Returns the balance of a wallet
    */ 
    function balanceOf(address _address) public constant returns (uint256 balance) {
        return balances[_address];
    }
    
    /**
    * Transfer CTN between wallets
    */ 
    function transfer(address _to, uint256 _amount) public isTradable returns (bool) {
        balances[msg.sender] = balances[msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        Transfer(msg.sender, _to, _amount);
        return true;
    }

    /**
    * Send _amount of tokens from address _from to address _to
    * The transferFrom method is used for a withdraw workflow, allowing contracts to send
    * tokens on your behalf, for example to "deposit" to a contract address and/or to charge
    * fees in sub-currencies; the command should fail unless the _from account has
    * deliberately authorized the sender of the message via some mechanism; we propose
    * these standardized APIs for approval:
    */
    function transferFrom(
        address _from,
        address _to,
        uint256 _amount
    ) public isTradable returns (bool success) 
    {
        var _allowance = allowed[_from][msg.sender];
    
        /** 
        *   QuickMaf will roll back any changes so no need to check before these operations
        */
        balances[_to] = balances[_to].add(_amount);
        balances[_from] = balances[_from].sub(_amount);
        allowed[_from][msg.sender] = _allowance.sub(_amount);
        Transfer(_from, _to, _amount);
        return true;  
    }

    /**
    * Allows an address to transfer money out this is administered by the contract owner who can specify how many coins an account can take.
    * Needs to be called to feault the amount to 0 first -> https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    */
    function approve(address _spender, uint256 _amount) public returns (bool) {
        /**
        *Set the amount they are able to spend to 0 first so that transaction ordering cannot allow multiple withdrawls asyncly
        *This function always requires to calls if a user has an amount they can withdrawl.
        */
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));
    
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }


    /**
     * Check the amount of tokens the owner has allowed to a spender
     */
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
         return allowed[_owner][_spender];
    }

    /**
     * Makes the coin tradable between users cannot be undone
     */
    function makeTradable() public onlyOwner {
        tradable = true;
        TradableTokens();
    }
    
    /**
    * Mint tokens to users
    */
    function mint(address _to, uint256 _amount) public onlyOwner canMint returns (bool) {
        totalTokens = totalTokens.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        Mint(_to, _amount);
        return true;
    }

    /**
    * Function to stop minting tokens irreversable
    */
    function finishMinting() public onlyOwner returns (bool) {
        mintingFinished = true;
        MintFinished();
        return true;
    }
}


/**
* The initial crowdsale of the token
*/
contract Sale is Ownable {


    using QuickMafs for uint256;
    
    /**
     * The hard cap of the token sale
     */
    uint256 hardCap;
    
    /**
     * The soft cap of the token sale
     */
    uint256 softCap;
    
    /**
     * The bonus cap for the token sale
     */
    uint256 bonusCap;
    
    /**
     * How many tokens you get per ETH
     */
    uint256 tokensPerETH;
    
    /** 
    * //the start time of the sale (new Date("Jan 22 2018 18:00:00 GMT").getTime() / 1000)
    */
    uint256 public start = 1516644000;
                
    
    /**
     * The end time of the sale (new Date("Feb 22 2018 18:00:00 GMT").getTime() / 1000)
     */ 
    uint256 public end = 1519322400;
    
    /**
     * Two months after the sale ends used to retrieve unclaimed refunds (new Date("Apr 22 2018 18:00:00 GMT").getTime() / 1000)
     */
    uint256 public twoMonthsLater = 1524420000;
    
    /**
    * Token for minting purposes
    */
    Token public token;
    
    /**
    * The address to store eth in during sale 
    */
    address public vault;
    
    
    /**
    * How much ETH each user has sent to this contract. For softcap unmet refunds
    */
    mapping(address => uint256) investments;
    
    
    /**
    * Every purchase during the sale
    */
    event TokenSold(address recipient, uint256 etherAmount, uint256 ctnAmount, bool preSale, bool bonus);
    
    
    /**
    * Triggered when tokens are transferred.
    */
    event PriceUpdated(uint256 amount);
    
    /**
    * Only make certain changes before the sale starts
    */
    modifier isPreSale(){
         require(now < start);
        _;
    }
    
    /**
    * Is the sale still on
    */
    modifier isSaleOn() {
        require(now >= start && now <= end);
        _;
    }
    
    /**
    * Has the sale completed
    */
    modifier isSaleFinished() {
        
        bool hitHardCap = token.totalSupply().sub(token.baseSupply()) >= hardCap;
        require(now > end || hitHardCap);
        
        _;
    }
    
    /**
    * Has the sale completed
    */
    modifier isTwoMonthsLater() {
        require(now > twoMonthsLater);
        _;
    }
    
    /**
    * Make sure we are under the hardcap
    */
    modifier isUnderHardCap() {
    
        bool underHard = token.totalSupply().sub(token.baseSupply()) <= hardCap;
        require(underHard);
        _;
    }
    
    /**
    * Make sure we are over the soft cap
    */
    modifier isOverSoftCap() {
        bool overSoft = token.totalSupply().sub(token.baseSupply()) >= softCap;
        require(overSoft);
        _;
    }
    
    /**
    * Make sure we are over the soft cap
    */
    modifier isUnderSoftCap() {
        bool underSoft = token.totalSupply().sub(token.baseSupply()) < softCap;
        require(underSoft);
        _;
    }
    
    /** 
    *   The token sale constructor
    */
    function Sale() public {
        hardCap = 10500000 * 1 ether;
        softCap = 500000 * 1 ether;
        bonusCap = 2000000 * 1 ether;
        tokensPerETH = 630; //Tokens per 1 ETH
        token = new Token();
        vault = 0x6e794AAA2db51fC246b1979FB9A9849f53919D1E; 
    }
    
    /**
    * Fallback function which receives ether and created the appropriate number of tokens for the 
    * msg.sender.
    */
    function() external payable {
        //If we can not purchase tokens presale then try purchase them normally
        if ( now < start ) {
            purchaseTokensPreSale(msg.sender);
        } else {
            purchaseTokens(msg.sender);
        }
    }
       
    /**
    * If the soft cap has not been reached and the sale is over investors can reclaim their funds
    */ 
    function refund() public isSaleFinished isUnderSoftCap {
        uint256 amount = investments[msg.sender];
        investments[msg.sender] = investments[msg.sender].sub(amount);
        msg.sender.transfer(amount);
    }
    
    /**
    * Withdrawl the funds from the contract.
    * Make the token tradeable and finish minting
    */ 
    function withdrawl() public isSaleFinished isOverSoftCap {
        vault.transfer(this.balance);
        
        //Stop minting of the token and make the token tradeable
        token.finishMinting();
        token.makeTradable();
    }
    
    /**
    * Update the ETH price for the token sale
    */
    function updatePrice(uint256 _newPrice) public onlyOwner isPreSale {
        tokensPerETH = _newPrice;
        PriceUpdated(_newPrice);
    }

    /**
    * Temp function for change start times for debuging
     */
    function updateStart(uint256 _newStart) public onlyOwner {
        start = _newStart;
    }
    
    /**
    * The pre sale purchase of tokens. Is avaliable up until the soft cap is hit.
     */
    function purchaseTokensPreSale(address recipient) public isUnderSoftCap isPreSale payable {    
        uint256 amount = msg.value;
        uint256 tokens = tokensPerETH.mul(amount);

        //Tokens purchased pre sale get an additional 25% CTN
        tokens = tokens.add(tokens.div(4));
     
        //Add the amount to a users investment total
        investments[msg.sender] = investments[msg.sender].add(msg.value);
        
        token.mint(recipient, tokens);
        
        TokenSold(recipient, amount, tokens, true, true);
    }
    
    /**
    * Allows user to buy coins if we are under the hardcap also adds a bonus if under the bonus amount
    */
    function purchaseTokens(address recipient) public isUnderHardCap isSaleOn payable {
        uint256 amount = msg.value;
        uint256 tokens = tokensPerETH.mul(amount);
        bool bonus = false;
        
        if (token.totalSupply().sub(token.baseSupply()) < bonusCap) {          
            bonus = true;

            //Tokens purchased before the bonus cap get an additional 20% CTN
            tokens = tokens.add(tokens.div(5));
        }

        //Add the amount to user investment total
        investments[msg.sender] = investments[msg.sender].add(msg.value);
        
        token.mint(recipient, tokens);
        
        TokenSold(recipient, amount, tokens, false, bonus);
    }
    
    /**
     * Withdrawl the funds from the contract.
     * Make the token tradeable and finish minting
     */ 
    function cleanup() public isTwoMonthsLater {
        vault.transfer(this.balance);
        token.finishMinting();
        token.makeTradable();
    }
    
    function destroy() public onlyOwner isTwoMonthsLater {
         token.finishMinting();
         token.makeTradable();
         token.transferOwnership(owner);
         selfdestruct(vault);
    }
    
    /**
     * Get the ETH balance of this contract
     */ 
    function getBalance() public constant returns (uint256 totalAmount) {
          totalAmount = this.balance;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"totalAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cleanup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"twoMonthsLater","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"purchaseTokensPreSale","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newPrice","type":"uint256"}],"name":"updatePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"end","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newStart","type":"uint256"}],"name":"updateStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"etherAmount","type":"uint256"},{"indexed":false,"name":"ctnAmount","type":"uint256"},{"indexed":false,"name":"preSale","type":"bool"},{"indexed":false,"name":"bonus","type":"bool"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"PriceUpdated","type":"event"}]

6060604052635a6626a0600555635a8f0520600655635adccda0600755341561002757600080fd5b60008054600160a060020a03191633600160a060020a03161790556a08af7623fb67bf1a8000006001556969e10de76676d08000006002556a01a784379d99db4200000060035561027660045561007c6100d5565b604051809103906000f080151561009257600080fd5b60088054600160a060020a0392909216600160a060020a031992831617905560098054909116736e794aaa2db51fc246b1979fb9a9849f53919d1e1790556100e5565b604051610a7680610f0f83390190565b610e1b806100f46000396000f3006060604052600436106100cc5763ffffffff60e060020a60003504166312065fe081146100ef5780633aedfb8b146101145780633cecd7191461012757806351c69b121461013a57806352c5785b1461014d578063590e1ae31461016157806383197ef0146101745780638d6cc56d146101875780638da5cb5b1461019d578063be9a6555146101cc578063ce557031146101df578063efbe1c1c146101f3578063f2fde38b14610206578063f81ed6ae14610225578063fbfa77cf1461023b578063fc0c546a1461024e575b6005544210156100e4576100df33610261565b6100ed565b6100ed336104bf565b005b34156100fa57600080fd5b610102610704565b60405190815260200160405180910390f35b341561011f57600080fd5b6100ed610712565b341561013257600080fd5b6100ed6108d3565b341561014557600080fd5b6101026109d2565b6100ed600160a060020a0360043516610261565b341561016c57600080fd5b6100ed6109d8565b341561017f57600080fd5b6100ed610b17565b341561019257600080fd5b6100ed600435610c70565b34156101a857600080fd5b6101b0610cd4565b604051600160a060020a03909116815260200160405180910390f35b34156101d757600080fd5b610102610ce3565b6100ed600160a060020a03600435166104bf565b34156101fe57600080fd5b610102610ce9565b341561021157600080fd5b6100ed600160a060020a0360043516610cef565b341561023057600080fd5b6100ed600435610d45565b341561024657600080fd5b6101b0610d65565b341561025957600080fd5b6101b0610d74565b600254600854600091829182919061034290600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b6102c65a03f115156102c857600080fd5b5050506040518051600854909150600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561031b57600080fd5b6102c65a03f1151561032c57600080fd5b505050604051805191905063ffffffff610d8316565b1090508061034f57600080fd5b600554421061035d57600080fd5b600454349350610373908463ffffffff610d9516565b915061039661038983600463ffffffff610dc016565b839063ffffffff610de016565b600160a060020a0333166000908152600a60205260409020549092506103c2903463ffffffff610de016565b600160a060020a033381166000908152600a602052604080822093909355600854909116916340c10f19918791869190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561043a57600080fd5b6102c65a03f1151561044b57600080fd5b50505060405180519050507fddc002e8c8b4a90c21a579964a8fd060767c719bc51190791efde1d9c4e14b65848484600180604051600160a060020a039095168552602085019390935260408085019290925215156060840152901515608083015260a0909101905180910390a150505050565b60015460085460009182918291829161051690600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b111590508061052457600080fd5b600554421015801561053857506006544211155b151561054357600080fd5b600454349450610559908563ffffffff610d9516565b60035460085491945060009350906105af90600160a060020a031663860f504885604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10156105dd57600191506105da6105cd84600563ffffffff610dc016565b849063ffffffff610de016565b92505b600160a060020a0333166000908152600a6020526040902054610606903463ffffffff610de016565b600160a060020a033381166000908152600a602052604080822093909355600854909116916340c10f19918891879190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561067e57600080fd5b6102c65a03f1151561068f57600080fd5b50505060405180519050507fddc002e8c8b4a90c21a579964a8fd060767c719bc51190791efde1d9c4e14b65858585600086604051600160a060020a039095168552602085019390935260408085019290925215156060840152901515608083015260a0909101905180910390a15050505050565b600160a060020a0330163190565b6001546008546000919061076490600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b101590506006544211806107755750805b151561078057600080fd5b600254600854600091906107d290600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10159050806107e057600080fd5b600954600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561081957600080fd5b600854600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561086157600080fd5b6102c65a03f1151561087257600080fd5b50505060405180515050600854600160a060020a031663b1b68fad6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156108bb57600080fd5b6102c65a03f115156108cc57600080fd5b5050505050565b60075442116108e157600080fd5b600954600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561091a57600080fd5b600854600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561096257600080fd5b6102c65a03f1151561097357600080fd5b50505060405180515050600854600160a060020a031663b1b68fad6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156109bc57600080fd5b6102c65a03f115156109cd57600080fd5b505050565b60075481565b6001546008546000918291610a2b90600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10159050600654421180610a3c5750805b1515610a4757600080fd5b60025460085460009190610a9990600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10905080610aa657600080fd5b600160a060020a0333166000908152600a60205260409020549250610ad1838063ffffffff610d8316565b600160a060020a0333166000818152600a602052604090819020929092559084156108fc0290859051600060405180830381858888f1935050505015156109cd57600080fd5b60005433600160a060020a03908116911614610b3257600080fd5b6007544211610b4057600080fd5b600854600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b8857600080fd5b6102c65a03f11515610b9957600080fd5b50505060405180515050600854600160a060020a031663b1b68fad6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610be257600080fd5b6102c65a03f11515610bf357600080fd5b5050600854600054600160a060020a03918216925063f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4d57600080fd5b6102c65a03f11515610c5e57600080fd5b5050600954600160a060020a03169050ff5b60005433600160a060020a03908116911614610c8b57600080fd5b6005544210610c9957600080fd5b60048190557f66cbca4f3c64fecf1dcb9ce094abcf7f68c3450a1d4e3a8e917dd621edb4ebe08160405190815260200160405180910390a150565b600054600160a060020a031681565b60055481565b60065481565b60005433600160a060020a03908116911614610d0a57600080fd5b600160a060020a03811615610d42576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60005433600160a060020a03908116911614610d6057600080fd5b600555565b600954600160a060020a031681565b600854600160a060020a031681565b600082821115610d8f57fe5b50900390565b6000828202831580610db15750828482811515610dae57fe5b04145b1515610db957fe5b9392505050565b600080808311610dcc57fe5b8284811515610dd757fe5b04949350505050565b600082820183811015610db957fe00a165627a7a723058200492ad5196babea9d650efb7b249de921c4279a41e8eb8a9fe510928cc80a617002960606040526005805460a860020a60ff0219169055341561001f57600080fd5b60008054600160a060020a03191633600160a060020a039081169190911782556a03b8e97d229a2d548000006002819055600181905560058054600160a860020a031916746e794aaa2db51fc246b1979fb9a9849f53919d1e0017908190556101009004909116825260036020526040909120546100a9916401000000006100ce810261092f1704565b6005546101009004600160a060020a03166000908152600360205260409020556100e4565b6000828201838110156100dd57fe5b9392505050565b610983806100f36000396000f3006060604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146100f5578063095ea7b31461011c57806318160ddd1461013e57806323b872dd146101635780632e0f26251461018b57806340c10f19146101b457806370a08231146101d65780637d64bcb4146101f5578063860f5048146102085780638da5cb5b1461021b578063a3f4df7e1461024a578063a9059cbb146102d4578063b1b68fad146102f6578063dd62ed3e1461030b578063f2fde38b14610330578063f76f8d781461034f578063fbfa77cf14610362575b600080fd5b341561010057600080fd5b610108610375565b604051901515815260200160405180910390f35b341561012757600080fd5b610108600160a060020a0360043516602435610397565b341561014957600080fd5b61015161043d565b60405190815260200160405180910390f35b341561016e57600080fd5b610108600160a060020a0360043581169060243516604435610443565b341561019657600080fd5b61019e61056a565b60405160ff909116815260200160405180910390f35b34156101bf57600080fd5b610108600160a060020a036004351660243561056f565b34156101e157600080fd5b610151600160a060020a036004351661064e565b341561020057600080fd5b610108610669565b341561021357600080fd5b6101516106ee565b341561022657600080fd5b61022e6106f4565b604051600160a060020a03909116815260200160405180910390f35b341561025557600080fd5b61025d610703565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610299578082015183820152602001610281565b50505050905090810190601f1680156102c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102df57600080fd5b610108600160a060020a036004351660243561073a565b341561030157600080fd5b61030961080d565b005b341561031657600080fd5b610151600160a060020a0360043581169060243516610863565b341561033b57600080fd5b610309600160a060020a036004351661088e565b341561035a57600080fd5b61025d6108e4565b341561036d57600080fd5b61022e61091b565b6005547501000000000000000000000000000000000000000000900460ff1681565b60008115806103c95750600160a060020a03338116600090815260046020908152604080832093871683529290522054155b15156103d457600080fd5b600160a060020a03338116600081815260046020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60015490565b600554600090819060ff16151561045957600080fd5b50600160a060020a03808516600090815260046020908152604080832033851684528252808320549387168352600390915290205461049e908463ffffffff61092f16565b600160a060020a0380861660009081526003602052604080822093909355908716815220546104d3908463ffffffff61094516565b600160a060020a0386166000908152600360205260409020556104fc818463ffffffff61094516565b600160a060020a03808716600081815260046020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b601281565b6000805433600160a060020a0390811691161461058b57600080fd5b6005547501000000000000000000000000000000000000000000900460ff16156105b457600080fd5b6001546105c7908363ffffffff61092f16565b600155600160a060020a0383166000908152600360205260409020546105f3908363ffffffff61092f16565b600160a060020a0384166000818152600360205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a250600192915050565b600160a060020a031660009081526003602052604090205490565b6000805433600160a060020a0390811691161461068557600080fd5b6005805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b60025490565b600054600160a060020a031681565b60408051908101604052601481527f43727970746f205472757374204e6574776f726b000000000000000000000000602082015281565b60055460009060ff16151561074e57600080fd5b600160a060020a033316600090815260036020526040902054610777908363ffffffff61094516565b600160a060020a0333811660009081526003602052604080822093909355908516815220546107ac908363ffffffff61092f16565b600160a060020a0380851660008181526003602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60005433600160a060020a0390811691161461082857600080fd5b6005805460ff191660011790557fd2efeef3a8fcb01090eddfce840f12d8b288c5b23b5d97293c54a3ffb791c88b60405160405180910390a1565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b60005433600160a060020a039081169116146108a957600080fd5b600160a060020a038116156108e1576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60408051908101604052600381527f43544e0000000000000000000000000000000000000000000000000000000000602082015281565b6005546101009004600160a060020a031681565b60008282018381101561093e57fe5b9392505050565b60008282111561095157fe5b509003905600a165627a7a723058208727d2ce0e56aa049de4c1e77753d077daa74755a2a7cba4914ffa1dd73d29d40029

Deployed Bytecode

0x6060604052600436106100cc5763ffffffff60e060020a60003504166312065fe081146100ef5780633aedfb8b146101145780633cecd7191461012757806351c69b121461013a57806352c5785b1461014d578063590e1ae31461016157806383197ef0146101745780638d6cc56d146101875780638da5cb5b1461019d578063be9a6555146101cc578063ce557031146101df578063efbe1c1c146101f3578063f2fde38b14610206578063f81ed6ae14610225578063fbfa77cf1461023b578063fc0c546a1461024e575b6005544210156100e4576100df33610261565b6100ed565b6100ed336104bf565b005b34156100fa57600080fd5b610102610704565b60405190815260200160405180910390f35b341561011f57600080fd5b6100ed610712565b341561013257600080fd5b6100ed6108d3565b341561014557600080fd5b6101026109d2565b6100ed600160a060020a0360043516610261565b341561016c57600080fd5b6100ed6109d8565b341561017f57600080fd5b6100ed610b17565b341561019257600080fd5b6100ed600435610c70565b34156101a857600080fd5b6101b0610cd4565b604051600160a060020a03909116815260200160405180910390f35b34156101d757600080fd5b610102610ce3565b6100ed600160a060020a03600435166104bf565b34156101fe57600080fd5b610102610ce9565b341561021157600080fd5b6100ed600160a060020a0360043516610cef565b341561023057600080fd5b6100ed600435610d45565b341561024657600080fd5b6101b0610d65565b341561025957600080fd5b6101b0610d74565b600254600854600091829182919061034290600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b6102c65a03f115156102c857600080fd5b5050506040518051600854909150600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561031b57600080fd5b6102c65a03f1151561032c57600080fd5b505050604051805191905063ffffffff610d8316565b1090508061034f57600080fd5b600554421061035d57600080fd5b600454349350610373908463ffffffff610d9516565b915061039661038983600463ffffffff610dc016565b839063ffffffff610de016565b600160a060020a0333166000908152600a60205260409020549092506103c2903463ffffffff610de016565b600160a060020a033381166000908152600a602052604080822093909355600854909116916340c10f19918791869190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561043a57600080fd5b6102c65a03f1151561044b57600080fd5b50505060405180519050507fddc002e8c8b4a90c21a579964a8fd060767c719bc51190791efde1d9c4e14b65848484600180604051600160a060020a039095168552602085019390935260408085019290925215156060840152901515608083015260a0909101905180910390a150505050565b60015460085460009182918291829161051690600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b111590508061052457600080fd5b600554421015801561053857506006544211155b151561054357600080fd5b600454349450610559908563ffffffff610d9516565b60035460085491945060009350906105af90600160a060020a031663860f504885604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10156105dd57600191506105da6105cd84600563ffffffff610dc016565b849063ffffffff610de016565b92505b600160a060020a0333166000908152600a6020526040902054610606903463ffffffff610de016565b600160a060020a033381166000908152600a602052604080822093909355600854909116916340c10f19918891879190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561067e57600080fd5b6102c65a03f1151561068f57600080fd5b50505060405180519050507fddc002e8c8b4a90c21a579964a8fd060767c719bc51190791efde1d9c4e14b65858585600086604051600160a060020a039095168552602085019390935260408085019290925215156060840152901515608083015260a0909101905180910390a15050505050565b600160a060020a0330163190565b6001546008546000919061076490600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b101590506006544211806107755750805b151561078057600080fd5b600254600854600091906107d290600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10159050806107e057600080fd5b600954600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561081957600080fd5b600854600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561086157600080fd5b6102c65a03f1151561087257600080fd5b50505060405180515050600854600160a060020a031663b1b68fad6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156108bb57600080fd5b6102c65a03f115156108cc57600080fd5b5050505050565b60075442116108e157600080fd5b600954600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561091a57600080fd5b600854600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561096257600080fd5b6102c65a03f1151561097357600080fd5b50505060405180515050600854600160a060020a031663b1b68fad6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156109bc57600080fd5b6102c65a03f115156109cd57600080fd5b505050565b60075481565b6001546008546000918291610a2b90600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10159050600654421180610a3c5750805b1515610a4757600080fd5b60025460085460009190610a9990600160a060020a031663860f504884604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102b757600080fd5b10905080610aa657600080fd5b600160a060020a0333166000908152600a60205260409020549250610ad1838063ffffffff610d8316565b600160a060020a0333166000818152600a602052604090819020929092559084156108fc0290859051600060405180830381858888f1935050505015156109cd57600080fd5b60005433600160a060020a03908116911614610b3257600080fd5b6007544211610b4057600080fd5b600854600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610b8857600080fd5b6102c65a03f11515610b9957600080fd5b50505060405180515050600854600160a060020a031663b1b68fad6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610be257600080fd5b6102c65a03f11515610bf357600080fd5b5050600854600054600160a060020a03918216925063f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4d57600080fd5b6102c65a03f11515610c5e57600080fd5b5050600954600160a060020a03169050ff5b60005433600160a060020a03908116911614610c8b57600080fd5b6005544210610c9957600080fd5b60048190557f66cbca4f3c64fecf1dcb9ce094abcf7f68c3450a1d4e3a8e917dd621edb4ebe08160405190815260200160405180910390a150565b600054600160a060020a031681565b60055481565b60065481565b60005433600160a060020a03908116911614610d0a57600080fd5b600160a060020a03811615610d42576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60005433600160a060020a03908116911614610d6057600080fd5b600555565b600954600160a060020a031681565b600854600160a060020a031681565b600082821115610d8f57fe5b50900390565b6000828202831580610db15750828482811515610dae57fe5b04145b1515610db957fe5b9392505050565b600080808311610dcc57fe5b8284811515610dd757fe5b04949350505050565b600082820183811015610db957fe00a165627a7a723058200492ad5196babea9d650efb7b249de921c4279a41e8eb8a9fe510928cc80a6170029

Swarm Source

bzzr://8727d2ce0e56aa049de4c1e77753d077daa74755a2a7cba4914ffa1dd73d29d4

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.