Sponsored Link: Datum ICO unlocks the $120 Bln User Data Economy. Data is the new Oil. Get Free Tokens worth .05 ETH
Contract Overview | TAASContract
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 29443 txns
Token Tracker Taas
  Latest 25 txns from a total Of 29443 transactions View All

TxHash Age From To Value [TxFee]
0xeb56c7fa4f65b6a09f8ba4d96df30e5a19e512ed90d9abe7add2ec963477939a9 mins agocoinexchange.io  IN   TAASContract0 Ether0.000996915
0x7467695ff34614898425e009c131fbb250a98c92b0463fedfb71e3268e57dbde21 mins agocoinexchange.io  IN   TAASContract0 Ether0.00050882
0x40bc9f820559222b3073901ac88887a27d0d6f6e91ca053b18d6a4cb1b4daea528 mins agoliqui.io_2  IN   TAASContract0 Ether0.0005593476
0xa48093d4d7760c31708247ebfe1db6e5870370080abbedd5988a6fb51389644032 mins agoliqui.io_2  IN   TAASContract0 Ether0.00254538
0x21d3e48f069b32d338efa19ebb3e38fcd8249848c8fd0bccbd7b2d4ba03ddaab33 mins agocoinexchange.io  IN   TAASContract0 Ether0.00163178
0x5729602c695950e02aff76abf65158d348f3cd910cd0ddf8a5b77817435830df37 mins ago0x8b19e33ae9ea58702d2b145c733b814cf24b7b9d  IN   TAASContract0 Ether0.00076257
0xab8f56f56f6d2c48c466c9d2dbc909417e58237e55ac74dbcda5cca7bb797f5339 mins ago0x3f991c7b37dddabf1970ca6f62fdc218868a4e47  IN   TAASContract0 Ether0.003183325
0xa294c5063dc38a5966e391d112fea1b83267e539ea69536cbf7fd162ff23080140 mins ago0x8f76300da80ef04f1cd4767f9d3c1b70f22e2c96  IN   TAASContract0 Ether0.00636345
0x2867bac8518531053deb41c79f156f496a00f6071902e084d6dfb2090028776c1 hr 2 mins agoliqui.io_2  IN   TAASContract0 Ether0.000509332
0xe7171e9fd7a45a43f0b5cbb07c68523a73145005857b4d45934bda96fdbe223e1 hr 9 mins agoliqui.io_2  IN   TAASContract0 Ether0.00035980749
0x8e521f3cecdde2aa341f9a6a74ca643c9614dfa1f5ebf38cd89626ca2c0264761 hr 13 mins agoliqui.io_2  IN   TAASContract0 Ether0.00254666
0xacf589b2c337f0fe90ff899a9bb0f1d975fc12318a806b5fe2664a8136fc03061 hr 26 mins ago0x03749666a817cc15e8d0a3219ec5b9fe1615b9d1  IN   TAASContract0 Ether0.00133178
0x917006034fbdc51069290980a4e9b0a1478b0ed1a53a0954138a96325e5d185c1 hr 33 mins agoliqui.io_2  IN   TAASContract0 Ether0.000266356
0xb2e51f61435dceea5b2f8a248384318b953336ca0ff3577c42f7a5c5253bf3533 hrs 27 mins ago0xbef5ca3853abe03f7a711710280c977111b9a5eb  IN   TAASContract0 Ether0.00117948
0x27fe8baa3760365046219ecfdde92f4608da7d74e0935fab35fdaf3a0c92e9623 hrs 33 mins ago0xd0c59eaf60315b0c92ed9ba0f47e5141449b5806  IN   TAASContract0 Ether0.000290696
0xd9440f5916d5e1d193ffc83ac865f984a12a50759740a93f8cc493b49b529b343 hrs 38 mins ago0x3d828ab0f9a4d3754876b9493fdda250cf70c639  IN   TAASContract0 Ether0.00145732
0xc07097f8db9592e224dce4788b7fece0df7c33c542b58717894f3a12349ed2a83 hrs 43 mins ago0x3f991c7b37dddabf1970ca6f62fdc218868a4e47  IN   TAASContract0 Ether0.001661525
0xa25d10d6aaa7e25c83338d1d318f9faa19b327646123687133afca7e1191f4e54 hrs 7 mins ago0x3f991c7b37dddabf1970ca6f62fdc218868a4e47  IN   TAASContract0 Ether0.003181725
0x7497ddf60e9c0d980b84b480a999b31996019791dc52d9f934fdf1f623bd17234 hrs 29 mins agoliqui.io_2  IN   TAASContract0 Ether0.00013305
0xab77c8a5e1e6f09d4fd9ba485698d3411802a4e24262d8e5fa113f5ed89c8f534 hrs 43 mins agoliqui.io_2  IN   TAASContract0 Ether0.000133178
0x50b7fcd0e8677840f4d052a4c46a2f56dfc262ecf35ec2d38cb57b275da22c6d4 hrs 50 mins agoliqui.io_2  IN   TAASContract0 Ether0.000133178
0xef7d54b670e8b05a7e721c31373ecf094d5e27588bb87c932169575fe5b1c7144 hrs 56 mins ago0x0d6b5a54f940bf3d52e438cab785981aaefdf40c  IN   TAASContract0 Ether0.000509076
0x52546d459a6b71d63a7c0ab3dbd9130ac3423d8c721ef7e21a3a9811768e78246 hrs 49 mins agoliqui.io_2  IN   TAASContract0 Ether0.000107172855
0x03816b2858f59df58999b30c6649bb203a1f1bf87b1486253fdbed48dac28c886 hrs 53 mins agoliqui.io_2  IN   TAASContract0 Ether0.000107172855
0x87cbbd277a4adfd3e1e1b7823acc26e3afec2368f460323c0f3ceea8ddaa341c6 hrs 57 mins agoliqui.io_2  IN   TAASContract0 Ether0.000107172855
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 3 Internal Transactions

