ETH Price: $2,177.84 (+3.59%)
Gas: 0.04 Gwei

Token

FogCoin (FOG)
 

Overview

Max Total Supply

1,500,000,000 FOG

Holders

99

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
FogCoin

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 2 of 6: FogCoin.sol
pragma solidity ^0.5.0;

import "./ERC20Detailed.sol";
import "./MinterRole.sol";
import "./SafeMath.sol";

/**
 * @title FogCoin
 * @dev FogCoin!
 */
contract FogCoin is IERC20, ERC20Detailed, MinterRole {
    using SafeMath for uint256;
    uint8 private constant DECIMALS = 18;
    string private constant TOKEN_NAME = "FogCoin";
    string private constant TOKEN_SYMBOL = "FOG";
    uint256 private constant MAX_SUPPLY = 1500000000 * (10 ** uint256(DECIMALS));

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    /**
     * @dev Constructor. Mints all tokens to msg.sender
     */
    constructor () public ERC20Detailed(TOKEN_NAME, TOKEN_SYMBOL, DECIMALS) {
        _mint(msg.sender, MAX_SUPPLY);
    }
    
    
    function updateCirculation(address[] memory outOfCirculationAddresses, uint8 numAddresses) public onlyMinter returns (bool) {
        uint256 tokensOutOfCirculation = 0;
        for(uint256 i=0; i<numAddresses; i++){
            tokensOutOfCirculation += balanceOf(outOfCirculationAddresses[i]);
        }
        uint256 tokensInCirculation = MAX_SUPPLY - tokensOutOfCirculation;
        _setTotalSupply(tokensInCirculation);
        return true;
    }


    /**
     * @dev Total number of tokens in existence.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param owner The address to query the balance of.
     * @return A uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev Transfer token to a specified address.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * It is suggested that one first change the allowance to 0 before updating to a new value, or use
     * the 'increaseAllowance' & 'decreaseAllowance' functions.
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another. Emits an Approval event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowances[from][msg.sender].sub(value));
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender. Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender. Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Transfer token for a specified addresses.
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function _transfer(address from, address to, uint256 value) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(value);
        
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Update Circulating Supply
     * @param totalInCirculation the total quantity of FogCoin in circulation
     */
     function _setTotalSupply(uint256 totalInCirculation) internal {
         _totalSupply = totalInCirculation;
     }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Approve an address to spend another addresses' tokens.
     * @param owner The address that owns the tokens.
     * @param spender The address that will spend the tokens.
     * @param value The number of tokens that can be spent.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _burn(account, value);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(value));
    }
}

File 1 of 6: ERC20Detailed.sol
pragma solidity ^0.5.0;

import "./IERC20.sol";

