ETH Price: $3,318.74 (-2.49%)

Contract

0x94BEC329E51dAb8b6253Fcf8c09ce95606d513B6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer208182162024-09-24 4:59:35114 days ago1727153975IN
0x94BEC329...606d513B6
0 ETH0.0003118710.35762453
Transfer201950722024-06-29 4:51:23201 days ago1719636683IN
0x94BEC329...606d513B6
0 ETH0.000067591.3
Transfer171165942023-04-24 13:58:47633 days ago1682344727IN
0x94BEC329...606d513B6
0 ETH0.0016063546.02871666
Transfer171165942023-04-24 13:58:47633 days ago1682344727IN
0x94BEC329...606d513B6
0 ETH0.0023140744.49194987
Transfer169187652023-03-27 12:38:11661 days ago1679920691IN
0x94BEC329...606d513B6
0 ETH0.0006022220
Transfer165962722023-02-10 5:29:23706 days ago1676006963IN
0x94BEC329...606d513B6
0 ETH0.0005600618.59987448
Transfer165522982023-02-04 1:59:47712 days ago1675475987IN
0x94BEC329...606d513B6
0 ETH0.0007653525.42804383
Transfer165330842023-02-01 9:30:47715 days ago1675243847IN
0x94BEC329...606d513B6
0 ETH0.0005470818.16899166
Transfer165304122023-02-01 0:32:59716 days ago1675211579IN
0x94BEC329...606d513B6
0 ETH0.0006647122.07560095
Transfer165266992023-01-31 12:06:47716 days ago1675166807IN
0x94BEC329...606d513B6
0 ETH0.0005018914.37144816
Transfer165266482023-01-31 11:56:35716 days ago1675166195IN
0x94BEC329...606d513B6
0 ETH0.0004088613.57846756
Transfer165264222023-01-31 11:11:11716 days ago1675163471IN
0x94BEC329...606d513B6
0 ETH0.0004478714.87416276
Transfer165261842023-01-31 10:23:23716 days ago1675160603IN
0x94BEC329...606d513B6
0 ETH0.0004573315.18827415
Transfer165255772023-01-31 8:20:59716 days ago1675153259IN
0x94BEC329...606d513B6
0 ETH0.0004348614.44222855
Transfer164670022023-01-23 4:06:11724 days ago1674446771IN
0x94BEC329...606d513B6
0 ETH0.0003865112.83618043
Transfer164395562023-01-19 8:07:23728 days ago1674115643IN
0x94BEC329...606d513B6
0 ETH0.0005315.18158862
Transfer164041092023-01-14 9:20:11733 days ago1673688011IN
0x94BEC329...606d513B6
0 ETH0.0010049233.37412547
Transfer162464412022-12-23 9:11:47755 days ago1671786707IN
0x94BEC329...606d513B6
0 ETH0.0003040810.10282119
Transfer161803012022-12-14 3:38:11764 days ago1670989091IN
0x94BEC329...606d513B6
0 ETH0.0004193413.93209185
Transfer161594512022-12-11 5:43:11767 days ago1670737391IN
0x94BEC329...606d513B6
0 ETH0.0003752312.46158632
Transfer161261382022-12-06 13:45:35772 days ago1670334335IN
0x94BEC329...606d513B6
0 ETH0.0003859212.81675963
Transfer161239102022-12-06 6:18:11772 days ago1670307491IN
0x94BEC329...606d513B6
0 ETH0.000413111.8291062
Transfer161175592022-12-05 8:58:11773 days ago1670230691IN
0x94BEC329...606d513B6
0 ETH0.0003726612.37646627
Transfer161101662022-12-04 8:10:35774 days ago1670141435IN
0x94BEC329...606d513B6
0 ETH0.000288199.57105329
Transfer161101572022-12-04 8:08:47774 days ago1670141327IN
0x94BEC329...606d513B6
0 ETH0.000293629.75125512
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LibertyEcoToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-03-28
*/

pragma solidity ^0.4.25;

/*----------------------------------------------------------------------------
   ERC-20 Token: Fixed supply with ICO 
        + owner distribution upon deployment 
        + limit on token reserve amount function
  ----------------------------------------------------------------------------*/


