Sponsored:   Ubex.com - World roadshow: Seoul Sep 17-19, Singapore Sep 19-20, Dubai 18-23. Meet us!.
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 4 txns
 Latest 4 txns

TxHash Age From To Value [TxFee]
0x2280fbf5cee509ad4664290a7419bb4db6c536f8256feee067ee09c3b53bfc21371 days 8 hrs ago0x9c130d47271261d3ffc86eb9204c43959e2de5df  IN   0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540 Ether0.00023298
0x362530e47e8a9d7ffe2dcc771453f7521b26bce64e58d3fa3dd773d0f3faa912371 days 8 hrs ago0x9c130d47271261d3ffc86eb9204c43959e2de5df  IN   0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540 Ether0.00044569
0x438e13e7d2fc83059f07997d91ae4d47a8e54e83f180e6f246afcd92a4f649f9371 days 8 hrs ago0x9c130d47271261d3ffc86eb9204c43959e2de5df  IN   0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540 Ether0.000216465
0x5865a6e7b253d116af9bcc419e37b227cb995c823c59ea757700602874e546cf371 days 9 hrs ago0x9c130d47271261d3ffc86eb9204c43959e2de5df  IN    Contract Creation0 Ether0.009498725001
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 4 Internal Transactions

ParentTxHash Block Age From To Value
0xea816d6b56516eca2414f67ba428c489a775a83bd70d8a48d5c1fa49d975e9d1619772030 days 35 mins ago0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540x6642bf72723839785418a5d2a2ed5b5dfe0cb3540.00001 Ether
0xea816d6b56516eca2414f67ba428c489a775a83bd70d8a48d5c1fa49d975e9d1619772030 days 35 mins ago0x1500205f50bf3fd976466d0662905c9ff254fc9c0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540.00001 Ether
0x2a4ba6ab4795cd84ee9d889652e70acb35ad8a6feb1dfdca54e668442b56aec14582110306 days 18 hrs ago0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540x6642bf72723839785418a5d2a2ed5b5dfe0cb3540.14057 Ether
0x2a4ba6ab4795cd84ee9d889652e70acb35ad8a6feb1dfdca54e668442b56aec14582110306 days 18 hrs ago0x1500205f50bf3fd976466d0662905c9ff254fc9c0x6642bf72723839785418a5d2a2ed5b5dfe0cb3540.14057 Ether
[ Download CSV Export  ] 
Contract Name: AssetWithWhitelist
Compiler Text: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  10000



  Contract Source Code   Find Similiar Contracts

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 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"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000c57fe5b5b611b7f8061001c6000396000f300606060405236156100ee5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631962df7181146100f057806319ab453c1461018c5780634830d5d9146101c957806348849c5a146101ed5780634bb377901461022a578063515a20ba1461024c5780637a386e88146102735780638a74ee43146102b05780639b19251a146102ed578063bfd94c8c1461032a578063c10796df14610367578063cca97025146103ed578063db00b84814610491578063e34f713714610509578063eb58705b14610550578063ec556889146105ee578063f5a9855814610627575bfe5b34156100f857fe5b604080516020600460443581810135601f810184900484028501840190955284845261017894823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff16925061064b915050565b604080519115158252519081900360200190f35b341561019457fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610689565b604080519115158252519081900360200190f35b34156101d157fe5b6101786106f9565b604080519115158252519081900360200190f35b34156101f557fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610880565b604080519115158252519081900360200190f35b341561023257fe5b61023a610a28565b60408051918252519081900360200190f35b341561025457fe5b610178600435610a2e565b604080519115158252519081900360200190f35b341561027b57fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610c58565b604080519115158252519081900360200190f35b34156102b857fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516610eb5565b604080519115158252519081900360200190f35b34156102f557fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516611061565b604080519115158252519081900360200190f35b341561033257fe5b61017873ffffffffffffffffffffffffffffffffffffffff60043516611076565b604080519115158252519081900360200190f35b341561036f57fe5b604080516020600460443581810135601f81018490048402850184019095528484526101789482359460248035956064949293919092019181908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506110c4915050565b604080519115158252519081900360200190f35b34156103f557fe5b604080516020600460643581810135601f810184900484028501840190955284845261017894823573ffffffffffffffffffffffffffffffffffffffff9081169560248035909216956044359594608494929301919081908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611102915050565b604080519115158252519081900360200190f35b61023a600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437509496505050923573ffffffffffffffffffffffffffffffffffffffff169250611142915050565b60408051918252519081900360200190f35b341561051157fe5b61017873ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661117c565b604080519115158252519081900360200190f35b341561055857fe5b604080516020600460643581810135601f810184900484028501840190955284845261017894823573ffffffffffffffffffffffffffffffffffffffff1694602480359560443595946084949201919081908401838280828437509496505050923573ffffffffffffffffffffffffffffffffffffffff1692506111b8915050565b604080519115158252519081900360200190f35b34156105f657fe5b6105fe6111f8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b341561062f57fe5b610178611214565b604080519115158252519081900360200190f35b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561067f5761067c8585858561121d565b90505b5b5b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156106b0575060006106f4565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590610844575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a30836107686112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b151561082d57fe5b6102c65a03f1151561083b57fe5b50506040515190505b1561087a57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b5090565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16158015906109cb575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a30836108ef6112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15156109b457fe5b6102c65a03f115156109c257fe5b50506040515190505b15610a205773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600191505b5b5b50919050565b60045481565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590610b79575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610a9d6112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1515610b6257fe5b6102c65a03f11515610b7057fe5b50506040515190505b15610a205760045415610be257604080517f45787069726174696f6e2074696d6520616c7265616479207365740000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a160009150610a20565b42831015610c4657604080517f45787069726174696f6e2074696d6520696e76616c6964000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a160009150610a20565b6004839055600191505b5b5b50919050565b60025460009073ffffffffffffffffffffffffffffffffffffffff1615610c81575060006106f4565b8173ffffffffffffffffffffffffffffffffffffffff1663b4ba9e1130336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515610d5557fe5b6102c65a03f11515610d6357fe5b5050604051511590508015610e5f57508173ffffffffffffffffffffffffffffffffffffffff16637ddc02d430336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515610e4757fe5b6102c65a03f11515610e5557fe5b5050604051511590505b15610e6c575060006106f4565b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905560015b919050565b6002546000907f61646d696e0000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff1615801590611000575060025473ffffffffffffffffffffffffffffffffffffffff16632d3e579a3083610f246112a0565b6000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1515610fe957fe5b6102c65a03f11515610ff757fe5b50506040515190505b15610a205773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915591505b5b5b50919050565b60036020526000908152604090205460ff1681565b60055460009060ff16806110af575073ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205460ff165b806110bc57506004544210155b90505b919050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561067f5761067c858585856112fb565b90505b5b5b949350505050565b600080543373ffffffffffffffffffffffffffffffffffffffff9081169116141561113757611134868686868661137e565b90505b5b5b95945050505050565b600080543373ffffffffffffffffffffffffffffffffffffffff90811691161415611174576111718383611403565b90505b5b5b92915050565b600080543373ffffffffffffffffffffffffffffffffffffffff908116911614156111af576111ac8484846114ac565b90505b5b5b9392505050565b600080543373ffffffffffffffffffffffffffffffffffffffff90811691161415611137576111348686868686611551565b90505b5b5b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60055460ff1681565b60008161122981611076565b151561128757604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a1611296565b611293868686866115d6565b91505b5b50949350505050565b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146112db57336112f5565b60015473ffffffffffffffffffffffffffffffffffffffff165b90505b90565b60008161130781611076565b151561136557604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a1611296565b61129386868686611728565b91505b5b50949350505050565b60008561138a81611076565b15156113e857604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a16113f8565b6113f58787878787611879565b91505b5b5095945050505050565b600154600090819073ffffffffffffffffffffffffffffffffffffffff161561142c5760006000fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790556114773085346119cc565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905591508190505b5092915050565b6000805460408051602090810184905281517f7bcdc2f000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015260248201889052868116604483015292519290931692637bcdc2f0926064808301939282900301818787803b151561153257fe5b6102c65a03f1151561154057fe5b5050604051519150505b9392505050565b60008561155d81611076565b15156115bb57604080517f5472616e73666572206e6f7420616c6c6f776564000000000000000000000000815290517fc0feee4291bd5b20db53763b87864bd1434da2717d6a9ba76efa4bafa8f6a99c9181900360200190a16113f8565b6113f58787878787611a01565b91505b5b5095945050505050565b6000805460408051602090810184905290517f14cba00200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483018181528a83166024850152604484018a9052608484019190915260a060648401908152885160a4850152885192909516946314cba0029488948c948c948c9488949193909260c49091019186019080838382156116bd575b8051825260208311156116bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161167f565b505050905090810190601f1680156116e95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561170857fe5b6102c65a03f1151561171657fe5b5050604051519150505b949350505050565b6000805460408051602090810184905290517f9b487f3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301818152602484018b9052604484018a9052608484019190915260a060648401908152885160a485015288519290951694639b487f3f9488948c948c948c9488949193909260c49091019186019080838382156116bd575b8051825260208311156116bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161167f565b505050905090810190601f1680156116e95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561170857fe5b6102c65a03f1151561171657fe5b5050604051519150505b949350505050565b6000805460408051602090810184905290517f14cba00200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89811660048301908152898216602484015260448301899052868216608484015260a060648401908152885160a4850152885192909516946314cba002948c948c948c948c948c949193909260c4909101918601908083838215611960575b805182526020831115611960577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611922565b505050905090810190601f16801561198c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156119ab57fe5b6102c65a03f115156119b957fe5b5050604051519150505b95945050505050565b600060006020600085516020870186896040603f5a0204f1905060005191508015156119f85760006000fd5b5b509392505050565b6000805460408051602090810184905290517f9b487f3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89811660048301908152602483018a905260448301899052868216608484015260a060648401908152885160a485015288519290951694639b487f3f948c948c948c948c948c949193909260c4909101918601908083838215611960575b805182526020831115611960577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611922565b505050905090810190601f16801561198c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156119ab57fe5b6102c65a03f115156119b957fe5b5050604051519150505b959450505050505600a165627a7a723058205fc3b051cd4d3a14bedf637273e558e504ea8035ecf63fbc381dc56f0efa8bee0029

   Swarm Source:
bzzr://5fc3b051cd4d3a14bedf637273e558e504ea8035ecf63fbc381dc56f0efa8bee

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.