ETH Price: $3,387.53 (-0.22%)
Gas: 2 Gwei

Contract

0x71D01dB8d6a2fBEa7f8d434599C237980C234e4C
 
Transaction Hash
Method
Block
From
To
Value
Transfer199837582024-05-30 16:10:1130 days ago1717085411IN
Gladius Token
0 ETH0.0011312122.85928537
Transfer187105132023-12-04 4:06:59209 days ago1701662819IN
Gladius Token
0 ETH0.0011926937.08858597
Transfer185325542023-11-09 6:19:11234 days ago1699510751IN
Gladius Token
0 ETH0.0008120927.44858527
Approve170192012023-04-10 17:15:35446 days ago1681146935IN
Gladius Token
0 ETH0.0009170234.93417848
Transfer167967732023-03-10 9:12:35478 days ago1678439555IN
Gladius Token
0 ETH0.0009360318.91982136
Transfer161785122022-12-13 21:38:59564 days ago1670967539IN
Gladius Token
0 ETH0.0012048324.35296929
Transfer161453572022-12-09 6:26:59569 days ago1670567219IN
Gladius Token
0 ETH0.0007635914.06924091
Transfer161420582022-12-08 19:23:59569 days ago1670527439IN
Gladius Token
0 ETH0.0010074820.36391259
Transfer159872642022-11-17 4:10:11591 days ago1668658211IN
Gladius Token
0 ETH0.0006663813.46947164
Transfer158608722022-10-30 12:27:35608 days ago1667132855IN
Gladius Token
0 ETH0.0004947410
Transfer150896872022-07-06 15:12:05724 days ago1657120325IN
Gladius Token
0 ETH0.0014617129.54521401
Transfer149971962022-06-20 15:02:59740 days ago1655737379IN
Gladius Token
0 ETH0.0024737545.57906649
Approve149180202022-06-07 1:13:53754 days ago1654564433IN
Gladius Token
0 ETH0.0010787540.90838598
Approve149180192022-06-07 1:13:31754 days ago1654564411IN
Gladius Token
0 ETH0.0009633936.53358392
Approve149180182022-06-07 1:13:11754 days ago1654564391IN
Gladius Token
0 ETH0.0015506633.51343571
Transfer148091182022-05-20 4:42:19772 days ago1653021739IN
Gladius Token
0 ETH0.0011873724
Transfer146383442022-04-23 2:02:57799 days ago1650679377IN
Gladius Token
0 ETH0.0013647742.14078476
Transfer146383132022-04-23 1:54:22799 days ago1650678862IN
Gladius Token
0 ETH0.0024342344.87061128
Transfer139163182022-01-01 0:29:32911 days ago1640996972IN
Gladius Token
0 ETH0.0027798975.21768201
Transfer138938532021-12-28 12:53:58914 days ago1640696038IN
Gladius Token
0 ETH0.003567110.87977868
Transfer134594512021-10-21 6:37:14983 days ago1634798234IN
Gladius Token
0 ETH0.0035763972.27088877
Transfer133903962021-10-10 10:30:34994 days ago1633861834IN
Gladius Token
0 ETH0.0028710758.01783337
Approve131956942021-09-10 3:52:071024 days ago1631245927IN
Gladius Token
0 ETH0.0028173461
Transfer130193242021-08-13 21:39:471051 days ago1628890787IN
Gladius Token
0 ETH0.003413769
Transfer129769972021-08-07 9:01:141058 days ago1628326874IN
Gladius Token
0 ETH0.0021911144.27742328
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:
GLAToken

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.15;

contract InputValidator {


    /**
     * ERC20 Short Address Attack fix
     */
    modifier safe_arguments(uint _numArgs) {
        assert(msg.data.length == _numArgs * 32 + 4);
        _;
    }
}

contract Owned {

    // The address of the account that is the current owner 
    address internal owner;


    /**
     * The publisher is the inital owner
     */
    function Owned() {
        owner = msg.sender;
    }


    /**
     * Access is restricted to the current owner
     */
    modifier only_owner() {
        require(msg.sender == owner);

        _;
    }
}

contract IOwnership {

    /**
     * Returns true if `_account` is the current owner
     *
     * @param _account The address to test against
     */
    function isOwner(address _account) constant returns (bool);


    /**
     * Gets the current owner
     *
     * @return address The current owner
     */
    function getOwner() constant returns (address);
}

