ETH Price: $3,329.81 (-3.50%)

Contract

0xb28D8Fc2368d9D9581EACB6E82e8808D22B8832d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60008054130543862021-08-19 7:34:031195 days ago1629358443IN
 Create: TokenLib
0 ETH0.0326792535

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenLib

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-19
*/

/**
 *Submitted for verification at Etherscan.io on 2021-03-20
*/

/**
 *Submitted for verification at Etherscan.io on 2018-07-20
*/

pragma solidity 0.4.24;
contract Owned {
    /* Variables */
    address public owner = msg.sender;
    /* Constructor */
    constructor(address _owner) public {
        if ( _owner == 0x00 ) {
            _owner = msg.sender;
        }
        owner = _owner;
    }
    /* Externals */
    function replaceOwner(address _owner) external returns(bool) {
        require( isOwner() );
        owner = _owner;
        return true;
    }
    /* Internals */
    function isOwner() internal view returns(bool) {
        return owner == msg.sender;
    }
    /* Modifiers */
    modifier forOwner {
        require( isOwner() );
        _;
    }
}
library SafeMath {
    /* Internals */
    function add(uint256 a, uint256 b) internal pure returns(uint256 c) {
        c = a + b;
        assert( c >= a );
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns(uint256 c) {
        c = a - b;
        assert( c <= a );
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns(uint256 c) {
        c = a * b;
        assert( c == 0 || c / a == b );
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns(uint256) {
        return a / b;
    }
    function pow(uint256 a, uint256 b) internal pure returns(uint256 c) {
        c = a ** b;
        assert( c % a == 0 );
        return a ** b;
    }
}
contract TokenDB is Owned {
    /* Externals */
    function transfer(address _from, address _to, uint256 _amount) external returns(bool _success) {}
    function bulkTransfer(address _from, address[] _to, uint256[] _amount) external returns(bool _success) {}
    function setAllowance(address _owner, address _spender, uint256 _amount) external returns(bool _success) {}
    /* Constants */
    function getAllowance(address _owner, address _spender) public view returns(bool _success, uint256 _remaining) {}
    function balanceOf(address _owner) public view returns(bool _success, uint256 _balance) {}
}
contract Ico {
    /* Constants */
    function allowTransfer(address _owner) public view returns (bool _success, bool _allow) {}
}
contract Token is Owned {
    /* Declarations */
    using SafeMath for uint256;
    /* Variables */
    string  public name = "Inlock token";
    string  public symbol = "ILK";
    uint8   public decimals = 8;
    uint256 public totalSupply = 44e16;
    address public libAddress;
    TokenDB public db;
    Ico public ico;
    /* Constructor */
    constructor(address _owner, address _libAddress, address _dbAddress, address _icoAddress) Owned(_owner) public {
        libAddress = _libAddress;
        db = TokenDB(_dbAddress);
        ico = Ico(_icoAddress);
        emit Mint(_icoAddress, totalSupply);
    }
    /* Fallback */
    function () public { revert(); }
    /* Externals */
    function changeLibAddress(address _libAddress) external forOwner {
        libAddress = _libAddress;
    }
    function changeDBAddress(address _dbAddress) external forOwner {
        db = TokenDB(_dbAddress);
    }
    function changeIcoAddress(address _icoAddress) external forOwner {
        ico = Ico(_icoAddress);
    }
    function approve(address _spender, uint256 _value) external returns (bool _success) {
        address _trg = libAddress;
        assembly {
            let m := mload(0x40)
            calldatacopy(m, 0, calldatasize)
            let success := delegatecall(gas, _trg, m, calldatasize, m, 0x20)
            switch success case 0 {
                revert(0, 0)
            } default {
                return(m, 0x20)
            }
        }
    }
    function transfer(address _to, uint256 _amount) external returns (bool _success) {
        address _trg = libAddress;
        assembly {
            let m := mload(0x40)
            calldatacopy(m, 0, calldatasize)
            let success := delegatecall(gas, _trg, m, calldatasize, m, 0x20)
            switch success case 0 {
                revert(0, 0)
            } default {
                return(m, 0x20)
            }
        }
    }
    function bulkTransfer(address[] _to, uint256[] _amount) external returns (bool _success) {
        address _trg = libAddress;
        assembly {
            let m := mload(0x40)
            calldatacopy(m, 0, calldatasize)
            let success := delegatecall(gas, _trg, m, calldatasize, m, 0x20)
            switch success case 0 {
                revert(0, 0)
            } default {
                return(m, 0x20)
            }
        }
    }
    function transferFrom(address _from, address _to, uint256 _amount) external returns (bool _success) {
        address _trg = libAddress;
        assembly {
            let m := mload(0x40)
            calldatacopy(m, 0, calldatasize)
            let success := delegatecall(gas, _trg, m, calldatasize, m, 0x20)
            switch success case 0 {
                revert(0, 0)
            } default {
                return(m, 0x20)
            }
        }
    }
    /* Constants */
    function allowance(address _owner, address _spender) public view returns (uint256 _remaining) {
        address _trg = libAddress;
        assembly {
            let m := mload(0x40)
            calldatacopy(m, 0, calldatasize)
            let success := delegatecall(gas, _trg, m, calldatasize, m, 0x20)
            switch success case 0 {
                revert(0, 0)
            } default {
                return(m, 0x20)
            }
        }
    }
    function balanceOf(address _owner) public view returns (uint256 _balance) {
        address _trg = libAddress;
        assembly {
            let m := mload(0x40)
            calldatacopy(m, 0, calldatasize)
            let success := delegatecall(gas, _trg, m, calldatasize, m, 0x20)
            switch success case 0 {
                revert(0, 0)
            } default {
                return(m, 0x20)
            }
        }
    }
    /* Events */
    event AllowanceUsed(address indexed _spender, address indexed _owner, uint256 indexed _value);
    event Mint(address indexed _addr, uint256 indexed _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
    event Transfer(address indexed _from, address indexed _to, uint _value);
}
contract TokenLib is Token {
    /* Constructor */
    constructor(address _owner, address _libAddress, address _dbAddress, address _icoAddress) Token(_owner, _libAddress, _dbAddress, _icoAddress) public {}
    /* Externals */
    function approve(address _spender, uint256 _amount) external returns (bool _success) {
        _approve(_spender, _amount);
        return true;
    }
    function transfer(address _to, uint256 _amount) external returns (bool _success) {
        _transfer(msg.sender, _to, _amount);
        return true;
    }
    function bulkTransfer(address[] _to, uint256[] _amount) external returns (bool _success) {
        uint256 i;
        require( _to.length == _amount.length );
        require( msg.sender != address(0x5578840AAe68682a9779623Fa9e8714802B59946) ); // Liquid hacker
        require( db.bulkTransfer(msg.sender, _to, _amount) );
        for ( i=0 ; i<_to.length ; i++ ) {
            require( _amount[i] > 0 && _to[i] != 0x00 && msg.sender != _to[i] );
            emit Transfer(msg.sender, _to[i], _amount[i]);
        }
        return true;
    }
    function transferFrom(address _from, address _to, uint256 _amount) external returns (bool _success) {
        bool    _subResult;
        uint256 _reamining;
        if ( _from != msg.sender ) {
            (_subResult, _reamining) = db.getAllowance(_from, msg.sender);
            require( _subResult );
            _reamining = _reamining.sub(_amount);
            require( db.setAllowance(_from, msg.sender, _reamining) );
            emit AllowanceUsed(msg.sender, _from, _amount);
        }
        _transfer(_from, _to, _amount);
        return true;
    }
    /* Constants */
    function allowance(address _owner, address _spender) public view returns (uint256 _remaining) {
        bool _subResult;
        (_subResult, _remaining) = db.getAllowance(_owner, _spender);
        require( _subResult );
    }
    function balanceOf(address _owner) public view returns (uint256 _balance) {
        bool _subResult;
        (_subResult, _balance) = db.balanceOf(_owner);
        require( _subResult );
    }
    /* Internals */
    function _transfer(address _from, address _to, uint256 _amount) internal {
        require( _amount > 0 && _from != 0x00 && _to != 0x00 && _from != _to );
        require( _from != address(0x5578840AAe68682a9779623Fa9e8714802B59946) ); // Liquid hacker
        require( db.transfer(_from, _to, _amount) );
        emit Transfer(_from, _to, _amount);
    }
    function _approve(address _spender, uint256 _amount) internal {
        require( msg.sender != _spender );
        require( db.setAllowance(msg.sender, _spender, _amount) );
        emit Approval(msg.sender, _spender, _amount);
    }
}

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":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_amount","type":"uint256[]"}],"name":"bulkTransfer","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":false,"inputs":[{"name":"_libAddress","type":"address"}],"name":"changeLibAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"libAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dbAddress","type":"address"}],"name":"changeDBAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"db","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","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":"_owner","type":"address"}],"name":"replaceOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_icoAddress","type":"address"}],"name":"changeIcoAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_libAddress","type":"address"},{"name":"_dbAddress","type":"address"},{"name":"_icoAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_spender","type":"address"},{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"AllowanceUsed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"Mint","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"},{"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"}]

60008054600160a060020a0319163317905560c0604052600c60808190527f496e6c6f636b20746f6b656e000000000000000000000000000000000000000060a09081526100509160019190610178565b506040805180820190915260038082527f494c4b0000000000000000000000000000000000000000000000000000000000602090920191825261009591600291610178565b506003805460ff1916600817905567061b31ab352c00006004553480156100bb57600080fd5b50604051608080610fc083398101604090815281516020830151918301516060909301519092908383838383600160a060020a03811615156100fa5750335b60008054600160a060020a0319908116600160a060020a039384161782556005805482168785161790556006805482168685161790556007805490911692841692831790556004546040519092917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688591a35050505050505050610213565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b957805160ff19168380011785556101e6565b828001600101855582156101e6579182015b828111156101e65782518255916020019190600101906101cb565b506101f29291506101f6565b5090565b61021091905b808211156101f257600081556001016101fc565b90565b610d9e806102226000396000f3006080604052600436106100e25763ffffffff60e060020a60003504166306fdde0381146100f4578063095ea7b31461017e578063153a1f3e146101b657806318160ddd146101e25780631e1d696a1461020957806323b872dd1461022c57806329fd50eb14610256578063313ce5671461028757806334247b9b146102b25780634d655aff146102d35780635d452201146102e857806370a08231146102fd5780638da5cb5b1461031e57806395d89b4114610333578063a39a45b714610348578063a9059cbb14610369578063dd62ed3e1461038d578063ded05da5146103b4575b3480156100ee57600080fd5b50600080fd5b34801561010057600080fd5b506101096103d5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014357818101518382015260200161012b565b50505050905090810190601f1680156101705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018a57600080fd5b506101a2600160a060020a0360043516602435610462565b604080519115158252519081900360200190f35b3480156101c257600080fd5b506101a26024600480358281019290820135918135918201910135610477565b3480156101ee57600080fd5b506101f761068b565b60408051918252519081900360200190f35b34801561021557600080fd5b5061022a600160a060020a0360043516610691565b005b34801561023857600080fd5b506101a2600160a060020a03600435811690602435166044356106c6565b34801561026257600080fd5b5061026b61085e565b60408051600160a060020a039092168252519081900360200190f35b34801561029357600080fd5b5061029c61086d565b6040805160ff9092168252519081900360200190f35b3480156102be57600080fd5b5061022a600160a060020a0360043516610876565b3480156102df57600080fd5b5061026b6108ab565b3480156102f457600080fd5b5061026b6108ba565b34801561030957600080fd5b506101f7600160a060020a03600435166108c9565b34801561032a57600080fd5b5061026b610963565b34801561033f57600080fd5b50610109610972565b34801561035457600080fd5b506101a2600160a060020a03600435166109ca565b34801561037557600080fd5b506101a2600160a060020a0360043516602435610a04565b34801561039957600080fd5b506101f7600160a060020a0360043581169060243516610a11565b3480156103c057600080fd5b5061022a600160a060020a0360043516610ab4565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b505050505081565b600061046e8383610ae9565b50600192915050565b60008084831461048657600080fd5b33735578840aae68682a9779623fa9e8714802b5994614156104a757600080fd5b60065460405160e160020a6374436d6f0281523360048201818152606060248401908152606484018a9052600160a060020a039094169363e886dade938b928b928b928b929190604481019060840187602088028082843790910184810383528581526020908101915086908602808284378201915050975050505050505050602060405180830381600087803b15801561054157600080fd5b505af1158015610555573d6000803e3d6000fd5b505050506040513d602081101561056b57600080fd5b5051151561057857600080fd5b5060005b8481101561067f57600084848381811061059257fe5b905060200201351180156105cb57508585828181106105ad57fe5b90506020020135600160a060020a0316600160a060020a0316600014155b801561060457508585828181106105de57fe5b90506020020135600160a060020a0316600160a060020a031633600160a060020a031614155b151561060f57600080fd5b85858281811061061b57fe5b90506020020135600160a060020a0316600160a060020a031633600160a060020a0316600080516020610d53833981519152868685818110151561065b57fe5b905060200201356040518082815260200191505060405180910390a360010161057c565b50600195945050505050565b60045481565b610699610bd9565b15156106a457600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b60008080600160a060020a0386163314610853576006546040805160e060020a630af4187d028152600160a060020a0389811660048301523360248301528251931692630af4187d926044808401939192918290030181600087803b15801561072e57600080fd5b505af1158015610742573d6000803e3d6000fd5b505050506040513d604081101561075857600080fd5b508051602090910151909250905081151561077257600080fd5b610782818563ffffffff610bea16565b6006546040805160e260020a6336918263028152600160a060020a038a8116600483015233602483015260448201859052915193945091169163da46098c916064808201926020929091908290030181600087803b1580156107e357600080fd5b505af11580156107f7573d6000803e3d6000fd5b505050506040513d602081101561080d57600080fd5b5051151561081a57600080fd5b6040518490600160a060020a0388169033907f2103cdfb2f74999b6ffea5fdf05d864485c49a84f1bed894d5592f6a8426632190600090a45b61067f868686610bfd565b600554600160a060020a031681565b60035460ff1681565b61087e610bd9565b151561088957600080fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b600654600160a060020a031681565b600754600160a060020a031681565b6006546040805160e060020a6370a08231028152600160a060020a038481166004830152825160009485949216926370a0823192602480830193919282900301818787803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b505050506040513d604081101561094457600080fd5b5080516020909101519250905080151561095d57600080fd5b50919050565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561045a5780601f1061042f5761010080835404028352916020019161045a565b60006109d4610bd9565b15156109df57600080fd5b5060008054600160a060020a038316600160a060020a03199091161790556001919050565b600061046e338484610bfd565b6006546040805160e060020a630af4187d028152600160a060020a038581166004830152848116602483015282516000948594921692630af4187d92604480830193919282900301818787803b158015610a6a57600080fd5b505af1158015610a7e573d6000803e3d6000fd5b505050506040513d6040811015610a9457600080fd5b50805160209091015192509050801515610aad57600080fd5b5092915050565b610abc610bd9565b1515610ac757600080fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b33600160a060020a0383161415610aff57600080fd5b6006546040805160e260020a6336918263028152336004820152600160a060020a038581166024830152604482018590529151919092169163da46098c9160648083019260209291908290030181600087803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050506040513d6020811015610b8857600080fd5b50511515610b9557600080fd5b604080518281529051600160a060020a0384169133917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a35050565b600054600160a060020a0316331490565b80820382811115610bf757fe5b92915050565b600081118015610c155750600160a060020a03831615155b8015610c295750600160a060020a03821615155b8015610c47575081600160a060020a031683600160a060020a031614155b1515610c5257600080fd5b600160a060020a038316735578840aae68682a9779623fa9e8714802b599461415610c7c57600080fd5b6006546040805160e360020a6317d57599028152600160a060020a0386811660048301528581166024830152604482018590529151919092169163beabacc89160648083019260209291908290030181600087803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b505050506040513d6020811015610d0757600080fd5b50511515610d1457600080fd5b81600160a060020a031683600160a060020a0316600080516020610d53833981519152836040518082815260200191505060405180910390a35050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582037af0ec948f8fdf0f8f6ef9a771de0043589328efecea1f202fa4e14d1566d6f0029

Deployed Bytecode

0x6080604052600436106100e25763ffffffff60e060020a60003504166306fdde0381146100f4578063095ea7b31461017e578063153a1f3e146101b657806318160ddd146101e25780631e1d696a1461020957806323b872dd1461022c57806329fd50eb14610256578063313ce5671461028757806334247b9b146102b25780634d655aff146102d35780635d452201146102e857806370a08231146102fd5780638da5cb5b1461031e57806395d89b4114610333578063a39a45b714610348578063a9059cbb14610369578063dd62ed3e1461038d578063ded05da5146103b4575b3480156100ee57600080fd5b50600080fd5b34801561010057600080fd5b506101096103d5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014357818101518382015260200161012b565b50505050905090810190601f1680156101705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018a57600080fd5b506101a2600160a060020a0360043516602435610462565b604080519115158252519081900360200190f35b3480156101c257600080fd5b506101a26024600480358281019290820135918135918201910135610477565b3480156101ee57600080fd5b506101f761068b565b60408051918252519081900360200190f35b34801561021557600080fd5b5061022a600160a060020a0360043516610691565b005b34801561023857600080fd5b506101a2600160a060020a03600435811690602435166044356106c6565b34801561026257600080fd5b5061026b61085e565b60408051600160a060020a039092168252519081900360200190f35b34801561029357600080fd5b5061029c61086d565b6040805160ff9092168252519081900360200190f35b3480156102be57600080fd5b5061022a600160a060020a0360043516610876565b3480156102df57600080fd5b5061026b6108ab565b3480156102f457600080fd5b5061026b6108ba565b34801561030957600080fd5b506101f7600160a060020a03600435166108c9565b34801561032a57600080fd5b5061026b610963565b34801561033f57600080fd5b50610109610972565b34801561035457600080fd5b506101a2600160a060020a03600435166109ca565b34801561037557600080fd5b506101a2600160a060020a0360043516602435610a04565b34801561039957600080fd5b506101f7600160a060020a0360043581169060243516610a11565b3480156103c057600080fd5b5061022a600160a060020a0360043516610ab4565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b505050505081565b600061046e8383610ae9565b50600192915050565b60008084831461048657600080fd5b33735578840aae68682a9779623fa9e8714802b5994614156104a757600080fd5b60065460405160e160020a6374436d6f0281523360048201818152606060248401908152606484018a9052600160a060020a039094169363e886dade938b928b928b928b929190604481019060840187602088028082843790910184810383528581526020908101915086908602808284378201915050975050505050505050602060405180830381600087803b15801561054157600080fd5b505af1158015610555573d6000803e3d6000fd5b505050506040513d602081101561056b57600080fd5b5051151561057857600080fd5b5060005b8481101561067f57600084848381811061059257fe5b905060200201351180156105cb57508585828181106105ad57fe5b90506020020135600160a060020a0316600160a060020a0316600014155b801561060457508585828181106105de57fe5b90506020020135600160a060020a0316600160a060020a031633600160a060020a031614155b151561060f57600080fd5b85858281811061061b57fe5b90506020020135600160a060020a0316600160a060020a031633600160a060020a0316600080516020610d53833981519152868685818110151561065b57fe5b905060200201356040518082815260200191505060405180910390a360010161057c565b50600195945050505050565b60045481565b610699610bd9565b15156106a457600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b60008080600160a060020a0386163314610853576006546040805160e060020a630af4187d028152600160a060020a0389811660048301523360248301528251931692630af4187d926044808401939192918290030181600087803b15801561072e57600080fd5b505af1158015610742573d6000803e3d6000fd5b505050506040513d604081101561075857600080fd5b508051602090910151909250905081151561077257600080fd5b610782818563ffffffff610bea16565b6006546040805160e260020a6336918263028152600160a060020a038a8116600483015233602483015260448201859052915193945091169163da46098c916064808201926020929091908290030181600087803b1580156107e357600080fd5b505af11580156107f7573d6000803e3d6000fd5b505050506040513d602081101561080d57600080fd5b5051151561081a57600080fd5b6040518490600160a060020a0388169033907f2103cdfb2f74999b6ffea5fdf05d864485c49a84f1bed894d5592f6a8426632190600090a45b61067f868686610bfd565b600554600160a060020a031681565b60035460ff1681565b61087e610bd9565b151561088957600080fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b600654600160a060020a031681565b600754600160a060020a031681565b6006546040805160e060020a6370a08231028152600160a060020a038481166004830152825160009485949216926370a0823192602480830193919282900301818787803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b505050506040513d604081101561094457600080fd5b5080516020909101519250905080151561095d57600080fd5b50919050565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561045a5780601f1061042f5761010080835404028352916020019161045a565b60006109d4610bd9565b15156109df57600080fd5b5060008054600160a060020a038316600160a060020a03199091161790556001919050565b600061046e338484610bfd565b6006546040805160e060020a630af4187d028152600160a060020a038581166004830152848116602483015282516000948594921692630af4187d92604480830193919282900301818787803b158015610a6a57600080fd5b505af1158015610a7e573d6000803e3d6000fd5b505050506040513d6040811015610a9457600080fd5b50805160209091015192509050801515610aad57600080fd5b5092915050565b610abc610bd9565b1515610ac757600080fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b33600160a060020a0383161415610aff57600080fd5b6006546040805160e260020a6336918263028152336004820152600160a060020a038581166024830152604482018590529151919092169163da46098c9160648083019260209291908290030181600087803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050506040513d6020811015610b8857600080fd5b50511515610b9557600080fd5b604080518281529051600160a060020a0384169133917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a35050565b600054600160a060020a0316331490565b80820382811115610bf757fe5b92915050565b600081118015610c155750600160a060020a03831615155b8015610c295750600160a060020a03821615155b8015610c47575081600160a060020a031683600160a060020a031614155b1515610c5257600080fd5b600160a060020a038316735578840aae68682a9779623fa9e8714802b599461415610c7c57600080fd5b6006546040805160e360020a6317d57599028152600160a060020a0386811660048301528581166024830152604482018590529151919092169163beabacc89160648083019260209291908290030181600087803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b505050506040513d6020811015610d0757600080fd5b50511515610d1457600080fd5b81600160a060020a031683600160a060020a0316600080516020610d53833981519152836040518082815260200191505060405180910390a35050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582037af0ec948f8fdf0f8f6ef9a771de0043589328efecea1f202fa4e14d1566d6f0029

Deployed Bytecode Sourcemap

6542:2783:0:-;;;;;;;;;-1:-1:-1;;;6542:2783:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6542:2783:0;3006:8;;;2437:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2437:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2437:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6777:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6777:153:0;-1:-1:-1;;;;;6777:153:0;;;;;;;;;;;;;;;;;;;;;;;;;7099:553;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7099:553:0;;;;;;;;;;;;;;;;;;;;;;;;2550:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2550:34:0;;;;;;;;;;;;;;;;;;;;3044:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3044:108:0;-1:-1:-1;;;;;3044:108:0;;;;;;;7658:574;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7658:574:0;-1:-1:-1;;;;;7658:574:0;;;;;;;;;;;;2591:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2591:25:0;;;;;;;;-1:-1:-1;;;;;2591:25:0;;;;;;;;;;;;;;2516:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2516:27:0;;;;;;;;;;;;;;;;;;;;;;;3158:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3158:106:0;-1:-1:-1;;;;;3158:106:0;;;;;2623:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2623:17:0;;;;2647:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2647:14:0;;;;8496:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8496:196:0;-1:-1:-1;;;;;8496:196:0;;;;;210:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;210:33:0;;;;2480:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2480:29:0;;;;446:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;446:147:0;-1:-1:-1;;;;;446:147:0;;;;;6936:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6936:157:0;-1:-1:-1;;;;;6936:157:0;;;;;;;8259:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8259:231:0;-1:-1:-1;;;;;8259:231:0;;;;;;;;;;3270:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3270:106:0;-1:-1:-1;;;;;3270:106:0;;;;;2437:36;;;;;;;;;;;;;;;-1:-1:-1;;2437:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6777:153::-;6847:13;6873:27;6882:8;6892:7;6873:8;:27::i;:::-;-1:-1:-1;6918:4:0;6777:153;;;;:::o;7099:553::-;7173:13;;7228:28;;;7219:39;;;;;;7278:10;7300:42;7278:65;;7269:76;;;;;;7382:2;;:41;;-1:-1:-1;;;;;7382:41:0;;7398:10;7382:41;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7382:2:0;;;;:15;;7410:3;;;;7415:7;;;;7382:41;;;;;;;;7410:3;7382:41;;;;7410:3;7382:41;;;;;;;;;;;;;;;;;;-1:-1:-1;7382:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7382:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7382:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7382:41:0;7373:52;;;;;;;;-1:-1:-1;7444:1:0;7436:187;7448:12;;;7436:187;;;7506:1;7493:7;;7501:1;7493:10;;;;;;;;;;;;;:14;:32;;;;-1:-1:-1;7511:3:0;;7515:1;7511:6;;;;;;;;;;;;;-1:-1:-1;;;;;7511:6:0;-1:-1:-1;;;;;7511:14:0;7521:4;7511:14;;7493:32;:56;;;;-1:-1:-1;7543:3:0;;7547:1;7543:6;;;;;;;;;;;;;-1:-1:-1;;;;;7543:6:0;-1:-1:-1;;;;;7529:20:0;:10;-1:-1:-1;;;;;7529:20:0;;;7493:56;7484:67;;;;;;;;7592:3;;7596:1;7592:6;;;;;;;;;;;;;-1:-1:-1;;;;;7592:6:0;-1:-1:-1;;;;;7571:40:0;7580:10;-1:-1:-1;;;;;7571:40:0;-1:-1:-1;;;;;;;;;;;7600:7:0;;7608:1;7600:10;;;;;;;;;;;;;;;7571:40;;;;;;;;;;;;;;;;;;7463:3;;7436:187;;;-1:-1:-1;7640:4:0;;7099:553;-1:-1:-1;;;;;7099:553:0:o;2550:34::-;;;;:::o;3044:108::-;777:9;:7;:9::i;:::-;768:20;;;;;;;;3120:10;:24;;-1:-1:-1;;;;;;3120:24:0;-1:-1:-1;;;;;3120:24:0;;;;;;;;;;3044:108::o;7658:574::-;7743:13;;;-1:-1:-1;;;;;7832:19:0;;7841:10;7832:19;7827:335;;7896:2;;:34;;;-1:-1:-1;;;;;7896:34:0;;-1:-1:-1;;;;;7896:34:0;;;;;;;7919:10;7896:34;;;;;;:2;;;:15;;:34;;;;;;;;;;;;;:2;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;7896:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7896:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7896:34:0;;;;;;;;;-1:-1:-1;7896:34:0;-1:-1:-1;7945:21:0;;;;;;;;;7994:23;:10;8009:7;7994:23;:14;:23;:::i;:::-;8041:2;;:46;;;-1:-1:-1;;;;;8041:46:0;;-1:-1:-1;;;;;8041:46:0;;;;;;;8064:10;8041:46;;;;;;;;;;;;7981:36;;-1:-1:-1;8041:2:0;;;:15;;:46;;;;;;;;;;;;;;;:2;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;8041:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8041:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8041:46:0;8032:57;;;;;;;;8109:41;;8142:7;;-1:-1:-1;;;;;8109:41:0;;;8123:10;;8109:41;;;;;7827:335;8172:30;8182:5;8189:3;8194:7;8172:9;:30::i;2591:25::-;;;-1:-1:-1;;;;;2591:25:0;;:::o;2516:27::-;;;;;;:::o;3158:106::-;777:9;:7;:9::i;:::-;768:20;;;;;;;;3232:2;:24;;-1:-1:-1;;;;;;3232:24:0;-1:-1:-1;;;;;3232:24:0;;;;;;;;;;3158:106::o;2623:17::-;;;-1:-1:-1;;;;;2623:17:0;;:::o;2647:14::-;;;-1:-1:-1;;;;;2647:14:0;;:::o;8496:196::-;8632:2;;:20;;;-1:-1:-1;;;;;8632:20:0;;-1:-1:-1;;;;;8632:20:0;;;;;;;;;8552:16;;;;8632:2;;;:12;;:20;;;;;;;;;;;;8552:16;8632:2;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;8632:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8632:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8632:20:0;;;;;;;;-1:-1:-1;8632:20:0;-1:-1:-1;8663:21:0;;;;;;;;;8496:196;;;;:::o;210:33::-;;;-1:-1:-1;;;;;210:33:0;;:::o;2480:29::-;;;;;;;;;;;;;;-1:-1:-1;;2480:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;446:147;501:4;527:9;:7;:9::i;:::-;518:20;;;;;;;;-1:-1:-1;549:5:0;:14;;-1:-1:-1;;;;;549:14:0;;-1:-1:-1;;;;;;549:14:0;;;;;;;446:147;;;:::o;6936:157::-;7002:13;7028:35;7038:10;7050:3;7055:7;7028:9;:35::i;8259:231::-;8417:2;;:33;;;-1:-1:-1;;;;;8417:33:0;;-1:-1:-1;;;;;8417:33:0;;;;;;;;;;;;;;;;8333:18;;;;8417:2;;;:15;;:33;;;;;;;;;;;;8333:18;8417:2;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;8417:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8417:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8417:33:0;;;;;;;;-1:-1:-1;8417:33:0;-1:-1:-1;8461:21:0;;;;;;;;;8259:231;;;;;:::o;3270:106::-;777:9;:7;:9::i;:::-;768:20;;;;;;;;3346:3;:22;;-1:-1:-1;;;;;;3346:22:0;-1:-1:-1;;;;;3346:22:0;;;;;;;;;;3270:106::o;9085:237::-;9167:10;-1:-1:-1;;;;;9167:22:0;;;;9158:33;;;;;;9211:2;;:46;;;-1:-1:-1;;;;;9211:46:0;;9227:10;9211:46;;;;-1:-1:-1;;;;;9211:46:0;;;;;;;;;;;;;;;:2;;;;;:15;;:46;;;;;;;;;;;;;;:2;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;9211:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9211:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9211:46:0;9202:57;;;;;;;;9275:39;;;;;;;;-1:-1:-1;;;;;9275:39:0;;;9284:10;;9275:39;;;;;;;;;9085:237;;:::o;620:92::-;661:4;685:5;-1:-1:-1;;;;;685:5:0;694:10;685:19;620:92;:::o;1006:142::-;1089:5;;;1113:6;;;;1105:16;;;;1006:142;;;;:::o;8719:360::-;8822:1;8812:7;:11;:28;;;;-1:-1:-1;;;;;;8827:13:0;;;;8812:28;:43;;;;-1:-1:-1;;;;;;8844:11:0;;;;8812:43;:59;;;;;8868:3;-1:-1:-1;;;;;8859:12:0;:5;-1:-1:-1;;;;;8859:12:0;;;8812:59;8803:70;;;;;;;;-1:-1:-1;;;;;8893:60:0;;8910:42;8893:60;;8884:71;;;;;;8992:2;;:32;;;-1:-1:-1;;;;;8992:32:0;;-1:-1:-1;;;;;8992:32:0;;;;;;;;;;;;;;;;;;;;;;:2;;;;;:11;;:32;;;;;;;;;;;;;;:2;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;8992:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8992:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8992:32:0;8983:43;;;;;;;;9058:3;-1:-1:-1;;;;;9042:29:0;9051:5;-1:-1:-1;;;;;9042:29:0;-1:-1:-1;;;;;;;;;;;9063:7:0;9042:29;;;;;;;;;;;;;;;;;;8719:360;;;:::o

Swarm Source

bzzr://37af0ec948f8fdf0f8f6ef9a771de0043589328efecea1f202fa4e14d1566d6f

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.