ERC-20
Overview
Max Total Supply
100,000 HNTR
Holders
173
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
3.84219073 HNTRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract contains unverified libraries: ChronoBankAssetUtils
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
ChronoBankAssetProxy
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-15 */ // File: @laborx/solidity-shared-lib/contracts/ERC20Interface.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.23; /// @title Defines an interface for EIP20 token smart contract 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() public view returns (uint8); function totalSupply() public view returns (uint256 supply); function balanceOf(address _owner) public view returns (uint256 balance); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); function allowance(address _owner, address _spender) public view returns (uint256 remaining); } // File: @laborx/solidity-eventshistory-lib/contracts/EventsHistorySourceAdapter.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.21; /** * @title EventsHistory Source Adapter. */ contract EventsHistorySourceAdapter { // It is address of MultiEventsHistory caller assuming we are inside of delegate call. function _self() internal view returns (address) { return msg.sender; } } // File: @laborx/solidity-eventshistory-lib/contracts/MultiEventsHistoryAdapter.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.21; /** * @title General MultiEventsHistory user. */ contract MultiEventsHistoryAdapter is EventsHistorySourceAdapter { address internal localEventsHistory; event ErrorCode(address indexed self, uint errorCode); function getEventsHistory() public view returns (address) { address _eventsHistory = localEventsHistory; return _eventsHistory != 0x0 ? _eventsHistory : this; } function emitErrorCode(uint _errorCode) public { emit ErrorCode(_self(), _errorCode); } function _setEventsHistory(address _eventsHistory) internal returns (bool) { localEventsHistory = _eventsHistory; return true; } function _emitErrorCode(uint _errorCode) internal returns (uint) { MultiEventsHistoryAdapter(getEventsHistory()).emitErrorCode(_errorCode); return _errorCode; } } // File: contracts/ChronoBankPlatformEmitter.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.21; /// @title ChronoBank Platform Emitter. /// /// Contains all the original event emitting function definitions and events. /// In case of new events needed later, additional emitters can be developed. /// All the functions is meant to be called using delegatecall. contract ChronoBankPlatformEmitter is MultiEventsHistoryAdapter { event Transfer(address indexed from, address indexed to, bytes32 indexed symbol, uint value, string reference); event Issue(bytes32 indexed symbol, uint value, address indexed by); event Revoke(bytes32 indexed symbol, uint value, address indexed by); event RevokeExternal(bytes32 indexed symbol, uint value, address indexed by, string externalReference); event OwnershipChange(address indexed from, address indexed to, bytes32 indexed symbol); event Approve(address indexed from, address indexed spender, bytes32 indexed symbol, uint value); event Recovery(address indexed from, address indexed to, address by); function emitTransfer(address _from, address _to, bytes32 _symbol, uint _value, string _reference) public { emit Transfer(_from, _to, _symbol, _value, _reference); } function emitIssue(bytes32 _symbol, uint _value, address _by) public { emit Issue(_symbol, _value, _by); } function emitRevoke(bytes32 _symbol, uint _value, address _by) public { emit Revoke(_symbol, _value, _by); } function emitRevokeExternal(bytes32 _symbol, uint _value, address _by, string _externalReference) public { emit RevokeExternal(_symbol, _value, _by, _externalReference); } function emitOwnershipChange(address _from, address _to, bytes32 _symbol) public { emit OwnershipChange(_from, _to, _symbol); } function emitApprove(address _from, address _spender, bytes32 _symbol, uint _value) public { emit Approve(_from, _spender, _symbol, _value); } function emitRecovery(address _from, address _to, address _by) public { emit Recovery(_from, _to, _by); } } // File: contracts/ChronoBankPlatformInterface.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.11; contract ChronoBankPlatformInterface is ChronoBankPlatformEmitter { 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 blockNumber(bytes32 _symbol) public view returns (uint); 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, uint _blockNumber) public returns(uint errorCode); function issueAssetWithInitialReceiver(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable, uint _blockNumber, address _account) public returns(uint errorCode); function reissueAsset(bytes32 _symbol, uint _value) public returns(uint errorCode); function reissueAssetToRecepient(bytes32 _symbol, uint _value, address _to) public returns (uint); function revokeAsset(bytes32 _symbol, uint _value) public returns(uint errorCode); function revokeAssetWithExternalReference(bytes32 _symbol, uint _value, string _externalReference) public returns (uint); function hasAssetRights(address _owner, bytes32 _symbol) public view returns (bool); function isDesignatedAssetManager(address _account, bytes32 _symbol) public view returns (bool); function changeOwnership(bytes32 _symbol, address _newOwner) public returns(uint errorCode); } // File: contracts/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("ASSET_PROCESS_NOT_SUPPORTED"); } } // File: contracts/assets/ChronoBankAssetChainableInterface.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.24; contract ChronoBankAssetChainableInterface { function assetType() public pure returns (bytes32); function getPreviousAsset() public view returns (ChronoBankAssetChainableInterface); function getNextAsset() public view returns (ChronoBankAssetChainableInterface); function getChainedAssets() public view returns (bytes32[] _types, address[] _assets); function getAssetByType(bytes32 _assetType) public view returns (address); function chainAssets(ChronoBankAssetChainableInterface[] _assets) external returns (bool); function __chainAssetsFromIdx(ChronoBankAssetChainableInterface[] _assets, uint _startFromIdx) external returns (bool); function finalizeAssetChaining() public; } // File: contracts/assets/ChronoBankAssetUtils.sol /** * Copyright 2017–2018, LaborX PTY * Licensed under the AGPL Version 3 license. */ pragma solidity ^0.4.24; library ChronoBankAssetUtils { uint constant ASSETS_CHAIN_MAX_LENGTH = 20; function getChainedAssets(ChronoBankAssetChainableInterface _asset) public view returns (bytes32[] _types, address[] _assets) { bytes32[] memory _tempTypes = new bytes32[](ASSETS_CHAIN_MAX_LENGTH); address[] memory _tempAssets = new address[](ASSETS_CHAIN_MAX_LENGTH); ChronoBankAssetChainableInterface _next = getHeadAsset(_asset); uint _counter = 0; do { _tempTypes[_counter] = _next.assetType(); _tempAssets[_counter] = address(_next); _counter += 1; _next = _next.getNextAsset(); } while (address(_next) != 0x0); _types = new bytes32[](_counter); _assets = new address[](_counter); for (uint _assetIdx = 0; _assetIdx < _counter; ++_assetIdx) { _types[_assetIdx] = _tempTypes[_assetIdx]; _assets[_assetIdx] = _tempAssets[_assetIdx]; } } function getAssetByType(ChronoBankAssetChainableInterface _asset, bytes32 _assetType) public view returns (address) { ChronoBankAssetChainableInterface _next = getHeadAsset(_asset); do { if (_next.assetType() == _assetType) { return address(_next); } _next = _next.getNextAsset(); } while (address(_next) != 0x0); } function containsAssetInChain(ChronoBankAssetChainableInterface _asset, address _checkAsset) public view returns (bool) { ChronoBankAssetChainableInterface _next = getHeadAsset(_asset); do { if (address(_next) == _checkAsset) { return true; } _next = _next.getNextAsset(); } while (address(_next) != 0x0); } function getHeadAsset(ChronoBankAssetChainableInterface _asset) public view returns (ChronoBankAssetChainableInterface) { ChronoBankAssetChainableInterface _head = _asset; ChronoBankAssetChainableInterface _previousAsset; do { _previousAsset = _head.getPreviousAsset(); if (address(_previousAsset) == 0x0) { return _head; } _head = _previousAsset; } while (true); } } // File: contracts/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) { address _versionFor = getVersionFor(_sender); if (msg.sender == _versionFor || ChronoBankAssetUtils.containsAssetInChain(ChronoBankAssetChainableInterface(_versionFor), 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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405234801561001057600080fd5b506118e4806100206000396000f3006080604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101f0578063095ea7b31461027a5780630ba12c83146102b25780630e6d1de9146102c757806318160ddd146102f8578063233850891461031f57806323b872dd1461034b57806323de665114610375578063313ce5671461039f57806349752baf146103ca5780634bfaf2e8146103df5780634dfe950d146103f45780635b48684e146104095780636a630ee71461041e57806370a08231146104925780637b7054c8146104b357806395d89b41146104de578063a883fb90146104f3578063a9059cbb14610508578063ac35caee1461052c578063b2b45df514610595578063c915fc931461063a578063cb4e75bb1461065b578063cfb5192814610670578063d4eec5a6146106c9578063dd62ed3e146106de578063ec698a2814610705578063fe8beb711461077f575b6101586107a0565b600160a060020a031663f2d6e0ab34600036336040518563ffffffff1660e060020a028152600401808060200183600160a060020a0316600160a060020a03168152602001828103825285858281815260200192508082843782019150509450505050506000604051808303818588803b1580156101d557600080fd5b505af11580156101e9573d6000803e3d6000fd5b5050505050005b3480156101fc57600080fd5b506102056107b1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023f578181015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028657600080fd5b5061029e600160a060020a036004351660243561083f565b604080519115158252519081900360200190f35b3480156102be57600080fd5b5061029e610900565b3480156102d357600080fd5b506102dc610964565b60408051600160a060020a039092168252519081900360200190f35b34801561030457600080fd5b5061030d610973565b60408051918252519081900360200190f35b34801561032b57600080fd5b50610349600160a060020a0360043581169060243516604435610a0d565b005b34801561035757600080fd5b5061029e600160a060020a0360043581169060243516604435610a71565b34801561038157600080fd5b50610349600160a060020a0360043581169060243516604435610b4a565b3480156103ab57600080fd5b506103b4610bad565b6040805160ff9092168252519081900360200190f35b3480156103d657600080fd5b506102dc610c16565b3480156103eb57600080fd5b5061030d610c25565b34801561040057600080fd5b5061029e610c2b565b34801561041557600080fd5b5061029e610d00565b34801561042a57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261029e948235600160a060020a031694602480359536959460649492019190819084018382808284375094975050509235600160a060020a03169350610d2292505050565b34801561049e57600080fd5b5061030d600160a060020a0360043516610f22565b3480156104bf57600080fd5b5061029e600160a060020a036004358116906024359060443516610fcc565b3480156104ea57600080fd5b50610205611155565b3480156104ff57600080fd5b506102dc6111b0565b34801561051457600080fd5b5061029e600160a060020a03600435166024356111bf565b34801561053857600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261029e948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506111f29650505050505050565b3480156105a157600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261029e958335600160a060020a031695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506112159650505050505050565b34801561064657600080fd5b5061029e600160a060020a036004351661128a565b34801561066757600080fd5b5061030d6113ed565b34801561067c57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d9436949293602493928401919081908401838280828437509497506113f39650505050505050565b3480156106d557600080fd5b5061029e6113fa565b3480156106ea57600080fd5b5061030d600160a060020a0360043581169060243516611455565b34801561071157600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261029e94600160a060020a03813581169560248035909216956044359536956084940191819084018382808284375094975050509235600160a060020a031693506114d392505050565b34801561078b57600080fd5b506102dc600160a060020a03600435166116dd565b60006107ab336116dd565b90505b90565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b505050505081565b6000600160a060020a038316156108fa576108586107a0565b604080517f7b7054c8000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820186905233604483015291519290911691637b7054c8916064808201926020929091908290030181600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b505050506040513d60208110156108f557600080fd5b505190505b92915050565b600654600090600160a060020a0316151561091d575060006107ae565b426203f480600754011115610934575060006107ae565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254604080517fb524abcf000000000000000000000000000000000000000000000000000000008152600481019290925251600092600160a060020a03169163b524abcf91602480830192602092919082900301818787803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b5051905090565b600154600160a060020a0316331415610a6c5781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b505050565b6000600160a060020a03831615610b4357610a8a6107a0565b604080517fec698a28000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015286811660248301526044820186905233608483015260a06064830152600060a48301819052925193169263ec698a289260e480840193602093929083900390910190829087803b158015610b1457600080fd5b505af1158015610b28573d6000803e3d6000fd5b505050506040513d6020811015610b3e57600080fd5b505190505b9392505050565b600154600160a060020a0316331415610a6c5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600154600254604080517fdc86e6f0000000000000000000000000000000000000000000000000000000008152600481019290925251600092600160a060020a03169163dc86e6f091602480830192602092919082900301818787803b1580156109dc57600080fd5b600154600160a060020a031681565b60075490565b600154600254604080517fe96b462a000000000000000000000000000000000000000000000000000000008152336004820152602481019290925251600092600160a060020a03169163e96b462a91604480830192602092919082900301818787803b158015610c9a57600080fd5b505af1158015610cae573d6000803e3d6000fd5b505050506040513d6020811015610cc457600080fd5b5051156107ae57600654600160a060020a03161515610ce5575060006107ae565b5060068054600160a060020a03191690556000600755600190565b3360009081526008602052604090208054600160a060020a0319169055600190565b6000816000610d30826116dd565b905033600160a060020a0382161480610dea5750604080517f36b70e8a000000000000000000000000000000000000000000000000000000008152600160a060020a03831660048201523360248201529051731c1d1d619e1f0e09ffe03cc33d5e7589191c6cfc916336b70e8a916044808301926020929190829003018186803b158015610dbd57600080fd5b505af4158015610dd1573d6000803e3d6000fd5b505050506040513d6020811015610de757600080fd5b50515b15610f1857600180546002546040517f57a96dd0000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301908152602483018c905260448301849052898216608484015260a0606484019081528b5160a48501528b5192909516946357a96dd0948e948e9491938e938e939192909160c490910190602086019080838360005b83811015610e98578181015183820152602001610e80565b50505050905090810190601f168015610ec55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050506040513d6020811015610f1257600080fd5b50511492505b5050949350505050565b600154600254604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290516000939290921691634d30b6be9160448082019260209290919082900301818787803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d6020811015610fc257600080fd5b505190505b919050565b6000816000610fda826116dd565b905033600160a060020a03821614806110945750604080517f36b70e8a000000000000000000000000000000000000000000000000000000008152600160a060020a03831660048201523360248201529051731c1d1d619e1f0e09ffe03cc33d5e7589191c6cfc916336b70e8a916044808301926020929190829003018186803b15801561106757600080fd5b505af415801561107b573d6000803e3d6000fd5b505050506040513d602081101561109157600080fd5b50515b1561114c5760018054600254604080517f14712e2f000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018b905260448201939093528883166064820152905191909216916314712e2f9160848083019260209291908290030181600087803b15801561111c57600080fd5b505af1158015611130573d6000803e3d6000fd5b505050506040513d602081101561114657600080fd5b50511492505b50509392505050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b600654600160a060020a031690565b6000600160a060020a038316156108fa576111eb83836020604051908101604052806000815250611730565b90506108fa565b6000600160a060020a03841615610b435761120e848484611730565b9050610b43565b600154600090600160a060020a03161561123157506000610b43565b60018054600160a060020a031916600160a060020a038616179055825161125f906004906020860190611820565b50611269836113f3565b600255815161127f906003906020850190611820565b506001949350505050565b600154600254604080517fe96b462a000000000000000000000000000000000000000000000000000000008152336004820152602481019290925251600092600160a060020a03169163e96b462a91604480830192602092919082900301818787803b1580156112f957600080fd5b505af115801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b505115610fc757600654600160a060020a03161561134357506000610fc7565b600160a060020a038216151561135b57506000610fc7565b600554600160a060020a03161515611390575060058054600160a060020a031916600160a060020a0383161790556001610fc7565b60068054600160a060020a038416600160a060020a031990911681179091554260075560408051918252517faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a9181900360200190a1506001919050565b60025481565b6020015190565b33600090815260086020526040812054600160a060020a031615611420575060006107ae565b506005543360009081526008602052604090208054600160a060020a031916600160a060020a03909216919091179055600190565b600154600254604080517f1c8d5d38000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528581166024830152604482019390935290516000939290921691631c8d5d389160648082019260209290919082900301818787803b1580156108cb57600080fd5b60008160006114e1826116dd565b905033600160a060020a038216148061159b5750604080517f36b70e8a000000000000000000000000000000000000000000000000000000008152600160a060020a03831660048201523360248201529051731c1d1d619e1f0e09ffe03cc33d5e7589191c6cfc916336b70e8a916044808301926020929190829003018186803b15801561156e57600080fd5b505af4158015611582573d6000803e3d6000fd5b505050506040513d602081101561159857600080fd5b50515b156116d257600180546002546040517f161ff662000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483019081528c82166024840152604483018c90526064830184905289821660a484015260c0608484019081528b5160c48501528b51929095169463161ff662948f948f948f9492938f938f93909260e490910190602086019080838360005b83811015611651578181015183820152602001611639565b50505050905090810190601f16801561167e5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1580156116a257600080fd5b505af11580156116b6573d6000803e3d6000fd5b505050506040513d60208110156116cc57600080fd5b50511492505b505095945050505050565b600160a060020a038082166000908152600860205260408120549091161561171f57600160a060020a03808316600090815260086020526040902054166108fa565b5050600554600160a060020a031690565b600061173a6107a0565b600160a060020a0316636a630ee7858585336040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b838110156117d15781810151838201526020016117b9565b50505050905090810190601f1680156117fe5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b1457600080fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061186157805160ff191683800117855561188e565b8280016001018555821561188e579182015b8281111561188e578251825591602001919060010190611873565b5061189a92915061189e565b5090565b6107ae91905b8082111561189a57600081556001016118a45600a165627a7a723058207f8379470d314fcc09de03667be54e45b86b588551e08aeee0084624f9eaba7b0029
Deployed Bytecode
0x6080604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101f0578063095ea7b31461027a5780630ba12c83146102b25780630e6d1de9146102c757806318160ddd146102f8578063233850891461031f57806323b872dd1461034b57806323de665114610375578063313ce5671461039f57806349752baf146103ca5780634bfaf2e8146103df5780634dfe950d146103f45780635b48684e146104095780636a630ee71461041e57806370a08231146104925780637b7054c8146104b357806395d89b41146104de578063a883fb90146104f3578063a9059cbb14610508578063ac35caee1461052c578063b2b45df514610595578063c915fc931461063a578063cb4e75bb1461065b578063cfb5192814610670578063d4eec5a6146106c9578063dd62ed3e146106de578063ec698a2814610705578063fe8beb711461077f575b6101586107a0565b600160a060020a031663f2d6e0ab34600036336040518563ffffffff1660e060020a028152600401808060200183600160a060020a0316600160a060020a03168152602001828103825285858281815260200192508082843782019150509450505050506000604051808303818588803b1580156101d557600080fd5b505af11580156101e9573d6000803e3d6000fd5b5050505050005b3480156101fc57600080fd5b506102056107b1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023f578181015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028657600080fd5b5061029e600160a060020a036004351660243561083f565b604080519115158252519081900360200190f35b3480156102be57600080fd5b5061029e610900565b3480156102d357600080fd5b506102dc610964565b60408051600160a060020a039092168252519081900360200190f35b34801561030457600080fd5b5061030d610973565b60408051918252519081900360200190f35b34801561032b57600080fd5b50610349600160a060020a0360043581169060243516604435610a0d565b005b34801561035757600080fd5b5061029e600160a060020a0360043581169060243516604435610a71565b34801561038157600080fd5b50610349600160a060020a0360043581169060243516604435610b4a565b3480156103ab57600080fd5b506103b4610bad565b6040805160ff9092168252519081900360200190f35b3480156103d657600080fd5b506102dc610c16565b3480156103eb57600080fd5b5061030d610c25565b34801561040057600080fd5b5061029e610c2b565b34801561041557600080fd5b5061029e610d00565b34801561042a57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261029e948235600160a060020a031694602480359536959460649492019190819084018382808284375094975050509235600160a060020a03169350610d2292505050565b34801561049e57600080fd5b5061030d600160a060020a0360043516610f22565b3480156104bf57600080fd5b5061029e600160a060020a036004358116906024359060443516610fcc565b3480156104ea57600080fd5b50610205611155565b3480156104ff57600080fd5b506102dc6111b0565b34801561051457600080fd5b5061029e600160a060020a03600435166024356111bf565b34801561053857600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261029e948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506111f29650505050505050565b3480156105a157600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261029e958335600160a060020a031695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506112159650505050505050565b34801561064657600080fd5b5061029e600160a060020a036004351661128a565b34801561066757600080fd5b5061030d6113ed565b34801561067c57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d9436949293602493928401919081908401838280828437509497506113f39650505050505050565b3480156106d557600080fd5b5061029e6113fa565b3480156106ea57600080fd5b5061030d600160a060020a0360043581169060243516611455565b34801561071157600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261029e94600160a060020a03813581169560248035909216956044359536956084940191819084018382808284375094975050509235600160a060020a031693506114d392505050565b34801561078b57600080fd5b506102dc600160a060020a03600435166116dd565b60006107ab336116dd565b90505b90565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b505050505081565b6000600160a060020a038316156108fa576108586107a0565b604080517f7b7054c8000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820186905233604483015291519290911691637b7054c8916064808201926020929091908290030181600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b505050506040513d60208110156108f557600080fd5b505190505b92915050565b600654600090600160a060020a0316151561091d575060006107ae565b426203f480600754011115610934575060006107ae565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254604080517fb524abcf000000000000000000000000000000000000000000000000000000008152600481019290925251600092600160a060020a03169163b524abcf91602480830192602092919082900301818787803b1580156109dc57600080fd5b505af11580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b5051905090565b600154600160a060020a0316331415610a6c5781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b505050565b6000600160a060020a03831615610b4357610a8a6107a0565b604080517fec698a28000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015286811660248301526044820186905233608483015260a06064830152600060a48301819052925193169263ec698a289260e480840193602093929083900390910190829087803b158015610b1457600080fd5b505af1158015610b28573d6000803e3d6000fd5b505050506040513d6020811015610b3e57600080fd5b505190505b9392505050565b600154600160a060020a0316331415610a6c5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600154600254604080517fdc86e6f0000000000000000000000000000000000000000000000000000000008152600481019290925251600092600160a060020a03169163dc86e6f091602480830192602092919082900301818787803b1580156109dc57600080fd5b600154600160a060020a031681565b60075490565b600154600254604080517fe96b462a000000000000000000000000000000000000000000000000000000008152336004820152602481019290925251600092600160a060020a03169163e96b462a91604480830192602092919082900301818787803b158015610c9a57600080fd5b505af1158015610cae573d6000803e3d6000fd5b505050506040513d6020811015610cc457600080fd5b5051156107ae57600654600160a060020a03161515610ce5575060006107ae565b5060068054600160a060020a03191690556000600755600190565b3360009081526008602052604090208054600160a060020a0319169055600190565b6000816000610d30826116dd565b905033600160a060020a0382161480610dea5750604080517f36b70e8a000000000000000000000000000000000000000000000000000000008152600160a060020a03831660048201523360248201529051731c1d1d619e1f0e09ffe03cc33d5e7589191c6cfc916336b70e8a916044808301926020929190829003018186803b158015610dbd57600080fd5b505af4158015610dd1573d6000803e3d6000fd5b505050506040513d6020811015610de757600080fd5b50515b15610f1857600180546002546040517f57a96dd0000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301908152602483018c905260448301849052898216608484015260a0606484019081528b5160a48501528b5192909516946357a96dd0948e948e9491938e938e939192909160c490910190602086019080838360005b83811015610e98578181015183820152602001610e80565b50505050905090810190601f168015610ec55780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050506040513d6020811015610f1257600080fd5b50511492505b5050949350505050565b600154600254604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290516000939290921691634d30b6be9160448082019260209290919082900301818787803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d6020811015610fc257600080fd5b505190505b919050565b6000816000610fda826116dd565b905033600160a060020a03821614806110945750604080517f36b70e8a000000000000000000000000000000000000000000000000000000008152600160a060020a03831660048201523360248201529051731c1d1d619e1f0e09ffe03cc33d5e7589191c6cfc916336b70e8a916044808301926020929190829003018186803b15801561106757600080fd5b505af415801561107b573d6000803e3d6000fd5b505050506040513d602081101561109157600080fd5b50515b1561114c5760018054600254604080517f14712e2f000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018b905260448201939093528883166064820152905191909216916314712e2f9160848083019260209291908290030181600087803b15801561111c57600080fd5b505af1158015611130573d6000803e3d6000fd5b505050506040513d602081101561114657600080fd5b50511492505b50509392505050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b600654600160a060020a031690565b6000600160a060020a038316156108fa576111eb83836020604051908101604052806000815250611730565b90506108fa565b6000600160a060020a03841615610b435761120e848484611730565b9050610b43565b600154600090600160a060020a03161561123157506000610b43565b60018054600160a060020a031916600160a060020a038616179055825161125f906004906020860190611820565b50611269836113f3565b600255815161127f906003906020850190611820565b506001949350505050565b600154600254604080517fe96b462a000000000000000000000000000000000000000000000000000000008152336004820152602481019290925251600092600160a060020a03169163e96b462a91604480830192602092919082900301818787803b1580156112f957600080fd5b505af115801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b505115610fc757600654600160a060020a03161561134357506000610fc7565b600160a060020a038216151561135b57506000610fc7565b600554600160a060020a03161515611390575060058054600160a060020a031916600160a060020a0383161790556001610fc7565b60068054600160a060020a038416600160a060020a031990911681179091554260075560408051918252517faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a9181900360200190a1506001919050565b60025481565b6020015190565b33600090815260086020526040812054600160a060020a031615611420575060006107ae565b506005543360009081526008602052604090208054600160a060020a031916600160a060020a03909216919091179055600190565b600154600254604080517f1c8d5d38000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528581166024830152604482019390935290516000939290921691631c8d5d389160648082019260209290919082900301818787803b1580156108cb57600080fd5b60008160006114e1826116dd565b905033600160a060020a038216148061159b5750604080517f36b70e8a000000000000000000000000000000000000000000000000000000008152600160a060020a03831660048201523360248201529051731c1d1d619e1f0e09ffe03cc33d5e7589191c6cfc916336b70e8a916044808301926020929190829003018186803b15801561156e57600080fd5b505af4158015611582573d6000803e3d6000fd5b505050506040513d602081101561159857600080fd5b50515b156116d257600180546002546040517f161ff662000000000000000000000000000000000000000000000000000000008152600160a060020a038c8116600483019081528c82166024840152604483018c90526064830184905289821660a484015260c0608484019081528b5160c48501528b51929095169463161ff662948f948f948f9492938f938f93909260e490910190602086019080838360005b83811015611651578181015183820152602001611639565b50505050905090810190601f16801561167e5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1580156116a257600080fd5b505af11580156116b6573d6000803e3d6000fd5b505050506040513d60208110156116cc57600080fd5b50511492505b505095945050505050565b600160a060020a038082166000908152600860205260408120549091161561171f57600160a060020a03808316600090815260086020526040902054166108fa565b5050600554600160a060020a031690565b600061173a6107a0565b600160a060020a0316636a630ee7858585336040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b838110156117d15781810151838201526020016117b9565b50505050905090810190601f1680156117fe5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b1457600080fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061186157805160ff191683800117855561188e565b8280016001018555821561188e579182015b8281111561188e578251825591602001919060010190611873565b5061189a92915061189e565b5090565b6107ae91905b8082111561189a57600081556001016118a45600a165627a7a723058207f8379470d314fcc09de03667be54e45b86b588551e08aeee0084624f9eaba7b0029
Swarm Source
bzzr://7f8379470d314fcc09de03667be54e45b86b588551e08aeee0084624f9eaba7b
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.