contract Ownership is IOwnership, Owned {


    /**
     * Returns true if `_account` is the current owner
     *
     * @param _account The address to test against
     */
    function isOwner(address _account) public constant returns (bool) {
        return _account == owner;
    }


    /**
     * Gets the current owner
     *
     * @return address The current owner
     */
    function getOwner() public constant returns (address) {
        return owner;
    }
}

contract ITransferableOwnership {

    /**
     * Transfer ownership to `_newOwner`
     *
     * @param _newOwner The address of the account that will become the new owner 
     */
    function transferOwnership(address _newOwner);
}

contract TransferableOwnership is ITransferableOwnership, Ownership {


    /**
     * Transfer ownership to `_newOwner`
     *
     * @param _newOwner The address of the account that will become the new owner 
     */
    function transferOwnership(address _newOwner) public only_owner {
        owner = _newOwner;
    }
}


/**
 * @title ERC20 compatible token interface
 *
 * Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
 * - Short address attack fix
 *
 * #created 29/09/2017
 * #author Frank Bonnet
 */
contract IToken { 

    /** 
     * Get the total supply of tokens
     * 
     * @return The total supply
     */
    function totalSupply() constant returns (uint);


    /** 
     * Get balance of `_owner` 
     * 
     * @param _owner The address from which the balance will be retrieved
     * @return The balance
     */
    function balanceOf(address _owner) constant returns (uint);


    /** 
     * Send `_value` token to `_to` from `msg.sender`
     * 
     * @param _to The address of the recipient
     * @param _value The amount of token to be transferred
     * @return Whether the transfer was successful or not
     */
    function transfer(address _to, uint _value) returns (bool);


    /** 
     * Send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
     * 
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value The amount of token to be transferred
     * @return Whether the transfer was successful or not
     */
    function transferFrom(address _from, address _to, uint _value) returns (bool);


    /** 
     * `msg.sender` approves `_spender` to spend `_value` tokens
     * 
     * @param _spender The address of the account able to transfer the tokens
     * @param _value The amount of tokens to be approved for transfer
     * @return Whether the approval was successful or not
     */
    function approve(address _spender, uint _value) returns (bool);


    /** 
     * Get the amount of remaining tokens that `_spender` is allowed to spend from `_owner`
     * 
     * @param _owner The address of the account owning tokens
     * @param _spender The address of the account able to transfer the tokens
     * @return Amount of remaining tokens allowed to spent
     */
    function allowance(address _owner, address _spender) constant returns (uint);
}


/**
 * @title ERC20 compatible token
 *
 * Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
 * - Short address attack fix
 *
 * #created 29/09/2017
 * #author Frank Bonnet
 */