// -- Safe Math library - integer overflow prevention (OpenZeppelin) --

library SafeMath {
    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0);
        uint256 c = a / b;

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}


// -- ERC-20 Token Standard interface --
// based on https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

contract ERC20Interface {
    function totalSupply() public view returns (uint);
    function balanceOf(address tokenOwner) public view returns (uint balance);
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


// -- Contract function - receive approval and execute function in one call --

contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public;
}


// -- Owned Contract --

contract Owned {
    
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

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

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
    
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}


// -- ERC20 Token + fixed supply --

contract LibertyEcoToken is ERC20Interface, Owned {
    using SafeMath for uint;

    string public symbol;
    string public name;
    uint8 public decimals;
    
    uint256 _totalSupply;
    uint256 public reserveCap = 0;                                  // Amount of tokens to reserve for owner (constructor) 
    uint256 public tokensRemain = 0;                                // Amount of tokens to sell (constructor)
    uint256 public tokensSold = 0;                                  // Amount of tokens sold
    uint256 public tokensDistributed = 0;                           // Amount of tokens distributed

    uint256 public tokensPerEth = 100;                               // Units of token can be bought with 1 ETH
    uint256 public EtherInWei = 0;                                  // Store the total ETH raised via ICO 
    
    bool reserveCapped = false;
    address public fundsWallet;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;


    // -- Constructor --
    
    constructor() public {
        symbol = "LES";                                            // Token symbol / abbreviation
        name = "Liberty EcoToken";                                         // Token name
        decimals = 18;                                              
        _totalSupply = 10000000000 * 10**uint(decimals);               // Initial token supply deployed (in wei) -- 100 tokens
        
        balances[owner] = _totalSupply;                             // give all token supply to owner
        emit Transfer(address(0), owner, _totalSupply);
        
        fundsWallet = msg.sender;                                   // To be funded on owner's wallet
        
        tokensRemain = _totalSupply.sub(reserveCap);
    }


    // -- Total Supply --
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply.sub(balances[address(0)]);
    }


    // -- Get token balance for account `tokenOwner` - use wei --
    
    function balanceOf(address tokenOwner) public view returns (uint256 balance) {
        return balances[tokenOwner];
    }

    /*
      -- Transfer balance from token owner's account to other account - use wei --
        - Owner's account must have sufficient balance to transfer
        - 0 value transfers are allowed
    */
    
    function transfer(address to, uint256 tokens) public returns (bool success) {
        require(to != address(0));
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }


    /* 
      -- Token owner can approve for `spender` to transferFrom(...) `tokens` from the token owner's account - use wei --
     
        ERC-20 Token Standard recommends that there are no checks for the approval 
        double-spend attack as this should be implemented in user interfaces
    */
    
    function approve(address spender, uint256 tokens) public returns (bool success) {
        require(spender != address(0));
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }


    /*
      -- Transfer `tokens` from the `from` account to the `to` account - use wei --
    
        The calling account must already have sufficient tokens approve(...)-d
        for spending from the `from` account and:
        
        - From account must have sufficient balance to transfer
        - Spender must have sufficient allowance to transfer
        - 0 value transfers are allowed
    */
    
    function transferFrom(address _from, address to, uint256 tokens) public returns (bool success) {
        require(_from != address(0) && to != address(0));
        balances[_from] = balances[_from].sub(tokens);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(_from, to, tokens);
        return true;
    }


    //  -- Returns the amount of tokens approved by the owner that can be transferred to the spender's account - use wei --
    
    function allowance(address tokenOwner, address spender) public view returns (uint256 remaining) {
        return allowed[tokenOwner][spender];
    }


    /*
      -- Token owner can approve for `spender` to transferFrom(...) `tokens` from the token owner's account - use wei -- 
        - The `spender` contract function `receiveApproval(...)` is then executed
    */
    
    function approveAndCall(address spender, uint256 tokens, bytes memory data) public returns (bool success) {
        require(spender != address(0));
        require(tokens != 0);
        
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
        return true;
    }


    // -- 100 tokens given per 1 ETH but revert if owner reserve limit reached --
    
    function () external payable {
        require(msg.value != 0);
        if(balances[owner] >= reserveCap) {
            EtherInWei = EtherInWei.add(msg.value);
            uint256 amount = tokensPerEth.mul(msg.value);
            
            require(balances[fundsWallet] >= amount);
            
            balances[fundsWallet] = balances[fundsWallet].sub(amount);
            balances[msg.sender] = balances[msg.sender].add(amount);
            
            emit Transfer(fundsWallet, msg.sender, amount); // Broadcast a message to the blockchain
            
            //Transfer ether to fundsWallet
            fundsWallet.transfer(msg.value);
            
            deductToken(amount);
        }
        
        else {
            revert("Token balance reaches reserve capacity, no more tokens will be given out.");
        }
    }


    // -- Owner can transfer out any accidentally sent ERC20 tokens - use wei --
    
    function transferAnyERC20Token(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
    
    // -- Mini function to deduct remaining tokens to sell and add in amount of tokens sold
    function deductToken(uint256 amt) private {
        tokensRemain = tokensRemain.sub(amt);
        tokensSold = tokensSold.add(amt);
    }
    
    // -- Set reserve cap by amount (only once)
    
    function setReserveCap(uint256 tokenAmount) public onlyOwner {
        require(tokenAmount != 0 && reserveCapped != true);
        
        reserveCap = tokenAmount * 10**uint(decimals);
        tokensRemain = balances[owner].sub(reserveCap);
        
        reserveCapped = true;
    }
    
    // -- Set reserve cap by percentage (only once)
    
    function setReserveCapPercentage (uint percentage) public onlyOwner {
        require(percentage != 0 && reserveCapped != true);
        reserveCap = calcSupplyPercentage(percentage);
        tokensRemain = balances[owner].sub(reserveCap);
        
        reserveCapped = true;
    }
    
    // -- Mini function for calculating token percentage from whole supply --
    
    function calcSupplyPercentage(uint256 percent) public view returns (uint256){
        uint256 total = _totalSupply.mul(percent.mul(100)).div(10000);
        
        return total;
    }
    
    // -- Distribute tokens to other address (with amount of tokens) --
    
    function distributeTokenByAmount(address dist_address, uint256 tokens)public payable onlyOwner returns (bool success){
        require(balances[owner] > 0);
        uint256 tokenToDistribute = tokens * 10**uint(decimals);
        
        require(tokensRemain >= tokenToDistribute);
        
        balances[owner] = balances[owner].sub(tokenToDistribute);
        balances[dist_address] = balances[dist_address].add(tokenToDistribute);
        
        emit Transfer(owner, dist_address, tokenToDistribute);
        
        tokensRemain = tokensRemain.sub(tokenToDistribute);
        tokensDistributed = tokensDistributed.add(tokenToDistribute);
        
        return true;
    }
    
    // -- Release reserve cap from owner for token sell by amount of tokens
    
    function releaseCapByAmount(uint256 tokenAmount) public onlyOwner {
        require(tokenAmount != 0 && reserveCapped == true);
        tokenAmount = tokenAmount * 10**uint(decimals);
        
        require(balances[owner] >= tokenAmount);
        reserveCap = reserveCap.sub(tokenAmount);
        tokensRemain = tokensRemain.add(tokenAmount);
    }
    
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"percent","type":"uint256"}],"name":"calcSupplyPercentage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensDistributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAmount","type":"uint256"}],"name":"setReserveCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundsWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserveCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dist_address","type":"address"},{"name":"tokens","type":"uint256"}],"name":"distributeTokenByAmount","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAmount","type":"uint256"}],"name":"releaseCapByAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EtherInWei","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensRemain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"percentage","type":"uint256"}],"name":"setReserveCapPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

