ERC-20
Overview
Max Total Supply
320,000,000 VLM
Holders
2,083
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VOLUM
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-02 */ // File: contracts/EToken2Interface.sol pragma solidity 0.4.23; contract RegistryICAPInterface { function parse(bytes32 _icap) public view returns(address, bytes32, bool); function institutions(bytes32 _institution) public view returns(address); } contract EToken2Interface { function registryICAP() public view returns(RegistryICAPInterface); function baseUnit(bytes32 _symbol) public view returns(uint8); function description(bytes32 _symbol) public view returns(string); function owner(bytes32 _symbol) public view returns(address); function isOwner(address _owner, bytes32 _symbol) public view returns(bool); function totalSupply(bytes32 _symbol) public view returns(uint); function balanceOf(address _holder, bytes32 _symbol) public view returns(uint); function isLocked(bytes32 _symbol) public view returns(bool); function issueAsset( bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable) public returns(bool); function reissueAsset(bytes32 _symbol, uint _value) public returns(bool); function revokeAsset(bytes32 _symbol, uint _value) public returns(bool); function setProxy(address _address, bytes32 _symbol) public returns(bool); function lockAsset(bytes32 _symbol) public returns(bool); function proxyTransferFromToICAPWithReference( address _from, bytes32 _icap, uint _value, string _reference, address _sender) public returns(bool); function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) public returns(bool); function allowance(address _from, address _spender, bytes32 _symbol) public view returns(uint); function proxyTransferFromWithReference( address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) public returns(bool); function changeOwnership(bytes32 _symbol, address _newOwner) public returns(bool); } // File: contracts/AssetInterface.sol pragma solidity 0.4.23; contract AssetInterface { function _performTransferWithReference( address _to, uint _value, string _reference, address _sender) public returns(bool); function _performTransferToICAPWithReference( bytes32 _icap, uint _value, string _reference, address _sender) public returns(bool); function _performApprove(address _spender, uint _value, address _sender) public returns(bool); function _performTransferFromWithReference( address _from, address _to, uint _value, string _reference, address _sender) public returns(bool); function _performTransferFromToICAPWithReference( address _from, bytes32 _icap, uint _value, string _reference, address _sender) public returns(bool); function _performGeneric(bytes, address) public payable { revert(); } } // File: contracts/ERC20Interface.sol pragma solidity 0.4.23; contract ERC20Interface { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed from, address indexed spender, uint256 value); function totalSupply() public view returns(uint256 supply); function balanceOf(address _owner) public view returns(uint256 balance); // solhint-disable-next-line no-simple-event-func-name 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); // function symbol() constant returns(string); function decimals() public view returns(uint8); // function name() constant returns(string); } // File: contracts/AssetProxyInterface.sol pragma solidity 0.4.23; contract AssetProxyInterface is ERC20Interface { function _forwardApprove(address _spender, uint _value, address _sender) public returns(bool); function _forwardTransferFromWithReference( address _from, address _to, uint _value, string _reference, address _sender) public returns(bool); function _forwardTransferFromToICAPWithReference( address _from, bytes32 _icap, uint _value, string _reference, address _sender) public returns(bool); function recoverTokens(ERC20Interface _asset, address _receiver, uint _value) public returns(bool); // solhint-disable-next-line no-empty-blocks function etoken2() public pure returns(address) {} // To be replaced by the implicit getter; // To be replaced by the implicit getter; // solhint-disable-next-line no-empty-blocks function etoken2Symbol() public pure returns(bytes32) {} } // File: contracts/helpers/Bytes32.sol pragma solidity 0.4.23; contract Bytes32 { function _bytes32(string _input) internal pure returns(bytes32 result) { assembly { result := mload(add(_input, 32)) } } } // File: contracts/helpers/ReturnData.sol pragma solidity 0.4.23; contract ReturnData { function _returnReturnData(bool _success) internal pure { assembly { let returndatastart := 0 returndatacopy(returndatastart, 0, returndatasize) switch _success case 0 { revert(returndatastart, returndatasize) } default { return(returndatastart, returndatasize) } } } function _assemblyCall(address _destination, uint _value, bytes _data) internal returns(bool success) { assembly { success := call(gas, _destination, _value, add(_data, 32), mload(_data), 0, 0) } } } // File: contracts/AssetProxy.sol pragma solidity 0.4.23; /** * @title EToken2 Asset Proxy. * * Proxy implements ERC20 interface and acts as a gateway to a single EToken2 asset. * Proxy adds etoken2Symbol and caller(sender) when forwarding requests to EToken2. * Every request that is made by caller first sent to the specific asset implementation * contract, which then calls back to be forwarded onto EToken2. * * Calls flow: Caller -> * Proxy.func(...) -> * Asset._performFunc(..., Caller.address) -> * Proxy._forwardFunc(..., Caller.address) -> * Platform.proxyFunc(..., symbol, Caller.address) * * Generic call flow: Caller -> * Proxy.unknownFunc(...) -> * Asset._performGeneric(..., Caller.address) -> * Asset.unknownFunc(...) * * Asset implementation contract is mutable, but each user have an option to stick with * old implementation, through explicit decision made in timely manner, if he doesn't agree * with new rules. * Each user have a possibility to upgrade to latest asset contract implementation, without the * possibility to rollback. * * Note: all the non constant functions return false instead of throwing in case if state change * didn't happen yet. */ contract AssetProxy is ERC20Interface, AssetProxyInterface, Bytes32, ReturnData { // Assigned EToken2, immutable. EToken2Interface public etoken2; // Assigned symbol, immutable. bytes32 public etoken2Symbol; // Assigned name, immutable. For UI. string public name; string public symbol; /** * Sets EToken2 address, assigns symbol and name. * * Can be set only once. * * @param _etoken2 EToken2 contract address. * @param _symbol assigned symbol. * @param _name assigned name. * * @return success. */ function init(EToken2Interface _etoken2, string _symbol, string _name) public returns(bool) { if (address(etoken2) != 0x0) { return false; } etoken2 = _etoken2; etoken2Symbol = _bytes32(_symbol); name = _name; symbol = _symbol; return true; } /** * Only EToken2 is allowed to call. */ modifier onlyEToken2() { if (msg.sender == address(etoken2)) { _; } } /** * Only current asset owner is allowed to call. */ modifier onlyAssetOwner() { if (etoken2.isOwner(msg.sender, etoken2Symbol)) { _; } } /** * Returns asset implementation contract for current caller. * * @return asset implementation contract. */ function _getAsset() internal view returns(AssetInterface) { return AssetInterface(getVersionFor(msg.sender)); } /** * Recovers tokens on proxy contract * * @param _asset type of tokens to recover. * @param _value tokens that will be recovered. * @param _receiver address where to send recovered tokens. * * @return success. */ function recoverTokens(ERC20Interface _asset, address _receiver, uint _value) public onlyAssetOwner() returns(bool) { return _asset.transfer(_receiver, _value); } /** * Returns asset total supply. * * @return asset total supply. */ function totalSupply() public view returns(uint) { return etoken2.totalSupply(etoken2Symbol); } /** * Returns asset balance for a particular holder. * * @param _owner holder address. * * @return holder balance. */ function balanceOf(address _owner) public view returns(uint) { return etoken2.balanceOf(_owner, etoken2Symbol); } /** * Returns asset allowance from one holder to another. * * @param _from holder that allowed spending. * @param _spender holder that is allowed to spend. * * @return holder to spender allowance. */ function allowance(address _from, address _spender) public view returns(uint) { return etoken2.allowance(_from, _spender, etoken2Symbol); } /** * Returns asset decimals. * * @return asset decimals. */ function decimals() public view returns(uint8) { return etoken2.baseUnit(etoken2Symbol); } /** * Transfers asset balance from the caller to specified receiver. * * @param _to holder address to give to. * @param _value amount to transfer. * * @return success. */ function transfer(address _to, uint _value) public returns(bool) { return transferWithReference(_to, _value, ''); } /** * Transfers asset balance from the caller to specified receiver adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _to holder address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferWithReference(address _to, uint _value, string _reference) public returns(bool) { return _getAsset()._performTransferWithReference( _to, _value, _reference, msg.sender); } /** * Transfers asset balance from the caller to specified ICAP. * * @param _icap recipient ICAP to give to. * @param _value amount to transfer. * * @return success. */ function transferToICAP(bytes32 _icap, uint _value) public returns(bool) { return transferToICAPWithReference(_icap, _value, ''); } /** * Transfers asset balance from the caller to specified ICAP adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _icap recipient ICAP to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferToICAPWithReference( bytes32 _icap, uint _value, string _reference) public returns(bool) { return _getAsset()._performTransferToICAPWithReference( _icap, _value, _reference, msg.sender); } /** * Prforms allowance transfer of asset balance between holders. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * * @return success. */ function transferFrom(address _from, address _to, uint _value) public returns(bool) { return transferFromWithReference(_from, _to, _value, ''); } /** * Prforms allowance transfer of asset balance between holders adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferFromWithReference( address _from, address _to, uint _value, string _reference) public returns(bool) { return _getAsset()._performTransferFromWithReference( _from, _to, _value, _reference, msg.sender ); } /** * Performs transfer call on the EToken2 by the name of specified sender. * * Can only be called by asset implementation contract assigned to sender. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * @param _sender initial caller. * * @return success. */ function _forwardTransferFromWithReference( address _from, address _to, uint _value, string _reference, address _sender) public onlyImplementationFor(_sender) returns(bool) { return etoken2.proxyTransferFromWithReference( _from, _to, _value, etoken2Symbol, _reference, _sender ); } /** * Prforms allowance transfer of asset balance between holders. * * @param _from holder address to take from. * @param _icap recipient ICAP address to give to. * @param _value amount to transfer. * * @return success. */ function transferFromToICAP(address _from, bytes32 _icap, uint _value) public returns(bool) { return transferFromToICAPWithReference(_from, _icap, _value, ''); } /** * Prforms allowance transfer of asset balance between holders adding specified comment. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _from holder address to take from. * @param _icap recipient ICAP address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * * @return success. */ function transferFromToICAPWithReference( address _from, bytes32 _icap, uint _value, string _reference) public returns(bool) { return _getAsset()._performTransferFromToICAPWithReference( _from, _icap, _value, _reference, msg.sender ); } /** * Performs allowance transfer to ICAP call on the EToken2 by the name of specified sender. * * Can only be called by asset implementation contract assigned to sender. * * @param _from holder address to take from. * @param _icap recipient ICAP address to give to. * @param _value amount to transfer. * @param _reference transfer comment to be included in a EToken2's Transfer event. * @param _sender initial caller. * * @return success. */ function _forwardTransferFromToICAPWithReference( address _from, bytes32 _icap, uint _value, string _reference, address _sender) public onlyImplementationFor(_sender) returns(bool) { return etoken2.proxyTransferFromToICAPWithReference( _from, _icap, _value, _reference, _sender ); } /** * Sets asset spending allowance for a specified spender. * Resolves asset implementation contract for the caller and forwards there arguments along with * the caller address. * * @param _spender holder address to set allowance to. * @param _value amount to allow. * * @return success. */ function approve(address _spender, uint _value) public returns(bool) { return _getAsset()._performApprove(_spender, _value, msg.sender); } /** * Performs allowance setting call on the EToken2 by the name of specified sender. * * Can only be called by asset implementation contract assigned to sender. * * @param _spender holder address to set allowance to. * @param _value amount to allow. * @param _sender initial caller. * * @return success. */ function _forwardApprove(address _spender, uint _value, address _sender) public onlyImplementationFor(_sender) returns(bool) { return etoken2.proxyApprove(_spender, _value, etoken2Symbol, _sender); } /** * Emits ERC20 Transfer event on this contract. * * Can only be, and, called by assigned EToken2 when asset transfer happens. */ function emitTransfer(address _from, address _to, uint _value) public onlyEToken2() { emit Transfer(_from, _to, _value); } /** * Emits ERC20 Approval event on this contract. * * Can only be, and, called by assigned EToken2 when asset allowance set happens. */ function emitApprove(address _from, address _spender, uint _value) public onlyEToken2() { emit Approval(_from, _spender, _value); } /** * Resolves asset implementation contract for the caller and forwards there transaction data, * along with the value. This allows for proxy interface growth. */ function () public payable { _getAsset()._performGeneric.value(msg.value)(msg.data, msg.sender); _returnReturnData(true); } // Interface functions to allow specifying ICAP addresses as strings. function transferToICAP(string _icap, uint _value) public returns(bool) { return transferToICAPWithReference(_icap, _value, ''); } function transferToICAPWithReference(string _icap, uint _value, string _reference) public returns(bool) { return transferToICAPWithReference(_bytes32(_icap), _value, _reference); } function transferFromToICAP(address _from, string _icap, uint _value) public returns(bool) { return transferFromToICAPWithReference(_from, _icap, _value, ''); } function transferFromToICAPWithReference( address _from, string _icap, uint _value, string _reference) public returns(bool) { return transferFromToICAPWithReference(_from, _bytes32(_icap), _value, _reference); } /** * Indicates an upgrade freeze-time start, and the next asset implementation contract. */ event UpgradeProposed(address newVersion); event UpgradePurged(address newVersion); event UpgradeCommited(address newVersion); event OptedOut(address sender, address version); event OptedIn(address sender, address version); // Current asset implementation contract address. address internal latestVersion; // Proposed next asset implementation contract address. address internal pendingVersion; // Upgrade freeze-time start. uint internal pendingVersionTimestamp; // Timespan for users to review the new implementation and make decision. uint internal constant UPGRADE_FREEZE_TIME = 3 days; // Asset implementation contract address that user decided to stick with. // 0x0 means that user uses latest version. mapping(address => address) internal userOptOutVersion; /** * Only asset implementation contract assigned to sender is allowed to call. */ modifier onlyImplementationFor(address _sender) { if (getVersionFor(_sender) == msg.sender) { _; } } /** * Returns asset implementation contract address assigned to sender. * * @param _sender sender address. * * @return asset implementation contract address. */ function getVersionFor(address _sender) public view returns(address) { return userOptOutVersion[_sender] == 0 ? latestVersion : userOptOutVersion[_sender]; } /** * Returns current asset implementation contract address. * * @return asset implementation contract address. */ function getLatestVersion() public view returns(address) { return latestVersion; } /** * Returns proposed next asset implementation contract address. * * @return asset implementation contract address. */ function getPendingVersion() public view returns(address) { return pendingVersion; } /** * Returns upgrade freeze-time start. * * @return freeze-time start. */ function getPendingVersionTimestamp() public view returns(uint) { return pendingVersionTimestamp; } /** * Propose next asset implementation contract address. * * Can only be called by current asset owner. * * Note: freeze-time should not be applied for the initial setup. * * @param _newVersion asset implementation contract address. * * @return success. */ function proposeUpgrade(address _newVersion) public onlyAssetOwner() returns(bool) { // Should not already be in the upgrading process. if (pendingVersion != 0x0) { return false; } // New version address should be other than 0x0. if (_newVersion == 0x0) { return false; } // Don't apply freeze-time for the initial setup. if (latestVersion == 0x0) { latestVersion = _newVersion; return true; } pendingVersion = _newVersion; // solhint-disable-next-line not-rely-on-time pendingVersionTimestamp = now; emit UpgradeProposed(_newVersion); return true; } /** * 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; } emit UpgradePurged(pendingVersion); delete pendingVersion; delete pendingVersionTimestamp; return true; } /** * Finalize an upgrade process setting new asset implementation contract address. * * Can only be called after an upgrade freeze-time. * * @return success. */ function commitUpgrade() public returns(bool) { if (pendingVersion == 0x0) { return false; } // solhint-disable-next-line not-rely-on-time if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) { return false; } latestVersion = pendingVersion; delete pendingVersion; delete pendingVersionTimestamp; emit UpgradeCommited(latestVersion); return true; } /** * 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; emit OptedOut(msg.sender, latestVersion); return true; } /** * 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]; emit OptedIn(msg.sender, latestVersion); return true; } // Backwards compatibility. function multiAsset() public view returns(EToken2Interface) { return etoken2; } } // File: contracts/AssetProxyWithLock.sol pragma solidity 0.4.23; contract VOLUM is AssetProxy { function change(string _symbol, string _name) public onlyAssetOwner() returns(bool) { if (etoken2.isLocked(etoken2Symbol)) { return false; } name = _name; symbol = _symbol; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"multiAsset","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"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":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_forwardTransferFromWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"etoken2","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":"_asset","type":"address"},{"name":"_receiver","type":"address"},{"name":"_value","type":"uint256"}],"name":"recoverTokens","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":"_reference","type":"string"}],"name":"transferFromWithReference","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":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_sender","type":"address"}],"name":"_forwardApprove","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"}],"name":"transferToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"},{"name":"_name","type":"string"}],"name":"change","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromToICAPWithReference","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":false,"inputs":[{"name":"_icap","type":"string"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"},{"name":"_sender","type":"address"}],"name":"_forwardTransferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"etoken2Symbol","outputs":[{"name":"","type":"bytes32"}],"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":"_etoken2","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":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":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":"UpgradeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradePurged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newVersion","type":"address"}],"name":"UpgradeCommited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"version","type":"address"}],"name":"OptedOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"version","type":"address"}],"name":"OptedIn","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
608060405234801561001057600080fd5b50612746806100206000396000f3006080604052600436106101e25763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663029a8bf781146102a257806306fdde03146102e0578063095ea7b31461036a5780630ba12c83146103af5780630e6d1de9146103c457806314cba002146103d957806318160ddd1461046d578063233850891461049457806323b872dd146104cb57806323de665114610502578063313ce56714610539578063406838b3146105645780634bfaf2e8146105795780634dfe950d1461058e5780635b48684e146105a35780635f3e849f146105b85780636461fe39146105ef57806370a082311461066b578063733480b7146106995780637609c5a9146106b457806377fe38a41461072a5780637bcdc2f01461078a57806381d434e9146107c257806383841e0c1461081d57806384c5c34d146108b457806395d89b411461096c5780639ab253cc146109815780639b487f3f14610a1e578063a48a663c14610aaf578063a525f42c14610b28578063a66e6e5c14610b5c578063a883fb9014610b71578063a9059cbb14610b86578063ac35caee14610bb7578063b2b45df514610c2d578063c915fc9314610cdf578063d4eec5a614610d0d578063dd62ed3e14610d22578063fe8beb7114610d56575b6101ea610d84565b604080517fdb00b8480000000000000000000000000000000000000000000000000000000081523373ffffffffffffffffffffffffffffffffffffffff818116602484015260048301938452366044840181905294169363db00b8489334936000939190819060640185858082843782019150509450505050506000604051808303818588803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b50505050506102a06001610d95565b005b3480156102ae57600080fd5b506102b7610db0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102ec57600080fd5b506102f5610dcc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032f578181015183820152602001610317565b50505050905090810190601f16801561035c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037657600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff60043516602435610e75565b604080519115158252519081900360200190f35b3480156103bb57600080fd5b5061039b610f36565b3480156103d057600080fd5b506102b7611006565b3480156103e557600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff81358116956024803590921695604435953695608494019181908401838280828437509497505050923573ffffffffffffffffffffffffffffffffffffffff16935061102292505050565b34801561047957600080fd5b506104826111aa565b60408051918252519081900360200190f35b3480156104a057600080fd5b506102a073ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611252565b3480156104d757600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356112e0565b34801561050e57600080fd5b506102a073ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611308565b34801561054557600080fd5b5061054e611396565b6040805160ff9092168252519081900360200190f35b34801561057057600080fd5b506102b761140d565b34801561058557600080fd5b50610482611429565b34801561059a57600080fd5b5061039b61142f565b3480156105af57600080fd5b5061039b611586565b3480156105c457600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611616565b3480156105fb57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff813581169560248035909216956044359536956084940191819084018382808284375094975061179e9650505050505050565b34801561067757600080fd5b5061048273ffffffffffffffffffffffffffffffffffffffff60043516611951565b3480156106a557600080fd5b5061039b600435602435611a05565b3480156106c057600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039b95833573ffffffffffffffffffffffffffffffffffffffff169536956044949193909101919081908401838280828437509497505093359450611a229350505050565b34801561073657600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261039b948235946024803595369594606494920191908190840183828082843750949750611a409650505050505050565b34801561079657600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff6004358116906024359060443516611b66565b3480156107ce57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261039b9436949293602493928401919081908401838280828437509497505093359450611c6e9350505050565b34801561082957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261039b94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611c8b9650505050505050565b3480156108c057600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039b95833573ffffffffffffffffffffffffffffffffffffffff1695369560449491939091019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b8a359b909a909994019750919550918201935091508190840183828082843750949750611e1e9650505050505050565b34801561097857600080fd5b506102f5611e3d565b34801561098d57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261039b94369492936024939284019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b8a359b909a909994019750919550918201935091508190840183828082843750949750611eb69650505050505050565b348015610a2a57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff81351694602480359560443595369560849493019181908401838280828437509497505050923573ffffffffffffffffffffffffffffffffffffffff169350611ecb92505050565b348015610abb57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff813516946024803595604435953695608494930191819084018382808284375094975061200e9650505050505050565b348015610b3457600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff600435166024356044356120c4565b348015610b6857600080fd5b506104826120e2565b348015610b7d57600080fd5b506102b76120e8565b348015610b9257600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff60043516602435612104565b348015610bc357600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261039b94823573ffffffffffffffffffffffffffffffffffffffff1694602480359536959460649492019190819084018382808284375094975061211d9650505050505050565b348015610c3957600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039b95833573ffffffffffffffffffffffffffffffffffffffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506122179650505050505050565b348015610ceb57600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff600435166122bc565b348015610d1957600080fd5b5061039b6124a1565b348015610d2e57600080fd5b5061048273ffffffffffffffffffffffffffffffffffffffff60043581169060243516612579565b348015610d6257600080fd5b506102b773ffffffffffffffffffffffffffffffffffffffff60043516612601565b6000610d8f33612601565b90505b90565b60003d6000823e818015610da7573d82f35b3d82fd5b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f81018490048402820184019092528181529291830182828015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b820191906000526020600020905b815481529060010190602001808311610e5057829003601f168201915b505050505081565b6000610e7f610d84565b604080517fe34f713700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820186905233811660448301529151929091169163e34f7137916064808201926020929091908290030181600087803b158015610f0157600080fd5b505af1158015610f15573d6000803e3d6000fd5b505050506040513d6020811015610f2b57600080fd5b505190505b92915050565b60055460009073ffffffffffffffffffffffffffffffffffffffff161515610f6057506000610d92565b426203f480600654011115610f7757506000610d92565b600580546004805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390559216909255600060065560408051929091168252517f3d14778962aac3ae6130883f4c9d2e995d6fc2a644b7867087a59e92b954b4ed916020908290030190a150600190565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b6000813373ffffffffffffffffffffffffffffffffffffffff1661104582612601565b73ffffffffffffffffffffffffffffffffffffffff1614156111a057600080546001546040517f161ff66200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483019081528b82166024840152604483018b90526064830184905288821660a484015260c0608484019081528a5160c48501528a51929095169563161ff662958e958e958e9591948e948e949193919260e4019160208701918190849084905b83811015611120578181015183820152602001611108565b50505050905090810190601f16801561114d5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b505050506040513d602081101561119b57600080fd5b505191505b5095945050505050565b60008054600154604080517fb524abcf00000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff9092169163b524abcf9160248082019260209290919082900301818787803b15801561122157600080fd5b505af1158015611235573d6000803e3d6000fd5b505050506040513d602081101561124b57600080fd5b5051905090565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610dab578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006112fe848484602060405190810160405280600081525061179e565b90505b9392505050565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610dab578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008054600154604080517fdc86e6f000000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff9092169163dc86e6f09160248082019260209290919082900301818787803b15801561122157600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60065490565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b1580156114af57600080fd5b505af11580156114c3573d6000803e3d6000fd5b505050506040513d60208110156114d957600080fd5b505115610d925760055473ffffffffffffffffffffffffffffffffffffffff16151561150757506000610d92565b6005546040805173ffffffffffffffffffffffffffffffffffffffff9092168252517f076759518ae32ffdfd36b17503d14cdd8042c074645c635aa26dceea2719acef9181900360200190a150600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556000600655600190565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260076020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600454815194855290941690830152825190927fd70d37e6618959bdba868db2d4138b221ef96101565dfc1a0bd38af1d3ab63c1928290030190a150600190565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b505050506040513d60208110156116c057600080fd5b505115611301578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d602081101561179457600080fd5b5051949350505050565b60006117a8610d84565b73ffffffffffffffffffffffffffffffffffffffff1663cca9702586868686336040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156118cc5781810151838201526020016118b4565b50505050905090810190601f1680156118f95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b505050506040513d602081101561194657600080fd5b505195945050505050565b60008054600154604080517f4d30b6be00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482019390935290519190921691634d30b6be91604480830192602092919082900301818787803b1580156119d157600080fd5b505af11580156119e5573d6000803e3d6000fd5b505050506040513d60208110156119fb57600080fd5b505190505b919050565b600061130183836020604051908101604052806000815250611a40565b60006112fe8484846020604051908101604052806000815250611e1e565b6000611a4a610d84565b73ffffffffffffffffffffffffffffffffffffffff1663c10796df858585336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808560001916600019168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611b17578181015183820152602001611aff565b50505050905090810190601f168015611b445780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561176a57600080fd5b6000813373ffffffffffffffffffffffffffffffffffffffff16611b8982612601565b73ffffffffffffffffffffffffffffffffffffffff161415611c665760008054600154604080517f14712e2f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018a905260448201939093528783166064820152905191909216926314712e2f92608480820193602093909283900390910190829087803b158015611c3757600080fd5b505af1158015611c4b573d6000803e3d6000fd5b505050506040513d6020811015611c6157600080fd5b505191505b509392505050565b600061130183836020604051908101604052806000815250611eb6565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b158015611d0b57600080fd5b505af1158015611d1f573d6000803e3d6000fd5b505050506040513d6020811015611d3557600080fd5b505115610f305760008054600154604080517f32a16f4e00000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff909216926332a16f4e926024808401936020939083900390910190829087803b158015611db457600080fd5b505af1158015611dc8573d6000803e3d6000fd5b505050506040513d6020811015611dde57600080fd5b505115611ded57506000610f30565b8151611e00906002906020850190612682565b508251611e14906003906020860190612682565b5060019392505050565b6000611e3485611e2d8661267b565b858561200e565b95945050505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b60006112fe611ec48561267b565b8484611a40565b6000813373ffffffffffffffffffffffffffffffffffffffff16611eee82612601565b73ffffffffffffffffffffffffffffffffffffffff1614156111a057600080546040517fa69032ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660048301908152602483018b9052604483018a9052878216608484015260a060648401908152895160a48501528951929094169463a69032ee948d948d948d948d948d949193919260c49092019160208701918190849084905b83811015611fbe578181015183820152602001611fa6565b50505050905090810190601f168015611feb5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561117157600080fd5b6000612018610d84565b6040517feb58705b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301908152602483018890526044830187905233808316608485015260a060648501908152875160a48601528751959093169463eb58705b948b948b948b948b94909391929160c4019060208601908083836000838110156118cc5781810151838201526020016118b4565b60006112fe848484602060405190810160405280600081525061200e565b60015481565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b6000611301838360206040519081016040528060008152505b6000612127610d84565b73ffffffffffffffffffffffffffffffffffffffff16631962df71858585336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252848181518152602001915080519060200190808383600083811015611b17578181015183820152602001611aff565b6000805473ffffffffffffffffffffffffffffffffffffffff161561223e57506000611301565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556122878361267b565b600155815161229d906002906020850190612682565b5082516122b1906003906020860190612682565b506001949350505050565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b15801561233c57600080fd5b505af1158015612350573d6000803e3d6000fd5b505050506040513d602081101561236657600080fd5b505115611a005760055473ffffffffffffffffffffffffffffffffffffffff161561239357506000611a00565b73ffffffffffffffffffffffffffffffffffffffff821615156123b857506000611a00565b60045473ffffffffffffffffffffffffffffffffffffffff16151561241f5750600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556001611a00565b6005805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091554260065560408051918252517f8ddc9aa7b538ef74fb9f825a27578614d8cd88e4062392c6613d2d65ed987d769181900360200190a1506001919050565b73ffffffffffffffffffffffffffffffffffffffff338116600090815260076020526040812054909116156124d857506000610d92565b600480543373ffffffffffffffffffffffffffffffffffffffff90811660008181526007602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695851695909517909455935484519182529091169181019190915281517fe1dc7792699a69777c1f0b1695b7c1b9a2677af13bb0b61b9b9b975d30acf7b2929181900390910190a150600190565b60008054600154604080517f1c8d5d3800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301528681166024830152604482019390935290519190921691631c8d5d3891606480830192602092919082900301818787803b158015610f0157600080fd5b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600760205260408120549091161561265d5773ffffffffffffffffffffffffffffffffffffffff80831660009081526007602052604090205416610f30565b505060045473ffffffffffffffffffffffffffffffffffffffff1690565b6020015190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126c357805160ff19168380011785556126f0565b828001600101855582156126f0579182015b828111156126f05782518255916020019190600101906126d5565b506126fc929150612700565b5090565b610d9291905b808211156126fc57600081556001016127065600a165627a7a72305820becf8b1a378ae79222de7a477bd64e1f1bf9ee2b74336edb4a9d9ba478f0f6dd0029
Deployed Bytecode
0x6080604052600436106101e25763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663029a8bf781146102a257806306fdde03146102e0578063095ea7b31461036a5780630ba12c83146103af5780630e6d1de9146103c457806314cba002146103d957806318160ddd1461046d578063233850891461049457806323b872dd146104cb57806323de665114610502578063313ce56714610539578063406838b3146105645780634bfaf2e8146105795780634dfe950d1461058e5780635b48684e146105a35780635f3e849f146105b85780636461fe39146105ef57806370a082311461066b578063733480b7146106995780637609c5a9146106b457806377fe38a41461072a5780637bcdc2f01461078a57806381d434e9146107c257806383841e0c1461081d57806384c5c34d146108b457806395d89b411461096c5780639ab253cc146109815780639b487f3f14610a1e578063a48a663c14610aaf578063a525f42c14610b28578063a66e6e5c14610b5c578063a883fb9014610b71578063a9059cbb14610b86578063ac35caee14610bb7578063b2b45df514610c2d578063c915fc9314610cdf578063d4eec5a614610d0d578063dd62ed3e14610d22578063fe8beb7114610d56575b6101ea610d84565b604080517fdb00b8480000000000000000000000000000000000000000000000000000000081523373ffffffffffffffffffffffffffffffffffffffff818116602484015260048301938452366044840181905294169363db00b8489334936000939190819060640185858082843782019150509450505050506000604051808303818588803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b50505050506102a06001610d95565b005b3480156102ae57600080fd5b506102b7610db0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102ec57600080fd5b506102f5610dcc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032f578181015183820152602001610317565b50505050905090810190601f16801561035c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037657600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff60043516602435610e75565b604080519115158252519081900360200190f35b3480156103bb57600080fd5b5061039b610f36565b3480156103d057600080fd5b506102b7611006565b3480156103e557600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff81358116956024803590921695604435953695608494019181908401838280828437509497505050923573ffffffffffffffffffffffffffffffffffffffff16935061102292505050565b34801561047957600080fd5b506104826111aa565b60408051918252519081900360200190f35b3480156104a057600080fd5b506102a073ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611252565b3480156104d757600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356112e0565b34801561050e57600080fd5b506102a073ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611308565b34801561054557600080fd5b5061054e611396565b6040805160ff9092168252519081900360200190f35b34801561057057600080fd5b506102b761140d565b34801561058557600080fd5b50610482611429565b34801561059a57600080fd5b5061039b61142f565b3480156105af57600080fd5b5061039b611586565b3480156105c457600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435611616565b3480156105fb57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff813581169560248035909216956044359536956084940191819084018382808284375094975061179e9650505050505050565b34801561067757600080fd5b5061048273ffffffffffffffffffffffffffffffffffffffff60043516611951565b3480156106a557600080fd5b5061039b600435602435611a05565b3480156106c057600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039b95833573ffffffffffffffffffffffffffffffffffffffff169536956044949193909101919081908401838280828437509497505093359450611a229350505050565b34801561073657600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261039b948235946024803595369594606494920191908190840183828082843750949750611a409650505050505050565b34801561079657600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff6004358116906024359060443516611b66565b3480156107ce57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261039b9436949293602493928401919081908401838280828437509497505093359450611c6e9350505050565b34801561082957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261039b94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611c8b9650505050505050565b3480156108c057600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039b95833573ffffffffffffffffffffffffffffffffffffffff1695369560449491939091019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b8a359b909a909994019750919550918201935091508190840183828082843750949750611e1e9650505050505050565b34801561097857600080fd5b506102f5611e3d565b34801561098d57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261039b94369492936024939284019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b8a359b909a909994019750919550918201935091508190840183828082843750949750611eb69650505050505050565b348015610a2a57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff81351694602480359560443595369560849493019181908401838280828437509497505050923573ffffffffffffffffffffffffffffffffffffffff169350611ecb92505050565b348015610abb57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039b9473ffffffffffffffffffffffffffffffffffffffff813516946024803595604435953695608494930191819084018382808284375094975061200e9650505050505050565b348015610b3457600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff600435166024356044356120c4565b348015610b6857600080fd5b506104826120e2565b348015610b7d57600080fd5b506102b76120e8565b348015610b9257600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff60043516602435612104565b348015610bc357600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261039b94823573ffffffffffffffffffffffffffffffffffffffff1694602480359536959460649492019190819084018382808284375094975061211d9650505050505050565b348015610c3957600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039b95833573ffffffffffffffffffffffffffffffffffffffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506122179650505050505050565b348015610ceb57600080fd5b5061039b73ffffffffffffffffffffffffffffffffffffffff600435166122bc565b348015610d1957600080fd5b5061039b6124a1565b348015610d2e57600080fd5b5061048273ffffffffffffffffffffffffffffffffffffffff60043581169060243516612579565b348015610d6257600080fd5b506102b773ffffffffffffffffffffffffffffffffffffffff60043516612601565b6000610d8f33612601565b90505b90565b60003d6000823e818015610da7573d82f35b3d82fd5b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f81018490048402820184019092528181529291830182828015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b820191906000526020600020905b815481529060010190602001808311610e5057829003601f168201915b505050505081565b6000610e7f610d84565b604080517fe34f713700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820186905233811660448301529151929091169163e34f7137916064808201926020929091908290030181600087803b158015610f0157600080fd5b505af1158015610f15573d6000803e3d6000fd5b505050506040513d6020811015610f2b57600080fd5b505190505b92915050565b60055460009073ffffffffffffffffffffffffffffffffffffffff161515610f6057506000610d92565b426203f480600654011115610f7757506000610d92565b600580546004805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390559216909255600060065560408051929091168252517f3d14778962aac3ae6130883f4c9d2e995d6fc2a644b7867087a59e92b954b4ed916020908290030190a150600190565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b6000813373ffffffffffffffffffffffffffffffffffffffff1661104582612601565b73ffffffffffffffffffffffffffffffffffffffff1614156111a057600080546001546040517f161ff66200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483019081528b82166024840152604483018b90526064830184905288821660a484015260c0608484019081528a5160c48501528a51929095169563161ff662958e958e958e9591948e948e949193919260e4019160208701918190849084905b83811015611120578181015183820152602001611108565b50505050905090810190601f16801561114d5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b505050506040513d602081101561119b57600080fd5b505191505b5095945050505050565b60008054600154604080517fb524abcf00000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff9092169163b524abcf9160248082019260209290919082900301818787803b15801561122157600080fd5b505af1158015611235573d6000803e3d6000fd5b505050506040513d602081101561124b57600080fd5b5051905090565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610dab578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006112fe848484602060405190810160405280600081525061179e565b90505b9392505050565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161415610dab578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008054600154604080517fdc86e6f000000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff9092169163dc86e6f09160248082019260209290919082900301818787803b15801561122157600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60065490565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b1580156114af57600080fd5b505af11580156114c3573d6000803e3d6000fd5b505050506040513d60208110156114d957600080fd5b505115610d925760055473ffffffffffffffffffffffffffffffffffffffff16151561150757506000610d92565b6005546040805173ffffffffffffffffffffffffffffffffffffffff9092168252517f076759518ae32ffdfd36b17503d14cdd8042c074645c635aa26dceea2719acef9181900360200190a150600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556000600655600190565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260076020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600454815194855290941690830152825190927fd70d37e6618959bdba868db2d4138b221ef96101565dfc1a0bd38af1d3ab63c1928290030190a150600190565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b505050506040513d60208110156116c057600080fd5b505115611301578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d602081101561179457600080fd5b5051949350505050565b60006117a8610d84565b73ffffffffffffffffffffffffffffffffffffffff1663cca9702586868686336040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156118cc5781810151838201526020016118b4565b50505050905090810190601f1680156118f95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b505050506040513d602081101561194657600080fd5b505195945050505050565b60008054600154604080517f4d30b6be00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482019390935290519190921691634d30b6be91604480830192602092919082900301818787803b1580156119d157600080fd5b505af11580156119e5573d6000803e3d6000fd5b505050506040513d60208110156119fb57600080fd5b505190505b919050565b600061130183836020604051908101604052806000815250611a40565b60006112fe8484846020604051908101604052806000815250611e1e565b6000611a4a610d84565b73ffffffffffffffffffffffffffffffffffffffff1663c10796df858585336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808560001916600019168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611b17578181015183820152602001611aff565b50505050905090810190601f168015611b445780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561176a57600080fd5b6000813373ffffffffffffffffffffffffffffffffffffffff16611b8982612601565b73ffffffffffffffffffffffffffffffffffffffff161415611c665760008054600154604080517f14712e2f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018a905260448201939093528783166064820152905191909216926314712e2f92608480820193602093909283900390910190829087803b158015611c3757600080fd5b505af1158015611c4b573d6000803e3d6000fd5b505050506040513d6020811015611c6157600080fd5b505191505b509392505050565b600061130183836020604051908101604052806000815250611eb6565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b158015611d0b57600080fd5b505af1158015611d1f573d6000803e3d6000fd5b505050506040513d6020811015611d3557600080fd5b505115610f305760008054600154604080517f32a16f4e00000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff909216926332a16f4e926024808401936020939083900390910190829087803b158015611db457600080fd5b505af1158015611dc8573d6000803e3d6000fd5b505050506040513d6020811015611dde57600080fd5b505115611ded57506000610f30565b8151611e00906002906020850190612682565b508251611e14906003906020860190612682565b5060019392505050565b6000611e3485611e2d8661267b565b858561200e565b95945050505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b60006112fe611ec48561267b565b8484611a40565b6000813373ffffffffffffffffffffffffffffffffffffffff16611eee82612601565b73ffffffffffffffffffffffffffffffffffffffff1614156111a057600080546040517fa69032ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660048301908152602483018b9052604483018a9052878216608484015260a060648401908152895160a48501528951929094169463a69032ee948d948d948d948d948d949193919260c49092019160208701918190849084905b83811015611fbe578181015183820152602001611fa6565b50505050905090810190601f168015611feb5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561117157600080fd5b6000612018610d84565b6040517feb58705b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301908152602483018890526044830187905233808316608485015260a060648501908152875160a48601528751959093169463eb58705b948b948b948b948b94909391929160c4019060208601908083836000838110156118cc5781810151838201526020016118b4565b60006112fe848484602060405190810160405280600081525061200e565b60015481565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b6000611301838360206040519081016040528060008152505b6000612127610d84565b73ffffffffffffffffffffffffffffffffffffffff16631962df71858585336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252848181518152602001915080519060200190808383600083811015611b17578181015183820152602001611aff565b6000805473ffffffffffffffffffffffffffffffffffffffff161561223e57506000611301565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556122878361267b565b600155815161229d906002906020850190612682565b5082516122b1906003906020860190612682565b506001949350505050565b60008054600154604080517fe96b462a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff338116600483015260248201939093529051919092169163e96b462a91604480830192602092919082900301818787803b15801561233c57600080fd5b505af1158015612350573d6000803e3d6000fd5b505050506040513d602081101561236657600080fd5b505115611a005760055473ffffffffffffffffffffffffffffffffffffffff161561239357506000611a00565b73ffffffffffffffffffffffffffffffffffffffff821615156123b857506000611a00565b60045473ffffffffffffffffffffffffffffffffffffffff16151561241f5750600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556001611a00565b6005805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091554260065560408051918252517f8ddc9aa7b538ef74fb9f825a27578614d8cd88e4062392c6613d2d65ed987d769181900360200190a1506001919050565b73ffffffffffffffffffffffffffffffffffffffff338116600090815260076020526040812054909116156124d857506000610d92565b600480543373ffffffffffffffffffffffffffffffffffffffff90811660008181526007602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695851695909517909455935484519182529091169181019190915281517fe1dc7792699a69777c1f0b1695b7c1b9a2677af13bb0b61b9b9b975d30acf7b2929181900390910190a150600190565b60008054600154604080517f1c8d5d3800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301528681166024830152604482019390935290519190921691631c8d5d3891606480830192602092919082900301818787803b158015610f0157600080fd5b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600760205260408120549091161561265d5773ffffffffffffffffffffffffffffffffffffffff80831660009081526007602052604090205416610f30565b505060045473ffffffffffffffffffffffffffffffffffffffff1690565b6020015190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126c357805160ff19168380011785556126f0565b828001600101855582156126f0579182015b828111156126f05782518255916020019190600101906126d5565b506126fc929150612700565b5090565b610d9291905b808211156126fc57600081556001016127065600a165627a7a72305820becf8b1a378ae79222de7a477bd64e1f1bf9ee2b74336edb4a9d9ba478f0f6dd0029
Swarm Source
bzzr://becf8b1a378ae79222de7a477bd64e1f1bf9ee2b74336edb4a9d9ba478f0f6dd
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.