ETH Price: $2,541.74 (+4.35%)

Contract

0x94EF3CBa9232585Ae11a51683801DAc0737f2340
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Allow Transfer F...42701242017-09-13 16:40:312563 days ago1505320831IN
0x94EF3CBa...0737f2340
0 ETH0.000232985
Setup Ambi242701142017-09-13 16:38:132563 days ago1505320693IN
0x94EF3CBa...0737f2340
0 ETH0.000445695
Init42701102017-09-13 16:36:512563 days ago1505320611IN
0x94EF3CBa...0737f2340
0 ETH0.000216785
0x6060604042700972017-09-13 16:33:102563 days ago1505320390IN
 Contract Creation
0 ETH0.009498725

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
197379822024-04-26 7:14:47147 days ago1714115687
0x94EF3CBa...0737f2340
0 ETH
196360252024-04-12 0:43:23161 days ago1712882603
0x94EF3CBa...0737f2340
0 ETH
196360252024-04-12 0:43:23161 days ago1712882603
0x94EF3CBa...0737f2340
0 ETH
196348342024-04-11 20:43:23161 days ago1712868203
0x94EF3CBa...0737f2340
0 ETH
196348342024-04-11 20:43:23161 days ago1712868203
0x94EF3CBa...0737f2340
0 ETH
196336432024-04-11 16:43:23161 days ago1712853803
0x94EF3CBa...0737f2340
0 ETH
196336432024-04-11 16:43:23161 days ago1712853803
0x94EF3CBa...0737f2340
0 ETH
196324532024-04-11 12:43:23161 days ago1712839403
0x94EF3CBa...0737f2340
0 ETH
196324532024-04-11 12:43:23161 days ago1712839403
0x94EF3CBa...0737f2340
0 ETH
196312642024-04-11 8:43:23162 days ago1712825003
0x94EF3CBa...0737f2340
0 ETH
196312642024-04-11 8:43:23162 days ago1712825003
0x94EF3CBa...0737f2340
0 ETH
196300752024-04-11 4:43:11162 days ago1712810591
0x94EF3CBa...0737f2340
0 ETH
196300752024-04-11 4:43:11162 days ago1712810591
0x94EF3CBa...0737f2340
0 ETH
196288832024-04-11 0:43:11162 days ago1712796191
0x94EF3CBa...0737f2340
0 ETH
196288832024-04-11 0:43:11162 days ago1712796191
0x94EF3CBa...0737f2340
0 ETH
196276902024-04-10 20:43:23162 days ago1712781803
0x94EF3CBa...0737f2340
0 ETH
196276902024-04-10 20:43:23162 days ago1712781803
0x94EF3CBa...0737f2340
0 ETH
196264952024-04-10 16:43:23162 days ago1712767403
0x94EF3CBa...0737f2340
0 ETH
196264952024-04-10 16:43:23162 days ago1712767403
0x94EF3CBa...0737f2340
0 ETH
196253032024-04-10 12:43:23162 days ago1712753003
0x94EF3CBa...0737f2340
0 ETH
196253032024-04-10 12:43:23162 days ago1712753003
0x94EF3CBa...0737f2340
0 ETH
196241132024-04-10 8:43:23163 days ago1712738603
0x94EF3CBa...0737f2340
0 ETH
196241132024-04-10 8:43:23163 days ago1712738603
0x94EF3CBa...0737f2340
0 ETH
196229202024-04-10 4:43:23163 days ago1712724203
0x94EF3CBa...0737f2340
0 ETH
196229202024-04-10 4:43:23163 days ago1712724203
0x94EF3CBa...0737f2340
0 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
AssetWithWhitelist

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity 0.4.11;

contract AssetInterface {
    function _performTransferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool);
    function _performTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) returns(bool);
    function _performApprove(address _spender, uint _value, address _sender) returns(bool);    
    function _performTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool);
    function _performTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool);
    function _performGeneric(bytes _data, address _sender) payable returns(bytes32) {
        throw;
    }
}

/**
 * @title EToken2 Asset implementation contract.
 *
 * Basic asset implementation contract, without any additional logic.
 * Every other asset implementation contracts should derive from this one.
 * Receives calls from the proxy, and calls back immediatly without arguments modification.
 *
 * Note: all the non constant functions return false instead of throwing in case if state change
 * didn't happen yet.
 */