contract Token is IToken, InputValidator {

    // Ethereum token standard
    string public standard = "Token 0.3";
    string public name;        
    string public symbol;
    uint8 public decimals = 8;

    // Token state
    uint internal totalTokenSupply;

    // Token balances
    mapping (address => uint) internal balances;

    // Token allowances
    mapping (address => mapping (address => uint)) internal allowed;


    // Events
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);

    /** 
     * Construct 
     * 
     * @param _name The full token name
     * @param _symbol The token symbol (aberration)
     */
    function Token(string _name, string _symbol) {
        name = _name;
        symbol = _symbol;
        balances[msg.sender] = 0;
        totalTokenSupply = 0;
    }


    /** 
     * Get the total token supply
     * 
     * @return The total supply
     */
    function totalSupply() public constant returns (uint) {
        return totalTokenSupply;
    }


    /** 
     * Get balance of `_owner` 
     * 
     * @param _owner The address from which the balance will be retrieved
     * @return The balance
     */
    function balanceOf(address _owner) public constant returns (uint) {
        return balances[_owner];
    }


    /** 
     * Send `_value` token to `_to` from `msg.sender`
     * 
     * @param _to The address of the recipient
     * @param _value The amount of token to be transferred
     * @return Whether the transfer was successful or not
     */
    function transfer(address _to, uint _value) public safe_arguments(2) returns (bool) {

        // Check if the sender has enough tokens
        require(balances[msg.sender] >= _value);   

        // Check for overflows
        require(balances[_to] + _value >= balances[_to]);

        // Transfer tokens
        balances[msg.sender] -= _value;
        balances[_to] += _value;

        // Notify listeners
        Transfer(msg.sender, _to, _value);
        return true;
    }


    /** 
     * Send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
     * 
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value The amount of token to be transferred
     * @return Whether the transfer was successful or not 
     */
    function transferFrom(address _from, address _to, uint _value) public safe_arguments(3) returns (bool) {

        // Check if the sender has enough
        require(balances[_from] >= _value);

        // Check for overflows
        require(balances[_to] + _value >= balances[_to]);

        // Check allowance
        require(_value <= allowed[_from][msg.sender]);

        // Transfer tokens
        balances[_to] += _value;
        balances[_from] -= _value;

        // Update allowance
        allowed[_from][msg.sender] -= _value;

        // Notify listeners
        Transfer(_from, _to, _value);
        return true;
    }


    /** 
     * `msg.sender` approves `_spender` to spend `_value` tokens
     * 
     * @param _spender The address of the account able to transfer the tokens
     * @param _value The amount of tokens to be approved for transfer
     * @return Whether the approval was successful or not
     */
    function approve(address _spender, uint _value) public safe_arguments(2) returns (bool) {

        // Update allowance
        allowed[msg.sender][_spender] = _value;

        // Notify listeners
        Approval(msg.sender, _spender, _value);
        return true;
    }


    /** 
     * Get the amount of remaining tokens that `_spender` is allowed to spend from `_owner`
     * 
     * @param _owner The address of the account owning tokens
     * @param _spender The address of the account able to transfer the tokens
     * @return Amount of remaining tokens allowed to spent
     */
    function allowance(address _owner, address _spender) public constant returns (uint) {
      return allowed[_owner][_spender];
    }
}


/**
 * @title ManagedToken interface
 *
 * Adds the following functionallity to the basic ERC20 token
 * - Locking
 * - Issuing
 *
 * #created 29/09/2017
 * #author Frank Bonnet
 */
contract IManagedToken is IToken { 

    /** 
     * Returns true if the token is locked
     * 
     * @return Whether the token is locked
     */
    function isLocked() constant returns (bool);


    /**
     * Unlocks the token so that the transferring of value is enabled 
     *
     * @return Whether the unlocking was successful or not
     */
    function unlock() returns (bool);


    /**
     * Issues `_value` new tokens to `_to`
     *
     * @param _to The address to which the tokens will be issued
     * @param _value The amount of new tokens to issue
     * @return Whether the tokens where sucessfully issued or not
     */
    function issue(address _to, uint _value) returns (bool);
}


/**
 * @title ManagedToken
 *
 * Adds the following functionallity to the basic ERC20 token
 * - Locking
 * - Issuing
 *
 * #created 29/09/2017
 * #author Frank Bonnet
 */
contract ManagedToken is IManagedToken, Token, TransferableOwnership {

    // Token state
    bool internal locked;


    /**
     * Allow access only when not locked
     */
    modifier only_when_unlocked() {
        require(!locked);

        _;
    }


    /** 
     * Construct 
     * 
     * @param _name The full token name
     * @param _symbol The token symbol (aberration)
     * @param _locked Whether the token should be locked initially
     */
    function ManagedToken(string _name, string _symbol, bool _locked) Token(_name, _symbol) {
        locked = _locked;
    }


    /** 
     * Send `_value` token to `_to` from `msg.sender`
     * 
     * @param _to The address of the recipient
     * @param _value The amount of token to be transferred
     * @return Whether the transfer was successful or not
     */
    function transfer(address _to, uint _value) public only_when_unlocked returns (bool) {
        return super.transfer(_to, _value);
    }


    /** 
     * Send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
     * 
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value The amount of token to be transferred
     * @return Whether the transfer was successful or not
     */
    function transferFrom(address _from, address _to, uint _value) public only_when_unlocked returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }


    /** 
     * `msg.sender` approves `_spender` to spend `_value` tokens
     * 
     * @param _spender The address of the account able to transfer the tokens
     * @param _value The amount of tokens to be approved for transfer
     * @return Whether the approval was successful or not
     */
    function approve(address _spender, uint _value) public returns (bool) {
        return super.approve(_spender, _value);
    }


    /** 
     * Returns true if the token is locked
     * 
     * @return Wheter the token is locked
     */
    function isLocked() public constant returns (bool) {
        return locked;
    }


    /**
     * Unlocks the token so that the transferring of value is enabled 
     *
     * @return Whether the unlocking was successful or not
     */
    function unlock() public only_owner returns (bool)  {
        locked = false;
        return !locked;
    }


    /**
     * Issues `_value` new tokens to `_to`
     *
     * @param _to The address to which the tokens will be issued
     * @param _value The amount of new tokens to issue
     * @return Whether the approval was successful or not
     */
    function issue(address _to, uint _value) public only_owner safe_arguments(2) returns (bool) {
        
        // Check for overflows
        require(balances[_to] + _value >= balances[_to]);

        // Create tokens
        balances[_to] += _value;
        totalTokenSupply += _value;

        // Notify listeners 
        Transfer(0, this, _value);
        Transfer(this, _to, _value);

        return true;
    }
}


