Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
300,000 SMS
Holders
40
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 3 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
SMSCoin
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-10-27
*/
pragma solidity ^0.4.8;
contract ERC20 {
// Standard interface
function totalSupply() public constant returns(uint256 _totalSupply);
function balanceOf(address who) public constant returns(uint256 balance);
function transfer(address to, uint value) public returns(bool success);
function transferFrom(address from, address to, uint value) public returns(bool success);
function approve(address spender, uint value) public returns(bool success);
function allowance(address owner, address spender) public constant returns(uint remaining);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract SMSCoin is ERC20 {
string public constant name = "Speed Mining Service";
string public constant symbol = "SMS";
uint256 public constant decimals = 3;
uint256 public constant UNIT = 10 ** decimals;
uint public totalSupply = 0; // (initial with 0), targeted 2.9 Million SMS
uint tokenSaleLot1 = 150000 * UNIT;
uint reservedBonusLot1 = 45000 * UNIT; // 45,000 tokens are the maximum possible bonus from 30% of 150,000 tokens in the bonus phase
uint tokenSaleLot2 = 50000 * UNIT;
uint tokenSaleLot3 = 50000 * UNIT;
struct BonusStruct {
uint8 ratio1;
uint8 ratio2;
uint8 ratio3;
uint8 ratio4;
}
BonusStruct bonusRatio;
uint public saleCounter = 0;
uint public limitedSale = 0;
uint public sentBonus = 0;
uint public soldToken = 0;
mapping(address => uint) balances;
mapping(address => mapping(address => uint)) allowed;
address[] addresses;
mapping(address => address) private userStructs;
address owner;
address mint = address(this); // Contract address as a minter
address genesis = 0x0;
//uint256 public tokenPrice = 0.001 ether; // Test
uint256 public tokenPrice = 0.8 ether;
event Log(uint e);
event TOKEN(string e);
bool icoOnPaused = false;
uint256 startDate;
uint256 endDate;
uint currentPhase = 0;
bool needToBurn = false;
modifier onlyOwner() {
if (msg.sender != owner) {
revert();
}
_;
}
function SMSCoin() public {
owner = msg.sender;
}
/**
* Divide with safety check
*/
function safeDiv(uint a, uint b) pure internal returns(uint) {
//overflow check; b must not be 0
assert(b > 0);
uint c = a / b;
assert(a == b * c + a % b);
return c;
}
/**
* Multiplication with safety check
*/
function safeMul(uint a, uint b) pure internal returns(uint) {
uint c = a * b;
//check result should not be other wise until a=0
assert(a == 0 || c / a == b);
return c;
}
/**
* Add with safety check
*/
function safeAdd(uint a, uint b) pure internal returns (uint) {
assert (a + b >= a);
return a + b;
}
function setBonus(uint8 ratio1, uint8 ratio2, uint8 ratio3, uint8 ratio4) private {
bonusRatio.ratio1 = ratio1;
bonusRatio.ratio2 = ratio2;
bonusRatio.ratio3 = ratio3;
bonusRatio.ratio4 = ratio4;
}
function calcBonus(uint256 sendingSMSToken) view private returns(uint256) {
uint256 sendingSMSBonus;
// Calculating bonus
if (sendingSMSToken < (10 * UNIT)) { // 0-9
sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio1) / 100;
} else if (sendingSMSToken < (50 * UNIT)) { // 10-49
sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio2) / 100;
} else if (sendingSMSToken < (100 * UNIT)) { // 50-99
sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio3) / 100;
} else { // 100+
sendingSMSBonus = (sendingSMSToken * bonusRatio.ratio4) / 100;
}
return sendingSMSBonus;
}
// Selling SMS token
function () public payable {
uint256 receivedETH = 0;
uint256 sendingSMSToken = 0;
uint256 sendingSMSBonus = 0;
Log(msg.value);
// Only for selling to investors
if (!icoOnPaused && msg.sender != owner) {
if (now <= endDate) {
// All the phases
Log(currentPhase);
// Calculating SMS
receivedETH = (msg.value * UNIT);
sendingSMSToken = safeDiv(receivedETH, tokenPrice);
Log(sendingSMSToken);
// Calculating Bonus
if (currentPhase == 1 || currentPhase == 2 || currentPhase == 3) {
// Phase 1-3 with Bonus 1
sendingSMSBonus = calcBonus(sendingSMSToken);
Log(sendingSMSBonus);
}
// Giving SMS + Bonus (if any)
Log(sendingSMSToken);
if (!transferTokens(msg.sender, sendingSMSToken, sendingSMSBonus))
revert();
} else {
revert();
}
} else {
revert();
}
}
// ======== Bonus Period 1 ========
// --- Bonus ---
// 0-9 SMS -> 5%
// 10-49 SMS -> 10%
// 50-99 SMS -> 20%
// 100~ SMS -> 30%
// --- Time --- (2 days 9 hours 59 minutes 59 seconds )
// From 27 Oct 2017, 14:00 PM JST (27 Oct 2017, 5:00 AM GMT)
// To 29 Oct 2017, 23:59 PM JST (29 Oct 2017, 14:59 PM GMT)
function start1BonusPeriod1() external onlyOwner {
// Supply setting (only once)
if (currentPhase == 0) {
balances[owner] = tokenSaleLot1; // Start balance for SpeedMining Co., Ltd.
balances[address(this)] = tokenSaleLot1; // Start balance for SMSCoin (for investors)
totalSupply = balances[owner] + balances[address(this)];
saleCounter = 0;
limitedSale = tokenSaleLot1;
// Add owner address into the list as the first wallet who own token(s)
addAddress(owner);
// Send owner account the initial tokens (rather than only a contract address)
Transfer(address(this), owner, balances[owner]);
// Set burning is needed
needToBurn = true;
}
// ICO stage init
icoOnPaused = false;
currentPhase = 1;
startDate = block.timestamp;
endDate = startDate + 2 days + 9 hours + 59 minutes + 59 seconds;
// Bonus setting
setBonus(5, 10, 20, 30);
}
// ======== Bonus Period 2 ========
// --- Bonus ---
// 0-9 SMS -> 3%
// 10-49 SMS -> 5%
// 50-99 SMS -> 10%
// 100~ SMS -> 15%
// --- Time --- (11 days 9 hours 59 minutes 59 seconds)
// From 30 Oct 2017, 14:00 PM JST (30 Oct 2017, 5:00 AM GMT)
// To 10 Nov 2017, 23:59 PM JST (10 Nov 2017, 14:59 PM GMT)
function start2BonusPeriod2() external onlyOwner {
// ICO stage init
icoOnPaused = false;
currentPhase = 2;
startDate = block.timestamp;
endDate = startDate + 11 days + 9 hours + 59 minutes + 59 seconds;
// Bonus setting
setBonus(3, 5, 10, 15);
}
// ======== Bonus Period 3 ========
// --- Bonus ---
// 0-9 SMS -> 1%
// 10-49 SMS -> 3%
// 50-99 SMS -> 5%
// 100~ SMS -> 8%
// --- Time --- (51 days)
// From 11 Nov 2017, 00:00 AM JST (10 Nov 2017, 15:00 PM GMT)
// To 31 Dec 2017, 23:59 PM JST (31 Dec 2017, 14:59 PM GMT)
function start3BonusPeriod3() external onlyOwner {
// ICO stage init
icoOnPaused = false;
currentPhase = 3;
startDate = block.timestamp;
endDate = startDate + 51 days;
// Bonus setting
setBonus(1, 3, 5, 8);
}
// ======== Normal Period 1 (2018) ========
// --- Time --- (31 days)
// From 1 Jan 2018, 00:00 AM JST (31 Dec 2017, 15:00 PM GMT)
// To 31 Jan 2018, 23:59 PM JST (31 Jan 2018, 14:59 PM GMT)
function start4NormalPeriod() external onlyOwner {
// ICO stage init
icoOnPaused = false;
currentPhase = 4;
startDate = block.timestamp;
endDate = startDate + 31 days;
// Reset bonus
setBonus(0, 0, 0, 0);
}
// ======== Normal Period 2 (2020) ========
// --- Bonus ---
// 3X
// --- Time --- (7 days)
// From 2 Jan 2020, 00:00 AM JST (1 Jan 2020, 15:00 PM GMT)
// To 8 Jan 2020, 23:59 PM JST (8 Oct 2020, 14:59 PM GMT)
function start5Phase2020() external onlyOwner {
// Supply setting (only after phase 4)
if (currentPhase == 4) {
// Burn SMS if it was not done yet
if (needToBurn)
burnSMSProcess();
balances[address(this)] = tokenSaleLot2;
totalSupply = 3 * totalSupply;
totalSupply += balances[address(this)];
saleCounter = 0;
limitedSale = tokenSaleLot2;
// Bonus
x3Token(); // 3X distributions to token holders
// Mint new tokens for 2020
Transfer(mint, address(this), balances[address(this)]);
// Set burning is needed
needToBurn = true;
}
// ICO stage init
icoOnPaused = false;
currentPhase = 5;
startDate = block.timestamp;
endDate = startDate + 7 days;
}
// ======== Normal Period 3 (2025) ========
// --- Bonus ---
// 3X
// --- Time --- (7 days)
// From 2 Jan 2025, 00:00 AM JST (1 Jan 2025, 15:00 PM GMT)
// To 8 Jan 2025, 23:59 PM JST (8 Oct 2025, 14:59 PM GMT)
function start6Phase2025() external onlyOwner {
// Supply setting (only after phase 5)
if (currentPhase == 5) {
// Burn SMS if it was not done yet
if (needToBurn)
burnSMSProcess();
balances[address(this)] = tokenSaleLot3;
totalSupply = 3 * totalSupply;
totalSupply += balances[address(this)];
saleCounter = 0;
limitedSale = tokenSaleLot3;
// Bonus
x3Token(); // 3X distributions to token holders
// Mint new tokens for 2025
Transfer(mint, address(this), balances[address(this)]);
// Set burning is needed
needToBurn = true;
}
// ICO stage init
icoOnPaused = false;
currentPhase = 6;
startDate = block.timestamp;
endDate = startDate + 7 days;
}
function x3Token() private {
// Multiply token by 3 to all the current addresses
for (uint i = 0; i < addresses.length; i++) {
uint curr1XBalance = balances[addresses[i]];
// In total 3X, then also calculate value to balances
balances[addresses[i]] = 3 * curr1XBalance;
// Transfer 2X from Mint to add with the existing 1X
Transfer(mint, addresses[i], 2 * curr1XBalance);
// To keep tracking bonus distribution
sentBonus += (2 * curr1XBalance);
}
}
// Called by the owner, to emergency pause the current phase
function pausePhase() external onlyOwner {
icoOnPaused = true;
}
// Called by the owner, to resumes the paused phase
function resumePhase() external onlyOwner {
icoOnPaused = false;
}
// Standard interface
function totalSupply() public constant returns(uint256 _totalSupply) {
return totalSupply;
}
function balanceOf(address sender) public constant returns(uint256 balance) {
return balances[sender];
}
function soldToken() public constant returns(uint256 _soldToken) {
return soldToken;
}
function sentBonus() public constant returns(uint256 _sentBonus) {
return sentBonus;
}
function saleCounter() public constant returns(uint256 _saleCounter) {
return saleCounter;
}
function transferFrom(address _from, address _to, uint256 _amount) public returns(bool success) {
if (balances[_from] >= _amount && allowed[_from][msg.sender] >= _amount && _amount > 0 && balances[_to] + _amount > balances[_to]) {
balances[_from] -= _amount;
allowed[_from][msg.sender] -= _amount;
balances[_to] += _amount;
Transfer(_from, _to, _amount);
return true;
} else {
return false;
}
}
// Price should be entered in multiple of 10000's
// E.g. for .0001 ether enter 1, for 5 ether price enter 50000
function setTokenPrice(uint ethRate) external onlyOwner {
tokenPrice = (ethRate * 10 ** 18) / 10000; // (Convert to ether unit then make 4 decimals)
}
// Allow _spender to withdraw from your account, multiple times, up to the _value amount.
// If this function is called again it overwrites the current allowance with _value.
function approve(address _spender, uint256 _amount) public returns(bool success) {
allowed[msg.sender][_spender] = _amount;
Approval(msg.sender, _spender, _amount);
return true;
}
function allowance(address _owner, address _spender) public constant returns(uint256 remaining) {
return allowed[_owner][_spender];
}
// Transfer the balance from caller's wallet address to investor's wallet address
function transfer(address _to, uint256 _amount) public returns(bool success) {
if (balances[msg.sender] >= _amount && _amount > 0 && balances[_to] + _amount > balances[_to]) {
balances[msg.sender] -= _amount;
balances[_to] += _amount;
Transfer(msg.sender, _to, _amount);
// Add destination wallet address to the list
addAddress(_to);
return true;
} else {
return false;
}
}
// Transfer the balance from SMS's contract address to an investor's wallet account
function transferTokens(address _to, uint256 _amount, uint256 _bonus) private returns(bool success) {
if (_amount > 0 && balances[address(this)] >= _amount && balances[address(this)] - _amount >= 0 && soldToken + _amount > soldToken && saleCounter + _amount <= limitedSale && balances[_to] + _amount > balances[_to]) {
// Transfer token from contract to target
balances[address(this)] -= _amount;
soldToken += _amount;
saleCounter += _amount;
balances[_to] += _amount;
Transfer(address(this), _to, _amount);
// Transfer bonus token from owner to target
if (currentPhase <= 3 && _bonus > 0 && balances[owner] - _bonus >= 0 && sentBonus + _bonus > sentBonus && sentBonus + _bonus <= reservedBonusLot1 && balances[_to] + _bonus > balances[_to]) {
// Transfer with bonus
balances[owner] -= _bonus;
sentBonus += _bonus;
balances[_to] += _bonus;
Transfer(owner, _to, _bonus);
}
// Add investor wallet address to the list
addAddress(_to);
return true;
} else {
return false;
}
}
// Add wallet address with existing check
function addAddress(address _to) private {
if (addresses.length > 0) {
if (userStructs[_to] != _to) {
userStructs[_to] = _to;
addresses.push(_to);
}
} else {
userStructs[_to] = _to;
addresses.push(_to);
}
}
// Drain all the available ETH from the contract back to owner's wallet
function drainETH() external onlyOwner {
owner.transfer(this.balance);
}
// Burn all the available SMS from the contract and from owner to make it equal to investors
// This will burn only the available token up to the current phase
// A burning function
function burnSMSProcess() private {
// Allow to burn left SMS only on phase 4, 5, 6
if (currentPhase >= 4) {
// Burn all available tokens
// From SMS contract
if (balances[address(this)] > 0) {
uint toBeBurnedFromContract = balances[address(this)];
Transfer(address(this), genesis, toBeBurnedFromContract);
balances[address(this)] = 0;
totalSupply -= toBeBurnedFromContract;
// Burn from owner wallet only in phase 4
if (currentPhase == 4) {
if (balances[owner] > soldToken) {
uint toBeBurnedFromOwner = balances[owner] - soldToken;
Transfer(owner, genesis, toBeBurnedFromOwner);
balances[owner] = balances[owner] - toBeBurnedFromOwner;
totalSupply -= toBeBurnedFromOwner;
}
}
// Clear burning status
needToBurn = false;
}
}
}
// Function used in Reward contract to know address of token holder
function getAddress(uint i) public constant returns(address) {
return addresses[i];
}
// Function used in Reward contract to get to know the address array length
function getAddressSize() public constant returns(uint) {
return addresses.length;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"saleCounter","outputs":[{"name":"_saleCounter","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start2BonusPeriod2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start4NormalPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sentBonus","outputs":[{"name":"_sentBonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldToken","outputs":[{"name":"_soldToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ethRate","type":"uint256"}],"name":"setTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"sender","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPrice","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":"UNIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"limitedSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start1BonusPeriod1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAddressSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pausePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start3BonusPeriod3","outputs":[],"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":false,"inputs":[],"name":"drainETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start5Phase2020","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start6Phase2025","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"e","type":"uint256"}],"name":"Log","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"e","type":"string"}],"name":"TOKEN","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
606060405260008080556308f0d1806001556302aea5406002556302faf08060038190556004556006819055600781905560088190556009819055600f8054600160a060020a033016600160a060020a031991821617909155601080549091169055670b1a2bc2ec5000006011556012805460ff19908116909155601591909155601680549091169055341561009457600080fd5b600e8054600160a060020a03191633600160a060020a031617905561148e806100be6000396000f30060606040526004361061015e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630387b0a281146102a657806306fdde03146102cb5780630835b8b214610355578063095ea7b31461036a57806318160ddd146103a057806323b872dd146103b3578063313ce567146103db5780635143284d146103ee57806351973391146104015780636769d1f9146104145780636a61e5fc1461042757806370a082311461043d5780637ff9b5961461045c57806395d89b411461046f5780639d8e217714610482578063a62d780114610495578063a9059cbb146104a8578063b93f9b0a146104ca578063be471027146104fc578063c2cdaf241461050f578063c40d19a514610522578063c8f4170614610535578063d4a3456414610548578063dd62ed3e1461055b578063e264172c14610580578063e4698ee714610593578063ff56b59a146105a6575b600080806000805160206114238339815191523460405190815260200160405180910390a160125460ff161580156101a55750600e5433600160a060020a03908116911614155b1561029c57601454421161029c5760008051602061142383398151915260155460405190815260200160405180910390a16003600a0a340292506101eb836011546105b9565b91506000805160206114238339815191528260405190815260200160405180910390a16015546001148061022157506015546002145b8061022e57506015546003145b156102605761023c826105f4565b90506000805160206114238339815191528160405190815260200160405180910390a15b6000805160206114238339815191528260405190815260200160405180910390a161028c338383610671565b151561029757600080fd5b6102a1565b600080fd5b505050005b34156102b157600080fd5b6102b9610876565b60405190815260200160405180910390f35b34156102d657600080fd5b6102de61087d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561031a578082015183820152602001610302565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103686108b4565b005b341561037557600080fd5b61038c600160a060020a03600435166024356108fe565b604051901515815260200160405180910390f35b34156103ab57600080fd5b6102b961096a565b34156103be57600080fd5b61038c600160a060020a0360043581169060243516604435610970565b34156103e657600080fd5b6102b9610a6e565b34156103f957600080fd5b610368610a73565b341561040c57600080fd5b6102b9610ab8565b341561041f57600080fd5b6102b9610abe565b341561043257600080fd5b610368600435610ac4565b341561044857600080fd5b6102b9600160a060020a0360043516610af4565b341561046757600080fd5b6102b9610b0f565b341561047a57600080fd5b6102de610b15565b341561048d57600080fd5b6102b9610b4c565b34156104a057600080fd5b610368610b52565b34156104b357600080fd5b61038c600160a060020a0360043516602435610b79565b34156104d557600080fd5b6104e0600435610c38565b604051600160a060020a03909116815260200160405180910390f35b341561050757600080fd5b6102b9610c64565b341561051a57600080fd5b610368610c6a565b341561052d57600080fd5b6102b9610d60565b341561054057600080fd5b610368610d66565b341561055357600080fd5b610368610d90565b341561056657600080fd5b6102b9600160a060020a0360043581169060243516610dda565b341561058b57600080fd5b610368610e05565b341561059e57600080fd5b610368610e59565b34156105b157600080fd5b610368610f43565b6000808083116105c557fe5b82848115156105d057fe5b04905082848115156105de57fe5b0681840201841415156105ed57fe5b9392505050565b6000806127108310156106155760055460649060ff1684025b04905061066b565b61c35083101561063457600554606490610100900460ff16840261060d565b620186a08310156106555760055460649062010000900460ff16840261060d565b6005546064906301000000900460ff1684020490505b92915050565b6000808311801561069b5750600160a060020a0330166000908152600a6020526040902054839010155b80156106c15750600160a060020a0330166000908152600a602052604081205484900310155b80156106d05750600954838101115b80156106e25750600754836006540111155b80156107075750600160a060020a0384166000908152600a6020526040902054838101115b1561086c57600160a060020a033081166000818152600a6020526040808220805488900390556009805488019055600680548801905592871680825290839020805487019055916000805160206114438339815191529086905190815260200160405180910390a36003601554111580156107825750600082115b80156107aa5750600e54600160a060020a03166000908152600a602052604081205483900310155b80156107b95750600854828101115b80156107cb5750600254826008540111155b80156107f05750600160a060020a0384166000908152600a6020526040902054828101115b1561085b57600e8054600160a060020a039081166000908152600a602052604080822080548790039055600880548701905587831680835291819020805487019055925490929116906000805160206114438339815191529085905190815260200160405180910390a35b61086484611027565b5060016105ed565b5060009392505050565b6006545b90565b60408051908101604052601481527f5370656564204d696e696e672053657276696365000000000000000000000000602082015281565b600e5433600160a060020a039081169116146108cf57600080fd5b6012805460ff191690556002601555426013819055620f0d1f016014556108fc60036005600a600f611153565b565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005490565b600160a060020a0383166000908152600a60205260408120548290108015906109c05750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b80156109cc5750600082115b80156109f15750600160a060020a0383166000908152600a6020526040902054828101115b1561086c57600160a060020a038085166000818152600a6020818152604080842080548990039055600b8252808420338716855282528084208054899003905594881680845291905290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a35060016105ed565b600381565b600e5433600160a060020a03908116911614610a8e57600080fd5b6012805460ff1916905560046015554260138190556228de80016014556108fc6000808080611153565b60085490565b60095490565b600e5433600160a060020a03908116911614610adf57600080fd5b612710670de0b6b3a764000082020460115550565b600160a060020a03166000908152600a602052604090205490565b60115481565b60408051908101604052600381527f534d530000000000000000000000000000000000000000000000000000000000602082015281565b6103e881565b600e5433600160a060020a03908116911614610b6d57600080fd5b6012805460ff19169055565b600160a060020a0333166000908152600a6020526040812054829010801590610ba25750600082115b8015610bc75750600160a060020a0383166000908152600a6020526040902054828101115b15610c3057600160a060020a033381166000818152600a60205260408082208054879003905592861680825290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a3610c2883611027565b50600161066b565b50600061066b565b6000600c82815481101515610c4957fe5b600091825260209091200154600160a060020a031692915050565b60075481565b600e5433600160a060020a03908116911614610c8557600080fd5b6015541515610d3057600154600e8054600160a060020a039081166000908152600a6020526040808220859055308316825280822085905592549091168082529181205483018155600655600791909155610cdf90611027565b600e54600160a060020a039081166000818152600a602052604090819020549192301691600080516020611443833981519152915190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600160155542601381905562032f9f0160149081556108fc90600590600a90601e611153565b600c5490565b600e5433600160a060020a03908116911614610d8157600080fd5b6012805460ff19166001179055565b600e5433600160a060020a03908116911614610dab57600080fd5b6012805460ff191690556003601581905542601381905562433c80016014556108fc9060019060056008611153565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600e5433600160a060020a03908116911614610e2057600080fd5b600e54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108fc57600080fd5b600e5433600160a060020a03908116911614610e7457600080fd5b60155460041415610f245760165460ff1615610e9257610e926111a2565b60038054600160a060020a0330166000908152600a60205260408120828155815490930280825592549092018255600691909155600755610ed16112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600560155542601381905562093a8001601455565b600e5433600160a060020a03908116911614610f5e57600080fd5b601554600514156110085760165460ff1615610f7c57610f7c6111a2565b600454600160a060020a0330166000908152600a6020526040812082815581546003028083559054018155600655600755610fb56112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600660155542601381905562093a8001601455565b600c5460009011156110d557600160a060020a038082166000818152600d6020526040902054909116146110d057600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161109d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b611150565b600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161111d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6005805460ff191660ff9586161761ff001916610100948616949094029390931762ff0000191662010000928516929092029190911763ff000000191663010000009190931602919091179055565b60008060046015541015156112eb57600160a060020a0330166000908152600a602052604081205411156112eb57600160a060020a033081166000818152600a60205260409081902054601054909550909216916000805160206114438339815191529085905190815260200160405180910390a3600160a060020a0330166000908152600a6020526040812081905580548390039055601554600414156112e057600954600e54600160a060020a03166000908152600a602052604090205411156112e05750600954600e54600160a060020a039081166000818152600a6020526040908190205460105494900393909216916000805160206114438339815191529084905190815260200160405180910390a3600e54600160a060020a03166000908152600a6020526040812080548390039055805482900390555b6016805460ff191690555b5050565b6000805b600c548210156112eb57600a6000600c8481548110151561131057fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812054600c80549193506003840292600a929091908690811061135157fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902055600c80548390811061138457fe5b600091825260209091200154600f54600160a060020a0391821691166000805160206114438339815191526002840260405190815260200160405180910390a36008805460028302019055600191909101906112f3565b8154818355818115116113ff576000838152602090206113ff918101908301611404565b505050565b61087a91905b8082111561141e576000815560010161140a565b50905600909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9cddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a210c00c7b21d17568d0733ed0d0ee312507e9c3491f84783c749be0c780435e0029
Deployed Bytecode
0x60606040526004361061015e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630387b0a281146102a657806306fdde03146102cb5780630835b8b214610355578063095ea7b31461036a57806318160ddd146103a057806323b872dd146103b3578063313ce567146103db5780635143284d146103ee57806351973391146104015780636769d1f9146104145780636a61e5fc1461042757806370a082311461043d5780637ff9b5961461045c57806395d89b411461046f5780639d8e217714610482578063a62d780114610495578063a9059cbb146104a8578063b93f9b0a146104ca578063be471027146104fc578063c2cdaf241461050f578063c40d19a514610522578063c8f4170614610535578063d4a3456414610548578063dd62ed3e1461055b578063e264172c14610580578063e4698ee714610593578063ff56b59a146105a6575b600080806000805160206114238339815191523460405190815260200160405180910390a160125460ff161580156101a55750600e5433600160a060020a03908116911614155b1561029c57601454421161029c5760008051602061142383398151915260155460405190815260200160405180910390a16003600a0a340292506101eb836011546105b9565b91506000805160206114238339815191528260405190815260200160405180910390a16015546001148061022157506015546002145b8061022e57506015546003145b156102605761023c826105f4565b90506000805160206114238339815191528160405190815260200160405180910390a15b6000805160206114238339815191528260405190815260200160405180910390a161028c338383610671565b151561029757600080fd5b6102a1565b600080fd5b505050005b34156102b157600080fd5b6102b9610876565b60405190815260200160405180910390f35b34156102d657600080fd5b6102de61087d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561031a578082015183820152602001610302565b50505050905090810190601f1680156103475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036057600080fd5b6103686108b4565b005b341561037557600080fd5b61038c600160a060020a03600435166024356108fe565b604051901515815260200160405180910390f35b34156103ab57600080fd5b6102b961096a565b34156103be57600080fd5b61038c600160a060020a0360043581169060243516604435610970565b34156103e657600080fd5b6102b9610a6e565b34156103f957600080fd5b610368610a73565b341561040c57600080fd5b6102b9610ab8565b341561041f57600080fd5b6102b9610abe565b341561043257600080fd5b610368600435610ac4565b341561044857600080fd5b6102b9600160a060020a0360043516610af4565b341561046757600080fd5b6102b9610b0f565b341561047a57600080fd5b6102de610b15565b341561048d57600080fd5b6102b9610b4c565b34156104a057600080fd5b610368610b52565b34156104b357600080fd5b61038c600160a060020a0360043516602435610b79565b34156104d557600080fd5b6104e0600435610c38565b604051600160a060020a03909116815260200160405180910390f35b341561050757600080fd5b6102b9610c64565b341561051a57600080fd5b610368610c6a565b341561052d57600080fd5b6102b9610d60565b341561054057600080fd5b610368610d66565b341561055357600080fd5b610368610d90565b341561056657600080fd5b6102b9600160a060020a0360043581169060243516610dda565b341561058b57600080fd5b610368610e05565b341561059e57600080fd5b610368610e59565b34156105b157600080fd5b610368610f43565b6000808083116105c557fe5b82848115156105d057fe5b04905082848115156105de57fe5b0681840201841415156105ed57fe5b9392505050565b6000806127108310156106155760055460649060ff1684025b04905061066b565b61c35083101561063457600554606490610100900460ff16840261060d565b620186a08310156106555760055460649062010000900460ff16840261060d565b6005546064906301000000900460ff1684020490505b92915050565b6000808311801561069b5750600160a060020a0330166000908152600a6020526040902054839010155b80156106c15750600160a060020a0330166000908152600a602052604081205484900310155b80156106d05750600954838101115b80156106e25750600754836006540111155b80156107075750600160a060020a0384166000908152600a6020526040902054838101115b1561086c57600160a060020a033081166000818152600a6020526040808220805488900390556009805488019055600680548801905592871680825290839020805487019055916000805160206114438339815191529086905190815260200160405180910390a36003601554111580156107825750600082115b80156107aa5750600e54600160a060020a03166000908152600a602052604081205483900310155b80156107b95750600854828101115b80156107cb5750600254826008540111155b80156107f05750600160a060020a0384166000908152600a6020526040902054828101115b1561085b57600e8054600160a060020a039081166000908152600a602052604080822080548790039055600880548701905587831680835291819020805487019055925490929116906000805160206114438339815191529085905190815260200160405180910390a35b61086484611027565b5060016105ed565b5060009392505050565b6006545b90565b60408051908101604052601481527f5370656564204d696e696e672053657276696365000000000000000000000000602082015281565b600e5433600160a060020a039081169116146108cf57600080fd5b6012805460ff191690556002601555426013819055620f0d1f016014556108fc60036005600a600f611153565b565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005490565b600160a060020a0383166000908152600a60205260408120548290108015906109c05750600160a060020a038085166000908152600b602090815260408083203390941683529290522054829010155b80156109cc5750600082115b80156109f15750600160a060020a0383166000908152600a6020526040902054828101115b1561086c57600160a060020a038085166000818152600a6020818152604080842080548990039055600b8252808420338716855282528084208054899003905594881680845291905290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a35060016105ed565b600381565b600e5433600160a060020a03908116911614610a8e57600080fd5b6012805460ff1916905560046015554260138190556228de80016014556108fc6000808080611153565b60085490565b60095490565b600e5433600160a060020a03908116911614610adf57600080fd5b612710670de0b6b3a764000082020460115550565b600160a060020a03166000908152600a602052604090205490565b60115481565b60408051908101604052600381527f534d530000000000000000000000000000000000000000000000000000000000602082015281565b6103e881565b600e5433600160a060020a03908116911614610b6d57600080fd5b6012805460ff19169055565b600160a060020a0333166000908152600a6020526040812054829010801590610ba25750600082115b8015610bc75750600160a060020a0383166000908152600a6020526040902054828101115b15610c3057600160a060020a033381166000818152600a60205260408082208054879003905592861680825290839020805486019055916000805160206114438339815191529085905190815260200160405180910390a3610c2883611027565b50600161066b565b50600061066b565b6000600c82815481101515610c4957fe5b600091825260209091200154600160a060020a031692915050565b60075481565b600e5433600160a060020a03908116911614610c8557600080fd5b6015541515610d3057600154600e8054600160a060020a039081166000908152600a6020526040808220859055308316825280822085905592549091168082529181205483018155600655600791909155610cdf90611027565b600e54600160a060020a039081166000818152600a602052604090819020549192301691600080516020611443833981519152915190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600160155542601381905562032f9f0160149081556108fc90600590600a90601e611153565b600c5490565b600e5433600160a060020a03908116911614610d8157600080fd5b6012805460ff19166001179055565b600e5433600160a060020a03908116911614610dab57600080fd5b6012805460ff191690556003601581905542601381905562433c80016014556108fc9060019060056008611153565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600e5433600160a060020a03908116911614610e2057600080fd5b600e54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108fc57600080fd5b600e5433600160a060020a03908116911614610e7457600080fd5b60155460041415610f245760165460ff1615610e9257610e926111a2565b60038054600160a060020a0330166000908152600a60205260408120828155815490930280825592549092018255600691909155600755610ed16112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600560155542601381905562093a8001601455565b600e5433600160a060020a03908116911614610f5e57600080fd5b601554600514156110085760165460ff1615610f7c57610f7c6111a2565b600454600160a060020a0330166000908152600a6020526040812082815581546003028083559054018155600655600755610fb56112ef565b600f54600160a060020a033081166000818152600a6020526040908190205491939092169160008051602061144383398151915291905190815260200160405180910390a36016805460ff191660011790555b6012805460ff19169055600660155542601381905562093a8001601455565b600c5460009011156110d557600160a060020a038082166000818152600d6020526040902054909116146110d057600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161109d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b611150565b600160a060020a0381166000818152600d60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169091179055600c80546001810161111d83826113db565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6005805460ff191660ff9586161761ff001916610100948616949094029390931762ff0000191662010000928516929092029190911763ff000000191663010000009190931602919091179055565b60008060046015541015156112eb57600160a060020a0330166000908152600a602052604081205411156112eb57600160a060020a033081166000818152600a60205260409081902054601054909550909216916000805160206114438339815191529085905190815260200160405180910390a3600160a060020a0330166000908152600a6020526040812081905580548390039055601554600414156112e057600954600e54600160a060020a03166000908152600a602052604090205411156112e05750600954600e54600160a060020a039081166000818152600a6020526040908190205460105494900393909216916000805160206114438339815191529084905190815260200160405180910390a3600e54600160a060020a03166000908152600a6020526040812080548390039055805482900390555b6016805460ff191690555b5050565b6000805b600c548210156112eb57600a6000600c8481548110151561131057fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812054600c80549193506003840292600a929091908690811061135157fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902055600c80548390811061138457fe5b600091825260209091200154600f54600160a060020a0391821691166000805160206114438339815191526002840260405190815260200160405180910390a36008805460028302019055600191909101906112f3565b8154818355818115116113ff576000838152602090206113ff918101908301611404565b505050565b61087a91905b8082111561141e576000815560010161140a565b50905600909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9cddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a210c00c7b21d17568d0733ed0d0ee312507e9c3491f84783c749be0c780435e0029
Swarm Source
bzzr://a210c00c7b21d17568d0733ed0d0ee312507e9c3491f84783c749be0c780435e
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)