contract Asset is AssetInterface {
    // Assigned asset proxy contract, immutable.
    AssetProxy public proxy;

    /**
     * Only assigned proxy is allowed to call.
     */
    modifier onlyProxy() {
        if (proxy == msg.sender) {
            _;
        }
    }

    /**
     * Sets asset proxy address.
     *
     * Can be set only once.
     *
     * @param _proxy asset proxy contract address.
     *
     * @return success.
     * @dev function is final, and must not be overridden.
     */
    function init(AssetProxy _proxy) returns(bool) {
        if (address(proxy) != 0x0) {
            return false;
        }
        proxy = _proxy;
        return true;
    }

    /**
     * Passes execution into virtual function.
     *
     * Can only be called by assigned asset proxy.
     *
     * @return success.
     * @dev function is final, and must not be overridden.
     */
    function _performTransferWithReference(address _to, uint _value, string _reference, address _sender) onlyProxy() returns(bool) {
        return _transferWithReference(_to, _value, _reference, _sender);
    }

    /**
     * Calls back without modifications.
     *
     * @return success.
     * @dev function is virtual, and meant to be overridden.
     */
    function _transferWithReference(address _to, uint _value, string _reference, address _sender) internal returns(bool) {
        return proxy._forwardTransferFromWithReference(_sender, _to, _value, _reference, _sender);
    }

    /**
     * Passes execution into virtual function.
     *
     * Can only be called by assigned asset proxy.
     *
     * @return success.
     * @dev function is final, and must not be overridden.
     */
    function _performTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) onlyProxy() returns(bool) {
        return _transferToICAPWithReference(_icap, _value, _reference, _sender);
    }

    /**
     * Calls back without modifications.
     *
     * @return success.
     * @dev function is virtual, and meant to be overridden.
     */
    function _transferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender) internal returns(bool) {
        return proxy._forwardTransferFromToICAPWithReference(_sender, _icap, _value, _reference, _sender);
    }

    /**
     * Passes execution into virtual function.
     *
     * Can only be called by assigned asset proxy.
     *
     * @return success.
     * @dev function is final, and must not be overridden.
     */
    function _performTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyProxy() returns(bool) {
        return _transferFromWithReference(_from, _to, _value, _reference, _sender);
    }

    /**
     * Calls back without modifications.
     *
     * @return success.
     * @dev function is virtual, and meant to be overridden.
     */
    function _transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) internal returns(bool) {
        return proxy._forwardTransferFromWithReference(_from, _to, _value, _reference, _sender);
    }

    /**
     * Passes execution into virtual function.
     *
     * Can only be called by assigned asset proxy.
     *
     * @return success.
     * @dev function is final, and must not be overridden.
     */
    function _performTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) onlyProxy() returns(bool) {
        return _transferFromToICAPWithReference(_from, _icap, _value, _reference, _sender);
    }

    /**
     * Calls back without modifications.
     *
     * @return success.
     * @dev function is virtual, and meant to be overridden.
     */
    function _transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) internal returns(bool) {
        return proxy._forwardTransferFromToICAPWithReference(_from, _icap, _value, _reference, _sender);
    }

    /**
     * Passes execution into virtual function.
     *
     * Can only be called by assigned asset proxy.
     *
     * @return success.
     * @dev function is final, and must not be overridden.
     */
    function _performApprove(address _spender, uint _value, address _sender) onlyProxy() returns(bool) {
        return _approve(_spender, _value, _sender);
    }

    /**
     * Calls back without modifications.
     *
     * @return success.
     * @dev function is virtual, and meant to be overridden.
     */
    function _approve(address _spender, uint _value, address _sender) internal returns(bool) {
        return proxy._forwardApprove(_spender, _value, _sender);
    }

    /**
     * Passes execution into virtual function.
     *
     * Can only be called by assigned asset proxy.
     *
     * @return bytes32 result.
     * @dev function is final, and must not be overridden.
     */
    function _performGeneric(bytes _data, address _sender) payable onlyProxy() returns(bytes32) {
        return _generic(_data, _sender);
    }

    modifier onlyMe() {
        if (this == msg.sender) {
            _;
        }
    }

    // Most probably the following should never be redefined in child contracts.
    address genericSender;
    function _generic(bytes _data, address _sender) internal returns(bytes32) {
        // Restrict reentrancy.
        if (genericSender != 0x0) {
            throw;
        }
        genericSender = _sender;
        bytes32 result = _callReturn(this, _data, msg.value);
        delete genericSender;
        return result;
    }

    function _callReturn(address _target, bytes _data, uint _value) internal returns(bytes32 result) {
        bool success;
        assembly {
            success := call(div(mul(gas, 63), 64), _target, _value, add(_data, 32), mload(_data), 0, 32)
            result := mload(0)
        }
        if (!success) {
            throw;
        }
    }

    // Decsendants should use _sender() instead of msg.sender to properly process proxied calls.
    function _sender() constant internal returns(address) {
        return this == msg.sender ? genericSender : msg.sender;
    }
}

