ETH Price: $3,140.54 (-8.62%)
Gas: 9 Gwei

Token

CINXO (CINXO)
 

Overview

Max Total Supply

26,265,000 CINXO

Holders

2,405

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
438 CINXO

Value
$0.00
0x634a1B5AE9077Cd12e054388f649E7142234838C
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

CINDX is a Crypto Asset Management Hub. We solve the problems of investors, traders and developers.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChronoBankAssetProxy

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-03-20
*/

// File: contracts/core/platform/ChronoBankPlatformInterface.sol

/**
 * Copyright 2017–2018, LaborX PTY
 * Licensed under the AGPL Version 3 license.
 */

pragma solidity ^0.4.11;


contract ChronoBankPlatformInterface {
    mapping(bytes32 => address) public proxies;

    function symbols(uint _idx) public view returns (bytes32);
    function symbolsCount() public view returns (uint);
    function isCreated(bytes32 _symbol) public view returns(bool);
    function isOwner(address _owner, bytes32 _symbol) public view returns(bool);
    function owner(bytes32 _symbol) public view returns(address);

    function setProxy(address _address, bytes32 _symbol) public returns(uint errorCode);

    function name(bytes32 _symbol) public view returns(string);

    function totalSupply(bytes32 _symbol) public view returns(uint);
    function balanceOf(address _holder, bytes32 _symbol) public view returns(uint);
    function allowance(address _from, address _spender, bytes32 _symbol) public view returns(uint);
    function baseUnit(bytes32 _symbol) public view returns(uint8);
    function description(bytes32 _symbol) public view returns(string);
    function isReissuable(bytes32 _symbol) public view returns(bool);

    function proxyTransferWithReference(address _to, uint _value, bytes32 _symbol, string _reference, address _sender) public returns(uint errorCode);
    function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) public returns(uint errorCode);

    function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) public returns(uint errorCode);

    function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable) public returns(uint errorCode);
    function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable, address _account) public returns(uint errorCode);
    function reissueAsset(bytes32 _symbol, uint _value) public returns(uint errorCode);
    function revokeAsset(bytes32 _symbol, uint _value) public returns(uint errorCode);

    function hasAssetRights(address _owner, bytes32 _symbol) public view returns (bool);
    function changeOwnership(bytes32 _symbol, address _newOwner) public returns(uint errorCode);
    
    function eventsHistory() public view returns (address);
}

// File: contracts/core/platform/ChronoBankAssetInterface.sol

/**
 * Copyright 2017–2018, LaborX PTY
 * Licensed under the AGPL Version 3 license.
 */

pragma solidity ^0.4.21;


contract ChronoBankAssetInterface {
    function __transferWithReference(address _to, uint _value, string _reference, address _sender) public returns (bool);
    function __transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) public returns (bool);
    function __approve(address _spender, uint _value, address _sender) public returns(bool);
    function __process(bytes /*_data*/, address /*_sender*/) public payable {
        revert();
    }
}

// File: contracts/core/erc20/ERC20Interface.sol

/**
 * Copyright 2017–2018, LaborX PTY
 * Licensed under the AGPL Version 3 license.
 */

pragma solidity ^0.4.11;

contract ERC20Interface {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed from, address indexed spender, uint256 value);
    string public symbol;

    function decimals() constant returns (uint8);
    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);
}

// File: contracts/core/platform/ChronoBankAssetProxy.sol

/**
 * Copyright 2017–2018, LaborX PTY
 * Licensed under the AGPL Version 3 license.
 */

pragma solidity ^0.4.21;

contract ERC20 is ERC20Interface {}

contract ChronoBankPlatform is ChronoBankPlatformInterface {}

contract ChronoBankAsset is ChronoBankAssetInterface {}

