APE Price: $1.28 (+7.92%)

Token

APEPUMP (APEPUMP)

Overview

Max Total Supply

92,545,000,000 APEPUMP

Holders

18,419

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,750,000 APEPUMP

Value
$0.00
0xa878e253651b88e57a29b156f3a41f1ba8d6441e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
APEPUMP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-10-20
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}



interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }


    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private  _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) public {
        _name = name_;
        _symbol = symbol_;
        _decimals =18;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual  returns (string memory) {
        return _symbol;
    }


    function decimals() public view virtual  returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
     

     
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */


    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }


    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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


    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


contract APEPUMP is ERC20 {
    using SafeMath for uint256;
    using Address for address;

    uint public constant MAX_SUPPLY = 210000000000 * 1 ether;
    uint public constant MINT_AMOUNT = 5000000 * 1 ether;

    mapping(address => bool) private hasMinted;
    address public immutable dev;
    constructor() ERC20("APEPUMP", "APEPUMP") {
        dev = msg.sender;
    }

    function mint() external {
        require(totalSupply() + MINT_AMOUNT <= MAX_SUPPLY, "Total supply exceeded");
        require(!hasMinted[msg.sender], "Address has already minted");
        require(msg.sender == tx.origin, "Contracts are not allowed to mint");
        hasMinted[msg.sender] = true;
        _mint(msg.sender, MINT_AMOUNT.mul(19).div(20));
        _mint(dev, MINT_AMOUNT.mul(1).div(20));
    }

   
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINT_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60a060405234801562000010575f80fd5b50604080518082018252600780825266041504550554d560cc1b602080840182905284518086019095529184529083015290600362000050838262000119565b5060046200005f828262000119565b50506005805460ff191660121790555033608052620001e1565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620000a257607f821691505b602082108103620000c157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000114575f81815260208120601f850160051c81016020861015620000ef5750805b601f850160051c820191505b818110156200011057828155600101620000fb565b5050505b505050565b81516001600160401b0381111562000135576200013562000079565b6200014d816200014684546200008d565b84620000c7565b602080601f83116001811462000183575f84156200016b5750858301515b5f19600386901b1c1916600185901b17855562000110565b5f85815260208120601f198616915b82811015620001b35788860151825594840194600190910190840162000192565b5085821015620001d157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051610d47620002015f395f81816101df015261049d0152610d475ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063395093511161009357806395d89b411161006357806395d89b4114610219578063a457c2d714610221578063a9059cbb14610234578063dd62ed3e14610247575f80fd5b8063395093511461018d5780635427789c146101a057806370a08231146101b257806391cca3db146101da575f80fd5b806318160ddd116100ce57806318160ddd1461013f57806323b872dd14610151578063313ce5671461016457806332cb6b0c14610179575f80fd5b806306fdde03146100f4578063095ea7b3146101125780631249c58b14610135575b5f80fd5b6100fc61027f565b6040516101099190610ae5565b60405180910390f35b610125610120366004610b4b565b61030f565b6040519015158152602001610109565b61013d610325565b005b6002545b604051908152602001610109565b61012561015f366004610b73565b6104d9565b60055460405160ff9091168152602001610109565b6101436c02a68bedbb190931f65000000081565b61012561019b366004610b4b565b610540565b6101436a0422ca8b0a00a42500000081565b6101436101c0366004610bac565b6001600160a01b03165f9081526020819052604090205490565b6102017f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610109565b6100fc610575565b61012561022f366004610b4b565b610584565b610125610242366004610b4b565b6105d1565b610143610255366004610bc5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461028e90610bf6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610bf6565b80156103055780601f106102dc57610100808354040283529160200191610305565b820191905f5260205f20905b8154815290600101906020018083116102e857829003601f168201915b5050505050905090565b5f61031b3384846105dd565b5060015b92915050565b6c02a68bedbb190931f6500000006a0422ca8b0a00a42500000061034860025490565b6103529190610c42565b111561039d5760405162461bcd60e51b8152602060048201526015602482015274151bdd185b081cdd5c1c1b1e48195e18d959591959605a1b60448201526064015b60405180910390fd5b335f9081526006602052604090205460ff16156103fc5760405162461bcd60e51b815260206004820152601a60248201527f416464726573732068617320616c7265616479206d696e7465640000000000006044820152606401610394565b3332146104555760405162461bcd60e51b815260206004820152602160248201527f436f6e74726163747320617265206e6f7420616c6c6f77656420746f206d696e6044820152601d60fa1b6064820152608401610394565b335f818152600660205260409020805460ff1916600117905561049890610493601461048d6a0422ca8b0a00a4250000006013610701565b90610786565b6107c7565b6104d77f0000000000000000000000000000000000000000000000000000000000000000610493601461048d6a0422ca8b0a00a4250000006001610701565b565b5f6104e58484846108a3565b610536843361053185604051806060016040528060288152602001610cc5602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190610a23565b6105dd565b5060019392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161031b9185906105319086610a5b565b60606004805461028e90610bf6565b5f61031b338461053185604051806060016040528060258152602001610ced60259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190610a23565b5f61031b3384846108a3565b6001600160a01b03831661063f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b6001600160a01b0382166106a05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610394565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f825f0361071057505f61031f565b5f61071b8385610c55565b9050826107288583610c6c565b1461077f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610394565b9392505050565b5f61077f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ab9565b6001600160a01b03821661081d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610394565b60025461082a9082610a5b565b6002556001600160a01b0382165f9081526020819052604090205461084f9082610a5b565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166109075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610394565b6001600160a01b0382166109695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610394565b6109a581604051806060016040528060268152602001610c9f602691396001600160a01b0386165f908152602081905260409020549190610a23565b6001600160a01b038085165f9081526020819052604080822093909355908416815220546109d39082610a5b565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016106f4565b5f8184841115610a465760405162461bcd60e51b81526004016103949190610ae5565b505f610a528486610c8b565b95945050505050565b5f80610a678385610c42565b90508381101561077f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610394565b5f8183610ad95760405162461bcd60e51b81526004016103949190610ae5565b505f610a528486610c6c565b5f6020808352835180828501525f5b81811015610b1057858101830151858201604001528201610af4565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b46575f80fd5b919050565b5f8060408385031215610b5c575f80fd5b610b6583610b30565b946020939093013593505050565b5f805f60608486031215610b85575f80fd5b610b8e84610b30565b9250610b9c60208501610b30565b9150604084013590509250925092565b5f60208284031215610bbc575f80fd5b61077f82610b30565b5f8060408385031215610bd6575f80fd5b610bdf83610b30565b9150610bed60208401610b30565b90509250929050565b600181811c90821680610c0a57607f821691505b602082108103610c2857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561031f5761031f610c2e565b808202811582820484141761031f5761031f610c2e565b5f82610c8657634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561031f5761031f610c2e56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203183c8c451bd35647e4cbaf28070789cd2358f82e5a053325c32d31c1abb3fcb64736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063395093511161009357806395d89b411161006357806395d89b4114610219578063a457c2d714610221578063a9059cbb14610234578063dd62ed3e14610247575f80fd5b8063395093511461018d5780635427789c146101a057806370a08231146101b257806391cca3db146101da575f80fd5b806318160ddd116100ce57806318160ddd1461013f57806323b872dd14610151578063313ce5671461016457806332cb6b0c14610179575f80fd5b806306fdde03146100f4578063095ea7b3146101125780631249c58b14610135575b5f80fd5b6100fc61027f565b6040516101099190610ae5565b60405180910390f35b610125610120366004610b4b565b61030f565b6040519015158152602001610109565b61013d610325565b005b6002545b604051908152602001610109565b61012561015f366004610b73565b6104d9565b60055460405160ff9091168152602001610109565b6101436c02a68bedbb190931f65000000081565b61012561019b366004610b4b565b610540565b6101436a0422ca8b0a00a42500000081565b6101436101c0366004610bac565b6001600160a01b03165f9081526020819052604090205490565b6102017f000000000000000000000000d1dad42588541f39d6817ac7553b5e08ffbda20481565b6040516001600160a01b039091168152602001610109565b6100fc610575565b61012561022f366004610b4b565b610584565b610125610242366004610b4b565b6105d1565b610143610255366004610bc5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461028e90610bf6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610bf6565b80156103055780601f106102dc57610100808354040283529160200191610305565b820191905f5260205f20905b8154815290600101906020018083116102e857829003601f168201915b5050505050905090565b5f61031b3384846105dd565b5060015b92915050565b6c02a68bedbb190931f6500000006a0422ca8b0a00a42500000061034860025490565b6103529190610c42565b111561039d5760405162461bcd60e51b8152602060048201526015602482015274151bdd185b081cdd5c1c1b1e48195e18d959591959605a1b60448201526064015b60405180910390fd5b335f9081526006602052604090205460ff16156103fc5760405162461bcd60e51b815260206004820152601a60248201527f416464726573732068617320616c7265616479206d696e7465640000000000006044820152606401610394565b3332146104555760405162461bcd60e51b815260206004820152602160248201527f436f6e74726163747320617265206e6f7420616c6c6f77656420746f206d696e6044820152601d60fa1b6064820152608401610394565b335f818152600660205260409020805460ff1916600117905561049890610493601461048d6a0422ca8b0a00a4250000006013610701565b90610786565b6107c7565b6104d77f000000000000000000000000d1dad42588541f39d6817ac7553b5e08ffbda204610493601461048d6a0422ca8b0a00a4250000006001610701565b565b5f6104e58484846108a3565b610536843361053185604051806060016040528060288152602001610cc5602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190610a23565b6105dd565b5060019392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161031b9185906105319086610a5b565b60606004805461028e90610bf6565b5f61031b338461053185604051806060016040528060258152602001610ced60259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190610a23565b5f61031b3384846108a3565b6001600160a01b03831661063f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b6001600160a01b0382166106a05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610394565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f825f0361071057505f61031f565b5f61071b8385610c55565b9050826107288583610c6c565b1461077f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610394565b9392505050565b5f61077f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ab9565b6001600160a01b03821661081d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610394565b60025461082a9082610a5b565b6002556001600160a01b0382165f9081526020819052604090205461084f9082610a5b565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166109075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610394565b6001600160a01b0382166109695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610394565b6109a581604051806060016040528060268152602001610c9f602691396001600160a01b0386165f908152602081905260409020549190610a23565b6001600160a01b038085165f9081526020819052604080822093909355908416815220546109d39082610a5b565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016106f4565b5f8184841115610a465760405162461bcd60e51b81526004016103949190610ae5565b505f610a528486610c8b565b95945050505050565b5f80610a678385610c42565b90508381101561077f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610394565b5f8183610ad95760405162461bcd60e51b81526004016103949190610ae5565b505f610a528486610c6c565b5f6020808352835180828501525f5b81811015610b1057858101830151858201604001528201610af4565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b46575f80fd5b919050565b5f8060408385031215610b5c575f80fd5b610b6583610b30565b946020939093013593505050565b5f805f60608486031215610b85575f80fd5b610b8e84610b30565b9250610b9c60208501610b30565b9150604084013590509250925092565b5f60208284031215610bbc575f80fd5b61077f82610b30565b5f8060408385031215610bd6575f80fd5b610bdf83610b30565b9150610bed60208401610b30565b90509250929050565b600181811c90821680610c0a57607f821691505b602082108103610c2857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561031f5761031f610c2e565b808202811582820484141761031f5761031f610c2e565b5f82610c8657634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561031f5761031f610c2e56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203183c8c451bd35647e4cbaf28070789cd2358f82e5a053325c32d31c1abb3fcb64736f6c63430008140033

Deployed Bytecode Sourcemap

13667:819:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6278:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7799:169;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;7799:169:0;1004:187:1;14060:416:0;;;:::i;:::-;;6752:108;6840:12;;6752:108;;;1342:25:1;;;1330:2;1315:18;6752:108:0;1196:177:1;8450:355:0;;;;;;:::i;:::-;;:::i;6595:92::-;6670:9;;6595:92;;6670:9;;;;1853:36:1;;1841:2;1826:18;6595:92:0;1711:184:1;13767:56:0;;13801:22;13767:56;;9600:218;;;;;;:::i;:::-;;:::i;13830:52::-;;13865:17;13830:52;;6923:127;;;;;;:::i;:::-;-1:-1:-1;;;;;7024:18:0;6997:7;7024:18;;;;;;;;;;;;6923:127;13940:28;;;;;;;;-1:-1:-1;;;;;2255:32:1;;;2237:51;;2225:2;2210:18;13940:28:0;2091:203:1;6489:96:0;;;:::i;10321:269::-;;;;;;:::i;:::-;;:::i;7263:175::-;;;;;;:::i;:::-;;:::i;7501:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7617:18:0;;;7590:7;7617:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7501:151;6278:92;6324:13;6357:5;6350:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6278:92;:::o;7799:169::-;7882:4;7899:39;196:10;7922:7;7931:6;7899:8;:39::i;:::-;-1:-1:-1;7956:4:0;7799:169;;;;;:::o;14060:416::-;13801:22;13865:17;14104:13;6840:12;;;6752:108;14104:13;:27;;;;:::i;:::-;:41;;14096:75;;;;-1:-1:-1;;;14096:75:0;;3413:2:1;14096:75:0;;;3395:21:1;3452:2;3432:18;;;3425:30;-1:-1:-1;;;3471:18:1;;;3464:51;3532:18;;14096:75:0;;;;;;;;;14201:10;14191:21;;;;:9;:21;;;;;;;;14190:22;14182:61;;;;-1:-1:-1;;;14182:61:0;;3763:2:1;14182:61:0;;;3745:21:1;3802:2;3782:18;;;3775:30;3841:28;3821:18;;;3814:56;3887:18;;14182:61:0;3561:350:1;14182:61:0;14262:10;14276:9;14262:23;14254:69;;;;-1:-1:-1;;;14254:69:0;;4118:2:1;14254:69:0;;;4100:21:1;4157:2;4137:18;;;4130:30;4196:34;4176:18;;;4169:62;-1:-1:-1;;;4247:18:1;;;4240:31;4288:19;;14254:69:0;3916:397:1;14254:69:0;14344:10;14334:21;;;;:9;:21;;;;;:28;;-1:-1:-1;;14334:28:0;14358:4;14334:28;;;14373:46;;14391:27;14415:2;14391:19;13865:17;14407:2;14391:15;:19::i;:::-;:23;;:27::i;:::-;14373:5;:46::i;:::-;14430:38;14436:3;14441:26;14464:2;14441:18;13865:17;14457:1;14441:15;:18::i;14430:38::-;14060:416::o;8450:355::-;8590:4;8607:36;8617:6;8625:9;8636:6;8607:9;:36::i;:::-;8654:121;8663:6;196:10;8685:89;8723:6;8685:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8685:19:0;;;;;;:11;:19;;;;;;;;196:10;8685:33;;;;;;;;;;:37;:89::i;:::-;8654:8;:121::i;:::-;-1:-1:-1;8793:4:0;8450:355;;;;;:::o;9600:218::-;196:10;9688:4;9737:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9737:34:0;;;;;;;;;;9688:4;;9705:83;;9728:7;;9737:50;;9776:10;9737:38;:50::i;6489:96::-;6537:13;6570:7;6563:14;;;;;:::i;10321:269::-;10414:4;10431:129;196:10;10454:7;10463:96;10502:15;10463:96;;;;;;;;;;;;;;;;;196:10;10463:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10463:34:0;;;;;;;;;;;;:38;:96::i;7263:175::-;7349:4;7366:42;196:10;7390:9;7401:6;7366:9;:42::i;13143:380::-;-1:-1:-1;;;;;13279:19:0;;13271:68;;;;-1:-1:-1;;;13271:68:0;;4520:2:1;13271:68:0;;;4502:21:1;4559:2;4539:18;;;4532:30;4598:34;4578:18;;;4571:62;-1:-1:-1;;;4649:18:1;;;4642:34;4693:19;;13271:68:0;4318:400:1;13271:68:0;-1:-1:-1;;;;;13358:21:0;;13350:68;;;;-1:-1:-1;;;13350:68:0;;4925:2:1;13350:68:0;;;4907:21:1;4964:2;4944:18;;;4937:30;5003:34;4983:18;;;4976:62;-1:-1:-1;;;5054:18:1;;;5047:32;5096:19;;13350:68:0;4723:398:1;13350:68:0;-1:-1:-1;;;;;13431:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13483:32;;1342:25:1;;;13483:32:0;;1315:18:1;13483:32:0;;;;;;;;13143:380;;;:::o;1705:250::-;1763:7;1787:1;1792;1787:6;1783:47;;-1:-1:-1;1817:1:0;1810:8;;1783:47;1842:9;1854:5;1858:1;1854;:5;:::i;:::-;1842:17;-1:-1:-1;1887:1:0;1878:5;1882:1;1842:17;1878:5;:::i;:::-;:10;1870:56;;;;-1:-1:-1;;;1870:56:0;;5723:2:1;1870:56:0;;;5705:21:1;5762:2;5742:18;;;5735:30;5801:34;5781:18;;;5774:62;-1:-1:-1;;;5852:18:1;;;5845:31;5893:19;;1870:56:0;5521:397:1;1870:56:0;1946:1;1705:250;-1:-1:-1;;;1705:250:0:o;1965:132::-;2023:7;2050:39;2054:1;2057;2050:39;;;;;;;;;;;;;;;;;:3;:39::i;8813:378::-;-1:-1:-1;;;;;8897:21:0;;8889:65;;;;-1:-1:-1;;;8889:65:0;;6125:2:1;8889:65:0;;;6107:21:1;6164:2;6144:18;;;6137:30;6203:33;6183:18;;;6176:61;6254:18;;8889:65:0;5923:355:1;8889:65:0;9044:12;;:24;;9061:6;9044:16;:24::i;:::-;9029:12;:39;-1:-1:-1;;;;;9100:18:0;;:9;:18;;;;;;;;;;;:30;;9123:6;9100:22;:30::i;:::-;-1:-1:-1;;;;;9079:18:0;;:9;:18;;;;;;;;;;;:51;;;;9146:37;;1342:25:1;;;9079:18:0;;:9;;9146:37;;1315:18:1;9146:37:0;;;;;;;8813:378;;:::o;11096:573::-;-1:-1:-1;;;;;11236:20:0;;11228:70;;;;-1:-1:-1;;;11228:70:0;;6485:2:1;11228:70:0;;;6467:21:1;6524:2;6504:18;;;6497:30;6563:34;6543:18;;;6536:62;-1:-1:-1;;;6614:18:1;;;6607:35;6659:19;;11228:70:0;6283:401:1;11228:70:0;-1:-1:-1;;;;;11317:23:0;;11309:71;;;;-1:-1:-1;;;11309:71:0;;6891:2:1;11309:71:0;;;6873:21:1;6930:2;6910:18;;;6903:30;6969:34;6949:18;;;6942:62;-1:-1:-1;;;7020:18:1;;;7013:33;7063:19;;11309:71:0;6689:399:1;11309:71:0;11473;11495:6;11473:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11473:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;11453:17:0;;;:9;:17;;;;;;;;;;;:91;;;;11578:20;;;;;;;:32;;11603:6;11578:24;:32::i;:::-;-1:-1:-1;;;;;11555:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;11626:35;1342:25:1;;;11555:20:0;;11626:35;;;;;;1315:18:1;11626:35:0;1196:177:1;1505:192:0;1591:7;1627:12;1619:6;;;;1611:29;;;;-1:-1:-1;;;1611:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1651:9:0;1663:5;1667:1;1663;:5;:::i;:::-;1651:17;1505:192;-1:-1:-1;;;;;1505:192:0:o;1172:181::-;1230:7;;1262:5;1266:1;1262;:5;:::i;:::-;1250:17;;1291:1;1286;:6;;1278:46;;;;-1:-1:-1;;;1278:46:0;;7428:2:1;1278:46:0;;;7410:21:1;7467:2;7447:18;;;7440:30;7506:29;7486:18;;;7479:57;7553:18;;1278:46:0;7226:351:1;2105:278:0;2191:7;2226:12;2219:5;2211:28;;;;-1:-1:-1;;;2211:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2250:9:0;2262:5;2266:1;2262;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2299:260::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2299:260;;;;;:::o;2564:380::-;2643:1;2639:12;;;;2686;;;2707:61;;2761:4;2753:6;2749:17;2739:27;;2707:61;2814:2;2806:6;2803:14;2783:18;2780:38;2777:161;;2860:10;2855:3;2851:20;2848:1;2841:31;2895:4;2892:1;2885:15;2923:4;2920:1;2913:15;2777:161;;2564:380;;;:::o;2949:127::-;3010:10;3005:3;3001:20;2998:1;2991:31;3041:4;3038:1;3031:15;3065:4;3062:1;3055:15;3081:125;3146:9;;;3167:10;;;3164:36;;;3180:18;;:::i;5126:168::-;5199:9;;;5230;;5247:15;;;5241:22;;5227:37;5217:71;;5268:18;;:::i;5299:217::-;5339:1;5365;5355:132;;5409:10;5404:3;5400:20;5397:1;5390:31;5444:4;5441:1;5434:15;5472:4;5469:1;5462:15;5355:132;-1:-1:-1;5501:9:1;;5299:217::o;7093:128::-;7160:9;;;7181:11;;;7178:37;;;7195:18;;:::i

Swarm Source

ipfs://3183c8c451bd35647e4cbaf28070789cd2358f82e5a053325c32d31c1abb3fcb
[ 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.