contract Ambi2 {
    function claimFor(address _address, address _owner) returns(bool);
    function hasRole(address _from, bytes32 _role, address _to) constant returns(bool);
    function isOwner(address _node, address _owner) constant returns(bool);
}

contract Ambi2Enabled {
    Ambi2 ambi2;

    modifier onlyRole(bytes32 _role) {
        if (address(ambi2) != 0x0 && ambi2.hasRole(this, _role, msg.sender)) {
            _;
        }
    }

    // Perform only after claiming the node, or claim in the same tx.
    function setupAmbi2(Ambi2 _ambi2) returns(bool) {
        if (address(ambi2) != 0x0) {
            return false;
        }

        ambi2 = _ambi2;
        return true;
    }
}

contract Ambi2EnabledFull is Ambi2Enabled {
    // Setup and claim atomically.
    function setupAmbi2(Ambi2 _ambi2) returns(bool) {
        if (address(ambi2) != 0x0) {
            return false;
        }
        if (!_ambi2.claimFor(this, msg.sender) && !_ambi2.isOwner(this, msg.sender)) {
            return false;
        }

        ambi2 = _ambi2;
        return true;
    }
}

contract AssetWithAmbi is Asset, Ambi2EnabledFull {
    modifier onlyRole(bytes32 _role) {
        if (address(ambi2) != 0x0 && (ambi2.hasRole(this, _role, _sender()))) {
            _;
        }
    }
}

contract AssetProxy {
    function _forwardApprove(address _spender, uint _value, address _sender) returns(bool);
    function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool);
    function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool);
    function balanceOf(address _owner) constant returns(uint);
}

/**
 * @title EToken2 Asset with whitelist implementation contract.
 */
contract AssetWithWhitelist is AssetWithAmbi {
    mapping(address => bool) public whitelist;
    uint public restrictionExpiraton;
    bool public restrictionRemoved;

    event Error(bytes32 _errorText);

    function allowTransferFrom(address _from) onlyRole('admin') returns(bool) {
        whitelist[_from] = true;
        return true;
    }

    function blockTransferFrom(address _from) onlyRole('admin') returns(bool) {
        whitelist[_from] = false;
        return true;
    }

    function transferIsAllowed(address _from) constant returns(bool) {
        return restrictionRemoved || whitelist[_from] || (now >= restrictionExpiraton);
    }

    function removeRestriction() onlyRole('admin') returns(bool) {
        restrictionRemoved = true;
        return true;
    }

    modifier transferAllowed(address _sender) {
        if (!transferIsAllowed(_sender)) {
            Error('Transfer not allowed');
            return;
        }
        _;
    }

    function setExpiration(uint _time) onlyRole('admin') returns(bool) {
        if (restrictionExpiraton != 0) {
            Error('Expiration time already set');
            return false;
        }
        if (_time < now) {
            Error('Expiration time invalid');
            return false;
        }
        restrictionExpiraton = _time;
        return true;
    }

    // Transfers
    function _transferWithReference(address _to, uint _value, string _reference, address _sender)
        transferAllowed(_sender)
        internal
        returns(bool)
    {
        return super._transferWithReference(_to, _value, _reference, _sender);
    }

    function _transferToICAPWithReference(bytes32 _icap, uint _value, string _reference, address _sender)
        transferAllowed(_sender)
        internal
        returns(bool)
    {
        return super._transferToICAPWithReference(_icap, _value, _reference, _sender);
    }

    function _transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender)
        transferAllowed(_from)
        internal
        returns(bool)
    {
        return super._transferFromWithReference(_from, _to, _value, _reference, _sender);
    }

    function _transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender)
        transferAllowed(_from)
        internal
        returns(bool)
    {
        return super._transferFromToICAPWithReference(_from, _icap, _value, _reference, _sender);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proxy","type":"address"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"removeRestriction","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"}],"name":"blockTransferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"restrictionExpiraton","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"setExpiration","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ambi2","type":"address"}],"name":"setupAmbi2","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"}],"name":"allowTransferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"}],"name":"transferIsAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_data","type":"bytes"},{"name":"_sender","type":"address"}],"name":"_performGeneric","outputs":[{"name":"","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"_performApprove","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_performTransferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"proxy","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"restrictionRemoved","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_errorText","type":"bytes32"}],"name":"Error","type":"event"}]

