ETH Price: $2,926.38 (+4.74%)
 

Overview

Max Total Supply

650,000,000 UKT

Holders

1,215

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
350 UKT

Value
$0.00
0x28ec2fd9f85fba72deb8b803aa73fffd48960ecd
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:
UKTToken

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-31
*/

pragma solidity ^0.4.21;



/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
	
	address public owner;
	address public potentialOwner;
	
	
	event OwnershipRemoved(address indexed previousOwner);
	event OwnershipTransfer(address indexed previousOwner, address indexed newOwner);
	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
	
	
	/**
	 * @dev The Ownable constructor sets the original `owner` of the contract to the sender
	 * account.
	 */
	function Ownable() public {
		owner = msg.sender;
	}
	
	
	/**
	 * @dev Throws if called by any account other than the owner.
	 */
	modifier onlyOwner() {
		require(msg.sender == owner);
		_;
	}
	
	
	/**
	 * @dev Throws if called by any account other than the owner.
	 */
	modifier onlyPotentialOwner() {
		require(msg.sender == potentialOwner);
		_;
	}
	
	
	/**
	 * @dev Allows the current owner to transfer control of the contract to a newOwner.
	 * @param newOwner The address of potential new owner to transfer ownership to.
	 */
	function transferOwnership(address newOwner) public onlyOwner {
		require(newOwner != address(0));
		emit OwnershipTransfer(owner, newOwner);
		potentialOwner = newOwner;
	}
	
	
	/**
	 * @dev Allow the potential owner confirm ownership of the contract.
	 */
	function confirmOwnership() public onlyPotentialOwner {
		emit OwnershipTransferred(owner, potentialOwner);
		owner = potentialOwner;
		potentialOwner = address(0);
	}
	
	
	/**
	 * @dev Remove the contract owner permanently
	 */
	function removeOwnership() public onlyOwner {
		emit OwnershipRemoved(owner);
		owner = address(0);
	}
	
}

/**
 * @title AddressTools
 * @dev Useful tools for address type
 */
library AddressTools {
	
	/**
	* @dev Returns true if given address is the contract address, otherwise - returns false
	*/
	function isContract(address a) internal view returns (bool) {
		if(a == address(0)) {
			return false;
		}
		
		uint codeSize;
		// solium-disable-next-line security/no-inline-assembly
		assembly {
			codeSize := extcodesize(a)
		}
		
		if(codeSize > 0) {
			return true;
		}
		
		return false;
	}
	
}

/**
* @title Contract that will work with ERC223 tokens
*/
contract ERC223Reciever {
	
	/**
	 * @dev Standard ERC223 function that will handle incoming token transfers
	 *
	 * @param _from address  Token sender address
	 * @param _value uint256 Amount of tokens
	 * @param _data bytes  Transaction metadata
	 */
	function tokenFallback(address _from, uint256 _value, bytes _data) external returns (bool);
	
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
	
	/**
	* @dev Multiplies two numbers, throws on overflow.
	*/
	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;
	}
	
	
	/**
	* @dev Integer division of two numbers, truncating the quotient.
	*/
	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a / b;
		return c;
	}
	
	
	/**
	* @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
	*/
	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		assert(b <= a);
		return a - b;
	}
	
	
	/**
	* @dev Adds two numbers, throws on overflow.
	*/
	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		assert(c >= a);
		return c;
	}
	
	
	/**
	* @dev Powers the first number to the second, throws on overflow.
	*/
	function pow(uint a, uint b) internal pure returns (uint) {
		if (b == 0) {
			return 1;
		}
		uint c = a ** b;
		assert(c >= a);
		return c;
	}
	
	
	/**
	 * @dev Multiplies the given number by 10**decimals
	 */
	function withDecimals(uint number, uint decimals) internal pure returns (uint) {
		return mul(number, pow(10, decimals));
	}
	
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
	function totalSupply() public view returns (uint256);
	function balanceOf(address who) public view returns (uint256);
	function transfer(address to, uint256 value) public returns (bool);
	event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
	
	using SafeMath for uint256;
	
	mapping(address => uint256) public balances;
	
	uint256 public totalSupply_;
	
	
	/**
	* @dev total number of tokens in existence
	*/
	function totalSupply() public view returns (uint256) {
		return totalSupply_;
	}
	
	
	/**
	* @dev transfer token for a specified address
	* @param _to The address to transfer to.
	* @param _value The amount to be transferred.
	*/
	function transfer(address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));
		require(_value <= balances[msg.sender]);
		
		// SafeMath.sub will throw if there is not enough balance.
		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(msg.sender, _to, _value);
		return true;
	}
	
	
	/**
	* @dev Gets the balance of the specified address.
	* @param _owner The address to query the the balance of.
	* @return An uint256 representing the amount owned by the passed address.
	*/
	function balanceOf(address _owner) public view returns (uint256 balance) {
		return balances[_owner];
	}
	
}

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {
	
	event Burn(address indexed burner, uint256 value);
	
	/**
	 * @dev Burns a specific amount of tokens.
	 * @param _value The amount of token to be burned.
	 */
	function burn(uint256 _value) public {
		require(_value <= balances[msg.sender]);
		// no need to require value <= totalSupply, since that would imply the
		// sender's balance is greater than the totalSupply, which *should* be an assertion failure
		
		address burner = msg.sender;
		balances[burner] = balances[burner].sub(_value);
		totalSupply_ = totalSupply_.sub(_value);
		emit Burn(burner, _value);
		emit Transfer(burner, address(0), _value);
	}
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
	function allowance(address owner, address spender) public view returns (uint256);
	function transferFrom(address from, address to, uint256 value) public returns (bool);
	function approve(address spender, uint256 value) public returns (bool);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {
	
	mapping (address => mapping (address => uint256)) internal allowed;
	
	
	/**
	 * @dev Transfer tokens from one address to another
	 * @param _from address The address which you want to send tokens from
	 * @param _to address The address which you want to transfer to
	 * @param _value uint256 the amount of tokens to be transferred
	 */
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));
		require(_value <= balances[_from]);
		require(_value <= allowed[_from][msg.sender]);
		
		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);
		allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
		emit Transfer(_from, _to, _value);
		return true;
	}
	
	
	/**
	 * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
	 *
	 * Beware that changing an allowance with this method brings the risk that someone may use both the old
	 * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
	 * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
	 * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
	 * @param _spender The address which will spend the funds.
	 * @param _value The amount of tokens to be spent.
	 */
	function approve(address _spender, uint256 _value) public returns (bool) {
		allowed[msg.sender][_spender] = _value;
		emit Approval(msg.sender, _spender, _value);
		return true;
	}
	
	
	/**
	 * @dev Function to check the amount of tokens that an owner allowed to a spender.
	 * @param _owner address The address which owns the funds.
	 * @param _spender address 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 allowed[_owner][_spender];
	}
	
	/**
	 * @dev Increase the amount of tokens that an owner allowed to a spender.
	 *
	 * approve should be called when allowed[_spender] == 0. To increment
	 * allowed value is better to use this function to avoid 2 calls (and wait until
	 * the first transaction is mined)
	 * From MonolithDAO Token.sol
	 * @param _spender The address which will spend the funds.
	 * @param _addedValue The amount of tokens to increase the allowance by.
	 */
	function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
		return true;
	}
	
	
	/**
	 * @dev Decrease the amount of tokens that an owner allowed to a spender.
	 *
	 * approve should be called when allowed[_spender] == 0. To decrement
	 * allowed value is better to use this function to avoid 2 calls (and wait until
	 * the first transaction is mined)
	 * From MonolithDAO Token.sol
	 * @param _spender The address which will spend the funds.
	 * @param _subtractedValue The amount of tokens to decrease the allowance by.
	 */
	function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
		uint oldValue = allowed[msg.sender][_spender];
		if (_subtractedValue > oldValue) {
			allowed[msg.sender][_spender] = 0;
		} else {
			allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
		}
		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
		return true;
	}

}

