ETH Price: $3,178.60 (+0.80%)

Contract

0x2C4e8f2D746113d0696cE89B35F0d8bF88E0AEcA
 
Transaction Hash
Method
Block
From
To
Approve216022012025-01-11 15:41:352 days ago1736610095IN
Simple Token
0 ETH0.000166693.598129
Approve215984912025-01-11 3:15:113 days ago1736565311IN
Simple Token
0 ETH0.000170783.7019368
Approve215833582025-01-09 0:31:115 days ago1736382671IN
Simple Token
0 ETH0.000133565.53883438
Transfer215552942025-01-05 2:27:479 days ago1736044067IN
Simple Token
0 ETH0.000309656.26029682
Approve215549262025-01-05 1:14:119 days ago1736039651IN
Simple Token
0 ETH0.00035077.60377332
Transfer215374802025-01-02 14:47:4711 days ago1735829267IN
Simple Token
0 ETH0.0009183418.57944225
Transfer215270512025-01-01 3:52:4713 days ago1735703567IN
Simple Token
0 ETH0.000127892.58750527
Transfer215258982025-01-01 0:01:3513 days ago1735689695IN
Simple Token
0 ETH0.000241254.88088335
Approve215215942024-12-31 9:34:4713 days ago1735637687IN
Simple Token
0 ETH0.0006224913.50334291
Transfer215103992024-12-29 20:04:3515 days ago1735502675IN
Simple Token
0 ETH0.000248715.03305019
Approve215085572024-12-29 13:54:3515 days ago1735480475IN
Simple Token
0 ETH0.000235575.07720303
Approve214996042024-12-28 7:55:2317 days ago1735372523IN
Simple Token
0 ETH0.000199914.30866188
Transfer214948912024-12-27 16:08:2317 days ago1735315703IN
Simple Token
0 ETH0.000486999.85501336
Transfer214903282024-12-27 0:50:2318 days ago1735260623IN
Simple Token
0 ETH0.00022466.05155941
Transfer214891332024-12-26 20:49:4718 days ago1735246187IN
Simple Token
0 ETH0.000281697.58971718
Transfer214737582024-12-24 17:16:3520 days ago1735060595IN
Simple Token
0 ETH0.000466359.4396189
Approve214600252024-12-22 19:08:1122 days ago1734894491IN
Simple Token
0 ETH0.000285876.20608694
Approve214347082024-12-19 6:13:5926 days ago1734588839IN
Simple Token
0 ETH0.0005453811.7542363
Transfer214008812024-12-14 12:53:3530 days ago1734180815IN
Simple Token
0 ETH0.000418058.45989763
Transfer213984782024-12-14 4:50:5931 days ago1734151859IN
Simple Token
0 ETH0.0004233711.40681613
Transfer213972792024-12-14 0:50:1131 days ago1734137411IN
Simple Token
0 ETH0.0004632412.48106527
Transfer213884552024-12-12 19:15:5932 days ago1734030959IN
Simple Token
0 ETH0.0009042727.97196387
Transfer213671662024-12-09 19:54:3535 days ago1733774075IN
Simple Token
0 ETH0.0016619330.64722338
Transfer213529952024-12-07 20:28:1137 days ago1733603291IN
Simple Token
0 ETH0.0007319914.81648629
Approve213520032024-12-07 17:07:5937 days ago1733591279IN
Simple Token
0 ETH0.0006877814.92740824
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:
SimpleToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.17;

// ----------------------------------------------------------------------------
// Simple Token Contract
//
// Copyright (c) 2017 OpenST Ltd.
// https://simpletoken.org/
//
// The MIT Licence.
// ----------------------------------------------------------------------------

// ----------------------------------------------------------------------------
// SafeMath Library Implementation
//
// Copyright (c) 2017 OpenST Ltd.
// https://simpletoken.org/
//
// The MIT Licence.
//
// Based on the SafeMath library by the OpenZeppelin team.
// Copyright (c) 2016 Smart Contract Solutions, Inc.
// https://github.com/OpenZeppelin/zeppelin-solidity
// The MIT License.
// ----------------------------------------------------------------------------


library SafeMath {

    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) {
        // Solidity automatically throws when dividing by 0
        uint256 c = a / b;

        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        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;
    }
}