/**
 * @title FogCoin Token Properties
 * @dev FogCoin Token Properties
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

File 3 of 6: IERC20.sol
pragma solidity ^0.5.0;

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 6: MinterRole.sol
pragma solidity ^0.5.0;

import "./Roles.sol";

contract MinterRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender), "MinterRole: caller does not have the Minter role");
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

File 5 of 6: Roles.sol
pragma solidity ^0.5.0;

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * @dev Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

File 6 of 6: SafeMath.sol
pragma solidity ^0.5.0;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error. Credit: OpenZeppelin
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","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":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"outOfCirculationAddresses","type":"address[]"},{"name":"numAddresses","type":"uint8"}],"name":"updateCirculation","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","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"}]

60806040523480156200001157600080fd5b50604080518082018252600781527f466f67436f696e0000000000000000000000000000000000000000000000000060208083019182528351808501909452600384527f464f47000000000000000000000000000000000000000000000000000000000090840152815191929160129162000090916000919062000451565b508151620000a690600190602085019062000451565b506002805460ff191660ff9290921691909117905550620000d2905033640100000000620000f9810204565b620000f3336b04d8c55aefb8c05b5c0000006401000000006200014b810204565b620004f6565b6200011460038264010000000062000db26200026e82021704565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600160a060020a0382161515620001c357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600654620001e0908264010000000062000c116200031582021704565b600655600160a060020a03821660009081526004602052604090205462000216908264010000000062000c116200031582021704565b600160a060020a03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b62000283828264010000000062000391810204565b15620002f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000828201838110156200038a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000600160a060020a03821615156200043157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200049457805160ff1916838001178555620004c4565b82800160010185558215620004c4579182015b82811115620004c4578251825591602001919060010190620004a7565b50620004d2929150620004d6565b5090565b620004f391905b80821115620004d25760008155600101620004dd565b90565b610f0a80620005066000396000f3fe6080604052600436106100d4577c0100000000000000000000000000000000000000000000000000000000600035046306fdde0381146100d9578063095ea7b31461016357806318160ddd146101b057806323b872dd146101d7578063313ce5671461021a578063395093511461024557806370a082311461027e57806395d89b41146102b1578063983b2d56146102c657806398650275146102fb578063a457c2d714610310578063a9059cbb14610349578063aa271e1a14610382578063ad50301d146103b5578063dd62ed3e1461046a575b600080fd5b3480156100e557600080fd5b506100ee6104a5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610128578181015183820152602001610110565b50505050905090810190601f1680156101555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016f57600080fd5b5061019c6004803603604081101561018657600080fd5b50600160a060020a03813516906020013561053b565b604080519115158252519081900360200190f35b3480156101bc57600080fd5b506101c5610551565b60408051918252519081900360200190f35b3480156101e357600080fd5b5061019c600480360360608110156101fa57600080fd5b50600160a060020a03813581169160208101359091169060400135610557565b34801561022657600080fd5b5061022f6105ae565b6040805160ff9092168252519081900360200190f35b34801561025157600080fd5b5061019c6004803603604081101561026857600080fd5b50600160a060020a0381351690602001356105b7565b34801561028a57600080fd5b506101c5600480360360208110156102a157600080fd5b5035600160a060020a03166105f3565b3480156102bd57600080fd5b506100ee61060e565b3480156102d257600080fd5b506102f9600480360360208110156102e957600080fd5b5035600160a060020a031661066e565b005b34801561030757600080fd5b506102f96106ff565b34801561031c57600080fd5b5061019c6004803603604081101561033357600080fd5b50600160a060020a03813516906020013561070a565b34801561035557600080fd5b5061019c6004803603604081101561036c57600080fd5b50600160a060020a038135169060200135610746565b34801561038e57600080fd5b5061019c600480360360208110156103a557600080fd5b5035600160a060020a0316610753565b3480156103c157600080fd5b5061019c600480360360408110156103d857600080fd5b8101906020810181356401000000008111156103f357600080fd5b82018360208201111561040557600080fd5b8035906020019184602083028401116401000000008311171561042757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050903560ff16915061076c9050565b34801561047657600080fd5b506101c56004803603604081101561048d57600080fd5b50600160a060020a0381358116916020013516610853565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105315780601f1061050657610100808354040283529160200191610531565b820191906000526020600020905b81548152906001019060200180831161051457829003601f168201915b5050505050905090565b600061054833848461087e565b50600192915050565b60065490565b60006105648484846109eb565b600160a060020a0384166000908152600560209081526040808320338085529252909120546105a491869161059f908663ffffffff610bb116565b61087e565b5060019392505050565b60025460ff1690565b336000818152600560209081526040808320600160a060020a0387168452909152812054909161054891859061059f908663ffffffff610c1116565b600160a060020a031660009081526004602052604090205490565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105315780601f1061050657610100808354040283529160200191610531565b61067733610753565b15156106f3576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b6106fc81610c75565b50565b61070833610cbd565b565b336000818152600560209081526040808320600160a060020a0387168452909152812054909161054891859061059f908663ffffffff610bb116565b60006105483384846109eb565b600061076660038363ffffffff610d0516565b92915050565b600061077733610753565b15156107f3576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b6000805b8360ff1681101561082e57610822858281518110151561081357fe5b906020019060200201516105f3565b909101906001016107f7565b506b04d8c55aefb8c05b5c00000081900361084881610dad565b506001949350505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600160a060020a0383161515610903576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610989576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a0383161515610a71576040805160e560020a62461bcd02815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610af7576040805160e560020a62461bcd02815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260046020526040902054610b20908263ffffffff610bb116565b600160a060020a038085166000908152600460205260408082209390935590841681522054610b55908263ffffffff610c1116565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610c0b576040805160e560020a62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610c6e576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610c8660038263ffffffff610db216565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610cce60038263ffffffff610e3616565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a0382161515610d8d576040805160e560020a62461bcd02815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600655565b610dbc8282610d05565b15610e11576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b610e408282610d05565b1515610ebc576040805160e560020a62461bcd02815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0316600090815260209190915260409020805460ff1916905556fea165627a7a72305820811038118266180d4422736a781a23ca45ad39a8a392ae65f271ad0c5e8363c60029

Deployed Bytecode

0x6080604052600436106100d4577c0100000000000000000000000000000000000000000000000000000000600035046306fdde0381146100d9578063095ea7b31461016357806318160ddd146101b057806323b872dd146101d7578063313ce5671461021a578063395093511461024557806370a082311461027e57806395d89b41146102b1578063983b2d56146102c657806398650275146102fb578063a457c2d714610310578063a9059cbb14610349578063aa271e1a14610382578063ad50301d146103b5578063dd62ed3e1461046a575b600080fd5b3480156100e557600080fd5b506100ee6104a5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610128578181015183820152602001610110565b50505050905090810190601f1680156101555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016f57600080fd5b5061019c6004803603604081101561018657600080fd5b50600160a060020a03813516906020013561053b565b604080519115158252519081900360200190f35b3480156101bc57600080fd5b506101c5610551565b60408051918252519081900360200190f35b3480156101e357600080fd5b5061019c600480360360608110156101fa57600080fd5b50600160a060020a03813581169160208101359091169060400135610557565b34801561022657600080fd5b5061022f6105ae565b6040805160ff9092168252519081900360200190f35b34801561025157600080fd5b5061019c6004803603604081101561026857600080fd5b50600160a060020a0381351690602001356105b7565b34801561028a57600080fd5b506101c5600480360360208110156102a157600080fd5b5035600160a060020a03166105f3565b3480156102bd57600080fd5b506100ee61060e565b3480156102d257600080fd5b506102f9600480360360208110156102e957600080fd5b5035600160a060020a031661066e565b005b34801561030757600080fd5b506102f96106ff565b34801561031c57600080fd5b5061019c6004803603604081101561033357600080fd5b50600160a060020a03813516906020013561070a565b34801561035557600080fd5b5061019c6004803603604081101561036c57600080fd5b50600160a060020a038135169060200135610746565b34801561038e57600080fd5b5061019c600480360360208110156103a557600080fd5b5035600160a060020a0316610753565b3480156103c157600080fd5b5061019c600480360360408110156103d857600080fd5b8101906020810181356401000000008111156103f357600080fd5b82018360208201111561040557600080fd5b8035906020019184602083028401116401000000008311171561042757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050903560ff16915061076c9050565b34801561047657600080fd5b506101c56004803603604081101561048d57600080fd5b50600160a060020a0381358116916020013516610853565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105315780601f1061050657610100808354040283529160200191610531565b820191906000526020600020905b81548152906001019060200180831161051457829003601f168201915b5050505050905090565b600061054833848461087e565b50600192915050565b60065490565b60006105648484846109eb565b600160a060020a0384166000908152600560209081526040808320338085529252909120546105a491869161059f908663ffffffff610bb116565b61087e565b5060019392505050565b60025460ff1690565b336000818152600560209081526040808320600160a060020a0387168452909152812054909161054891859061059f908663ffffffff610c1116565b600160a060020a031660009081526004602052604090205490565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105315780601f1061050657610100808354040283529160200191610531565b61067733610753565b15156106f3576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b6106fc81610c75565b50565b61070833610cbd565b565b336000818152600560209081526040808320600160a060020a0387168452909152812054909161054891859061059f908663ffffffff610bb116565b60006105483384846109eb565b600061076660038363ffffffff610d0516565b92915050565b600061077733610753565b15156107f3576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b6000805b8360ff1681101561082e57610822858281518110151561081357fe5b906020019060200201516105f3565b909101906001016107f7565b506b04d8c55aefb8c05b5c00000081900361084881610dad565b506001949350505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600160a060020a0383161515610903576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610989576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a0383161515610a71576040805160e560020a62461bcd02815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610af7576040805160e560020a62461bcd02815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260046020526040902054610b20908263ffffffff610bb116565b600160a060020a038085166000908152600460205260408082209390935590841681522054610b55908263ffffffff610c1116565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610c0b576040805160e560020a62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610c6e576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610c8660038263ffffffff610db216565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610cce60038263ffffffff610e3616565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a0382161515610d8d576040805160e560020a62461bcd02815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600655565b610dbc8282610d05565b15610e11576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b610e408282610d05565b1515610ebc576040805160e560020a62461bcd02815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0316600090815260209190915260409020805460ff1916905556fea165627a7a72305820811038118266180d4422736a781a23ca45ad39a8a392ae65f271ad0c5e8363c60029

Deployed Bytecode Sourcemap

151:7615:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;471:81:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;471:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;471:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:145:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:145:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2946:145:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1364:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1364:89:1;;;:::i;:::-;;;;;;;;;;;;;;;;3403:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3403:227:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3403:227:1;;;;;;;;;;;;;;;;;:::i;773:81:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;773:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3893:203:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3893:203:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3893:203:1;;;;;;;;:::i;1665:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1665:104:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1665:104:1;-1:-1:-1;;;;;1665:104:1;;:::i;614:85:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;614:85:0;;;:::i;559:90:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;559:90:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;559:90:3;-1:-1:-1;;;;;559:90:3;;:::i;:::-;;655:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;655:75:3;;;:::i;4364:213:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4364:213:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4364:213:1;;;;;;;;:::i;2400:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2400:137:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2400:137:1;;;;;;;;:::i;446:107:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;446:107:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;446:107:3;-1:-1:-1;;;;;446:107:3;;:::i;839:453:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;839:453:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;839:453:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;839:453:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;839:453:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;839:453:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;839:453:1;;-1:-1:-1;;;839:453:1;;;;;-1:-1:-1;839:453:1;;-1:-1:-1;839:453:1:i;2100:132::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2100:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2100:132:1;;;;;;;;;;:::i;471:81:0:-;540:5;533:12;;;;;;;;-1:-1:-1;;533:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;508:13;;533:12;;540:5;;533:12;;540:5;533:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;471:81;:::o;2946:145:1:-;3011:4;3027:36;3036:10;3048:7;3057:5;3027:8;:36::i;:::-;-1:-1:-1;3080:4:1;2946:145;;;;:::o;1364:89::-;1434:12;;1364:89;:::o;3403:227::-;3482:4;3498:26;3508:4;3514:2;3518:5;3498:9;:26::i;:::-;-1:-1:-1;;;;;3561:17:1;;;;;;:11;:17;;;;;;;;3549:10;3561:29;;;;;;;;;3534:68;;3543:4;;3561:40;;3595:5;3561:40;:33;:40;:::i;:::-;3534:8;:68::i;:::-;-1:-1:-1;3619:4:1;3403:227;;;;;:::o;773:81:0:-;838:9;;;;773:81;:::o;3893:203:1:-;3998:10;3973:4;4019:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4019:32:1;;;;;;;;;;3973:4;;3989:79;;4010:7;;4019:48;;4056:10;4019:48;:36;:48;:::i;1665:104::-;-1:-1:-1;;;;;1746:16:1;1720:7;1746:16;;;:9;:16;;;;;;;1665:104::o;614:85:0:-;685:7;678:14;;;;;;;;-1:-1:-1;;678:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:13;;678:14;;685:7;;678:14;;685:7;678:14;;;;;;;;;;;;;;;;;;;;;;;;559:90:3;349:20;358:10;349:8;:20::i;:::-;341:81;;;;;;;-1:-1:-1;;;;;341:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;623:19;634:7;623:10;:19::i;:::-;559:90;:::o;655:75::-;698:25;712:10;698:13;:25::i;:::-;655:75::o;4364:213:1:-;4474:10;4449:4;4495:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4495:32:1;;;;;;;;;;4449:4;;4465:84;;4486:7;;4495:53;;4532:15;4495:53;:36;:53;:::i;2400:137::-;2461:4;2477:32;2487:10;2499:2;2503:5;2477:9;:32::i;446:107:3:-;502:4;525:21;:8;538:7;525:21;:12;:21;:::i;:::-;518:28;446:107;-1:-1:-1;;446:107:3:o;839:453:1:-;957:4;349:20:3;358:10;349:8;:20::i;:::-;341:81;;;;;;;-1:-1:-1;;;;;341:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:30:1;;1017:127;1036:12;1034:14;;:1;:14;1017:127;;;1094:39;1104:25;1130:1;1104:28;;;;;;;;;;;;;;;;;;1094:9;:39::i;:::-;1068:65;;;;1050:3;;1017:127;;;-1:-1:-1;425:38:1;1183:35;;;1228:36;1183:35;1228:15;:36::i;:::-;-1:-1:-1;1281:4:1;;839:453;-1:-1:-1;;;;839:453:1:o;2100:132::-;-1:-1:-1;;;;;2198:18:1;;;2172:7;2198:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2100:132::o;6864:329::-;-1:-1:-1;;;;;6956:19:1;;;;6948:68;;;;;-1:-1:-1;;;;;6948:68:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7034:21:1;;;;7026:68;;;;;-1:-1:-1;;;;;7026:68:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7105:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7155:31;;;;;;;;;;;;;;;;;6864:329;;;:::o;4797:373::-;-1:-1:-1;;;;;4884:18:1;;;;4876:68;;;;;-1:-1:-1;;;;;4876:68:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4962:16:1;;;;4954:64;;;;;-1:-1:-1;;;;;4954:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5047:15:1;;;;;;:9;:15;;;;;;:26;;5067:5;5047:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5029:15:1;;;;;;;:9;:15;;;;;;:44;;;;5099:13;;;;;;;:24;;5117:5;5099:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5083:13:1;;;;;;;:9;:13;;;;;;;;;:40;;;;5138:25;;;;;;;5083:13;;5138:25;;;;;;;;;;;;;4797:373;;;:::o;1300:179:5:-;1358:7;1385:6;;;;1377:49;;;;;-1:-1:-1;;;;;1377:49:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1448:5:5;;;1300:179::o;1562:176::-;1620:7;1651:5;;;1674:6;;;;1666:46;;;;;-1:-1:-1;;;;;1666:46:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:1;1562:176;-1:-1:-1;;;1562:176:5:o;736:119:3:-;792:21;:8;805:7;792:21;:12;:21;:::i;:::-;828:20;;-1:-1:-1;;;;;828:20:3;;;;;;;;736:119;:::o;861:127::-;920:24;:8;936:7;920:24;:15;:24;:::i;:::-;959:22;;-1:-1:-1;;;;;959:22:3;;;;;;;;861:127;:::o;779:200:4:-;851:4;-1:-1:-1;;;;;875:21:4;;;;867:68;;;;;-1:-1:-1;;;;;867:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:4;:11;:20;;;;;;;;;;;;;;;779:200::o;5959:114:1:-;6032:12;:33;5959:114::o;260:175:4:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;;;328:63:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:4;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:4;424:4;401:27;;;260:175::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;;;;-1:-1:-1;;;;;581:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:4;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:4;;;510:180::o

Swarm Source

bzzr://811038118266180d4422736a781a23ca45ad39a8a392ae65f271ad0c5e8363c6
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.