Deployed Bytecode

0x606060405236156100ee5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631962df7181146100f057806319ab453c1461018c5780634830d5d9146101c957806348849c5a146101ed5780634bb377901461022a578063515a20ba1461024c5780637a386e88146102735780638a74ee43146102b05780639b19251a146102ed578063bfd94c8c1461032a578063c10796df14610367578063cca97025146103ed578063db00b84814610491578063e34f713714610509578063eb58705b14610550578063ec556889146105ee578063f5a9855814610627575bfe5b34156100f857fe5b604080516020600460443581810135601f810184900484028501840190955284845261017894823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff16925061064b915050565b604080519115158252519081900360200190f35b341561019457fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610689565b604080519115158252519081900360200190f35b34156101d157fe5b6101786106f9565b604080519115158252519081900360200190f35b34156101f557fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610880565b604080519115158252519081900360200190f35b341561023257fe5b61023a610a28565b60408051918252519081900360200190f35b341561025457fe5b610178600435610a2e565b604080519115158252519081900360200190f35b341561027b57fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610c58565b604080519115158252519081900360200190f35b34156102b857fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610eb5565b604080519115158252519081900360200190f35b34156102f557fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516611061565b604080519115158252519081900360200190f35b341561033257fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516611076565b604080519115158252519081900360200190f35b341561036f57fe5b604080516020600460443581810135601f81018490048402850184019095528484526101789482359460248035956064949293919092019181908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506110c4915050565b604080519115158252519081900360200190f35b34156103f557fe5b604080516020600460643581810135601f810184900484028501840190955284845261017894823573ffffffffffffffffffffffffffffffffffffffff9081169560248035909216956044359594608494929301919081908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611102915050565b604080519115158252519081900360200190f35b61023a600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611142915050565b60408051918252519081900360200190f35b341561051157fe5b61017873ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661117c565b604080519115158252519081900360200190f35b341561055857fe5b604080516020600460643581810135601f810184900484028501840190955284845261017894823573ffffffffffffffffffffffffffffffffffffffff1694602480359560443595946084949201919081908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506111b8915050565b604080519115158252519081900360200190f35b34156105f657fe5b6105fe6111f8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b341561062f57fe5b610178611214565b604080519115158252519081900360200190f35b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561067f5761067c8585858561121d565b90505b5b5b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156106b0575060006106f4565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590610844575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a30836107686112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b151561082d57fe5b6102c65a03f1151561083b57fe5b50506040515190505b1561087a57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b5090565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16158015906109cb575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a30836108ef6112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15156109b457fe5b6102c65a03f115156109c257fe5b50506040515190505b15610a205773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600191505b5b5b50919050565b60045481565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590610b79575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610a9d6112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1515610b6257fe5b6102c65a03f11515610b7057fe5b50506040515190505b15610a205760045415610be257604080517f45787069726174696f6e2074696d6520616c7265616479207365740000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a160009150610a20565b42831015610c4657604080517f45787069726174696f6e2074696d6520696e76616c6964000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a160009150610a20565b6004839055600191505b5b5b50919050565b60025460009073ffffffffffffffffffffffffffffffffffffffff1615610c81575060006106f4565b8173ffffffffffffffffffffffffffffffffffffffff1663b4ba9e1130336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515610d5557fe5b6102c65a03f11515610d6357fe5b5050604051511590508015610e5f57508173ffffffffffffffffffffffffffffffffffffffff16637ddc02d430336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515610e4757fe5b6102c65a03f11515610e5557fe5b5050604051511590505b15610e6c575060006106f4565b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590611000575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610f246112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1515610fe957fe5b6102c65a03f11515610ff757fe5b50506040515190505b15610a205773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b50919050565b60036020526000908152604090205460ff1681565b60055460009060ff16806110af575073ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff165b806110bc57506004544210155b90505b919050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561067f5761067c858585856112fb565b90505b5b5b949350505050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561113757611134868686868661137e565b90505b5b5b95945050505050565b600080543373ffffffffffffffffffffffffffffffffffffffff90811691161415611174576111718383611403565b90505b5b5b92915050565b600080543373ffffffffffffffffffffffffffffffffffffffff908116911614156111af576111ac8484846114ac565b90505b5b5b9392505050565b600080543373ffffffffffffffffffffffffffffffffffffffff90811691161415611137576111348686868686611551565b90505b5b5b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055460ff1681565b60008161122981611076565b151561128757604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a1611296565b611293868686866115d6565b91505b5b50949350505050565b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146112db57336112f5565b60015473ffffffffffffffffffffffffffffffffffffffff165b90505b90565b60008161130781611076565b151561136557604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a1611296565b61129386868686611728565b91505b5b50949350505050565b60008561138a81611076565b15156113e857604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a16113f8565b6113f58787878787611879565b91505b5b5095945050505050565b600154600090819073ffffffffffffffffffffffffffffffffffffffff161561142c5760006000fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790556114773085346119cc565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905591508190505b5092915050565b6000805460408051602090810184905281517f7bcdc2f000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015260248201889052868116604483015292519290931692637bcdc2f0926064808301939282900301818787803b151561153257fe5b6102c65a03f1151561154057fe5b5050604051519150505b9392505050565b60008561155d81611076565b15156115bb57604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a16113f8565b6113f58787878787611a01565b91505b5b5095945050505050565b6000805460408051602090810184905290517f14cba00200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483018181528a83166024850152604484018a9052608484019190915260a060648401908152885160a4850152885192909516946314cba0029488948c948c948c9488949193909260c49091019186019080838382156116bd575b8051825260208311156116bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161167f565b505050905090810190601f1680156116e95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561170857fe5b6102c65a03f1151561171657fe5b5050604051519150505b949350505050565b6000805460408051602090810184905290517f9b487f3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301818152602484018b9052604484018a9052608484019190915260a060648401908152885160a485015288519290951694639b487f3f9488948c948c948c9488949193909260c49091019186019080838382156116bd575b8051825260208311156116bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161167f565b505050905090810190601f1680156116e95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561170857fe5b6102c65a03f1151561171657fe5b5050604051519150505b949350505050565b6000805460408051602090810184905290517f14cba00200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89811660048301908152898216602484015260448301899052868216608484015260a060648401908152885160a4850152885192909516946314cba002948c948c948c948c948c949193909260c4909101918601908083838215611960575b805182526020831115611960577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611922565b505050905090810190601f16801561198c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156119ab57fe5b6102c65a03f115156119b957fe5b5050604051519150505b95945050505050565b600060006020600085516020870186896040603f5a0204f1905060005191508015156119f85760006000fd5b5b509392505050565b6000805460408051602090810184905290517f9b487f3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89811660048301908152602483018a905260448301899052868216608484015260a060648401908152885160a485015288519290951694639b487f3f948c948c948c948c948c949193909260c4909101918601908083838215611960575b805182526020831115611960577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611922565b505050905090810190601f16801561198c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156119ab57fe5b6102c65a03f115156119b957fe5b5050604051519150505b959450505050505600a165627a7a723058205fc3b051cd4d3a14bedf637273e558e504ea8035ecf63fbc381dc56f0efa8bee0029

Swarm Source

bzzr://5fc3b051cd4d3a14bedf637273e558e504ea8035ecf63fbc381dc56f0efa8bee

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.