6080604052600060068190556007819055600881905560098190556064600a55600b55600c805460ff191690553480156200003957600080fd5b5060008054600160a060020a031916331790556040805180820190915260038082527f4c4553000000000000000000000000000000000000000000000000000000000060209092019182526200009291600291620001ab565b506040805180820190915260108082527f4c6962657274792045636f546f6b656e000000000000000000000000000000006020909201918252620000d991600391620001ab565b5060048054601260ff19909116179081905560ff16600a0a6402540be40002600581905560008054600160a060020a039081168252600d602090815260408084208590558354815195865290519216937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3600c805461010060a860020a03191633610100021790556006546005546200018a91640100000000620001938102620007b11704565b60075562000250565b60008083831115620001a457600080fd5b5050900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ee57805160ff19168380011785556200021e565b828001600101855582156200021e579182015b828111156200021e57825182559160200191906001019062000201565b506200022c92915062000230565b5090565b6200024d91905b808211156200022c576000815560010162000237565b90565b61129f80620002606000396000f30060806040526004361061015e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663036cfbdb811461039257806306fdde03146103bc578063095ea7b314610446578063152e84a71461047e57806318160ddd146104935780631fd0151e146104a85780632194f3a2146104c25780632223a5da146104f357806323b872dd146105085780632a08c7ab14610532578063313ce567146105495780634c84b16f14610574578063518ab2a81461058c57806370a08231146105a157806379ba5097146105c25780638ab05249146105d75780638da5cb5b146105ec57806395d89b4114610601578063a9059cbb14610616578063cae9ca511461063a578063cbdd69b5146106a3578063d4ee1d90146106b8578063dc39d06d146106cd578063dd62ed3e146106f1578063e760493614610718578063ee6ac6931461072d578063f2fde38b14610745575b600034151561016c57600080fd5b60065460008054600160a060020a03168152600d6020526040902054106102dc57600b546101a0903463ffffffff61076616565b600b55600a546101b6903463ffffffff61078316565b600c546101009004600160a060020a03166000908152600d60205260409020549091508111156101e557600080fd5b600c546101009004600160a060020a03166000908152600d602052604090205461020f90826107b1565b600c546101009004600160a060020a03166000908152600d60205260408082209290925533815220546102429082610766565b336000818152600d602090815260409182902093909355600c54815185815291519293610100909104600160a060020a0316926000805160206112548339815191529281900390910190a3600c54604051600160a060020a0361010090920491909116903480156108fc02916000818181858888f193505050501580156102cd573d6000803e3d6000fd5b506102d7816107c8565b61038f565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f546f6b656e2062616c616e63652072656163686573207265736572766520636160448201527f7061636974792c206e6f206d6f726520746f6b656e732077696c6c206265206760648201527f6976656e206f75742e0000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b50005b34801561039e57600080fd5b506103aa6004356107f7565b60408051918252519081900360200190f35b3480156103c857600080fd5b506103d1610836565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561040b5781810151838201526020016103f3565b50505050905090810190601f1680156104385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045257600080fd5b5061046a600160a060020a03600435166024356108c4565b604080519115158252519081900360200190f35b34801561048a57600080fd5b506103aa610942565b34801561049f57600080fd5b506103aa610948565b3480156104b457600080fd5b506104c060043561098b565b005b3480156104ce57600080fd5b506104d7610a0f565b60408051600160a060020a039092168252519081900360200190f35b3480156104ff57600080fd5b506103aa610a23565b34801561051457600080fd5b5061046a600160a060020a0360043581169060243516604435610a29565b61046a600160a060020a0360043516602435610b4f565b34801561055557600080fd5b5061055e610c85565b6040805160ff9092168252519081900360200190f35b34801561058057600080fd5b506104c0600435610c8e565b34801561059857600080fd5b506103aa610d2a565b3480156105ad57600080fd5b506103aa600160a060020a0360043516610d30565b3480156105ce57600080fd5b506104c0610d4b565b3480156105e357600080fd5b506103aa610dd3565b3480156105f857600080fd5b506104d7610dd9565b34801561060d57600080fd5b506103d1610de8565b34801561062257600080fd5b5061046a600160a060020a0360043516602435610e40565b34801561064657600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261046a948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610ef59650505050505050565b3480156106af57600080fd5b506103aa61107a565b3480156106c457600080fd5b506104d7611080565b3480156106d957600080fd5b5061046a600160a060020a036004351660243561108f565b3480156106fd57600080fd5b506103aa600160a060020a036004358116906024351661114a565b34801561072457600080fd5b506103aa611175565b34801561073957600080fd5b506104c060043561117b565b34801561075157600080fd5b506104c0600160a060020a03600435166111ea565b60008282018381101561077857600080fd5b8091505b5092915050565b600080831515610796576000915061077c565b508282028284828115156107a657fe5b041461077857600080fd5b600080838311156107c157600080fd5b5050900390565b6007546107db908263ffffffff6107b116565b6007556008546107f1908263ffffffff61076616565b60085550565b60008061082f61271061082361081486606463ffffffff61078316565b6005549063ffffffff61078316565b9063ffffffff61123016565b9392505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108bc5780601f10610891576101008083540402835291602001916108bc565b820191906000526020600020905b81548152906001019060200180831161089f57829003601f168201915b505050505081565b6000600160a060020a03831615156108db57600080fd5b336000818152600e60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60095481565b6000808052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee546005546109869163ffffffff6107b116565b905090565b600054600160a060020a031633146109a257600080fd5b80158015906109b95750600c5460ff161515600114155b15156109c457600080fd5b60045460ff16600a0a8102600681905560008054600160a060020a03168152600d60205260409020546109fc9163ffffffff6107b116565b60075550600c805460ff19166001179055565b600c546101009004600160a060020a031681565b60065481565b6000600160a060020a03841615801590610a4b5750600160a060020a03831615155b1515610a5657600080fd5b600160a060020a0384166000908152600d6020526040902054610a7f908363ffffffff6107b116565b600160a060020a0385166000908152600d6020908152604080832093909355600e815282822033835290522054610abc908363ffffffff6107b116565b600160a060020a038086166000908152600e602090815260408083203384528252808320949094559186168152600d9091522054610b00908363ffffffff61076616565b600160a060020a038085166000818152600d6020908152604091829020949094558051868152905191939288169260008051602061125483398151915292918290030190a35060019392505050565b600080548190600160a060020a03163314610b6957600080fd5b60008054600160a060020a03168152600d602052604081205411610b8c57600080fd5b5060045460075460ff909116600a0a830290811115610baa57600080fd5b60008054600160a060020a03168152600d6020526040902054610bd3908263ffffffff6107b116565b60008054600160a060020a039081168252600d602052604080832093909355861681522054610c08908263ffffffff61076616565b600160a060020a038086166000818152600d60209081526040808320959095559054845186815294519294931692600080516020611254833981519152929081900390910190a3600754610c62908263ffffffff6107b116565b600755600954610c78908263ffffffff61076616565b6009555060019392505050565b60045460ff1681565b600054600160a060020a03163314610ca557600080fd5b8015801590610cbb5750600c5460ff1615156001145b1515610cc657600080fd5b60045460008054600160a060020a03168152600d602052604090205460ff909116600a0a9190910290811115610cfb57600080fd5b600654610d0e908263ffffffff6107b116565b600655600754610d24908263ffffffff61076616565b60075550565b60085481565b600160a060020a03166000908152600d602052604090205490565b600154600160a060020a03163314610d6257600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600b5481565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108bc5780601f10610891576101008083540402835291602001916108bc565b6000600160a060020a0383161515610e5757600080fd5b336000908152600d6020526040902054610e77908363ffffffff6107b116565b336000908152600d602052604080822092909255600160a060020a03851681522054610ea9908363ffffffff61076616565b600160a060020a0384166000818152600d60209081526040918290209390935580518581529051919233926000805160206112548339815191529281900390910190a350600192915050565b6000600160a060020a0384161515610f0c57600080fd5b821515610f1857600080fd5b336000818152600e60209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561105857600080fd5b505af115801561106c573d6000803e3d6000fd5b506001979650505050505050565b600a5481565b600154600160a060020a031681565b60008054600160a060020a031633146110a757600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b15801561111757600080fd5b505af115801561112b573d6000803e3d6000fd5b505050506040513d602081101561114157600080fd5b50519392505050565b600160a060020a039182166000908152600e6020908152604080832093909416825291909152205490565b60075481565b600054600160a060020a0316331461119257600080fd5b80158015906111a95750600c5460ff161515600114155b15156111b457600080fd5b6111bd816107f7565b600681905560008054600160a060020a03168152600d60205260409020546109fc9163ffffffff6107b116565b600054600160a060020a0316331461120157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008080831161123f57600080fd5b828481151561124a57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bbdf26549a28d61efd8ce385cc0fc5835ef1495728011d182795e98650f4db350029

