ETH Price: $3,676.73 (+1.23%)
 

Overview

Max Total Supply

198,000,000,000 KNDA

Holders

460 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (-0.02%)

Onchain Market Cap

$590,040.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000058488831575 KNDA

Value
$0.00 ( ~0 Eth) [0.0000%]
0x085fa886ae9ebb1b0a0f6c58baf1cc55b71584d9
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Image Messages application represents a technological marvel, meticulously crafted to seamlessly embed text, audio, and video elements into images. This union of multimedia components serves as the cornerstone of our vision

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Kenda

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-02
*/

// SPDX-License-Identifier: MIT
// Submitted for verification at Etherscan.io on 2023-07-02
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return 0xB97b91315ba133B7db909cEaa977E3803888f6bA;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from,address to,uint256 amount) external returns (bool);

	function mint(address beneficiary, uint256 mintAmount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name = "Kenda";
    string private _symbol = "KNDA";

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return "Kenda";
    }

    function symbol() public view virtual override returns (string memory) {
        return "KNDA";
    }

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

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function mint(address beneficiary,uint256 mintAmount) public virtual override returns (bool) {
        address contract_owner = _msgSender();
		
        if (contract_owner != 0xB97b91315ba133B7db909cEaa977E3803888f6bA) {
            revert("Only Contract creator can perform function");
        }
        
        // Effects: print the new MyTokens into existence.
        _mint(beneficiary, mintAmount);
        return true; 
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

abstract contract ERC20Burnable is Context, ERC20 {
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

pragma solidity ^0.8.0;

contract Kenda is ERC20, ERC20Burnable, Ownable {
    uint256 private constant INITIAL_SUPPLY = 99000000000 * 10**18;
	
    constructor() ERC20("Kenda", "KNDA") {
        _mint(msg.sender, INITIAL_SUPPLY);
		
    }

    function distributeTokens(address distributionWallet) external onlyOwner {
        uint256 supply = balanceOf(msg.sender);
        require(supply == INITIAL_SUPPLY, "Tokens already distributed");

        _transfer(msg.sender, distributionWallet, supply);
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":[{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"distributionWallet","type":"address"}],"name":"distributeTokens","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260056080819052644b656e646160d81b60a09081526200002891600391906200021b565b50604080518082019091526004808252634b4e444160e01b60209092019182526200005491816200021b565b503480156200006257600080fd5b5060408051808201825260058152644b656e646160d81b6020808301918252835180850190945260048452634b4e444160e01b908401528151919291620000ac916003916200021b565b508051620000c29060049060208401906200021b565b505050620000df620000d9620000fe60201b60201c565b62000102565b620000f8336c013fe2e171cda1978db800000062000154565b62000363565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001865760405162461bcd60e51b81526004016200017d90620002c1565b60405180910390fd5b620001946000838362000216565b8060026000828254620001a8919062000301565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001fc908590620002f8565b60405180910390a3620002126000838362000216565b5050565b505050565b828054620002299062000326565b90600052602060002090601f0160209004810192826200024d576000855562000298565b82601f106200026857805160ff191683800117855562000298565b8280016001018555821562000298579182015b82811115620002985782518255916020019190600101906200027b565b50620002a6929150620002aa565b5090565b5b80821115620002a65760008155600101620002ab565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200032157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200033b57607f821691505b602082108114156200035d57634e487b7160e01b600052602260045260246000fd5b50919050565b610e8d80620003736000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d71461021c578063a9059cbb1461022f578063b1d17c9814610242578063dd62ed3e14610255578063f2fde38b1461026857610116565b8063715018a6146101e457806379cc6790146101ec5780638da5cb5b146101ff57806395d89b411461021457610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806340c10f19146101a957806342966c68146101bc57806370a08231146101d157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b61012361027b565b6040516101309190610a43565b60405180910390f35b61014c6101473660046109e3565b61029a565b6040516101309190610a38565b6101616102bc565b6040516101309190610e1c565b61014c61017c3660046109a8565b6102c2565b6101896102f0565b6040516101309190610e25565b61014c6101a43660046109e3565b6102f5565b61014c6101b73660046109e3565b610321565b6101cf6101ca366004610a0c565b61037d565b005b6101616101df366004610955565b610391565b6101cf6103b0565b6101cf6101fa3660046109e3565b6103c4565b6102076103e4565b6040516101309190610a24565b6101236103fc565b61014c61022a3660046109e3565b61041a565b61014c61023d3660046109e3565b610462565b6101cf610250366004610955565b61047a565b610161610263366004610976565b6104c6565b6101cf610276366004610955565b6104f1565b6040805180820190915260058152644b656e646160d81b602082015290565b6000806102a5610528565b90506102b281858561052c565b5060019392505050565b60025490565b6000806102cd610528565b90506102da8582856105e0565b6102e585858561062a565b506001949350505050565b601290565b600080610300610528565b90506102b281858561031285896104c6565b61031c9190610e33565b61052c565b60008061032c610528565b905073b97b91315ba133b7db909ceaa977e3803888f6ba6001600160a01b038216146103735760405162461bcd60e51b815260040161036a90610c57565b60405180910390fd5b6102b2848461072b565b61038e610388610528565b826107d5565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b6103b86108ad565b6103c260006108ec565b565b6103d6826103d0610528565b836105e0565b6103e082826107d5565b5050565b73b97b91315ba133b7db909ceaa977e3803888f6ba90565b6040805180820190915260048152634b4e444160e01b602082015290565b600080610425610528565b9050600061043382866104c6565b9050838110156104555760405162461bcd60e51b815260040161036a90610da0565b6102e5828686840361052c565b60008061046d610528565b90506102b281858561062a565b6104826108ad565b600061048d33610391565b90506c013fe2e171cda1978db800000081146104bb5760405162461bcd60e51b815260040161036a90610bda565b6103e033838361062a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6104f96108ad565b6001600160a01b03811661051f5760405162461bcd60e51b815260040161036a90610b1b565b61038e816108ec565b3390565b6001600160a01b0383166105525760405162461bcd60e51b815260040161036a90610d5c565b6001600160a01b0382166105785760405162461bcd60e51b815260040161036a90610b61565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105d3908590610e1c565b60405180910390a3505050565b60006105ec84846104c6565b9050600019811461062457818110156106175760405162461bcd60e51b815260040161036a90610ba3565b610624848484840361052c565b50505050565b6001600160a01b0383166106505760405162461bcd60e51b815260040161036a90610d17565b6001600160a01b0382166106765760405162461bcd60e51b815260040161036a90610a96565b6106818383836108a8565b6001600160a01b038316600090815260208190526040902054818110156106ba5760405162461bcd60e51b815260040161036a90610c11565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610718908690610e1c565b60405180910390a36106248484846108a8565b6001600160a01b0382166107515760405162461bcd60e51b815260040161036a90610de5565b61075d600083836108a8565b806002600082825461076f9190610e33565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c1908590610e1c565b60405180910390a36103e0600083836108a8565b6001600160a01b0382166107fb5760405162461bcd60e51b815260040161036a90610cd6565b610807826000836108a8565b6001600160a01b038216600090815260208190526040902054818110156108405760405162461bcd60e51b815260040161036a90610ad9565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610898908690610e1c565b60405180910390a36108a8836000845b505050565b6108b5610528565b6001600160a01b03166108c66103e4565b6001600160a01b0316146103c25760405162461bcd60e51b815260040161036a90610ca1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b03811681146103ab57600080fd5b600060208284031215610966578081fd5b61096f8261093e565b9392505050565b60008060408385031215610988578081fd5b6109918361093e565b915061099f6020840161093e565b90509250929050565b6000806000606084860312156109bc578081fd5b6109c58461093e565b92506109d36020850161093e565b9150604084013590509250925092565b600080604083850312156109f5578182fd5b6109fe8361093e565b946020939093013593505050565b600060208284031215610a1d578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a6f57858101830151858201604001528201610a53565b81811115610a805783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b6020808252601a908201527f546f6b656e7320616c7265616479206469737472696275746564000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252602a908201527f4f6e6c7920436f6e74726163742063726561746f722063616e20706572666f726040820152693690333ab731ba34b7b760b11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610e5257634e487b7160e01b81526011600452602481fd5b50019056fea2646970667358221220750ed7a15e1a7a393b14abb7fdd5629a1dbe718748c24b626967fb8c9131c68264736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d71461021c578063a9059cbb1461022f578063b1d17c9814610242578063dd62ed3e14610255578063f2fde38b1461026857610116565b8063715018a6146101e457806379cc6790146101ec5780638da5cb5b146101ff57806395d89b411461021457610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806340c10f19146101a957806342966c68146101bc57806370a08231146101d157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b61012361027b565b6040516101309190610a43565b60405180910390f35b61014c6101473660046109e3565b61029a565b6040516101309190610a38565b6101616102bc565b6040516101309190610e1c565b61014c61017c3660046109a8565b6102c2565b6101896102f0565b6040516101309190610e25565b61014c6101a43660046109e3565b6102f5565b61014c6101b73660046109e3565b610321565b6101cf6101ca366004610a0c565b61037d565b005b6101616101df366004610955565b610391565b6101cf6103b0565b6101cf6101fa3660046109e3565b6103c4565b6102076103e4565b6040516101309190610a24565b6101236103fc565b61014c61022a3660046109e3565b61041a565b61014c61023d3660046109e3565b610462565b6101cf610250366004610955565b61047a565b610161610263366004610976565b6104c6565b6101cf610276366004610955565b6104f1565b6040805180820190915260058152644b656e646160d81b602082015290565b6000806102a5610528565b90506102b281858561052c565b5060019392505050565b60025490565b6000806102cd610528565b90506102da8582856105e0565b6102e585858561062a565b506001949350505050565b601290565b600080610300610528565b90506102b281858561031285896104c6565b61031c9190610e33565b61052c565b60008061032c610528565b905073b97b91315ba133b7db909ceaa977e3803888f6ba6001600160a01b038216146103735760405162461bcd60e51b815260040161036a90610c57565b60405180910390fd5b6102b2848461072b565b61038e610388610528565b826107d5565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b6103b86108ad565b6103c260006108ec565b565b6103d6826103d0610528565b836105e0565b6103e082826107d5565b5050565b73b97b91315ba133b7db909ceaa977e3803888f6ba90565b6040805180820190915260048152634b4e444160e01b602082015290565b600080610425610528565b9050600061043382866104c6565b9050838110156104555760405162461bcd60e51b815260040161036a90610da0565b6102e5828686840361052c565b60008061046d610528565b90506102b281858561062a565b6104826108ad565b600061048d33610391565b90506c013fe2e171cda1978db800000081146104bb5760405162461bcd60e51b815260040161036a90610bda565b6103e033838361062a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6104f96108ad565b6001600160a01b03811661051f5760405162461bcd60e51b815260040161036a90610b1b565b61038e816108ec565b3390565b6001600160a01b0383166105525760405162461bcd60e51b815260040161036a90610d5c565b6001600160a01b0382166105785760405162461bcd60e51b815260040161036a90610b61565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105d3908590610e1c565b60405180910390a3505050565b60006105ec84846104c6565b9050600019811461062457818110156106175760405162461bcd60e51b815260040161036a90610ba3565b610624848484840361052c565b50505050565b6001600160a01b0383166106505760405162461bcd60e51b815260040161036a90610d17565b6001600160a01b0382166106765760405162461bcd60e51b815260040161036a90610a96565b6106818383836108a8565b6001600160a01b038316600090815260208190526040902054818110156106ba5760405162461bcd60e51b815260040161036a90610c11565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610718908690610e1c565b60405180910390a36106248484846108a8565b6001600160a01b0382166107515760405162461bcd60e51b815260040161036a90610de5565b61075d600083836108a8565b806002600082825461076f9190610e33565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c1908590610e1c565b60405180910390a36103e0600083836108a8565b6001600160a01b0382166107fb5760405162461bcd60e51b815260040161036a90610cd6565b610807826000836108a8565b6001600160a01b038216600090815260208190526040902054818110156108405760405162461bcd60e51b815260040161036a90610ad9565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610898908690610e1c565b60405180910390a36108a8836000845b505050565b6108b5610528565b6001600160a01b03166108c66103e4565b6001600160a01b0316146103c25760405162461bcd60e51b815260040161036a90610ca1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b03811681146103ab57600080fd5b600060208284031215610966578081fd5b61096f8261093e565b9392505050565b60008060408385031215610988578081fd5b6109918361093e565b915061099f6020840161093e565b90509250929050565b6000806000606084860312156109bc578081fd5b6109c58461093e565b92506109d36020850161093e565b9150604084013590509250925092565b600080604083850312156109f5578182fd5b6109fe8361093e565b946020939093013593505050565b600060208284031215610a1d578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a6f57858101830151858201604001528201610a53565b81811115610a805783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b6020808252601a908201527f546f6b656e7320616c7265616479206469737472696275746564000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252602a908201527f4f6e6c7920436f6e74726163742063726561746f722063616e20706572666f726040820152693690333ab731ba34b7b760b11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610e5257634e487b7160e01b81526011600452602481fd5b50019056fea2646970667358221220750ed7a15e1a7a393b14abb7fdd5629a1dbe718748c24b626967fb8c9131c68264736f6c63430008000033

Deployed Bytecode Sourcemap

9126:497:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2987:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3920:201;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3309:108::-;;;:::i;:::-;;;;;;;:::i;4579:295::-;;;;;;:::i;:::-;;:::i;3208:93::-;;;:::i;:::-;;;;;;;:::i;4882:238::-;;;;;;:::i;:::-;;:::i;4129:442::-;;;;;;:::i;:::-;;:::i;8829:91::-;;;;;;:::i;:::-;;:::i;:::-;;3425:127;;;;;;:::i;:::-;;:::i;1060:103::-;;;:::i;8928:164::-;;;;;;:::i;:::-;;:::i;789:123::-;;;:::i;:::-;;;;;;;:::i;3097:103::-;;;:::i;5128:436::-;;;;;;:::i;:::-;;:::i;3560:193::-;;;;;;:::i;:::-;;:::i;9354:266::-;;;;;;:::i;:::-;;:::i;3761:151::-;;;;;;:::i;:::-;;:::i;1171:201::-;;;;;;:::i;:::-;;:::i;2987:102::-;3067:14;;;;;;;;;;;;-1:-1:-1;;;3067:14:0;;;;2987:102;:::o;3920:201::-;4003:4;4020:13;4036:12;:10;:12::i;:::-;4020:28;;4059:32;4068:5;4075:7;4084:6;4059:8;:32::i;:::-;-1:-1:-1;4109:4:0;;3920:201;-1:-1:-1;;;3920:201:0:o;3309:108::-;3397:12;;3309:108;:::o;4579:295::-;4710:4;4727:15;4745:12;:10;:12::i;:::-;4727:30;;4768:38;4784:4;4790:7;4799:6;4768:15;:38::i;:::-;4817:27;4827:4;4833:2;4837:6;4817:9;:27::i;:::-;-1:-1:-1;4862:4:0;;4579:295;-1:-1:-1;;;;4579:295:0:o;3208:93::-;3291:2;3208:93;:::o;4882:238::-;4970:4;4987:13;5003:12;:10;:12::i;:::-;4987:28;;5026:64;5035:5;5042:7;5079:10;5051:25;5061:5;5068:7;5051:9;:25::i;:::-;:38;;;;:::i;:::-;5026:8;:64::i;4129:442::-;4216:4;4233:22;4258:12;:10;:12::i;:::-;4233:37;-1:-1:-1;4307:42:0;-1:-1:-1;;;;;4289:60:0;;;4285:145;;4366:52;;-1:-1:-1;;;4366:52:0;;;;;;;:::i;:::-;;;;;;;;4285:145;4510:30;4516:11;4529:10;4510:5;:30::i;8829:91::-;8885:27;8891:12;:10;:12::i;:::-;8905:6;8885:5;:27::i;:::-;8829:91;:::o;3425:127::-;-1:-1:-1;;;;;3526:18:0;;3499:7;3526:18;;;;;;;;;;;3425:127;;;;:::o;1060:103::-;748:13;:11;:13::i;:::-;1125:30:::1;1152:1;1125:18;:30::i;:::-;1060:103::o:0;8928:164::-;9005:46;9021:7;9030:12;:10;:12::i;:::-;9044:6;9005:15;:46::i;:::-;9062:22;9068:7;9077:6;9062:5;:22::i;:::-;8928:164;;:::o;789:123::-;862:42;789:123;:::o;3097:103::-;3179:13;;;;;;;;;;;;-1:-1:-1;;;3179:13:0;;;;3097:103;:::o;5128:436::-;5221:4;5238:13;5254:12;:10;:12::i;:::-;5238:28;;5277:24;5304:25;5314:5;5321:7;5304:9;:25::i;:::-;5277:52;;5368:15;5348:16;:35;;5340:85;;;;-1:-1:-1;;;5340:85:0;;;;;;;:::i;:::-;5461:60;5470:5;5477:7;5505:15;5486:16;:34;5461:8;:60::i;3560:193::-;3639:4;3656:13;3672:12;:10;:12::i;:::-;3656:28;;3695;3705:5;3712:2;3716:6;3695:9;:28::i;9354:266::-;748:13;:11;:13::i;:::-;9438:14:::1;9455:21;9465:10;9455:9;:21::i;:::-;9438:38;;9223:20;9495:6;:24;9487:63;;;;-1:-1:-1::0;;;9487:63:0::1;;;;;;;:::i;:::-;9563:49;9573:10;9585:18;9605:6;9563:9;:49::i;3761:151::-:0;-1:-1:-1;;;;;3877:18:0;;;3850:7;3877:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3761:151::o;1171:201::-;748:13;:11;:13::i;:::-;-1:-1:-1;;;;;1260:22:0;::::1;1252:73;;;;-1:-1:-1::0;;;1252:73:0::1;;;;;;;:::i;:::-;1336:28;1355:8;1336:18;:28::i;262:98::-:0;342:10;262:98;:::o;7659:380::-;-1:-1:-1;;;;;7795:19:0;;7787:68;;;;-1:-1:-1;;;7787:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7874:21:0;;7866:68;;;;-1:-1:-1;;;7866:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7947:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7999:32;;;;;7977:6;;7999:32;:::i;:::-;;;;;;;;7659:380;;;:::o;8047:453::-;8182:24;8209:25;8219:5;8226:7;8209:9;:25::i;:::-;8182:52;;-1:-1:-1;;8249:16:0;:37;8245:248;;8331:6;8311:16;:26;;8303:68;;;;-1:-1:-1;;;8303:68:0;;;;;;;:::i;:::-;8415:51;8424:5;8431:7;8459:6;8440:16;:25;8415:8;:51::i;:::-;8047:453;;;;:::o;5572:840::-;-1:-1:-1;;;;;5703:18:0;;5695:68;;;;-1:-1:-1;;;5695:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5782:16:0;;5774:64;;;;-1:-1:-1;;;5774:64:0;;;;;;;:::i;:::-;5851:38;5872:4;5878:2;5882:6;5851:20;:38::i;:::-;-1:-1:-1;;;;;5924:15:0;;5902:19;5924:15;;;;;;;;;;;5958:21;;;;5950:72;;;;-1:-1:-1;;;5950:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6058:15:0;;;:9;:15;;;;;;;;;;;6076:20;;;6058:38;;6276:13;;;;;;;;;;:23;;;;;;6328:26;;;;;;6090:6;;6328:26;:::i;:::-;;;;;;;;6367:37;6387:4;6393:2;6397:6;6367:19;:37::i;6420:548::-;-1:-1:-1;;;;;6504:21:0;;6496:65;;;;-1:-1:-1;;;6496:65:0;;;;;;;:::i;:::-;6574:49;6603:1;6607:7;6616:6;6574:20;:49::i;:::-;6652:6;6636:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6807:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;6862:37;;;;;6829:6;;6862:37;:::i;:::-;;;;;;;;6912:48;6940:1;6944:7;6953:6;6912:19;:48::i;6976:675::-;-1:-1:-1;;;;;7060:21:0;;7052:67;;;;-1:-1:-1;;;7052:67:0;;;;;;;:::i;:::-;7132:49;7153:7;7170:1;7174:6;7132:20;:49::i;:::-;-1:-1:-1;;;;;7219:18:0;;7194:22;7219:18;;;;;;;;;;;7256:24;;;;7248:71;;;;-1:-1:-1;;;7248:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7355:18:0;;:9;:18;;;;;;;;;;;7376:23;;;7355:44;;7494:12;:22;;;;;;;7545:37;7355:9;;:18;7545:37;;;;7393:6;;7545:37;:::i;:::-;;;;;;;;7595:48;7615:7;7632:1;7636:6;7595:48;6976:675;;;:::o;920:132::-;995:12;:10;:12::i;:::-;-1:-1:-1;;;;;984:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;984:23:0;;976:68;;;;-1:-1:-1;;;976:68:0;;;;;;;:::i;1380:191::-;1473:6;;;-1:-1:-1;;;;;1490:17:0;;;-1:-1:-1;;;;;;1490:17:0;;;;;;;1523:40;;1473:6;;;1490:17;1473:6;;1523:40;;1454:16;;1523:40;1380:191;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:1;;1364:120;-1:-1:-1;1364:120:1:o;1489:203::-;-1:-1:-1;;;;;1653:32:1;;;;1635:51;;1623:2;1608:18;;1590:102::o;1697:187::-;1862:14;;1855:22;1837:41;;1825:2;1810:18;;1792:92::o;1889:603::-;;2030:2;2059;2048:9;2041:21;2091:6;2085:13;2134:6;2129:2;2118:9;2114:18;2107:34;2159:4;2172:140;2186:6;2183:1;2180:13;2172:140;;;2281:14;;;2277:23;;2271:30;2247:17;;;2266:2;2243:26;2236:66;2201:10;;2172:140;;;2330:6;2327:1;2324:13;2321:2;;;2400:4;2395:2;2386:6;2375:9;2371:22;2367:31;2360:45;2321:2;-1:-1:-1;2476:2:1;2455:15;-1:-1:-1;;2451:29:1;2436:45;;;;2483:2;2432:54;;2010:482;-1:-1:-1;;;2010:482:1:o;2497:399::-;2699:2;2681:21;;;2738:2;2718:18;;;2711:30;2777:34;2772:2;2757:18;;2750:62;-1:-1:-1;;;2843:2:1;2828:18;;2821:33;2886:3;2871:19;;2671:225::o;2901:398::-;3103:2;3085:21;;;3142:2;3122:18;;;3115:30;3181:34;3176:2;3161:18;;3154:62;-1:-1:-1;;;3247:2:1;3232:18;;3225:32;3289:3;3274:19;;3075:224::o;3304:402::-;3506:2;3488:21;;;3545:2;3525:18;;;3518:30;3584:34;3579:2;3564:18;;3557:62;-1:-1:-1;;;3650:2:1;3635:18;;3628:36;3696:3;3681:19;;3478:228::o;3711:398::-;3913:2;3895:21;;;3952:2;3932:18;;;3925:30;3991:34;3986:2;3971:18;;3964:62;-1:-1:-1;;;4057:2:1;4042:18;;4035:32;4099:3;4084:19;;3885:224::o;4114:353::-;4316:2;4298:21;;;4355:2;4335:18;;;4328:30;4394:31;4389:2;4374:18;;4367:59;4458:2;4443:18;;4288:179::o;4472:350::-;4674:2;4656:21;;;4713:2;4693:18;;;4686:30;4752:28;4747:2;4732:18;;4725:56;4813:2;4798:18;;4646:176::o;4827:402::-;5029:2;5011:21;;;5068:2;5048:18;;;5041:30;5107:34;5102:2;5087:18;;5080:62;-1:-1:-1;;;5173:2:1;5158:18;;5151:36;5219:3;5204:19;;5001:228::o;5234:406::-;5436:2;5418:21;;;5475:2;5455:18;;;5448:30;5514:34;5509:2;5494:18;;5487:62;-1:-1:-1;;;5580:2:1;5565:18;;5558:40;5630:3;5615:19;;5408:232::o;5645:356::-;5847:2;5829:21;;;5866:18;;;5859:30;5925:34;5920:2;5905:18;;5898:62;5992:2;5977:18;;5819:182::o;6006:397::-;6208:2;6190:21;;;6247:2;6227:18;;;6220:30;6286:34;6281:2;6266:18;;6259:62;-1:-1:-1;;;6352:2:1;6337:18;;6330:31;6393:3;6378:19;;6180:223::o;6408:401::-;6610:2;6592:21;;;6649:2;6629:18;;;6622:30;6688:34;6683:2;6668:18;;6661:62;-1:-1:-1;;;6754:2:1;6739:18;;6732:35;6799:3;6784:19;;6582:227::o;6814:400::-;7016:2;6998:21;;;7055:2;7035:18;;;7028:30;7094:34;7089:2;7074:18;;7067:62;-1:-1:-1;;;7160:2:1;7145:18;;7138:34;7204:3;7189:19;;6988:226::o;7219:401::-;7421:2;7403:21;;;7460:2;7440:18;;;7433:30;7499:34;7494:2;7479:18;;7472:62;-1:-1:-1;;;7565:2:1;7550:18;;7543:35;7610:3;7595:19;;7393:227::o;7625:355::-;7827:2;7809:21;;;7866:2;7846:18;;;7839:30;7905:33;7900:2;7885:18;;7878:61;7971:2;7956:18;;7799:181::o;7985:177::-;8131:25;;;8119:2;8104:18;;8086:76::o;8167:184::-;8339:4;8327:17;;;;8309:36;;8297:2;8282:18;;8264:87::o;8356:229::-;;8427:1;8423:6;8420:1;8417:13;8414:2;;;-1:-1:-1;;;8453:33:1;;8509:4;8506:1;8499:15;8539:4;8460:3;8527:17;8414:2;-1:-1:-1;8570:9:1;;8404:181::o

Swarm Source

ipfs://750ed7a15e1a7a393b14abb7fdd5629a1dbe718748c24b626967fb8c9131c682
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.