ETH Price: $1,842.03 (-1.12%)
 

Overview

Max Total Supply

110,003,672,527.17804783 ORBT

Holders

285

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Extended

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-09-03
*/

pragma solidity 0.4.24;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
	function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
		if (_a == 0) {
			return 0;
		}
		uint256 c = _a * _b;
		assert(c / _a == _b);
		return c;
	}

	function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
		return _a / _b;
	}

	function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
		assert(_b <= _a);
		return _a - _b;
	}

	function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
		uint256 c = _a + _b;
		assert(c >= _a);
		return c;
	}
}

/**
 * @title Ownable
 * @dev The Ownable contract holds owner addresses, and provides basic authorization control
 * functions.
 */
contract Ownable {
	/**
	* @dev Allows to check if the given address has owner rights.
	* @param _owner The address to check for owner rights.
	* @return True if the address is owner, false if it is not.
	*/
	mapping(address => bool) public owners;
	
	/**
	* @dev The Ownable constructor adds the sender
	* account to the owners mapping.
	*/
	constructor() public {
		owners[msg.sender] = true;
	}

	/**
	* @dev Throws if called by any account other than the owner.
	*/
	modifier onlyOwners() {
		require(owners[msg.sender], 'Owner message sender required.');
		_;
	}

	/**
	* @dev Allows the current owners to grant or revoke 
	* owner-level access rights to the contract.
	* @param _owner The address to grant or revoke owner rights.
	* @param _isAllowed Boolean granting or revoking owner rights.
	* @return True if the operation has passed or throws if failed.
	*/
	function setOwner(address _owner, bool _isAllowed) public onlyOwners {
		require(_owner != address(0), 'Non-zero owner-address required.');
		owners[_owner] = _isAllowed;
	}
}

/**
 * @title Destroyable
 * @dev Base contract that can be destroyed by the owners. All funds in contract will be sent back.
 */
contract Destroyable is Ownable {

	constructor() public payable {}

	/**
	* @dev Transfers The current balance to the message sender and terminates the contract.
	*/
	function destroy() public onlyOwners {
		selfdestruct(msg.sender);
	}

	/**
	* @dev Transfers The current balance to the specified _recipient and terminates the contract.
	* @param _recipient The address to send the current balance to.
	*/
	function destroyAndSend(address _recipient) public onlyOwners {
		require(_recipient != address(0), 'Non-zero recipient address required.');
		selfdestruct(_recipient);
	}
}

/**
 * @title BotOperated
 * @dev The BotOperated contract holds bot addresses, and provides basic authorization control
 * functions.
 */
contract BotOperated is Ownable {
	/**
	* @dev Allows to check if the given address has bot rights.
	* @param _bot The address to check for bot rights.
	* @return True if the address is bot, false if it is not.
	*/
	mapping(address => bool) public bots;

	/**
	 * @dev Throws if called by any account other than bot or owner.
	 */
	modifier onlyBotsOrOwners() {
		require(bots[msg.sender] || owners[msg.sender], 'Bot or owner message sender required.');
		_;
	}

	/**
	* @dev Throws if called by any account other than the bot.
	*/
	modifier onlyBots() {
		require(bots[msg.sender], 'Bot message sender required.');
		_;
	}

	/**
	* @dev The BotOperated constructor adds the sender
	* account to the bots mapping.
	*/
	constructor() public {
		bots[msg.sender] = true;
	}

	/**
	* @dev Allows the current owners to grant or revoke 
	* bot-level access rights to the contract.
	* @param _bot The address to grant or revoke bot rights.
	* @param _isAllowed Boolean granting or revoking bot rights.
	* @return True if the operation has passed or throws if failed.
	*/
	function setBot(address _bot, bool _isAllowed) public onlyOwners {
		require(_bot != address(0), 'Non-zero bot-address required.');
		bots[_bot] = _isAllowed;
	}
}

/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is BotOperated {
	event Pause();
	event Unpause();

	bool public paused = true;

	/**
	* @dev Modifier to allow actions only when the contract IS NOT paused.
	*/
	modifier whenNotPaused() {
		require(!paused, 'Unpaused contract required.');
		_;
	}

	/**
	* @dev Called by the owner to pause, triggers stopped state.
	* @return True if the operation has passed.
	*/
	function pause() public onlyBotsOrOwners {
		paused = true;
		emit Pause();
	}

	/**
	* @dev Called by the owner to unpause, returns to normal state.
	* @return True if the operation has passed.
	*/
	function unpause() public onlyBotsOrOwners {
		paused = false;
		emit Unpause();
	}
}

interface EternalDataStorage {
	function balances(address _owner) external view returns (uint256);

	function setBalance(address _owner, uint256 _value) external;

	function allowed(address _owner, address _spender) external view returns (uint256);

	function setAllowance(address _owner, address _spender, uint256 _amount) external;

	function totalSupply() external view returns (uint256);

	function setTotalSupply(uint256 _value) external;

	function frozenAccounts(address _target) external view returns (bool isFrozen);

	function setFrozenAccount(address _target, bool _isFrozen) external;

	function increaseAllowance(address _owner,  address _spender, uint256 _increase) external;

	function decreaseAllowance(address _owner,  address _spender, uint256 _decrease) external;
}

interface Ledger {
	function addTransaction(address _from, address _to, uint _tokens) external;
}

interface WhitelistData {
	function kycId(address _customer) external view returns (bytes32);
}


/**
 * @title ERC20Standard token
 * @dev Implementation of the basic standard token.
 * @notice https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
 */