/**
 * @title ERC223 interface
 * @dev see https://github.com/ethereum/EIPs/issues/223
 */
contract ERC223 is ERC20 {
	function transfer(address to, uint256 value, bytes data) public returns (bool);
	event ERC223Transfer(address indexed from, address indexed to, uint256 value, bytes data);
}

/**
 * @title (Not)Reference implementation of the ERC223 standard token.
 */
contract ERC223Token is ERC223, StandardToken {
	
	using AddressTools for address;
	
	
	/**
	 * @dev Transfer the specified amount of tokens to the specified address.
	 *      Invokes the `tokenFallback` function if the recipient is a contract.
	 *      The token transfer fails if the recipient is a contract
	 *      but does not implement the `tokenFallback` function
	 *      or the fallback function to receive funds.
	 *
	 * @param _to    Receiver address
	 * @param _value Amount of tokens that will be transferred
	 * @param _data  Transaction metadata
	 */
	function transfer(address _to, uint256 _value, bytes _data) public returns (bool) {
		return executeTransfer(_to, _value, _data);
	}
	
	
	/**
	 * @dev Transfer the specified amount of tokens to the specified address.
	 *      This function works the same with the previous one
	 *      but doesn"t contain `_data` param.
	 *      Added due to backwards compatibility reasons.
	 *
	 * @param _to    Receiver address
	 * @param _value Amount of tokens that will be transferred
	 */
	function transfer(address _to, uint256 _value) public returns (bool) {
		bytes memory _data;
		
		return executeTransfer(_to, _value, _data);
	}
	
	
	/**
	 * @dev Makes execution of the token fallback method from if reciever address is contract
	 */
	function executeTokenFallback(address _to, uint256 _value, bytes _data) private returns (bool) {
		ERC223Reciever receiver = ERC223Reciever(_to);
		
		return receiver.tokenFallback(msg.sender, _value, _data);
	}
	
	
	/**
	 * @dev Makes execution of the tokens transfer method from super class
	 */
	function executeTransfer(address _to, uint256 _value, bytes _data) private returns (bool) {
		require(super.transfer(_to, _value));
		
		if(_to.isContract()) {
			require(executeTokenFallback(_to, _value, _data));
			emit ERC223Transfer(msg.sender, _to, _value, _data);
		}
		
		return true;
	}
	
}

/**
 * @title UKTTokenBasic
 * @dev UKTTokenBasic interface
 */