//
// Implements basic ownership with 2-step transfers.
//
contract Owned {

    address public owner;
    address public proposedOwner;

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


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


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


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


    function initiateOwnershipTransfer(address _proposedOwner) public onlyOwner returns (bool) {
        proposedOwner = _proposedOwner;

        OwnershipTransferInitiated(_proposedOwner);

        return true;
    }


    function completeOwnershipTransfer() public returns (bool) {
        require(msg.sender == proposedOwner);

        owner = proposedOwner;
        proposedOwner = address(0);

        OwnershipTransferCompleted(owner);

        return true;
    }
}

contract SimpleTokenConfig {

    string  public constant TOKEN_SYMBOL   = "ST";
    string  public constant TOKEN_NAME     = "Simple Token";
    uint8   public constant TOKEN_DECIMALS = 18;

    uint256 public constant DECIMALSFACTOR = 10**uint256(TOKEN_DECIMALS);
    uint256 public constant TOKENS_MAX     = 800000000 * DECIMALSFACTOR;
}

contract ERC20Interface {

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    function name() public view returns (string);
    function symbol() public view returns (string);
    function decimals() public view returns (uint8);
    function totalSupply() public view returns (uint256);

    function balanceOf(address _owner) public view returns (uint256 balance);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);

    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
}

//
// Standard ERC20 implementation, with ownership.
//
contract ERC20Token is ERC20Interface, Owned {

    using SafeMath for uint256;

    string  private tokenName;
    string  private tokenSymbol;
    uint8   private tokenDecimals;
    uint256 internal tokenTotalSupply;

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


    function ERC20Token(string _symbol, string _name, uint8 _decimals, uint256 _totalSupply) public
        Owned()
    {
        tokenSymbol      = _symbol;
        tokenName        = _name;
        tokenDecimals    = _decimals;
        tokenTotalSupply = _totalSupply;
        balances[owner]  = _totalSupply;

        // According to the ERC20 standard, a token contract which creates new tokens should trigger
        // a Transfer event and transfers of 0 values must also fire the event.
        Transfer(0x0, owner, _totalSupply);
    }


    function name() public view returns (string) {
        return tokenName;
    }


    function symbol() public view returns (string) {
        return tokenSymbol;
    }


    function decimals() public view returns (uint8) {
        return tokenDecimals;
    }


    function totalSupply() public view returns (uint256) {
        return tokenTotalSupply;
    }


    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }


    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }


    function transfer(address _to, uint256 _value) public returns (bool success) {
        // According to the EIP20 spec, "transfers of 0 values MUST be treated as normal
        // transfers and fire the Transfer event".
        // Also, should throw if not enough balance. This is taken care of by SafeMath.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        Transfer(msg.sender, _to, _value);

        return true;
    }


    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        Transfer(_from, _to, _value);

        return true;
    }


    function approve(address _spender, uint256 _value) public returns (bool success) {

        allowed[msg.sender][_spender] = _value;

        Approval(msg.sender, _spender, _value);

        return true;
    }

}



//
// Implements a more advanced ownership and permission model based on owner,
// admin and ops per Simple Token key management specification.
//
contract OpsManaged is Owned {

    address public opsAddress;
    address public adminAddress;

    event AdminAddressChanged(address indexed _newAddress);
    event OpsAddressChanged(address indexed _newAddress);


    function OpsManaged() public
        Owned()
    {
    }


    modifier onlyAdmin() {
        require(isAdmin(msg.sender));
        _;
    }


    modifier onlyAdminOrOps() {
        require(isAdmin(msg.sender) || isOps(msg.sender));
        _;
    }


    modifier onlyOwnerOrAdmin() {
        require(isOwner(msg.sender) || isAdmin(msg.sender));
        _;
    }


    modifier onlyOps() {
        require(isOps(msg.sender));
        _;
    }


    function isAdmin(address _address) internal view returns (bool) {
        return (adminAddress != address(0) && _address == adminAddress);
    }


    function isOps(address _address) internal view returns (bool) {
        return (opsAddress != address(0) && _address == opsAddress);
    }


    function isOwnerOrOps(address _address) internal view returns (bool) {
        return (isOwner(_address) || isOps(_address));
    }


    // Owner and Admin can change the admin address. Address can also be set to 0 to 'disable' it.
    function setAdminAddress(address _adminAddress) external onlyOwnerOrAdmin returns (bool) {
        require(_adminAddress != owner);
        require(_adminAddress != address(this));
        require(!isOps(_adminAddress));

        adminAddress = _adminAddress;

        AdminAddressChanged(_adminAddress);

        return true;
    }


    // Owner and Admin can change the operations address. Address can also be set to 0 to 'disable' it.
    function setOpsAddress(address _opsAddress) external onlyOwnerOrAdmin returns (bool) {
        require(_opsAddress != owner);
        require(_opsAddress != address(this));
        require(!isAdmin(_opsAddress));

        opsAddress = _opsAddress;

        OpsAddressChanged(_opsAddress);

        return true;
    }
}