contract ERC20Standard {
	
	using SafeMath for uint256;

	EternalDataStorage internal dataStorage;

	Ledger internal ledger;

	WhitelistData internal whitelist;

	/**
	 * @dev Triggered when tokens are transferred.
	 * @notice MUST trigger when tokens are transferred, including zero value transfers.
	 */
	event Transfer(address indexed _from, address indexed _to, uint256 _value);

	/**
	 * @dev Triggered whenever approve(address _spender, uint256 _value) is called.
	 * @notice MUST trigger on any successful call to approve(address _spender, uint256 _value).
	 */
	event Approval(address indexed _owner, address indexed _spender, uint256 _value);

	modifier isWhitelisted(address _customer) {
		require(whitelist.kycId(_customer) != 0x0, 'Whitelisted customer required.');
		_;
	}

	/**
	 * @dev Constructor function that instantiates the EternalDataStorage, Ledger and Whitelist contracts.
	 * @param _dataStorage Address of the Data Storage Contract.
	 * @param _ledger Address of the Ledger Contract.
	 * @param _whitelist Address of the Whitelist Data Contract.
	 */
	constructor(address _dataStorage, address _ledger, address _whitelist) public {
		require(_dataStorage != address(0), 'Non-zero data storage address required.');
		require(_ledger != address(0), 'Non-zero ledger address required.');
		require(_whitelist != address(0), 'Non-zero whitelist address required.');

		dataStorage = EternalDataStorage(_dataStorage);
		ledger = Ledger(_ledger);
		whitelist = WhitelistData(_whitelist);
	}

	/**
	 * @dev Gets the total supply of tokens.
	 * @return totalSupplyAmount The total amount of tokens.
	 */
	function totalSupply() public view returns (uint256 totalSupplyAmount) {
		return dataStorage.totalSupply();
	}

	/**
	 * @dev Get the balance of the specified `_owner` address.
	 * @return balance The token balance of the given address.
	 */
	function balanceOf(address _owner) public view returns (uint256 balance) {
		return dataStorage.balances(_owner);
	}

	/**
	 * @dev Transfer token to a specified address.
	 * @param _to The address to transfer to.
	 * @param _value The amount to be transferred.
	 * @return success True if the transfer was successful, or throws.
	 */
	function transfer(address _to, uint256 _value) public returns (bool success) {
		return _transfer(msg.sender, _to, _value);
	}

	/**
	 * @dev Transfer `_value` tokens to `_to` in behalf of `_from`.
	 * @param _from The address of the sender.
	 * @param _to The address of the recipient.
	 * @param _value The amount to send.
	 * @return success True if the transfer was successful, or throws.
	 */    
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
		uint256 allowed = dataStorage.allowed(_from, msg.sender);
		require(allowed >= _value, 'From account has insufficient balance');

		allowed = allowed.sub(_value);
		dataStorage.setAllowance(_from, msg.sender, allowed);

		return _transfer(_from, _to, _value);
	}

	/**
	 * @dev Allows `_spender` to withdraw from your account multiple times, up to the `_value` amount.
	 * approve will revert if allowance of _spender is 0. increaseApproval and decreaseApproval should
	 * be used instead to avoid exploit identified here: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md#approve
	 * @notice If this function is called again it overwrites the current allowance with `_value`.
	 * @param _spender The address authorized to spend.
	 * @param _value The max amount they can spend.
	 * @return success True if the operation was successful, or false.
	 */
	 
	function approve(address _spender, uint256 _value) public returns (bool success) {
		require
		(
			_value == 0 || dataStorage.allowed(msg.sender, _spender) == 0,
			'Approve value is required to be zero or account has already been approved.'
		);
		
		dataStorage.setAllowance(msg.sender, _spender, _value);
		
		emit Approval(msg.sender, _spender, _value);
		
		return true;
	}

	/**
	 * @dev Increase the amount of tokens that an owner allowed to a spender.
	 * This function must be called for increasing approval from a non-zero value
	 * as using approve will revert. It has been added as a fix to the exploit mentioned
	 * here: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md#approve
	 * @param _spender The address which will spend the funds.
	 * @param _addedValue The amount of tokens to increase the allowance by.
	 */
	function increaseApproval(address _spender, uint256 _addedValue) public {
		dataStorage.increaseAllowance(msg.sender, _spender, _addedValue);
		
		emit Approval(msg.sender, _spender, dataStorage.allowed(msg.sender, _spender));
	}

	/**
	 * @dev Decrease the amount of tokens that an owner allowed to a spender.
	 * This function must be called for decreasing approval from a non-zero value
	 * as using approve will revert. It has been added as a fix to the exploit mentioned
	 * here: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md#approve
	 * allowed value is better to use this function to avoid 2 calls (and wait until
	 * the first transaction is mined)
	 * @param _spender The address which will spend the funds.
	 * @param _subtractedValue The amount of tokens to decrease the allowance by.
	 */
	function decreaseApproval(address _spender, uint256 _subtractedValue) public {		
		dataStorage.decreaseAllowance(msg.sender, _spender, _subtractedValue);
		
		emit Approval(msg.sender, _spender, dataStorage.allowed(msg.sender, _spender));
	}

	/**
	* @dev Function to check the amount of tokens that an owner allowed to a spender.
	* @param _owner The address which owns the funds.
	* @param _spender The address which will spend the funds.
	* @return A uint256 specifying the amount of tokens still available for the spender.
	*/
	function allowance(address _owner, address _spender) public view returns (uint256) {
		return dataStorage.allowed(_owner, _spender);
	}

	/**
	 * @dev Internal transfer, can only be called by this contract.
	 * @param _from The address of the sender.
	 * @param _to The address of the recipient.
	 * @param _value The amount to send.
	 * @return success True if the transfer was successful, or throws.
	 */
	function _transfer(address _from, address _to, uint256 _value) internal returns (bool success) {
		require(_to != address(0), 'Non-zero to-address required.');
		uint256 fromBalance = dataStorage.balances(_from);
		require(fromBalance >= _value, 'From-address has insufficient balance.');

		fromBalance = fromBalance.sub(_value);

		uint256 toBalance = dataStorage.balances(_to);
		toBalance = toBalance.add(_value);

		dataStorage.setBalance(_from, fromBalance);
		dataStorage.setBalance(_to, toBalance);

		ledger.addTransaction(_from, _to, _value);

		emit Transfer(_from, _to, _value);

		return true;
	}
}

/**
 * @title MintableToken
 * @dev ERC20Standard modified with mintable token creation.
 */
contract MintableToken is ERC20Standard, Ownable {

	/**
	 * @dev Hardcap - maximum allowed amount of tokens to be minted
	 */
	uint104 public constant MINTING_HARDCAP = 1e30;

	/**
	* @dev Auto-generated function to check whether the minting has finished.
	* @return True if the minting has finished, or false.
	*/
	bool public mintingFinished = false;

	event Mint(address indexed _to, uint256 _amount);
	
	event MintFinished();

	modifier canMint() {
		require(!mintingFinished, 'Uninished minting required.');
		_;
	}

	/**
	* @dev Function to mint tokens
	* @param _to The address that will receive the minted tokens.
	* @param _amount The amount of tokens to mint.
	*/
	function mint(address _to, uint256 _amount) public onlyOwners canMint() {
		uint256 totalSupply = dataStorage.totalSupply();
		totalSupply = totalSupply.add(_amount);
		
		require(totalSupply <= MINTING_HARDCAP, 'Total supply of token in circulation must be below hardcap.');
		
		dataStorage.setTotalSupply(totalSupply);

		uint256 toBalance = dataStorage.balances(_to);
		toBalance = toBalance.add(_amount);
		dataStorage.setBalance(_to, toBalance);

		ledger.addTransaction(address(0), _to, _amount);

		emit Transfer(address(0), _to, _amount);

		emit Mint(_to, _amount);
	}

	/**
	* @dev Function to permanently stop minting new tokens.
	*/
	function finishMinting() public onlyOwners {
		mintingFinished = true;
		emit MintFinished();
	}
}

/**
 * @title BurnableToken
 * @dev ERC20Standard token that can be irreversibly burned(destroyed).
 */
contract BurnableToken is ERC20Standard {

	event Burn(address indexed _burner, uint256 _value);
	
	/**
	 * @dev Remove tokens from the system irreversibly.
	 * @notice Destroy tokens from your account.
	 * @param _value The amount of tokens to burn.
	 */
	function burn(uint256 _value) public {
		uint256 senderBalance = dataStorage.balances(msg.sender);
		require(senderBalance >= _value, 'Burn value less than account balance required.');
		senderBalance = senderBalance.sub(_value);
		dataStorage.setBalance(msg.sender, senderBalance);

		uint256 totalSupply = dataStorage.totalSupply();
		totalSupply = totalSupply.sub(_value);
		dataStorage.setTotalSupply(totalSupply);

		emit Burn(msg.sender, _value);

		emit Transfer(msg.sender, address(0), _value);
	}

	/**
	 * @dev Remove specified `_value` tokens from the system irreversibly on behalf of `_from`.
	 * @param _from The address from which to burn tokens.
	 * @param _value The amount of money to burn.
	 */
	function burnFrom(address _from, uint256 _value) public {
		uint256 fromBalance = dataStorage.balances(_from);
		require(fromBalance >= _value, 'Burn value less than from-account balance required.');

		uint256 allowed = dataStorage.allowed(_from, msg.sender);
		require(allowed >= _value, 'Burn value less than account allowance required.');

		fromBalance = fromBalance.sub(_value);
		dataStorage.setBalance(_from, fromBalance);

		allowed = allowed.sub(_value);
		dataStorage.setAllowance(_from, msg.sender, allowed);

		uint256 totalSupply = dataStorage.totalSupply();
		totalSupply = totalSupply.sub(_value);
		dataStorage.setTotalSupply(totalSupply);

		emit Burn(_from, _value);

		emit Transfer(_from, address(0), _value);
	}
}

/**
 * @title PausableToken
 * @dev ERC20Standard modified with pausable transfers.
 **/
contract PausableToken is ERC20Standard, Pausable {
	
	function transfer(address _to, uint256 _value) public whenNotPaused returns (bool success) {
		return super.transfer(_to, _value);
	}

	function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool success) {
		return super.transferFrom(_from, _to, _value);
	}

	function approve(address _spender, uint256 _value) public whenNotPaused returns (bool success) {
		return super.approve(_spender, _value);
	}
}

/**
 * @title FreezableToken
 * @dev ERC20Standard modified with freezing accounts ability.
 */