contract UKTTokenBasic is ERC223, BurnableToken {
	
	bool public isControlled = false;
	bool public isConfigured = false;
	bool public isAllocated = false;
	
	// mapping of string labels to initial allocated addresses
	mapping(bytes32 => address) public allocationAddressesTypes;
	// mapping of addresses to time lock period
	mapping(address => uint32) public timelockedAddresses;
	// mapping of addresses to lock flag
	mapping(address => bool) public lockedAddresses;
	
	
	function setConfiguration(string _name, string _symbol, uint _totalSupply) external returns (bool);
	function setInitialAllocation(address[] addresses, bytes32[] addressesTypes, uint[] amounts) external returns (bool);
	function setInitialAllocationLock(address allocationAddress ) external returns (bool);
	function setInitialAllocationUnlock(address allocationAddress ) external returns (bool);
	function setInitialAllocationTimelock(address allocationAddress, uint32 timelockTillDate ) external returns (bool);
	
	// fires when the token contract becomes controlled
	event Controlled(address indexed tokenController);
	// fires when the token contract becomes configured
	event Configured(string tokenName, string tokenSymbol, uint totalSupply);
	event InitiallyAllocated(address indexed owner, bytes32 addressType, uint balance);
	event InitiallAllocationLocked(address indexed owner);
	event InitiallAllocationUnlocked(address indexed owner);
	event InitiallAllocationTimelocked(address indexed owner, uint32 timestamp);
	
}

/**
 * @title  Basic UKT token contract
 * @author  Oleg Levshin <[email protected]>
 */
contract UKTToken is UKTTokenBasic, ERC223Token, Ownable {
	
	using AddressTools for address;
	
	string public name;
	string public symbol;
	uint public constant decimals = 18;
	
	// address of the controller contract
	address public controller;
	
	
	modifier onlyController() {
		require(msg.sender == controller);
		_;
	}
	
	modifier onlyUnlocked(address _address) {
		address from = _address != address(0) ? _address : msg.sender;
		require(
			lockedAddresses[from] == false &&
			(
				timelockedAddresses[from] == 0 ||
				timelockedAddresses[from] <= now
			)
		);
		_;
	}
	
	
	/**
	 * @dev Sets the controller contract address and removes token contract ownership
	 */
	function setController(
		address _controller
	) public onlyOwner {
		// cannot be invoked after initial setting
		require(!isControlled);
		// _controller should be an address of the smart contract
		require(_controller.isContract());
		
		controller = _controller;
		removeOwnership();
		
		emit Controlled(controller);
		
		isControlled = true;
	}
	
	
	/**
	 * @dev Sets the token contract configuration
	 */
	function setConfiguration(
		string _name,
		string _symbol,
		uint _totalSupply
	) external onlyController returns (bool) {
		// not configured yet
		require(!isConfigured);
		// not empty name of the token
		require(bytes(_name).length > 0);
		// not empty ticker symbol of the token
		require(bytes(_symbol).length > 0);
		// pre-defined total supply
		require(_totalSupply > 0);
		
		name = _name;
		symbol = _symbol;
		totalSupply_ = _totalSupply.withDecimals(decimals);
		
		emit Configured(name, symbol, totalSupply_);
		
		isConfigured = true;
		
		return isConfigured;
	}
	
	
	/**
	 * @dev Sets initial balances allocation
	 */
	function setInitialAllocation(
		address[] addresses,
		bytes32[] addressesTypes,
		uint[] amounts
	) external onlyController returns (bool) {
		// cannot be invoked after initial allocation
		require(!isAllocated);
		// the array of addresses should be the same length as the array of addresses types
		require(addresses.length == addressesTypes.length);
		// the array of addresses should be the same length as the array of allocating amounts
		require(addresses.length == amounts.length);
		// sum of the allocating balances should be equal to totalSupply
		uint balancesSum = 0;
		for(uint b = 0; b < amounts.length; b++) {
			balancesSum = balancesSum.add(amounts[b]);
		}
		require(balancesSum.withDecimals(decimals) == totalSupply_);
		
		for(uint a = 0; a < addresses.length; a++) {
			balances[addresses[a]] = amounts[a].withDecimals(decimals);
			allocationAddressesTypes[addressesTypes[a]] = addresses[a];
			emit InitiallyAllocated(addresses[a], addressesTypes[a], balanceOf(addresses[a]));
		}
		
		isAllocated = true;
		
		return isAllocated;
	}
	
	
	/**
	 * @dev Sets lock for given allocation address
	 */
	function setInitialAllocationLock(
		address allocationAddress
	) external onlyController returns (bool) {
		require(allocationAddress != address(0));
		
		lockedAddresses[allocationAddress] = true;
		
		emit InitiallAllocationLocked(allocationAddress);
		
		return true;
	}
	
	
	/**
	 * @dev Sets unlock for given allocation address
	 */
	function setInitialAllocationUnlock(
		address allocationAddress
	) external onlyController returns (bool) {
		require(allocationAddress != address(0));
		
		lockedAddresses[allocationAddress] = false;
		
		emit InitiallAllocationUnlocked(allocationAddress);
		
		return true;
	}
	
	
	/**
	 * @dev Sets time lock for given allocation address
	 */
	function setInitialAllocationTimelock(
		address allocationAddress,
		uint32 timelockTillDate
	) external onlyController returns (bool) {
		require(allocationAddress != address(0));
		require(timelockTillDate >= now);
		
		timelockedAddresses[allocationAddress] = timelockTillDate;
		
		emit InitiallAllocationTimelocked(allocationAddress, timelockTillDate);
		
		return true;
	}
	
	
	/**
	 * @dev Allows transfer of the tokens after locking conditions checking
	 */
	function transfer(
		address _to,
		uint256 _value
	) public onlyUnlocked(address(0)) returns (bool) {
		require(super.transfer(_to, _value));
		return true;
	}
	
	
	/**
	 * @dev Allows transfer of the tokens (with additional _data) after locking conditions checking
	 */
	function transfer(
		address _to,
		uint256 _value,
		bytes _data
	) public onlyUnlocked(address(0)) returns (bool) {
		require(super.transfer(_to, _value, _data));
		return true;
	}
	
	
	/**
	 * @dev Allows transfer of the tokens after locking conditions checking
	 */
	function transferFrom(
		address _from,
		address _to,
		uint256 _value
	) public onlyUnlocked(_from) returns (bool) {
		require(super.transferFrom(_from, _to, _value));
		return true;
	}
	
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"isAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"allocationAddress","type":"address"}],"name":"setInitialAllocationUnlock","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":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"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":"allocationAddress","type":"address"},{"name":"timelockTillDate","type":"uint32"}],"name":"setInitialAllocationTimelock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"allocationAddressesTypes","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"potentialOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"addressesTypes","type":"bytes32[]"},{"name":"amounts","type":"uint256[]"}],"name":"setInitialAllocation","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":"","type":"address"}],"name":"lockedAddresses","outputs":[{"name":"","type":"bool"}],"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":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"allocationAddress","type":"address"}],"name":"setInitialAllocationLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isConfigured","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"confirmOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_totalSupply","type":"uint256"}],"name":"setConfiguration","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isControlled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"removeOwnership","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":true,"inputs":[{"name":"","type":"address"}],"name":"timelockedAddresses","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenController","type":"address"}],"name":"Controlled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenName","type":"string"},{"indexed":false,"name":"tokenSymbol","type":"string"},{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"Configured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"addressType","type":"bytes32"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"InitiallyAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"InitiallAllocationLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"InitiallAllocationUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"timestamp","type":"uint32"}],"name":"InitiallAllocationTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"ERC223Transfer","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"},{"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"}]