Deployed Bytecode

0x60806040526004361061015e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663036cfbdb811461039257806306fdde03146103bc578063095ea7b314610446578063152e84a71461047e57806318160ddd146104935780631fd0151e146104a85780632194f3a2146104c25780632223a5da146104f357806323b872dd146105085780632a08c7ab14610532578063313ce567146105495780634c84b16f14610574578063518ab2a81461058c57806370a08231146105a157806379ba5097146105c25780638ab05249146105d75780638da5cb5b146105ec57806395d89b4114610601578063a9059cbb14610616578063cae9ca511461063a578063cbdd69b5146106a3578063d4ee1d90146106b8578063dc39d06d146106cd578063dd62ed3e146106f1578063e760493614610718578063ee6ac6931461072d578063f2fde38b14610745575b600034151561016c57600080fd5b60065460008054600160a060020a03168152600d6020526040902054106102dc57600b546101a0903463ffffffff61076616565b600b55600a546101b6903463ffffffff61078316565b600c546101009004600160a060020a03166000908152600d60205260409020549091508111156101e557600080fd5b600c546101009004600160a060020a03166000908152600d602052604090205461020f90826107b1565b600c546101009004600160a060020a03166000908152600d60205260408082209290925533815220546102429082610766565b336000818152600d602090815260409182902093909355600c54815185815291519293610100909104600160a060020a0316926000805160206112548339815191529281900390910190a3600c54604051600160a060020a0361010090920491909116903480156108fc02916000818181858888f193505050501580156102cd573d6000803e3d6000fd5b506102d7816107c8565b61038f565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f546f6b656e2062616c616e63652072656163686573207265736572766520636160448201527f7061636974792c206e6f206d6f726520746f6b656e732077696c6c206265206760648201527f6976656e206f75742e0000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b50005b34801561039e57600080fd5b506103aa6004356107f7565b60408051918252519081900360200190f35b3480156103c857600080fd5b506103d1610836565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561040b5781810151838201526020016103f3565b50505050905090810190601f1680156104385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045257600080fd5b5061046a600160a060020a03600435166024356108c4565b604080519115158252519081900360200190f35b34801561048a57600080fd5b506103aa610942565b34801561049f57600080fd5b506103aa610948565b3480156104b457600080fd5b506104c060043561098b565b005b3480156104ce57600080fd5b506104d7610a0f565b60408051600160a060020a039092168252519081900360200190f35b3480156104ff57600080fd5b506103aa610a23565b34801561051457600080fd5b5061046a600160a060020a0360043581169060243516604435610a29565b61046a600160a060020a0360043516602435610b4f565b34801561055557600080fd5b5061055e610c85565b6040805160ff9092168252519081900360200190f35b34801561058057600080fd5b506104c0600435610c8e565b34801561059857600080fd5b506103aa610d2a565b3480156105ad57600080fd5b506103aa600160a060020a0360043516610d30565b3480156105ce57600080fd5b506104c0610d4b565b3480156105e357600080fd5b506103aa610dd3565b3480156105f857600080fd5b506104d7610dd9565b34801561060d57600080fd5b506103d1610de8565b34801561062257600080fd5b5061046a600160a060020a0360043516602435610e40565b34801561064657600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261046a948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610ef59650505050505050565b3480156106af57600080fd5b506103aa61107a565b3480156106c457600080fd5b506104d7611080565b3480156106d957600080fd5b5061046a600160a060020a036004351660243561108f565b3480156106fd57600080fd5b506103aa600160a060020a036004358116906024351661114a565b34801561072457600080fd5b506103aa611175565b34801561073957600080fd5b506104c060043561117b565b34801561075157600080fd5b506104c0600160a060020a03600435166111ea565b60008282018381101561077857600080fd5b8091505b5092915050565b600080831515610796576000915061077c565b508282028284828115156107a657fe5b041461077857600080fd5b600080838311156107c157600080fd5b5050900390565b6007546107db908263ffffffff6107b116565b6007556008546107f1908263ffffffff61076616565b60085550565b60008061082f61271061082361081486606463ffffffff61078316565b6005549063ffffffff61078316565b9063ffffffff61123016565b9392505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108bc5780601f10610891576101008083540402835291602001916108bc565b820191906000526020600020905b81548152906001019060200180831161089f57829003601f168201915b505050505081565b6000600160a060020a03831615156108db57600080fd5b336000818152600e60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60095481565b6000808052600d6020527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee546005546109869163ffffffff6107b116565b905090565b600054600160a060020a031633146109a257600080fd5b80158015906109b95750600c5460ff161515600114155b15156109c457600080fd5b60045460ff16600a0a8102600681905560008054600160a060020a03168152600d60205260409020546109fc9163ffffffff6107b116565b60075550600c805460ff19166001179055565b600c546101009004600160a060020a031681565b60065481565b6000600160a060020a03841615801590610a4b5750600160a060020a03831615155b1515610a5657600080fd5b600160a060020a0384166000908152600d6020526040902054610a7f908363ffffffff6107b116565b600160a060020a0385166000908152600d6020908152604080832093909355600e815282822033835290522054610abc908363ffffffff6107b116565b600160a060020a038086166000908152600e602090815260408083203384528252808320949094559186168152600d9091522054610b00908363ffffffff61076616565b600160a060020a038085166000818152600d6020908152604091829020949094558051868152905191939288169260008051602061125483398151915292918290030190a35060019392505050565b600080548190600160a060020a03163314610b6957600080fd5b60008054600160a060020a03168152600d602052604081205411610b8c57600080fd5b5060045460075460ff909116600a0a830290811115610baa57600080fd5b60008054600160a060020a03168152600d6020526040902054610bd3908263ffffffff6107b116565b60008054600160a060020a039081168252600d602052604080832093909355861681522054610c08908263ffffffff61076616565b600160a060020a038086166000818152600d60209081526040808320959095559054845186815294519294931692600080516020611254833981519152929081900390910190a3600754610c62908263ffffffff6107b116565b600755600954610c78908263ffffffff61076616565b6009555060019392505050565b60045460ff1681565b600054600160a060020a03163314610ca557600080fd5b8015801590610cbb5750600c5460ff1615156001145b1515610cc657600080fd5b60045460008054600160a060020a03168152600d602052604090205460ff909116600a0a9190910290811115610cfb57600080fd5b600654610d0e908263ffffffff6107b116565b600655600754610d24908263ffffffff61076616565b60075550565b60085481565b600160a060020a03166000908152600d602052604090205490565b600154600160a060020a03163314610d6257600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600b5481565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108bc5780601f10610891576101008083540402835291602001916108bc565b6000600160a060020a0383161515610e5757600080fd5b336000908152600d6020526040902054610e77908363ffffffff6107b116565b336000908152600d602052604080822092909255600160a060020a03851681522054610ea9908363ffffffff61076616565b600160a060020a0384166000818152600d60209081526040918290209390935580518581529051919233926000805160206112548339815191529281900390910190a350600192915050565b6000600160a060020a0384161515610f0c57600080fd5b821515610f1857600080fd5b336000818152600e60209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561105857600080fd5b505af115801561106c573d6000803e3d6000fd5b506001979650505050505050565b600a5481565b600154600160a060020a031681565b60008054600160a060020a031633146110a757600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b15801561111757600080fd5b505af115801561112b573d6000803e3d6000fd5b505050506040513d602081101561114157600080fd5b50519392505050565b600160a060020a039182166000908152600e6020908152604080832093909416825291909152205490565b60075481565b600054600160a060020a0316331461119257600080fd5b80158015906111a95750600c5460ff161515600114155b15156111b457600080fd5b6111bd816107f7565b600681905560008054600160a060020a03168152600d60205260409020546109fc9163ffffffff6107b116565b600054600160a060020a0316331461120157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008080831161123f57600080fd5b828481151561124a57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bbdf26549a28d61efd8ce385cc0fc5835ef1495728011d182795e98650f4db350029

Swarm Source

bzzr://bbdf26549a28d61efd8ce385cc0fc5835ef1495728011d182795e98650f4db35

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  ]

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.