contract FreezableToken is ERC20Standard, Ownable {

	event FrozenFunds(address indexed _target, bool _isFrozen);

	/**
	 * @dev Allow or prevent target address from sending & receiving tokens.
	 * @param _target Address to be frozen or unfrozen.
	 * @param _isFrozen Boolean indicating freeze or unfreeze operation.
	 */ 
	function freezeAccount(address _target, bool _isFrozen) public onlyOwners {
		require(_target != address(0), 'Non-zero to-be-frozen-account address required.');
		dataStorage.setFrozenAccount(_target, _isFrozen);
		emit FrozenFunds(_target, _isFrozen);
	}

	/**
	 * @dev Checks whether the target is frozen or not.
	 * @param _target Address to check.
	 * @return isFrozen A boolean that indicates whether the account is frozen or not. 
	 */
	function isAccountFrozen(address _target) public view returns (bool isFrozen) {
		return dataStorage.frozenAccounts(_target);
	}

	/**
	 * @dev Overrided _transfer function that uses freeze functionality
	 */
	function _transfer(address _from, address _to, uint256 _value) internal returns (bool success) {
		assert(!dataStorage.frozenAccounts(_from));

		assert(!dataStorage.frozenAccounts(_to));
		
		return super._transfer(_from, _to, _value);
	}
}

/**
 * @title ERC20Extended
 * @dev Standard ERC20 token with extended functionalities.
 */