/// @title ChronoBank Asset Proxy.
///
/// Proxy implements ERC20 interface and acts as a gateway to a single platform asset.
/// Proxy adds symbol and caller(sender) when forwarding requests to platform.
/// Every request that is made by caller first sent to the specific asset implementation
/// contract, which then calls back to be forwarded onto platform.
///
/// Calls flow: Caller ->
///             Proxy.func(...) ->
///             Asset.__func(..., Caller.address) ->
///             Proxy.__func(..., Caller.address) ->
///             Platform.proxyFunc(..., symbol, Caller.address)
///
/// 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 ChronoBankAssetProxy is ERC20 {

    /// @dev Supports ChronoBankPlatform ability to return error codes from methods
    uint constant OK = 1;

    /// @dev Assigned platform, immutable.
    ChronoBankPlatform public chronoBankPlatform;

    /// @dev Assigned symbol, immutable.
    bytes32 public smbl;

    /// @dev Assigned name, immutable.
    string public name;

    /// @dev Assigned symbol (from ERC20 standard), immutable
    string public symbol;

    /// @notice Sets platform address, assigns symbol and name.
    /// Can be set only once.
    /// @param _chronoBankPlatform platform contract address.
    /// @param _symbol assigned symbol.
    /// @param _name assigned name.
    /// @return success.
    function init(ChronoBankPlatform _chronoBankPlatform, string _symbol, string _name) public returns (bool) {
        if (address(chronoBankPlatform) != 0x0) {
            return false;
        }

        chronoBankPlatform = _chronoBankPlatform;
        symbol = _symbol;
        smbl = stringToBytes32(_symbol);
        name = _name;
        return true;
    }

    function stringToBytes32(string memory source) public pure returns (bytes32 result) {
        assembly {
           result := mload(add(source, 32))
        }
    }

    /// @dev Only platform is allowed to call.
    modifier onlyChronoBankPlatform {
        if (msg.sender == address(chronoBankPlatform)) {
            _;
        }
    }

    /// @dev Only current asset owner is allowed to call.
    modifier onlyAssetOwner {
        if (chronoBankPlatform.isOwner(msg.sender, smbl)) {
            _;
        }
    }

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

    /// @notice Returns asset total supply.
    /// @return asset total supply.
    function totalSupply() public view returns (uint) {
        return chronoBankPlatform.totalSupply(smbl);
    }

    /// @notice Returns asset balance for a particular holder.
    /// @param _owner holder address.
    /// @return holder balance.
    function balanceOf(address _owner) public view returns (uint) {
        return chronoBankPlatform.balanceOf(_owner, smbl);
    }

    /// @notice 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) public view returns (uint) {
        return chronoBankPlatform.allowance(_from, _spender, smbl);
    }

    /// @notice Returns asset decimals.
    /// @return asset decimals.
    function decimals() public view returns (uint8) {
        return chronoBankPlatform.baseUnit(smbl);
    }

    /// @notice 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) public returns (bool) {
        if (_to != 0x0) {
            return _transferWithReference(_to, _value, "");
        }
    }

    /// @notice Transfers asset balance from the caller to specified receiver adding specified comment.
    /// @param _to holder address to give to.
    /// @param _value amount to transfer.
    /// @param _reference transfer comment to be included in a platform's Transfer event.
    /// @return success.
    function transferWithReference(address _to, uint _value, string _reference) public returns (bool) {
        if (_to != 0x0) {
            return _transferWithReference(_to, _value, _reference);
        }
    }

    /// @notice Resolves asset implementation contract for the caller and forwards there arguments along with
    /// the caller address.
    /// @return success.
    function _transferWithReference(address _to, uint _value, string _reference) internal returns (bool) {
        return _getAsset().__transferWithReference(_to, _value, _reference, msg.sender);
    }

    /// @notice Performs transfer call on the platform by the name of specified sender.
    ///
    /// Can only be called by asset implementation contract assigned to sender.
    ///
    /// @param _to holder address to give to.
    /// @param _value amount to transfer.
    /// @param _reference transfer comment to be included in a platform's Transfer event.
    /// @param _sender initial caller.
    ///
    /// @return success.
    function __transferWithReference(
        address _to, 
        uint _value, 
        string _reference, 
        address _sender
    ) 
    onlyAccess(_sender) 
    public 
    returns (bool) 
    {
        return chronoBankPlatform.proxyTransferWithReference(_to, _value, smbl, _reference, _sender) == OK;
    }

    /// @notice Performs 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) public returns (bool) {
        if (_to != 0x0) {
            return _getAsset().__transferFromWithReference(_from, _to, _value, "", msg.sender);
        }
    }

    /// @notice Performs allowance transfer call on the platform 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 platform's Transfer event.
    /// @param _sender initial caller.
    ///
    /// @return success.
    function __transferFromWithReference(
        address _from, 
        address _to, 
        uint _value, 
        string _reference, 
        address _sender
    ) 
    onlyAccess(_sender) 
    public 
    returns (bool) 
    {
        return chronoBankPlatform.proxyTransferFromWithReference(_from, _to, _value, smbl, _reference, _sender) == OK;
    }

    /// @notice Sets asset spending allowance for a specified spender.
    /// @param _spender holder address to set allowance to.
    /// @param _value amount to allow.
    /// @return success.
    function approve(address _spender, uint _value) public returns (bool) {
        if (_spender != 0x0) {
            return _getAsset().__approve(_spender, _value, msg.sender);
        }
    }

    /// @notice Performs allowance setting call on the platform 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 __approve(address _spender, uint _value, address _sender) onlyAccess(_sender) public returns (bool) {
        return chronoBankPlatform.proxyApprove(_spender, _value, smbl, _sender) == OK;
    }

    /// @notice Emits ERC20 Transfer event on this contract.
    /// Can only be, and, called by assigned platform when asset transfer happens.
    function emitTransfer(address _from, address _to, uint _value) onlyChronoBankPlatform public {
        emit Transfer(_from, _to, _value);
    }

    /// @notice Emits ERC20 Approval event on this contract.
    /// Can only be, and, called by assigned platform when asset allowance set happens.
    function emitApprove(address _from, address _spender, uint _value) onlyChronoBankPlatform public {
        emit Approval(_from, _spender, _value);
    }

    /// @notice Resolves asset implementation contract for the caller and forwards there transaction data,
    /// along with the value. This allows for proxy interface growth.
    function () public payable {
        _getAsset().__process.value(msg.value)(msg.data, msg.sender);
    }

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

    /// @dev Current asset implementation contract address.
    address latestVersion;

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

    /// @dev Upgrade freeze-time start.
    uint pendingVersionTimestamp;

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

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

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

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

    /// @notice Returns current asset implementation contract address.
    /// @return asset implementation contract address.
    function getLatestVersion() public view returns (address) {
        return latestVersion;
    }

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

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

    /// @notice 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 public 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;

        emit UpgradeProposal(_newVersion);
        return true;
    }

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

        delete pendingVersion;
        delete pendingVersionTimestamp;
        return true;
    }

    /// @notice Finalize an upgrade process setting new asset implementation contract address.
    /// Can only be called after an upgrade freeze-time.
    /// @return success.
    function commitUpgrade() public returns (bool) {
        if (pendingVersion == 0x0) {
            return false;
        }

        if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) {
            return false;
        }

        latestVersion = pendingVersion;
        delete pendingVersion;
        delete pendingVersionTimestamp;
        return true;
    }

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

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"commitUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getLatestVersion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chronoBankPlatform","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersionTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"purgeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"optIn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"__transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"__approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPendingVersion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_chronoBankPlatform","type":"address"},{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"init","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newVersion","type":"address"}],"name":"proposeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"smbl","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"source","type":"string"}],"name":"stringToBytes32","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"optOut","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"__transferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"getVersionFor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","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"}]

