ETH Price: $3,088.89 (-1.43%)
Gas: 3 Gwei

Contract

0xc520F3Ac303a107D8F4B08b326B6ea66A4f961cd
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer155836102022-09-21 18:44:47593 days ago1663785887IN
0xc520F3Ac...6A4f961cd
0 ETH0.0019780136.14522418
Transfer134659612021-10-22 6:59:26927 days ago1634885966IN
0xc520F3Ac...6A4f961cd
0 ETH0.004216777.05401661
Transfer113500342020-11-28 23:20:531255 days ago1606605653IN
0xc520F3Ac...6A4f961cd
0 ETH0.0004985712.00000112
Transfer103234672020-06-23 17:47:261413 days ago1592934446IN
0xc520F3Ac...6A4f961cd
0 ETH0.0014533435
Transfer97136842020-03-21 7:31:081507 days ago1584775868IN
0xc520F3Ac...6A4f961cd
0 ETH0.0008309620
Transfer97076192020-03-20 8:59:571508 days ago1584694797IN
0xc520F3Ac...6A4f961cd
0 ETH0.0004154810
Transfer95028452020-02-17 20:40:591540 days ago1581972059IN
0xc520F3Ac...6A4f961cd
0 ETH0.0056548100.00000037
Transfer94364402020-02-07 15:49:491550 days ago1581090589IN
0xc520F3Ac...6A4f961cd
0 ETH0.0023911442.28515625
Transfer83599852019-08-16 6:52:361725 days ago1565938356IN
0xc520F3Ac...6A4f961cd
0 ETH0.000038941
Transfer81682002019-07-17 12:09:461755 days ago1563365386IN
0xc520F3Ac...6A4f961cd
0 ETH0.000577515
Transfer77638752019-05-15 8:34:421818 days ago1557909282IN
0xc520F3Ac...6A4f961cd
0 ETH0.0006473712
Transfer74606202019-03-29 1:53:431866 days ago1553824423IN
0xc520F3Ac...6A4f961cd
0 ETH0.000053941
Transfer74606182019-03-29 1:53:371866 days ago1553824417IN
0xc520F3Ac...6A4f961cd
0 ETH0.0009844941
Transfer74605292019-03-29 1:37:091866 days ago1553823429IN
0xc520F3Ac...6A4f961cd
0 ETH0.000215794
Transfer72682492019-02-26 1:38:261897 days ago1551145106IN
0xc520F3Ac...6A4f961cd
0 ETH0.000378087
Transfer71518352019-01-31 3:09:021922 days ago1548904142IN
0xc520F3Ac...6A4f961cd
0 ETH0.000377637
Transfer71518332019-01-31 3:08:491922 days ago1548904129IN
0xc520F3Ac...6A4f961cd
0 ETH0.000378087
Transfer71118722019-01-23 3:07:141930 days ago1548212834IN
0xc520F3Ac...6A4f961cd
0 ETH0.000378087
Transfer70123392019-01-05 3:38:081948 days ago1546659488IN
0xc520F3Ac...6A4f961cd
0 ETH0.000378087
Transfer70064622019-01-04 1:50:491950 days ago1546566649IN
0xc520F3Ac...6A4f961cd
0 ETH0.000272187
Transfer70064582019-01-04 1:49:001950 days ago1546566540IN
0xc520F3Ac...6A4f961cd
0 ETH0.000272637
Transfer70009092019-01-03 2:05:411951 days ago1546481141IN
0xc520F3Ac...6A4f961cd
0 ETH0.000377637
Transfer69950002019-01-02 2:01:581952 days ago1546394518IN
0xc520F3Ac...6A4f961cd
0 ETH0.000116843
Transfer69949992019-01-02 2:01:171952 days ago1546394477IN
0xc520F3Ac...6A4f961cd
0 ETH0.000272637
Transfer69727892018-12-29 8:02:131955 days ago1546070533IN
0xc520F3Ac...6A4f961cd
0 ETH0.000273087
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
65842892018-10-26 1:52:232020 days ago1540518743
0xc520F3Ac...6A4f961cd
 Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xD09A85fB...29E84Ee97
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
FreezableCoin

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-08-10
*/

pragma solidity 0.4.23;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

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

    function setOwner(address owner_)
    public
    auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
    public
    auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed sig,
        address  indexed guy,
        bytes32  indexed foo,
        bytes32  indexed bar,
        uint wad,
        bytes fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }

        emit LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);

        _;
    }
}