//
// SimpleToken is a standard ERC20 token with some additional functionality:
// - It has a concept of finalize
// - Before finalize, nobody can transfer tokens except:
//     - Owner and operations can transfer tokens
//     - Anybody can send back tokens to owner
// - After finalize, no restrictions on token transfers
//

//
// Permissions, according to the ST key management specification.
//
//                                    Owner    Admin   Ops
// transfer (before finalize)           x               x
// transferForm (before finalize)       x               x
// finalize                                      x
//

contract SimpleToken is ERC20Token, OpsManaged, SimpleTokenConfig {

    bool public finalized;


    // Events
    event Burnt(address indexed _from, uint256 _amount);
    event Finalized();


    function SimpleToken() public
        ERC20Token(TOKEN_SYMBOL, TOKEN_NAME, TOKEN_DECIMALS, TOKENS_MAX)
        OpsManaged()
    {
        finalized = false;
    }


    // Implementation of the standard transfer method that takes into account the finalize flag.
    function transfer(address _to, uint256 _value) public returns (bool success) {
        checkTransferAllowed(msg.sender, _to);

        return super.transfer(_to, _value);
    }


    // Implementation of the standard transferFrom method that takes into account the finalize flag.
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        checkTransferAllowed(msg.sender, _to);

        return super.transferFrom(_from, _to, _value);
    }


    function checkTransferAllowed(address _sender, address _to) private view {
        if (finalized) {
            // Everybody should be ok to transfer once the token is finalized.
            return;
        }

        // Owner and Ops are allowed to transfer tokens before the sale is finalized.
        // This allows the tokens to move from the TokenSale contract to a beneficiary.
        // We also allow someone to send tokens back to the owner. This is useful among other
        // cases, for the Trustee to transfer unlocked tokens back to the owner (reclaimTokens).
        require(isOwnerOrOps(_sender) || _to == owner);
    }

    // Implement a burn function to permit msg.sender to reduce its balance
    // which also reduces tokenTotalSupply
    function burn(uint256 _value) public returns (bool success) {
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        tokenTotalSupply = tokenTotalSupply.sub(_value);

        Burnt(msg.sender, _value);

        return true;
    }


    // Finalize method marks the point where token transfers are finally allowed for everybody.
    function finalize() external onlyAdmin returns (bool success) {
        require(!finalized);

        finalized = true;

        Finalized();

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"setAdminAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_DECIMALS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_opsAddress","type":"address"}],"name":"setOpsAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALSFACTOR","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":"opsAddress","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":true,"inputs":[],"name":"TOKENS_MAX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"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":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"completeOwnershipTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Burnt","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newAddress","type":"address"}],"name":"AdminAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newAddress","type":"address"}],"name":"OpsAddressChanged","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":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