/**
 * @title Token retrieve interface
 *
 * Allows tokens to be retrieved from a contract
 *
 * #created 29/09/2017
 * #author Frank Bonnet
 */
contract ITokenRetreiver {

    /**
     * Extracts tokens from the contract
     *
     * @param _tokenContract The address of ERC20 compatible token
     */
    function retreiveTokens(address _tokenContract);
}

/**
 * @title GLA (Gladius) token
 *
 * #created 26/09/2017
 * #author Frank Bonnet
 */
contract GLAToken is ManagedToken, ITokenRetreiver {


    /**
     * Starts with a total supply of zero and the creator starts with 
     * zero tokens (just like everyone else)
     */
    function GLAToken() ManagedToken("Gladius Token", "GLA", true) {}


    /**
     * Failsafe mechanism
     * 
     * Allows owner to retreive tokens from the contract
     *
     * @param _tokenContract The address of ERC20 compatible token
     */
    function retreiveTokens(address _tokenContract) public only_owner {
        IToken tokenInstance = IToken(_tokenContract);
        uint tokenBalance = tokenInstance.balanceOf(this);
        if (tokenBalance > 0) {
            tokenInstance.transfer(owner, tokenBalance);
        }
    }


    /**
     * Prevents accidental sending of ether
     */
    function () payable {
        revert();
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"issue","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"retreiveTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"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"}]

