Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
61,182,033.34394029113435961 WLK
Holders
528
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,717 WLKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
WolkExchange
Compiler Version
v0.4.17+commit.bdeb9e52
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-10-15
*/
pragma solidity ^0.4.16;
// SafeMath Taken From FirstBlood
contract SafeMath {
function safeMul(uint a, uint b) internal returns (uint) {
uint c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function safeDiv(uint a, uint b) internal returns (uint) {
assert(b > 0);
uint c = a / b;
assert(a == b * c + a % b);
return c;
}
function safeSub(uint a, uint b) internal returns (uint) {
assert(b <= a);
return a - b;
}
function safeAdd(uint a, uint b) internal returns (uint) {
uint c = a + b;
assert(c>=a && c>=b);
return c;
}
}
// Ownership
contract Owned {
address public owner;
address public newOwner;
modifier onlyOwner { assert(msg.sender == owner); _; }
event OwnerUpdate(address _prevOwner, address _newOwner);
function Owned() {
owner = msg.sender;
}
function transferOwnership(address _newOwner) public onlyOwner {
require(_newOwner != owner);
newOwner = _newOwner;
}
function acceptOwnership() public {
require(msg.sender == newOwner);
OwnerUpdate(owner, newOwner);
owner = newOwner;
newOwner = 0x0;
}
}
// ERC20 Interface
contract ERC20 {
function totalSupply() constant returns (uint _totalSupply);
function balanceOf(address _owner) constant returns (uint balance);
function transfer(address _to, uint _value) returns (bool success);
function transferFrom(address _from, address _to, uint _value) returns (bool success);
function approve(address _spender, uint _value) returns (bool success);
function allowance(address _owner, address _spender) constant returns (uint remaining);
event Transfer(address indexed _from, address indexed _to, uint _value);
event Approval(address indexed _owner, address indexed _spender, uint _value);
}
// ERC20Token
contract ERC20Token is ERC20, SafeMath {
mapping(address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
uint256 public totalTokens;
uint256 public contributorTokens;
function transfer(address _to, uint256 _value) returns (bool success) {
if (balances[msg.sender] >= _value && _value > 0) {
balances[msg.sender] = safeSub(balances[msg.sender], _value);
balances[_to] = safeAdd(balances[_to], _value);
Transfer(msg.sender, _to, _value);
return true;
} else {
return false;
}
}
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
var _allowance = allowed[_from][msg.sender];
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
balances[_to] = safeAdd(balances[_to], _value);
balances[_from] = safeSub(balances[_from], _value);
allowed[_from][msg.sender] = safeSub(_allowance, _value);
Transfer(_from, _to, _value);
return true;
} else {
return false;
}
}
function totalSupply() constant returns (uint256) {
return totalTokens;
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) returns (bool success) {
require((_value == 0) || (allowed[msg.sender][_spender] == 0));
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
}
contract Wolk is ERC20Token, Owned {
// TOKEN INFO
string public constant name = "WOLK TOKEN";
string public constant symbol = "WLK";
uint256 public constant decimals = 18;
// RESERVE
uint256 public reserveBalance = 0;
uint8 public percentageETHReserve = 5;
// CONTRACT OWNER
address public wolkInc;
// TOKEN GENERATION CONTROL
bool public allSaleCompleted = false;
modifier isTransferable { require(allSaleCompleted); _; }
// TOKEN GENERATION EVENTLOG
event WolkCreated(address indexed _to, uint256 _tokenCreated);
event WolkDestroyed(address indexed _from, uint256 _tokenDestroyed);
event LogRefund(address indexed _to, uint256 _value);
}
contract WolkTGE is Wolk {
// TOKEN GENERATION EVENT
mapping (address => uint256) contribution;
mapping (address => bool) whitelistContributor;
uint256 public constant tokenGenerationMin = 1 * 10**4 * 10**decimals;
uint256 public constant tokenGenerationMax = 175 * 10**5 * 10**decimals;
uint256 public start_block;
uint256 public end_time;
bool kycRequirement = true;
// @param _startBlock
// @param _endTime
// @param _wolkinc - wolk inc tokens sent here
// @return success
// @dev Wolk Genesis Event [only accessible by Contract Owner]
function wolkGenesis(uint256 _startBlock, uint256 _endTime, address _wolkinc) onlyOwner returns (bool success){
require((totalTokens < 1) && (block.number <= _startBlock));
start_block = _startBlock;
end_time = _endTime;
wolkInc = _wolkinc;
return true;
}
// @param _participants
// @return success
function updateRequireKYC(bool _kycRequirement) onlyOwner returns (bool success) {
kycRequirement = _kycRequirement;
return true;
}
// @param _participants
// @return success
function addParticipant(address[] _participants) onlyOwner returns (bool success) {
for (uint cnt = 0; cnt < _participants.length; cnt++){
whitelistContributor[_participants[cnt]] = true;
}
return true;
}
// @param _participants
// @return success
// @dev Revoke designated contributors [only accessible by current Contract Owner]
function removeParticipant(address[] _participants) onlyOwner returns (bool success){
for (uint cnt = 0; cnt < _participants.length; cnt++){
whitelistContributor[_participants[cnt]] = false;
}
return true;
}
// @param _participant
// @return status
// @dev return status of given address
function participantStatus(address _participant) constant returns (bool status) {
return(whitelistContributor[_participant]);
}
// @param _participant
// @dev use tokenGenerationEvent to handle sale of WOLK
function tokenGenerationEvent(address _participant) payable external {
require( ( whitelistContributor[_participant] || whitelistContributor[msg.sender] || balances[_participant] > 0 || kycRequirement ) && !allSaleCompleted && ( block.timestamp <= end_time ) && msg.value > 0);
uint256 rate = 1000; // Default Rate
rate = safeDiv( 175 * 10**5 * 10**decimals, safeAdd( 875 * 10**1 * 10**decimals, safeDiv( totalTokens, 2 * 10**3)) );
if ( rate > 2000 ) rate = 2000;
if ( rate < 500 ) rate = 500;
require(block.number >= start_block) ;
uint256 tokens = safeMul(msg.value, rate);
uint256 checkedSupply = safeAdd(totalTokens, tokens);
require(checkedSupply <= tokenGenerationMax);
totalTokens = checkedSupply;
contributorTokens = safeAdd(contributorTokens, tokens);
Transfer(address(this), _participant, tokens);
balances[_participant] = safeAdd(balances[_participant], tokens);
contribution[_participant] = safeAdd(contribution[_participant], msg.value);
WolkCreated(_participant, tokens); // logs token creation
}
function finalize() onlyOwner external {
require(!allSaleCompleted);
end_time = block.timestamp;
// 50MM Wolk allocated to Wolk Inc for development
uint256 wolkincTokens = 50 * 10**6 * 10**decimals;
balances[wolkInc] = wolkincTokens;
totalTokens = safeAdd(totalTokens, wolkincTokens);
WolkCreated(wolkInc, wolkincTokens); // logs token creation
allSaleCompleted = true;
reserveBalance = safeDiv(safeMul(contributorTokens, percentageETHReserve), 100000);
var withdrawalBalance = safeSub(this.balance, reserveBalance);
msg.sender.transfer(withdrawalBalance);
}
function refund() external {
require((contribution[msg.sender] > 0) && (!allSaleCompleted) && (block.timestamp > end_time) && (totalTokens < tokenGenerationMin));
uint256 tokenBalance = balances[msg.sender];
uint256 refundBalance = contribution[msg.sender];
balances[msg.sender] = 0;
contribution[msg.sender] = 0;
totalTokens = safeSub(totalTokens, tokenBalance);
WolkDestroyed(msg.sender, tokenBalance);
LogRefund(msg.sender, refundBalance);
msg.sender.transfer(refundBalance);
}
function transferAnyERC20Token(address _tokenAddress, uint256 _amount) onlyOwner returns (bool success) {
return ERC20(_tokenAddress).transfer(owner, _amount);
}
}
// Taken from https://github.com/bancorprotocol/contracts/blob/master/solidity/contracts/BancorFormula.sol
contract IBancorFormula {
function calculatePurchaseReturn(uint256 _supply, uint256 _reserveBalance, uint8 _reserveRatio, uint256 _depositAmount) public constant returns (uint256);
function calculateSaleReturn(uint256 _supply, uint256 _reserveBalance, uint8 _reserveRatio, uint256 _sellAmount) public constant returns (uint256);
}
contract WolkExchange is WolkTGE {
address public exchangeFormula;
bool public isPurchasePossible = false;
bool public isSellPossible = false;
modifier isPurchasable { require(isPurchasePossible && allSaleCompleted); _; }
modifier isSellable { require(isSellPossible && allSaleCompleted); _; }
// @param _newExchangeformula
// @return success
// @dev Set the bancor formula to use -- only Wolk Inc can set this
function setExchangeFormula(address _newExchangeformula) onlyOwner returns (bool success){
require(sellWolkEstimate(10**decimals, _newExchangeformula) > 0);
require(purchaseWolkEstimate(10**decimals, _newExchangeformula) > 0);
isPurchasePossible = false;
isSellPossible = false;
exchangeFormula = _newExchangeformula;
return true;
}
// @param _newReserveRatio
// @return success
// @dev Set the reserve ratio in case of emergency -- only Wolk Inc can set this
function updateReserveRatio(uint8 _newReserveRatio) onlyOwner returns (bool success) {
require(allSaleCompleted && ( _newReserveRatio > 1 ) && ( _newReserveRatio < 20 ) );
percentageETHReserve = _newReserveRatio;
return true;
}
// @param _isRunning
// @return success
// @dev updating isPurchasePossible -- only Wolk Inc can set this
function updatePurchasePossible(bool _isRunning) onlyOwner returns (bool success){
if (_isRunning){
require(sellWolkEstimate(10**decimals, exchangeFormula) > 0);
require(purchaseWolkEstimate(10**decimals, exchangeFormula) > 0);
}
isPurchasePossible = _isRunning;
return true;
}
// @param _isRunning
// @return success
// @dev updating isSellPossible -- only Wolk Inc can set this
function updateSellPossible(bool _isRunning) onlyOwner returns (bool success){
if (_isRunning){
require(sellWolkEstimate(10**decimals, exchangeFormula) > 0);
require(purchaseWolkEstimate(10**decimals, exchangeFormula) > 0);
}
isSellPossible = _isRunning;
return true;
}
function sellWolkEstimate(uint256 _wolkAmountest, address _formula) internal returns(uint256) {
uint256 ethReceivable = IBancorFormula(_formula).calculateSaleReturn(contributorTokens, reserveBalance, percentageETHReserve, _wolkAmountest);
return ethReceivable;
}
function purchaseWolkEstimate(uint256 _ethAmountest, address _formula) internal returns(uint256) {
uint256 wolkReceivable = IBancorFormula(_formula).calculatePurchaseReturn(contributorTokens, reserveBalance, percentageETHReserve, _ethAmountest);
return wolkReceivable;
}
// @param _wolkAmount
// @return ethReceivable
// @dev send Wolk into contract in exchange for eth, at an exchange rate based on the Bancor Protocol derivation and decrease totalSupply accordingly
function sellWolk(uint256 _wolkAmount) isSellable() returns(uint256) {
require((balances[msg.sender] >= _wolkAmount));
uint256 ethReceivable = sellWolkEstimate(_wolkAmount,exchangeFormula);
require(this.balance > ethReceivable);
balances[msg.sender] = safeSub(balances[msg.sender], _wolkAmount);
contributorTokens = safeSub(contributorTokens, _wolkAmount);
totalTokens = safeSub(totalTokens, _wolkAmount);
reserveBalance = safeSub(this.balance, ethReceivable);
WolkDestroyed(msg.sender, _wolkAmount);
Transfer(msg.sender, 0x00000000000000000000, _wolkAmount);
msg.sender.transfer(ethReceivable);
return ethReceivable;
}
// @return wolkReceivable
// @dev send eth into contract in exchange for Wolk tokens, at an exchange rate based on the Bancor Protocol derivation and increase totalSupply accordingly
function purchaseWolk(address _buyer) isPurchasable() payable returns(uint256){
require(msg.value > 0);
uint256 wolkReceivable = purchaseWolkEstimate(msg.value, exchangeFormula);
require(wolkReceivable > 0);
contributorTokens = safeAdd(contributorTokens, wolkReceivable);
totalTokens = safeAdd(totalTokens, wolkReceivable);
balances[_buyer] = safeAdd(balances[_buyer], wolkReceivable);
reserveBalance = safeAdd(reserveBalance, msg.value);
WolkCreated(_buyer, wolkReceivable);
Transfer(address(this),_buyer,wolkReceivable);
return wolkReceivable;
}
// @dev fallback function for purchase
// @note Automatically fallback to tokenGenerationEvent before sale is completed. After the token generation event, fallback to purchaseWolk. Liquidity exchange will be enabled through updateExchangeStatus
function () payable {
require(msg.value > 0);
if(!allSaleCompleted){
this.tokenGenerationEvent.value(msg.value)(msg.sender);
} else if ( block.timestamp >= end_time ){
this.purchaseWolk.value(msg.value)(msg.sender);
} else {
revert();
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_wolkAmount","type":"uint256"}],"name":"sellWolk","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"end_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newExchangeformula","type":"address"}],"name":"setExchangeFormula","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"exchangeFormula","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_buyer","type":"address"}],"name":"purchaseWolk","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"isSellPossible","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kycRequirement","type":"bool"}],"name":"updateRequireKYC","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenGenerationMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPurchasePossible","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentageETHReserve","outputs":[{"name":"","type":"uint8"}],"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":"_startBlock","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_wolkinc","type":"address"}],"name":"wolkGenesis","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contributorTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_participant","type":"address"}],"name":"participantStatus","outputs":[{"name":"status","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserveBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participants","type":"address[]"}],"name":"addParticipant","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_isRunning","type":"bool"}],"name":"updateSellPossible","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenGenerationMax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"start_block","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferAnyERC20Token","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":"allSaleCompleted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wolkInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isRunning","type":"bool"}],"name":"updatePurchasePossible","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newReserveRatio","type":"uint8"}],"name":"updateReserveRatio","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participants","type":"address[]"}],"name":"removeParticipant","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"tokenGenerationEvent","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenCreated","type":"uint256"}],"name":"WolkCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_tokenDestroyed","type":"uint256"}],"name":"WolkDestroyed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"LogRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
606060405260006006556007805460a860020a60ff021960ff1991821660051716909155600c805460a860020a61ffff0219921660011791909116905560048054600160a060020a033316600160a060020a0319909116179055611c0f806100686000396000f300606060405236156101dc5763ffffffff60e060020a600035041662310e1681146102ed57806306fdde0314610315578063095ea7b31461039f57806316243356146103d557806318160ddd146103e857806323b872dd146103fb5780632659d8ef146104235780632f7a407b14610442578063313ce567146104715780633d8c9b8c14610484578063442d0927146104985780634bb278f3146104ab578063590e1ae3146104be57806362ac6115146104d15780636712e0be146104e957806370a08231146104fc57806379ba50971461051b5780637e1c0c091461052e578063835c638614610541578063847dc0a7146105545780638da5cb5b1461057d578063917d2be214610590578063936b603d146105b557806395d89b41146105c85780639c912a62146105db578063a10954fe146105fa578063a166b4b11461060d578063a9059cbb1461065c578063aad935af1461067e578063b57e6ea114610696578063b87fb3db146106a9578063d4ee1d90146106bc578063dc39d06d146106cf578063dd62ed3e146106f1578063de17910814610716578063e1d3097914610729578063e2542f031461073c578063e469185a14610754578063e814c9411461076d578063f2fde38b146107bc578063fa6b129d146107db575b600034116101e957600080fd5b60075460a860020a900460ff1615156102645730600160a060020a031663fa6b129d343360405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016000604051808303818588803b151561024a57600080fd5b6125ee5a03f1151561025b57600080fd5b505050506102eb565b600b5442106102e65730600160a060020a0316633d8c9b8c343360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156102c457600080fd5b6125ee5a03f115156102d557600080fd5b5050505060405180519050506102eb565b600080fd5b005b34156102f857600080fd5b6103036004356107ef565b60405190815260200160405180910390f35b341561032057600080fd5b6103286109a3565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561036457808201518382015260200161034c565b50505050905090810190601f1680156103915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103aa57600080fd5b6103c1600160a060020a03600435166024356109da565b604051901515815260200160405180910390f35b34156103e057600080fd5b610303610a80565b34156103f357600080fd5b610303610a86565b341561040657600080fd5b6103c1600160a060020a0360043581169060243516604435610a8c565b341561042e57600080fd5b6103c1600160a060020a0360043516610be3565b341561044d57600080fd5b610455610c73565b604051600160a060020a03909116815260200160405180910390f35b341561047c57600080fd5b610303610c87565b610303600160a060020a0360043516610c8c565b34156104a357600080fd5b6103c1610dd9565b34156104b657600080fd5b6102eb610dfc565b34156104c957600080fd5b6102eb610f4f565b34156104dc57600080fd5b6103c160043515156110a0565b34156104f457600080fd5b6103036110d2565b341561050757600080fd5b610303600160a060020a03600435166110e0565b341561052657600080fd5b6102eb6110fb565b341561053957600080fd5b6103036111a2565b341561054c57600080fd5b6103c16111a8565b341561055f57600080fd5b6105676111b8565b60405160ff909116815260200160405180910390f35b341561058857600080fd5b6104556111c1565b341561059b57600080fd5b6103c1600435602435600160a060020a03604435166111d0565b34156105c057600080fd5b61030361124b565b34156105d357600080fd5b610328611251565b34156105e657600080fd5b6103c1600160a060020a0360043516611288565b341561060557600080fd5b6103036112a6565b341561061857600080fd5b6103c160046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506112ac95505050505050565b341561066757600080fd5b6103c1600160a060020a036004351660243561132b565b341561068957600080fd5b6103c16004351515611418565b34156106a157600080fd5b6103036114e2565b34156106b457600080fd5b6103036114f1565b34156106c757600080fd5b6104556114f7565b34156106da57600080fd5b6103c1600160a060020a0360043516602435611506565b34156106fc57600080fd5b610303600160a060020a03600435811690602435166115a5565b341561072157600080fd5b6103c16115d0565b341561073457600080fd5b6104556115e0565b341561074757600080fd5b6103c160043515156115f4565b341561075f57600080fd5b6103c160ff600435166116aa565b341561077857600080fd5b6103c1600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061171495505050505050565b34156107c757600080fd5b6102eb600160a060020a036004351661178a565b6102eb600160a060020a03600435166117ec565b600c546000908190760100000000000000000000000000000000000000000000900460ff168015610829575060075460a860020a900460ff165b151561083457600080fd5b600160a060020a0333166000908152602081905260409020548390101561085a57600080fd5b600c546108769084906101009004600160a060020a0316611a26565b9050600160a060020a0330163181901161088f57600080fd5b600160a060020a0333166000908152602081905260409020546108b29084611ac0565b600160a060020a0333166000908152602081905260409020556003546108d89084611ac0565b6003556002546108e89084611ac0565b6002556108ff600160a060020a0330163182611ac0565b600655600160a060020a0333167ff505eb6e610340eed3eea0048f8ec258cda0927f73be2d293288fde9a546f1ab8460405190815260200160405180910390a2600033600160a060020a0316600080516020611bc48339815191528560405190815260200160405180910390a3600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561099d57600080fd5b92915050565b60408051908101604052600a81527f574f4c4b20544f4b454e00000000000000000000000000000000000000000000602082015281565b6000811580610a0c5750600160a060020a03338116600090815260016020908152604080832093871683529290522054155b1515610a1757600080fd5b600160a060020a03338116600081815260016020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600b5481565b60025490565b600160a060020a0380841660008181526001602090815260408083203390951683529381528382205492825281905291822054839010801590610af65750600160a060020a0380861660009081526001602090815260408083203390941683529290522054839010155b8015610b025750600083115b15610bd657600160a060020a038416600090815260208190526040902054610b2a9084611ad2565b600160a060020a038086166000908152602081905260408082209390935590871681522054610b599084611ac0565b600160a060020a038616600090815260208190526040902055610b7c8184611ac0565b600160a060020a0380871660008181526001602090815260408083203386168452909152908190209390935590861691600080516020611bc48339815191529086905190815260200160405180910390a360019150610bdb565b600091505b509392505050565b60045460009033600160a060020a03908116911614610bfe57fe5b6000610c12670de0b6b3a764000084611a26565b11610c1c57600080fd5b6000610c30670de0b6b3a764000084611af6565b11610c3a57600080fd5b50600c8054600160a060020a0383166101000276ffffffffffffffffffffffffffffffffffffffffffff00199091161790556001919050565b600c546101009004600160a060020a031681565b601281565b600c54600090819060a860020a900460ff168015610cb3575060075460a860020a900460ff165b1515610cbe57600080fd5b60003411610ccb57600080fd5b600c54610ce79034906101009004600160a060020a0316611af6565b905060008111610cf657600080fd5b610d0260035482611ad2565b600355600254610d129082611ad2565b600255600160a060020a038316600090815260208190526040902054610d389082611ad2565b600160a060020a038416600090815260208190526040902055600654610d5e9034611ad2565b600655600160a060020a0383167f7ff6ea1c893a974b2f363e8f8e474a1b52958080d1fffe0d085c286de30035d28260405190815260200160405180910390a282600160a060020a031630600160a060020a0316600080516020611bc48339815191528360405190815260200160405180910390a392915050565b600c54760100000000000000000000000000000000000000000000900460ff1681565b600454600090819033600160a060020a03908116911614610e1957fe5b60075460a860020a900460ff1615610e3057600080fd5b42600b556007546101009004600160a060020a031660009081526020819052604090206a295be96e6406697200000090819055600254909250610e739083611ad2565b6002556007546101009004600160a060020a03167f7ff6ea1c893a974b2f363e8f8e474a1b52958080d1fffe0d085c286de30035d28360405190815260200160405180910390a26007805475ff000000000000000000000000000000000000000000191660a860020a1790819055600354610efe91610ef5919060ff16611b6e565b620186a0611b8f565b6006819055610f1890600160a060020a0330163190611ac0565b9050600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610f4b57600080fd5b5050565b600160a060020a03331660009081526008602052604081205481908190118015610f83575060075460a860020a900460ff16155b8015610f905750600b5442115b8015610fa8575060025469021e19e0c9bab240000090105b1515610fb357600080fd5b505033600160a060020a03166000908152602081815260408083208054600890935290832080549184905592909255600254909190610ff29083611ac0565b600255600160a060020a0333167ff505eb6e610340eed3eea0048f8ec258cda0927f73be2d293288fde9a546f1ab8360405190815260200160405180910390a233600160a060020a03167fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a78260405190815260200160405180910390a2600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610f4b57600080fd5b60045460009033600160a060020a039081169116146110bb57fe5b50600c805460ff1916911515919091179055600190565b69021e19e0c9bab240000081565b600160a060020a031660009081526020819052604090205490565b60055433600160a060020a0390811691161461111657600080fd5b6004546005547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a1600580546004805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60025481565b600c5460a860020a900460ff1681565b60075460ff1681565b600454600160a060020a031681565b60045460009033600160a060020a039081169116146111eb57fe5b60016002541080156111fd5750834311155b151561120857600080fd5b50600a839055600b82905560078054600160a060020a0383166101000274ffffffffffffffffffffffffffffffffffffffff001990911617905560019392505050565b60035481565b60408051908101604052600381527f574c4b0000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a031660009081526009602052604090205460ff1690565b60065481565b600454600090819033600160a060020a039081169116146112c957fe5b5060005b8251811015611322576001600960008584815181106112e857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556001016112cd565b50600192915050565b600160a060020a0333166000908152602081905260408120548290108015906113545750600082115b1561141057600160a060020a03331660009081526020819052604090205461137c9083611ac0565b600160a060020a0333811660009081526020819052604080822093909355908516815220546113ab9083611ad2565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a0316600080516020611bc48339815191528460405190815260200160405180910390a350600161099d565b50600061099d565b60045460009033600160a060020a0390811691161461143357fe5b811561149b57600c5460009061146090670de0b6b3a7640000906101009004600160a060020a0316611a26565b1161146a57600080fd5b600c5460009061149190670de0b6b3a7640000906101009004600160a060020a0316611af6565b1161149b57600080fd5b50600c80548215157601000000000000000000000000000000000000000000000276ff00000000000000000000000000000000000000000000199091161790556001919050565b6a0e79c4e6a3023e8180000081565b600a5481565b600554600160a060020a031681565b60045460009033600160a060020a0390811691161461152157fe5b600454600160a060020a038085169163a9059cbb91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561158457600080fd5b6102c65a03f1151561159557600080fd5b5050506040518051949350505050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60075460a860020a900460ff1681565b6007546101009004600160a060020a031681565b60045460009033600160a060020a0390811691161461160f57fe5b811561167757600c5460009061163c90670de0b6b3a7640000906101009004600160a060020a0316611a26565b1161164657600080fd5b600c5460009061166d90670de0b6b3a7640000906101009004600160a060020a0316611af6565b1161167757600080fd5b50600c805482151560a860020a0275ff000000000000000000000000000000000000000000199091161790556001919050565b60045460009033600160a060020a039081169116146116c557fe5b60075460a860020a900460ff1680156116e1575060018260ff16115b80156116f0575060148260ff16105b15156116fb57600080fd5b506007805460ff831660ff199091161790556001919050565b600454600090819033600160a060020a0390811691161461173157fe5b5060005b82518110156113225760006009600085848151811061175057fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600101611735565b60045433600160a060020a039081169116146117a257fe5b600454600160a060020a03828116911614156117bd57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381166000908152600960205260408120548190819060ff168061182f5750600160a060020a03331660009081526009602052604090205460ff165b806118505750600160a060020a038416600090815260208190526040812054115b8061185d5750600c5460ff165b8015611873575060075460a860020a900460ff16155b80156118815750600b544211155b801561188d5750600034115b151561189857600080fd5b6002546103e893506118d7906a0e79c4e6a3023e81800000906118d2906901da56a4b0835bf80000906118cd906107d0611b8f565b611ad2565b611b8f565b92506107d08311156118e9576107d092505b6101f48310156118f9576101f492505b600a5443101561190857600080fd5b6119123484611b6e565b915061192060025483611ad2565b90506a0e79c4e6a3023e8180000081111561193a57600080fd5b600281905560035461194c9083611ad2565b600355600160a060020a03808516903016600080516020611bc48339815191528460405190815260200160405180910390a3600160a060020a0384166000908152602081905260409020546119a19083611ad2565b600160a060020a038516600090815260208181526040808320939093556008905220546119ce9034611ad2565b600160a060020a0385166000818152600860205260409081902092909255907f7ff6ea1c893a974b2f363e8f8e474a1b52958080d1fffe0d085c286de30035d29084905190815260200160405180910390a250505050565b6003546006546007546000928392600160a060020a0386169263f7a4c45c92919060ff1688866040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260ff1660448301526064820152608401602060405180830381600087803b1515611a9e57600080fd5b6102c65a03f11515611aaf57600080fd5b505050604051805195945050505050565b600082821115611acc57fe5b50900390565b6000828201838110801590611ae75750828110155b1515611aef57fe5b9392505050565b6003546006546007546000928392600160a060020a0386169263949dfa6392919060ff1688866040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260ff1660448301526064820152608401602060405180830381600087803b1515611a9e57600080fd5b6000828202831580611ae75750828482811515611b8757fe5b0414611aef57fe5b600080808311611b9b57fe5b8284811515611ba657fe5b0490508284811515611bb457fe5b068184020184141515611aef57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209aaada50c1671511e7d4a6f65fcfba9395b602433a033c0d707bfb0dbd61a6500029
Deployed Bytecode
0x606060405236156101dc5763ffffffff60e060020a600035041662310e1681146102ed57806306fdde0314610315578063095ea7b31461039f57806316243356146103d557806318160ddd146103e857806323b872dd146103fb5780632659d8ef146104235780632f7a407b14610442578063313ce567146104715780633d8c9b8c14610484578063442d0927146104985780634bb278f3146104ab578063590e1ae3146104be57806362ac6115146104d15780636712e0be146104e957806370a08231146104fc57806379ba50971461051b5780637e1c0c091461052e578063835c638614610541578063847dc0a7146105545780638da5cb5b1461057d578063917d2be214610590578063936b603d146105b557806395d89b41146105c85780639c912a62146105db578063a10954fe146105fa578063a166b4b11461060d578063a9059cbb1461065c578063aad935af1461067e578063b57e6ea114610696578063b87fb3db146106a9578063d4ee1d90146106bc578063dc39d06d146106cf578063dd62ed3e146106f1578063de17910814610716578063e1d3097914610729578063e2542f031461073c578063e469185a14610754578063e814c9411461076d578063f2fde38b146107bc578063fa6b129d146107db575b600034116101e957600080fd5b60075460a860020a900460ff1615156102645730600160a060020a031663fa6b129d343360405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016000604051808303818588803b151561024a57600080fd5b6125ee5a03f1151561025b57600080fd5b505050506102eb565b600b5442106102e65730600160a060020a0316633d8c9b8c343360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156102c457600080fd5b6125ee5a03f115156102d557600080fd5b5050505060405180519050506102eb565b600080fd5b005b34156102f857600080fd5b6103036004356107ef565b60405190815260200160405180910390f35b341561032057600080fd5b6103286109a3565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561036457808201518382015260200161034c565b50505050905090810190601f1680156103915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103aa57600080fd5b6103c1600160a060020a03600435166024356109da565b604051901515815260200160405180910390f35b34156103e057600080fd5b610303610a80565b34156103f357600080fd5b610303610a86565b341561040657600080fd5b6103c1600160a060020a0360043581169060243516604435610a8c565b341561042e57600080fd5b6103c1600160a060020a0360043516610be3565b341561044d57600080fd5b610455610c73565b604051600160a060020a03909116815260200160405180910390f35b341561047c57600080fd5b610303610c87565b610303600160a060020a0360043516610c8c565b34156104a357600080fd5b6103c1610dd9565b34156104b657600080fd5b6102eb610dfc565b34156104c957600080fd5b6102eb610f4f565b34156104dc57600080fd5b6103c160043515156110a0565b34156104f457600080fd5b6103036110d2565b341561050757600080fd5b610303600160a060020a03600435166110e0565b341561052657600080fd5b6102eb6110fb565b341561053957600080fd5b6103036111a2565b341561054c57600080fd5b6103c16111a8565b341561055f57600080fd5b6105676111b8565b60405160ff909116815260200160405180910390f35b341561058857600080fd5b6104556111c1565b341561059b57600080fd5b6103c1600435602435600160a060020a03604435166111d0565b34156105c057600080fd5b61030361124b565b34156105d357600080fd5b610328611251565b34156105e657600080fd5b6103c1600160a060020a0360043516611288565b341561060557600080fd5b6103036112a6565b341561061857600080fd5b6103c160046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506112ac95505050505050565b341561066757600080fd5b6103c1600160a060020a036004351660243561132b565b341561068957600080fd5b6103c16004351515611418565b34156106a157600080fd5b6103036114e2565b34156106b457600080fd5b6103036114f1565b34156106c757600080fd5b6104556114f7565b34156106da57600080fd5b6103c1600160a060020a0360043516602435611506565b34156106fc57600080fd5b610303600160a060020a03600435811690602435166115a5565b341561072157600080fd5b6103c16115d0565b341561073457600080fd5b6104556115e0565b341561074757600080fd5b6103c160043515156115f4565b341561075f57600080fd5b6103c160ff600435166116aa565b341561077857600080fd5b6103c1600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061171495505050505050565b34156107c757600080fd5b6102eb600160a060020a036004351661178a565b6102eb600160a060020a03600435166117ec565b600c546000908190760100000000000000000000000000000000000000000000900460ff168015610829575060075460a860020a900460ff165b151561083457600080fd5b600160a060020a0333166000908152602081905260409020548390101561085a57600080fd5b600c546108769084906101009004600160a060020a0316611a26565b9050600160a060020a0330163181901161088f57600080fd5b600160a060020a0333166000908152602081905260409020546108b29084611ac0565b600160a060020a0333166000908152602081905260409020556003546108d89084611ac0565b6003556002546108e89084611ac0565b6002556108ff600160a060020a0330163182611ac0565b600655600160a060020a0333167ff505eb6e610340eed3eea0048f8ec258cda0927f73be2d293288fde9a546f1ab8460405190815260200160405180910390a2600033600160a060020a0316600080516020611bc48339815191528560405190815260200160405180910390a3600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561099d57600080fd5b92915050565b60408051908101604052600a81527f574f4c4b20544f4b454e00000000000000000000000000000000000000000000602082015281565b6000811580610a0c5750600160a060020a03338116600090815260016020908152604080832093871683529290522054155b1515610a1757600080fd5b600160a060020a03338116600081815260016020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600b5481565b60025490565b600160a060020a0380841660008181526001602090815260408083203390951683529381528382205492825281905291822054839010801590610af65750600160a060020a0380861660009081526001602090815260408083203390941683529290522054839010155b8015610b025750600083115b15610bd657600160a060020a038416600090815260208190526040902054610b2a9084611ad2565b600160a060020a038086166000908152602081905260408082209390935590871681522054610b599084611ac0565b600160a060020a038616600090815260208190526040902055610b7c8184611ac0565b600160a060020a0380871660008181526001602090815260408083203386168452909152908190209390935590861691600080516020611bc48339815191529086905190815260200160405180910390a360019150610bdb565b600091505b509392505050565b60045460009033600160a060020a03908116911614610bfe57fe5b6000610c12670de0b6b3a764000084611a26565b11610c1c57600080fd5b6000610c30670de0b6b3a764000084611af6565b11610c3a57600080fd5b50600c8054600160a060020a0383166101000276ffffffffffffffffffffffffffffffffffffffffffff00199091161790556001919050565b600c546101009004600160a060020a031681565b601281565b600c54600090819060a860020a900460ff168015610cb3575060075460a860020a900460ff165b1515610cbe57600080fd5b60003411610ccb57600080fd5b600c54610ce79034906101009004600160a060020a0316611af6565b905060008111610cf657600080fd5b610d0260035482611ad2565b600355600254610d129082611ad2565b600255600160a060020a038316600090815260208190526040902054610d389082611ad2565b600160a060020a038416600090815260208190526040902055600654610d5e9034611ad2565b600655600160a060020a0383167f7ff6ea1c893a974b2f363e8f8e474a1b52958080d1fffe0d085c286de30035d28260405190815260200160405180910390a282600160a060020a031630600160a060020a0316600080516020611bc48339815191528360405190815260200160405180910390a392915050565b600c54760100000000000000000000000000000000000000000000900460ff1681565b600454600090819033600160a060020a03908116911614610e1957fe5b60075460a860020a900460ff1615610e3057600080fd5b42600b556007546101009004600160a060020a031660009081526020819052604090206a295be96e6406697200000090819055600254909250610e739083611ad2565b6002556007546101009004600160a060020a03167f7ff6ea1c893a974b2f363e8f8e474a1b52958080d1fffe0d085c286de30035d28360405190815260200160405180910390a26007805475ff000000000000000000000000000000000000000000191660a860020a1790819055600354610efe91610ef5919060ff16611b6e565b620186a0611b8f565b6006819055610f1890600160a060020a0330163190611ac0565b9050600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610f4b57600080fd5b5050565b600160a060020a03331660009081526008602052604081205481908190118015610f83575060075460a860020a900460ff16155b8015610f905750600b5442115b8015610fa8575060025469021e19e0c9bab240000090105b1515610fb357600080fd5b505033600160a060020a03166000908152602081815260408083208054600890935290832080549184905592909255600254909190610ff29083611ac0565b600255600160a060020a0333167ff505eb6e610340eed3eea0048f8ec258cda0927f73be2d293288fde9a546f1ab8360405190815260200160405180910390a233600160a060020a03167fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a78260405190815260200160405180910390a2600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610f4b57600080fd5b60045460009033600160a060020a039081169116146110bb57fe5b50600c805460ff1916911515919091179055600190565b69021e19e0c9bab240000081565b600160a060020a031660009081526020819052604090205490565b60055433600160a060020a0390811691161461111657600080fd5b6004546005547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a1600580546004805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60025481565b600c5460a860020a900460ff1681565b60075460ff1681565b600454600160a060020a031681565b60045460009033600160a060020a039081169116146111eb57fe5b60016002541080156111fd5750834311155b151561120857600080fd5b50600a839055600b82905560078054600160a060020a0383166101000274ffffffffffffffffffffffffffffffffffffffff001990911617905560019392505050565b60035481565b60408051908101604052600381527f574c4b0000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a031660009081526009602052604090205460ff1690565b60065481565b600454600090819033600160a060020a039081169116146112c957fe5b5060005b8251811015611322576001600960008584815181106112e857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556001016112cd565b50600192915050565b600160a060020a0333166000908152602081905260408120548290108015906113545750600082115b1561141057600160a060020a03331660009081526020819052604090205461137c9083611ac0565b600160a060020a0333811660009081526020819052604080822093909355908516815220546113ab9083611ad2565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a0316600080516020611bc48339815191528460405190815260200160405180910390a350600161099d565b50600061099d565b60045460009033600160a060020a0390811691161461143357fe5b811561149b57600c5460009061146090670de0b6b3a7640000906101009004600160a060020a0316611a26565b1161146a57600080fd5b600c5460009061149190670de0b6b3a7640000906101009004600160a060020a0316611af6565b1161149b57600080fd5b50600c80548215157601000000000000000000000000000000000000000000000276ff00000000000000000000000000000000000000000000199091161790556001919050565b6a0e79c4e6a3023e8180000081565b600a5481565b600554600160a060020a031681565b60045460009033600160a060020a0390811691161461152157fe5b600454600160a060020a038085169163a9059cbb91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561158457600080fd5b6102c65a03f1151561159557600080fd5b5050506040518051949350505050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60075460a860020a900460ff1681565b6007546101009004600160a060020a031681565b60045460009033600160a060020a0390811691161461160f57fe5b811561167757600c5460009061163c90670de0b6b3a7640000906101009004600160a060020a0316611a26565b1161164657600080fd5b600c5460009061166d90670de0b6b3a7640000906101009004600160a060020a0316611af6565b1161167757600080fd5b50600c805482151560a860020a0275ff000000000000000000000000000000000000000000199091161790556001919050565b60045460009033600160a060020a039081169116146116c557fe5b60075460a860020a900460ff1680156116e1575060018260ff16115b80156116f0575060148260ff16105b15156116fb57600080fd5b506007805460ff831660ff199091161790556001919050565b600454600090819033600160a060020a0390811691161461173157fe5b5060005b82518110156113225760006009600085848151811061175057fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600101611735565b60045433600160a060020a039081169116146117a257fe5b600454600160a060020a03828116911614156117bd57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381166000908152600960205260408120548190819060ff168061182f5750600160a060020a03331660009081526009602052604090205460ff165b806118505750600160a060020a038416600090815260208190526040812054115b8061185d5750600c5460ff165b8015611873575060075460a860020a900460ff16155b80156118815750600b544211155b801561188d5750600034115b151561189857600080fd5b6002546103e893506118d7906a0e79c4e6a3023e81800000906118d2906901da56a4b0835bf80000906118cd906107d0611b8f565b611ad2565b611b8f565b92506107d08311156118e9576107d092505b6101f48310156118f9576101f492505b600a5443101561190857600080fd5b6119123484611b6e565b915061192060025483611ad2565b90506a0e79c4e6a3023e8180000081111561193a57600080fd5b600281905560035461194c9083611ad2565b600355600160a060020a03808516903016600080516020611bc48339815191528460405190815260200160405180910390a3600160a060020a0384166000908152602081905260409020546119a19083611ad2565b600160a060020a038516600090815260208181526040808320939093556008905220546119ce9034611ad2565b600160a060020a0385166000818152600860205260409081902092909255907f7ff6ea1c893a974b2f363e8f8e474a1b52958080d1fffe0d085c286de30035d29084905190815260200160405180910390a250505050565b6003546006546007546000928392600160a060020a0386169263f7a4c45c92919060ff1688866040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260ff1660448301526064820152608401602060405180830381600087803b1515611a9e57600080fd5b6102c65a03f11515611aaf57600080fd5b505050604051805195945050505050565b600082821115611acc57fe5b50900390565b6000828201838110801590611ae75750828110155b1515611aef57fe5b9392505050565b6003546006546007546000928392600160a060020a0386169263949dfa6392919060ff1688866040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260ff1660448301526064820152608401602060405180830381600087803b1515611a9e57600080fd5b6000828202831580611ae75750828482811515611b8757fe5b0414611aef57fe5b600080808311611b9b57fe5b8284811515611ba657fe5b0490508284811515611bb457fe5b068184020184141515611aef57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209aaada50c1671511e7d4a6f65fcfba9395b602433a033c0d707bfb0dbd61a6500029
Swarm Source
bzzr://9aaada50c1671511e7d4a6f65fcfba9395b602433a033c0d707bfb0dbd61a650
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)