6060604052341561000f57600080fd5b61156b8061001e6000396000f3006060604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101de578063095ea7b3146102685780630ba12c831461029e5780630e6d1de9146102b157806318160ddd146102e0578063233850891461030557806323b872dd1461032f57806323de665114610357578063313ce5671461037f57806349752baf146103a85780634bfaf2e8146103bb5780634dfe950d146103ce5780635b48684e146103e15780636a630ee7146103f457806370a08231146104645780637b7054c81461048357806395d89b41146104ac578063a883fb90146104bf578063a9059cbb146104d2578063ac35caee146104f4578063b2b45df514610559578063c915fc93146105fa578063cb4e75bb14610619578063cfb519281461062c578063d4eec5a61461067d578063dd62ed3e14610690578063ec698a28146106b5578063fe8beb711461072c575b61015861074b565b600160a060020a031663f2d6e0ab346000363360405160e060020a63ffffffff8716028152600160a060020a03821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b15156101cb57600080fd5b5af115156101d857600080fd5b50505050005b34156101e957600080fd5b6101f161075c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022d578082015183820152602001610215565b50505050905090810190601f16801561025a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027357600080fd5b61028a600160a060020a03600435166024356107fa565b604051901515815260200160405180910390f35b34156102a957600080fd5b61028a610891565b34156102bc57600080fd5b6102c46108f5565b604051600160a060020a03909116815260200160405180910390f35b34156102eb57600080fd5b6102f3610904565b60405190815260200160405180910390f35b341561031057600080fd5b61032d600160a060020a036004358116906024351660443561096e565b005b341561033a57600080fd5b61028a600160a060020a03600435811690602435166044356109d2565b341561036257600080fd5b61032d600160a060020a0360043581169060243516604435610a81565b341561038a57600080fd5b610392610ae4565b60405160ff909116815260200160405180910390f35b34156103b357600080fd5b6102c4610b33565b34156103c657600080fd5b6102f3610b42565b34156103d957600080fd5b61028a610b48565b34156103ec57600080fd5b61028a610bf7565b34156103ff57600080fd5b61028a60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250610c22915050565b341561046f57600080fd5b6102f3600160a060020a0360043516610d51565b341561048e57600080fd5b61028a600160a060020a036004358116906024359060443516610dcd565b34156104b757600080fd5b6101f1610e89565b34156104ca57600080fd5b6102c4610ef4565b34156104dd57600080fd5b61028a600160a060020a0360043516602435610f03565b34156104ff57600080fd5b61028a60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f3495505050505050565b341561056457600080fd5b61028a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610f5795505050505050565b341561060557600080fd5b61028a600160a060020a0360043516610fcc565b341561062457600080fd5b6102f3611110565b341561063757600080fd5b6102f360046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061111695505050505050565b341561068857600080fd5b61028a611123565b341561069b57600080fd5b6102f3600160a060020a0360043581169060243516611183565b34156106c057600080fd5b61028a600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061120c915050565b341561073757600080fd5b6102c4600160a060020a0360043516611347565b600061075633611347565b90505b90565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b6000600160a060020a0383161561088b5761081361074b565b600160a060020a0316637b7054c884843360405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561087257600080fd5b5af1151561087f57600080fd5b50505060405180519150505b92915050565b600654600090600160a060020a031615156108ae57506000610759565b426203f4806007540111156108c557506000610759565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254600091600160a060020a03169063b524abcf9060405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561095357600080fd5b5af1151561096057600080fd5b505050604051805191505090565b60015433600160a060020a03908116911614156109cd5781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b505050565b6000600160a060020a03831615610a7a576109eb61074b565b600160a060020a031663ec698a288585853360405160e060020a63ffffffff8716028152600160a060020a03948516600482015292841660248401526044830191909152909116608482015260a06064820152600060a482015260e401602060405180830381600087803b1515610a6157600080fd5b5af11515610a6e57600080fd5b50505060405180519150505b9392505050565b60015433600160a060020a03908116911614156109cd5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b600154600254600091600160a060020a03169063dc86e6f09060405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561095357600080fd5b600154600160a060020a031681565b60075490565b600154600254600091600160a060020a03169063e96b462a90339060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ba657600080fd5b5af11515610bb357600080fd5b505050604051805190501561075957600654600160a060020a03161515610bdc57506000610759565b5060068054600160a060020a03191690556000600755600190565b600160a060020a03331660009081526008602052604090208054600160a060020a0319169055600190565b60008133600160a060020a0316610c3882611347565b600160a060020a03161415610d485760018054600254600160a060020a03909116906357a96dd09089908990898960405160e060020a63ffffffff8816028152600160a060020a03808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015610cde578082015183820152602001610cc6565b50505050905090810190601f168015610d0b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515610d2d57600080fd5b5af11515610d3a57600080fd5b505050604051805190501491505b50949350505050565b600154600254600091600160a060020a031690634d30b6be90849060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610daf57600080fd5b5af11515610dbc57600080fd5b50505060405180519150505b919050565b60008133600160a060020a0316610de382611347565b600160a060020a03161415610e815760018054600254600160a060020a03909116906314712e2f90889088908860405160e060020a63ffffffff8716028152600160a060020a039485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515610e6657600080fd5b5af11515610e7357600080fd5b505050604051805190501491505b509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f25780601f106107c7576101008083540402835291602001916107f2565b600654600160a060020a031690565b6000600160a060020a0383161561088b57610f2d838360206040519081016040526000815261139a565b905061088b565b6000600160a060020a03841615610a7a57610f5084848461139a565b9050610a7a565b600154600090600160a060020a031615610f7357506000610a7a565b60018054600160a060020a031916600160a060020a0386161790556004838051610fa19291602001906114a7565b50610fab83611116565b6002556003828051610fc19291602001906114a7565b506001949350505050565b600154600254600091600160a060020a03169063e96b462a90339060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561102a57600080fd5b5af1151561103757600080fd5b5050506040518051905015610dc857600654600160a060020a03161561105f57506000610dc8565b600160a060020a038216151561107757506000610dc8565b600554600160a060020a031615156110ac575060058054600160a060020a031916600160a060020a0383161790556001610dc8565b60068054600160a060020a031916600160a060020a038416179055426007557faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a82604051600160a060020a03909116815260200160405180910390a1506001919050565b60025481565b6000602082015192915050565b600160a060020a033381166000908152600860205260408120549091161561114d57506000610759565b5060055433600160a060020a0390811660009081526008602052604090208054600160a060020a03191691909216179055600190565b600154600254600091600160a060020a031690631c8d5d38908590859060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156111ef57600080fd5b5af115156111fc57600080fd5b5050506040518051949350505050565b60008133600160a060020a031661122282611347565b600160a060020a0316141561133d5760018054600254600160a060020a039091169063161ff662908a908a908a908a8a60405160e060020a63ffffffff8916028152600160a060020a03808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b838110156112d25780820151838201526020016112ba565b50505050905090810190601f1680156112ff5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b151561132257600080fd5b5af1151561132f57600080fd5b505050604051805190501491505b5095945050505050565b600160a060020a038082166000908152600860205260408120549091161561138957600160a060020a038083166000908152600860205260409020541661088b565b5050600554600160a060020a031690565b60006113a461074b565b600160a060020a0316636a630ee7858585336040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b8381101561143b578082015183820152602001611423565b50505050905090810190601f1680156114685780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561148957600080fd5b5af1151561149657600080fd5b505050604051805195945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114e857805160ff1916838001178555611515565b82800160010185558215611515579182015b828111156115155782518255916020019190600101906114fa565b50611521929150611525565b5090565b61075991905b80821115611521576000815560010161152b5600a165627a7a72305820d627f9233783011d174b5b75893c488ad68aa8a4131a30e94603f061735b9afc0029