606060405260408051908101604052600981527f546f6b656e20302e3300000000000000000000000000000000000000000000006020820152600090805161004b92916020019061016e565b506003805460ff19166008179055341561006457600080fd5b5b604080519081016040908152600d82527f476c616469757320546f6b656e0000000000000000000000000000000000000060208301528051908101604052600381527f474c410000000000000000000000000000000000000000000000000000000000602082015260015b5b82825b60018280516100e792916020019061016e565b5060028180516100fb92916020019061016e565b50600160a060020a03331660009081526005602052604081208190556004555b505060078054600160a060020a03191633600160a060020a03161790555b6007805460a060020a60ff02191674010000000000000000000000000000000000000000831515021790555b5050505b61020e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101af57805160ff19168380011785556101dc565b828001600101855582156101dc579182015b828111156101dc5782518255916020019190600101906101c1565b5b506101e99291506101ed565b5090565b61020b91905b808211156101e957600081556001016101f3565b5090565b90565b610d13806200021e6000396000f300606060405236156100d55763ffffffff60e060020a60003504166306fdde0381146100dd578063095ea7b31461016857806318160ddd1461019e57806323b872dd146101c35780632f54bf6e146101ff578063313ce567146102325780635a3b7e421461025b57806370a08231146102e6578063867904b414610317578063893d20e81461034d57806395d89b411461037c57806396a0492514610407578063a4e2d63414610428578063a69df4b51461044f578063a9059cbb14610476578063dd62ed3e146104ac578063f2fde38b146104e3575b5b600080fd5b005b34156100e857600080fd5b6100f0610504565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012d5780820151818401525b602001610114565b50505050905090810190601f16801561015a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017357600080fd5b61018a600160a060020a03600435166024356105a2565b604051901515815260200160405180910390f35b34156101a957600080fd5b6101b16105b7565b60405190815260200160405180910390f35b34156101ce57600080fd5b61018a600160a060020a03600435811690602435166044356105be565b604051901515815260200160405180910390f35b341561020a57600080fd5b61018a600160a060020a03600435166105ee565b604051901515815260200160405180910390f35b341561023d57600080fd5b610245610605565b60405160ff909116815260200160405180910390f35b341561026657600080fd5b6100f061060e565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012d5780820151818401525b602001610114565b50505050905090810190601f16801561015a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f157600080fd5b6101b1600160a060020a03600435166106ac565b60405190815260200160405180910390f35b341561032257600080fd5b61018a600160a060020a03600435166024356106cb565b604051901515815260200160405180910390f35b341561035857600080fd5b6103606107ad565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b6100f06107bd565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012d5780820151818401525b602001610114565b50505050905090810190601f16801561015a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041257600080fd5b6100db600160a060020a036004351661085b565b005b341561043357600080fd5b61018a610980565b604051901515815260200160405180910390f35b341561045a57600080fd5b61018a610991565b604051901515815260200160405180910390f35b341561048157600080fd5b61018a600160a060020a03600435166024356109e0565b604051901515815260200160405180910390f35b34156104b757600080fd5b6101b1600160a060020a0360043581169060243516610a0e565b60405190815260200160405180910390f35b34156104ee57600080fd5b6100db600160a060020a0360043516610a3b565b005b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b60006105ae8383610a83565b90505b92915050565b6004545b90565b60075460009060a060020a900460ff16156105d857600080fd5b6105e3848484610afe565b90505b5b9392505050565b600754600160a060020a038281169116145b919050565b60035460ff1681565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b600160a060020a0381166000908152600560205260409020545b919050565b60075460009033600160a060020a039081169116146106e957600080fd5b6002366044146106f557fe5b600160a060020a038416600090815260056020526040902054838101101561071c57600080fd5b600160a060020a0380851660009081526005602052604080822080548701905560048054870190553090921691600080516020610cc88339815191529086905190815260200160405180910390a383600160a060020a031630600160a060020a0316600080516020610cc88339815191528560405190815260200160405180910390a3600191505b5b505b92915050565b600754600160a060020a03165b90565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b600754600090819033600160a060020a0390811691161461087b57600080fd5b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156108d557600080fd5b6102c65a03f115156108e657600080fd5b5050506040518051915050600081111561097957600754600160a060020a038084169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561095d57600080fd5b6102c65a03f1151561096e57600080fd5b505050604051805150505b5b5b505050565b60075460a060020a900460ff165b90565b60075460009033600160a060020a039081169116146109af57600080fd5b506007805474ff000000000000000000000000000000000000000019169081905560a060020a900460ff16155b5b90565b60075460009060a060020a900460ff16156109fa57600080fd5b6105ae8383610c0c565b90505b5b92915050565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b60075433600160a060020a03908116911614610a5657600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000600236604414610a9157fe5b600160a060020a03338116600081815260066020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a3600191505b5b5092915050565b6000600336606414610b0c57fe5b600160a060020a03851660009081526005602052604090205483901015610b3257600080fd5b600160a060020a0384166000908152600560205260409020548381011015610b5957600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054831115610b8c57600080fd5b600160a060020a03808516600081815260056020908152604080832080548901905589851680845281842080548a9003905560068352818420339096168452949091529081902080548790039055909190600080516020610cc88339815191529086905190815260200160405180910390a3600191505b5b509392505050565b6000600236604414610c1a57fe5b600160a060020a03331660009081526005602052604090205483901015610c4057600080fd5b600160a060020a0384166000908152600560205260409020548381011015610c6757600080fd5b600160a060020a03338116600081815260056020526040808220805488900390559287168082529083902080548701905591600080516020610cc88339815191529086905190815260200160405180910390a3600191505b5b50929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820110c0ed6fa664ce3b8c73cc210aa33cfbdceffef3ae91ae726724e7102c46b7f0029

Deployed Bytecode

