ETH Price: $3,888.42 (-0.98%)

Token

Micro Payment Shield (VFD)
 

Overview

Max Total Supply

65,000,000 VFD

Holders

960

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
139.056805 VFD

Value
$0.00
0x1b798af891e3ac12170b91b3540a21132c4b7d0c
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

VFD is a decentralized micro-asset transmission network used to solve the asset conversion and trust issues between financial institutions and users.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
VFDToken

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-06-27
*/

pragma solidity 0.5.8;

/**
 * @title SafeMath 
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {
    /**
     * @dev Multiplie two unsigned integers, revert 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);

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, revert 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);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtract two unsigned integers, revert on underflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Add two unsigned integers, revert on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }
}

/**
 * @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); 
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address internal _owner; 

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); 

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Revert if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "The caller must be owner");
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allow the current owner to relinquish control of the contract.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     * @notice Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allow the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner); 
    }

    /**
     * @dev Transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Cannot transfer control of the contract to the zero address");
        emit OwnershipTransferred(_owner, newOwner); 
        _owner = newOwner; 
    }
}

/**
 * @title Standard ERC20 token
 * @dev Implementation of the basic standard token.
 */
contract StandardToken is IERC20 {
    using SafeMath for uint256; 
    
    mapping (address => uint256) internal _balances; 
    mapping (address => mapping (address => uint256)) internal _allowed; 
    
    uint256 internal _totalSupply; 
    
    /**
     * @dev Total number of tokens in existence.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply; 
    }

    /**
     * @dev Get 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 The address which owns the funds.
     * @param spender 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 _allowed[owner][spender];
    }

    /**
     * @dev Transfer tokens 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.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @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.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from The address which you want to send tokens from.
     * @param to The address which you want to transfer to.
     * @param value 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, _allowed[from][msg.sender].sub(value)); 
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * 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, _allowed[msg.sender][spender].add(addedValue)); 
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * 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, _allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Transfer tokens for a specified address.
     * @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(to != address(0), "Cannot transfer to the zero address"); 
        _balances[from] = _balances[from].sub(value); 
        _balances[to] = _balances[to].add(value); 
        emit Transfer(from, to, 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(spender != address(0), "Cannot approve to the zero address"); 
        require(owner != address(0), "Setter cannot be the zero address"); 
	    _allowed[owner][spender] = value;
        emit Approval(owner, spender, value); 
    }

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause(); 
    event Unpause(); 
    
    bool public paused = false; 
    


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused, "Only when the contract is not paused"); 
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused, "Only when the contract is paused"); 
        _;
    }

    /**
     * @dev Called by the owner to pause, trigger stopped state.
     */
    function pause() public onlyOwner whenNotPaused {
        paused = true; 
        emit Pause(); 
    }

    /**
     * @dev Called by the owner to unpause, return to normal state.
     */
    function unpause() public onlyOwner whenPaused {
        paused = false; 
        emit Unpause(); 
    }
}

/**
 * @title PausableToken
 * @dev ERC20 modified with pausable transfers.
 */
contract PausableToken is StandardToken, Pausable {
    
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transfer(_to, _value); 
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transferFrom(_from, _to, _value); 
    }
    
    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        return super.approve(_spender, _value); 
    }
    
    function increaseAllowance(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
        return super.increaseAllowance(_spender, _addedValue); 
    }
    
    function decreaseAllowance(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseAllowance(_spender, _subtractedValue); 
    }
}

/**
 * @title BurnableToken
 * @dev Implement the function of ERC20 token burning.
 */
contract BurnableToken is StandardToken {

    /**
    * @dev Burn a specific amount of tokens.
    * @param _value The amount of token to be burned.
    */
    function burn(uint256 _value) public {
        _burn(msg.sender, _value);
    }

    /**
    * @dev Burn a specific amount of tokens from the target address and decrements allowance
    * @param _from address The address which you want to send tokens from
    * @param _value uint256 The amount of token to be burned
    */
    function burnFrom(address _from, uint256 _value) public {
        _approve(_from, msg.sender, _allowed[_from][msg.sender].sub(_value));
        _burn(_from, _value);
    }

    function _burn(address _who, uint256 _value) internal {
        require(_value <= _balances[_who], "Not enough token balance");
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure
        _balances[_who] = _balances[_who].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Transfer(_who, address(0), _value);
    }
}