6060604052341561000f57600080fd5b604080519081016040908152600282527f535400000000000000000000000000000000000000000000000000000000000060208301528051908101604052600c81527f53696d706c6520546f6b656e0000000000000000000000000000000000000000602082015260008054600160a060020a03191633600160a060020a031617905560126b0295be96e64066972000000060038480516100b492916020019061014f565b5060028380516100c892916020019061014f565b506004805460ff191660ff8416179055600581905560008054600160a060020a03908116825260066020526040808320849055825490911691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a350506009805460a060020a60ff0219169055506101ea9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061019057805160ff19168380011785556101bd565b828001600101855582156101bd579182015b828111156101bd5782518255916020019190600101906101a2565b506101c99291506101cd565b5090565b6101e791905b808211156101c957600081556001016101d3565b90565b610e4c806101f96000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d757806318160ddd1461020d578063188214001461023257806323b872dd146102455780632a9053181461026d5780632c1e816d14610280578063313ce5671461029f57806342966c68146102c85780634bb278f3146102de5780635b7f415c146102f1578063707789c51461030457806370a08231146103235780638bc04eb7146103425780638da5cb5b146103555780638ea643761461038457806395d89b4114610397578063a67e91a8146103aa578063a9059cbb146103bd578063b3f05b97146103df578063c0b6f561146103f2578063d153b60c14610411578063dd62ed3e14610424578063e71a781114610449578063fc6f94681461045c575b600080fd5b341561015857600080fd5b61016061046f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019c578082015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e257600080fd5b6101f9600160a060020a0360043516602435610517565b604051901515815260200160405180910390f35b341561021857600080fd5b610220610583565b60405190815260200160405180910390f35b341561023d57600080fd5b610160610589565b341561025057600080fd5b6101f9600160a060020a03600435811690602435166044356105c0565b341561027857600080fd5b6101606105df565b341561028b57600080fd5b6101f9600160a060020a0360043516610616565b34156102aa57600080fd5b6102b26106e9565b60405160ff909116815260200160405180910390f35b34156102d357600080fd5b6101f96004356106f2565b34156102e957600080fd5b6101f96107b4565b34156102fc57600080fd5b6102b2610837565b341561030f57600080fd5b6101f9600160a060020a036004351661083c565b341561032e57600080fd5b610220600160a060020a036004351661090f565b341561034d57600080fd5b61022061092a565b341561036057600080fd5b610368610936565b604051600160a060020a03909116815260200160405180910390f35b341561038f57600080fd5b610368610945565b34156103a257600080fd5b610160610954565b34156103b557600080fd5b6102206109c7565b34156103c857600080fd5b6101f9600160a060020a03600435166024356109d7565b34156103ea57600080fd5b6101f96109f4565b34156103fd57600080fd5b6101f9600160a060020a0360043516610a04565b341561041c57600080fd5b610368610a79565b341561042f57600080fd5b610220600160a060020a0360043581169060243516610a88565b341561045457600080fd5b6101f9610ab3565b341561046757600080fd5b610368610b3a565b610477610e0e565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561050d5780601f106104e25761010080835404028352916020019161050d565b820191906000526020600020905b8154815290600101906020018083116104f057829003601f168201915b5050505050905090565b600160a060020a03338116600081815260076020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60055490565b60408051908101604052600c81527f53696d706c6520546f6b656e0000000000000000000000000000000000000000602082015281565b60006105cc3384610b49565b6105d7848484610b90565b949350505050565b60408051908101604052600281527f5354000000000000000000000000000000000000000000000000000000000000602082015281565b600061062133610ca3565b80610630575061063033610cb7565b151561063b57600080fd5b600054600160a060020a038381169116141561065657600080fd5b30600160a060020a031682600160a060020a03161415151561067757600080fd5b61068082610ce7565b1561068a57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384169081179091557f17bb0532ac84902a52bb6799529153f5ea501fc54fbcf3ea00dbd42bceb6b0f460405160405180910390a2506001919050565b60045460ff1690565b600160a060020a03331660009081526006602052604081205482111561071757600080fd5b600160a060020a033316600090815260066020526040902054610740908363ffffffff610d1416565b600160a060020a03331660009081526006602052604090205560055461076c908363ffffffff610d1416565b600555600160a060020a0333167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b18360405190815260200160405180910390a2506001919050565b60006107bf33610cb7565b15156107ca57600080fd5b60095460a060020a900460ff16156107e157600080fd5b6009805474ff0000000000000000000000000000000000000000191660a060020a1790557f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a150600190565b601281565b600061084733610ca3565b80610856575061085633610cb7565b151561086157600080fd5b600054600160a060020a038381169116141561087c57600080fd5b30600160a060020a031682600160a060020a03161415151561089d57600080fd5b6108a682610cb7565b156108b057600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384169081179091557fac46a4511b8366ae3b7cf3cf342e31556274975598dcae03c866f8f0f55d51c460405160405180910390a2506001919050565b600160a060020a031660009081526006602052604090205490565b670de0b6b3a764000081565b600054600160a060020a031681565b600854600160a060020a031681565b61095c610e0e565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561050d5780601f106104e25761010080835404028352916020019161050d565b6b0295be96e64066972000000081565b60006109e33384610b49565b6109ed8383610d26565b9392505050565b60095460a060020a900460ff1681565b6000610a0f33610ca3565b1515610a1a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384169081179091557f20f5afdf40bf7b43c89031a5d4369a30b159e512d164aa46124bcb706b4a1caf60405160405180910390a2506001919050565b600154600160a060020a031681565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b60015460009033600160a060020a03908116911614610ad157600080fd5b6001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff1992831617928390559216909255167f624adc4c72536289dd9d5439ccdeccd8923cb9af95fb626b21935447c77b840760405160405180910390a250600190565b600954600160a060020a031681565b60095460a060020a900460ff1615610b6057610b8c565b610b6982610de5565b80610b815750600054600160a060020a038281169116145b1515610b8c57600080fd5b5050565b600160a060020a038316600090815260066020526040812054610bb9908363ffffffff610d1416565b600160a060020a0380861660009081526006602090815260408083209490945560078152838220339093168252919091522054610bfc908363ffffffff610d1416565b600160a060020a0380861660009081526007602090815260408083203385168452825280832094909455918616815260069091522054610c42908363ffffffff610dff16565b600160a060020a03808516600081815260066020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600054600160a060020a0390811691161490565b600954600090600160a060020a031615801590610ce15750600954600160a060020a038381169116145b92915050565b600854600090600160a060020a031615801590610ce1575050600854600160a060020a0390811691161490565b600082821115610d2057fe5b50900390565b600160a060020a033316600090815260066020526040812054610d4f908363ffffffff610d1416565b600160a060020a033381166000908152600660205260408082209390935590851681522054610d84908363ffffffff610dff16565b600160a060020a0380851660008181526006602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000610df082610ca3565b80610ce15750610ce182610ce7565b6000828201838110156109ed57fe5b602060405190810160405260008152905600a165627a7a723058202834b25310e165b028c7358691ec1bfc91fb5d3d4a55ea9b470bf23ac34d26d90029

