ERC-20
Overview
Max Total Supply
1,500,000,000 LVL
Holders
15,041
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
27,608.81 LVLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CAVAssetProxy
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-16 */ pragma solidity ^0.4.11; // File: contracts/CAVAssetInterface.sol contract CAVAsset { function __transferWithReference(address _to, uint _value, string _reference, address _sender) returns(bool); function __transferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) returns(bool); function __approve(address _spender, uint _value, address _sender) returns(bool); function __process(bytes _data, address _sender) payable { revert(); } } // File: contracts/CAVPlatformInterface.sol contract CAVPlatform { mapping(bytes32 => address) public proxies; function symbols(uint _idx) public constant returns (bytes32); function symbolsCount() public constant returns (uint); function name(bytes32 _symbol) returns(string); function setProxy(address _address, bytes32 _symbol) returns(uint errorCode); function isCreated(bytes32 _symbol) constant returns(bool); function isOwner(address _owner, bytes32 _symbol) returns(bool); function owner(bytes32 _symbol) constant returns(address); function totalSupply(bytes32 _symbol) returns(uint); function balanceOf(address _holder, bytes32 _symbol) returns(uint); function allowance(address _from, address _spender, bytes32 _symbol) returns(uint); function baseUnit(bytes32 _symbol) returns(uint8); function proxyTransferWithReference(address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(uint errorCode); function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference, address _sender) returns(uint errorCode); function proxyApprove(address _spender, uint _value, bytes32 _symbol, address _sender) returns(uint errorCode); function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable) returns(uint errorCode); function issueAsset(bytes32 _symbol, uint _value, string _name, string _description, uint8 _baseUnit, bool _isReissuable, address _account) returns(uint errorCode); function reissueAsset(bytes32 _symbol, uint _value) returns(uint errorCode); function revokeAsset(bytes32 _symbol, uint _value) returns(uint errorCode); function isReissuable(bytes32 _symbol) returns(bool); function changeOwnership(bytes32 _symbol, address _newOwner) returns(uint errorCode); function hasAssetRights(address _owner, bytes32 _symbol) public view returns (bool); } // File: contracts/ERC20Interface.sol contract ERC20Interface { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed from, address indexed spender, uint256 value); string public symbol; function decimals() constant returns (uint8); function totalSupply() constant returns (uint256 supply); function balanceOf(address _owner) constant returns (uint256 balance); function transfer(address _to, uint256 _value) returns (bool success); function transferFrom(address _from, address _to, uint256 _value) returns (bool success); function approve(address _spender, uint256 _value) returns (bool success); function allowance(address _owner, address _spender) constant returns (uint256 remaining); } // File: contracts/CAVAssetProxy.sol /** * @title CAV 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 CAVAssetProxy is ERC20Interface { // Supports CAVPlatform ability to return error codes from methods uint constant OK = 1; // Assigned platform, immutable. CAVPlatform public platform; // Assigned symbol, immutable. bytes32 public smbl; // Assigned name, immutable. string public name; string public symbol; /** * Sets platform address, assigns symbol and name. * * Can be set only once. * * @param _platform platform contract address. * @param _symbol assigned symbol. * @param _name assigned name. * * @return success. */ function init(CAVPlatform _platform, string _symbol, string _name) returns(bool) { if (address(platform) != 0x0) { return false; } platform = _platform; symbol = _symbol; smbl = stringToBytes32(_symbol); name = _name; return true; } function stringToBytes32(string memory source) returns (bytes32 result) { assembly { result := mload(add(source, 32)) } } /** * Only platform is allowed to call. */ modifier onlyPlatform() { if (msg.sender == address(platform)) { _; } } /** * Only current asset owner is allowed to call. */ modifier onlyAssetOwner() { if (platform.isOwner(msg.sender, smbl)) { _; } } /** * Returns asset implementation contract for current caller. * * @return asset implementation contract. */ function _getAsset() internal returns(CAVAsset) { return CAVAsset(getVersionFor(msg.sender)); } /** * Returns asset total supply. * * @return asset total supply. */ function totalSupply() constant returns(uint) { return platform.totalSupply(smbl); } /** * Returns asset balance for a particular holder. * * @param _owner holder address. * * @return holder balance. */ function balanceOf(address _owner) constant returns(uint) { return platform.balanceOf(_owner, smbl); } /** * Returns asset allowance from one holder to another. * * @param _from holder that allowed spending. * @param _spender holder that is allowed to spend. * * @return holder to spender allowance. */ function allowance(address _from, address _spender) constant returns(uint) { return platform.allowance(_from, _spender, smbl); } /** * Returns asset decimals. * * @return asset decimals. */ function decimals() constant returns(uint8) { return platform.baseUnit(smbl); } /** * Transfers asset balance from the caller to specified receiver. * * @param _to holder address to give to. * @param _value amount to transfer. * * @return success. */ function transfer(address _to, uint _value) returns(bool) { if (_to != 0x0) { return _transferWithReference(_to, _value, ""); } else { return false; } } /** * 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) returns(bool) { if (_to != 0x0) { return _transferWithReference(_to, _value, _reference); } else { return false; } } /** * 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); } /** * 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) returns(bool) { return platform.proxyTransferWithReference(_to, _value, smbl, _reference, _sender) == OK; } /** * Prforms allowance transfer of asset balance between holders. * * @param _from holder address to take from. * @param _to holder address to give to. * @param _value amount to transfer. * * @return success. */ function transferFrom(address _from, address _to, uint _value) returns(bool) { if (_to != 0x0) { return _getAsset().__transferFromWithReference(_from, _to, _value, "", msg.sender); } else { return false; } } /** * 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) returns(bool) { return platform.proxyTransferFromWithReference(_from, _to, _value, smbl, _reference, _sender) == OK; } /** * 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) returns(bool) { if (_spender != 0x0) { return _getAsset().__approve(_spender, _value, msg.sender); } else { return false; } } /** * 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) returns(bool) { return platform.proxyApprove(_spender, _value, smbl, _sender) == OK; } /** * 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) onlyPlatform() { Transfer(_from, _to, _value); } /** * 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) onlyPlatform() { Approval(_from, _spender, _value); } /** * Resolves asset implementation contract for the caller and forwards there transaction data, * along with the value. This allows for proxy interface growth. */ function () payable { _getAsset().__process.value(msg.value)(msg.data, msg.sender); } /** * Indicates an upgrade freeze-time start, and the next asset implementation contract. */ event UpgradeProposal(address newVersion); // Current asset implementation contract address. address latestVersion; // Proposed next asset implementation contract address. address pendingVersion; // Upgrade freeze-time start. uint pendingVersionTimestamp; // Timespan for users to review the new implementation and make decision. uint constant UPGRADE_FREEZE_TIME = 3 days; // Asset implementation contract address that user decided to stick with. // 0x0 means that user uses latest version. mapping(address => address) userOptOutVersion; /** * Only asset implementation contract assigned to sender is allowed to call. */ modifier onlyAccess(address _sender) { if (getVersionFor(_sender) == msg.sender) { _; } } /** * Returns asset implementation contract address assigned to sender. * * @param _sender sender address. * * @return asset implementation contract address. */ function getVersionFor(address _sender) constant returns(address) { return userOptOutVersion[_sender] == 0 ? latestVersion : userOptOutVersion[_sender]; } /** * Returns current asset implementation contract address. * * @return asset implementation contract address. */ function getLatestVersion() constant returns(address) { return latestVersion; } /** * Returns proposed next asset implementation contract address. * * @return asset implementation contract address. */ function getPendingVersion() constant returns(address) { return pendingVersion; } /** * Returns upgrade freeze-time start. * * @return freeze-time start. */ function getPendingVersionTimestamp() constant returns(uint) { return pendingVersionTimestamp; } /** * Propose next asset implementation contract address. * * Can only be called by current asset owner. * * Note: freeze-time should not be applied for the initial setup. * * @param _newVersion asset implementation contract address. * * @return success. */ function proposeUpgrade(address _newVersion) onlyAssetOwner() returns(bool) { // Should not already be in the upgrading process. if (pendingVersion != 0x0) { return false; } // New version address should be other than 0x0. if (_newVersion == 0x0) { return false; } // Don't apply freeze-time for the initial setup. if (latestVersion == 0x0) { latestVersion = _newVersion; return true; } pendingVersion = _newVersion; pendingVersionTimestamp = now; UpgradeProposal(_newVersion); return true; } /** * Cancel the pending upgrade process. * * Can only be called by current asset owner. * * @return success. */ function purgeUpgrade() onlyAssetOwner() returns(bool) { if (pendingVersion == 0x0) { return false; } delete pendingVersion; delete pendingVersionTimestamp; return true; } /** * Finalize an upgrade process setting new asset implementation contract address. * * Can only be called after an upgrade freeze-time. * * @return success. */ function commitUpgrade() returns(bool) { if (pendingVersion == 0x0) { return false; } if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) { return false; } latestVersion = pendingVersion; delete pendingVersion; delete pendingVersionTimestamp; return true; } /** * Disagree with proposed upgrade, and stick with current asset implementation * until further explicit agreement to upgrade. * * @return success. */ function optOut() returns(bool) { if (userOptOutVersion[msg.sender] != 0x0) { return false; } userOptOutVersion[msg.sender] = latestVersion; return true; } /** * Implicitly agree to upgrade to current and future asset implementation upgrades, * until further explicit disagreement. * * @return success. */ function optIn() returns(bool) { delete userOptOutVersion[msg.sender]; return true; } }
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":"platform","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":"_platform","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":false,"inputs":[{"name":"source","type":"string"}],"name":"stringToBytes32","outputs":[{"name":"result","type":"bytes32"}],"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":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
6060604052341561000f57600080fd5b6116138061001e6000396000f3006060604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101e2578063095ea7b31461026c5780630ba12c83146102a25780630e6d1de9146102b557806318160ddd146102e4578063233850891461030957806323b872dd1461033357806323de66511461035b578063313ce567146103835780634bde38c8146103ac5780634bfaf2e8146103bf5780634dfe950d146103d25780635b48684e146103e55780636a630ee7146103f857806370a08231146104685780637b7054c81461048757806395d89b41146104b0578063a883fb90146104c3578063a9059cbb146104d6578063ac35caee146104f8578063b2b45df51461055d578063c915fc93146105fe578063cb4e75bb1461061d578063cfb5192814610630578063d4eec5a614610681578063dd62ed3e14610694578063ec698a28146106b9578063fe8beb7114610730575b61015861074f565b600160a060020a031663f2d6e0ab346000363360405160e060020a63ffffffff8716028152600160a060020a03821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b15156101cb57600080fd5b6125ee5a03f115156101dc57600080fd5b50505050005b34156101ed57600080fd5b6101f5610760565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610231578082015183820152602001610219565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027757600080fd5b61028e600160a060020a03600435166024356107fe565b604051901515815260200160405180910390f35b34156102ad57600080fd5b61028e6108ab565b34156102c057600080fd5b6102c861090f565b604051600160a060020a03909116815260200160405180910390f35b34156102ef57600080fd5b6102f761091e565b60405190815260200160405180910390f35b341561031457600080fd5b610331600160a060020a0360043581169060243516604435610994565b005b341561033e57600080fd5b61028e600160a060020a03600435811690602435166044356109f8565b341561036657600080fd5b610331600160a060020a0360043581169060243516604435610abd565b341561038e57600080fd5b610396610b20565b60405160ff909116815260200160405180910390f35b34156103b757600080fd5b6102c8610b77565b34156103ca57600080fd5b6102f7610b86565b34156103dd57600080fd5b61028e610b8c565b34156103f057600080fd5b61028e610c47565b341561040357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250610c72915050565b341561047357600080fd5b6102f7600160a060020a0360043516610dae565b341561049257600080fd5b61028e600160a060020a036004358116906024359060443516610e36565b34156104bb57600080fd5b6101f5610eff565b34156104ce57600080fd5b6102c8610f6a565b34156104e157600080fd5b61028e600160a060020a0360043516602435610f79565b341561050357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610faa95505050505050565b341561056857600080fd5b61028e60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610fcd95505050505050565b341561060957600080fd5b61028e600160a060020a0360043516611042565b341561062857600080fd5b6102f7611192565b341561063b57600080fd5b6102f760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061119895505050505050565b341561068c57600080fd5b61028e6111a5565b341561069f57600080fd5b6102f7600160a060020a0360043581169060243516611205565b34156106c457600080fd5b61028e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061129a915050565b341561073b57600080fd5b6102c8600160a060020a03600435166113e2565b600061075a336113e2565b90505b90565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081565b6000600160a060020a038316156108a15761081761074f565b600160a060020a0316637b7054c884843360006040516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561087f57600080fd5b6102c65a03f1151561089057600080fd5b5050506040518051905090506108a5565b5060005b92915050565b600654600090600160a060020a031615156108c85750600061075d565b426203f4806007540111156108df5750600061075d565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254600091600160a060020a03169063b524abcf90836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b6102c65a03f1151561098657600080fd5b505050604051805191505090565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b505050565b6000600160a060020a03831615610ab257610a1161074f565b600160a060020a031663ec698a288585853360006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015292841660248401526044830191909152909116608482015260a06064820152600060a482015260e401602060405180830381600087803b1515610a9057600080fd5b6102c65a03f11515610aa157600080fd5b505050604051805190509050610ab6565b5060005b9392505050565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b600154600254600091600160a060020a03169063dc86e6f090836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b600154600160a060020a031681565b60075490565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610bf257600080fd5b6102c65a03f11515610c0357600080fd5b505050604051805190501561075d57600654600160a060020a03161515610c2c5750600061075d565b5060068054600160a060020a03191690556000600755600190565b600160a060020a03331660009081526008602052604090208054600160a060020a0319169055600190565b60008133600160a060020a0316610c88826113e2565b600160a060020a03161415610da55760018054600254600160a060020a03909116906357a96dd09089908990898960006040516020015260405160e060020a63ffffffff8816028152600160a060020a03808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015610d37578082015183820152602001610d1f565b50505050905090810190601f168015610d645780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515610d8657600080fd5b6102c65a03f11515610d9757600080fd5b505050604051805190501491505b50949350505050565b600154600254600091600160a060020a031690634d30b6be908490846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e1457600080fd5b6102c65a03f11515610e2557600080fd5b50505060405180519150505b919050565b60008133600160a060020a0316610e4c826113e2565b600160a060020a03161415610ef75760018054600254600160a060020a03909116906314712e2f90889088908860006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515610ed857600080fd5b6102c65a03f11515610ee957600080fd5b505050604051805190501491505b509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b600654600160a060020a031690565b6000600160a060020a038316156108a157610fa38383602060405190810160405260008152611435565b90506108a5565b6000600160a060020a03841615610ab257610fc6848484611435565b9050610ab6565b600154600090600160a060020a031615610fe957506000610ab6565b60018054600160a060020a031916600160a060020a038616179055600483805161101792916020019061154f565b5061102183611198565b600255600382805161103792916020019061154f565b506001949350505050565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110a857600080fd5b6102c65a03f115156110b957600080fd5b5050506040518051905015610e3157600654600160a060020a0316156110e157506000610e31565b600160a060020a03821615156110f957506000610e31565b600554600160a060020a0316151561112e575060058054600160a060020a031916600160a060020a0383161790556001610e31565b60068054600160a060020a031916600160a060020a038416179055426007557faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a82604051600160a060020a03909116815260200160405180910390a1506001919050565b60025481565b6000602082015192915050565b600160a060020a03338116600090815260086020526040812054909116156111cf5750600061075d565b5060055433600160a060020a0390811660009081526008602052604090208054600160a060020a03191691909216179055600190565b600154600254600091600160a060020a031690631c8d5d389085908590856040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561127957600080fd5b6102c65a03f1151561128a57600080fd5b5050506040518051949350505050565b60008133600160a060020a03166112b0826113e2565b600160a060020a031614156113d85760018054600254600160a060020a039091169063161ff662908a908a908a908a8a60006040516020015260405160e060020a63ffffffff8916028152600160a060020a03808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b83811015611369578082015183820152602001611351565b50505050905090810190601f1680156113965780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156113b957600080fd5b6102c65a03f115156113ca57600080fd5b505050604051805190501491505b5095945050505050565b600160a060020a038082166000908152600860205260408120549091161561142457600160a060020a03808316600090815260086020526040902054166108a5565b5050600554600160a060020a031690565b600061143f61074f565b600160a060020a0316636a630ee7858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b838110156114df5780820151838201526020016114c7565b50505050905090810190601f16801561150c5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561152d57600080fd5b6102c65a03f1151561153e57600080fd5b505050604051805195945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061159057805160ff19168380011785556115bd565b828001600101855582156115bd579182015b828111156115bd5782518255916020019190600101906115a2565b506115c99291506115cd565b5090565b61075d91905b808211156115c957600081556001016115d35600a165627a7a72305820e966c6b7e83477a817f78d9a4d31adb992bb8162de7f4daa7dbd710557ecb72a0029
Deployed Bytecode
0x6060604052600436106101505763ffffffff60e060020a60003504166306fdde0381146101e2578063095ea7b31461026c5780630ba12c83146102a25780630e6d1de9146102b557806318160ddd146102e4578063233850891461030957806323b872dd1461033357806323de66511461035b578063313ce567146103835780634bde38c8146103ac5780634bfaf2e8146103bf5780634dfe950d146103d25780635b48684e146103e55780636a630ee7146103f857806370a08231146104685780637b7054c81461048757806395d89b41146104b0578063a883fb90146104c3578063a9059cbb146104d6578063ac35caee146104f8578063b2b45df51461055d578063c915fc93146105fe578063cb4e75bb1461061d578063cfb5192814610630578063d4eec5a614610681578063dd62ed3e14610694578063ec698a28146106b9578063fe8beb7114610730575b61015861074f565b600160a060020a031663f2d6e0ab346000363360405160e060020a63ffffffff8716028152600160a060020a03821660248201526040600482019081526044820184905290819060640185858082843782019150509450505050506000604051808303818588803b15156101cb57600080fd5b6125ee5a03f115156101dc57600080fd5b50505050005b34156101ed57600080fd5b6101f5610760565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610231578082015183820152602001610219565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027757600080fd5b61028e600160a060020a03600435166024356107fe565b604051901515815260200160405180910390f35b34156102ad57600080fd5b61028e6108ab565b34156102c057600080fd5b6102c861090f565b604051600160a060020a03909116815260200160405180910390f35b34156102ef57600080fd5b6102f761091e565b60405190815260200160405180910390f35b341561031457600080fd5b610331600160a060020a0360043581169060243516604435610994565b005b341561033e57600080fd5b61028e600160a060020a03600435811690602435166044356109f8565b341561036657600080fd5b610331600160a060020a0360043581169060243516604435610abd565b341561038e57600080fd5b610396610b20565b60405160ff909116815260200160405180910390f35b34156103b757600080fd5b6102c8610b77565b34156103ca57600080fd5b6102f7610b86565b34156103dd57600080fd5b61028e610b8c565b34156103f057600080fd5b61028e610c47565b341561040357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250610c72915050565b341561047357600080fd5b6102f7600160a060020a0360043516610dae565b341561049257600080fd5b61028e600160a060020a036004358116906024359060443516610e36565b34156104bb57600080fd5b6101f5610eff565b34156104ce57600080fd5b6102c8610f6a565b34156104e157600080fd5b61028e600160a060020a0360043516602435610f79565b341561050357600080fd5b61028e60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610faa95505050505050565b341561056857600080fd5b61028e60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610fcd95505050505050565b341561060957600080fd5b61028e600160a060020a0360043516611042565b341561062857600080fd5b6102f7611192565b341561063b57600080fd5b6102f760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061119895505050505050565b341561068c57600080fd5b61028e6111a5565b341561069f57600080fd5b6102f7600160a060020a0360043581169060243516611205565b34156106c457600080fd5b61028e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061129a915050565b341561073b57600080fd5b6102c8600160a060020a03600435166113e2565b600061075a336113e2565b90505b90565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081565b6000600160a060020a038316156108a15761081761074f565b600160a060020a0316637b7054c884843360006040516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561087f57600080fd5b6102c65a03f1151561089057600080fd5b5050506040518051905090506108a5565b5060005b92915050565b600654600090600160a060020a031615156108c85750600061075d565b426203f4806007540111156108df5750600061075d565b506006805460058054600160a060020a0319908116600160a060020a038416179091551690556000600755600190565b600554600160a060020a031690565b600154600254600091600160a060020a03169063b524abcf90836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b6102c65a03f1151561098657600080fd5b505050604051805191505090565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405190815260200160405180910390a35b505050565b6000600160a060020a03831615610ab257610a1161074f565b600160a060020a031663ec698a288585853360006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015292841660248401526044830191909152909116608482015260a06064820152600060a482015260e401602060405180830381600087803b1515610a9057600080fd5b6102c65a03f11515610aa157600080fd5b505050604051805190509050610ab6565b5060005b9392505050565b60015433600160a060020a03908116911614156109f35781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3505050565b600154600254600091600160a060020a03169063dc86e6f090836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097557600080fd5b600154600160a060020a031681565b60075490565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610bf257600080fd5b6102c65a03f11515610c0357600080fd5b505050604051805190501561075d57600654600160a060020a03161515610c2c5750600061075d565b5060068054600160a060020a03191690556000600755600190565b600160a060020a03331660009081526008602052604090208054600160a060020a0319169055600190565b60008133600160a060020a0316610c88826113e2565b600160a060020a03161415610da55760018054600254600160a060020a03909116906357a96dd09089908990898960006040516020015260405160e060020a63ffffffff8816028152600160a060020a03808716600483019081526024830187905260448301869052908316608483015260a060648301908152909160a40184818151815260200191508051906020019080838360005b83811015610d37578082015183820152602001610d1f565b50505050905090810190601f168015610d645780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515610d8657600080fd5b6102c65a03f11515610d9757600080fd5b505050604051805190501491505b50949350505050565b600154600254600091600160a060020a031690634d30b6be908490846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e1457600080fd5b6102c65a03f11515610e2557600080fd5b50505060405180519150505b919050565b60008133600160a060020a0316610e4c826113e2565b600160a060020a03161415610ef75760018054600254600160a060020a03909116906314712e2f90889088908860006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152602481019390935260448301919091529091166064820152608401602060405180830381600087803b1515610ed857600080fd5b6102c65a03f11515610ee957600080fd5b505050604051805190501491505b509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107f65780601f106107cb576101008083540402835291602001916107f6565b600654600160a060020a031690565b6000600160a060020a038316156108a157610fa38383602060405190810160405260008152611435565b90506108a5565b6000600160a060020a03841615610ab257610fc6848484611435565b9050610ab6565b600154600090600160a060020a031615610fe957506000610ab6565b60018054600160a060020a031916600160a060020a038616179055600483805161101792916020019061154f565b5061102183611198565b600255600382805161103792916020019061154f565b506001949350505050565b600154600254600091600160a060020a03169063e96b462a903390846040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110a857600080fd5b6102c65a03f115156110b957600080fd5b5050506040518051905015610e3157600654600160a060020a0316156110e157506000610e31565b600160a060020a03821615156110f957506000610e31565b600554600160a060020a0316151561112e575060058054600160a060020a031916600160a060020a0383161790556001610e31565b60068054600160a060020a031916600160a060020a038416179055426007557faf574319215a31df9b528258f1bdeef2b12b169dc85ff443a49373248c77493a82604051600160a060020a03909116815260200160405180910390a1506001919050565b60025481565b6000602082015192915050565b600160a060020a03338116600090815260086020526040812054909116156111cf5750600061075d565b5060055433600160a060020a0390811660009081526008602052604090208054600160a060020a03191691909216179055600190565b600154600254600091600160a060020a031690631c8d5d389085908590856040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561127957600080fd5b6102c65a03f1151561128a57600080fd5b5050506040518051949350505050565b60008133600160a060020a03166112b0826113e2565b600160a060020a031614156113d85760018054600254600160a060020a039091169063161ff662908a908a908a908a8a60006040516020015260405160e060020a63ffffffff8916028152600160a060020a03808816600483019081528782166024840152604483018790526064830186905290831660a483015260c060848301908152909160c40184818151815260200191508051906020019080838360005b83811015611369578082015183820152602001611351565b50505050905090810190601f1680156113965780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156113b957600080fd5b6102c65a03f115156113ca57600080fd5b505050604051805190501491505b5095945050505050565b600160a060020a038082166000908152600860205260408120549091161561142457600160a060020a03808316600090815260086020526040902054166108a5565b5050600554600160a060020a031690565b600061143f61074f565b600160a060020a0316636a630ee7858585336000604051602001526040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a031681526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b838110156114df5780820151838201526020016114c7565b50505050905090810190601f16801561150c5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561152d57600080fd5b6102c65a03f1151561153e57600080fd5b505050604051805195945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061159057805160ff19168380011785556115bd565b828001600101855582156115bd579182015b828111156115bd5782518255916020019190600101906115a2565b506115c99291506115cd565b5090565b61075d91905b808211156115c957600081556001016115d35600a165627a7a72305820e966c6b7e83477a817f78d9a4d31adb992bb8162de7f4daa7dbd710557ecb72a0029
Swarm Source
bzzr://e966c6b7e83477a817f78d9a4d31adb992bb8162de7f4daa7dbd710557ecb72a
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.