contract VFDToken is BurnableToken, PausableToken {
    string public constant name = "Micro Payment Shield";  
    string public constant symbol = "VFD";  
    uint8 public constant decimals = 18;
    uint256 internal constant INIT_TOTALSUPPLY = 65000000; 
    
    /**
     * @dev Constructor, initialize the basic information of contract.
     */
    constructor() public {
        _owner = 0x2CcaFDD16aA603Bbc8026711dd2E838616c010c3;
        emit OwnershipTransferred(address(0), _owner);
        _totalSupply = INIT_TOTALSUPPLY * 10 ** uint256(decimals);
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }
}

Contract Security Audit

Contract ABI

[{"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"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":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","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"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

608060405260038054600160a01b60ff021916905534801561002057600080fd5b50600380546001600160a01b031916732ccafdd16aa603bbc8026711dd2e838616c010c317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36a35c4490f820855e10000006002819055600380546001600160a01b03908116600090815260208181526040808320869055935484519586529351939092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3610f69806100fd6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad57806395d89b411161007157806395d89b4114610345578063a457c2d71461034d578063a9059cbb14610379578063dd62ed3e146103a5578063f2fde38b146103d35761012c565b8063715018a6146102dd57806379cc6790146102e55780638456cb59146103115780638da5cb5b146103195780638f32d59b1461033d5761012c565b806339509351116100f4578063395093511461025c5780633f4ba83a1461028857806342966c68146102925780635c975abb146102af57806370a08231146102b75761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b6101396103f9565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b038135169060200135610432565b604080519115158252519081900360200190f35b6101f6610492565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b03813581169160208101359091169060400135610498565b6102466104fa565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561027257600080fd5b506001600160a01b0381351690602001356104ff565b610290610558565b005b610290600480360360208110156102a857600080fd5b503561063e565b6101da61064b565b6101f6600480360360208110156102cd57600080fd5b50356001600160a01b031661065b565b610290610676565b610290600480360360408110156102fb57600080fd5b506001600160a01b03813516906020013561070a565b610290610758565b61032161082f565b604080516001600160a01b039092168252519081900360200190f35b6101da61083e565b61013961084f565b6101da6004803603604081101561036357600080fd5b506001600160a01b038135169060200135610871565b6101da6004803603604081101561038f57600080fd5b506001600160a01b0381351690602001356108ca565b6101f6600480360360408110156103bb57600080fd5b506001600160a01b0381358116916020013516610923565b610290600480360360208110156103e957600080fd5b50356001600160a01b031661094e565b6040518060400160405280601481526020017f4d6963726f205061796d656e7420536869656c6400000000000000000000000081525081565b600354600090600160a01b900460ff161561048157604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b83836109a1565b9392505050565b60025490565b600354600090600160a01b900460ff16156104e757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b6104f28484846109b7565b949350505050565b601281565b600354600090600160a01b900460ff161561054e57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b8383610a09565b61056061083e565b6105a25760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b600354600160a01b900460ff166106035760408051600160e51b62461bcd02815260206004820181905260248201527f4f6e6c79207768656e2074686520636f6e747261637420697320706175736564604482015290519081900360640190fd5b60038054600160a01b60ff02191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6106483382610a45565b50565b600354600160a01b900460ff1681565b6001600160a01b031660009081526020819052604090205490565b61067e61083e565b6106c05760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b6001600160a01b03821660009081526001602090815260408083203380855292529091205461074a918491610745908563ffffffff610b5216565b610b67565b6107548282610a45565b5050565b61076061083e565b6107a25760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b600354600160a01b900460ff16156107ee57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b60038054600160a01b60ff021916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b604051806040016040528060038152602001600160ea1b621591910281525081565b600354600090600160a01b900460ff16156108c057604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b8383610c59565b600354600090600160a01b900460ff161561091957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b8383610c95565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61095661083e565b6109985760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b61064881610ca2565b60006109ae338484610b67565b50600192915050565b60006109c4848484610d46565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546109ff918691610745908663ffffffff610b5216565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109ae918590610745908663ffffffff610e4616565b6001600160a01b038216600090815260208190526040902054811115610ab55760408051600160e51b62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63650000000000000000604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054610ade908263ffffffff610b5216565b6001600160a01b038316600090815260208190526040902055600254610b0a908263ffffffff610b5216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082821115610b6157600080fd5b50900390565b6001600160a01b038216610baf57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610e596022913960400191505060405180910390fd5b6001600160a01b038316610bf757604051600160e51b62461bcd028152600401808060200182810382526021815260200180610eb66021913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109ae918590610745908663ffffffff610b5216565b60006109ae338484610d46565b6001600160a01b038116610cea57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610e7b603b913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610d8e57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610ed76023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610db7908263ffffffff610b5216565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610dec908263ffffffff610e4616565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561048b57600080fdfe43616e6e6f7420617070726f766520746f20746865207a65726f206164647265737343616e6e6f74207472616e7366657220636f6e74726f6c206f662074686520636f6e747261637420746f20746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f206164647265737343616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573735468652063616c6c6572206d757374206265206f776e657200000000000000004f6e6c79207768656e2074686520636f6e7472616374206973206e6f7420706175736564a165627a7a72305820cd4239ede2f3f562001165dd67942f712953c577bc3fff5cf8ae04d15708e1cb0029

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad57806395d89b411161007157806395d89b4114610345578063a457c2d71461034d578063a9059cbb14610379578063dd62ed3e146103a5578063f2fde38b146103d35761012c565b8063715018a6146102dd57806379cc6790146102e55780638456cb59146103115780638da5cb5b146103195780638f32d59b1461033d5761012c565b806339509351116100f4578063395093511461025c5780633f4ba83a1461028857806342966c68146102925780635c975abb146102af57806370a08231146102b75761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b6101396103f9565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b038135169060200135610432565b604080519115158252519081900360200190f35b6101f6610492565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b03813581169160208101359091169060400135610498565b6102466104fa565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561027257600080fd5b506001600160a01b0381351690602001356104ff565b610290610558565b005b610290600480360360208110156102a857600080fd5b503561063e565b6101da61064b565b6101f6600480360360208110156102cd57600080fd5b50356001600160a01b031661065b565b610290610676565b610290600480360360408110156102fb57600080fd5b506001600160a01b03813516906020013561070a565b610290610758565b61032161082f565b604080516001600160a01b039092168252519081900360200190f35b6101da61083e565b61013961084f565b6101da6004803603604081101561036357600080fd5b506001600160a01b038135169060200135610871565b6101da6004803603604081101561038f57600080fd5b506001600160a01b0381351690602001356108ca565b6101f6600480360360408110156103bb57600080fd5b506001600160a01b0381358116916020013516610923565b610290600480360360208110156103e957600080fd5b50356001600160a01b031661094e565b6040518060400160405280601481526020017f4d6963726f205061796d656e7420536869656c6400000000000000000000000081525081565b600354600090600160a01b900460ff161561048157604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b83836109a1565b9392505050565b60025490565b600354600090600160a01b900460ff16156104e757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b6104f28484846109b7565b949350505050565b601281565b600354600090600160a01b900460ff161561054e57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b8383610a09565b61056061083e565b6105a25760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b600354600160a01b900460ff166106035760408051600160e51b62461bcd02815260206004820181905260248201527f4f6e6c79207768656e2074686520636f6e747261637420697320706175736564604482015290519081900360640190fd5b60038054600160a01b60ff02191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6106483382610a45565b50565b600354600160a01b900460ff1681565b6001600160a01b031660009081526020819052604090205490565b61067e61083e565b6106c05760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b6001600160a01b03821660009081526001602090815260408083203380855292529091205461074a918491610745908563ffffffff610b5216565b610b67565b6107548282610a45565b5050565b61076061083e565b6107a25760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b600354600160a01b900460ff16156107ee57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b60038054600160a01b60ff021916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b604051806040016040528060038152602001600160ea1b621591910281525081565b600354600090600160a01b900460ff16156108c057604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b8383610c59565b600354600090600160a01b900460ff161561091957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610f1a6024913960400191505060405180910390fd5b61048b8383610c95565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61095661083e565b6109985760408051600160e51b62461bcd0281526020600482015260186024820152600080516020610efa833981519152604482015290519081900360640190fd5b61064881610ca2565b60006109ae338484610b67565b50600192915050565b60006109c4848484610d46565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546109ff918691610745908663ffffffff610b5216565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109ae918590610745908663ffffffff610e4616565b6001600160a01b038216600090815260208190526040902054811115610ab55760408051600160e51b62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63650000000000000000604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054610ade908263ffffffff610b5216565b6001600160a01b038316600090815260208190526040902055600254610b0a908263ffffffff610b5216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082821115610b6157600080fd5b50900390565b6001600160a01b038216610baf57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610e596022913960400191505060405180910390fd5b6001600160a01b038316610bf757604051600160e51b62461bcd028152600401808060200182810382526021815260200180610eb66021913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109ae918590610745908663ffffffff610b5216565b60006109ae338484610d46565b6001600160a01b038116610cea57604051600160e51b62461bcd02815260040180806020018281038252603b815260200180610e7b603b913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610d8e57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610ed76023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610db7908263ffffffff610b5216565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610dec908263ffffffff610e4616565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561048b57600080fdfe43616e6e6f7420617070726f766520746f20746865207a65726f206164647265737343616e6e6f74207472616e7366657220636f6e74726f6c206f662074686520636f6e747261637420746f20746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f206164647265737343616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573735468652063616c6c6572206d757374206265206f776e657200000000000000004f6e6c79207768656e2074686520636f6e7472616374206973206e6f7420706175736564a165627a7a72305820cd4239ede2f3f562001165dd67942f712953c577bc3fff5cf8ae04d15708e1cb0029

Deployed Bytecode Sourcemap

13522:682:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13522:682:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13579:52;;;:::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;13579:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11720:145:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4881:92;;;:::i;:::-;;;;;;;;;;;;;;;;11541:167;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11541:167:0;;;;;;;;;;;;;;;;;:::i;13686:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11877:180;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11877:180:0;;;;;;;;:::i;11131:107::-;;;:::i;:::-;;12524:81;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12524:81:0;;:::i;10361:26::-;;;:::i;5191:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5191:106:0;-1:-1:-1;;;;;5191:106:0;;:::i;3625:140::-;;;:::i;12861:174::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12861:174:0;;;;;;;;:::i;10931:105::-;;;:::i;2808:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2808:79:0;;;;;;;;;;;;;;3171:92;;;:::i;13640:37::-;;;:::i;12069:190::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12069:190:0;;;;;;;;:::i;11392:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11392:137:0;;;;;;;;:::i;5620:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5620:131:0;;;;;;;;;;:::i;3941:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3941:110:0;-1:-1:-1;;;;;3941:110:0;;:::i;13579:52::-;;;;;;;;;;;;;;;;;;;:::o;11720:145::-;10556:6;;11801:4;;-1:-1:-1;;;10556:6:0;;;;10555:7;10547:56;;;;-1:-1:-1;;;;;10547:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11825:31;11839:8;11849:6;11825:13;:31::i;:::-;11818:38;11720:145;-1:-1:-1;;;11720:145:0:o;4881:92::-;4952:12;;4881:92;:::o;11541:167::-;10556:6;;11637:4;;-1:-1:-1;;;10556:6:0;;;;10555:7;10547:56;;;;-1:-1:-1;;;;;10547:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11661:38;11680:5;11687:3;11692:6;11661:18;:38::i;:::-;11654:45;11541:167;-1:-1:-1;;;;11541:167:0:o;13686:35::-;13719:2;13686:35;:::o;11877:180::-;10556:6;;11970:12;;-1:-1:-1;;;10556:6:0;;;;10555:7;10547:56;;;;-1:-1:-1;;;;;10547:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12002:46;12026:8;12036:11;12002:23;:46::i;11131:107::-;3020:9;:7;:9::i;:::-;3012:46;;;;;-1:-1:-1;;;;;3012:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3012:46:0;;;;;;;;;;;;;;;10775:6;;-1:-1:-1;;;10775:6:0;;;;10767:51;;;;;-1:-1:-1;;;;;10767:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11189:6;:14;;-1:-1:-1;;;;;;11189:14:0;;;11220:9;;;;11198:5;;11220:9;11131:107::o;12524:81::-;12572:25;12578:10;12590:6;12572:5;:25::i;:::-;12524:81;:::o;10361:26::-;;;-1:-1:-1;;;10361:26:0;;;;;:::o;5191:106::-;-1:-1:-1;;;;;5273:16:0;5246:7;5273:16;;;;;;;;;;;;5191:106::o;3625:140::-;3020:9;:7;:9::i;:::-;3012:46;;;;;-1:-1:-1;;;;;3012:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3012:46:0;;;;;;;;;;;;;;;3708:6;;3687:40;;3724:1;;-1:-1:-1;;;;;3708:6:0;;3687:40;;3724:1;;3687:40;3738:6;:19;;-1:-1:-1;;;;;;3738:19:0;;;3625:140::o;12861:174::-;-1:-1:-1;;;;;12956:15:0;;;;;;:8;:15;;;;;;;;12944:10;12956:27;;;;;;;;;12928:68;;12937:5;;12956:39;;12988:6;12956:39;:31;:39;:::i;:::-;12928:8;:68::i;:::-;13007:20;13013:5;13020:6;13007:5;:20::i;:::-;12861:174;;:::o;10931:105::-;3020:9;:7;:9::i;:::-;3012:46;;;;;-1:-1:-1;;;;;3012:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3012:46:0;;;;;;;;;;;;;;;10556:6;;-1:-1:-1;;;10556:6:0;;;;10555:7;10547:56;;;;-1:-1:-1;;;;;10547:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10990:6;:13;;-1:-1:-1;;;;;;10990:13:0;-1:-1:-1;;;10990:13:0;;;11020:7;;;;10990:13;;11020:7;10931:105::o;2808:79::-;2873:6;;-1:-1:-1;;;;;2873:6:0;2808:79;:::o;3171:92::-;3249:6;;-1:-1:-1;;;;;3249:6:0;3235:10;:20;;3171:92::o;13640:37::-;;;;;;;;;;;;;;-1:-1:-1;;;;;13640:37:0;;;;:::o;12069:190::-;10556:6;;12167:12;;-1:-1:-1;;;10556:6:0;;;;10555:7;10547:56;;;;-1:-1:-1;;;;;10547:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:51;12223:8;12233:16;12199:23;:51::i;11392:137::-;10556:6;;11469:4;;-1:-1:-1;;;10556:6:0;;;;10555:7;10547:56;;;;-1:-1:-1;;;;;10547:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11493:27;11508:3;11513:6;11493:14;:27::i;5620:131::-;-1:-1:-1;;;;;5719:15:0;;;5692:7;5719:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;5620:131::o;3941:110::-;3020:9;:7;:9::i;:::-;3012:46;;;;;-1:-1:-1;;;;;3012:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3012:46:0;;;;;;;;;;;;;;;4014:28;4033:8;4014:18;:28::i;6714:149::-;6779:4;6796:36;6805:10;6817:7;6826:5;6796:8;:36::i;:::-;-1:-1:-1;6851:4:0;6714:149;;;;:::o;7315:230::-;7394:4;7411:26;7421:4;7427:2;7431:5;7411:9;:26::i;:::-;-1:-1:-1;;;;;7476:14:0;;;;;;:8;:14;;;;;;;;7464:10;7476:26;;;;;;;;;7449:65;;7458:4;;7476:37;;7507:5;7476:37;:30;:37;:::i;7449:65::-;-1:-1:-1;7533:4:0;7315:230;;;;;:::o;8071:204::-;8177:10;8151:4;8198:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;8198:29:0;;;;;;;;;;8151:4;;8168:76;;8189:7;;8198:45;;8232:10;8198:45;:33;:45;:::i;13043:472::-;-1:-1:-1;;;;;13126:15:0;;:9;:15;;;;;;;;;;;13116:25;;;13108:62;;;;;-1:-1:-1;;;;;13108:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13380:15:0;;:9;:15;;;;;;;;;;;:27;;13400:6;13380:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;13362:15:0;;:9;:15;;;;;;;;;;:45;13433:12;;:24;;13450:6;13433:24;:16;:24;:::i;:::-;13418:12;:39;13473:34;;;;;;;;13496:1;;-1:-1:-1;;;;;13473:34:0;;;;;;;;;;;;13043:472;;:::o;1247:150::-;1305:7;1338:1;1333;:6;;1325:15;;;;;;-1:-1:-1;1363:5:0;;;1247:150::o;9822:327::-;-1:-1:-1;;;;;9915:21:0;;9907:68;;;;-1:-1:-1;;;;;9907:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9995:19:0;;9987:65;;;;-1:-1:-1;;;;;9987:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10061:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;10109:31;;;;;;;;;;;;;;;;;9822:327;;;:::o;8806:213::-;8917:10;8891:4;8938:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;8938:29:0;;;;;;;;;;8891:4;;8908:81;;8929:7;;8938:50;;8972:15;8938:50;:33;:50;:::i;5927:140::-;5988:4;6005:32;6015:10;6027:2;6031:5;6005:9;:32::i;4200:252::-;-1:-1:-1;;;;;4274:22:0;;4266:94;;;;-1:-1:-1;;;;;4266:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4397:6;;4376:38;;-1:-1:-1;;;;;4376:38:0;;;;4397:6;;4376:38;;4397:6;;4376:38;4426:6;:17;;-1:-1:-1;;;;;;4426:17:0;-1:-1:-1;;;;;4426:17:0;;;;;;;;;;4200:252::o;9246:303::-;-1:-1:-1;;;;;9334:16:0;;9326:64;;;;-1:-1:-1;;;;;9326:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9420:15:0;;:9;:15;;;;;;;;;;;:26;;9440:5;9420:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;9402:15:0;;;:9;:15;;;;;;;;;;;:44;;;;9474:13;;;;;;;:24;;9492:5;9474:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;9458:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;9515:25;;;;;;;9458:13;;9515:25;;;;;;;;;;;;;9246:303;;;:::o;1483:150::-;1541:7;1573:5;;;1597:6;;;;1589:15;;;;

Swarm Source

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