Deployed Bytecode

0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d578063095ea7b3146101d757806318160ddd1461020d578063188214001461023257806323b872dd146102455780632a9053181461026d5780632c1e816d14610280578063313ce5671461029f57806342966c68146102c85780634bb278f3146102de5780635b7f415c146102f1578063707789c51461030457806370a08231146103235780638bc04eb7146103425780638da5cb5b146103555780638ea643761461038457806395d89b4114610397578063a67e91a8146103aa578063a9059cbb146103bd578063b3f05b97146103df578063c0b6f561146103f2578063d153b60c14610411578063dd62ed3e14610424578063e71a781114610449578063fc6f94681461045c575b600080fd5b341561015857600080fd5b61016061046f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561019c578082015183820152602001610184565b50505050905090810190601f1680156101c95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e257600080fd5b6101f9600160a060020a0360043516602435610517565b604051901515815260200160405180910390f35b341561021857600080fd5b610220610583565b60405190815260200160405180910390f35b341561023d57600080fd5b610160610589565b341561025057600080fd5b6101f9600160a060020a03600435811690602435166044356105c0565b341561027857600080fd5b6101606105df565b341561028b57600080fd5b6101f9600160a060020a0360043516610616565b34156102aa57600080fd5b6102b26106e9565b60405160ff909116815260200160405180910390f35b34156102d357600080fd5b6101f96004356106f2565b34156102e957600080fd5b6101f96107b4565b34156102fc57600080fd5b6102b2610837565b341561030f57600080fd5b6101f9600160a060020a036004351661083c565b341561032e57600080fd5b610220600160a060020a036004351661090f565b341561034d57600080fd5b61022061092a565b341561036057600080fd5b610368610936565b604051600160a060020a03909116815260200160405180910390f35b341561038f57600080fd5b610368610945565b34156103a257600080fd5b610160610954565b34156103b557600080fd5b6102206109c7565b34156103c857600080fd5b6101f9600160a060020a03600435166024356109d7565b34156103ea57600080fd5b6101f96109f4565b34156103fd57600080fd5b6101f9600160a060020a0360043516610a04565b341561041c57600080fd5b610368610a79565b341561042f57600080fd5b610220600160a060020a0360043581169060243516610a88565b341561045457600080fd5b6101f9610ab3565b341561046757600080fd5b610368610b3a565b610477610e0e565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561050d5780601f106104e25761010080835404028352916020019161050d565b820191906000526020600020905b8154815290600101906020018083116104f057829003601f168201915b5050505050905090565b600160a060020a03338116600081815260076020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60055490565b60408051908101604052600c81527f53696d706c6520546f6b656e0000000000000000000000000000000000000000602082015281565b60006105cc3384610b49565b6105d7848484610b90565b949350505050565b60408051908101604052600281527f5354000000000000000000000000000000000000000000000000000000000000602082015281565b600061062133610ca3565b80610630575061063033610cb7565b151561063b57600080fd5b600054600160a060020a038381169116141561065657600080fd5b30600160a060020a031682600160a060020a03161415151561067757600080fd5b61068082610ce7565b1561068a57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384169081179091557f17bb0532ac84902a52bb6799529153f5ea501fc54fbcf3ea00dbd42bceb6b0f460405160405180910390a2506001919050565b60045460ff1690565b600160a060020a03331660009081526006602052604081205482111561071757600080fd5b600160a060020a033316600090815260066020526040902054610740908363ffffffff610d1416565b600160a060020a03331660009081526006602052604090205560055461076c908363ffffffff610d1416565b600555600160a060020a0333167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b18360405190815260200160405180910390a2506001919050565b60006107bf33610cb7565b15156107ca57600080fd5b60095460a060020a900460ff16156107e157600080fd5b6009805474ff0000000000000000000000000000000000000000191660a060020a1790557f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a150600190565b601281565b600061084733610ca3565b80610856575061085633610cb7565b151561086157600080fd5b600054600160a060020a038381169116141561087c57600080fd5b30600160a060020a031682600160a060020a03161415151561089d57600080fd5b6108a682610cb7565b156108b057600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384169081179091557fac46a4511b8366ae3b7cf3cf342e31556274975598dcae03c866f8f0f55d51c460405160405180910390a2506001919050565b600160a060020a031660009081526006602052604090205490565b670de0b6b3a764000081565b600054600160a060020a031681565b600854600160a060020a031681565b61095c610e0e565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561050d5780601f106104e25761010080835404028352916020019161050d565b6b0295be96e64066972000000081565b60006109e33384610b49565b6109ed8383610d26565b9392505050565b60095460a060020a900460ff1681565b6000610a0f33610ca3565b1515610a1a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384169081179091557f20f5afdf40bf7b43c89031a5d4369a30b159e512d164aa46124bcb706b4a1caf60405160405180910390a2506001919050565b600154600160a060020a031681565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b60015460009033600160a060020a03908116911614610ad157600080fd5b6001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff1992831617928390559216909255167f624adc4c72536289dd9d5439ccdeccd8923cb9af95fb626b21935447c77b840760405160405180910390a250600190565b600954600160a060020a031681565b60095460a060020a900460ff1615610b6057610b8c565b610b6982610de5565b80610b815750600054600160a060020a038281169116145b1515610b8c57600080fd5b5050565b600160a060020a038316600090815260066020526040812054610bb9908363ffffffff610d1416565b600160a060020a0380861660009081526006602090815260408083209490945560078152838220339093168252919091522054610bfc908363ffffffff610d1416565b600160a060020a0380861660009081526007602090815260408083203385168452825280832094909455918616815260069091522054610c42908363ffffffff610dff16565b600160a060020a03808516600081815260066020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600054600160a060020a0390811691161490565b600954600090600160a060020a031615801590610ce15750600954600160a060020a038381169116145b92915050565b600854600090600160a060020a031615801590610ce1575050600854600160a060020a0390811691161490565b600082821115610d2057fe5b50900390565b600160a060020a033316600090815260066020526040812054610d4f908363ffffffff610d1416565b600160a060020a033381166000908152600660205260408082209390935590851681522054610d84908363ffffffff610dff16565b600160a060020a0380851660008181526006602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000610df082610ca3565b80610ce15750610ce182610ce7565b6000828201838110156109ed57fe5b602060405190810160405260008152905600a165627a7a723058202834b25310e165b028c7358691ec1bfc91fb5d3d4a55ea9b470bf23ac34d26d90029

Swarm Source

bzzr://2834b25310e165b028c7358691ec1bfc91fb5d3d4a55ea9b470bf23ac34d26d9

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.