contract DSStop is DSNote, DSAuth {
    bool public stopped;

    modifier stoppable {
        require(!stopped);
        _;
    }
    function stop() public auth note {
        stopped = true;
    }

    function start() public auth note {
        stopped = false;
    }
}

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }
}

contract ERC20 {
    /// @return total amount of tokens
    function totalSupply() constant public returns (uint256 supply);

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant public returns (uint256 balance);

    /// @notice 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, uint256 _value) public returns (bool success);

    /// @notice 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, uint256 _value) public returns (bool success);

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

    /// @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 public returns (uint256 remaining);

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


contract Coin is ERC20, DSStop {
    string public name;
    string public symbol;
    uint8 public decimals = 18;
    uint256 internal c_totalSupply;
    mapping(address => uint256) internal c_balances;
    mapping(address => mapping(address => uint256)) internal c_approvals;

    function init(uint256 token_supply, string token_name, string token_symbol) internal {
        c_balances[msg.sender] = token_supply;
        c_totalSupply = token_supply;
        name = token_name;
        symbol = token_symbol;
    }

    function() public {
        assert(false);
    }

    function setName(string _name) auth public {
        name = _name;
    }

    function totalSupply() constant public returns (uint256) {
        return c_totalSupply;
    }

    function balanceOf(address _owner) constant public returns (uint256) {
        return c_balances[_owner];
    }

    function approve(address _spender, uint256 _value) public stoppable returns (bool) {
        require(msg.data.length >= (2 * 32) + 4);
        require(_value == 0 || c_approvals[msg.sender][_spender] == 0);
        // uint never less than 0. The negative number will become to a big positive number
        require(_value < c_totalSupply);

        c_approvals[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant public returns (uint256) {
        return c_approvals[_owner][_spender];
    }
}

contract FreezerAuthority is DSAuthority {
    address[] internal c_freezers;
    // sha3("setFreezing(address,uint256,uint256,uint8)").slice(0,10)
    bytes4 constant setFreezingSig = bytes4(0x51c3b8a6);
    // sha3("transferAndFreezing(address,uint256,uint256,uint256,uint8)").slice(0,10)
    bytes4 constant transferAndFreezingSig = bytes4(0xb8a1fdb6);

    function canCall(address caller, address, bytes4 sig) public view returns (bool) {
        // freezer can call setFreezing, transferAndFreezing
        if (isFreezer(caller) && (sig == setFreezingSig || sig == transferAndFreezingSig)) {
            return true;
        } else {
            return false;
        }
    }

    function addFreezer(address freezer) public {
        int i = indexOf(c_freezers, freezer);
        if (i < 0) {
            c_freezers.push(freezer);
        }
    }

    function removeFreezer(address freezer) public {
        int index = indexOf(c_freezers, freezer);
        if (index >= 0) {
            uint i = uint(index);
            while (i < c_freezers.length - 1) {
                c_freezers[i] = c_freezers[i + 1];
            }
            c_freezers.length--;
        }
    }

    /** Finds the index of a given value in an array. */
    function indexOf(address[] values, address value) internal pure returns (int) {
        uint i = 0;
        while (i < values.length) {
            if (values[i] == value) {
                return int(i);
            }
            i++;
        }
        return int(- 1);
    }

    function isFreezer(address addr) public constant returns (bool) {
        return indexOf(c_freezers, addr) >= 0;
    }
}

contract FreezableCoin is Coin, DSMath {
    // freezing struct
    struct FreezingNode {
        uint end_stamp;
        uint num_coins;
        uint8 freezing_type;
    }

    // freezing account list
    mapping(address => FreezingNode[]) internal c_freezing_list;

    constructor(uint256 token_supply, string token_name, string token_symbol) public {
        init(token_supply, token_name, token_symbol);
        setAuthority(new FreezerAuthority());
    }

    function addFreezer(address freezer) auth public {
        FreezerAuthority(authority).addFreezer(freezer);
    }

    function removeFreezer(address freezer) auth public {
        FreezerAuthority(authority).removeFreezer(freezer);
    }

    event ClearExpiredFreezingEvent(address indexed addr);
    event SetFreezingEvent(address indexed addr, uint end_stamp, uint num_coins, uint8 indexed freezing_type);

    function clearExpiredFreezing(address addr) public {
        FreezingNode[] storage nodes = c_freezing_list[addr];
        uint length = nodes.length;

        // find first expired index
        uint left = 0;
        while (left < length) {
            // not freezing any more
            if (nodes[left].end_stamp <= block.timestamp) {
                break;
            }
            left++;
        }

        // next frozen index
        uint right = left + 1;
        while (left < length && right < length) {
            // still freezing
            if (nodes[right].end_stamp > block.timestamp) {
                nodes[left] = nodes[right];
                left++;
            }
            right++;
        }
        if (length != left) {
            nodes.length = left;
            emit ClearExpiredFreezingEvent(addr);
        }
    }

    function validBalanceOf(address addr) constant public returns (uint) {
        FreezingNode[] memory nodes = c_freezing_list[addr];
        uint length = nodes.length;
        uint total_coins = balanceOf(addr);

        for (uint i = 0; i < length; ++i) {
            if (nodes[i].end_stamp > block.timestamp) {
                total_coins = sub(total_coins, nodes[i].num_coins);
            }
        }

        return total_coins;
    }

    function freezingBalanceNumberOf(address addr) constant public returns (uint) {
        return c_freezing_list[addr].length;
    }

    function freezingBalanceInfoOf(address addr, uint index) constant public returns (uint, uint, uint8) {
        return (c_freezing_list[addr][index].end_stamp, c_freezing_list[addr][index].num_coins, uint8(c_freezing_list[addr][index].freezing_type));
    }

    function setFreezing(address addr, uint end_stamp, uint num_coins, uint8 freezing_type) auth stoppable public {
        require(block.timestamp < end_stamp);
        // uint never less than 0. The negative number will become to a big positive number
        require(num_coins < c_totalSupply);
        clearExpiredFreezing(addr);
        uint valid_balance = validBalanceOf(addr);
        require(valid_balance >= num_coins);

        FreezingNode memory node = FreezingNode(end_stamp, num_coins, freezing_type);
        c_freezing_list[addr].push(node);

        emit SetFreezingEvent(addr, end_stamp, num_coins, freezing_type);
    }

    function transferAndFreezing(address _to, uint256 _value, uint256 freeze_amount, uint end_stamp, uint8 freezing_type) auth stoppable public returns (bool) {
        // uint never less than 0. The negative number will become to a big positive number
        require(_value < c_totalSupply);
        require(freeze_amount <= _value);

        transfer(_to, _value);
        setFreezing(_to, end_stamp, freeze_amount, freezing_type);

        return true;
    }

    function transfer(address _to, uint256 _value) stoppable public returns (bool) {
        require(msg.data.length >= (2 * 32) + 4);
        // uint never less than 0. The negative number will become to a big positive number
        require(_value < c_totalSupply);
        clearExpiredFreezing(msg.sender);
        uint from_coins = validBalanceOf(msg.sender);

        require(from_coins >= _value);

        c_balances[msg.sender] = sub(c_balances[msg.sender], _value);
        c_balances[_to] = add(c_balances[_to], _value);

        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) stoppable public returns (bool) {
        // uint never less than 0. The negative number will become to a big positive number
        require(_value < c_totalSupply);
        require(c_approvals[_from][msg.sender] >= _value);

        clearExpiredFreezing(_from);
        uint from_coins = validBalanceOf(_from);

        require(from_coins >= _value);

        c_approvals[_from][msg.sender] = sub(c_approvals[_from][msg.sender], _value);
        c_balances[_from] = sub(c_balances[_from], _value);
        c_balances[_to] = add(c_balances[_to], _value);

        emit Transfer(_from, _to, _value);
        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":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"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":"addr","type":"address"}],"name":"freezingBalanceNumberOf","outputs":[{"name":"","type":"uint256"}],"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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"freezer","type":"address"}],"name":"removeFreezer","outputs":[],"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":"addr","type":"address"},{"name":"end_stamp","type":"uint256"},{"name":"num_coins","type":"uint256"},{"name":"freezing_type","type":"uint8"}],"name":"setFreezing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"freezer","type":"address"}],"name":"addFreezer","outputs":[],"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":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"},{"name":"index","type":"uint256"}],"name":"freezingBalanceInfoOf","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"freeze_amount","type":"uint256"},{"name":"end_stamp","type":"uint256"},{"name":"freezing_type","type":"uint8"}],"name":"transferAndFreezing","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"validBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"clearExpiredFreezing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"token_supply","type":"uint256"},{"name":"token_name","type":"string"},{"name":"token_symbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"ClearExpiredFreezingEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"end_stamp","type":"uint256"},{"indexed":false,"name":"num_coins","type":"uint256"},{"indexed":true,"name":"freezing_type","type":"uint8"}],"name":"SetFreezingEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","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"}]