ParentTxHash Block Age From To Value
0xd3011580626227fcfe180a146a39a557b0f53e7ca0df28ab7dea5f5ad95546c0418173163 days 6 hrs ago0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c0xd899c145597897bd9f680ba51c91ebf3389c70cc0.01 Ether
0x858b4970b237b924cd8a3b7262ab5487a484e708221581efebd711637abacddb3572634184 days 15 hrs ago0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c0xd899c145597897bd9f680ba51c91ebf3389c70cc0.1 Ether
0x764fec5b5be77ffc1845417eff3b791fc9edcecab4b53b5623fa513c85c49d683572616184 days 15 hrs ago0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c0xd899c145597897bd9f680ba51c91ebf3389c70cc0.01 Ether
[ Download CSV Export  ] 
Contract Name: TAAS
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity 0.4.8;

contract EToken2 {
    function baseUnit(bytes32 _symbol) constant returns(uint8);
    function name(bytes32 _symbol) constant returns(string);
    function description(bytes32 _symbol) constant returns(string);
    function owner(bytes32 _symbol) constant returns(address);
    function isOwner(address _owner, bytes32 _symbol) constant returns(bool);
    function totalSupply(bytes32 _symbol) constant returns(uint);
    function balanceOf(address _holder, bytes32 _symbol) constant returns(uint);
    function proxyTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) returns(bool);
    function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) returns(bool);
    function allowance(address _from, address _spender, bytes32 _symbol) constant returns(uint);
    function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(bool);
}

contract Asset {
    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;
    }
}

contract ERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed from, address indexed spender, uint256 value);

    function totalSupply() constant returns(uint256 supply);
    function balanceOf(address _owner) constant returns(uint256 balance);
    function transfer(address _to, uint256 _value) returns(bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns(bool success);
    function approve(address _spender, uint256 _value) returns(bool success);
    function allowance(address _owner, address _spender) constant returns(uint256 remaining);
    function decimals() constant returns(uint8);
}

contract AssetProxyInterface {
    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);
}

contract Bytes32 {
    function _bytes32(string _input) internal constant returns(bytes32 result) {
        assembly {
            result := mload(add(_input, 32))
        }
    }
}

