Sponsored Link:   WELL – WORKING HEALTHCARE U.S. PLATFORM - RAISED $3M IN PRE-ICO – JOIN NOW WITH 40% BONUS
Contract Overview | TAASContract
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 38591 txns
Token Tracker Taas
  Latest 25 txns from a total Of 38591 transactions View All

TxHash Age From To Value [TxFee]
0x3ef72b275213c44be2cab08ff271aace1bf86a4a241b10cf79c393a75f83cb4146 mins ago0x7b6dda85b6e63d0cb1b4a468f72314762ca0c87a  IN   TAASContract0 Ether0.001399713
0xed4cf4774231f4377039d531080d0030ff4c138c05c0ed880ea7908deb9e6a5c1 hr 15 mins ago0x839f9726ca5cafe045cd2df05d78980fa730533b  IN   TAASContract0 Ether0.00072802
0x05bcf0dae24f7962b9533debcd31365f3f92638fb37437fe51fc0880c5aeae2e1 hr 35 mins ago0x04c73e8edb0811421becb7c378d997356b8d0757  IN   TAASContract0 Ether0.0001527498
0x871431a79820f6aa927b677f7a9048c59308be64a9dbc6639e2001b513fb43251 hr 36 mins ago0xf35e132491aa7bc2dafd7f2504368b26a5ff7e55  IN   TAASContract0 Ether0.00309534
0xfdd4cc478fd6548b7428418bb638fd561763b86a5f83a5330ac7ded57f231a081 hr 46 mins ago0x3f991c7b37dddabf1970ca6f62fdc218868a4e47  IN   TAASContract0 Ether0.00163178
0x50975e8ecfd3adb08b1d716d40e4d6c09d581ccf9991985ec7bbb27f9b2b4a5d1 hr 55 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00133178
0x510b6f53dd009c254393d61ee6c5231069c1557f3beb8f820c3a8cf973f93da92 hrs 33 mins ago0x195650a518b841602dbb6ae6f09c40b608d1fea6  IN   TAASContract0 Ether0.000206356
0x4f72c1e5240a432fec7656225c115e9d08b999294c5e37deeb6705736df759c82 hrs 39 mins ago0x195650a518b841602dbb6ae6f09c40b608d1fea6  IN   TAASContract0 Ether0.000244575
0x850aa8498c7183cae947e93972e6810fa665019430b3ceafabc40436dec0f0143 hrs 7 mins ago0x195650a518b841602dbb6ae6f09c40b608d1fea6  IN   TAASContract0 Ether0.000145476
0x5e0a725206318aab4a7fdccb5cd4ac4603f87d94ea910f2ab9b440ce63d43b2c4 hrs 51 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00254666
0x9eaddfca901ca1e7c5f202d2b34b91521c1d1d22d0877893e7a24a7d729bc9e86 hrs 15 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00133178
0x0f3f292e37f5a14e72f621c5e0768318fc36985431ab7f906f61a5eca3b608fd8 hrs 8 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00133178
0x4c873d67b8865a3d64134aec69ee41c14ddf92b20ee1eb2d5a4c76f00c742d198 hrs 50 mins ago0xef802b73fd2a6b4291dc92fe94577b30ea662be1  IN   TAASContract0 Ether0.00257625
0xc06b0444fcf928dc75ab2cf93b72702ff6effca498d7d2ebc225a834eed12d9b9 hrs ago0xef802b73fd2a6b4291dc92fe94577b30ea662be1  IN   TAASContract0 Ether0.000290952
0xee28f1b6c2bed2a3f41916ce23d2bb1ffd3c08639d763c184967277643ada88c9 hrs 1 min ago0xd1774a45402bd5d91df5e767655d31235a69f958  IN   TAASContract0 Ether0.00051589
0xb237ee98de8ce3d7e0b4335ca4474dedd2f1116b8c4aaa011c6f8fcae37516559 hrs 4 mins ago0x1caa750048aa9dcf487a55e07d37fad8d1a05639  IN   TAASContract0 Ether0.00112333
0xee2ed0dc97aea723a4431b8c44b0f138811aba8175566b1f95683da3ebef57999 hrs 49 mins ago0x035edc583a69fe909965d29a20551c5a38ed32e9  IN   TAASContract0 Ether0.0003261
0x7904f418ab97a4426f2c28fd97813471de8a5478170f35e9af98e8711af3053b10 hrs 43 mins ago0x4bff3c1a14a50ae31f4d2216bfe6488de7697c1a  IN   TAASContract0 Ether0.00036401
0x3326dd33de7c7a700ef5825dc307485f02dd6752b23e22252cc5c46563cd3a7a10 hrs 48 mins ago0x000aefdbb3630b12c504efc9f64b66c56a894c55  IN   TAASContract0 Ether0.000561665
0xdb1d71d35ad793a8214e8d84a4cfc0c473fdd7df2a4509d7f2f0b120edf4032810 hrs 53 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00133178
0xd4bb6d493ab0a08c5e7b316df3b688938906cb1e4624435117f0c1dd052f504011 hrs ago0x75a91ddaa7ea37fc717aee5e8d61058449b3725b  IN   TAASContract0 Ether0.000407625
0xdc7b519443af0d3bfc5c37690fccfa2856ca2ee2a1c5185db67946866855550711 hrs 7 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00254666
0x16e861f7d3a93efa5d4dc1232800c02ba9e7cb40dff03bdfd3a8c087384f27a713 hrs 10 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00133178
0xc9b18617d35b8ce224d5497b1689d9a7c60814a4951d005c9ecf429d3eaa805713 hrs 10 mins agoliqui.io_Erc20  IN   TAASContract0 Ether0.00133178
0x5376a101cdb3ba226787a804f8151ecd8fb19a18b26fe0266940dfb9bb8b033c13 hrs 49 mins ago0x195650a518b841602dbb6ae6f09c40b608d1fea6  IN   TAASContract0 Ether0.0002254878
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 4 Internal Transactions

ParentTxHash Block Age From To Value
0x89fb2e70a2ee4c5ffc2562a58f0c004fc9e8ec71f4358333d6a1fad78a511fcf502277220 days 2 hrs ago0x0cbd60b5800fdca627fca0cea0406b7805e0161a0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c0.0118430056383481 Ether
0xd3011580626227fcfe180a146a39a557b0f53e7ca0df28ab7dea5f5ad95546c04181731187 days 9 mins ago0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c0xd899c145597897bd9f680ba51c91ebf3389c70cc0.01 Ether
0x858b4970b237b924cd8a3b7262ab5487a484e708221581efebd711637abacddb3572634308 days 9 hrs ago0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c0xd899c145597897bd9f680ba51c91ebf3389c70cc0.1 Ether
0x764fec5b5be77ffc1845417eff3b791fc9edcecab4b53b5623fa513c85c49d683572616308 days 9 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.