Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
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)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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.