60606040526002805462ffffff1916905560078054600160a060020a03191633600160a060020a0316179055611c078061003a6000396000f30060606040526004361061019f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416626c81d381146101a457806306fdde03146101cb578063095ea7b31461025557806318160ddd1461027757806322935caa1461029c57806323b872dd146102bb57806327e235e3146102e3578063313ce56714610302578063324536eb146103155780633a96d16d146103285780633ce6d3991461035057806342966c6814610382578063661884631461039a57806370a08231146103bc5780637762df25146103db5780638da5cb5b146103ee57806392eefe9b1461040157806393a91f251461042057806395d89b4114610456578063a5bbd67a14610469578063a9059cbb14610488578063be45fd62146104aa578063d173e5781461050f578063d3a057c81461052e578063d5d1e77014610541578063d73dd62314610554578063d834f1e814610576578063d915562b146105a3578063d99bb9f7146105b6578063dd62ed3e146105c9578063e67405cb146105ee578063f2fde38b14610626578063f77c479114610645575b600080fd5b34156101af57600080fd5b6101b7610658565b604051901515815260200160405180910390f35b34156101d657600080fd5b6101de610667565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561021a578082015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026057600080fd5b6101b7600160a060020a0360043516602435610705565b341561028257600080fd5b61028a610771565b60405190815260200160405180910390f35b34156102a757600080fd5b6101b7600160a060020a0360043516610778565b34156102c657600080fd5b6101b7600160a060020a0360043581169060243516604435610800565b34156102ee57600080fd5b61028a600160a060020a03600435166108bb565b341561030d57600080fd5b61028a6108cd565b341561032057600080fd5b61028a6108d2565b341561033357600080fd5b6101b7600160a060020a036004351663ffffffff602435166108d8565b341561035b57600080fd5b61036660043561098e565b604051600160a060020a03909116815260200160405180910390f35b341561038d57600080fd5b6103986004356109a9565b005b34156103a557600080fd5b6101b7600160a060020a0360043516602435610aa2565b34156103c757600080fd5b61028a600160a060020a0360043516610b9e565b34156103e657600080fd5b610366610bb9565b34156103f957600080fd5b610366610bc8565b341561040c57600080fd5b610398600160a060020a0360043516610bd7565b341561042b57600080fd5b6101b76024600480358281019290820135918135808301929082013591604435918201910135610c97565b341561046157600080fd5b6101de610eea565b341561047457600080fd5b6101b7600160a060020a0360043516610f55565b341561049357600080fd5b6101b7600160a060020a0360043516602435610f6a565b34156104b557600080fd5b6101b760048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061100995505050505050565b341561051a57600080fd5b6101b7600160a060020a0360043516611093565b341561053957600080fd5b6101b761111e565b341561054c57600080fd5b61039861112c565b341561055f57600080fd5b6101b7600160a060020a03600435166024356111ba565b341561058157600080fd5b6101b7602460048035828101929082013591813591820191013560443561125e565b34156105ae57600080fd5b6101b761143d565b34156105c157600080fd5b610398611446565b34156105d457600080fd5b61028a600160a060020a03600435811690602435166114b8565b34156105f957600080fd5b61060d600160a060020a03600435166114e3565b60405163ffffffff909116815260200160405180910390f35b341561063157600080fd5b610398600160a060020a03600435166114fb565b341561065057600080fd5b610366611596565b60025462010000900460ff1681565b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b505050505081565b600160a060020a03338116600081815260066020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6001545b90565b600b5460009033600160a060020a0390811691161461079657600080fd5b600160a060020a03821615156107ab57600080fd5b600160a060020a03821660008181526005602052604090819020805460ff191690557fd266fd6764fbb3c91d46fa3601fb82f0f6c8e4e70a251c43df96f5707888b9c9905160405180910390a2506001919050565b60008381600160a060020a038216151561081a573361081c565b815b600160a060020a03811660009081526005602052604090205490915060ff1615801561088e5750600160a060020a03811660009081526004602052604090205463ffffffff16158061088e5750600160a060020a0381166000908152600460205260409020544263ffffffff90911611155b151561089957600080fd5b6108a48686866115a5565b15156108af57600080fd5b50600195945050505050565b60006020819052908152604090205481565b601281565b60015481565b600b5460009033600160a060020a039081169116146108f657600080fd5b600160a060020a038316151561090b57600080fd5b4263ffffffff8316101561091e57600080fd5b600160a060020a03831660008181526004602052604090819020805463ffffffff191663ffffffff86161790557fab6a177d0ba0c1ead0fcbe8806387e2d0353390b4dedd5f254850de5750d04c19084905163ffffffff909116815260200160405180910390a250600192915050565b600360205260009081526040902054600160a060020a031681565b600160a060020a0333166000908152602081905260408120548211156109ce57600080fd5b5033600160a060020a0381166000908152602081905260409020546109f39083611725565b600160a060020a038216600090815260208190526040902055600154610a1f908363ffffffff61172516565b600155600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a26000600160a060020a0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35050565b600160a060020a03338116600090815260066020908152604080832093861683529290529081205480831115610aff57600160a060020a033381166000908152600660209081526040808320938816835292905290812055610b36565b610b0f818463ffffffff61172516565b600160a060020a033381166000908152600660209081526040808320938916835292905220555b600160a060020a0333811660008181526006602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600160a060020a031660009081526020819052604090205490565b600854600160a060020a031681565b600754600160a060020a031681565b60075433600160a060020a03908116911614610bf257600080fd5b60025460ff1615610c0257600080fd5b610c1481600160a060020a0316611737565b1515610c1f57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055610c4f611446565b600b54600160a060020a03167f8e17de8bf0cfce16c437309a333cabb367587544f06eb33509bedf6d92a57bc160405160405180910390a2506002805460ff19166001179055565b600b5460009081908190819033600160a060020a03908116911614610cbb57600080fd5b60025462010000900460ff1615610cd157600080fd5b888714610cdd57600080fd5b888514610ce957600080fd5b60009250600091505b84821015610d2c57610d1f868684818110610d0957fe5b905060200201358461177390919063ffffffff16565b9250600190910190610cf2565b600154610d4084601263ffffffff61178916565b14610d4a57600080fd5b5060005b88811015610ec157610d7c6012878784818110610d6757fe5b9050602002013561178990919063ffffffff16565b6000808c8c85818110610d8b57fe5b60209081029290920135600160a060020a031683525081019190915260400160002055898982818110610dba57fe5b90506020020135600160a060020a0316600360008a8a858181101515610ddc57fe5b60209081029290920135835250810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055898982818110610e2c57fe5b90506020020135600160a060020a0316600160a060020a03167f976cfe43f3ed34f06cf2cf121f9562f6ed578f0dc8e37d2940fbadf43a0207cc8989848181101515610e7457fe5b60200291909101359050610ea28d8d86818110610e8d57fe5b90506020020135600160a060020a0316610b9e565b60405191825260208201526040908101905180910390a2600101610d4e565b6002805462ff000019166201000090811791829055900460ff1693505050509695505050505050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106fd5780601f106106d2576101008083540402835291602001916106fd565b60056020526000908152604090205460ff1681565b33600160a060020a0381166000908152600560205260408120549091829160ff16158015610fde5750600160a060020a03811660009081526004602052604090205463ffffffff161580610fde5750600160a060020a0381166000908152600460205260409020544263ffffffff90911611155b1515610fe957600080fd5b610ff3858561179f565b1515610ffe57600080fd5b506001949350505050565b33600160a060020a0381166000908152600560205260408120549091829160ff1615801561107d5750600160a060020a03811660009081526004602052604090205463ffffffff16158061107d5750600160a060020a0381166000908152600460205260409020544263ffffffff90911611155b151561108857600080fd5b6108a48686866117bc565b600b5460009033600160a060020a039081169116146110b157600080fd5b600160a060020a03821615156110c657600080fd5b600160a060020a03821660008181526005602052604090819020805460ff191660011790557f676c1c6b6d5afd5a30b90c269c2a96334130e1b3075a1513e1747b8959e45ad7905160405180910390a2506001919050565b600254610100900460ff1681565b60085433600160a060020a0390811691161461114757600080fd5b600854600754600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600880546007805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600160a060020a0333811660009081526006602090815260408083209386168352929052908120546111f2908363ffffffff61177316565b600160a060020a0333811660008181526006602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600b5460009033600160a060020a0390811691161461127c57600080fd5b600254610100900460ff161561129157600080fd5b6000851161129e57600080fd5b600083116112ab57600080fd5b600082116112b857600080fd5b6112c460098787611b31565b506112d1600a8585611b31565b506112e382601263ffffffff61178916565b6001819055507fbd6428c174f64332468d07c5685f93f05385567f3bdb49c31feea31705985ea06009600a600154604051604081018290526060808252845460026000196101006001841615020190911604908201819052819060208201906080830190879080156113965780601f1061136b57610100808354040283529160200191611396565b820191906000526020600020905b81548152906001019060200180831161137957829003601f168201915b505083810382528554600260001961010060018416150201909116048082526020909101908690801561140a5780601f106113df5761010080835404028352916020019161140a565b820191906000526020600020905b8154815290600101906020018083116113ed57829003601f168201915b50509550505050505060405180910390a1506002805461ff00191661010090811791829055900460ff1695945050505050565b60025460ff1681565b60075433600160a060020a0390811691161461146157600080fd5b600754600160a060020a03167f86d076ecf250a6d90a67a7c75317f44709d5001395ecf1df6d9dad5278f1e68160405160405180910390a26007805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b60046020526000908152604090205463ffffffff1681565b60075433600160a060020a0390811691161461151657600080fd5b600160a060020a038116151561152b57600080fd5b600754600160a060020a0380831691167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a36008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b6000600160a060020a03831615156115bc57600080fd5b600160a060020a0384166000908152602081905260409020548211156115e157600080fd5b600160a060020a038085166000908152600660209081526040808320339094168352929052205482111561161457600080fd5b600160a060020a03841660009081526020819052604090205461163d908363ffffffff61172516565b600160a060020a038086166000908152602081905260408082209390935590851681522054611672908363ffffffff61177316565b600160a060020a03808516600090815260208181526040808320949094558783168252600681528382203390931682529190915220546116b8908363ffffffff61172516565b600160a060020a03808616600081815260066020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60008282111561173157fe5b50900390565b600080600160a060020a0383161515611753576000915061176d565b50813b6000811115611768576001915061176d565b600091505b50919050565b60008282018381101561178257fe5b9392505050565b60006117828361179a600a856117c9565b6117ea565b60006117a9611baf565b6117b4848483611815565b949350505050565b60006117b4848484611815565b6000808215156117dc5760019150610b97565b5081830a8381101561178257fe5b6000808315156117fd5760009150610b97565b5082820282848281151561180d57fe5b041461178257fe5b60006118218484611918565b151561182c57600080fd5b61183e84600160a060020a0316611737565b1561190e5761184e848484611a2a565b151561185957600080fd5b83600160a060020a031633600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd1858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b838110156118d25780820151838201526020016118ba565b50505050905090810190601f1680156118ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35b5060019392505050565b6000600160a060020a038316151561192f57600080fd5b600160a060020a03331660009081526020819052604090205482111561195457600080fd5b600160a060020a03331660009081526020819052604090205461197d908363ffffffff61172516565b600160a060020a0333811660009081526020819052604080822093909355908516815220546119b2908363ffffffff61177316565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600083600160a060020a03811663c0ee0b8a3386866040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ac5578082015183820152602001611aad565b50505050905090810190601f168015611af25780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515611b1257600080fd5b5af11515611b1f57600080fd5b50505060405180519695505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b725782800160ff19823516178555611b9f565b82800160010185558215611b9f579182015b82811115611b9f578235825591602001919060010190611b84565b50611bab929150611bc1565b5090565b60206040519081016040526000815290565b61077591905b80821115611bab5760008155600101611bc75600a165627a7a72305820cfb3ffea447d917f7e80d0811f9d0194c8d3f872ae5baa6ffaac06db4b60c4b20029