Deployed Bytecode

0x6060604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101de578063095ea7b3146102685780630ba12c831461029e5780630e6d1de9146102b157806318160ddd146102e0578063233850891461030557806323b872dd1461032f57806323de665114610357578063313ce5671461037f57806349752baf146103a85780634bfaf2e8146103bb5780634dfe950d146103ce5780635b48684e146103e15780636a630ee7146103f457806370a08231146104645780637b7054c81461048357806395d89b41146104ac578063a883fb90146104bf578063a9059cbb146104d2578063ac35caee146104f4578063b2b45df514610559578063c915fc93146105fa578063cb4e75bb14610619578063cfb519281461062c578063d4eec5a61461067d578063dd62ed3e14610690578063ec698a28146106b5578063fe8beb711461072c575b61015861074b565b600160a060020a031663f2d6e0ab346000363360405160e060020a63ffffffff8716028152600160a060020a03821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b15156101cb57600080fd5b5af115156101d857600080fd5b50505050005b34156101e957600080fd5b6101f161075c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022d578082015183820152602001610215565b50505050905090810190601f16801561025a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027357600080fd5b61028a600160a060020a03600435166024356107fa565b604051901515815260200160405180910390f35b34156102a957600080fd5b61028a610891565b34156102bc57600080fd5b6102c46108f5565b604051600160a060020a03909116815260200160405180910390f35b34156102eb57600080fd5b6102f3610904565b60405190815260200160405180910390f35b341561031057600080fd5b61032d600160a060020a036004358116906024351660443561096e565b005b341561033a57600080fd5b61028a600160a060020a03600435811690602435166044356109d2565b341561036257600080fd5b61032d600160a060020a0360043581169060243516604435610a81565b341561038a57600080fd5b610392610ae4565b60405160ff909116815260200160405180910390f35b34156103b357600080fd5b6102c4610b33565b34156103c657600080fd5b6102f3610b42565b34156103d957600080fd5b61028a610b48565b34156103ec57600080fd5b61028a610bf7565b34156103ff57600080fd5b61028a60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250610c22915050565b341561046f57600080fd5b6102f3600160a060020a0360043516610d51565b341561048e57600080fd5b61028a600160a060020a036004358116906024359060443516610dcd565b34156104b757600080fd5b6101f1610e89565b34156104ca57600080fd5b6102c4610ef4565b34156104dd57600080fd5b61028a600160a060020a0360043516602435610f03565b34156104ff57600080fd5b61028a60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f3495505050505050565b341561056457600080fd5b61028a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610f5795505050505050565b341561060557600080fd5b61028a600160a060020a0360043516610fcc565b341561062457600080fd5b6102f3611110565b341561063757600080fd5b6102f360046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061111695505050505050565b341561068857600080fd5b61028a611123565b341561069b57600080fd5b6102f3600160a060020a0360043581169060243516611183565b34156106c057600080fd5b61028a600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061120c915050565b341561073757600080fd5b6102c4600160a060020a0360043516611347565b600061075633611347565b90505b90565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b6000600160a060020a0383161561088b5761081361074b565b600160a060020a0316637b7054c884843360405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561087257600080fd5b5af1151561087f57600080fd5b50505060405180519150505b92915050565b600654600090600160a060020a031615156108ae57506000610759565b426203f4806007540111156108c557506000610759565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254600091600160a060020a03169063b524abcf9060405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561095357600080fd5b5af1151561096057600080fd5b505050604051805191505090565b60015433600160a060020a03908116911614156109cd5781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b505050565b6000600160a060020a03831615610a7a576109eb61074b565b600160a060020a031663ec698a288585853360405160e060020a63ffffffff8716028152600160a060020a03948516600482015292841660248401526044830191909152909116608482015260a06064820152600060a482015260e401602060405180830381600087803b1515610a6157600080fd5b5af11515610a6e57600080fd5b50505060405180519150505b9392505050565b60015433600160a060020a03908116911614156109cd5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b600154600254600091600160a060020a03169063dc86e6f09060405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561095357600080fd5b600154600160a060020a031681565b60075490565b600154600254600091600160a060020a03169063e96b462a90339060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ba657600080fd5b5af11515610bb357600080fd5b505050604051805190501561075957600654600160a060020a03161515610bdc57506000610759565b5060068054600160a060020a03191690556000600755600190565b600160a060020a03331660009081526008602052604090208054600160a060020a0319169055600190565b60008133600160a060020a0316610c3882611347565b600160a060020a03161415610d485760018054600254600160a060020a03909116906357a96dd09089908990898960405160e060020a63ffffffff8816028152600160a060020a03808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015610cde578082015183820152602001610cc6565b50505050905090810190601f168015610d0b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515610d2d57600080fd5b5af11515610d3a57600080fd5b505050604051805190501491505b50949350505050565b600154600254600091600160a060020a031690634d30b6be90849060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610daf57600080fd5b5af11515610dbc57600080fd5b50505060405180519150505b919050565b60008133600160a060020a0316610de382611347565b600160a060020a03161415610e815760018054600254600160a060020a03909116906314712e2f90889088908860405160e060020a63ffffffff8716028152600160a060020a039485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515610e6657600080fd5b5af11515610e7357600080fd5b505050604051805190501491505b509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f25780601f106107c7576101008083540402835291602001916107f2565b600654600160a060020a031690565b6000600160a060020a0383161561088b57610f2d838360206040519081016040526000815261139a565b905061088b565b6000600160a060020a03841615610a7a57610f5084848461139a565b9050610a7a565b600154600090600160a060020a031615610f7357506000610a7a565b60018054600160a060020a031916600160a060020a0386161790556004838051610fa19291602001906114a7565b50610fab83611116565b6002556003828051610fc19291602001906114a7565b506001949350505050565b600154600254600091600160a060020a03169063e96b462a90339060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561102a57600080fd5b5af1151561103757600080fd5b5050506040518051905015610dc857600654600160a060020a03161561105f57506000610dc8565b600160a060020a038216151561107757506000610dc8565b600554600160a060020a031615156110ac575060058054600160a060020a031916600160a060020a0383161790556001610dc8565b60068054600160a060020a031916600160a060020a038416179055426007557faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a82604051600160a060020a03909116815260200160405180910390a1506001919050565b60025481565b6000602082015192915050565b600160a060020a033381166000908152600860205260408120549091161561114d57506000610759565b5060055433600160a060020a0390811660009081526008602052604090208054600160a060020a03191691909216179055600190565b600154600254600091600160a060020a031690631c8d5d38908590859060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156111ef57600080fd5b5af115156111fc57600080fd5b5050506040518051949350505050565b60008133600160a060020a031661122282611347565b600160a060020a0316141561133d5760018054600254600160a060020a039091169063161ff662908a908a908a908a8a60405160e060020a63ffffffff8916028152600160a060020a03808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b838110156112d25780820151838201526020016112ba565b50505050905090810190601f1680156112ff5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b151561132257600080fd5b5af1151561132f57600080fd5b505050604051805190501491505b5095945050505050565b600160a060020a038082166000908152600860205260408120549091161561138957600160a060020a038083166000908152600860205260409020541661088b565b5050600554600160a060020a031690565b60006113a461074b565b600160a060020a0316636a630ee7858585336040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b8381101561143b578082015183820152602001611423565b50505050905090810190601f1680156114685780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561148957600080fd5b5af1151561149657600080fd5b505050604051805195945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114e857805160ff1916838001178555611515565b82800160010185558215611515579182015b828111156115155782518255916020019190600101906114fa565b50611521929150611525565b5090565b61075991905b80821115611521576000815560010161152b5600a165627a7a72305820d627f9233783011d174b5b75893c488ad68aa8a4131a30e94603f061735b9afc0029

Swarm Source

bzzr://d627f9233783011d174b5b75893c488ad68aa8a4131a30e94603f061735b9afc
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.