0x606060405236156100d55763ffffffff60e060020a60003504166306fdde0381146100dd578063095ea7b31461016857806318160ddd1461019e57806323b872dd146101c35780632f54bf6e146101ff578063313ce567146102325780635a3b7e421461025b57806370a08231146102e6578063867904b414610317578063893d20e81461034d57806395d89b411461037c57806396a0492514610407578063a4e2d63414610428578063a69df4b51461044f578063a9059cbb14610476578063dd62ed3e146104ac578063f2fde38b146104e3575b5b600080fd5b005b34156100e857600080fd5b6100f0610504565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012d5780820151818401525b602001610114565b50505050905090810190601f16801561015a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017357600080fd5b61018a600160a060020a03600435166024356105a2565b604051901515815260200160405180910390f35b34156101a957600080fd5b6101b16105b7565b60405190815260200160405180910390f35b34156101ce57600080fd5b61018a600160a060020a03600435811690602435166044356105be565b604051901515815260200160405180910390f35b341561020a57600080fd5b61018a600160a060020a03600435166105ee565b604051901515815260200160405180910390f35b341561023d57600080fd5b610245610605565b60405160ff909116815260200160405180910390f35b341561026657600080fd5b6100f061060e565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012d5780820151818401525b602001610114565b50505050905090810190601f16801561015a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f157600080fd5b6101b1600160a060020a03600435166106ac565b60405190815260200160405180910390f35b341561032257600080fd5b61018a600160a060020a03600435166024356106cb565b604051901515815260200160405180910390f35b341561035857600080fd5b6103606107ad565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b6100f06107bd565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012d5780820151818401525b602001610114565b50505050905090810190601f16801561015a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041257600080fd5b6100db600160a060020a036004351661085b565b005b341561043357600080fd5b61018a610980565b604051901515815260200160405180910390f35b341561045a57600080fd5b61018a610991565b604051901515815260200160405180910390f35b341561048157600080fd5b61018a600160a060020a03600435166024356109e0565b604051901515815260200160405180910390f35b34156104b757600080fd5b6101b1600160a060020a0360043581169060243516610a0e565b60405190815260200160405180910390f35b34156104ee57600080fd5b6100db600160a060020a0360043516610a3b565b005b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b60006105ae8383610a83565b90505b92915050565b6004545b90565b60075460009060a060020a900460ff16156105d857600080fd5b6105e3848484610afe565b90505b5b9392505050565b600754600160a060020a038281169116145b919050565b60035460ff1681565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b600160a060020a0381166000908152600560205260409020545b919050565b60075460009033600160a060020a039081169116146106e957600080fd5b6002366044146106f557fe5b600160a060020a038416600090815260056020526040902054838101101561071c57600080fd5b600160a060020a0380851660009081526005602052604080822080548701905560048054870190553090921691600080516020610cc88339815191529086905190815260200160405180910390a383600160a060020a031630600160a060020a0316600080516020610cc88339815191528560405190815260200160405180910390a3600191505b5b505b92915050565b600754600160a060020a03165b90565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b505050505081565b600754600090819033600160a060020a0390811691161461087b57600080fd5b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156108d557600080fd5b6102c65a03f115156108e657600080fd5b5050506040518051915050600081111561097957600754600160a060020a038084169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561095d57600080fd5b6102c65a03f1151561096e57600080fd5b505050604051805150505b5b5b505050565b60075460a060020a900460ff165b90565b60075460009033600160a060020a039081169116146109af57600080fd5b506007805474ff000000000000000000000000000000000000000019169081905560a060020a900460ff16155b5b90565b60075460009060a060020a900460ff16156109fa57600080fd5b6105ae8383610c0c565b90505b5b92915050565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b60075433600160a060020a03908116911614610a5657600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000600236604414610a9157fe5b600160a060020a03338116600081815260066020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a3600191505b5b5092915050565b6000600336606414610b0c57fe5b600160a060020a03851660009081526005602052604090205483901015610b3257600080fd5b600160a060020a0384166000908152600560205260409020548381011015610b5957600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054831115610b8c57600080fd5b600160a060020a03808516600081815260056020908152604080832080548901905589851680845281842080548a9003905560068352818420339096168452949091529081902080548790039055909190600080516020610cc88339815191529086905190815260200160405180910390a3600191505b5b509392505050565b6000600236604414610c1a57fe5b600160a060020a03331660009081526005602052604090205483901015610c4057600080fd5b600160a060020a0384166000908152600560205260409020548381011015610c6757600080fd5b600160a060020a03338116600081815260056020526040808220805488900390559287168082529083902080548701905591600080516020610cc88339815191529086905190815260200160405180910390a3600191505b5b50929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820110c0ed6fa664ce3b8c73cc210aa33cfbdceffef3ae91ae726724e7102c46b7f0029

Swarm Source

bzzr://110c0ed6fa664ce3b8c73cc210aa33cfbdceffef3ae91ae726724e7102c46b7f

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.