Deployed Bytecode

0x60606040526004361061019f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416626c81d381146101a457806306fdde03146101cb578063095ea7b31461025557806318160ddd1461027757806322935caa1461029c57806323b872dd146102bb57806327e235e3146102e3578063313ce56714610302578063324536eb146103155780633a96d16d146103285780633ce6d3991461035057806342966c6814610382578063661884631461039a57806370a08231146103bc5780637762df25146103db5780638da5cb5b146103ee57806392eefe9b1461040157806393a91f251461042057806395d89b4114610456578063a5bbd67a14610469578063a9059cbb14610488578063be45fd62146104aa578063d173e5781461050f578063d3a057c81461052e578063d5d1e77014610541578063d73dd62314610554578063d834f1e814610576578063d915562b146105a3578063d99bb9f7146105b6578063dd62ed3e146105c9578063e67405cb146105ee578063f2fde38b14610626578063f77c479114610645575b600080fd5b34156101af57600080fd5b6101b7610658565b604051901515815260200160405180910390f35b34156101d657600080fd5b6101de610667565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561021a578082015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026057600080fd5b6101b7600160a060020a0360043516602435610705565b341561028257600080fd5b61028a610771565b60405190815260200160405180910390f35b34156102a757600080fd5b6101b7600160a060020a0360043516610778565b34156102c657600080fd5b6101b7600160a060020a0360043581169060243516604435610800565b34156102ee57600080fd5b61028a600160a060020a03600435166108bb565b341561030d57600080fd5b61028a6108cd565b341561032057600080fd5b61028a6108d2565b341561033357600080fd5b6101b7600160a060020a036004351663ffffffff602435166108d8565b341561035b57600080fd5b61036660043561098e565b604051600160a060020a03909116815260200160405180910390f35b341561038d57600080fd5b6103986004356109a9565b005b34156103a557600080fd5b6101b7600160a060020a0360043516602435610aa2565b34156103c757600080fd5b61028a600160a060020a0360043516610b9e565b34156103e657600080fd5b610366610bb9565b34156103f957600080fd5b610366610bc8565b341561040c57600080fd5b610398600160a060020a0360043516610bd7565b341561042b57600080fd5b6101b76024600480358281019290820135918135808301929082013591604435918201910135610c97565b341561046157600080fd5b6101de610eea565b341561047457600080fd5b6101b7600160a060020a0360043516610f55565b341561049357600080fd5b6101b7600160a060020a0360043516602435610f6a565b34156104b557600080fd5b6101b760048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061100995505050505050565b341561051a57600080fd5b6101b7600160a060020a0360043516611093565b341561053957600080fd5b6101b761111e565b341561054c57600080fd5b61039861112c565b341561055f57600080fd5b6101b7600160a060020a03600435166024356111ba565b341561058157600080fd5b6101b7602460048035828101929082013591813591820191013560443561125e565b34156105ae57600080fd5b6101b761143d565b34156105c157600080fd5b610398611446565b34156105d457600080fd5b61028a600160a060020a03600435811690602435166114b8565b34156105f957600080fd5b61060d600160a060020a03600435166114e3565b60405163ffffffff909116815260200160405180910390f35b341561063157600080fd5b610398600160a060020a03600435166114fb565b341561065057600080fd5b610366611596565b60025462010000900460ff1681565b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b505050505081565b600160a060020a03338116600081815260066020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6001545b90565b600b5460009033600160a060020a0390811691161461079657600080fd5b600160a060020a03821615156107ab57600080fd5b600160a060020a03821660008181526005602052604090819020805460ff191690557fd266fd6764fbb3c91d46fa3601fb82f0f6c8e4e70a251c43df96f5707888b9c9905160405180910390a2506001919050565b60008381600160a060020a038216151561081a573361081c565b815b600160a060020a03811660009081526005602052604090205490915060ff1615801561088e5750600160a060020a03811660009081526004602052604090205463ffffffff16158061088e5750600160a060020a0381166000908152600460205260409020544263ffffffff90911611155b151561089957600080fd5b6108a48686866115a5565b15156108af57600080fd5b50600195945050505050565b60006020819052908152604090205481565b601281565b60015481565b600b5460009033600160a060020a039081169116146108f657600080fd5b600160a060020a038316151561090b57600080fd5b4263ffffffff8316101561091e57600080fd5b600160a060020a03831660008181526004602052604090819020805463ffffffff191663ffffffff86161790557fab6a177d0ba0c1ead0fcbe8806387e2d0353390b4dedd5f254850de5750d04c19084905163ffffffff909116815260200160405180910390a250600192915050565b600360205260009081526040902054600160a060020a031681565b600160a060020a0333166000908152602081905260408120548211156109ce57600080fd5b5033600160a060020a0381166000908152602081905260409020546109f39083611725565b600160a060020a038216600090815260208190526040902055600154610a1f908363ffffffff61172516565b600155600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a26000600160a060020a0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35050565b600160a060020a03338116600090815260066020908152604080832093861683529290529081205480831115610aff57600160a060020a033381166000908152600660209081526040808320938816835292905290812055610b36565b610b0f818463ffffffff61172516565b600160a060020a033381166000908152600660209081526040808320938916835292905220555b600160a060020a0333811660008181526006602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600160a060020a031660009081526020819052604090205490565b600854600160a060020a031681565b600754600160a060020a031681565b60075433600160a060020a03908116911614610bf257600080fd5b60025460ff1615610c0257600080fd5b610c1481600160a060020a0316611737565b1515610c1f57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055610c4f611446565b600b54600160a060020a03167f8e17de8bf0cfce16c437309a333cabb367587544f06eb33509bedf6d92a57bc160405160405180910390a2506002805460ff19166001179055565b600b5460009081908190819033600160a060020a03908116911614610cbb57600080fd5b60025462010000900460ff1615610cd157600080fd5b888714610cdd57600080fd5b888514610ce957600080fd5b60009250600091505b84821015610d2c57610d1f868684818110610d0957fe5b905060200201358461177390919063ffffffff16565b9250600190910190610cf2565b600154610d4084601263ffffffff61178916565b14610d4a57600080fd5b5060005b88811015610ec157610d7c6012878784818110610d6757fe5b9050602002013561178990919063ffffffff16565b6000808c8c85818110610d8b57fe5b60209081029290920135600160a060020a031683525081019190915260400160002055898982818110610dba57fe5b90506020020135600160a060020a0316600360008a8a858181101515610ddc57fe5b60209081029290920135835250810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055898982818110610e2c57fe5b90506020020135600160a060020a0316600160a060020a03167f976cfe43f3ed34f06cf2cf121f9562f6ed578f0dc8e37d2940fbadf43a0207cc8989848181101515610e7457fe5b60200291909101359050610ea28d8d86818110610e8d57fe5b90506020020135600160a060020a0316610b9e565b60405191825260208201526040908101905180910390a2600101610d4e565b6002805462ff000019166201000090811791829055900460ff1693505050509695505050505050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106fd5780601f106106d2576101008083540402835291602001916106fd565b60056020526000908152604090205460ff1681565b33600160a060020a0381166000908152600560205260408120549091829160ff16158015610fde5750600160a060020a03811660009081526004602052604090205463ffffffff161580610fde5750600160a060020a0381166000908152600460205260409020544263ffffffff90911611155b1515610fe957600080fd5b610ff3858561179f565b1515610ffe57600080fd5b506001949350505050565b33600160a060020a0381166000908152600560205260408120549091829160ff1615801561107d5750600160a060020a03811660009081526004602052604090205463ffffffff16158061107d5750600160a060020a0381166000908152600460205260409020544263ffffffff90911611155b151561108857600080fd5b6108a48686866117bc565b600b5460009033600160a060020a039081169116146110b157600080fd5b600160a060020a03821615156110c657600080fd5b600160a060020a03821660008181526005602052604090819020805460ff191660011790557f676c1c6b6d5afd5a30b90c269c2a96334130e1b3075a1513e1747b8959e45ad7905160405180910390a2506001919050565b600254610100900460ff1681565b60085433600160a060020a0390811691161461114757600080fd5b600854600754600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600880546007805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600160a060020a0333811660009081526006602090815260408083209386168352929052908120546111f2908363ffffffff61177316565b600160a060020a0333811660008181526006602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600b5460009033600160a060020a0390811691161461127c57600080fd5b600254610100900460ff161561129157600080fd5b6000851161129e57600080fd5b600083116112ab57600080fd5b600082116112b857600080fd5b6112c460098787611b31565b506112d1600a8585611b31565b506112e382601263ffffffff61178916565b6001819055507fbd6428c174f64332468d07c5685f93f05385567f3bdb49c31feea31705985ea06009600a600154604051604081018290526060808252845460026000196101006001841615020190911604908201819052819060208201906080830190879080156113965780601f1061136b57610100808354040283529160200191611396565b820191906000526020600020905b81548152906001019060200180831161137957829003601f168201915b505083810382528554600260001961010060018416150201909116048082526020909101908690801561140a5780601f106113df5761010080835404028352916020019161140a565b820191906000526020600020905b8154815290600101906020018083116113ed57829003601f168201915b50509550505050505060405180910390a1506002805461ff00191661010090811791829055900460ff1695945050505050565b60025460ff1681565b60075433600160a060020a0390811691161461146157600080fd5b600754600160a060020a03167f86d076ecf250a6d90a67a7c75317f44709d5001395ecf1df6d9dad5278f1e68160405160405180910390a26007805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b60046020526000908152604090205463ffffffff1681565b60075433600160a060020a0390811691161461151657600080fd5b600160a060020a038116151561152b57600080fd5b600754600160a060020a0380831691167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a36008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b6000600160a060020a03831615156115bc57600080fd5b600160a060020a0384166000908152602081905260409020548211156115e157600080fd5b600160a060020a038085166000908152600660209081526040808320339094168352929052205482111561161457600080fd5b600160a060020a03841660009081526020819052604090205461163d908363ffffffff61172516565b600160a060020a038086166000908152602081905260408082209390935590851681522054611672908363ffffffff61177316565b600160a060020a03808516600090815260208181526040808320949094558783168252600681528382203390931682529190915220546116b8908363ffffffff61172516565b600160a060020a03808616600081815260066020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60008282111561173157fe5b50900390565b600080600160a060020a0383161515611753576000915061176d565b50813b6000811115611768576001915061176d565b600091505b50919050565b60008282018381101561178257fe5b9392505050565b60006117828361179a600a856117c9565b6117ea565b60006117a9611baf565b6117b4848483611815565b949350505050565b60006117b4848484611815565b6000808215156117dc5760019150610b97565b5081830a8381101561178257fe5b6000808315156117fd5760009150610b97565b5082820282848281151561180d57fe5b041461178257fe5b60006118218484611918565b151561182c57600080fd5b61183e84600160a060020a0316611737565b1561190e5761184e848484611a2a565b151561185957600080fd5b83600160a060020a031633600160a060020a03167f9bfafdc2ae8835972d7b64ef3f8f307165ac22ceffde4a742c52da5487f45fd1858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b838110156118d25780820151838201526020016118ba565b50505050905090810190601f1680156118ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35b5060019392505050565b6000600160a060020a038316151561192f57600080fd5b600160a060020a03331660009081526020819052604090205482111561195457600080fd5b600160a060020a03331660009081526020819052604090205461197d908363ffffffff61172516565b600160a060020a0333811660009081526020819052604080822093909355908516815220546119b2908363ffffffff61177316565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600083600160a060020a03811663c0ee0b8a3386866040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ac5578082015183820152602001611aad565b50505050905090810190601f168015611af25780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515611b1257600080fd5b5af11515611b1f57600080fd5b50505060405180519695505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b725782800160ff19823516178555611b9f565b82800160010185558215611b9f579182015b82811115611b9f578235825591602001919060010190611b84565b50611bab929150611bc1565b5090565b60206040519081016040526000815290565b61077591905b80821115611bab5760008155600101611bc75600a165627a7a72305820cfb3ffea447d917f7e80d0811f9d0194c8d3f872ae5baa6ffaac06db4b60c4b20029

Swarm Source

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