/**
 * @title EToken2 Asset Proxy.
 *
 * Proxy implements ERC20 interface and acts as a gateway to a single EToken2 asset.
 * Proxy adds etoken2Symbol and caller(sender) when forwarding requests to EToken2.
 * Every request that is made by caller first sent to the specific asset implementation
 * contract, which then calls back to be forwarded onto EToken2.
 *
 * Calls flow: Caller ->
 *             Proxy.func(...) ->
 *             Asset._performFunc(..., Caller.address) ->
 *             Proxy._forwardFunc(..., Caller.address) ->
 *             Platform.proxyFunc(..., symbol, Caller.address)
 *
 * Generic call flow: Caller ->
 *             Proxy.unknownFunc(...) ->
 *             Asset._performGeneric(..., Caller.address) ->
 *             Asset.unknownFunc(...)
 *
 * Asset implementation contract is mutable, but each user have an option to stick with
 * old implementation, through explicit decision made in timely manner, if he doesn't agree
 * with new rules.
 * Each user have a possibility to upgrade to latest asset contract implementation, without the
 * possibility to rollback.
 *
 * Note: all the non constant functions return false instead of throwing in case if state change
 * didn't happen yet.
 */
contract TAAS is ERC20, AssetProxyInterface, Bytes32 {
    // Assigned EToken2, immutable.
    EToken2 public etoken2;

    // Assigned symbol, immutable.
    bytes32 public etoken2Symbol;

    // Assigned name, immutable. For UI.
    string public name;
    string public symbol;

    /**
     * Sets EToken2 address, assigns symbol and name.
     *
     * Can be set only once.
     *
     * @param _etoken2 EToken2 contract address.
     * @param _symbol assigned symbol.
     * @param _name assigned name.
     *
     * @return success.
     */
    function init(EToken2 _etoken2, string _symbol, string _name) returns(bool) {
        if (address(etoken2) != 0x0) {
            return false;
        }
        etoken2 = _etoken2;
        etoken2Symbol = _bytes32(_symbol);
        name = _name;
        symbol = _symbol;
        return true;
    }

    /**
     * Only EToken2 is allowed to call.
     */
    modifier onlyEToken2() {
        if (msg.sender == address(etoken2)) {
            _;
        }
    }

    /**
     * Only current asset owner is allowed to call.
     */
    modifier onlyAssetOwner() {
        if (etoken2.isOwner(msg.sender, etoken2Symbol)) {
            _;
        }
    }

    /**
     * Returns asset implementation contract for current caller.
     *
     * @return asset implementation contract.
     */
    function _getAsset() internal returns(Asset) {
        return Asset(getVersionFor(msg.sender));
    }

    function recoverTokens(uint _value) onlyAssetOwner() returns(bool) {
        return this.transferWithReference(msg.sender, _value, 'Tokens recovery');
    }

    /**
     * Returns asset total supply.
     *
     * @return asset total supply.
     */
    function totalSupply() constant returns(uint) {
        return etoken2.totalSupply(etoken2Symbol);
    }

    /**
     * Returns asset balance for a particular holder.
     *
     * @param _owner holder address.
     *
     * @return holder balance.
     */
    function balanceOf(address _owner) constant returns(uint) {
        return etoken2.balanceOf(_owner, etoken2Symbol);
    }

    /**
     * Returns asset allowance from one holder to another.
     *
     * @param _from holder that allowed spending.
     * @param _spender holder that is allowed to spend.
     *
     * @return holder to spender allowance.
     */
    function allowance(address _from, address _spender) constant returns(uint) {
        return etoken2.allowance(_from, _spender, etoken2Symbol);
    }

    /**
     * Returns asset decimals.
     *
     * @return asset decimals.
     */
    function decimals() constant returns(uint8) {
        return etoken2.baseUnit(etoken2Symbol);
    }

    /**
     * Transfers asset balance from the caller to specified receiver.
     *
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     *
     * @return success.
     */
    function transfer(address _to, uint _value) returns(bool) {
        return transferWithReference(_to, _value, '');
    }

    /**
     * Transfers asset balance from the caller to specified receiver adding specified comment.
     * Resolves asset implementation contract for the caller and forwards there arguments along with
     * the caller address.
     *
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a EToken2's Transfer event.
     *
     * @return success.
     */
    function transferWithReference(address _to, uint _value, string _reference) returns(bool) {
        return _getAsset()._performTransferWithReference(_to, _value, _reference, msg.sender);
    }

    /**
     * Transfers asset balance from the caller to specified ICAP.
     *
     * @param _icap recipient ICAP to give to.
     * @param _value amount to transfer.
     *
     * @return success.
     */
    function transferToICAP(bytes32 _icap, uint _value) returns(bool) {
        return transferToICAPWithReference(_icap, _value, '');
    }

    /**
     * Transfers asset balance from the caller to specified ICAP adding specified comment.
     * Resolves asset implementation contract for the caller and forwards there arguments along with
     * the caller address.
     *
     * @param _icap recipient ICAP to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a EToken2's Transfer event.
     *
     * @return success.
     */
    function transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool) {
        return _getAsset()._performTransferToICAPWithReference(_icap, _value, _reference, msg.sender);
    }

    /**
     * Prforms allowance transfer of asset balance between holders.
     *
     * @param _from holder address to take from.
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     *
     * @return success.
     */
    function transferFrom(address _from, address _to, uint _value) returns(bool) {
        return transferFromWithReference(_from, _to, _value, '');
    }

    /**
     * Prforms allowance transfer of asset balance between holders adding specified comment.
     * Resolves asset implementation contract for the caller and forwards there arguments along with
     * the caller address.
     *
     * @param _from holder address to take from.
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a EToken2's Transfer event.
     *
     * @return success.
     */
    function transferFromWithReference(address _from, address _to, uint _value, string _reference) returns(bool) {
        return _getAsset()._performTransferFromWithReference(_from, _to, _value, _reference, msg.sender);
    }

    /**
     * Performs transfer call on the EToken2 by the name of specified sender.
     *
     * Can only be called by asset implementation contract assigned to sender.
     *
     * @param _from holder address to take from.
     * @param _to holder address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a EToken2's Transfer event.
     * @param _sender initial caller.
     *
     * @return success.
     */
    function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) {
        return etoken2.proxyTransferFromWithReference(_from, _to, _value, etoken2Symbol, _reference, _sender);
    }

    /**
     * Prforms allowance transfer of asset balance between holders.
     *
     * @param _from holder address to take from.
     * @param _icap recipient ICAP address to give to.
     * @param _value amount to transfer.
     *
     * @return success.
     */
    function transferFromToICAP(address _from, bytes32 _icap, uint _value) returns(bool) {
        return transferFromToICAPWithReference(_from, _icap, _value, '');
    }

    /**
     * Prforms allowance transfer of asset balance between holders adding specified comment.
     * Resolves asset implementation contract for the caller and forwards there arguments along with
     * the caller address.
     *
     * @param _from holder address to take from.
     * @param _icap recipient ICAP address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a EToken2's Transfer event.
     *
     * @return success.
     */
    function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool) {
        return _getAsset()._performTransferFromToICAPWithReference(_from, _icap, _value, _reference, msg.sender);
    }

    /**
     * Performs allowance transfer to ICAP call on the EToken2 by the name of specified sender.
     *
     * Can only be called by asset implementation contract assigned to sender.
     *
     * @param _from holder address to take from.
     * @param _icap recipient ICAP address to give to.
     * @param _value amount to transfer.
     * @param _reference transfer comment to be included in a EToken2's Transfer event.
     * @param _sender initial caller.
     *
     * @return success.
     */
    function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) {
        return etoken2.proxyTransferFromToICAPWithReference(_from, _icap, _value, _reference, _sender);
    }

    /**
     * Sets asset spending allowance for a specified spender.
     * Resolves asset implementation contract for the caller and forwards there arguments along with
     * the caller address.
     *
     * @param _spender holder address to set allowance to.
     * @param _value amount to allow.
     *
     * @return success.
     */
    function approve(address _spender, uint _value) returns(bool) {
        return _getAsset()._performApprove(_spender, _value, msg.sender);
    }

    /**
     * Performs allowance setting call on the EToken2 by the name of specified sender.
     *
     * Can only be called by asset implementation contract assigned to sender.
     *
     * @param _spender holder address to set allowance to.
     * @param _value amount to allow.
     * @param _sender initial caller.
     *
     * @return success.
     */
    function _forwardApprove(address _spender, uint _value, address _sender) onlyImplementationFor(_sender) returns(bool) {
        return etoken2.proxyApprove(_spender, _value, etoken2Symbol, _sender);
    }

    /**
     * Emits ERC20 Transfer event on this contract.
     *
     * Can only be, and, called by assigned EToken2 when asset transfer happens.
     */
    function emitTransfer(address _from, address _to, uint _value) onlyEToken2() {
        Transfer(_from, _to, _value);
    }

    /**
     * Emits ERC20 Approval event on this contract.
     *
     * Can only be, and, called by assigned EToken2 when asset allowance set happens.
     */
    function emitApprove(address _from, address _spender, uint _value) onlyEToken2() {
        Approval(_from, _spender, _value);
    }

    /**
     * Resolves asset implementation contract for the caller and forwards there transaction data,
     * along with the value. This allows for proxy interface growth.
     */
    function () payable {
        bytes32 result = _getAsset()._performGeneric.value(msg.value)(msg.data, msg.sender);
        assembly {
            mstore(0, result)
            return(0, 32)
        }
    }

    /**
     * Indicates an upgrade freeze-time start, and the next asset implementation contract.
     */
    event UpgradeProposal(address newVersion);

    // Current asset implementation contract address.
    address latestVersion;

    // Proposed next asset implementation contract address.
    address pendingVersion;

    // Upgrade freeze-time start.
    uint pendingVersionTimestamp;

    // Timespan for users to review the new implementation and make decision.
    uint constant UPGRADE_FREEZE_TIME = 3 days;

    // Asset implementation contract address that user decided to stick with.
    // 0x0 means that user uses latest version.
    mapping(address => address) userOptOutVersion;

    /**
     * Only asset implementation contract assigned to sender is allowed to call.
     */
    modifier onlyImplementationFor(address _sender) {
        if (getVersionFor(_sender) == msg.sender) {
            _;
        }
    }

    /**
     * Returns asset implementation contract address assigned to sender.
     *
     * @param _sender sender address.
     *
     * @return asset implementation contract address.
     */
    function getVersionFor(address _sender) constant returns(address) {
        return userOptOutVersion[_sender] == 0 ? latestVersion : userOptOutVersion[_sender];
    }

    /**
     * Returns current asset implementation contract address.
     *
     * @return asset implementation contract address.
     */
    function getLatestVersion() constant returns(address) {
        return latestVersion;
    }

    /**
     * Returns proposed next asset implementation contract address.
     *
     * @return asset implementation contract address.
     */
    function getPendingVersion() constant returns(address) {
        return pendingVersion;
    }

    /**
     * Returns upgrade freeze-time start.
     *
     * @return freeze-time start.
     */
    function getPendingVersionTimestamp() constant returns(uint) {
        return pendingVersionTimestamp;
    }

    /**
     * Propose next asset implementation contract address.
     *
     * Can only be called by current asset owner.
     *
     * Note: freeze-time should not be applied for the initial setup.
     *
     * @param _newVersion asset implementation contract address.
     *
     * @return success.
     */
    function proposeUpgrade(address _newVersion) onlyAssetOwner() returns(bool) {
        // Should not already be in the upgrading process.
        if (pendingVersion != 0x0) {
            return false;
        }
        // New version address should be other than 0x0.
        if (_newVersion == 0x0) {
            return false;
        }
        // Don't apply freeze-time for the initial setup.
        if (latestVersion == 0x0) {
            latestVersion = _newVersion;
            return true;
        }
        pendingVersion = _newVersion;
        pendingVersionTimestamp = now;
        UpgradeProposal(_newVersion);
        return true;
    }

    /**
     * Cancel the pending upgrade process.
     *
     * Can only be called by current asset owner.
     *
     * @return success.
     */
    function purgeUpgrade() onlyAssetOwner() returns(bool) {
        if (pendingVersion == 0x0) {
            return false;
        }
        delete pendingVersion;
        delete pendingVersionTimestamp;
        return true;
    }

    /**
     * Finalize an upgrade process setting new asset implementation contract address.
     *
     * Can only be called after an upgrade freeze-time.
     *
     * @return success.
     */
    function commitUpgrade() returns(bool) {
        if (pendingVersion == 0x0) {
            return false;
        }
        if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) {
            return false;
        }
        latestVersion = pendingVersion;
        delete pendingVersion;
        delete pendingVersionTimestamp;
        return true;
    }

    /**
     * Disagree with proposed upgrade, and stick with current asset implementation
     * until further explicit agreement to upgrade.
     *
     * @return success.
     */
    function optOut() returns(bool) {
        if (userOptOutVersion[msg.sender] != 0x0) {
            return false;
        }
        userOptOutVersion[msg.sender] = latestVersion;
        return true;
    }

    /**
     * Implicitly agree to upgrade to current and future asset implementation upgrades,
     * until further explicit disagreement.
     *
     * @return success.
     */
    function optIn() returns(bool) {
        delete userOptOutVersion[msg.sender];
        return true;
    }

    // Backwards compatibility.
    function multiAsset() constant returns(EToken2) {
        return etoken2;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"multiAsset","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"commitUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getLatestVersion","outputs":[{"name":"","type":"address"}],"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":"_forwardTransferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprove","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"recoverTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etoken2","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersionTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"purgeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optIn","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":"transferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"_forwardApprove","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"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":"_forwardTransferFromToICAPWithReference","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":"transferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etoken2Symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersion","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_etoken2","type":"address"},{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newVersion","type":"address"}],"name":"proposeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"optOut","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"getVersionFor","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradeProposal","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":"from","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405234610000575b611e93806100196000396000f300606060405236156101905763ffffffff60e060020a600035041663029a8bf7811461024457806306fdde031461026d578063095ea7b3146102fa5780630ba12c831461032a5780630e6d1de91461034b57806314cba0021461037457806318160ddd146103fb578063233850891461041a57806323b872dd1461043e57806323de66511461047457806330599fc514610498578063313ce567146104bc578063406838b3146104df5780634bfaf2e8146105085780634dfe950d146105275780635b48684e146105485780636461fe391461056957806370a08231146105e5578063733480b71461061057806377fe38a4146106375780637bcdc2f0146106a257806395d89b41146106d95780639b487f3f14610766578063a48a663c146107e7578063a525f42c1461085d578063a66e6e5c14610890578063a883fb90146108af578063a9059cbb146108d8578063ac35caee14610908578063b2b45df51461097c578063c915fc9314610a2a578063d4eec5a614610a57578063dd62ed3e14610a78578063fe8beb7114610aa9575b6102425b600061019e610ade565b600160a060020a031663db00b84834600036336000604051602001526040518563ffffffff1660e060020a028152600401808060200183600160a060020a0316600160a060020a03168152602001828103825285858281815260200192508082843782019150509450505050506020604051808303818588803b156100005761235a5a03f11561000057505050506040518051905090508060005260206000f35b50565b005b3461000057610251610aef565b60408051600160a060020a039092168252519081900360200190f35b346100005761027a610aff565b6040805160208082528351818301528351919283929083019185019080838382156102c0575b8051825260208311156102c057601f1990920191602091820191016102a0565b505050905090810190601f1680156102ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610316600160a060020a0360043516602435610b8a565b604080519115158252519081900360200190f35b3461000057610316610c2c565b604080519115158252519081900360200190f35b3461000057610251610c91565b60408051600160a060020a039092168252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610316948235600160a060020a0390811695602480359092169560443595946084949293019190819084018382808284375094965050509235600160a060020a03169250610ca1915050565b604080519115158252519081900360200190f35b3461000057610408610df6565b60408051918252519081900360200190f35b3461000057610242600160a060020a0360043581169060243516604435610e77565b005b3461000057610316600160a060020a0360043581169060243516604435610ee1565b604080519115158252519081900360200190f35b3461000057610242600160a060020a0360043581169060243516604435610f09565b005b3461000057610316600435610f73565b604080519115158252519081900360200190f35b34610000576104c96110a2565b6040805160ff9092168252519081900360200190f35b3461000057610251611123565b60408051600160a060020a039092168252519081900360200190f35b3461000057610408611132565b60408051918252519081900360200190f35b3461000057610316611139565b604080519115158252519081900360200190f35b34610000576103166111e3565b604080519115158252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610316948235600160a060020a0390811695602480359092169560443595946084949293019190819084018382808284375094965061120f95505050505050565b604080519115158252519081900360200190f35b3461000057610408600160a060020a0360043516611344565b60408051918252519081900360200190f35b34610000576103166004356024356113ce565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f81018490048402850184019095528484526103169482359460248035956064949293919092019181908401838280828437509496506113f495505050505050565b604080519115158252519081900360200190f35b3461000057610316600160a060020a036004358116906024359060443516611504565b604080519115158252519081900360200190f35b346100005761027a6115cd565b6040805160208082528351818301528351919283929083019185019080838382156102c0575b8051825260208311156102c057601f1990920191602091820191016102a0565b505050905090810190601f1680156102ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610316948235600160a060020a0316946024803595604435959460849492019190819084018382808284375094965050509235600160a060020a0316925061165b915050565b604080519115158252519081900360200190f35b3461000057604080516020600460643581810135601f8101849004840285018401909552848452610316948235600160a060020a031694602480359560443595946084949201919081908401838280828437509496506117a495505050505050565b604080519115158252519081900360200190f35b3461000057610316600160a060020a03600435166024356044356118cf565b604080519115158252519081900360200190f35b34610000576104086118f7565b60408051918252519081900360200190f35b34610000576102516118fd565b60408051600160a060020a039092168252519081900360200190f35b3461000057610316600160a060020a036004351660243561190d565b604080519115158252519081900360200190f35b3461000057604080516020600460443581810135601f8101849004840285018401909552848452610316948235600160a060020a031694602480359560649492939190920191819084018382808284375094965061193395505050505050565b604080519115158252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610316958335600160a060020a0316959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650611a4d95505050505050565b604080519115158252519081900360200190f35b3461000057610316600160a060020a0360043516611bd9565b604080519115158252519081900360200190f35b3461000057610316611d11565b604080519115158252519081900360200190f35b3461000057610408600160a060020a0360043581169060243516611d72565b60408051918252519081900360200190f35b3461000057610251600160a060020a0360043516611e05565b60408051600160a060020a039092168252519081900360200190f35b6000610ae933611e05565b90505b90565b600054600160a060020a03165b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b825780601f10610b5757610100808354040283529160200191610b82565b820191906000526020600020905b815481529060010190602001808311610b6557829003601f168201915b505050505081565b6000610b94610ade565b600160a060020a031663e34f71378484336000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200182600160a060020a0316600160a060020a031681526020019350505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b92915050565b600554600090600160a060020a03161515610c4957506000610aec565b426203f480600654011115610c6057506000610aec565b506005805460048054600160a060020a0319908116600160a060020a03841617909155169055600060065560015b90565b600454600160a060020a03165b90565b60008133600160a060020a0316610cb782611e05565b600160a060020a03161415610dea576000805460015460408051602090810194909452517f161ff662000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483019081528b82166024840152604483018b90526064830184905288821660a484015260c0608484019081528a5160c48501528a51929095169563161ff662958e958e958e9591948e948e949193919260e40191908601908083838215610d8d575b805182526020831115610d8d57601f199092019160209182019101610d6d565b505050905090810190601f168015610db95780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b5b5095945050505050565b6000805460015460408051602090810185905281517fb524abcf00000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a039093169263b524abcf92602480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b60005433600160a060020a0390811691161415610eda5781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5b5b505050565b6000610eff848484602060405190810160405280600081525061120f565b90505b9392505050565b60005433600160a060020a0390811691161415610eda5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b5b505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f1156100005750506040515115905061109b57604080516000602091820181905282517fac35caee000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301526024820187905260606044830152600f60648301527f546f6b656e73207265636f76657279000000000000000000000000000000000060848301529351309094169363ac35caee9360a48084019491938390030190829087803b156100005760325a03f115610000575050604051519150505b5b5b919050565b6000805460015460408051602090810185905281517fdc86e6f000000000000000000000000000000000000000000000000000000000815260048101939093529051600160a060020a039093169263dc86e6f092602480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b600054600160a060020a031681565b6006545b90565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f11561000057505060405151159050610aec57600554600160a060020a031615156111c557506000610aec565b5060058054600160a060020a0319169055600060065560015b5b5b90565b600160a060020a03331660009081526007602052604090208054600160a060020a031916905560015b90565b6000611219610ade565b600160a060020a031663cca9702586868686336000604051602001526040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a031681526020018281038252848181518152602001915080519060200190808383600083146112e0575b8051825260208311156112e057601f1990920191602091820191016112c0565b505050905090810190601f16801561130c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b949350505050565b6000805460015460408051602090810185905281517f4d30b6be000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482019490945291519290931692634d30b6be9260448084019382900301818787803b156100005760325a03f115610000575050604051519150505b919050565b60006113eb838360206040519081016040528060008152506113f4565b90505b92915050565b60006113fe610ade565b600160a060020a031663c10796df858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600019166000191681526020018481526020018060200183600160a060020a0316600160a060020a031681526020018281038252848181518152602001915080519060200190808383600083146114a2575b8051825260208311156114a257601f199092019160209182019101611482565b505050905090810190601f1680156114ce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b9392505050565b60008133600160a060020a031661151a82611e05565b600160a060020a031614156115c3576000805460015460408051602090810185905281517f14712e2f000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018b905260448201949094528884166064820152915192909316936314712e2f9360848084019491939192918390030190829087803b156100005760325a03f115610000575050604051519250505b5b5b509392505050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b825780601f10610b5757610100808354040283529160200191610b82565b820191906000526020600020905b815481529060010190602001808311610b6557829003601f168201915b505050505081565b60008133600160a060020a031661167182611e05565b600160a060020a03161415610dea576000805460408051602090810193909352517fa69032ee000000000000000000000000000000000000000000000000000000008152600160a060020a038a811660048301908152602483018b9052604483018a9052878216608484015260a060648401908152895160a48501528951929094169463a69032ee948d948d948d948d948d949193919260c49092019190860190808383821561173c575b80518252602083111561173c57601f19909201916020918201910161171c565b505050905090810190601f1680156117685780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519250505b5b5b5095945050505050565b60006117ae610ade565b600160a060020a031663eb58705b86868686336000604051602001526040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185600019166000191681526020018481526020018060200183600160a060020a0316600160a060020a031681526020018281038252848181518152602001915080519060200190808383600083146112e0575b8051825260208311156112e057601f1990920191602091820191016112c0565b505050905090810190601f16801561130c5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b949350505050565b6000610eff84848460206040519081016040528060008152506117a4565b90505b9392505050565b60015481565b600554600160a060020a03165b90565b60006113eb83836020604051908101604052806000815250611933565b90505b92915050565b600061193d610ade565b600160a060020a0316631962df71858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a031681526020018281038252848181518152602001915080519060200190808383600083146114a2575b8051825260208311156114a257601f199092019160209182019101611482565b505050905090810190601f1680156114ce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b156100005760325a03f115610000575050604051519150505b9392505050565b60008054600160a060020a031615611a6757506000610f02565b60008054600160a060020a031916600160a060020a038616179055611a8b83611e5c565b600181600019169055508160029080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ae157805160ff1916838001178555611b0e565b82800160010185558215611b0e579182015b82811115611b0e578251825591602001919060010190611af3565b5b50611b2f9291505b80821115611b2b5760008155600101611b17565b5090565b50508260039080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b7d57805160ff1916838001178555611baa565b82800160010185558215611baa579182015b82811115611baa578251825591602001919060010190611b8f565b5b50611bcb9291505b80821115611b2b5760008155600101611b17565b5090565b5050600190505b9392505050565b60008054600154604080516020908101859052815160e160020a6374b5a315028152600160a060020a03338116600483015260248201949094529151929093169263e96b462a9260448084019382900301818787803b156100005760325a03f1156100005750506040515115905061109b57600554600160a060020a031615611c645750600061109b565b600160a060020a0382161515611c7c5750600061109b565b600454600160a060020a03161515611cb1575060048054600160a060020a031916600160a060020a038316179055600161109b565b60058054600160a060020a038416600160a060020a031990911681179091554260065560408051918252517faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a9181900360200190a15060015b5b5b919050565b600160a060020a0333811660009081526007602052604081205490911615611d3b57506000610aec565b5060045433600160a060020a0390811660009081526007602052604090208054600160a060020a0319169190921617905560015b90565b6000805460015460408051602090810185905281517f1c8d5d38000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301528781166024830152604482019490945291519290931692631c8d5d389260648084019382900301818787803b156100005760325a03f115610000575050604051519150505b92915050565b600160a060020a0380821660009081526007602052604081205490911615611e4757600160a060020a0380831660009081526007602052604090205416611e54565b600454600160a060020a03165b90505b919050565b60208101515b9190505600a165627a7a7230582068b932daed52b9142f1ac235e033d83e0bd30d3955dd57e19342e5f2708084bf0029

   Swarm Source:
bzzr://68b932daed52b9142f1ac235e033d83e0bd30d3955dd57e19342e5f2708084bf
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.