Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
695,583,782.386499626928218 DOR
Holders
11,273 ( 0.035%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 15 Decimals)
Balance
0 DORValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DoradoToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-07 */ /** * The dorado token contract bases on the ERC20 standard token contracts from * open-zeppelin and is extended by functions to issue tokens as needed by the * dorado ICO. * authors: Julia Altenried, Yuri Kashnikov * */ pragma solidity 0.4.19; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; require(a == 0 || c / a == b); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; 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; /** * @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); 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 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 SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { function safeTransfer(ERC20Basic token, address to, uint256 value) internal { assert(token.transfer(to, value)); } function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal { assert(token.transferFrom(from, to, value)); } function safeApprove(ERC20 token, address spender, uint256 value) internal { assert(token.approve(spender, value)); } } /** * @title TokenTimelock * @dev TokenTimelock is a token holder contract that will allow a * beneficiary to extract the tokens after a given release time */ contract TokenTimelock { using SafeERC20 for ERC20Basic; // ERC20 basic token contract being held ERC20Basic public token; // beneficiary of tokens after they are released address public beneficiary; // timestamp when token release is enabled uint64 public releaseTime; function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) public { require(_releaseTime > uint64(block.timestamp)); token = _token; beneficiary = _beneficiary; releaseTime = _releaseTime; } /** * @notice Transfers tokens held by timelock to beneficiary. */ function release() public { require(uint64(block.timestamp) >= releaseTime); uint256 amount = token.balanceOf(this); require(amount > 0); token.safeTransfer(beneficiary, amount); } } /** * @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); 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; 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 remaining) { return allowed[_owner][_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 */ function increaseApproval (address _spender, uint _addedValue) public returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract Owned { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function Owned() public { owner = msg.sender; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } modifier onlyOwner { require(msg.sender == owner); _; } } contract DoradoToken is StandardToken, Owned { string public constant name = "DoradoToken"; string public constant symbol = "DOR"; uint8 public constant decimals = 15; /// Maximum tokens to be allocated on the sale (51% of the hard cap) uint256 public constant TOKENS_SALE_HARD_CAP = 510000000000000000000000; // 510000000 * 10**15 /// Base exchange rate is set to 1 ETH = 6667 DOR. uint256 public constant BASE_RATE = 6667; /// seconds since 01.01.1970 to 07.02.2018 (16:00:00 o'clock UTC) /// HOT sale start time uint64 private constant dateHOTSale = 1517961600 + 16 hours; /// HOT sale end time; Sale A start time 21.02.2018 uint64 private constant dateSaleA = 1519171200 + 16 hours; /// Sale A end time; Sale B start time 07.03.2018 uint64 private constant dateSaleB = 1520380800 + 16 hours; /// Sale B end time; Sale C start time 21.03.2018 uint64 private constant dateSaleC = 1521590400 + 16 hours; /// Sale C end time; Sale D start time 04.04.2018 uint64 private constant dateSaleD = 1522800000 + 16 hours; /// Sale D end time; Sale E start time 18.04.2018 uint64 private constant dateSaleE = 1524009600 + 16 hours; /// Sale E end time; Sale F start time 02.05.2018 uint64 private constant dateSaleF = 1525219200 + 16 hours; /// Sale F end time; 16.05.2018 uint64 private constant date16May2018 = 1526428800 + 16 hours; /// token caps for each round uint256[7] private roundCaps = [ 70000000000000000000000, // HOT sale 70000000 * 10**15 140000000000000000000000, // Sale A 140000000 * 10**15 210000000000000000000000, // Sale B 210000000 * 10**15 285000000000000000000000, // Sale C 285000000 * 10**15 360000000000000000000000, // Sale D 360000000 * 10**15 435000000000000000000000, // Sale E 435000000 * 10**15 510000000000000000000000 // Sale F 510000000 * 10**15 ]; uint8[7] private roundDiscountPercentages = [33, 30, 27, 22, 17, 12, 7]; /// team tokens are locked until this date (01.01.2021) 00:00:00 uint64 private constant dateTeamTokensLockedTill = 1609459200; /// no tokens can be ever issued when this is set to "true" bool public tokenSaleClosed = false; /// contract to be called to release the Dorado team tokens address public timelockContractAddress; modifier inProgress { require(totalSupply < TOKENS_SALE_HARD_CAP && !tokenSaleClosed && now >= dateHOTSale); _; } /// Allow the closing to happen only once modifier beforeEnd { require(!tokenSaleClosed); _; } /// Require that the token sale has been closed modifier tradingOpen { require(tokenSaleClosed); _; } function DoradoToken() public { } /// @dev This default function allows token to be purchased by directly /// sending ether to this smart contract. function () public payable { purchaseTokens(msg.sender); } /// @dev Issue token based on Ether received. /// @param _beneficiary Address that newly issued token will be sent to. function purchaseTokens(address _beneficiary) public payable inProgress { // only accept a minimum amount of ETH? require(msg.value >= 0.01 ether); uint256 tokens = computeTokenAmount(msg.value); // roll back if hard cap reached require(totalSupply.add(tokens) <= TOKENS_SALE_HARD_CAP); doIssueTokens(_beneficiary, tokens); /// forward the raised funds to the contract creator owner.transfer(this.balance); } /// @dev Batch issue tokens on the presale /// @param _addresses addresses that the presale tokens will be sent to. /// @param _addresses the amounts of tokens, with decimals expanded (full). function issueTokensMulti(address[] _addresses, uint256[] _tokens) public onlyOwner beforeEnd { require(_addresses.length == _tokens.length); require(_addresses.length <= 100); for (uint256 i = 0; i < _tokens.length; i = i.add(1)) { doIssueTokens(_addresses[i], _tokens[i]); } } /// @dev Issue tokens for a single buyer on the presale /// @param _beneficiary addresses that the presale tokens will be sent to. /// @param _tokens the amount of tokens, with decimals expanded (full). function issueTokens(address _beneficiary, uint256 _tokens) public onlyOwner beforeEnd { doIssueTokens(_beneficiary, _tokens); } /// @dev issue tokens for a single buyer /// @param _beneficiary addresses that the tokens will be sent to. /// @param _tokens the amount of tokens, with decimals expanded (full). function doIssueTokens(address _beneficiary, uint256 _tokens) internal { require(_beneficiary != address(0)); // increase token total supply totalSupply = totalSupply.add(_tokens); // update the beneficiary balance to number of tokens sent balances[_beneficiary] = balances[_beneficiary].add(_tokens); // event is fired when tokens issued Transfer(address(0), _beneficiary, _tokens); } /// @dev Returns the current price. function price() public view returns (uint256 tokens) { return computeTokenAmount(1 ether); } /// @dev Compute the amount of DOR token that can be purchased. /// @param ethAmount Amount of Ether in WEI to purchase DOR. /// @return Amount of DOR token to purchase function computeTokenAmount(uint256 ethAmount) internal view returns (uint256 tokens) { uint256 tokenBase = (ethAmount.mul(BASE_RATE)/10000000000000)*10000000000;//18 decimals to 15 decimals, set precision to 5 decimals uint8 roundNum = currentRoundIndex(); tokens = tokenBase.mul(100)/(100 - (roundDiscountPercentages[roundNum])); while(tokens.add(totalSupply) > roundCaps[roundNum] && roundNum < 6){ roundNum++; tokens = tokenBase.mul(100)/(100 - (roundDiscountPercentages[roundNum])); } } /// @dev Determine the current sale round /// @return integer representing the index of the current sale round function currentRoundIndex() internal view returns (uint8 roundNum) { roundNum = currentRoundIndexByDate(); /// round determined by conjunction of both time and total sold tokens while(roundNum < 6 && totalSupply > roundCaps[roundNum]) { roundNum++; } } /// @dev Determine the current sale tier. /// @return the index of the current sale tier by date. function currentRoundIndexByDate() internal view returns (uint8 roundNum) { require(now <= date16May2018); if(now > dateSaleF) return 6; if(now > dateSaleE) return 5; if(now > dateSaleD) return 4; if(now > dateSaleC) return 3; if(now > dateSaleB) return 2; if(now > dateSaleA) return 1; else return 0; } /// @dev Closes the sale, issues the team tokens and burns the unsold function close() public onlyOwner beforeEnd { /// team tokens are equal to 15% of the sold tokens /// 8% foodout group tokens are added to the locked tokens uint256 lockedTokens = 230000000000000000000000; //partner tokens are available from the beginning uint256 partnerTokens = 260000000000000000000000; issueLockedTokens(lockedTokens); issuePartnerTokens(partnerTokens); /// increase token total supply totalSupply = totalSupply.add(lockedTokens+partnerTokens); /// burn the unallocated tokens - no more tokens can be issued after this line tokenSaleClosed = true; /// forward the raised funds to the contract creator owner.transfer(this.balance); } /** * issue the tokens for the team and the foodout group. * tokens are locked for 3 years. * @param lockedTokens the amount of tokens to the issued and locked * */ function issueLockedTokens( uint lockedTokens) internal{ /// team tokens are locked until this date (01.01.2021) TokenTimelock lockedTeamTokens = new TokenTimelock(this, owner, dateTeamTokensLockedTill); timelockContractAddress = address(lockedTeamTokens); balances[timelockContractAddress] = balances[timelockContractAddress].add(lockedTokens); /// fire event when tokens issued Transfer(address(0), timelockContractAddress, lockedTokens); } /** * issue the tokens for partners and advisors * @param partnerTokens the amount of tokens to be issued * */ function issuePartnerTokens(uint partnerTokens) internal{ balances[owner] = partnerTokens; Transfer(address(0), owner, partnerTokens); } /// Transfer limited by the tradingOpen modifier function transferFrom(address _from, address _to, uint256 _value) public tradingOpen returns (bool) { return super.transferFrom(_from, _to, _value); } /// Transfer limited by the tradingOpen modifier function transfer(address _to, uint256 _value) public tradingOpen returns (bool) { return super.transfer(_to, _value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"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":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BASE_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"issueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","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":"timelockContractAddress","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":"_addresses","type":"address[]"},{"name":"_tokens","type":"uint256[]"}],"name":"issueTokensMulti","outputs":[],"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":"price","outputs":[{"name":"tokens","type":"uint256"}],"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":"_beneficiary","type":"address"}],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleClosed","outputs":[{"name":"","type":"bool"}],"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":"TOKENS_SALE_HARD_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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":"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
606060405260e06040519081016040908152690ed2b525841adfc000008252691da56a4b0835bf8000006020830152692c781f708c509f40000090820152693c59e1867548d82000006060820152694c3ba39c5e41110000006080820152695c1d65b2473949e0000060a0820152696bff27c8303182c0000060c08201526200008d90600490600762000110565b5060e0604051908101604090815260218252601e6020830152601b908201526016606082015260116080820152600c60a0820152600760c08201819052620000d891600b916200015e565b50600c805460ff191690553415620000ef57600080fd5b60038054600160a060020a03191633600160a060020a031617905562000235565b82600781019282156200014c579160200282015b828111156200014c57825182906001605060020a031690559160200191906001019062000124565b506200015a929150620001f4565b5090565b600183019183908215620001e65791602002820160005b83821115620001b557835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262000175565b8015620001e45782816101000a81549060ff0219169055600101602081600001049283019260010302620001b5565b505b506200015a92915062000214565b6200021191905b808211156200015a5760008155600101620001fb565b90565b6200021191905b808211156200015a57805460ff191681556001016200021b565b61159f80620002456000396000f3006060604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013d578063095ea7b3146101c757806318160ddd146101fd57806323b872dd1461022257806327e235e31461024a578063313ce5671461026957806341910f901461029257806343d726d6146102a5578063475a9fa9146102b857806366188463146102da57806370a08231146102fc5780637fc88fe21461031b5780638da5cb5b1461034a57806392e8438c1461035d57806395d89b41146103ec578063a035b1fe146103ff578063a9059cbb14610412578063ce55703114610434578063d73dd62314610448578063dd62ed3e1461046a578063e55a07c21461048f578063f2fde38b146104a2578063f946372c146104c1575b61013b336104d4565b005b341561014857600080fd5b6101506105a0565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018c578082015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b6101e9600160a060020a03600435166024356105d7565b604051901515815260200160405180910390f35b341561020857600080fd5b610210610643565b60405190815260200160405180910390f35b341561022d57600080fd5b6101e9600160a060020a0360043581169060243516604435610649565b341561025557600080fd5b610210600160a060020a0360043516610670565b341561027457600080fd5b61027c610682565b60405160ff909116815260200160405180910390f35b341561029d57600080fd5b610210610687565b34156102b057600080fd5b61013b61068d565b34156102c357600080fd5b61013b600160a060020a0360043516602435610746565b34156102e557600080fd5b6101e9600160a060020a036004351660243561077b565b341561030757600080fd5b610210600160a060020a0360043516610875565b341561032657600080fd5b61032e610890565b604051600160a060020a03909116815260200160405180910390f35b341561035557600080fd5b61032e6108a4565b341561036857600080fd5b61013b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506108b395505050505050565b34156103f757600080fd5b61015061095c565b341561040a57600080fd5b610210610993565b341561041d57600080fd5b6101e9600160a060020a03600435166024356109ac565b61013b600160a060020a03600435166104d4565b341561045357600080fd5b6101e9600160a060020a03600435166024356109d1565b341561047557600080fd5b610210600160a060020a0360043581169060243516610a75565b341561049a57600080fd5b6101e9610aa0565b34156104ad57600080fd5b61013b600160a060020a0360043516610aa9565b34156104cc57600080fd5b610210610b44565b6000696bff27c8303182c000006000541080156104f45750600c5460ff16155b80156105045750635a7b22804210155b151561050f57600080fd5b662386f26fc1000034101561052357600080fd5b61052c34610b52565b9050696bff27c8303182c0000061054e82600054610c6f90919063ffffffff16565b111561055957600080fd5b6105638282610c81565b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059c57600080fd5b5050565b60408051908101604052600b81527f446f7261646f546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600c5460009060ff16151561065d57600080fd5b610668848484610d18565b949350505050565b60016020526000908152604090205481565b600f81565b611a0b81565b600354600090819033600160a060020a039081169116146106ad57600080fd5b600c5460ff16156106bd57600080fd5b506930b453321fc603c00000905069370ea0d47cf61a8000006106df82610e88565b6106e881610f94565b6000546106fd9083830163ffffffff610c6f16565b600055600c805460ff19166001179055600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059c57600080fd5b60035433600160a060020a0390811691161461076157600080fd5b600c5460ff161561077157600080fd5b61059c8282610c81565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156107d857600160a060020a03338116600090815260026020908152604080832093881683529290529081205561080f565b6107e8818463ffffffff610fdf16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b600c546101009004600160a060020a031681565b600354600160a060020a031681565b60035460009033600160a060020a039081169116146108d157600080fd5b600c5460ff16156108e157600080fd5b81518351146108ef57600080fd5b6064835111156108fe57600080fd5b5060005b81518110156109575761093f83828151811061091a57fe5b9060200190602002015183838151811061093057fe5b90602001906020020151610c81565b61095081600163ffffffff610c6f16565b9050610902565b505050565b60408051908101604052600381527f444f520000000000000000000000000000000000000000000000000000000000602082015281565b60006109a6670de0b6b3a7640000610b52565b90505b90565b600c5460009060ff1615156109c057600080fd5b6109ca8383610ff4565b9392505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a09908363ffffffff610c6f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600c5460ff1681565b60035433600160a060020a03908116911614610ac457600080fd5b600160a060020a0381161515610ad957600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b696bff27c8303182c0000081565b600080806509184e72a000610b6f85611a0b63ffffffff6110dd16565b811515610b7857fe5b046402540be400029150610b8a611104565b9050600b60ff821660078110610b9c57fe5b602091828204019190069054906101000a900460ff1660640360ff16610bcc6064846110dd90919063ffffffff16565b811515610bd557fe5b0492505b600460ff821660078110610be957fe5b0154600054610bff90859063ffffffff610c6f16565b118015610c0f575060068160ff16105b15610c6857600101600b60ff821660078110610c2757fe5b602091828204019190069054906101000a900460ff1660640360ff16610c576064846110dd90919063ffffffff16565b811515610c6057fe5b049250610bd9565b5050919050565b6000828201838110156109ca57600080fd5b600160a060020a0382161515610c9657600080fd5b600054610ca9908263ffffffff610c6f16565b6000908155600160a060020a038316815260016020526040902054610cd4908263ffffffff610c6f16565b600160a060020a0383166000818152600160205260408082209390935590916000805160206115548339815191529084905190815260200160405180910390a35050565b6000600160a060020a0383161515610d2f57600080fd5b600160a060020a038416600090815260016020526040902054821115610d5457600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610d8757600080fd5b600160a060020a038416600090815260016020526040902054610db0908363ffffffff610fdf16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610de5908363ffffffff610c6f16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610e2d908363ffffffff610fdf16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516916000805160206115548339815191529085905190815260200160405180910390a35060019392505050565b6003546000903090600160a060020a0316635fee6600610ea66111d6565b600160a060020a03938416815291909216602082015267ffffffffffffffff90911660408083019190915260609091019051809103906000f0801515610eeb57600080fd5b600c805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038481168202929092179283905590910416600090815260016020526040902054909150610f3f9083610c6f565b600c8054600160a060020a036101009182900481166000908152600160205260408082209590955592549190910416916000805160206115548339815191529085905190815260200160405180910390a35050565b60038054600160a060020a039081166000908152600160205260408082208590559254909116916000805160206115548339815191529084905190815260200160405180910390a350565b600082821115610fee57600080fd5b50900390565b6000600160a060020a038316151561100b57600080fd5b600160a060020a03331660009081526001602052604090205482111561103057600080fd5b600160a060020a033316600090815260016020526040902054611059908363ffffffff610fdf16565b600160a060020a03338116600090815260016020526040808220939093559085168152205461108e908363ffffffff610c6f16565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206115548339815191529085905190815260200160405180910390a350600192915050565b60008282028315806110f957508284828115156110f657fe5b04145b15156109ca57600080fd5b600061110e611143565b90505b60068160ff161080156111365750600460ff82166007811061112f57fe5b0154600054115b156109a957600101611111565b6000635afc558042111561115657600080fd5b635ae9e08042111561116a575060066109a9565b635ad76b8042111561117e575060056109a9565b635ac4f680421115611192575060046109a9565b635ab281804211156111a6575060036109a9565b635aa00c804211156111ba575060026109a9565b635a8d97804211156111ce575060016109a9565b5060006109a9565b60405161036d806111e78339019056006060604052341561000f57600080fd5b60405160608061036d8339810160405280805191906020018051919060200180519150506001604060020a034281169082161161004b57600080fd5b60008054600160a060020a0319908116600160a060020a0395861617825560018054909116939094169290921760a060020a60e060020a031916740100000000000000000000000000000000000000006001604060020a039290921691909102179091556102ae9081906100bf90396000f3006060604052600436106100485763ffffffff60e060020a60003504166338af3eed811461004d57806386d1a69f1461007c578063b91d400114610091578063fc0c546a146100c1575b600080fd5b341561005857600080fd5b6100606100d4565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b61008f6100e3565b005b341561009c57600080fd5b6100a46101c6565b60405167ffffffffffffffff909116815260200160405180910390f35b34156100cc57600080fd5b6100606101ee565b600154600160a060020a031681565b60015460009067ffffffffffffffff74010000000000000000000000000000000000000000909104811642909116101561011c57600080fd5b60008054600160a060020a0316906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561017757600080fd5b6102c65a03f1151561018857600080fd5b5050506040518051915050600081116101a057600080fd5b6001546000546101c391600160a060020a0391821691168363ffffffff6101fd16565b50565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff1681565b600054600160a060020a031681565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561025a57600080fd5b6102c65a03f1151561026b57600080fd5b50505060405180519050151561027d57fe5b5050505600a165627a7a723058205a1fdd9d750a8f1788c842c091210356e341e5e4fba386728d5595efc4ad28680029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b07a2e65cd57474afc38ab7b1ce5a7e7effe644697c932919f4d62ed5059b2130029
Deployed Bytecode
0x6060604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461013d578063095ea7b3146101c757806318160ddd146101fd57806323b872dd1461022257806327e235e31461024a578063313ce5671461026957806341910f901461029257806343d726d6146102a5578063475a9fa9146102b857806366188463146102da57806370a08231146102fc5780637fc88fe21461031b5780638da5cb5b1461034a57806392e8438c1461035d57806395d89b41146103ec578063a035b1fe146103ff578063a9059cbb14610412578063ce55703114610434578063d73dd62314610448578063dd62ed3e1461046a578063e55a07c21461048f578063f2fde38b146104a2578063f946372c146104c1575b61013b336104d4565b005b341561014857600080fd5b6101506105a0565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018c578082015183820152602001610174565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b6101e9600160a060020a03600435166024356105d7565b604051901515815260200160405180910390f35b341561020857600080fd5b610210610643565b60405190815260200160405180910390f35b341561022d57600080fd5b6101e9600160a060020a0360043581169060243516604435610649565b341561025557600080fd5b610210600160a060020a0360043516610670565b341561027457600080fd5b61027c610682565b60405160ff909116815260200160405180910390f35b341561029d57600080fd5b610210610687565b34156102b057600080fd5b61013b61068d565b34156102c357600080fd5b61013b600160a060020a0360043516602435610746565b34156102e557600080fd5b6101e9600160a060020a036004351660243561077b565b341561030757600080fd5b610210600160a060020a0360043516610875565b341561032657600080fd5b61032e610890565b604051600160a060020a03909116815260200160405180910390f35b341561035557600080fd5b61032e6108a4565b341561036857600080fd5b61013b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506108b395505050505050565b34156103f757600080fd5b61015061095c565b341561040a57600080fd5b610210610993565b341561041d57600080fd5b6101e9600160a060020a03600435166024356109ac565b61013b600160a060020a03600435166104d4565b341561045357600080fd5b6101e9600160a060020a03600435166024356109d1565b341561047557600080fd5b610210600160a060020a0360043581169060243516610a75565b341561049a57600080fd5b6101e9610aa0565b34156104ad57600080fd5b61013b600160a060020a0360043516610aa9565b34156104cc57600080fd5b610210610b44565b6000696bff27c8303182c000006000541080156104f45750600c5460ff16155b80156105045750635a7b22804210155b151561050f57600080fd5b662386f26fc1000034101561052357600080fd5b61052c34610b52565b9050696bff27c8303182c0000061054e82600054610c6f90919063ffffffff16565b111561055957600080fd5b6105638282610c81565b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059c57600080fd5b5050565b60408051908101604052600b81527f446f7261646f546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b600c5460009060ff16151561065d57600080fd5b610668848484610d18565b949350505050565b60016020526000908152604090205481565b600f81565b611a0b81565b600354600090819033600160a060020a039081169116146106ad57600080fd5b600c5460ff16156106bd57600080fd5b506930b453321fc603c00000905069370ea0d47cf61a8000006106df82610e88565b6106e881610f94565b6000546106fd9083830163ffffffff610c6f16565b600055600c805460ff19166001179055600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059c57600080fd5b60035433600160a060020a0390811691161461076157600080fd5b600c5460ff161561077157600080fd5b61059c8282610c81565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054808311156107d857600160a060020a03338116600090815260026020908152604080832093881683529290529081205561080f565b6107e8818463ffffffff610fdf16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b600c546101009004600160a060020a031681565b600354600160a060020a031681565b60035460009033600160a060020a039081169116146108d157600080fd5b600c5460ff16156108e157600080fd5b81518351146108ef57600080fd5b6064835111156108fe57600080fd5b5060005b81518110156109575761093f83828151811061091a57fe5b9060200190602002015183838151811061093057fe5b90602001906020020151610c81565b61095081600163ffffffff610c6f16565b9050610902565b505050565b60408051908101604052600381527f444f520000000000000000000000000000000000000000000000000000000000602082015281565b60006109a6670de0b6b3a7640000610b52565b90505b90565b600c5460009060ff1615156109c057600080fd5b6109ca8383610ff4565b9392505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a09908363ffffffff610c6f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600c5460ff1681565b60035433600160a060020a03908116911614610ac457600080fd5b600160a060020a0381161515610ad957600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b696bff27c8303182c0000081565b600080806509184e72a000610b6f85611a0b63ffffffff6110dd16565b811515610b7857fe5b046402540be400029150610b8a611104565b9050600b60ff821660078110610b9c57fe5b602091828204019190069054906101000a900460ff1660640360ff16610bcc6064846110dd90919063ffffffff16565b811515610bd557fe5b0492505b600460ff821660078110610be957fe5b0154600054610bff90859063ffffffff610c6f16565b118015610c0f575060068160ff16105b15610c6857600101600b60ff821660078110610c2757fe5b602091828204019190069054906101000a900460ff1660640360ff16610c576064846110dd90919063ffffffff16565b811515610c6057fe5b049250610bd9565b5050919050565b6000828201838110156109ca57600080fd5b600160a060020a0382161515610c9657600080fd5b600054610ca9908263ffffffff610c6f16565b6000908155600160a060020a038316815260016020526040902054610cd4908263ffffffff610c6f16565b600160a060020a0383166000818152600160205260408082209390935590916000805160206115548339815191529084905190815260200160405180910390a35050565b6000600160a060020a0383161515610d2f57600080fd5b600160a060020a038416600090815260016020526040902054821115610d5457600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610d8757600080fd5b600160a060020a038416600090815260016020526040902054610db0908363ffffffff610fdf16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610de5908363ffffffff610c6f16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610e2d908363ffffffff610fdf16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516916000805160206115548339815191529085905190815260200160405180910390a35060019392505050565b6003546000903090600160a060020a0316635fee6600610ea66111d6565b600160a060020a03938416815291909216602082015267ffffffffffffffff90911660408083019190915260609091019051809103906000f0801515610eeb57600080fd5b600c805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038481168202929092179283905590910416600090815260016020526040902054909150610f3f9083610c6f565b600c8054600160a060020a036101009182900481166000908152600160205260408082209590955592549190910416916000805160206115548339815191529085905190815260200160405180910390a35050565b60038054600160a060020a039081166000908152600160205260408082208590559254909116916000805160206115548339815191529084905190815260200160405180910390a350565b600082821115610fee57600080fd5b50900390565b6000600160a060020a038316151561100b57600080fd5b600160a060020a03331660009081526001602052604090205482111561103057600080fd5b600160a060020a033316600090815260016020526040902054611059908363ffffffff610fdf16565b600160a060020a03338116600090815260016020526040808220939093559085168152205461108e908363ffffffff610c6f16565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206115548339815191529085905190815260200160405180910390a350600192915050565b60008282028315806110f957508284828115156110f657fe5b04145b15156109ca57600080fd5b600061110e611143565b90505b60068160ff161080156111365750600460ff82166007811061112f57fe5b0154600054115b156109a957600101611111565b6000635afc558042111561115657600080fd5b635ae9e08042111561116a575060066109a9565b635ad76b8042111561117e575060056109a9565b635ac4f680421115611192575060046109a9565b635ab281804211156111a6575060036109a9565b635aa00c804211156111ba575060026109a9565b635a8d97804211156111ce575060016109a9565b5060006109a9565b60405161036d806111e78339019056006060604052341561000f57600080fd5b60405160608061036d8339810160405280805191906020018051919060200180519150506001604060020a034281169082161161004b57600080fd5b60008054600160a060020a0319908116600160a060020a0395861617825560018054909116939094169290921760a060020a60e060020a031916740100000000000000000000000000000000000000006001604060020a039290921691909102179091556102ae9081906100bf90396000f3006060604052600436106100485763ffffffff60e060020a60003504166338af3eed811461004d57806386d1a69f1461007c578063b91d400114610091578063fc0c546a146100c1575b600080fd5b341561005857600080fd5b6100606100d4565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b61008f6100e3565b005b341561009c57600080fd5b6100a46101c6565b60405167ffffffffffffffff909116815260200160405180910390f35b34156100cc57600080fd5b6100606101ee565b600154600160a060020a031681565b60015460009067ffffffffffffffff74010000000000000000000000000000000000000000909104811642909116101561011c57600080fd5b60008054600160a060020a0316906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561017757600080fd5b6102c65a03f1151561018857600080fd5b5050506040518051915050600081116101a057600080fd5b6001546000546101c391600160a060020a0391821691168363ffffffff6101fd16565b50565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff1681565b600054600160a060020a031681565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561025a57600080fd5b6102c65a03f1151561026b57600080fd5b50505060405180519050151561027d57fe5b5050505600a165627a7a723058205a1fdd9d750a8f1788c842c091210356e341e5e4fba386728d5595efc4ad28680029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820b07a2e65cd57474afc38ab7b1ce5a7e7effe644697c932919f4d62ed5059b2130029
Swarm Source
bzzr://b07a2e65cd57474afc38ab7b1ce5a7e7effe644697c932919f4d62ed5059b213
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.