contract ERC20Extended is FreezableToken, PausableToken, BurnableToken, MintableToken, Destroyable {
	/**
	* @dev Auto-generated function that returns the name of the token.
	* @return The name of the token.
	*/
	string public constant name = 'ORBISE10';

	/**
	* @dev Auto-generated function that returns the symbol of the token.
	* @return The symbol of the token.
	*/
	string public constant symbol = 'ORBT';

	/**
	* @dev Auto-generated function that returns the number of decimals of the token.
	* @return The number of decimals of the token.
	*/
	uint8 public constant decimals = 18;

	/**
	* @dev Constant for the minimum allowed amount of tokens one can buy
	*/
	uint72 public constant MINIMUM_BUY_AMOUNT = 200e18;

	/**
	* @dev Auto-generated function that gets the price at which the token is sold.
	* @return The sell price of the token.
	*/
	uint256 public sellPrice;

	/**
	* @dev Auto-generated function that gets the price at which the token is bought.
	* @return The buy price of the token.
	*/
	uint256 public buyPrice;

	/**
	* @dev Auto-generated function that gets the address of the wallet of the contract.
	* @return The address of the wallet.
	*/
	address public wallet;

	/**
	* @dev Constructor function that calculates the total supply of tokens, 
	* sets the initial sell and buy prices and
	* passes arguments to base constructors.
	* @param _dataStorage Address of the Data Storage Contract.
	* @param _ledger Address of the Data Storage Contract.
	* @param _whitelist Address of the Whitelist Data Contract.
	*/
	constructor
	(
		address _dataStorage,
		address _ledger,
		address _whitelist
	)
		ERC20Standard(_dataStorage, _ledger, _whitelist)
		public 
	{
	}

	/**
	* @dev Fallback function that allows the contract
	* to receive Ether directly.
	*/
	function() public payable { }

	/**
	* @dev Function that sets both the sell and the buy price of the token.
	* @param _sellPrice The price at which the token will be sold.
	* @param _buyPrice The price at which the token will be bought.
	*/
	function setPrices(uint256 _sellPrice, uint256 _buyPrice) public onlyBotsOrOwners {
		sellPrice = _sellPrice;
		buyPrice = _buyPrice;
	}

	/**
	* @dev Function that sets the current wallet address.
	* @param _walletAddress The address of wallet to be set.
	*/
	function setWallet(address _walletAddress) public onlyOwners {
		require(_walletAddress != address(0), 'Non-zero wallet address required.');
		wallet = _walletAddress;
	}

	/**
	* @dev Send Ether to buy tokens at the current token sell price.
	* @notice buy function has minimum allowed amount one can buy
	*/
	function buy() public payable whenNotPaused isWhitelisted(msg.sender) {
		uint256 amount = msg.value.mul(1e18);
		
		amount = amount.div(sellPrice);

		require(amount >= MINIMUM_BUY_AMOUNT, "Buy amount too small");
		
		_transfer(this, msg.sender, amount);
	}
	
	/**
	* @dev Sell `_amount` tokens at the current buy price.
	* @param _amount The amount to sell.
	*/
	function sell(uint256 _amount) public whenNotPaused {
		uint256 toBeTransferred = _amount.mul(buyPrice);

		require(toBeTransferred >= 1e18, "Sell amount too small");

		toBeTransferred = toBeTransferred.div(1e18);

		require(address(this).balance >= toBeTransferred, 'Contract has insufficient balance.');
		_transfer(msg.sender, this, _amount);
		
		msg.sender.transfer(toBeTransferred);
	}

	/**
	* @dev Get the contract balance in WEI.
	*/
	function getContractBalance() public view returns (uint256) {
		return address(this).balance;
	}

	/**
	* @dev Withdraw `_amount` ETH to the wallet address.
	* @param _amount The amount to withdraw.
	*/
	function withdraw(uint256 _amount) public onlyOwners {
		require(address(this).balance >= _amount, 'Unable to withdraw specified amount.');
		require(wallet != address(0), 'Non-zero wallet address required.');
		wallet.transfer(_amount);
	}

	/**
	* @dev Transfer, which is used when Orbise is bought with different currency than ETH.
	* @param _to The address of the recipient.
	* @param _value The amount of Orbise Tokens to transfer.
	* @return success True if operation is executed successfully.
	*/
	function nonEtherPurchaseTransfer(address _to, uint256 _value) public isWhitelisted(_to) onlyBots whenNotPaused returns (bool success) {
		return _transfer(msg.sender, _to, _value);
	}
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"owners","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sellPrice","type":"uint256"},{"name":"_buyPrice","type":"uint256"}],"name":"setPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupplyAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bot","type":"address"},{"name":"_isAllowed","type":"bool"}],"name":"setBot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_BUY_AMOUNT","outputs":[{"name":"","type":"uint72"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_isAllowed","type":"bool"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getContractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MINTING_HARDCAP","outputs":[{"name":"","type":"uint104"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"nonEtherPurchaseTransfer","outputs":[{"name":"success","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":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bots","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_walletAddress","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_isFrozen","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"}],"name":"isAccountFrozen","outputs":[{"name":"isFrozen","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"destroyAndSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_dataStorage","type":"address"},{"name":"_ledger","type":"address"},{"name":"_whitelist","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_burner","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_isFrozen","type":"bool"}],"name":"FrozenFunds","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":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526005805461ff001960ff1990911660011716905534801561002457600080fd5b5060405160608062003476833981016040908152815160208301519190920151828282600160a060020a03831615156100e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4e6f6e2d7a65726f20646174612073746f72616765206164647265737320726560448201527f7175697265642e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038216151561018157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f6e2d7a65726f206c6564676572206164647265737320726571756972656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116151561021d57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4e6f6e2d7a65726f2077686974656c697374206164647265737320726571756960448201527f7265642e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054600160a060020a03948516600160a060020a0319918216178255600180549486169482169490941784556002805493909516921691909117909255338252600360209081526040808420805460ff199081168517909155600490925290922080549092161790555050506131db806200029b6000396000f3006080604052600436106101c95763ffffffff60e060020a600035041663022914a781146101cb57806305d2035b1461020057806305fefda71461021557806306fdde0314610230578063095ea7b3146102ba57806318160ddd146102de57806323b872dd146103055780632e1a7d4d1461032f578063313ce56714610347578063342aa8b5146103725780633c3e2447146103985780633f4ba83a146103cb57806340c10f19146103e057806342966c68146104045780634b7503341461041c578063516c731c14610431578063521eb273146104575780635c975abb14610488578063661884631461049d5780636f9fb98a146104c157806370a08231146104d657806379cc6790146104f75780637d64bcb41461051b57806381cda3171461053057806383197ef0146105675780638456cb591461057c5780638620410b1461059157806390066b49146105a657806395d89b41146105ca578063a6f2ae3a146105df578063a9059cbb146105e7578063bfd792841461060b578063d73dd6231461062c578063dd62ed3e14610650578063deaa59df14610677578063e4849b3214610698578063e724529c146106b0578063e816d97f146106d6578063f5074f41146106f7575b005b3480156101d757600080fd5b506101ec600160a060020a0360043516610718565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506101ec61072d565b34801561022157600080fd5b506101c960043560243561073b565b34801561023c57600080fd5b506102456107ef565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027f578181015183820152602001610267565b50505050905090810190601f1680156102ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c657600080fd5b506101ec600160a060020a0360043516602435610826565b3480156102ea57600080fd5b506102f3610883565b60408051918252519081900360200190f35b34801561031157600080fd5b506101ec600160a060020a0360043581169060243516604435610908565b34801561033b57600080fd5b506101c9600435610967565b34801561035357600080fd5b5061035c610b02565b6040805160ff9092168252519081900360200190f35b34801561037e57600080fd5b506101c9600160a060020a03600435166024351515610b07565b3480156103a457600080fd5b506103ad610be9565b6040805168ffffffffffffffffff9092168252519081900360200190f35b3480156103d757600080fd5b506101c9610bf6565b3480156103ec57600080fd5b506101c9600160a060020a0360043516602435610cd4565b34801561041057600080fd5b506101c9600435611124565b34801561042857600080fd5b506102f361140e565b34801561043d57600080fd5b506101c9600160a060020a03600435166024351515611414565b34801561046357600080fd5b5061046c6114f6565b60408051600160a060020a039092168252519081900360200190f35b34801561049457600080fd5b506101ec611505565b3480156104a957600080fd5b506101c9600160a060020a036004351660243561150e565b3480156104cd57600080fd5b506102f361165a565b3480156104e257600080fd5b506102f3600160a060020a036004351661165f565b34801561050357600080fd5b506101c9600160a060020a03600435166024356116e3565b34801561052757600080fd5b506101c9611b8c565b34801561053c57600080fd5b50610545611c1d565b604080516cffffffffffffffffffffffffff9092168252519081900360200190f35b34801561057357600080fd5b506101c9611c2e565b34801561058857600080fd5b506101c9611c88565b34801561059d57600080fd5b506102f3611d69565b3480156105b257600080fd5b506101ec600160a060020a0360043516602435611d6f565b3480156105d657600080fd5b50610245611f21565b6101c9611f58565b3480156105f357600080fd5b506101ec600160a060020a0360043516602435612130565b34801561061757600080fd5b506101ec600160a060020a0360043516612186565b34801561063857600080fd5b506101c9600160a060020a036004351660243561219b565b34801561065c57600080fd5b506102f3600160a060020a036004358116906024351661220c565b34801561068357600080fd5b506101c9600160a060020a0360043516612299565b3480156106a457600080fd5b506101c96004356123a5565b3480156106bc57600080fd5b506101c9600160a060020a03600435166024351515612539565b3480156106e257600080fd5b506101ec600160a060020a03600435166126df565b34801561070357600080fd5b506101c9600160a060020a0360043516612747565b60036020526000908152604090205460ff1681565b600554610100900460ff1681565b3360009081526004602052604090205460ff168061076857503360009081526003602052604090205460ff165b15156107e4576040805160e560020a62461bcd02815260206004820152602560248201527f426f74206f72206f776e6572206d6573736167652073656e646572207265717560448201527f697265642e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600691909155600755565b60408051808201909152600881527f4f52424953453130000000000000000000000000000000000000000000000000602082015281565b60055460009060ff1615610872576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b61087c838361282f565b9392505050565b60008060009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108d757600080fd5b505af11580156108eb573d6000803e3d6000fd5b505050506040513d602081101561090157600080fd5b5051905090565b60055460009060ff1615610954576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b61095f848484612a36565b949350505050565b3360009081526003602052604090205460ff1615156109be576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b3031811115610a3c576040805160e560020a62461bcd028152602060048201526024808201527f556e61626c6520746f2077697468647261772073706563696669656420616d6f60448201527f756e742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600854600160a060020a03161515610ac4576040805160e560020a62461bcd02815260206004820152602160248201527f4e6f6e2d7a65726f2077616c6c6574206164647265737320726571756972656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600854604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610afe573d6000803e3d6000fd5b5050565b601281565b3360009081526003602052604090205460ff161515610b5e576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0382161515610bbe576040805160e560020a62461bcd02815260206004820152601e60248201527f4e6f6e2d7a65726f20626f742d616464726573732072657175697265642e0000604482015290519081900360640190fd5b600160a060020a03919091166000908152600460205260409020805460ff1916911515919091179055565b680ad78ebc5ac620000081565b3360009081526004602052604090205460ff1680610c2357503360009081526003602052604090205460ff165b1515610c9f576040805160e560020a62461bcd02815260206004820152602560248201527f426f74206f72206f776e6572206d6573736167652073656e646572207265717560448201527f697265642e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b33600090815260036020526040812054819060ff161515610d2d576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600554610100900460ff1615610d8d576040805160e560020a62461bcd02815260206004820152601b60248201527f556e696e6973686564206d696e74696e672072657175697265642e0000000000604482015290519081900360640190fd5b6000809054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d6020811015610e0957600080fd5b50519150610e1d828463ffffffff612bed16565b91506c0c9f2c9cd04674edea40000000821115610eaa576040805160e560020a62461bcd02815260206004820152603b60248201527f546f74616c20737570706c79206f6620746f6b656e20696e2063697263756c6160448201527f74696f6e206d7573742062652062656c6f7720686172646361702e0000000000606482015290519081900360840190fd5b60008054604080517ff7ea7a3d000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169263f7ea7a3d9260248084019382900301818387803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b5050600080546040805160e060020a6327e235e3028152600160a060020a038a8116600483015291519190921694506327e235e3935060248083019360209383900390910190829087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050506040513d6020811015610fa057600080fd5b50519050610fb4818463ffffffff612bed16565b600080546040805160e260020a6338c110ef028152600160a060020a03898116600483015260248201869052915194955091169263e30443bc9260448084019391929182900301818387803b15801561100c57600080fd5b505af1158015611020573d6000803e3d6000fd5b5050600154604080517ffe73b27f000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a038a81166024840152604483018a9052925192909316945063fe73b27f9350606480820193929182900301818387803b15801561109857600080fd5b505af11580156110ac573d6000803e3d6000fd5b5050604080518681529051600160a060020a0388169350600092506000805160206131708339815191529181900360200190a3604080518481529051600160a060020a038616917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a250505050565b600080546040805160e060020a6327e235e302815233600482015290518392600160a060020a0316916327e235e391602480830192602092919082900301818787803b15801561117357600080fd5b505af1158015611187573d6000803e3d6000fd5b505050506040513d602081101561119d57600080fd5b505191508282101561121f576040805160e560020a62461bcd02815260206004820152602e60248201527f4275726e2076616c7565206c657373207468616e206163636f756e742062616c60448201527f616e63652072657175697265642e000000000000000000000000000000000000606482015290519081900360840190fd5b61122f828463ffffffff612bfc16565b600080546040805160e260020a6338c110ef028152336004820152602481018590529051939550600160a060020a039091169263e30443bc9260448084019391929182900301818387803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b505050506000809054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156112f057600080fd5b505af1158015611304573d6000803e3d6000fd5b505050506040513d602081101561131a57600080fd5b5051905061132e818463ffffffff612bfc16565b60008054604080517ff7ea7a3d000000000000000000000000000000000000000000000000000000008152600481018590529051939450600160a060020a039091169263f7ea7a3d9260248084019391929182900301818387803b15801561139557600080fd5b505af11580156113a9573d6000803e3d6000fd5b50506040805186815290513393507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592509081900360200190a260408051848152905160009133916000805160206131708339815191529181900360200190a3505050565b60065481565b3360009081526003602052604090205460ff16151561146b576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a03821615156114cb576040805160e560020a62461bcd02815260206004820181905260248201527f4e6f6e2d7a65726f206f776e65722d616464726573732072657175697265642e604482015290519081900360640190fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600854600160a060020a031681565b60055460ff1681565b60008054604080517fd73b1dc9000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169263d73b1dc9926064808201939182900301818387803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b5050600080546040805160e060020a635c6581650281523360048201819052600160a060020a03808a166024840181905293519397509095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594931692635c658165926044808401936020939083900390910190829087803b15801561161957600080fd5b505af115801561162d573d6000803e3d6000fd5b505050506040513d602081101561164357600080fd5b505160408051918252519081900360200190a35050565b303190565b600080546040805160e060020a6327e235e3028152600160a060020a038581166004830152915191909216916327e235e391602480830192602092919082900301818787803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b505050506040513d60208110156116db57600080fd5b505192915050565b600080546040805160e060020a6327e235e3028152600160a060020a03868116600483015291518493849316916327e235e391602480830192602092919082900301818787803b15801561173657600080fd5b505af115801561174a573d6000803e3d6000fd5b505050506040513d602081101561176057600080fd5b50519250838310156117e2576040805160e560020a62461bcd02815260206004820152603360248201527f4275726e2076616c7565206c657373207468616e2066726f6d2d6163636f756e60448201527f742062616c616e63652072657175697265642e00000000000000000000000000606482015290519081900360840190fd5b600080546040805160e060020a635c658165028152600160a060020a03898116600483015233602483015291519190921692635c65816592604480820193602093909283900390910190829087803b15801561183d57600080fd5b505af1158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b50519150838210156118e9576040805160e560020a62461bcd02815260206004820152603060248201527f4275726e2076616c7565206c657373207468616e206163636f756e7420616c6c60448201527f6f77616e63652072657175697265642e00000000000000000000000000000000606482015290519081900360840190fd5b6118f9838563ffffffff612bfc16565b600080546040805160e260020a6338c110ef028152600160a060020a038a8116600483015260248201869052915194975091169263e30443bc9260448084019391929182900301818387803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b5050505061197c8483612bfc90919063ffffffff16565b60008054604080517fda46098c000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015233602483015260448201869052915194965091169263da46098c9260648084019391929182900301818387803b1580156119f057600080fd5b505af1158015611a04573d6000803e3d6000fd5b505050506000809054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a5a57600080fd5b505af1158015611a6e573d6000803e3d6000fd5b505050506040513d6020811015611a8457600080fd5b50519050611a98818563ffffffff612bfc16565b60008054604080517ff7ea7a3d000000000000000000000000000000000000000000000000000000008152600481018590529051939450600160a060020a039091169263f7ea7a3d9260248084019391929182900301818387803b158015611aff57600080fd5b505af1158015611b13573d6000803e3d6000fd5b5050604080518781529051600160a060020a03891693507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592509081900360200190a2604080518581529051600091600160a060020a038816916000805160206131708339815191529181900360200190a35050505050565b3360009081526003602052604090205460ff161515611be3576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b6005805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b6c0c9f2c9cd04674edea4000000081565b3360009081526003602052604090205460ff161515611c85576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b33ff5b3360009081526004602052604090205460ff1680611cb557503360009081526003602052604090205460ff165b1515611d31576040805160e560020a62461bcd02815260206004820152602560248201527f426f74206f72206f776e6572206d6573736167652073656e646572207265717560448201527f697265642e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60075481565b600254604080517f89155761000000000000000000000000000000000000000000000000000000008152600160a060020a038086166004830152915160009386931691638915576191602480830192602092919082900301818887803b158015611dd857600080fd5b505af1158015611dec573d6000803e3d6000fd5b505050506040513d6020811015611e0257600080fd5b50511515611e5a576040805160e560020a62461bcd02815260206004820152601e60248201527f57686974656c697374656420637573746f6d65722072657175697265642e0000604482015290519081900360640190fd5b3360009081526004602052604090205460ff161515611ec3576040805160e560020a62461bcd02815260206004820152601c60248201527f426f74206d6573736167652073656e6465722072657175697265642e00000000604482015290519081900360640190fd5b60055460ff1615611f0c576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b611f17338585612c0e565b91505b5092915050565b60408051808201909152600481527f4f52425400000000000000000000000000000000000000000000000000000000602082015281565b60055460009060ff1615611fa4576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b600254604080517f89155761000000000000000000000000000000000000000000000000000000008152336004820181905291519192600160a060020a0316916389155761916024808201926020929091908290030181600087803b15801561200c57600080fd5b505af1158015612020573d6000803e3d6000fd5b505050506040513d602081101561203657600080fd5b5051151561208e576040805160e560020a62461bcd02815260206004820152601e60248201527f57686974656c697374656420637573746f6d65722072657175697265642e0000604482015290519081900360640190fd5b6120a634670de0b6b3a764000063ffffffff612d5216565b91506120bd60065483612d7d90919063ffffffff16565b9150680ad78ebc5ac6200000821015612120576040805160e560020a62461bcd02815260206004820152601460248201527f42757920616d6f756e7420746f6f20736d616c6c000000000000000000000000604482015290519081900360640190fd5b61212b303384612c0e565b505050565b60055460009060ff161561217c576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b61087c8383612d92565b60046020526000908152604090205460ff1681565b60008054604080517f6c43a2ca000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0386811660248301526044820186905291519190921692636c43a2ca926064808201939182900301818387803b15801561157f57600080fd5b600080546040805160e060020a635c658165028152600160a060020a038681166004830152858116602483015291519190921691635c65816591604480830192602092919082900301818787803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b505050506040513d602081101561229057600080fd5b50519392505050565b3360009081526003602052604090205460ff1615156122f0576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0381161515612376576040805160e560020a62461bcd02815260206004820152602160248201527f4e6f6e2d7a65726f2077616c6c6574206164647265737320726571756972656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460009060ff16156123f1576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b60075461240590839063ffffffff612d5216565b9050670de0b6b3a7640000811015612467576040805160e560020a62461bcd02815260206004820152601560248201527f53656c6c20616d6f756e7420746f6f20736d616c6c0000000000000000000000604482015290519081900360640190fd5b61247f81670de0b6b3a764000063ffffffff612d7d16565b90503031811115612500576040805160e560020a62461bcd02815260206004820152602260248201527f436f6e74726163742068617320696e73756666696369656e742062616c616e6360448201527f652e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61250b333084612c0e565b50604051339082156108fc029083906000818181858888f1935050505015801561212b573d6000803e3d6000fd5b3360009081526003602052604090205460ff161515612590576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0382161515612616576040805160e560020a62461bcd02815260206004820152602f60248201527f4e6f6e2d7a65726f20746f2d62652d66726f7a656e2d6163636f756e7420616460448201527f64726573732072657175697265642e0000000000000000000000000000000000606482015290519081900360840190fd5b60008054604080517f45b7d5da000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528515156024830152915191909216926345b7d5da926044808201939182900301818387803b15801561268257600080fd5b505af1158015612696573d6000803e3d6000fd5b50506040805184151581529051600160a060020a03861693507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a592509081900360200190a25050565b60008054604080517f860838a5000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163860838a591602480830192602092919082900301818787803b1580156116b157600080fd5b3360009081526003602052604090205460ff16151561279e576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0381161515612823576040805160e560020a62461bcd028152602060048201526024808201527f4e6f6e2d7a65726f20726563697069656e74206164647265737320726571756960448201527f7265642e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316ff5b60008115806128c25750600080546040805160e060020a635c658165028152336004820152600160a060020a03878116602483015291519190921692635c65816592604480820193602093909283900390910190829087803b15801561289457600080fd5b505af11580156128a8573d6000803e3d6000fd5b505050506040513d60208110156128be57600080fd5b5051155b1515612964576040805160e560020a62461bcd02815260206004820152604a60248201527f417070726f76652076616c756520697320726571756972656420746f2062652060448201527f7a65726f206f72206163636f756e742068617320616c7265616479206265656e60648201527f20617070726f7665642e00000000000000000000000000000000000000000000608482015290519081900360a40190fd5b60008054604080517fda46098c000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038781166024830152604482018790529151919092169263da46098c926064808201939182900301818387803b1580156129d557600080fd5b505af11580156129e9573d6000803e3d6000fd5b5050604080518581529051600160a060020a03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b600080546040805160e060020a635c658165028152600160a060020a038781166004830152336024830152915184939290921691635c6581659160448082019260209290919082900301818787803b158015612a9157600080fd5b505af1158015612aa5573d6000803e3d6000fd5b505050506040513d6020811015612abb57600080fd5b5051905082811015612b3d576040805160e560020a62461bcd02815260206004820152602560248201527f46726f6d206163636f756e742068617320696e73756666696369656e7420626160448201527f6c616e6365000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b4d818463ffffffff612bfc16565b60008054604080517fda46098c000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015233602483015260448201869052915194955091169263da46098c9260648084019391929182900301818387803b158015612bc157600080fd5b505af1158015612bd5573d6000803e3d6000fd5b50505050612be4858585612c0e565b95945050505050565b60008282018381101561087c57fe5b600082821115612c0857fe5b50900390565b60008054604080517f860838a5000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529151919092169163860838a591602480830192602092919082900301818787803b158015612c7657600080fd5b505af1158015612c8a573d6000803e3d6000fd5b505050506040513d6020811015612ca057600080fd5b505115612ca957fe5b60008054604080517f860838a5000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529151919092169263860838a592602480820193602093909283900390910190829087803b158015612d1457600080fd5b505af1158015612d28573d6000803e3d6000fd5b505050506040513d6020811015612d3e57600080fd5b505115612d4757fe5b61095f848484612d9f565b600080831515612d655760009150611f1a565b50828202828482811515612d7557fe5b041461087c57fe5b60008183811515612d8a57fe5b049392505050565b600061087c338484612c0e565b60008080600160a060020a0385161515612e03576040805160e560020a62461bcd02815260206004820152601d60248201527f4e6f6e2d7a65726f20746f2d616464726573732072657175697265642e000000604482015290519081900360640190fd5b600080546040805160e060020a6327e235e3028152600160a060020a038a81166004830152915191909216926327e235e392602480820193602093909283900390910190829087803b158015612e5857600080fd5b505af1158015612e6c573d6000803e3d6000fd5b505050506040513d6020811015612e8257600080fd5b5051915083821015612f04576040805160e560020a62461bcd02815260206004820152602660248201527f46726f6d2d616464726573732068617320696e73756666696369656e7420626160448201527f6c616e63652e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612f14828563ffffffff612bfc16565b600080546040805160e060020a6327e235e3028152600160a060020a038a8116600483015291519496509116926327e235e392602480840193602093929083900390910190829087803b158015612f6a57600080fd5b505af1158015612f7e573d6000803e3d6000fd5b505050506040513d6020811015612f9457600080fd5b50519050612fa8818563ffffffff612bed16565b600080546040805160e260020a6338c110ef028152600160a060020a038b8116600483015260248201889052915194955091169263e30443bc9260448084019391929182900301818387803b15801561300057600080fd5b505af1158015613014573d6000803e3d6000fd5b5050600080546040805160e260020a6338c110ef028152600160a060020a038b8116600483015260248201889052915191909216945063e30443bc93506044808301939282900301818387803b15801561306d57600080fd5b505af1158015613081573d6000803e3d6000fd5b5050600154604080517ffe73b27f000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528a81166024830152604482018a9052915191909216935063fe73b27f9250606480830192600092919082900301818387803b1580156130fb57600080fd5b505af115801561310f573d6000803e3d6000fd5b5050604080518781529051600160a060020a03808a1694508a1692506000805160206131708339815191529181900360200190a3506001959450505050505600556e70617573656420636f6e74726163742072657175697265642e0000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f776e6572206d6573736167652073656e6465722072657175697265642e0000a165627a7a723058208506010efa2f4f411afcc6795803c1b22fab1ac5e6d445cdf7e074a6bc4a4c0f0029000000000000000000000000e1430f91243b62d3207aeaca0c3138bd956720770000000000000000000000007917b0ce447c77c998109b4288f660532e70c9a30000000000000000000000001691c9f284a9d519dca1d9c0a4dadc992885432b

Deployed Bytecode

0x6080604052600436106101c95763ffffffff60e060020a600035041663022914a781146101cb57806305d2035b1461020057806305fefda71461021557806306fdde0314610230578063095ea7b3146102ba57806318160ddd146102de57806323b872dd146103055780632e1a7d4d1461032f578063313ce56714610347578063342aa8b5146103725780633c3e2447146103985780633f4ba83a146103cb57806340c10f19146103e057806342966c68146104045780634b7503341461041c578063516c731c14610431578063521eb273146104575780635c975abb14610488578063661884631461049d5780636f9fb98a146104c157806370a08231146104d657806379cc6790146104f75780637d64bcb41461051b57806381cda3171461053057806383197ef0146105675780638456cb591461057c5780638620410b1461059157806390066b49146105a657806395d89b41146105ca578063a6f2ae3a146105df578063a9059cbb146105e7578063bfd792841461060b578063d73dd6231461062c578063dd62ed3e14610650578063deaa59df14610677578063e4849b3214610698578063e724529c146106b0578063e816d97f146106d6578063f5074f41146106f7575b005b3480156101d757600080fd5b506101ec600160a060020a0360043516610718565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506101ec61072d565b34801561022157600080fd5b506101c960043560243561073b565b34801561023c57600080fd5b506102456107ef565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027f578181015183820152602001610267565b50505050905090810190601f1680156102ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c657600080fd5b506101ec600160a060020a0360043516602435610826565b3480156102ea57600080fd5b506102f3610883565b60408051918252519081900360200190f35b34801561031157600080fd5b506101ec600160a060020a0360043581169060243516604435610908565b34801561033b57600080fd5b506101c9600435610967565b34801561035357600080fd5b5061035c610b02565b6040805160ff9092168252519081900360200190f35b34801561037e57600080fd5b506101c9600160a060020a03600435166024351515610b07565b3480156103a457600080fd5b506103ad610be9565b6040805168ffffffffffffffffff9092168252519081900360200190f35b3480156103d757600080fd5b506101c9610bf6565b3480156103ec57600080fd5b506101c9600160a060020a0360043516602435610cd4565b34801561041057600080fd5b506101c9600435611124565b34801561042857600080fd5b506102f361140e565b34801561043d57600080fd5b506101c9600160a060020a03600435166024351515611414565b34801561046357600080fd5b5061046c6114f6565b60408051600160a060020a039092168252519081900360200190f35b34801561049457600080fd5b506101ec611505565b3480156104a957600080fd5b506101c9600160a060020a036004351660243561150e565b3480156104cd57600080fd5b506102f361165a565b3480156104e257600080fd5b506102f3600160a060020a036004351661165f565b34801561050357600080fd5b506101c9600160a060020a03600435166024356116e3565b34801561052757600080fd5b506101c9611b8c565b34801561053c57600080fd5b50610545611c1d565b604080516cffffffffffffffffffffffffff9092168252519081900360200190f35b34801561057357600080fd5b506101c9611c2e565b34801561058857600080fd5b506101c9611c88565b34801561059d57600080fd5b506102f3611d69565b3480156105b257600080fd5b506101ec600160a060020a0360043516602435611d6f565b3480156105d657600080fd5b50610245611f21565b6101c9611f58565b3480156105f357600080fd5b506101ec600160a060020a0360043516602435612130565b34801561061757600080fd5b506101ec600160a060020a0360043516612186565b34801561063857600080fd5b506101c9600160a060020a036004351660243561219b565b34801561065c57600080fd5b506102f3600160a060020a036004358116906024351661220c565b34801561068357600080fd5b506101c9600160a060020a0360043516612299565b3480156106a457600080fd5b506101c96004356123a5565b3480156106bc57600080fd5b506101c9600160a060020a03600435166024351515612539565b3480156106e257600080fd5b506101ec600160a060020a03600435166126df565b34801561070357600080fd5b506101c9600160a060020a0360043516612747565b60036020526000908152604090205460ff1681565b600554610100900460ff1681565b3360009081526004602052604090205460ff168061076857503360009081526003602052604090205460ff165b15156107e4576040805160e560020a62461bcd02815260206004820152602560248201527f426f74206f72206f776e6572206d6573736167652073656e646572207265717560448201527f697265642e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600691909155600755565b60408051808201909152600881527f4f52424953453130000000000000000000000000000000000000000000000000602082015281565b60055460009060ff1615610872576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b61087c838361282f565b9392505050565b60008060009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108d757600080fd5b505af11580156108eb573d6000803e3d6000fd5b505050506040513d602081101561090157600080fd5b5051905090565b60055460009060ff1615610954576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b61095f848484612a36565b949350505050565b3360009081526003602052604090205460ff1615156109be576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b3031811115610a3c576040805160e560020a62461bcd028152602060048201526024808201527f556e61626c6520746f2077697468647261772073706563696669656420616d6f60448201527f756e742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600854600160a060020a03161515610ac4576040805160e560020a62461bcd02815260206004820152602160248201527f4e6f6e2d7a65726f2077616c6c6574206164647265737320726571756972656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600854604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610afe573d6000803e3d6000fd5b5050565b601281565b3360009081526003602052604090205460ff161515610b5e576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0382161515610bbe576040805160e560020a62461bcd02815260206004820152601e60248201527f4e6f6e2d7a65726f20626f742d616464726573732072657175697265642e0000604482015290519081900360640190fd5b600160a060020a03919091166000908152600460205260409020805460ff1916911515919091179055565b680ad78ebc5ac620000081565b3360009081526004602052604090205460ff1680610c2357503360009081526003602052604090205460ff165b1515610c9f576040805160e560020a62461bcd02815260206004820152602560248201527f426f74206f72206f776e6572206d6573736167652073656e646572207265717560448201527f697265642e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b33600090815260036020526040812054819060ff161515610d2d576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600554610100900460ff1615610d8d576040805160e560020a62461bcd02815260206004820152601b60248201527f556e696e6973686564206d696e74696e672072657175697265642e0000000000604482015290519081900360640190fd5b6000809054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d6020811015610e0957600080fd5b50519150610e1d828463ffffffff612bed16565b91506c0c9f2c9cd04674edea40000000821115610eaa576040805160e560020a62461bcd02815260206004820152603b60248201527f546f74616c20737570706c79206f6620746f6b656e20696e2063697263756c6160448201527f74696f6e206d7573742062652062656c6f7720686172646361702e0000000000606482015290519081900360840190fd5b60008054604080517ff7ea7a3d000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169263f7ea7a3d9260248084019382900301818387803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b5050600080546040805160e060020a6327e235e3028152600160a060020a038a8116600483015291519190921694506327e235e3935060248083019360209383900390910190829087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050506040513d6020811015610fa057600080fd5b50519050610fb4818463ffffffff612bed16565b600080546040805160e260020a6338c110ef028152600160a060020a03898116600483015260248201869052915194955091169263e30443bc9260448084019391929182900301818387803b15801561100c57600080fd5b505af1158015611020573d6000803e3d6000fd5b5050600154604080517ffe73b27f000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a038a81166024840152604483018a9052925192909316945063fe73b27f9350606480820193929182900301818387803b15801561109857600080fd5b505af11580156110ac573d6000803e3d6000fd5b5050604080518681529051600160a060020a0388169350600092506000805160206131708339815191529181900360200190a3604080518481529051600160a060020a038616917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a250505050565b600080546040805160e060020a6327e235e302815233600482015290518392600160a060020a0316916327e235e391602480830192602092919082900301818787803b15801561117357600080fd5b505af1158015611187573d6000803e3d6000fd5b505050506040513d602081101561119d57600080fd5b505191508282101561121f576040805160e560020a62461bcd02815260206004820152602e60248201527f4275726e2076616c7565206c657373207468616e206163636f756e742062616c60448201527f616e63652072657175697265642e000000000000000000000000000000000000606482015290519081900360840190fd5b61122f828463ffffffff612bfc16565b600080546040805160e260020a6338c110ef028152336004820152602481018590529051939550600160a060020a039091169263e30443bc9260448084019391929182900301818387803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b505050506000809054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156112f057600080fd5b505af1158015611304573d6000803e3d6000fd5b505050506040513d602081101561131a57600080fd5b5051905061132e818463ffffffff612bfc16565b60008054604080517ff7ea7a3d000000000000000000000000000000000000000000000000000000008152600481018590529051939450600160a060020a039091169263f7ea7a3d9260248084019391929182900301818387803b15801561139557600080fd5b505af11580156113a9573d6000803e3d6000fd5b50506040805186815290513393507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592509081900360200190a260408051848152905160009133916000805160206131708339815191529181900360200190a3505050565b60065481565b3360009081526003602052604090205460ff16151561146b576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a03821615156114cb576040805160e560020a62461bcd02815260206004820181905260248201527f4e6f6e2d7a65726f206f776e65722d616464726573732072657175697265642e604482015290519081900360640190fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600854600160a060020a031681565b60055460ff1681565b60008054604080517fd73b1dc9000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169263d73b1dc9926064808201939182900301818387803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b5050600080546040805160e060020a635c6581650281523360048201819052600160a060020a03808a166024840181905293519397509095507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594931692635c658165926044808401936020939083900390910190829087803b15801561161957600080fd5b505af115801561162d573d6000803e3d6000fd5b505050506040513d602081101561164357600080fd5b505160408051918252519081900360200190a35050565b303190565b600080546040805160e060020a6327e235e3028152600160a060020a038581166004830152915191909216916327e235e391602480830192602092919082900301818787803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b505050506040513d60208110156116db57600080fd5b505192915050565b600080546040805160e060020a6327e235e3028152600160a060020a03868116600483015291518493849316916327e235e391602480830192602092919082900301818787803b15801561173657600080fd5b505af115801561174a573d6000803e3d6000fd5b505050506040513d602081101561176057600080fd5b50519250838310156117e2576040805160e560020a62461bcd02815260206004820152603360248201527f4275726e2076616c7565206c657373207468616e2066726f6d2d6163636f756e60448201527f742062616c616e63652072657175697265642e00000000000000000000000000606482015290519081900360840190fd5b600080546040805160e060020a635c658165028152600160a060020a03898116600483015233602483015291519190921692635c65816592604480820193602093909283900390910190829087803b15801561183d57600080fd5b505af1158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b50519150838210156118e9576040805160e560020a62461bcd02815260206004820152603060248201527f4275726e2076616c7565206c657373207468616e206163636f756e7420616c6c60448201527f6f77616e63652072657175697265642e00000000000000000000000000000000606482015290519081900360840190fd5b6118f9838563ffffffff612bfc16565b600080546040805160e260020a6338c110ef028152600160a060020a038a8116600483015260248201869052915194975091169263e30443bc9260448084019391929182900301818387803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b5050505061197c8483612bfc90919063ffffffff16565b60008054604080517fda46098c000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015233602483015260448201869052915194965091169263da46098c9260648084019391929182900301818387803b1580156119f057600080fd5b505af1158015611a04573d6000803e3d6000fd5b505050506000809054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a5a57600080fd5b505af1158015611a6e573d6000803e3d6000fd5b505050506040513d6020811015611a8457600080fd5b50519050611a98818563ffffffff612bfc16565b60008054604080517ff7ea7a3d000000000000000000000000000000000000000000000000000000008152600481018590529051939450600160a060020a039091169263f7ea7a3d9260248084019391929182900301818387803b158015611aff57600080fd5b505af1158015611b13573d6000803e3d6000fd5b5050604080518781529051600160a060020a03891693507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592509081900360200190a2604080518581529051600091600160a060020a038816916000805160206131708339815191529181900360200190a35050505050565b3360009081526003602052604090205460ff161515611be3576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b6005805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b6c0c9f2c9cd04674edea4000000081565b3360009081526003602052604090205460ff161515611c85576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b33ff5b3360009081526004602052604090205460ff1680611cb557503360009081526003602052604090205460ff165b1515611d31576040805160e560020a62461bcd02815260206004820152602560248201527f426f74206f72206f776e6572206d6573736167652073656e646572207265717560448201527f697265642e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60075481565b600254604080517f89155761000000000000000000000000000000000000000000000000000000008152600160a060020a038086166004830152915160009386931691638915576191602480830192602092919082900301818887803b158015611dd857600080fd5b505af1158015611dec573d6000803e3d6000fd5b505050506040513d6020811015611e0257600080fd5b50511515611e5a576040805160e560020a62461bcd02815260206004820152601e60248201527f57686974656c697374656420637573746f6d65722072657175697265642e0000604482015290519081900360640190fd5b3360009081526004602052604090205460ff161515611ec3576040805160e560020a62461bcd02815260206004820152601c60248201527f426f74206d6573736167652073656e6465722072657175697265642e00000000604482015290519081900360640190fd5b60055460ff1615611f0c576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b611f17338585612c0e565b91505b5092915050565b60408051808201909152600481527f4f52425400000000000000000000000000000000000000000000000000000000602082015281565b60055460009060ff1615611fa4576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b600254604080517f89155761000000000000000000000000000000000000000000000000000000008152336004820181905291519192600160a060020a0316916389155761916024808201926020929091908290030181600087803b15801561200c57600080fd5b505af1158015612020573d6000803e3d6000fd5b505050506040513d602081101561203657600080fd5b5051151561208e576040805160e560020a62461bcd02815260206004820152601e60248201527f57686974656c697374656420637573746f6d65722072657175697265642e0000604482015290519081900360640190fd5b6120a634670de0b6b3a764000063ffffffff612d5216565b91506120bd60065483612d7d90919063ffffffff16565b9150680ad78ebc5ac6200000821015612120576040805160e560020a62461bcd02815260206004820152601460248201527f42757920616d6f756e7420746f6f20736d616c6c000000000000000000000000604482015290519081900360640190fd5b61212b303384612c0e565b505050565b60055460009060ff161561217c576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b61087c8383612d92565b60046020526000908152604090205460ff1681565b60008054604080517f6c43a2ca000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0386811660248301526044820186905291519190921692636c43a2ca926064808201939182900301818387803b15801561157f57600080fd5b600080546040805160e060020a635c658165028152600160a060020a038681166004830152858116602483015291519190921691635c65816591604480830192602092919082900301818787803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b505050506040513d602081101561229057600080fd5b50519392505050565b3360009081526003602052604090205460ff1615156122f0576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0381161515612376576040805160e560020a62461bcd02815260206004820152602160248201527f4e6f6e2d7a65726f2077616c6c6574206164647265737320726571756972656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460009060ff16156123f1576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020613150833981519152604482015290519081900360640190fd5b60075461240590839063ffffffff612d5216565b9050670de0b6b3a7640000811015612467576040805160e560020a62461bcd02815260206004820152601560248201527f53656c6c20616d6f756e7420746f6f20736d616c6c0000000000000000000000604482015290519081900360640190fd5b61247f81670de0b6b3a764000063ffffffff612d7d16565b90503031811115612500576040805160e560020a62461bcd02815260206004820152602260248201527f436f6e74726163742068617320696e73756666696369656e742062616c616e6360448201527f652e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61250b333084612c0e565b50604051339082156108fc029083906000818181858888f1935050505015801561212b573d6000803e3d6000fd5b3360009081526003602052604090205460ff161515612590576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0382161515612616576040805160e560020a62461bcd02815260206004820152602f60248201527f4e6f6e2d7a65726f20746f2d62652d66726f7a656e2d6163636f756e7420616460448201527f64726573732072657175697265642e0000000000000000000000000000000000606482015290519081900360840190fd5b60008054604080517f45b7d5da000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301528515156024830152915191909216926345b7d5da926044808201939182900301818387803b15801561268257600080fd5b505af1158015612696573d6000803e3d6000fd5b50506040805184151581529051600160a060020a03861693507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a592509081900360200190a25050565b60008054604080517f860838a5000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163860838a591602480830192602092919082900301818787803b1580156116b157600080fd5b3360009081526003602052604090205460ff16151561279e576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613190833981519152604482015290519081900360640190fd5b600160a060020a0381161515612823576040805160e560020a62461bcd028152602060048201526024808201527f4e6f6e2d7a65726f20726563697069656e74206164647265737320726571756960448201527f7265642e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316ff5b60008115806128c25750600080546040805160e060020a635c658165028152336004820152600160a060020a03878116602483015291519190921692635c65816592604480820193602093909283900390910190829087803b15801561289457600080fd5b505af11580156128a8573d6000803e3d6000fd5b505050506040513d60208110156128be57600080fd5b5051155b1515612964576040805160e560020a62461bcd02815260206004820152604a60248201527f417070726f76652076616c756520697320726571756972656420746f2062652060448201527f7a65726f206f72206163636f756e742068617320616c7265616479206265656e60648201527f20617070726f7665642e00000000000000000000000000000000000000000000608482015290519081900360a40190fd5b60008054604080517fda46098c000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038781166024830152604482018790529151919092169263da46098c926064808201939182900301818387803b1580156129d557600080fd5b505af11580156129e9573d6000803e3d6000fd5b5050604080518581529051600160a060020a03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b600080546040805160e060020a635c658165028152600160a060020a038781166004830152336024830152915184939290921691635c6581659160448082019260209290919082900301818787803b158015612a9157600080fd5b505af1158015612aa5573d6000803e3d6000fd5b505050506040513d6020811015612abb57600080fd5b5051905082811015612b3d576040805160e560020a62461bcd02815260206004820152602560248201527f46726f6d206163636f756e742068617320696e73756666696369656e7420626160448201527f6c616e6365000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b4d818463ffffffff612bfc16565b60008054604080517fda46098c000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015233602483015260448201869052915194955091169263da46098c9260648084019391929182900301818387803b158015612bc157600080fd5b505af1158015612bd5573d6000803e3d6000fd5b50505050612be4858585612c0e565b95945050505050565b60008282018381101561087c57fe5b600082821115612c0857fe5b50900390565b60008054604080517f860838a5000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529151919092169163860838a591602480830192602092919082900301818787803b158015612c7657600080fd5b505af1158015612c8a573d6000803e3d6000fd5b505050506040513d6020811015612ca057600080fd5b505115612ca957fe5b60008054604080517f860838a5000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529151919092169263860838a592602480820193602093909283900390910190829087803b158015612d1457600080fd5b505af1158015612d28573d6000803e3d6000fd5b505050506040513d6020811015612d3e57600080fd5b505115612d4757fe5b61095f848484612d9f565b600080831515612d655760009150611f1a565b50828202828482811515612d7557fe5b041461087c57fe5b60008183811515612d8a57fe5b049392505050565b600061087c338484612c0e565b60008080600160a060020a0385161515612e03576040805160e560020a62461bcd02815260206004820152601d60248201527f4e6f6e2d7a65726f20746f2d616464726573732072657175697265642e000000604482015290519081900360640190fd5b600080546040805160e060020a6327e235e3028152600160a060020a038a81166004830152915191909216926327e235e392602480820193602093909283900390910190829087803b158015612e5857600080fd5b505af1158015612e6c573d6000803e3d6000fd5b505050506040513d6020811015612e8257600080fd5b5051915083821015612f04576040805160e560020a62461bcd02815260206004820152602660248201527f46726f6d2d616464726573732068617320696e73756666696369656e7420626160448201527f6c616e63652e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612f14828563ffffffff612bfc16565b600080546040805160e060020a6327e235e3028152600160a060020a038a8116600483015291519496509116926327e235e392602480840193602093929083900390910190829087803b158015612f6a57600080fd5b505af1158015612f7e573d6000803e3d6000fd5b505050506040513d6020811015612f9457600080fd5b50519050612fa8818563ffffffff612bed16565b600080546040805160e260020a6338c110ef028152600160a060020a038b8116600483015260248201889052915194955091169263e30443bc9260448084019391929182900301818387803b15801561300057600080fd5b505af1158015613014573d6000803e3d6000fd5b5050600080546040805160e260020a6338c110ef028152600160a060020a038b8116600483015260248201889052915191909216945063e30443bc93506044808301939282900301818387803b15801561306d57600080fd5b505af1158015613081573d6000803e3d6000fd5b5050600154604080517ffe73b27f000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528a81166024830152604482018a9052915191909216935063fe73b27f9250606480830192600092919082900301818387803b1580156130fb57600080fd5b505af115801561310f573d6000803e3d6000fd5b5050604080518781529051600160a060020a03808a1694508a1692506000805160206131708339815191529181900360200190a3506001959450505050505600556e70617573656420636f6e74726163742072657175697265642e0000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f776e6572206d6573736167652073656e6465722072657175697265642e0000a165627a7a723058208506010efa2f4f411afcc6795803c1b22fab1ac5e6d445cdf7e074a6bc4a4c0f0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000e1430f91243b62d3207aeaca0c3138bd956720770000000000000000000000007917b0ce447c77c998109b4288f660532e70c9a30000000000000000000000001691c9f284a9d519dca1d9c0a4dadc992885432b

-----Decoded View---------------
Arg [0] : _dataStorage (address): 0xe1430F91243B62D3207aEACa0C3138bD95672077
Arg [1] : _ledger (address): 0x7917b0cE447C77C998109B4288F660532E70c9a3
Arg [2] : _whitelist (address): 0x1691C9f284a9d519DcA1D9c0A4dAdC992885432b

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000e1430f91243b62d3207aeaca0c3138bd95672077
Arg [1] : 0000000000000000000000007917b0ce447c77c998109b4288f660532e70c9a3
Arg [2] : 0000000000000000000000001691c9f284a9d519dca1d9c0a4dadc992885432b


Swarm Source

bzzr://8506010efa2f4f411afcc6795803c1b22fab1ac5e6d445cdf7e074a6bc4a4c0f
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.