Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
0
Holders
1
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
60,000Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x96d0b9AA...31C8ae9B5 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Cajutel
Compiler Version
v0.4.13+commit.fb4cb1a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-08-16
*/
pragma solidity ^0.4.13;
/**
* @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;
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @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) onlyOwner {
if (newOwner != address(0)) {
owner = newOwner;
}
}
}
contract tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); }
contract LoggedERC20 is Ownable {
/* Structures */
struct LogValueBlock {
uint256 value;
uint256 block;
}
/* Public variables of the token */
string public standard = 'LogValueBlockToken 0.1';
string public name;
string public symbol;
uint8 public decimals;
LogValueBlock[] public loggedTotalSupply;
bool public locked;
uint256 public creationBlock;
/* This creates an array with all balances */
mapping (address => LogValueBlock[]) public loggedBalances;
mapping (address => mapping (address => uint256)) public allowance;
/* This generates a public event on the blockchain that will notify clients */
event Transfer(address indexed from, address indexed to, uint256 value);
mapping (address => bool) public frozenAccount;
/* This generates a public event on the blockchain that will notify clients */
event FrozenFunds(address target, bool frozen);
/* Initializes contract with initial supply tokens to the creator of the contract */
function LoggedERC20(
uint256 initialSupply,
string tokenName,
uint8 decimalUnits,
string tokenSymbol,
bool transferAllSupplyToOwner,
bool _locked
) {
LogValueBlock memory valueBlock = LogValueBlock(initialSupply, block.number);
loggedTotalSupply.push(valueBlock);
if(transferAllSupplyToOwner) {
loggedBalances[msg.sender].push(valueBlock);
}
else {
loggedBalances[this].push(valueBlock);
}
name = tokenName; // Set the name for display purposes
symbol = tokenSymbol; // Set the symbol for display purposes
decimals = decimalUnits; // Amount of decimals for display purposes
locked = _locked;
}
function valueAt(LogValueBlock [] storage valueBlocks, uint256 block) internal returns (uint256) {
if(valueBlocks.length == 0) {
return 0;
}
LogValueBlock memory prevLogValueBlock;
for(uint256 i = 0; i < valueBlocks.length; i++) {
LogValueBlock memory valueBlock = valueBlocks[i];
if(valueBlock.block > block) {
return prevLogValueBlock.value;
}
prevLogValueBlock = valueBlock;
}
return prevLogValueBlock.value;
}
function setBalance(address _address, uint256 value) internal {
loggedBalances[_address].push(LogValueBlock(value, block.number));
}
function totalSupply() returns (uint256) {
return valueAt(loggedTotalSupply, block.number);
}
function balanceOf(address _address) returns (uint256) {
return valueAt(loggedBalances[_address], block.number);
}
function transferInternal(address _from, address _to, uint256 value) internal returns (bool success) {
uint256 balanceFrom = valueAt(loggedBalances[msg.sender], block.number);
uint256 balanceTo = valueAt(loggedBalances[_to], block.number);
if(value == 0) {
return false;
}
if(frozenAccount[_from] == true) {
return false;
}
if(balanceFrom < value) {
return false;
}
if(balanceTo + value <= balanceTo) {
return false;
}
loggedBalances[_from].push(LogValueBlock(balanceFrom - value, block.number));
loggedBalances[_to].push(LogValueBlock(balanceTo + value, block.number));
Transfer(_from, _to, value);
return true;
}
/* Send coins */
function transfer(address _to, uint256 _value) {
require(locked == false);
bool status = transferInternal(msg.sender, _to, _value);
require(status == true);
}
/* Allow another contract to spend some tokens in your behalf */
function approve(address _spender, uint256 _value) returns (bool success) {
if(locked) {
return false;
}
allowance[msg.sender][_spender] = _value;
return true;
}
/* Approve and then communicate the approved contract in a single tx */
function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
if(locked) {
return false;
}
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
}
/* A contract attempts to get the coins */
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
if(locked) {
return false;
}
bool _success = transferInternal(_from, _to, _value);
if(_success) {
allowance[_from][msg.sender] -= _value;
}
return _success;
}
}
contract LoggedDividend is Ownable, LoggedERC20 {
/* Structs */
struct Dividend {
uint256 id;
uint256 block;
uint256 time;
uint256 amount;
uint256 claimedAmount;
uint256 transferedBack;
uint256 totalSupply;
uint256 recycleTime;
bool recycled;
mapping (address => bool) claimed;
}
/* variables */
Dividend [] public dividends;
mapping (address => uint256) dividendsClaimed;
/* Events */
event DividendTransfered(uint256 id, address indexed _address, uint256 _block, uint256 _amount, uint256 _totalSupply);
event DividendClaimed(uint256 id, address indexed _address, uint256 _claim);
event UnclaimedDividendTransfer(uint256 id, uint256 _value);
event DividendRecycled(uint256 id, address indexed _recycler, uint256 _blockNumber, uint256 _amount, uint256 _totalSupply);
function LoggedDividend(
uint256 initialSupply,
string tokenName,
uint8 decimalUnits,
string tokenSymbol,
bool transferAllSupplyToOwner,
bool _locked
) LoggedERC20(initialSupply, tokenName, decimalUnits, tokenSymbol, transferAllSupplyToOwner, _locked) {
}
function addDividend(uint256 recycleTime) payable onlyOwner {
require(msg.value > 0);
uint256 id = dividends.length;
uint256 _totalSupply = valueAt(loggedTotalSupply, block.number);
dividends.push(
Dividend(
id,
block.number,
now,
msg.value,
0,
0,
_totalSupply,
recycleTime,
false
)
);
DividendTransfered(id, msg.sender, block.number, msg.value, _totalSupply);
}
function claimDividend(uint256 dividendId) public returns (bool) {
if(dividends.length - 1 < dividendId) {
return false;
}
Dividend storage dividend = dividends[dividendId];
if(dividend.claimed[msg.sender] == true) {
return false;
}
if(dividend.recycled == true) {
return false;
}
if(now >= dividend.time + dividend.recycleTime) {
return false;
}
uint256 balance = valueAt(loggedBalances[msg.sender], dividend.block);
if(balance == 0) {
return false;
}
uint256 claim = balance * dividend.amount / dividend.totalSupply;
dividend.claimed[msg.sender] = true;
dividend.claimedAmount = dividend.claimedAmount + claim;
if (claim > 0) {
msg.sender.transfer(claim);
DividendClaimed(dividendId, msg.sender, claim);
return true;
}
return false;
}
function claimDividends() public {
require(dividendsClaimed[msg.sender] < dividends.length);
for (uint i = dividendsClaimed[msg.sender]; i < dividends.length; i++) {
if ((dividends[i].claimed[msg.sender] == false) && (dividends[i].recycled == false)) {
dividendsClaimed[msg.sender] = i + 1;
claimDividend(i);
}
}
}
function recycleDividend(uint256 dividendId) public onlyOwner returns (bool success) {
if(dividends.length - 1 < dividendId) {
return false;
}
Dividend storage dividend = dividends[dividendId];
if(dividend.recycled) {
return false;
}
dividend.recycled = true;
return true;
}
function refundUnclaimedEthers(uint256 dividendId) public onlyOwner returns (bool success) {
if(dividends.length - 1 < dividendId) {
return false;
}
Dividend storage dividend = dividends[dividendId];
if(dividend.recycled == false) {
if(now < dividend.time + dividend.recycleTime) {
return false;
}
}
uint256 claimedBackAmount = dividend.amount - dividend.claimedAmount;
dividend.transferedBack = claimedBackAmount;
if(claimedBackAmount > 0) {
owner.transfer(claimedBackAmount);
UnclaimedDividendTransfer(dividendId, claimedBackAmount);
return true;
}
return false;
}
}
contract LoggedPhaseICO is LoggedDividend {
uint256 public icoSince;
uint256 public icoTill;
uint256 public collectedEthers;
Phase[] public phases;
struct Phase {
uint256 price;
uint256 maxAmount;
}
function LoggedPhaseICO(
uint256 _icoSince,
uint256 _icoTill,
uint256 initialSupply,
string tokenName,
string tokenSymbol,
uint8 precision,
bool transferAllSupplyToOwner,
bool _locked
) LoggedDividend(initialSupply, tokenName, precision, tokenSymbol, transferAllSupplyToOwner, _locked) {
standard = 'LoggedPhaseICO 0.1';
icoSince = _icoSince;
icoTill = _icoTill;
}
function getIcoTokensAmount(uint256 collectedEthers, uint256 value) returns (uint256) {
uint256 amount;
uint256 newCollectedEthers = collectedEthers;
uint256 remainingValue = value;
for (uint i = 0; i < phases.length; i++) {
Phase storage phase = phases[i];
if(phase.maxAmount > newCollectedEthers) {
if (newCollectedEthers + remainingValue > phase.maxAmount) {
uint256 diff = phase.maxAmount - newCollectedEthers;
amount += diff * 1 ether / phase.price;
remainingValue -= diff;
newCollectedEthers += diff;
}
else {
amount += remainingValue * 1 ether / phase.price;
newCollectedEthers += remainingValue;
remainingValue = 0;
}
}
if (remainingValue == 0) {
break;
}
}
if (remainingValue > 0) {
return 0;
}
return amount;
}
function buy(address _address, uint256 time, uint256 value) internal returns (bool) {
if (locked == true) {
return false;
}
if (time < icoSince) {
return false;
}
if (time > icoTill) {
return false;
}
if (value == 0) {
return false;
}
uint256 amount = getIcoTokensAmount(collectedEthers, value);
if(amount == 0) {
return false;
}
uint256 selfBalance = valueAt(loggedBalances[this], block.number);
uint256 holderBalance = valueAt(loggedBalances[_address], block.number);
if (selfBalance < amount) {
return false;
}
if (holderBalance + amount < holderBalance) {
return false;
}
setBalance(_address, holderBalance + amount);
setBalance(this, selfBalance - amount);
collectedEthers += value;
Transfer(this, _address, amount);
return true;
}
function () payable {
bool status = buy(msg.sender, now, msg.value);
require(status == true);
}
}
contract Cajutel is LoggedPhaseICO {
function Cajutel(
uint256 initialSupply,
string tokenName,
string tokenSymbol,
address founder1,
address founder2,
address marketing,
uint256 icoSince,
uint256 icoTill
) LoggedPhaseICO(icoSince, icoTill, initialSupply, tokenName, tokenSymbol, 18, false, false) {
standard = 'Cajutel 0.1';
phases.push(Phase(0.05 ether, 500 ether));
phases.push(Phase(0.075 ether, 750 ether + 500 ether));
phases.push(Phase(0.1 ether, 10000 ether + 750 ether + 500 ether));
phases.push(Phase(0.15 ether, 30000 ether + 10000 ether + 750 ether + 500 ether));
phases.push(Phase(0.2 ether, 80000 ether + 30000 ether + 10000 ether + 750 ether + 500 ether));
uint256 founder1Tokens = 900000000000000000000000;
uint256 founder2Tokens = 100000000000000000000000;
uint256 marketingTokens = 60000000000000000000000;
setBalance(founder1, founder1Tokens);
Transfer(this, founder1, founder1Tokens);
setBalance(founder2, founder2Tokens);
Transfer(this, founder2, founder2Tokens);
setBalance(marketing, marketingTokens);
Transfer(this, marketing, marketingTokens);
setBalance(this, initialSupply - founder1Tokens - founder2Tokens - marketingTokens);
}
function transferEthers() onlyOwner {
owner.transfer(this.balance);
}
function setLocked(bool _locked) onlyOwner {
locked = _locked;
}
function setIcoDates(uint256 _icoSince, uint256 _icoTill) onlyOwner {
icoSince = _icoSince;
icoTill = _icoTill;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"collectedEthers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"collectedEthers","type":"uint256"},{"name":"value","type":"uint256"}],"name":"getIcoTokensAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dividendId","type":"uint256"}],"name":"refundUnclaimedEthers","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"icoTill","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_locked","type":"bool"}],"name":"setLocked","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dividendId","type":"uint256"}],"name":"recycleDividend","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"phases","outputs":[{"name":"price","type":"uint256"},{"name":"maxAmount","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"loggedBalances","outputs":[{"name":"value","type":"uint256"},{"name":"block","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"icoSince","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claimDividends","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recycleTime","type":"uint256"}],"name":"addDividend","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_icoSince","type":"uint256"},{"name":"_icoTill","type":"uint256"}],"name":"setIcoDates","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"dividends","outputs":[{"name":"id","type":"uint256"},{"name":"block","type":"uint256"},{"name":"time","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"claimedAmount","type":"uint256"},{"name":"transferedBack","type":"uint256"},{"name":"totalSupply","type":"uint256"},{"name":"recycleTime","type":"uint256"},{"name":"recycled","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dividendId","type":"uint256"}],"name":"claimDividend","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"loggedTotalSupply","outputs":[{"name":"value","type":"uint256"},{"name":"block","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"transferEthers","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"},{"name":"founder1","type":"address"},{"name":"founder2","type":"address"},{"name":"marketing","type":"address"},{"name":"icoSince","type":"uint256"},{"name":"icoTill","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_block","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_totalSupply","type":"uint256"}],"name":"DividendTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_claim","type":"uint256"}],"name":"DividendClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"UnclaimedDividendTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":true,"name":"_recycler","type":"address"},{"indexed":false,"name":"_blockNumber","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_totalSupply","type":"uint256"}],"name":"DividendRecycled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"}]Contract Creation Code
0x606060405260408051908101604052601681527f4c6f6756616c7565426c6f636b546f6b656e20302e3100000000000000000000602082015260019080516200004d92916020019062000684565b5034156200005a57600080fd5b60405162002362380380620023628339810160405280805191906020018051820191906020018051820191906020018051919060200180519190602001805191906020018051919060200180519150505b600080600084848c8c8c60126000805b8585848685855b8585858585855b620000d36200070a565b5b60008054600160a060020a03191633600160a060020a03161790555b604080519081016040528781524360208201526005805491925090600181016200011b838262000721565b916000526020600020906002020160005b508290815181556020820151816001015550505082156200019c57600160a060020a033316600090815260086020526040902080546001810162000171838262000721565b916000526020600020906002020160005b5082908151815560208201518160010155505050620001ec565b600160a060020a0330166000908152600860205260409020805460018101620001c6838262000721565b916000526020600020906002020160005b50829081518155602082015181600101555050505b60028680516200020192916020019062000684565b5060038480516200021792916020019062000684565b506004805460ff1990811660ff881617909155600680549091168315151790555b505050505050505b50505050505060408051908101604052601281527f4c6f67676564506861736549434f20302e310000000000000000000000000000602082015260019080516200028f92916020019062000684565b50600d889055600e8790555b505050505050505060408051908101604052600b81527f43616a7574656c20302e3100000000000000000000000000000000000000000060208201526001908051620002ec92916020019062000684565b50601080546001810162000301838262000721565b916000526020600020906002020160005b6040805190810160405266b1a2bc2ec500008152681b1ae4d6e2ef50000060208201529190508151815560208201518160010155505050601080548060010182816200035f919062000721565b916000526020600020906002020160005b6040805190810160405267010a741a4627800081526843c33c1937564800006020820152919050815181556020820151816001015550505060108054806001018281620003be919062000721565b916000526020600020906002020160005b6040805190810160405267016345785d8a00008152690261dd1ce2f20888000060208201529190508151815560208201518160010155505050601080548060010182816200041e919062000721565b916000526020600020906002020160005b60408051908101604052670214e8348c4f000081526908bc2abf40221f48000060208201529190508151815560208201518160010155505050601080548060010182816200047e919062000721565b916000526020600020906002020160005b604080519081016040526702c68af0bb14000081526919acf9c58df7b14800006020820152919050815181556020820151816001015550505069be951906eba2aa800000925069152d02c7e14af68000009150690cb49b44ba602d80000090506200050f88846200061d64010000000002620017d5176401000000009004565b87600160a060020a031630600160a060020a0316600080516020620023428339815191528560405190815260200160405180910390a36200055f8783640100000000620017d56200061d82021704565b86600160a060020a031630600160a060020a0316600080516020620023428339815191528460405190815260200160405180910390a3620005af8682640100000000620017d56200061d82021704565b85600160a060020a031630600160a060020a0316600080516020620023428339815191528360405190815260200160405180910390a36200060b308284868f0303036200061d64010000000002620017d5176401000000009004565b5b505050505050505050505062000803565b600160a060020a038216600090815260086020526040902080546001810162000647838262000721565b916000526020600020906002020160005b6040805190810160405284815243602082015291905081518155602082015181600101555050505b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006c757805160ff1916838001178555620006f7565b82800160010185558215620006f7579182015b82811115620006f7578251825591602001919060010190620006da565b5b50620007069291506200078b565b5090565b604080519081016040526000808252602082015290565b8154818355818115116200075057600202816002028360005260206000209182019101620007509190620007af565b5b505050565b8154818355818115116200075057600202816002028360005260206000209182019101620007509190620007af565b5b505050565b620007ac91905b8082111562000706576000815560010162000792565b5090565b90565b620007ac91905b80821115620007065760008082556001820155600201620007b6565b5090565b90565b620007ac91905b80821115620007065760008082556001820155600201620007b6565b5090565b90565b611b2f80620008136000396000f300606060405236156101935763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630200b10d81146101bb5780630655c58b146101e057806306fdde031461020b57806307a95e8314610296578063095ea7b3146102c057806317634514146102f657806318160ddd1461031b5780631e72444714610340578063211e28b61461036557806322c9427e1461037f57806323b872dd146103a95780632e37eef6146103e5578063313ce5671461041357806337a366d81461043c5780633f1b1267146104765780635a3b7e421461049b578063668038e01461052657806370a082311461053b578063752d2bfb1461056c5780637c871d3114610579578063814b3fe0146105945780638da5cb5b146105f757806395d89b41146106265780639abd3572146106b1578063a713a3f7146106db578063a9059cbb14610709578063b414d4b61461072d578063cae9ca5114610760578063cf309012146107d9578063d271011d14610800578063dd62ed3e14610815578063f2fde38b1461084c575b6101b95b60006101a433423461086d565b90506001811515146101b557600080fd5b5b50565b005b34156101c657600080fd5b6101ce6109c0565b60405190815260200160405180910390f35b34156101eb57600080fd5b6101ce6004356024356109c6565b60405190815260200160405180910390f35b341561021657600080fd5b61021e610aab565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025b5780820151818401525b602001610242565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a157600080fd5b6102ac600435610b49565b604051901515815260200160405180910390f35b34156102cb57600080fd5b6102ac600160a060020a0360043516602435610c6d565b604051901515815260200160405180910390f35b341561030157600080fd5b6101ce610cb5565b60405190815260200160405180910390f35b341561032657600080fd5b6101ce610cbb565b60405190815260200160405180910390f35b341561034b57600080fd5b6101ce610cce565b60405190815260200160405180910390f35b341561037057600080fd5b6101b96004351515610cd4565b005b341561038a57600080fd5b6102ac600435610d02565b604051901515815260200160405180910390f35b34156103b457600080fd5b6102ac600160a060020a0360043581169060243516604435610d8d565b604051901515815260200160405180910390f35b34156103f057600080fd5b6103fb600435610df3565b60405191825260208201526040908101905180910390f35b341561041e57600080fd5b610426610e21565b60405160ff909116815260200160405180910390f35b341561044757600080fd5b6103fb600160a060020a0360043516602435610e2a565b60405191825260208201526040908101905180910390f35b341561048157600080fd5b6101ce610e67565b60405190815260200160405180910390f35b34156104a657600080fd5b61021e610e6d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025b5780820151818401525b602001610242565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561053157600080fd5b6101b9610f0b565b005b341561054657600080fd5b6101ce600160a060020a0360043516611005565b60405190815260200160405180910390f35b6101b960043561102f565b005b341561058457600080fd5b6101b96004356024356111a1565b005b341561059f57600080fd5b6105aa6004356111cc565b60405198895260208901979097526040808901969096526060880194909452608087019290925260a086015260c085015260e0840152901515610100830152610120909101905180910390f35b341561060257600080fd5b61060a61122a565b604051600160a060020a03909116815260200160405180910390f35b341561063157600080fd5b61021e611239565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025b5780820151818401525b602001610242565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106bc57600080fd5b6102ac6004356112d7565b604051901515815260200160405180910390f35b34156106e657600080fd5b6103fb600435611497565b60405191825260208201526040908101905180910390f35b341561071457600080fd5b6101b9600160a060020a03600435166024356114c5565b005b341561073857600080fd5b6102ac600160a060020a03600435166114fa565b604051901515815260200160405180910390f35b341561076b57600080fd5b6102ac60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061150f95505050505050565b604051901515815260200160405180910390f35b34156107e457600080fd5b6102ac61165f565b604051901515815260200160405180910390f35b341561080b57600080fd5b6101b9611668565b005b341561082057600080fd5b6101ce600160a060020a03600435811690602435166116c0565b60405190815260200160405180910390f35b341561085757600080fd5b6101b9600160a060020a03600435166116dd565b005b60065460009081908190819060ff1615156001141561088f57600093506109b6565b600d548610156108a257600093506109b6565b600e548611156108b557600093506109b6565b8415156108c557600093506109b6565b6108d1600f54866109c6565b92508215156108e357600093506109b6565b600160a060020a03301660009081526008602052604090206109059043611735565b600160a060020a038816600090815260086020526040902090925061092a9043611735565b90508282101561093d57600093506109b6565b80838201101561095057600093506109b6565b61095c878483016117d5565b610968308484036117d5565b600f805486019055600160a060020a038088169030167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600193505b5050509392505050565b600f5481565b60008083838280805b601054831015610a895760108054849081106109e757fe5b906000526020600020906002020160005b5091508482600101541115610a705781600101548486011115610a4b57848260010154039050816000015481670de0b6b3a764000002811515610a3757fe5b048601955080840393508085019450610a70565b8154670de0b6b3a76400008502811515610a6157fe5b04860195508385019450600093505b5b831515610a7d57610a89565b5b6001909201916109cf565b6000841115610a9b5760009650610a9f565b8596505b50505050505092915050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505081565b600080548190819033600160a060020a03908116911614610b6957600080fd5b600b546000190184901015610b815760009250610c65565b600b805485908110610b8f57fe5b90600052602060002090600a020160005b50600881015490925060ff161515610bcd578160070154826002015401421015610bcd5760009250610c65565b5b506004810154600382015403600582018190556000811115610c6057600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610c1d57600080fd5b7ff8f6e080db19192fcb419f05354e903e76f8ef166e655114101e1f956b4c4cf5848260405191825260208201526040908101905180910390a160019250610c65565b600092505b5b5050919050565b60065460009060ff1615610c8357506000610caf565b50600160a060020a03338116600090815260096020908152604080832093861683529290522081905560015b92915050565b60075481565b6000610cc8600543611735565b90505b90565b600e5481565b60005433600160a060020a03908116911614610cef57600080fd5b6006805460ff19168215151790555b5b50565b60008054819033600160a060020a03908116911614610d2057600080fd5b600b546000190183901015610d385760009150610d86565b600b805484908110610d4657fe5b90600052602060002090600a020160005b50600881015490915060ff1615610d715760009150610d86565b60088101805460ff1916600190811790915591505b5b50919050565b600654600090819060ff1615610da65760009150610deb565b610db185858561183a565b90508015610de757600160a060020a03808616600090815260096020908152604080832033909416835292905220805484900390555b8091505b509392505050565b6010805482908110610e0157fe5b906000526020600020906002020160005b50805460019091015490915082565b60045460ff1681565b600860205281600052604060002081815481101515610e4557fe5b906000526020600020906002020160005b508054600190910154909250905082565b600d5481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505081565b600b54600160a060020a0333166000908152600c602052604081205490919010610f3457600080fd5b50600160a060020a0333166000908152600c60205260409020545b600b548110156101b557600b805482908110610f6757fe5b90600052602060002090600a020160005b50600160a060020a0333166000908152600991909101602052604090205460ff16158015610fca5750600b805482908110610faf57fe5b90600052602060002090600a020160005b506008015460ff16155b15610ff857600160a060020a0333166000908152600c60205260409020600182019055610ff6816112d7565b505b5b600101610f4f565b5b50565b600160a060020a03811660009081526008602052604081206110279043611735565b90505b919050565b60008054819033600160a060020a0390811691161461104d57600080fd5b6000341161105a57600080fd5b600b54915061106a600543611735565b9050600b80548060010182816110809190611a04565b91600052602060002090600a020160005b6101206040519081016040908152868252436020830152429082015234606082015260006080820181905260a0820181905260c0820186905260e08201889052610100820152919050815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151600891909101805460ff1916911515919091179055505033600160a060020a03167f4ac365c2344819f39ac5cfcbf4b839a10fb791243db4797084e9ed0fbc917b8a834334856040518085815260200184815260200183815260200182815260200194505050505060405180910390a25b5b505050565b60005433600160a060020a039081169116146111bc57600080fd5b600d829055600e8190555b5b5050565b600b8054829081106111da57fe5b90600052602060002090600a020160005b50805460018201546002830154600384015460048501546005860154600687015460078801546008909801549698509496939592949193909260ff1689565b600054600160a060020a031681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505081565b600080600080846001600b805490500310156112f6576000935061148f565b600b80548690811061130457fe5b90600052602060002090600a020160005b50600160a060020a033316600090815260098201602052604090205490935060ff1615156001141561134a576000935061148f565b600883015460ff16151560011415611365576000935061148f565b6007830154600284015401421061137f576000935061148f565b600160a060020a033316600090815260086020526040902060018401546113a69190611735565b91508115156113b8576000935061148f565b8260060154836003015483028115156113cd57fe5b600160a060020a03331660009081526009860160205260408120805460ff191660011790556004860180549390920492830190915590915081111561148a57600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561143d57600080fd5b33600160a060020a03167fa1594d215a577c1905bcb0b5b186a40a0104714277441d4b2ac428c89bf7f4b1868360405191825260208201526040908101905180910390a26001935061148f565b600093505b505050919050565b6005805482908110610e0157fe5b906000526020600020906002020160005b50805460019091015490915082565b60065460009060ff16156114d857600080fd5b6114e333848461183a565b905060018115151461119b57600080fd5b5b505050565b600a6020526000908152604090205460ff1681565b600654600090819060ff16156115285760009150610deb565b50836115348185610c6d565b15610deb5780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156115eb5780820151818401525b6020016115d2565b50505050905090810190601f1680156116185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561163957600080fd5b6102c65a03f1151561164a57600080fd5b50505060019150610deb565b5b509392505050565b60065460ff1681565b60005433600160a060020a0390811691161461168357600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156116bc57600080fd5b5b5b565b600960209081526000928352604080842090915290825290205481565b60005433600160a060020a039081169116146116f857600080fd5b600160a060020a038116156101b5576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600061173f611a36565b6000611749611a36565b8554151561175a57600093506117cc565b600091505b85548210156117c757858281548110151561177657fe5b906000526020600020906002020160005b5060408051908101604052815481526001909101546020820190815290915085905111156117b857825193506117cc565b8092505b60019091019061175f565b825193505b50505092915050565b600160a060020a03821660009081526008602052604090208054600181016117fd8382611a4d565b916000526020600020906002020160005b6040805190810160405284815243602082015291905081518155602082015181600101555050505b5050565b600160a060020a0333166000908152600860205260408120819081906118609043611735565b600160a060020a03861660009081526008602052604090209092506118859043611735565b905083151561189757600092506119fb565b600160a060020a0386166000908152600a602052604090205460ff161515600114156118c657600092506119fb565b838210156118d757600092506119fb565b8381018190116118ea57600092506119fb565b600160a060020a03861660009081526008602052604090208054600181016119128382611a4d565b916000526020600020906002020160005b604080519081016040528786038152436020820152919050815181556020820151600191820155600160a060020a03881660009081526008602052604090208054909350915081016119758382611a4d565b916000526020600020906002020160005b604080519081016040528488018152436020820152919050815181556020820151816001015550505084600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3600192505b50509392505050565b81548183558181151161119b57600a0281600a02836000526020600020918201910161119b9190611a7f565b5b505050565b604080519081016040526000808252602082015290565b81548183558181151161119b5760020281600202836000526020600020918201910161119b9190611adc565b5b505050565b610ccb91905b80821115611ad5576000808255600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782015560088101805460ff19169055600a01611a85565b5090565b90565b610ccb91905b80821115611ad55760008082556001820155600201611ae2565b5090565b905600a165627a7a723058205b17f66239e203a0728d43e78072edc8d808067ca28285ab5a6e2fb671ad7d100029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x606060405236156101935763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630200b10d81146101bb5780630655c58b146101e057806306fdde031461020b57806307a95e8314610296578063095ea7b3146102c057806317634514146102f657806318160ddd1461031b5780631e72444714610340578063211e28b61461036557806322c9427e1461037f57806323b872dd146103a95780632e37eef6146103e5578063313ce5671461041357806337a366d81461043c5780633f1b1267146104765780635a3b7e421461049b578063668038e01461052657806370a082311461053b578063752d2bfb1461056c5780637c871d3114610579578063814b3fe0146105945780638da5cb5b146105f757806395d89b41146106265780639abd3572146106b1578063a713a3f7146106db578063a9059cbb14610709578063b414d4b61461072d578063cae9ca5114610760578063cf309012146107d9578063d271011d14610800578063dd62ed3e14610815578063f2fde38b1461084c575b6101b95b60006101a433423461086d565b90506001811515146101b557600080fd5b5b50565b005b34156101c657600080fd5b6101ce6109c0565b60405190815260200160405180910390f35b34156101eb57600080fd5b6101ce6004356024356109c6565b60405190815260200160405180910390f35b341561021657600080fd5b61021e610aab565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025b5780820151818401525b602001610242565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a157600080fd5b6102ac600435610b49565b604051901515815260200160405180910390f35b34156102cb57600080fd5b6102ac600160a060020a0360043516602435610c6d565b604051901515815260200160405180910390f35b341561030157600080fd5b6101ce610cb5565b60405190815260200160405180910390f35b341561032657600080fd5b6101ce610cbb565b60405190815260200160405180910390f35b341561034b57600080fd5b6101ce610cce565b60405190815260200160405180910390f35b341561037057600080fd5b6101b96004351515610cd4565b005b341561038a57600080fd5b6102ac600435610d02565b604051901515815260200160405180910390f35b34156103b457600080fd5b6102ac600160a060020a0360043581169060243516604435610d8d565b604051901515815260200160405180910390f35b34156103f057600080fd5b6103fb600435610df3565b60405191825260208201526040908101905180910390f35b341561041e57600080fd5b610426610e21565b60405160ff909116815260200160405180910390f35b341561044757600080fd5b6103fb600160a060020a0360043516602435610e2a565b60405191825260208201526040908101905180910390f35b341561048157600080fd5b6101ce610e67565b60405190815260200160405180910390f35b34156104a657600080fd5b61021e610e6d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025b5780820151818401525b602001610242565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561053157600080fd5b6101b9610f0b565b005b341561054657600080fd5b6101ce600160a060020a0360043516611005565b60405190815260200160405180910390f35b6101b960043561102f565b005b341561058457600080fd5b6101b96004356024356111a1565b005b341561059f57600080fd5b6105aa6004356111cc565b60405198895260208901979097526040808901969096526060880194909452608087019290925260a086015260c085015260e0840152901515610100830152610120909101905180910390f35b341561060257600080fd5b61060a61122a565b604051600160a060020a03909116815260200160405180910390f35b341561063157600080fd5b61021e611239565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025b5780820151818401525b602001610242565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106bc57600080fd5b6102ac6004356112d7565b604051901515815260200160405180910390f35b34156106e657600080fd5b6103fb600435611497565b60405191825260208201526040908101905180910390f35b341561071457600080fd5b6101b9600160a060020a03600435166024356114c5565b005b341561073857600080fd5b6102ac600160a060020a03600435166114fa565b604051901515815260200160405180910390f35b341561076b57600080fd5b6102ac60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061150f95505050505050565b604051901515815260200160405180910390f35b34156107e457600080fd5b6102ac61165f565b604051901515815260200160405180910390f35b341561080b57600080fd5b6101b9611668565b005b341561082057600080fd5b6101ce600160a060020a03600435811690602435166116c0565b60405190815260200160405180910390f35b341561085757600080fd5b6101b9600160a060020a03600435166116dd565b005b60065460009081908190819060ff1615156001141561088f57600093506109b6565b600d548610156108a257600093506109b6565b600e548611156108b557600093506109b6565b8415156108c557600093506109b6565b6108d1600f54866109c6565b92508215156108e357600093506109b6565b600160a060020a03301660009081526008602052604090206109059043611735565b600160a060020a038816600090815260086020526040902090925061092a9043611735565b90508282101561093d57600093506109b6565b80838201101561095057600093506109b6565b61095c878483016117d5565b610968308484036117d5565b600f805486019055600160a060020a038088169030167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600193505b5050509392505050565b600f5481565b60008083838280805b601054831015610a895760108054849081106109e757fe5b906000526020600020906002020160005b5091508482600101541115610a705781600101548486011115610a4b57848260010154039050816000015481670de0b6b3a764000002811515610a3757fe5b048601955080840393508085019450610a70565b8154670de0b6b3a76400008502811515610a6157fe5b04860195508385019450600093505b5b831515610a7d57610a89565b5b6001909201916109cf565b6000841115610a9b5760009650610a9f565b8596505b50505050505092915050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505081565b600080548190819033600160a060020a03908116911614610b6957600080fd5b600b546000190184901015610b815760009250610c65565b600b805485908110610b8f57fe5b90600052602060002090600a020160005b50600881015490925060ff161515610bcd578160070154826002015401421015610bcd5760009250610c65565b5b506004810154600382015403600582018190556000811115610c6057600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610c1d57600080fd5b7ff8f6e080db19192fcb419f05354e903e76f8ef166e655114101e1f956b4c4cf5848260405191825260208201526040908101905180910390a160019250610c65565b600092505b5b5050919050565b60065460009060ff1615610c8357506000610caf565b50600160a060020a03338116600090815260096020908152604080832093861683529290522081905560015b92915050565b60075481565b6000610cc8600543611735565b90505b90565b600e5481565b60005433600160a060020a03908116911614610cef57600080fd5b6006805460ff19168215151790555b5b50565b60008054819033600160a060020a03908116911614610d2057600080fd5b600b546000190183901015610d385760009150610d86565b600b805484908110610d4657fe5b90600052602060002090600a020160005b50600881015490915060ff1615610d715760009150610d86565b60088101805460ff1916600190811790915591505b5b50919050565b600654600090819060ff1615610da65760009150610deb565b610db185858561183a565b90508015610de757600160a060020a03808616600090815260096020908152604080832033909416835292905220805484900390555b8091505b509392505050565b6010805482908110610e0157fe5b906000526020600020906002020160005b50805460019091015490915082565b60045460ff1681565b600860205281600052604060002081815481101515610e4557fe5b906000526020600020906002020160005b508054600190910154909250905082565b600d5481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505081565b600b54600160a060020a0333166000908152600c602052604081205490919010610f3457600080fd5b50600160a060020a0333166000908152600c60205260409020545b600b548110156101b557600b805482908110610f6757fe5b90600052602060002090600a020160005b50600160a060020a0333166000908152600991909101602052604090205460ff16158015610fca5750600b805482908110610faf57fe5b90600052602060002090600a020160005b506008015460ff16155b15610ff857600160a060020a0333166000908152600c60205260409020600182019055610ff6816112d7565b505b5b600101610f4f565b5b50565b600160a060020a03811660009081526008602052604081206110279043611735565b90505b919050565b60008054819033600160a060020a0390811691161461104d57600080fd5b6000341161105a57600080fd5b600b54915061106a600543611735565b9050600b80548060010182816110809190611a04565b91600052602060002090600a020160005b6101206040519081016040908152868252436020830152429082015234606082015260006080820181905260a0820181905260c0820186905260e08201889052610100820152919050815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151600891909101805460ff1916911515919091179055505033600160a060020a03167f4ac365c2344819f39ac5cfcbf4b839a10fb791243db4797084e9ed0fbc917b8a834334856040518085815260200184815260200183815260200182815260200194505050505060405180910390a25b5b505050565b60005433600160a060020a039081169116146111bc57600080fd5b600d829055600e8190555b5b5050565b600b8054829081106111da57fe5b90600052602060002090600a020160005b50805460018201546002830154600384015460048501546005860154600687015460078801546008909801549698509496939592949193909260ff1689565b600054600160a060020a031681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505081565b600080600080846001600b805490500310156112f6576000935061148f565b600b80548690811061130457fe5b90600052602060002090600a020160005b50600160a060020a033316600090815260098201602052604090205490935060ff1615156001141561134a576000935061148f565b600883015460ff16151560011415611365576000935061148f565b6007830154600284015401421061137f576000935061148f565b600160a060020a033316600090815260086020526040902060018401546113a69190611735565b91508115156113b8576000935061148f565b8260060154836003015483028115156113cd57fe5b600160a060020a03331660009081526009860160205260408120805460ff191660011790556004860180549390920492830190915590915081111561148a57600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561143d57600080fd5b33600160a060020a03167fa1594d215a577c1905bcb0b5b186a40a0104714277441d4b2ac428c89bf7f4b1868360405191825260208201526040908101905180910390a26001935061148f565b600093505b505050919050565b6005805482908110610e0157fe5b906000526020600020906002020160005b50805460019091015490915082565b60065460009060ff16156114d857600080fd5b6114e333848461183a565b905060018115151461119b57600080fd5b5b505050565b600a6020526000908152604090205460ff1681565b600654600090819060ff16156115285760009150610deb565b50836115348185610c6d565b15610deb5780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156115eb5780820151818401525b6020016115d2565b50505050905090810190601f1680156116185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561163957600080fd5b6102c65a03f1151561164a57600080fd5b50505060019150610deb565b5b509392505050565b60065460ff1681565b60005433600160a060020a0390811691161461168357600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156116bc57600080fd5b5b5b565b600960209081526000928352604080842090915290825290205481565b60005433600160a060020a039081169116146116f857600080fd5b600160a060020a038116156101b5576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600061173f611a36565b6000611749611a36565b8554151561175a57600093506117cc565b600091505b85548210156117c757858281548110151561177657fe5b906000526020600020906002020160005b5060408051908101604052815481526001909101546020820190815290915085905111156117b857825193506117cc565b8092505b60019091019061175f565b825193505b50505092915050565b600160a060020a03821660009081526008602052604090208054600181016117fd8382611a4d565b916000526020600020906002020160005b6040805190810160405284815243602082015291905081518155602082015181600101555050505b5050565b600160a060020a0333166000908152600860205260408120819081906118609043611735565b600160a060020a03861660009081526008602052604090209092506118859043611735565b905083151561189757600092506119fb565b600160a060020a0386166000908152600a602052604090205460ff161515600114156118c657600092506119fb565b838210156118d757600092506119fb565b8381018190116118ea57600092506119fb565b600160a060020a03861660009081526008602052604090208054600181016119128382611a4d565b916000526020600020906002020160005b604080519081016040528786038152436020820152919050815181556020820151600191820155600160a060020a03881660009081526008602052604090208054909350915081016119758382611a4d565b916000526020600020906002020160005b604080519081016040528488018152436020820152919050815181556020820151816001015550505084600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3600192505b50509392505050565b81548183558181151161119b57600a0281600a02836000526020600020918201910161119b9190611a7f565b5b505050565b604080519081016040526000808252602082015290565b81548183558181151161119b5760020281600202836000526020600020918201910161119b9190611adc565b5b505050565b610ccb91905b80821115611ad5576000808255600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782015560088101805460ff19169055600a01611a85565b5090565b90565b610ccb91905b80821115611ad55760008082556001820155600201611ae2565b5090565b905600a165627a7a723058205b17f66239e203a0728d43e78072edc8d808067ca28285ab5a6e2fb671ad7d100029
Swarm Source
bzzr://5b17f66239e203a0728d43e78072edc8d808067ca28285ab5a6e2fb671ad7d10
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.
Add Token to MetaMask (Web3)