Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
547,016 ESG
Holders
31
Transfers
-
0 (0%)
Market
Onchain Market Cap
$0.00
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:
ESGToken
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-10-19
*/
pragma solidity >=0.4.10;
/* ----------------------------------------------------------------------------------------
Dev: "Owned" to ensure control of contracts
Identical to https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Ownable.sol
---------------------------------------------------------------------------------------- */
contract Owned {
address public owner;
function Owned() {
owner = msg.sender;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function transferOwnership(address newOwner) onlyOwner {
owner = newOwner;
}
}
/* ----------------------------------------------------------------------------------------
Dev: SafeMath library
Identical to https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
---------------------------------------------------------------------------------------- */
library SafeMath {
function safeMul(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function safeDiv(uint256 a, uint256 b) internal constant returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function safeSub(uint256 a, uint256 b) internal constant returns (uint256) {
assert(b <= a); // Ensuring no negatives
return a - b;
}
function safeAdd(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a + b;
assert(c >= a && c>=b);
return c;
}
}
/* ----------------------------------------------------------------------------------------
Dev: ESG Asset Holder is called when the token "burn" function is called
Sum: Locked to false so users cannot burn their tokens until the Asset Contract is
put in place with value.
---------------------------------------------------------------------------------------- */
contract ESGAssetHolder {
function burn(address _holder, uint _amount) returns (bool result) {
_holder = 0x0; // To avoid variable not used issue on deployment
_amount = 0; // To avoid variable not used issue on deployment
return false;
}
}
/* ----------------------------------------------------------------------------------------
Dev: The Esports Gold Token: ERC20 standard token with MINT and BURN functions
Func: Mint, Approve, Transfer, TransferFrom
Note: Mint function takes UNITS of tokens to mint as ICO event is set to have a minimum
contribution of 1 token. All other functions (transfer etc), the value to transfer
is the FULL DECIMAL value
The user is only ever presented with the latter option, therefore should avoid
any confusion.
---------------------------------------------------------------------------------------- */
contract ESGToken is Owned {
string public name = "ESG Token"; // Name of token
string public symbol = "ESG"; // Token symbol
uint256 public decimals = 3; // Decimals for the token
uint256 public totalSupply; // Current supply of tokens
uint256 public supplyCap; // Hard cap on supply of tokens
address public ICOcontroller; // Controlling contract from ICO
address public timelockTokens; // Address for locked management tokens
bool public tokenParametersSet; // Ensure that parameters required are set
bool public controllerSet; // Ensure that ICO controller is set
mapping (address => uint256) public balanceOf; // Balances of addresses
mapping (address => mapping (address => uint)) public allowance; // Allowances from addresses
mapping (address => bool) public frozenAccount; // Safety mechanism
modifier onlyControllerOrOwner() { // Ensures that only contracts can manage key functions
require(msg.sender == ICOcontroller || msg.sender == owner);
_;
}
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event Mint(address owner, uint amount);
event FrozenFunds(address target, bool frozen);
event Burn(address coinholder, uint amount);
/* ----------------------------------------------------------------------------------------
Dev: Constructor
param: Owner: Address of owner
Name: Esports Gold Token
Sym: ESG_TKN
Dec: 3
Cap: Hard coded cap to ensure excess tokens cannot be minted
Other parameters have been set up as a separate function to help lower initial gas deployment cost.
---------------------------------------------------------------------------------------- */
function ESGToken() {
totalSupply = 0; // Starting supply is zero
supplyCap = 0; // Hard cap supply in Tokens set by ICO
tokenParametersSet = false; // Ensure parameters are set
controllerSet = false; // Ensure controller is set
}
/* ----------------------------------------------------------------------------------------
Dev: Key parameters to setup for ICO event
Param: _ico Address of the ICO Event contract to ensure the ICO event can control
the minting function
---------------------------------------------------------------------------------------- */
function setICOController(address _ico) onlyOwner { // ICO event address is locked in
require(_ico != 0x0);
ICOcontroller = _ico;
controllerSet = true;
}
/* ----------------------------------------------------------------------------------------
NEW
Dev: Address for the timelock tokens to be held
Param: _timelockAddr Address of the timelock contract that will hold the locked tokens
---------------------------------------------------------------------------------------- */
function setParameters(address _timelockAddr) onlyOwner {
require(_timelockAddr != 0x0);
timelockTokens = _timelockAddr;
tokenParametersSet = true;
}
function parametersAreSet() constant returns (bool) {
return tokenParametersSet && controllerSet;
}
/* ----------------------------------------------------------------------------------------
Dev: Set the total number of Tokens that can be minted
Param: _supplyCap The number of tokens (in whole units) that can be minted. This number then
gets increased by the decimal number
---------------------------------------------------------------------------------------- */
function setTokenCapInUnits(uint256 _supplyCap) onlyControllerOrOwner { // Supply cap in UNITS
assert(_supplyCap > 0);
supplyCap = SafeMath.safeMul(_supplyCap, (10**decimals));
}
/* ----------------------------------------------------------------------------------------
Dev: Mint the number of tokens for the timelock contract
Param: _mMentTkns Number of tokens in whole units that need to be locked into the Timelock
---------------------------------------------------------------------------------------- */
function mintLockedTokens(uint256 _mMentTkns) onlyControllerOrOwner {
assert(_mMentTkns > 0);
assert(tokenParametersSet);
mint(timelockTokens, _mMentTkns);
}
/* ----------------------------------------------------------------------------------------
Dev: ERC20 protocols
---------------------------------------------------------------------------------------- */
function balanceOf(address _owner) constant returns (uint256 balance) {
return balanceOf[_owner];
}
/* ----------------------------------------------------------------------------------------
Dev: Mint ESG Tokens by controller
Control: OnlyControllers. ICO event needs to be able to control the minting
function
Param: Address Address for tokens to be minted to
Amount Number of tokens to be minted (in whole UNITS. Min minting is 1 token)
Minimum ETH contribution in ICO event is 0.01ETH at 100 tokens per ETH
---------------------------------------------------------------------------------------- */
function mint(address _address, uint _amount) onlyControllerOrOwner {
require(_address != 0x0);
uint256 amount = SafeMath.safeMul(_amount, (10**decimals)); // Tokens minted using unit parameter supplied
// Ensure that supplyCap is set and that new tokens don't breach cap
assert(supplyCap > 0 && amount > 0 && SafeMath.safeAdd(totalSupply, amount) <= supplyCap);
balanceOf[_address] = SafeMath.safeAdd(balanceOf[_address], amount); // Add tokens to address
totalSupply = SafeMath.safeAdd(totalSupply, amount); // Add to supply
Mint(_address, amount);
Transfer(0x0, _address, amount);
}
/* ----------------------------------------------------------------------------------------
Dev: ERC20 standard transfer function
Param: _to Address to send to
_value Number of tokens to be sent - in FULL decimal length
Ref: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/BasicToken.sol
---------------------------------------------------------------------------------------- */
function transfer(address _to, uint _value) returns (bool success) {
require(!frozenAccount[msg.sender]); // Ensure account is not frozen
/*
Update balances from "from" and "to" addresses with the tokens transferred
safeSub method ensures that address sender has enough tokens to send
*/
balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);
balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);
Transfer(msg.sender, _to, _value);
return true;
}
/* ----------------------------------------------------------------------------------------
Dev: ERC20 standard transferFrom function
Param: _from Address to send from
_to Address to send to
Amount Number of tokens to be sent - in FULL decimal length
---------------------------------------------------------------------------------------- */
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
require(!frozenAccount[_from]); // Check account is not frozen
/*
Ensure sender has been authorised to send the required number of tokens
*/
if (allowance[_from][msg.sender] < _value)
return false;
/*
Update allowance of sender to reflect tokens sent
*/
allowance[_from][msg.sender] = SafeMath.safeSub(allowance[_from][msg.sender], _value);
/*
Update balances from "from" and "to" addresses with the tokens transferred
safeSub method ensures that address sender has enough tokens to send
*/
balanceOf[_from] = SafeMath.safeSub(balanceOf[_from], _value);
balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);
Transfer(_from, _to, _value);
return true;
}
/* ----------------------------------------------------------------------------------------
Dev: ERC20 standard approve function
Param: _spender Address of sender who is approved
_value The number of tokens (full decimals) that are approved
---------------------------------------------------------------------------------------- */
function approve(address _spender, uint256 _value) // FULL DECIMALS OF TOKENS
returns (bool success)
{
require(!frozenAccount[msg.sender]); // Check account is not frozen
/* Requiring the user to set to zero before resetting to nonzero */
if ((_value != 0) && (allowance[msg.sender][_spender] != 0)) {
return false;
}
allowance[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/* ----------------------------------------------------------------------------------------
Dev: Function to check the amount of tokens that the owner has allowed the "spender" to
transfer
Param: _owner Address of the authoriser who owns the tokens
_spender Address of sender who will be authorised to spend the tokens
---------------------------------------------------------------------------------------- */
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowance[_owner][_spender];
}
/* ----------------------------------------------------------------------------------------
Dev: As ESG is aiming to be a regulated betting operator. Regulatory hurdles may require
this function if an account on the betting platform, using the token, breaches
a regulatory requirement.
ESG can then engage with the account holder to get it unlocked
This does not stop the token accruing value from its share of the Asset Contract
Param: _target Address of account
_freeze Boolean to lock/unlock account
Ref: This is a replica of the code as per https://ethereum.org/token
---------------------------------------------------------------------------------------- */
function freezeAccount(address target, bool freeze) onlyOwner {
frozenAccount[target] = freeze;
FrozenFunds(target, freeze);
}
/* ----------------------------------------------------------------------------------------
Dev: Burn function: User is able to burn their token for a share of the ESG Asset Contract
Note: Deployed with the ESG Asset Contract set to false to ensure token holders cannot
accidentally burn their tokens for zero value
Param: _amount Number of tokens (full decimals) that should be burnt
Ref: Based on the open source TokenCard Burn function. A copy can be found at
https://github.com/bokkypoobah/TokenCardICOAnalysis
---------------------------------------------------------------------------------------- */
function burn(uint _amount) returns (bool result) {
if (_amount > balanceOf[msg.sender])
return false; // If owner has enough to burn
/*
Remove tokens from circulation
Update sender's balance of tokens
*/
balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _amount);
totalSupply = SafeMath.safeSub(totalSupply, _amount);
// Call burn function
result = esgAssetHolder.burn(msg.sender, _amount);
require(result);
Burn(msg.sender, _amount);
}
/* ----------------------------------------------------------------------------------------
Dev: Section of the contract that links to the ESG Asset Contract
Note: Deployed with the ESG Asset Contract set to false to ensure token holders cannot
accidentally burn their tokens for zero value
Param: _amount Number of tokens (full decimals) that should be burnt
Ref: Based on the open source TokenCard Burn function. A copy can be found at
https://github.com/bokkypoobah/TokenCardICOAnalysis
---------------------------------------------------------------------------------------- */
ESGAssetHolder esgAssetHolder; // Holds the accumulated asset contract
bool lockedAssetHolder; // Will be locked to stop tokenholder to be upgraded
function lockAssetHolder() onlyOwner { // Locked once deployed
lockedAssetHolder = true;
}
function setAssetHolder(address _assetAdress) onlyOwner { // Used to lock in the Asset Contract
assert(!lockedAssetHolder); // Check that we haven't locked the asset holder yet
esgAssetHolder = ESGAssetHolder(_assetAdress);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"controllerSet","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ico","type":"address"}],"name":"setICOController","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"parametersAreSet","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"lockAssetHolder","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenParametersSet","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"name":"result","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timelockAddr","type":"address"}],"name":"setParameters","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"supplyCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_mMentTkns","type":"uint256"}],"name":"mintLockedTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_assetAdress","type":"address"}],"name":"setAssetHolder","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_supplyCap","type":"uint256"}],"name":"setTokenCapInUnits","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ICOcontroller","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"timelockTokens","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"coinholder","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"}]Contract Creation Code
60a0604052600960608190527f45534720546f6b656e00000000000000000000000000000000000000000000006080908152620000409160019190620000d6565b506040805180820190915260038082527f455347000000000000000000000000000000000000000000000000000000000060209092019182526200008791600291620000d6565b50600360035534156200009657fe5b5b5b60008054600160a060020a03191633600160a060020a03161790555b600060048190556005556007805460a060020a61ffff02191690555b62000180565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011957805160ff191683800117855562000149565b8280016001018555821562000149579182015b82811115620001495782518255916020019190600101906200012c565b5b50620001589291506200015c565b5090565b6200017d91905b8082111562000158576000815560010162000163565b5090565b90565b6111ff80620001906000396000f3006060604052361561015c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302072579811461015e57806306fdde0314610182578063095ea7b314610212578063179381d81461024557806318160ddd1461026357806323b872dd14610285578063313ce567146102be57806338cf2087146102e05780633a6a2a69146103045780633c1e60a61461031657806340c10f191461033a57806342966c681461035b578063490377a71461038257806370a08231146103a05780638da5cb5b146103ce5780638f770ad0146103fa57806395d89b411461041c57806397bb0de0146104ac578063990f412f146104c1578063a9059cbb146104df578063b414d4b614610512578063dd62ed3e14610542578063e58cd3cb14610576578063e724529c1461058b578063e9c9db5c146105ae578063f2fde38b146105da578063f85cd33e146105f8575bfe5b341561016657fe5b61016e610624565b604080519115158252519081900360200190f35b341561018a57fe5b610192610646565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021a57fe5b61016e600160a060020a03600435166024356106d3565b604080519115158252519081900360200190f35b341561024d57fe5b610261600160a060020a03600435166107a1565b005b341561026b57fe5b610273610839565b60408051918252519081900360200190f35b341561028d57fe5b61016e600160a060020a036004358116906024351660443561083f565b604080519115158252519081900360200190f35b34156102c657fe5b6102736109a0565b60408051918252519081900360200190f35b34156102e857fe5b61016e6109a6565b604080519115158252519081900360200190f35b341561030c57fe5b6102616109e3565b005b341561031e57fe5b61016e610a27565b604080519115158252519081900360200190f35b341561034257fe5b610261600160a060020a0360043516602435610a37565b005b341561036357fe5b61016e600435610ba3565b604080519115158252519081900360200190f35b341561038a57fe5b610261600160a060020a0360043516610cfb565b005b34156103a857fe5b610273600160a060020a0360043516610d7a565b60408051918252519081900360200190f35b34156103d657fe5b6103de610d99565b60408051600160a060020a039092168252519081900360200190f35b341561040257fe5b610273610da8565b60408051918252519081900360200190f35b341561042457fe5b610192610dae565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b457fe5b610261600435610e39565b005b34156104c957fe5b610261600160a060020a0360043516610eaa565b005b34156104e757fe5b61016e600160a060020a0360043516602435610f07565b604080519115158252519081900360200190f35b341561051a57fe5b61016e600160a060020a0360043516610fe2565b604080519115158252519081900360200190f35b341561054a57fe5b610273600160a060020a0360043581169060243516610ff7565b60408051918252519081900360200190f35b341561057e57fe5b610261600435611024565b005b341561059357fe5b610261600160a060020a0360043516602435151561107c565b005b34156105b657fe5b6103de6110fe565b60408051600160a060020a039092168252519081900360200190f35b34156105e257fe5b610261600160a060020a036004351661110d565b005b341561060057fe5b6103de611156565b60408051600160a060020a039092168252519081900360200190f35b6007547501000000000000000000000000000000000000000000900460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b600160a060020a0333166000908152600a602052604081205460ff16156106fa5760006000fd5b811580159061072d5750600160a060020a0333811660009081526009602090815260408083209387168352929052205415155b1561073a5750600061079b565b600160a060020a03338116600081815260096020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005433600160a060020a039081169116146107bd5760006000fd5b600160a060020a03811615156107d35760006000fd5b60068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556007805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790555b5b50565b60045481565b600160a060020a0383166000908152600a602052604081205460ff16156108665760006000fd5b600160a060020a03808516600090815260096020908152604080832033909416835292905220548290101561089d57506000610999565b600160a060020a03808516600090815260096020908152604080832033909416835292905220546108ce9083611165565b600160a060020a03808616600081815260096020908152604080832033909516835293815283822094909455908152600890925290205461090f9083611165565b600160a060020a03808616600090815260086020526040808220939093559085168152205461093e908361117c565b600160a060020a0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b9392505050565b60035481565b60075460009060a060020a900460ff1680156109dd57506007547501000000000000000000000000000000000000000000900460ff165b90505b90565b60005433600160a060020a039081169116146109ff5760006000fd5b600b805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60075460a060020a900460ff1681565b60065460009033600160a060020a0390811691161480610a65575060005433600160a060020a039081169116145b1515610a715760006000fd5b600160a060020a0383161515610a875760006000fd5b610a9682600354600a0a6111a4565b90506000600554118015610aaa5750600081115b8015610ac35750600554610ac06004548361117c565b11155b1515610acb57fe5b600160a060020a038316600090815260086020526040902054610aee908261117c565b600160a060020a038416600090815260086020526040902055600454610b14908261117c565b60045560408051600160a060020a03851681526020810183905281517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885929181900390910190a1604080518281529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35b5b505050565b600160a060020a033316600090815260086020526040812054821115610bcb57506000610cf6565b600160a060020a033316600090815260086020526040902054610bee9083611165565b600160a060020a033316600090815260086020526040902055600454610c149083611165565b6004908155600b54604080516000602091820181905282517f9dc29fac000000000000000000000000000000000000000000000000000000008152600160a060020a03338116968201969096526024810188905292519490931693639dc29fac936044808501948390030190829087803b1515610c8d57fe5b6102c65a03f11515610c9b57fe5b505060405151915050801515610cb15760006000fd5b60408051600160a060020a03331681526020810184905281517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5929181900390910190a15b919050565b60005433600160a060020a03908116911614610d175760006000fd5b600160a060020a0381161515610d2d5760006000fd5b6007805460a060020a73ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a0384161774ff000000000000000000000000000000000000000019161790555b5b50565b600160a060020a0381166000908152600860205260409020545b919050565b600054600160a060020a031681565b60055481565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b60065433600160a060020a0390811691161480610e64575060005433600160a060020a039081169116145b1515610e705760006000fd5b60008111610e7a57fe5b60075460a060020a900460ff161515610e8f57fe5b60075461083590600160a060020a031682610a37565b5b5b50565b60005433600160a060020a03908116911614610ec65760006000fd5b600b5460a060020a900460ff1615610eda57fe5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0333166000908152600a602052604081205460ff1615610f2e5760006000fd5b600160a060020a033316600090815260086020526040902054610f519083611165565b600160a060020a033381166000908152600860205260408082209390935590851681522054610f80908361117c565b600160a060020a038085166000818152600860209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600a6020526000908152604090205460ff1681565b600160a060020a038083166000908152600960209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116148061104f575060005433600160a060020a039081169116145b151561105b5760006000fd5b6000811161106557fe5b61107481600354600a0a6111a4565b6005555b5b50565b60005433600160a060020a039081169116146110985760006000fd5b600160a060020a0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15b5b5050565b600654600160a060020a031681565b60005433600160a060020a039081169116146111295760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600754600160a060020a031681565b60008282111561117157fe5b508082035b92915050565b60008282018381108015906111915750828110155b151561119957fe5b8091505b5092915050565b600082820283158061119157508284828115156111bd57fe5b04145b151561119957fe5b8091505b50929150505600a165627a7a723058209651feccf0f562624e1377e02235995cfd2669aeceb3727c972a32b37748ad980029
Deployed Bytecode
0x6060604052361561015c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302072579811461015e57806306fdde0314610182578063095ea7b314610212578063179381d81461024557806318160ddd1461026357806323b872dd14610285578063313ce567146102be57806338cf2087146102e05780633a6a2a69146103045780633c1e60a61461031657806340c10f191461033a57806342966c681461035b578063490377a71461038257806370a08231146103a05780638da5cb5b146103ce5780638f770ad0146103fa57806395d89b411461041c57806397bb0de0146104ac578063990f412f146104c1578063a9059cbb146104df578063b414d4b614610512578063dd62ed3e14610542578063e58cd3cb14610576578063e724529c1461058b578063e9c9db5c146105ae578063f2fde38b146105da578063f85cd33e146105f8575bfe5b341561016657fe5b61016e610624565b604080519115158252519081900360200190f35b341561018a57fe5b610192610646565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021a57fe5b61016e600160a060020a03600435166024356106d3565b604080519115158252519081900360200190f35b341561024d57fe5b610261600160a060020a03600435166107a1565b005b341561026b57fe5b610273610839565b60408051918252519081900360200190f35b341561028d57fe5b61016e600160a060020a036004358116906024351660443561083f565b604080519115158252519081900360200190f35b34156102c657fe5b6102736109a0565b60408051918252519081900360200190f35b34156102e857fe5b61016e6109a6565b604080519115158252519081900360200190f35b341561030c57fe5b6102616109e3565b005b341561031e57fe5b61016e610a27565b604080519115158252519081900360200190f35b341561034257fe5b610261600160a060020a0360043516602435610a37565b005b341561036357fe5b61016e600435610ba3565b604080519115158252519081900360200190f35b341561038a57fe5b610261600160a060020a0360043516610cfb565b005b34156103a857fe5b610273600160a060020a0360043516610d7a565b60408051918252519081900360200190f35b34156103d657fe5b6103de610d99565b60408051600160a060020a039092168252519081900360200190f35b341561040257fe5b610273610da8565b60408051918252519081900360200190f35b341561042457fe5b610192610dae565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b457fe5b610261600435610e39565b005b34156104c957fe5b610261600160a060020a0360043516610eaa565b005b34156104e757fe5b61016e600160a060020a0360043516602435610f07565b604080519115158252519081900360200190f35b341561051a57fe5b61016e600160a060020a0360043516610fe2565b604080519115158252519081900360200190f35b341561054a57fe5b610273600160a060020a0360043581169060243516610ff7565b60408051918252519081900360200190f35b341561057e57fe5b610261600435611024565b005b341561059357fe5b610261600160a060020a0360043516602435151561107c565b005b34156105b657fe5b6103de6110fe565b60408051600160a060020a039092168252519081900360200190f35b34156105e257fe5b610261600160a060020a036004351661110d565b005b341561060057fe5b6103de611156565b60408051600160a060020a039092168252519081900360200190f35b6007547501000000000000000000000000000000000000000000900460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b600160a060020a0333166000908152600a602052604081205460ff16156106fa5760006000fd5b811580159061072d5750600160a060020a0333811660009081526009602090815260408083209387168352929052205415155b1561073a5750600061079b565b600160a060020a03338116600081815260096020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005433600160a060020a039081169116146107bd5760006000fd5b600160a060020a03811615156107d35760006000fd5b60068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556007805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790555b5b50565b60045481565b600160a060020a0383166000908152600a602052604081205460ff16156108665760006000fd5b600160a060020a03808516600090815260096020908152604080832033909416835292905220548290101561089d57506000610999565b600160a060020a03808516600090815260096020908152604080832033909416835292905220546108ce9083611165565b600160a060020a03808616600081815260096020908152604080832033909516835293815283822094909455908152600890925290205461090f9083611165565b600160a060020a03808616600090815260086020526040808220939093559085168152205461093e908361117c565b600160a060020a0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b9392505050565b60035481565b60075460009060a060020a900460ff1680156109dd57506007547501000000000000000000000000000000000000000000900460ff165b90505b90565b60005433600160a060020a039081169116146109ff5760006000fd5b600b805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60075460a060020a900460ff1681565b60065460009033600160a060020a0390811691161480610a65575060005433600160a060020a039081169116145b1515610a715760006000fd5b600160a060020a0383161515610a875760006000fd5b610a9682600354600a0a6111a4565b90506000600554118015610aaa5750600081115b8015610ac35750600554610ac06004548361117c565b11155b1515610acb57fe5b600160a060020a038316600090815260086020526040902054610aee908261117c565b600160a060020a038416600090815260086020526040902055600454610b14908261117c565b60045560408051600160a060020a03851681526020810183905281517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885929181900390910190a1604080518281529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35b5b505050565b600160a060020a033316600090815260086020526040812054821115610bcb57506000610cf6565b600160a060020a033316600090815260086020526040902054610bee9083611165565b600160a060020a033316600090815260086020526040902055600454610c149083611165565b6004908155600b54604080516000602091820181905282517f9dc29fac000000000000000000000000000000000000000000000000000000008152600160a060020a03338116968201969096526024810188905292519490931693639dc29fac936044808501948390030190829087803b1515610c8d57fe5b6102c65a03f11515610c9b57fe5b505060405151915050801515610cb15760006000fd5b60408051600160a060020a03331681526020810184905281517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5929181900390910190a15b919050565b60005433600160a060020a03908116911614610d175760006000fd5b600160a060020a0381161515610d2d5760006000fd5b6007805460a060020a73ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a0384161774ff000000000000000000000000000000000000000019161790555b5b50565b600160a060020a0381166000908152600860205260409020545b919050565b600054600160a060020a031681565b60055481565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b60065433600160a060020a0390811691161480610e64575060005433600160a060020a039081169116145b1515610e705760006000fd5b60008111610e7a57fe5b60075460a060020a900460ff161515610e8f57fe5b60075461083590600160a060020a031682610a37565b5b5b50565b60005433600160a060020a03908116911614610ec65760006000fd5b600b5460a060020a900460ff1615610eda57fe5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0333166000908152600a602052604081205460ff1615610f2e5760006000fd5b600160a060020a033316600090815260086020526040902054610f519083611165565b600160a060020a033381166000908152600860205260408082209390935590851681522054610f80908361117c565b600160a060020a038085166000818152600860209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600a6020526000908152604090205460ff1681565b600160a060020a038083166000908152600960209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116148061104f575060005433600160a060020a039081169116145b151561105b5760006000fd5b6000811161106557fe5b61107481600354600a0a6111a4565b6005555b5b50565b60005433600160a060020a039081169116146110985760006000fd5b600160a060020a0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15b5b5050565b600654600160a060020a031681565b60005433600160a060020a039081169116146111295760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600754600160a060020a031681565b60008282111561117157fe5b508082035b92915050565b60008282018381108015906111915750828110155b151561119957fe5b8091505b5092915050565b600082820283158061119157508284828115156111bd57fe5b04145b151561119957fe5b8091505b50929150505600a165627a7a723058209651feccf0f562624e1377e02235995cfd2669aeceb3727c972a32b37748ad980029
Swarm Source
bzzr://9651feccf0f562624e1377e02235995cfd2669aeceb3727c972a32b37748ad98
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)