Deployed Bytecode

0x6080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461015957806307da68f5146101e3578063095ea7b3146101f857806313af40351461023057806318160ddd146102515780631a71d3db1461027857806323b872dd146102995780632acd2000146102c3578063313ce567146102e457806351c3b8a61461030f578063526606c91461033c57806370a082311461035d57806375f12b211461037e57806378b83360146103935780637a9e5e4b146103d85780638da5cb5b146103f957806395d89b411461042a578063a9059cbb1461043f578063b8a1fdb614610463578063be9a655514610493578063bf7e214f146104a8578063c47f0027146104bd578063c783fb1014610516578063dd62ed3e14610537578063ed8a9c0f1461055e575b34801561015457600080fd5b50fe5b005b34801561016557600080fd5b5061016e61057f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a8578181015183820152602001610190565b50505050905090810190601f1680156101d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ef57600080fd5b5061015761060a565b34801561020457600080fd5b5061021c600160a060020a03600435166024356106ad565b604080519115158252519081900360200190f35b34801561023c57600080fd5b50610157600160a060020a0360043516610785565b34801561025d57600080fd5b50610266610803565b60408051918252519081900360200190f35b34801561028457600080fd5b50610266600160a060020a036004351661080a565b3480156102a557600080fd5b5061021c600160a060020a0360043581169060243516604435610825565b3480156102cf57600080fd5b50610157600160a060020a03600435166109a6565b3480156102f057600080fd5b506102f9610a46565b6040805160ff9092168252519081900360200190f35b34801561031b57600080fd5b50610157600160a060020a036004351660243560443560ff60643516610a4f565b34801561034857600080fd5b50610157600160a060020a0360043516610b85565b34801561036957600080fd5b50610266600160a060020a0360043516610c0a565b34801561038a57600080fd5b5061021c610c25565b34801561039f57600080fd5b506103b7600160a060020a0360043516602435610c35565b60408051938452602084019290925260ff1682820152519081900360600190f35b3480156103e457600080fd5b50610157600160a060020a0360043516610cfb565b34801561040557600080fd5b5061040e610d75565b60408051600160a060020a039092168252519081900360200190f35b34801561043657600080fd5b5061016e610d84565b34801561044b57600080fd5b5061021c600160a060020a0360043516602435610ddf565b34801561046f57600080fd5b5061021c600160a060020a036004351660243560443560643560ff60843516610eec565b34801561049f57600080fd5b50610157610f64565b3480156104b457600080fd5b5061040e611001565b3480156104c957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101579436949293602493928401919081908401838280828437509497506110109650505050505050565b34801561052257600080fd5b50610266600160a060020a0360043516611048565b34801561054357600080fd5b50610266600160a060020a0360043581169060243516611160565b34801561056a57600080fd5b50610157600160a060020a036004351661118b565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106025780601f106105d757610100808354040283529160200191610602565b820191906000526020600020905b8154815290600101906020018083116105e557829003601f168201915b505050505081565b61062033600035600160e060020a0319166112e7565b151561062b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506001805474ff0000000000000000000000000000000000000000191660a060020a179055565b60015460009060a060020a900460ff16156106c757600080fd5b60443610156106d557600080fd5b8115806107055750600160a060020a03338116600090815260076020908152604080832093871683529290522054155b151561071057600080fd5b600554821061071e57600080fd5b600160a060020a03338116600081815260076020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b61079b33600035600160e060020a0319166112e7565b15156107a657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b6005545b90565b600160a060020a031660009081526008602052604090205490565b600154600090819060a060020a900460ff161561084157600080fd5b600554831061084f57600080fd5b600160a060020a038086166000908152600760209081526040808320339094168352929052205483111561088257600080fd5b61088b8561118b565b61089485611048565b9050828110156108a357600080fd5b600160a060020a03808616600090815260076020908152604080832033909416835292905220546108d490846113f9565b600160a060020a03808716600081815260076020908152604080832033909516835293815283822094909455908152600690925290205461091590846113f9565b600160a060020a0380871660009081526006602052604080822093909355908616815220546109449084611409565b600160a060020a0380861660008181526006602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b6109bc33600035600160e060020a0319166112e7565b15156109c757600080fd5b60008054604080517f2acd2000000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015291519190921692632acd2000926024808201939182900301818387803b158015610a2b57600080fd5b505af1158015610a3f573d6000803e3d6000fd5b5050505050565b60045460ff1681565b6000610a59611419565b610a6f33600035600160e060020a0319166112e7565b1515610a7a57600080fd5b60015460a060020a900460ff1615610a9157600080fd5b428511610a9d57600080fd5b6005548410610aab57600080fd5b610ab48661118b565b610abd86611048565b915083821015610acc57600080fd5b5060408051606081018252858152602080820186815260ff868116848601818152600160a060020a038c1660008181526008875288812080546001808201835591835291889020895160039093020191825595519581019590955590516002909401805460ff19169490931693909317909155845189815292830188905284519394909391927f8353c9c8e6b29f14bab2183a16c2ffce362ad474a75fc1adfd390a554a9532d2929081900390910190a3505050505050565b610b9b33600035600160e060020a0319166112e7565b1515610ba657600080fd5b60008054604080517f526606c9000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169263526606c9926024808201939182900301818387803b158015610a2b57600080fd5b600160a060020a031660009081526006602052604090205490565b60015460a060020a900460ff1681565b600160a060020a038216600090815260086020526040812080548291829185908110610c5d57fe5b60009182526020808320600390920290910154600160a060020a038816835260089091526040909120805486908110610c9257fe5b9060005260206000209060030201600101546008600088600160a060020a0316600160a060020a0316815260200190815260200160002086815481101515610cd657fe5b6000918252602090912060026003909202010154919450925060ff1690509250925092565b610d1133600035600160e060020a0319166112e7565b1515610d1c57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106025780601f106105d757610100808354040283529160200191610602565b600154600090819060a060020a900460ff1615610dfb57600080fd5b6044361015610e0957600080fd5b6005548310610e1757600080fd5b610e203361118b565b610e2933611048565b905082811015610e3857600080fd5b600160a060020a033316600090815260066020526040902054610e5b90846113f9565b600160a060020a033381166000908152600660205260408082209390935590861681522054610e8a9084611409565b600160a060020a038086166000818152600660209081526040918290209490945580518781529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b6000610f0433600035600160e060020a0319166112e7565b1515610f0f57600080fd5b60015460a060020a900460ff1615610f2657600080fd5b6005548510610f3457600080fd5b84841115610f4157600080fd5b610f4b8686610ddf565b50610f5886848685610a4f565b50600195945050505050565b610f7a33600035600160e060020a0319166112e7565b1515610f8557600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506001805474ff000000000000000000000000000000000000000019169055565b600054600160a060020a031681565b61102633600035600160e060020a0319166112e7565b151561103157600080fd5b805161104490600290602084019061143e565b5050565b6000606060008060006008600087600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110e55760008481526020908190206040805160608101825260038602909201805483526001808201548486015260029091015460ff16918301919091529083529092019101611096565b505050509350835192506110f886610c0a565b9150600090505b828110156111575742848281518110151561111657fe5b6020908102909101015151111561114f5761114c82858381518110151561113957fe5b90602001906020020151602001516113f9565b91505b6001016110ff565b50949350505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b600160a060020a038116600090815260086020526040812080549091805b828210156111e6574284838154811015156111c057fe5b6000918252602090912060039091020154116111db576111e6565b6001909101906111a9565b50600181015b82821080156111fa57508281105b156112995742848281548110151561120e57fe5b906000526020600020906003020160000154111561129157838181548110151561123457fe5b9060005260206000209060030201848381548110151561125057fe5b6000918252602090912082546003909202019081556001808301548183015560029283015492909101805460ff191660ff9093169290921790915591909101905b6001016111ec565b828214610a3f57816112ab85826114bc565b50604051600160a060020a038616907f1349c273832f298de87bb3ef2d605b440b294c028baee20ea8711724452fde8590600090a25050505050565b600030600160a060020a031683600160a060020a0316141561130b5750600161077f565b600154600160a060020a03848116911614156113295750600161077f565b600054600160a060020a031615156113435750600061077f565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b5051905061077f565b8082038281111561077f57600080fd5b8082018281101561077f57600080fd5b6060604051908101604052806000815260200160008152602001600060ff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061147f57805160ff19168380011785556114ac565b828001600101855582156114ac579182015b828111156114ac578251825591602001919060010190611491565b506114b89291506114ed565b5090565b8154818355818111156114e8576003028160030283600052602060002091820191016114e89190611507565b505050565b61080791905b808211156114b857600081556001016114f3565b61080791905b808211156114b8576000808255600182015560028101805460ff1916905560030161150d5600a165627a7a723058209521b12b8d22fadf39c10df98bf5d8dd5b3a5a2c8eae97c9704f0b90dd4d1ecf0029

Swarm Source

bzzr://b9403c5140d9968447976a65f006ad3848278d160f758bc867e5561bf311c3cc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.