ETH Price: $3,420.13 (+3.00%)

Token

Blubbler (BLUBBLER)
 

Overview

Max Total Supply

994,619.5 BLUBBLER

Holders

117 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 BLUBBLER

Value
$0.00
0x938BC66d92AE500A29443D2d7e2079E729E27e64
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Blubbler is a SaaS and hosting platform that allows developpers to build & host their memecoin websites in just a few clicks.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BLUBBLER

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-12
*/

/**

Blubbler is a SaaS for developers to build their memecoin websites in just a few minutes.
The service can be paid with discount by burning $BLUBBLER tokens and a part of the platform
income is used to buy back and burn $BLUBBLER tokens.

Blubbler is also fun, join our community groups to play with our memes.

Give it a try on our website.

🔵 Website: https://blubbler.app

🔵 Telegram: https://t.me/BlubblerApp

🔵 Twitter: https://x.com/BlubblerApp

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣤⣤⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⠾⠿⢛⡻⠽⠛⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠯⢿⡛⠻⠷⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⠟⢉⣀⣤⣤⣬⣵⣶⣦⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣴⣲⣾⣥⣤⣤⣀⣉⠛⠿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⡷⠛⠋⠉⠀⠀⠀⠀⠀⠉⠉⠛⠻⠶⣤⠀⠀⠀⣤⡶⠟⠛⠉⠉⠀⠀⠀⠀⠀⠉⠙⠛⠶⣬⣻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⢛⣡⠴⣒⣒⣶⣶⣶⣤⣄⡀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡷⢀⣠⣤⣶⣶⣶⣖⣒⡦⢌⡙⢿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⢏⡴⣫⠾⣛⡭⢔⣒⣒⣒⣻⣽⣛⢶⣧⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⣼⣯⡿⣟⣫⣭⣴⣶⣶⡤⢭⣙⠷⣿⣢⡙⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⢃⣾⡾⢣⣾⣷⠟⢻⠉⠁⠈⡟⠻⣿⢿⣌⡻⣿⡆⠀⠀⠀⠀⠀⠀⣼⣿⣣⣶⡿⢟⠛⠛⠻⢿⢽⡻⢾⣷⣌⢷⡽⡘⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣾⡇⢸⡿⣱⣿⠟⠁⠀⡇⠀⠀⠀⡇⠀⣠⣗⡙⢿⣿⣿⠀⠀⠀⠀⠀⢠⣿⡿⢻⠋⠀⢸⠀⠀⠀⢸⠀⡽⠆⠙⢿⣧⢿⡇⠸⣷⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢰⣿⠀⠸⢣⡿⢙⡦⢀⣀⣥⣤⣶⣶⣥⣤⣤⣬⣭⣳⢻⣿⡆⠀⠀⠀⠀⢸⣿⣒⣯⣤⣤⣬⣤⣤⣤⣤⣤⣉⡓⠦⣄⢿⡟⠇⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣿⣿⠀⠀⢸⣿⡷⠟⠋⢹⣿⣿⣿⣿⣿⣿⣿⡇⠀⠉⠛⣿⡇⠀⠀⠀⠀⣿⠛⠉⠁⢸⣿⣿⣿⣿⣿⣿⣿⡏⠙⠛⢾⣽⡧⠀⠀⣿⣿⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣾⣿⢿⡆⠀⢸⣇⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⣿⠁⠀⡤⢤⠀⣿⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⣸⡇⠀⢠⣿⣿⣿⡄⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⣿⠋⠀⠈⣷⠀⠈⣿⡷⣤⡀⠀⢻⣿⣿⣿⣿⣿⠏⢀⣠⣴⡾⠋⠀⡼⠀⠈⡆⢹⣷⢦⣄⣀⠙⣿⣿⣿⣿⣿⡟⠀⢀⣠⣾⣿⠃⠀⣼⠟⠉⠛⣿⣄⠀⠀⠀⠀
⠀⠀⢀⣴⡿⣡⠔⠋⠉⠙⠃⠀⠘⢿⣾⣽⠛⠲⠿⠿⠿⢿⣿⡿⠟⠋⠁⠀⢀⡴⠁⠀⠀⠹⡄⢻⣦⠈⠉⠛⠛⠿⠿⠿⠿⠖⣛⣯⣷⣿⠃⠀⠘⠯⣄⠀⠀⠈⢻⣦⡀⠀⠀
⠀⢠⣾⢋⡜⠁⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣦⣄⣀⣴⠞⠋⠁⠀⠀⠀⢀⠴⠋⠀⠀⠠⡀⠀⠘⢦⡙⠷⣦⣀⡀⠀⠀⠀⠀⣠⣿⡿⠟⠁⠀⠀⠀⠀⠈⠱⣄⠀⠀⠙⣿⡄⠀
⢠⣿⢃⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⡿⠋⠀⠀⠀⠀⢀⡠⠞⠁⠀⠀⡠⠀⠀⠀⠀⠀⠀⠙⢦⡈⠙⠻⢿⣟⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⡀⠀⠈⣿⡄
⣾⢇⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠟⠀⠀⠀⠀⣠⠖⠉⠀⠀⠀⢀⡔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠙⠳⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠸⣿
⣿⢸⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⢀⡾⠃⠀⠀⠀⣠⠊⠀⠀⠀⠀⠀⠠⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⡄⠀⠀⠈⢻⡄⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⢳⠀⠀⣿
⣿⢸⠀⠀⠀⠀⠀⠀⣠⡟⠀⠀⠀⣾⠁⠀⠀⠀⣰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⢿⠀⠀⠀⠀⠀⠀⠻⣄⠀⠀⠀⠀⠘⡆⠀⣸
⣿⡈⡇⠀⠀⠰⣶⣞⣛⢷⣄⡀⢸⡇⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⢸⠆⠀⠀⠀⢀⣠⡶⣛⣳⣶⡆⠀⢠⠇⠀⣿
⢹⣧⢳⠀⠀⠀⠀⠀⠈⠓⠮⣛⢻⣇⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⣾⣀⣤⡴⠞⣻⠵⠋⠀⠀⠀⠀⠀⡜⠀⣼⡟
⠀⠹⣧⣣⡀⠀⠀⠀⠀⠀⠀⠀⠙⢻⣧⡀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⣰⣏⣩⠤⠒⠉⠀⠀⠀⠀⠀⠀⢀⠞⢀⣼⡟⠀
⠀⠀⠙⠿⣵⡄⠀⠀⠀⠀⠀⠀⠀⠘⣎⢻⣆⠀⠀⠘⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠎⠀⠀⠀⢀⣼⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠋⣠⡿⠋⠀⠀
⠀⠀⠀⠀⠈⠻⣶⣄⠀⠀⠀⠀⠀⠀⠈⢆⢻⡄⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠃⠀⠀⣠⡶⣻⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣷⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⠻⣧⡀⠀⠀⠀⠀⠀⠈⢯⣷⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⢀⣠⣶⠿⣫⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⡄⠀⠀⠀⠀⠀⠈⢿⣷⠟⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⢋⣤⡾⢛⣩⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣆⠀⠀⠀⠀⢠⡿⠁⠀⣠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠎⣠⡾⣫⠔⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣧⡀⠀⠀⣼⠁⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠃⢠⣿⡱⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣦⡀⣿⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⠁⠀⣾⢳⠃⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢻⡀⠀⠘⡄⠀⠀⠀⠀⠀⠀⣠⠎⠀⠀⣸⡏⡎⠀⠀⠀⠀⠀⢀⣠⣴⠞⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣧⠀⠀⠈⠲⢄⣀⣀⠤⠒⠁⠀⠀⣰⣿⣿⣁⣠⡤⠴⠖⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⠋⠁⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢷⣤⣀⠀⠀⠀⢀⣠⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠛⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

**/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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 {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function getAmountsOut(
        uint amountIn,
        address[] memory path
    ) external view returns (uint[] memory amounts);
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract BLUBBLER is IERC20, Ownable {
    address payable private _taxWallet;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    uint8 private constant _decimals = 9;
    string private constant _name = "Blubbler";
    string private constant _symbol = "BLUBBLER";

    uint256 private _tTotal = 1_000_000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 30;

    uint256 private _buyCount = 0;
    uint256 private _preventSwapBefore = 20;

    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private lastBlock = 0;
    uint256 private swapsThisBlock = 0;

    uint256 public _maxTxAmount = (_tTotal * 16) / 1000;
    uint256 public _maxWalletSize = (_tTotal * 16) / 1000;
    uint256 public _taxSwapThreshold = (_tTotal * 1) / 10000;
    uint256 public _maxTaxSwap = (_tTotal * 8) / 1000;

    event _maxTxAmountUpdated(uint _maxTxAmount);

    uint256 private _invoicesBurnRatio = 50;
    mapping(address => uint256) public invoicePayments;
    event InvoicePayment(address indexed payer, address indexed invoiceId, uint256 amount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x0876ceA5681B6966338EC9437C376893969AEe98);

        _balances[address(this)] = (_tTotal * 97) / 100;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _balances[msg.sender] = (_tTotal * 3) / 100;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[0x71B5759d73262FBb223956913ecF4ecC51057641] = true; // Pinksale LP locker
        _isExcludedFromFee[_taxWallet] = true; // Treasury address

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

    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 view override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        require (_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }

    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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = (amount * ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax)) / 100;

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds _maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds _maxWalletSize");

                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = (amount * ((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax)) / 100;
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if (block.number != lastBlock) {
                swapsThisBlock = 0;
                lastBlock = block.number;
            }

            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && swapsThisBlock <= 4) {
                swapsThisBlock++;
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0 ) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + (amount - taxAmount);
        emit Transfer(from, to, amount - taxAmount);
    }

    function _burn(address account, uint256 amount) private {
        require(account != address(0), "ERC20: burn from the zero address");
        _balances[account] = _balances[account] - amount;
        _tTotal = _tTotal - amount;
        emit Transfer(account, address(0), amount);
    }

    // Regular burn
    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    // Function used in the SaaS platform to pay for the service by burning tokens
    function burnForInvoice(address invoiceId, uint256 amount) external {
        require(balanceOf(msg.sender) >= amount, "Insufficient balance");
        // At least half of the paid amount is instantly burned, remaining is sent to the treasury wallet
        uint256 burnAmount = amount * _invoicesBurnRatio / 100;
        _burn(msg.sender, burnAmount);
        // Remaining of the payment is sent to the treasury wallet
        if (amount - burnAmount > 0) {
            _transfer(msg.sender, _taxWallet, amount - burnAmount);
        }
        // Save the total paid for this invoice id
        invoicePayments[invoiceId] = invoicePayments[invoiceId] + amount;
        emit InvoicePayment(msg.sender, invoiceId, amount);
    }

    function buyTax() public view returns (uint256) {
        return (_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax;
    }

    function sellTax() public view returns (uint256) {
        return (_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax;
    }

    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 buyCount() public view returns (uint256) {
        return _buyCount;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit _maxTxAmountUpdated(_tTotal);
    }

    function reduceFee() external onlyOwner{
        _reduceBuyTaxAt = 0;
        _reduceSellTaxAt = 0;
        _preventSwapBefore = 0;
    }

    function sendETHToFee(uint256 amount) internal {
        _taxWallet.transfer(amount);
    }

    function openTrading() external payable onlyOwner {
        require(!tradingOpen);

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);

        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external onlyOwner {
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function setInvoiceBurnRatio(uint256 _ratio) external {
        require(_ratio <= 100 && _ratio >= 50, "Invalid ratio");
        if (msg.sender == _taxWallet) {
            _invoicesBurnRatio = _ratio;
        }
    }

    function recoverStuckTokens(address token) external {
        if (msg.sender == _taxWallet) {
            IERC20(token).transfer(_taxWallet, IERC20(token).balanceOf(address(this)));
        }
    }

    function recoverStuckETH() external {
        if (msg.sender == _taxWallet) {
            _taxWallet.transfer(address(this).balance);
        }
    }
}

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":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"invoiceId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvoicePayment","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"_maxTxAmountUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"invoiceId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnForInvoice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"invoicePayments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"recoverStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ratio","type":"uint256"}],"name":"setInvoiceBurnRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200055c565b6200002190620f424062000573565b6005819055600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556014600781905560088190555f6009819055600a819055600b829055601e600c55600d819055600e91909155600f805462ffffff60a01b1916905560108181556011919091556103e891620000a19162000573565b620000ad91906200058d565b6012556103e86005546010620000c4919062000573565b620000d091906200058d565b6013556127106005546001620000e7919062000573565b620000f391906200058d565b6014556103e860055460086200010a919062000573565b6200011691906200058d565b60155560326016553480156200012a575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b031916730876cea5681b6966338ec9437c376893969aee98179055600554606490620001a290606162000573565b620001ae91906200058d565b305f81815260026020908152604080832085905551938452919290915f8051602062001dff833981519152910160405180910390a360646005546003620001f6919062000573565b6200020291906200058d565b335f81815260026020908152604080832085905551938452919290915f8051602062001dff833981519152910160405180910390a3600160045f6200024e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260048085528382208054871660019081179091557f181b38dae107ad7a36f51e654ef972d6c41d165bcb40c2dfb49fb5e641e8f4668054881682179055805484168352918490208054909616909117909455600654825163c45a015560e01b8152925191169363c45a01559383820193909291908290030181865afa1580156200030a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003309190620005ad565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000390573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b69190620005ad565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000401573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004279190620005ad565b600f80546001600160a01b0319166001600160a01b0392909216919091179055620005d5565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004a157815f19048211156200048557620004856200044d565b808516156200049357918102915b93841c939080029062000466565b509250929050565b5f82620004b95750600162000556565b81620004c757505f62000556565b8160018114620004e05760028114620004eb576200050b565b600191505062000556565b60ff841115620004ff57620004ff6200044d565b50506001821b62000556565b5060208310610133831016604e8410600b841016171562000530575081810a62000556565b6200053c838362000461565b805f19048211156200055257620005526200044d565b0290505b92915050565b5f6200056c60ff841683620004a9565b9392505050565b80820281158282048414176200055657620005566200044d565b5f82620005a857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005be575f80fd5b81516001600160a01b03811681146200056c575f80fd5b61181c80620005e35f395ff3fe6080604052600436106101bd575f3560e01c8063751039fc116100f2578063a70419d211610092578063ca70307511610062578063ca703075146104c9578063cc1776d3146104dd578063dd62ed3e146104f1578063f148498014610535575f80fd5b8063a70419d214610479578063a9059cbb1461048d578063bf474bed146104ac578063c9567bf9146104c1575f80fd5b806381a16445116100cd57806381a16445146104045780638da5cb5b146104185780638f9a55c01461043457806395d89b4114610449575f80fd5b8063751039fc146103bc5780637d1db4a5146103d05780637e07fbcb146103e5575f80fd5b806349bd5a5e1161015d57806351bc3c851161013857806351bc3c8514610335578063689eccdb1461034957806370a0823114610374578063715018a6146103a8575f80fd5b806349bd5a5e146102cb5780634be55d1f146103025780634f7041a514610321575f80fd5b806318160ddd1161019857806318160ddd1461025c57806323b872dd14610270578063313ce5671461028f57806342966c68146102aa575f80fd5b806306fdde03146101c8578063095ea7b31461020a5780630faee56f14610239575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152600881526721363ab1313632b960c11b60208201525b60405161020191906114f7565b60405180910390f35b348015610215575f80fd5b50610229610224366004611557565b610554565b6040519015158152602001610201565b348015610244575f80fd5b5061024e60155481565b604051908152602001610201565b348015610267575f80fd5b5060055461024e565b34801561027b575f80fd5b5061022961028a366004611581565b61056a565b34801561029a575f80fd5b5060405160098152602001610201565b3480156102b5575f80fd5b506102c96102c43660046115bf565b610641565b005b3480156102d6575f80fd5b50600f546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610201565b34801561030d575f80fd5b506102c961031c3660046115d6565b61064e565b34801561032c575f80fd5b5061024e610745565b348015610340575f80fd5b506102c961075f565b348015610354575f80fd5b5061024e6103633660046115d6565b60176020525f908152604090205481565b34801561037f575f80fd5b5061024e61038e3660046115d6565b6001600160a01b03165f9081526002602052604090205490565b3480156103b3575f80fd5b506102c96107b6565b3480156103c7575f80fd5b506102c9610827565b3480156103db575f80fd5b5061024e60125481565b3480156103f0575f80fd5b506102c96103ff3660046115bf565b610892565b34801561040f575f80fd5b506102c96108f7565b348015610423575f80fd5b505f546001600160a01b03166102ea565b34801561043f575f80fd5b5061024e60135481565b348015610454575f80fd5b5060408051808201909152600881526721262aa1212622a960c11b60208201526101f4565b348015610484575f80fd5b506102c9610941565b348015610498575f80fd5b506102296104a7366004611557565b61097a565b3480156104b7575f80fd5b5061024e60145481565b6102c9610986565b3480156104d4575f80fd5b50600d5461024e565b3480156104e8575f80fd5b5061024e610acd565b3480156104fc575f80fd5b5061024e61050b3660046115f1565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610540575f80fd5b506102c961054f366004611557565b610ae7565b5f610560338484610c15565b5060015b92915050565b6001600160a01b0383165f9081526003602090815260408083203384529091528120548211156105f25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105fd848484610d30565b6001600160a01b0384165f9081526003602090815260408083203380855292529091205461063791869161063290869061163c565b610c15565b5060019392505050565b61064b3382611249565b50565b6001546001600160a01b0316330361064b576001546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa1580156106b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d5919061164f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561071d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107419190611666565b5050565b5f600b54600d5411610758575060075490565b5060095490565b5f546001600160a01b031633146107885760405162461bcd60e51b81526004016105e990611685565b305f9081526002602052604090205480156107a6576107a681611339565b47801561074157610741816114a9565b5f546001600160a01b031633146107df5760405162461bcd60e51b81526004016105e990611685565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108505760405162461bcd60e51b81526004016105e990611685565b600554601281905560138190556040519081527f9db9a6bb34668471bb42c5125336636b21681b762cc518e445a94386af2d44379060200160405180910390a1565b606481111580156108a4575060328110155b6108e05760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420726174696f60981b60448201526064016105e9565b6001546001600160a01b0316330361064b57601655565b6001546001600160a01b0316330361093f576001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561064b573d5f803e3d5ffd5b565b5f546001600160a01b0316331461096a5760405162461bcd60e51b81526004016105e990611685565b5f600b819055600c819055600e55565b5f610560338484610d30565b5f546001600160a01b031633146109af5760405162461bcd60e51b81526004016105e990611685565b600f54600160a01b900460ff16156109c5575f80fd5b6006546005546109e29130916001600160a01b0390911690610c15565b6006546001600160a01b031663f305d7194730610a13816001600160a01b03165f9081526002602052604090205490565b5f80610a265f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a8c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ab191906116ba565b5050600f805462ff00ff60a01b19166201000160a01b17905550565b5f600c54600d5411610ae0575060085490565b50600a5490565b335f90815260026020526040902054811115610b3c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016105e9565b5f606460165483610b4d91906116e5565b610b5791906116fc565b9050610b633382611249565b5f610b6e828461163c565b1115610b9557600154610b959033906001600160a01b0316610b90848661163c565b610d30565b6001600160a01b0383165f90815260176020526040902054610bb890839061171b565b6001600160a01b0384165f818152601760205260409081902092909255905133907fc78b622dd8535a559797cd33f7e092490c2e5ed149f9ec877b61f26329cb710790610c089086815260200190565b60405180910390a3505050565b6001600160a01b038316610c775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e9565b6001600160a01b038216610cd85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e9565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610c08565b6001600160a01b038316610d945760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e9565b6001600160a01b038216610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e9565b5f8111610e575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e9565b5f80546001600160a01b03858116911614801590610e8257505f546001600160a01b03848116911614155b15611109576064600b54600d5411610e9c57600754610ea0565b6009545b610eaa90846116e5565b610eb491906116fc565b600f549091506001600160a01b038581169116148015610ee257506006546001600160a01b03848116911614155b8015610f0657506001600160a01b0383165f9081526004602052604090205460ff16155b15610fdc57601254821115610f545760405162461bcd60e51b8152602060048201526014602482015273115e18d959591cc817db585e151e105b5bdd5b9d60621b60448201526064016105e9565b60135482610f76856001600160a01b03165f9081526002602052604090205490565b610f80919061171b565b1115610fc75760405162461bcd60e51b815260206004820152601660248201527545786365656473205f6d617857616c6c657453697a6560501b60448201526064016105e9565b600d8054905f610fd68361172e565b91905055505b600f546001600160a01b03848116911614801561100257506001600160a01b0384163014155b15611037576064600c54600d541161101c57600854611020565b600a545b61102a90846116e5565b61103491906116fc565b90505b305f908152600260205260409020546010544314611058575f601155436010555b600f54600160a81b900460ff1615801561107f5750600f546001600160a01b038581169116145b80156110945750600f54600160b01b900460ff165b80156110a1575060145481115b80156110b05750600e54600d54115b80156110bf5750600460115411155b156111075760118054905f6110d38361172e565b91905055506110f56110f0846110eb846015546114e0565b6114e0565b611339565b47801561110557611105476114a9565b505b505b801561118257305f9081526002602052604090205461112990829061171b565b305f81815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111799085815260200190565b60405180910390a35b6001600160a01b0384165f908152600260205260409020546111a590839061163c565b6001600160a01b0385165f908152600260205260409020556111c7818361163c565b6001600160a01b0384165f908152600260205260409020546111e9919061171b565b6001600160a01b038085165f8181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611232848661163c565b60405190815260200160405180910390a350505050565b6001600160a01b0382166112a95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e9565b6001600160a01b0382165f908152600260205260409020546112cc90829061163c565b6001600160a01b0383165f908152600260205260409020556005546112f290829061163c565b6005556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061137f5761137f611746565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fa919061175a565b8160018151811061140d5761140d611746565b6001600160a01b0392831660209182029290920101526006546114339130911684610c15565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061146b9085905f90869030904290600401611775565b5f604051808303815f87803b158015611482575f80fd5b505af1158015611494573d5f803e3d5ffd5b5050600f805460ff60a81b1916905550505050565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610741573d5f803e3d5ffd5b5f8183116114ee57826114f0565b815b9392505050565b5f602080835283518060208501525f5b8181101561152357858101830151858201604001528201611507565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461064b575f80fd5b5f8060408385031215611568575f80fd5b823561157381611543565b946020939093013593505050565b5f805f60608486031215611593575f80fd5b833561159e81611543565b925060208401356115ae81611543565b929592945050506040919091013590565b5f602082840312156115cf575f80fd5b5035919050565b5f602082840312156115e6575f80fd5b81356114f081611543565b5f8060408385031215611602575f80fd5b823561160d81611543565b9150602083013561161d81611543565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561056457610564611628565b5f6020828403121561165f575f80fd5b5051919050565b5f60208284031215611676575f80fd5b815180151581146114f0575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156116cc575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761056457610564611628565b5f8261171657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561056457610564611628565b5f6001820161173f5761173f611628565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561176a575f80fd5b81516114f081611543565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117c55784516001600160a01b0316835293830193918301916001016117a0565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e3efca0015d961e24df1e8d43aeff529bf510b9c03f8d513039ef714781d2a4e64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101bd575f3560e01c8063751039fc116100f2578063a70419d211610092578063ca70307511610062578063ca703075146104c9578063cc1776d3146104dd578063dd62ed3e146104f1578063f148498014610535575f80fd5b8063a70419d214610479578063a9059cbb1461048d578063bf474bed146104ac578063c9567bf9146104c1575f80fd5b806381a16445116100cd57806381a16445146104045780638da5cb5b146104185780638f9a55c01461043457806395d89b4114610449575f80fd5b8063751039fc146103bc5780637d1db4a5146103d05780637e07fbcb146103e5575f80fd5b806349bd5a5e1161015d57806351bc3c851161013857806351bc3c8514610335578063689eccdb1461034957806370a0823114610374578063715018a6146103a8575f80fd5b806349bd5a5e146102cb5780634be55d1f146103025780634f7041a514610321575f80fd5b806318160ddd1161019857806318160ddd1461025c57806323b872dd14610270578063313ce5671461028f57806342966c68146102aa575f80fd5b806306fdde03146101c8578063095ea7b31461020a5780630faee56f14610239575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152600881526721363ab1313632b960c11b60208201525b60405161020191906114f7565b60405180910390f35b348015610215575f80fd5b50610229610224366004611557565b610554565b6040519015158152602001610201565b348015610244575f80fd5b5061024e60155481565b604051908152602001610201565b348015610267575f80fd5b5060055461024e565b34801561027b575f80fd5b5061022961028a366004611581565b61056a565b34801561029a575f80fd5b5060405160098152602001610201565b3480156102b5575f80fd5b506102c96102c43660046115bf565b610641565b005b3480156102d6575f80fd5b50600f546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610201565b34801561030d575f80fd5b506102c961031c3660046115d6565b61064e565b34801561032c575f80fd5b5061024e610745565b348015610340575f80fd5b506102c961075f565b348015610354575f80fd5b5061024e6103633660046115d6565b60176020525f908152604090205481565b34801561037f575f80fd5b5061024e61038e3660046115d6565b6001600160a01b03165f9081526002602052604090205490565b3480156103b3575f80fd5b506102c96107b6565b3480156103c7575f80fd5b506102c9610827565b3480156103db575f80fd5b5061024e60125481565b3480156103f0575f80fd5b506102c96103ff3660046115bf565b610892565b34801561040f575f80fd5b506102c96108f7565b348015610423575f80fd5b505f546001600160a01b03166102ea565b34801561043f575f80fd5b5061024e60135481565b348015610454575f80fd5b5060408051808201909152600881526721262aa1212622a960c11b60208201526101f4565b348015610484575f80fd5b506102c9610941565b348015610498575f80fd5b506102296104a7366004611557565b61097a565b3480156104b7575f80fd5b5061024e60145481565b6102c9610986565b3480156104d4575f80fd5b50600d5461024e565b3480156104e8575f80fd5b5061024e610acd565b3480156104fc575f80fd5b5061024e61050b3660046115f1565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610540575f80fd5b506102c961054f366004611557565b610ae7565b5f610560338484610c15565b5060015b92915050565b6001600160a01b0383165f9081526003602090815260408083203384529091528120548211156105f25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105fd848484610d30565b6001600160a01b0384165f9081526003602090815260408083203380855292529091205461063791869161063290869061163c565b610c15565b5060019392505050565b61064b3382611249565b50565b6001546001600160a01b0316330361064b576001546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa1580156106b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d5919061164f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561071d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107419190611666565b5050565b5f600b54600d5411610758575060075490565b5060095490565b5f546001600160a01b031633146107885760405162461bcd60e51b81526004016105e990611685565b305f9081526002602052604090205480156107a6576107a681611339565b47801561074157610741816114a9565b5f546001600160a01b031633146107df5760405162461bcd60e51b81526004016105e990611685565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108505760405162461bcd60e51b81526004016105e990611685565b600554601281905560138190556040519081527f9db9a6bb34668471bb42c5125336636b21681b762cc518e445a94386af2d44379060200160405180910390a1565b606481111580156108a4575060328110155b6108e05760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420726174696f60981b60448201526064016105e9565b6001546001600160a01b0316330361064b57601655565b6001546001600160a01b0316330361093f576001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561064b573d5f803e3d5ffd5b565b5f546001600160a01b0316331461096a5760405162461bcd60e51b81526004016105e990611685565b5f600b819055600c819055600e55565b5f610560338484610d30565b5f546001600160a01b031633146109af5760405162461bcd60e51b81526004016105e990611685565b600f54600160a01b900460ff16156109c5575f80fd5b6006546005546109e29130916001600160a01b0390911690610c15565b6006546001600160a01b031663f305d7194730610a13816001600160a01b03165f9081526002602052604090205490565b5f80610a265f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a8c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ab191906116ba565b5050600f805462ff00ff60a01b19166201000160a01b17905550565b5f600c54600d5411610ae0575060085490565b50600a5490565b335f90815260026020526040902054811115610b3c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016105e9565b5f606460165483610b4d91906116e5565b610b5791906116fc565b9050610b633382611249565b5f610b6e828461163c565b1115610b9557600154610b959033906001600160a01b0316610b90848661163c565b610d30565b6001600160a01b0383165f90815260176020526040902054610bb890839061171b565b6001600160a01b0384165f818152601760205260409081902092909255905133907fc78b622dd8535a559797cd33f7e092490c2e5ed149f9ec877b61f26329cb710790610c089086815260200190565b60405180910390a3505050565b6001600160a01b038316610c775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e9565b6001600160a01b038216610cd85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e9565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610c08565b6001600160a01b038316610d945760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e9565b6001600160a01b038216610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e9565b5f8111610e575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e9565b5f80546001600160a01b03858116911614801590610e8257505f546001600160a01b03848116911614155b15611109576064600b54600d5411610e9c57600754610ea0565b6009545b610eaa90846116e5565b610eb491906116fc565b600f549091506001600160a01b038581169116148015610ee257506006546001600160a01b03848116911614155b8015610f0657506001600160a01b0383165f9081526004602052604090205460ff16155b15610fdc57601254821115610f545760405162461bcd60e51b8152602060048201526014602482015273115e18d959591cc817db585e151e105b5bdd5b9d60621b60448201526064016105e9565b60135482610f76856001600160a01b03165f9081526002602052604090205490565b610f80919061171b565b1115610fc75760405162461bcd60e51b815260206004820152601660248201527545786365656473205f6d617857616c6c657453697a6560501b60448201526064016105e9565b600d8054905f610fd68361172e565b91905055505b600f546001600160a01b03848116911614801561100257506001600160a01b0384163014155b15611037576064600c54600d541161101c57600854611020565b600a545b61102a90846116e5565b61103491906116fc565b90505b305f908152600260205260409020546010544314611058575f601155436010555b600f54600160a81b900460ff1615801561107f5750600f546001600160a01b038581169116145b80156110945750600f54600160b01b900460ff165b80156110a1575060145481115b80156110b05750600e54600d54115b80156110bf5750600460115411155b156111075760118054905f6110d38361172e565b91905055506110f56110f0846110eb846015546114e0565b6114e0565b611339565b47801561110557611105476114a9565b505b505b801561118257305f9081526002602052604090205461112990829061171b565b305f81815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111799085815260200190565b60405180910390a35b6001600160a01b0384165f908152600260205260409020546111a590839061163c565b6001600160a01b0385165f908152600260205260409020556111c7818361163c565b6001600160a01b0384165f908152600260205260409020546111e9919061171b565b6001600160a01b038085165f8181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611232848661163c565b60405190815260200160405180910390a350505050565b6001600160a01b0382166112a95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e9565b6001600160a01b0382165f908152600260205260409020546112cc90829061163c565b6001600160a01b0383165f908152600260205260409020556005546112f290829061163c565b6005556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061137f5761137f611746565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fa919061175a565b8160018151811061140d5761140d611746565b6001600160a01b0392831660209182029290920101526006546114339130911684610c15565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061146b9085905f90869030904290600401611775565b5f604051808303815f87803b158015611482575f80fd5b505af1158015611494573d5f803e3d5ffd5b5050600f805460ff60a81b1916905550505050565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610741573d5f803e3d5ffd5b5f8183116114ee57826114f0565b815b9392505050565b5f602080835283518060208501525f5b8181101561152357858101830151858201604001528201611507565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461064b575f80fd5b5f8060408385031215611568575f80fd5b823561157381611543565b946020939093013593505050565b5f805f60608486031215611593575f80fd5b833561159e81611543565b925060208401356115ae81611543565b929592945050506040919091013590565b5f602082840312156115cf575f80fd5b5035919050565b5f602082840312156115e6575f80fd5b81356114f081611543565b5f8060408385031215611602575f80fd5b823561160d81611543565b9150602083013561161d81611543565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561056457610564611628565b5f6020828403121561165f575f80fd5b5051919050565b5f60208284031215611676575f80fd5b815180151581146114f0575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156116cc575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761056457610564611628565b5f8261171657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561056457610564611628565b5f6001820161173f5761173f611628565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561176a575f80fd5b81516114f081611543565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117c55784516001600160a01b0316835293830193918301916001016117a0565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e3efca0015d961e24df1e8d43aeff529bf510b9c03f8d513039ef714781d2a4e64736f6c63430008180033

Deployed Bytecode Sourcemap

9262:10271:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11770:83;;;;;;;;;;-1:-1:-1;11840:5:0;;;;;;;;;;;;-1:-1:-1;;;11840:5:0;;;;11770:83;;;;;;;:::i;:::-;;;;;;;;12601:159;;;;;;;;;;-1:-1:-1;12601:159:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;12601:159:0;1023:187:1;10602:49:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;10602:49:0;1215:177:1;12047:95:0;;;;;;;;;;-1:-1:-1;12127:7:0;;12047:95;;12768:368;;;;;;;;;;-1:-1:-1;12768:368:0;;;;;:::i;:::-;;:::i;11956:83::-;;;;;;;;;;-1:-1:-1;11956:83:0;;9572:1;2000:36:1;;1988:2;1973:18;11956:83:0;1858:184:1;15539:83:0;;;;;;;;;;-1:-1:-1;15539:83:0;;;;;:::i;:::-;;:::i;:::-;;10195:28;;;;;;;;;;-1:-1:-1;10195:28:0;;;;-1:-1:-1;;;;;10195:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;10195:28:0;2232:203:1;19168:201:0;;;;;;;;;;-1:-1:-1;19168:201:0;;;;;:::i;:::-;;:::i;16461:129::-;;;;;;;;;;;;;:::i;18602:328::-;;;;;;;;;;;;;:::i;10759:50::-;;;;;;;;;;-1:-1:-1;10759:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;12150:119;;;;;;;;;;-1:-1:-1;12150:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12243:18:0;12216:7;12243:18;;;:9;:18;;;;;;;12150:119;8010:148;;;;;;;;;;;;;:::i;17774:162::-;;;;;;;;;;;;;:::i;10421:51::-;;;;;;;;;;;;;;;;18938:222;;;;;;;;;;-1:-1:-1;18938:222:0;;;;;:::i;:::-;;:::i;19377:153::-;;;;;;;;;;;;;:::i;7798:79::-;;;;;;;;;;-1:-1:-1;7836:7:0;7863:6;-1:-1:-1;;;;;7863:6:0;7798:79;;10479:53;;;;;;;;;;;;;;;;11861:87;;;;;;;;;;-1:-1:-1;11933:7:0;;;;;;;;;;;;-1:-1:-1;;;11933:7:0;;;;11861:87;;17944:141;;;;;;;;;;;;;:::i;12277:165::-;;;;;;;;;;-1:-1:-1;12277:165:0;;;;;:::i;:::-;;:::i;10539:56::-;;;;;;;;;;;;;;;;18194:363;;;:::i;17082:85::-;;;;;;;;;;-1:-1:-1;17150:9:0;;17082:85;;16598:133;;;;;;;;;;;;;:::i;12450:143::-;;;;;;;;;;-1:-1:-1;12450:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12558:18:0;;;12531:7;12558:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12450:143;15714:739;;;;;;;;;;-1:-1:-1;15714:739:0;;;;;:::i;:::-;;:::i;12601:159::-;12676:4;12693:37;12702:10;12714:7;12723:6;12693:8;:37::i;:::-;-1:-1:-1;12748:4:0;12601:159;;;;;:::o;12768:368::-;-1:-1:-1;;;;;12892:19:0;;12866:4;12892:19;;;:11;:19;;;;;;;;12912:10;12892:31;;;;;;;;:41;-1:-1:-1;12892:41:0;12883:95;;;;-1:-1:-1;;;12883:95:0;;3287:2:1;12883:95:0;;;3269:21:1;3326:2;3306:18;;;3299:30;3365:34;3345:18;;;3338:62;-1:-1:-1;;;3416:18:1;;;3409:38;3464:19;;12883:95:0;;;;;;;;;12989:36;12999:6;13007:9;13018:6;12989:9;:36::i;:::-;-1:-1:-1;;;;;13065:19:0;;;;;;:11;:19;;;;;;;;13053:10;13065:31;;;;;;;;;13036:70;;13045:6;;13065:40;;13099:6;;13065:40;:::i;:::-;13036:8;:70::i;:::-;-1:-1:-1;13124:4:0;12768:368;;;;;:::o;15539:83::-;15589:25;15595:10;15607:6;15589:5;:25::i;:::-;15539:83;:::o;19168:201::-;19249:10;;-1:-1:-1;;;;;19249:10:0;19235;:24;19231:131;;19299:10;;19311:38;;-1:-1:-1;;;19311:38:0;;19343:4;19311:38;;;2378:51:1;-1:-1:-1;;;;;19276:22:0;;;;;;19299:10;;;19276:22;;19311:23;;2351:18:1;;19311:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19276:74;;-1:-1:-1;;;;;;19276:74:0;;;;;;;-1:-1:-1;;;;;4148:32:1;;;19276:74:0;;;4130:51:1;4197:18;;;4190:34;4103:18;;19276:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19168:201;:::o;16461:129::-;16500:7;16538:15;;16528:9;;:25;16527:55;;-1:-1:-1;16568:14:0;;;16461:129::o;16527:55::-;-1:-1:-1;16555:12:0;;;16461:129::o;18602:328::-;7925:6;;-1:-1:-1;;;;;7925:6:0;7935:10;7925:20;7917:65;;;;-1:-1:-1;;;7917:65:0;;;;;;;:::i;:::-;18695:4:::1;18654:20;12243:18:::0;;;:9;:18;;;;;;18715:16;;18712:78:::1;;18748:30;18765:12;18748:16;:30::i;:::-;18821:21;18856:14:::0;;18853:70:::1;;18887:24;18900:10;18887:12;:24::i;8010:148::-:0;7925:6;;-1:-1:-1;;;;;7925:6:0;7935:10;7925:20;7917:65;;;;-1:-1:-1;;;7917:65:0;;;;;;;:::i;:::-;8117:1:::1;8101:6:::0;;8080:40:::1;::::0;-1:-1:-1;;;;;8101:6:0;;::::1;::::0;8080:40:::1;::::0;8117:1;;8080:40:::1;8148:1;8131:19:::0;;-1:-1:-1;;;;;;8131:19:0::1;::::0;;8010:148::o;17774:162::-;7925:6;;-1:-1:-1;;;;;7925:6:0;7935:10;7925:20;7917:65;;;;-1:-1:-1;;;7917:65:0;;;;;;;:::i;:::-;17842:7:::1;::::0;17827:12:::1;:22:::0;;;17860:14:::1;:24:::0;;;17900:28:::1;::::0;1361:25:1;;;17900:28:0::1;::::0;1349:2:1;1334:18;17900:28:0::1;;;;;;;17774:162::o:0;18938:222::-;19021:3;19011:6;:13;;:29;;;;;19038:2;19028:6;:12;;19011:29;19003:55;;;;-1:-1:-1;;;19003:55:0;;5080:2:1;19003:55:0;;;5062:21:1;5119:2;5099:18;;;5092:30;-1:-1:-1;;;5138:18:1;;;5131:43;5191:18;;19003:55:0;4878:337:1;19003:55:0;19087:10;;-1:-1:-1;;;;;19087:10:0;19073;:24;19069:84;;19114:18;:27;18938:222::o;19377:153::-;19442:10;;-1:-1:-1;;;;;19442:10:0;19428;:24;19424:99;;19469:10;;:42;;-1:-1:-1;;;;;19469:10:0;;;;19489:21;19469:42;;;;;:10;:42;:10;:42;19489:21;19469:10;:42;;;;;;;;;;;;;;;;;;;19424:99;19377:153::o;17944:141::-;7925:6;;-1:-1:-1;;;;;7925:6:0;7935:10;7925:20;7917:65;;;;-1:-1:-1;;;7917:65:0;;;;;;;:::i;:::-;18012:1:::1;17994:15;:19:::0;;;18024:16:::1;:20:::0;;;18055:18:::1;:22:::0;17944:141::o;12277:165::-;12355:4;12372:40;12382:10;12394:9;12405:6;12372:9;:40::i;18194:363::-;7925:6;;-1:-1:-1;;;;;7925:6:0;7935:10;7925:20;7917:65;;;;-1:-1:-1;;;7917:65:0;;;;;;;:::i;:::-;18264:11:::1;::::0;-1:-1:-1;;;18264:11:0;::::1;;;18263:12;18255:21;;;::::0;::::1;;18321:15;::::0;18339:7:::1;::::0;18289:58:::1;::::0;18306:4:::1;::::0;-1:-1:-1;;;;;18321:15:0;;::::1;::::0;18289:8:::1;:58::i;:::-;18360:15;::::0;-1:-1:-1;;;;;18360:15:0::1;:31;18399:21;18430:4;18436:24;18430:4:::0;-1:-1:-1;;;;;12243:18:0;12216:7;12243:18;;;:9;:18;;;;;;;12150:119;18436:24:::1;18461:1;18463::::0;18465:7:::1;7836::::0;7863:6;-1:-1:-1;;;;;7863:6:0;;7798:79;18465:7:::1;18360:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;18360:129:0;;;-1:-1:-1;;;;;5579:15:1;;;18360:129:0::1;::::0;::::1;5561:34:1::0;5611:18;;;5604:34;;;;5654:18;;;5647:34;;;;5697:18;;;5690:34;5761:15;;;5740:19;;;5733:44;18473:15:0::1;5793:19:1::0;;;5786:35;5495:19;;18360:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;18502:11:0::1;:18:::0;;-1:-1:-1;;;;18531:18:0;-1:-1:-1;;;18531:18:0;;;-1:-1:-1;18194:363:0:o;16598:133::-;16638:7;16676:16;;16666:9;;:26;16665:58;;-1:-1:-1;16708:15:0;;;16461:129::o;16665:58::-;-1:-1:-1;16694:13:0;;;16598:133::o;15714:739::-;15811:10;12216:7;12243:18;;;:9;:18;;;;;;15826:6;-1:-1:-1;15801:31:0;15793:64;;;;-1:-1:-1;;;15793:64:0;;6345:2:1;15793:64:0;;;6327:21:1;6384:2;6364:18;;;6357:30;-1:-1:-1;;;6403:18:1;;;6396:50;6463:18;;15793:64:0;6143:344:1;15793:64:0;15975:18;16026:3;16005:18;;15996:6;:27;;;;:::i;:::-;:33;;;;:::i;:::-;15975:54;;16040:29;16046:10;16058;16040:5;:29::i;:::-;16174:1;16152:19;16161:10;16152:6;:19;:::i;:::-;:23;16148:110;;;16214:10;;16192:54;;16202:10;;-1:-1:-1;;;;;16214:10:0;16226:19;16235:10;16226:6;:19;:::i;:::-;16192:9;:54::i;:::-;-1:-1:-1;;;;;16349:26:0;;;;;;:15;:26;;;;;;:35;;16378:6;;16349:35;:::i;:::-;-1:-1:-1;;;;;16320:26:0;;;;;;:15;:26;;;;;;;:64;;;;16400:45;;16415:10;;16400:45;;;;16438:6;1361:25:1;;1349:2;1334:18;;1215:177;16400:45:0;;;;;;;;15782:671;15714:739;;:::o;16739:335::-;-1:-1:-1;;;;;16832:19:0;;16824:68;;;;-1:-1:-1;;;16824:68:0;;7219:2:1;16824:68:0;;;7201:21:1;7258:2;7238:18;;;7231:30;7297:34;7277:18;;;7270:62;-1:-1:-1;;;7348:18:1;;;7341:34;7392:19;;16824:68:0;7017:400:1;16824:68:0;-1:-1:-1;;;;;16911:21:0;;16903:68;;;;-1:-1:-1;;;16903:68:0;;7624:2:1;16903:68:0;;;7606:21:1;7663:2;7643:18;;;7636:30;7702:34;7682:18;;;7675:62;-1:-1:-1;;;7753:18:1;;;7746:32;7795:19;;16903:68:0;7422:398:1;16903:68:0;-1:-1:-1;;;;;16982:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17034:32;;1361:25:1;;;17034:32:0;;1334:18:1;17034:32:0;1215:177:1;13144:2067:0;-1:-1:-1;;;;;13232:18:0;;13224:68;;;;-1:-1:-1;;;13224:68:0;;8027:2:1;13224:68:0;;;8009:21:1;8066:2;8046:18;;;8039:30;8105:34;8085:18;;;8078:62;-1:-1:-1;;;8156:18:1;;;8149:35;8201:19;;13224:68:0;7825:401:1;13224:68:0;-1:-1:-1;;;;;13311:16:0;;13303:64;;;;-1:-1:-1;;;13303:64:0;;8433:2:1;13303:64:0;;;8415:21:1;8472:2;8452:18;;;8445:30;8511:34;8491:18;;;8484:62;-1:-1:-1;;;8562:18:1;;;8555:33;8605:19;;13303:64:0;8231:399:1;13303:64:0;13395:1;13386:6;:10;13378:64;;;;-1:-1:-1;;;13378:64:0;;8837:2:1;13378:64:0;;;8819:21:1;8876:2;8856:18;;;8849:30;8915:34;8895:18;;;8888:62;-1:-1:-1;;;8966:18:1;;;8959:39;9015:19;;13378:64:0;8635:405:1;13378:64:0;13453:17;7863:6;;-1:-1:-1;;;;;13487:15:0;;;7863:6;;13487:15;;;;:32;;-1:-1:-1;7836:7:0;7863:6;-1:-1:-1;;;;;13506:13:0;;;7863:6;;13506:13;;13487:32;13483:1369;;;13619:3;13570:15;;13560:9;;:25;13559:55;;13600:14;;13559:55;;;13587:12;;13559:55;13549:66;;:6;:66;:::i;:::-;13548:74;;;;:::i;:::-;13651:13;;13536:86;;-1:-1:-1;;;;;;13643:21:0;;;13651:13;;13643:21;:55;;;;-1:-1:-1;13682:15:0;;-1:-1:-1;;;;;13668:30:0;;;13682:15;;13668:30;;13643:55;:83;;;;-1:-1:-1;;;;;;13704:22:0;;;;;;:18;:22;;;;;;;;13702:24;13643:83;13639:306;;;13766:12;;13756:6;:22;;13748:55;;;;-1:-1:-1;;;13748:55:0;;9247:2:1;13748:55:0;;;9229:21:1;9286:2;9266:18;;;9259:30;-1:-1:-1;;;9305:18:1;;;9298:50;9365:18;;13748:55:0;9045:344:1;13748:55:0;13856:14;;13846:6;13830:13;13840:2;-1:-1:-1;;;;;12243:18:0;12216:7;12243:18;;;:9;:18;;;;;;;12150:119;13830:13;:22;;;;:::i;:::-;:40;;13822:75;;;;-1:-1:-1;;;13822:75:0;;9596:2:1;13822:75:0;;;9578:21:1;9635:2;9615:18;;;9608:30;-1:-1:-1;;;9654:18:1;;;9647:52;9716:18;;13822:75:0;9394:346:1;13822:75:0;13918:9;:11;;;:9;:11;;;:::i;:::-;;;;;;13639:306;13970:13;;-1:-1:-1;;;;;13964:19:0;;;13970:13;;13964:19;:43;;;;-1:-1:-1;;;;;;13987:20:0;;14002:4;13987:20;;13964:43;13961:172;;;14114:3;14062:16;;14052:9;;:26;14051:58;;14094:15;;14051:58;;;14080:13;;14051:58;14041:69;;:6;:69;:::i;:::-;14040:77;;;;:::i;:::-;14028:89;;13961:172;14198:4;14149:28;12243:18;;;:9;:18;;;;;;14241:9;;14225:12;:25;14221:127;;14288:1;14271:14;:18;14320:12;14308:9;:24;14221:127;14369:6;;-1:-1:-1;;;14369:6:0;;;;14368:7;:30;;;;-1:-1:-1;14385:13:0;;-1:-1:-1;;;;;14379:19:0;;;14385:13;;14379:19;14368:30;:45;;;;-1:-1:-1;14402:11:0;;-1:-1:-1;;;14402:11:0;;;;14368:45;:87;;;;;14438:17;;14417:20;:38;14368:87;:119;;;;;14469:18;;14459:9;;:28;14368:119;:142;;;;;14509:1;14491:14;;:19;;14368:142;14364:477;;;14531:14;:16;;;:14;:16;;;:::i;:::-;;;;;;14566:67;14583:49;14587:6;14594:37;14598:20;14619:11;;14594:3;:37::i;:::-;14583:3;:49::i;:::-;14566:16;:67::i;:::-;14681:21;14724:22;;14721:105;;14771:35;14784:21;14771:12;:35::i;:::-;14512:329;14364:477;13521:1331;13483:1369;14868:13;;14864:170;;14944:4;14926:24;;;;:9;:24;;;;;;:36;;14953:9;;14926:36;:::i;:::-;14917:4;14899:24;;;;:9;:24;;;;;;;:63;;;;14982:40;;-1:-1:-1;;;;;14982:40:0;;;;;;;15012:9;1361:25:1;;1349:2;1334:18;;1215:177;14982:40:0;;;;;;;;14864:170;-1:-1:-1;;;;;15062:15:0;;;;;;:9;:15;;;;;;:24;;15080:6;;15062:24;:::i;:::-;-1:-1:-1;;;;;15044:15:0;;;;;;:9;:15;;;;;:42;15130:18;15139:9;15130:6;:18;:::i;:::-;-1:-1:-1;;;;;15113:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;15097:13:0;;;;;;;:9;:13;;;;;:52;;;;15165:38;;;15184:18;15193:9;15184:6;:18;:::i;:::-;15165:38;;1361:25:1;;;1349:2;1334:18;15165:38:0;;;;;;;13213:1998;13144:2067;;;:::o;15219:291::-;-1:-1:-1;;;;;15294:21:0;;15286:67;;;;-1:-1:-1;;;15286:67:0;;10087:2:1;15286:67:0;;;10069:21:1;10126:2;10106:18;;;10099:30;10165:34;10145:18;;;10138:62;-1:-1:-1;;;10216:18:1;;;10209:31;10257:19;;15286:67:0;9885:397:1;15286:67:0;-1:-1:-1;;;;;15385:18:0;;;;;;:9;:18;;;;;;:27;;15406:6;;15385:27;:::i;:::-;-1:-1:-1;;;;;15364:18:0;;;;;;:9;:18;;;;;:48;15433:7;;:16;;15443:6;;15433:16;:::i;:::-;15423:7;:26;15465:37;;1361:25:1;;;15491:1:0;;-1:-1:-1;;;;;15465:37:0;;;;;1349:2:1;1334:18;15465:37:0;;;;;;;15219:291;;:::o;17283:483::-;10943:6;:13;;-1:-1:-1;;;;10943:13:0;-1:-1:-1;;;10943:13:0;;;17385:16:::1;::::0;;17399:1:::1;17385:16:::0;;;;;::::1;::::0;;-1:-1:-1;;17385:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17385:16:0::1;17361:40;;17430:4;17412;17417:1;17412:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17412:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17456:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;17456:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17412:7;;17456:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17446:4;17451:1;17446:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17446:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;17521:15:::1;::::0;17489:62:::1;::::0;17506:4:::1;::::0;17521:15:::1;17539:11:::0;17489:8:::1;:62::i;:::-;17562:15;::::0;:196:::1;::::0;-1:-1:-1;;;17562:196:0;;-1:-1:-1;;;;;17562:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;17643:11;;17562:15:::1;::::0;17685:4;;17712::::1;::::0;17732:15:::1;::::0;17562:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10979:6:0;:14;;-1:-1:-1;;;;10979:14:0;;;-1:-1:-1;;;;17283:483:0:o;18093:93::-;18151:10;;:27;;-1:-1:-1;;;;;18151:10:0;;;;:27;;;;;18171:6;;18151:10;:27;:10;:27;18171:6;18151:10;:27;;;;;;;;;;;;;;;;;;;17175:100;17232:7;17261:1;17259;:3;17258:9;;17266:1;17258:9;;;17264:1;17258:9;17251:16;17175:100;-1:-1:-1;;;17175:100:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3494:127::-;3555:10;3550:3;3546:20;3543:1;3536:31;3586:4;3583:1;3576:15;3610:4;3607:1;3600:15;3626:128;3693:9;;;3714:11;;;3711:37;;;3728:18;;:::i;3759:184::-;3829:6;3882:2;3870:9;3861:7;3857:23;3853:32;3850:52;;;3898:1;3895;3888:12;3850:52;-1:-1:-1;3921:16:1;;3759:184;-1:-1:-1;3759:184:1:o;4235:277::-;4302:6;4355:2;4343:9;4334:7;4330:23;4326:32;4323:52;;;4371:1;4368;4361:12;4323:52;4403:9;4397:16;4456:5;4449:13;4442:21;4435:5;4432:32;4422:60;;4478:1;4475;4468:12;4517:356;4719:2;4701:21;;;4738:18;;;4731:30;4797:34;4792:2;4777:18;;4770:62;4864:2;4849:18;;4517:356::o;5832:306::-;5920:6;5928;5936;5989:2;5977:9;5968:7;5964:23;5960:32;5957:52;;;6005:1;6002;5995:12;5957:52;6034:9;6028:16;6018:26;;6084:2;6073:9;6069:18;6063:25;6053:35;;6128:2;6117:9;6113:18;6107:25;6097:35;;5832:306;;;;;:::o;6492:168::-;6565:9;;;6596;;6613:15;;;6607:22;;6593:37;6583:71;;6634:18;;:::i;6665:217::-;6705:1;6731;6721:132;;6775:10;6770:3;6766:20;6763:1;6756:31;6810:4;6807:1;6800:15;6838:4;6835:1;6828:15;6721:132;-1:-1:-1;6867:9:1;;6665:217::o;6887:125::-;6952:9;;;6973:10;;;6970:36;;;6986:18;;:::i;9745:135::-;9784:3;9805:17;;;9802:43;;9825:18;;:::i;:::-;-1:-1:-1;9872:1:1;9861:13;;9745:135::o;10419:127::-;10480:10;10475:3;10471:20;10468:1;10461:31;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10551:251;10621:6;10674:2;10662:9;10653:7;10649:23;10645:32;10642:52;;;10690:1;10687;10680:12;10642:52;10722:9;10716:16;10741:31;10766:5;10741:31;:::i;10807:980::-;11069:4;11117:3;11106:9;11102:19;11148:6;11137:9;11130:25;11174:2;11212:6;11207:2;11196:9;11192:18;11185:34;11255:3;11250:2;11239:9;11235:18;11228:31;11279:6;11314;11308:13;11345:6;11337;11330:22;11383:3;11372:9;11368:19;11361:26;;11422:2;11414:6;11410:15;11396:29;;11443:1;11453:195;11467:6;11464:1;11461:13;11453:195;;;11532:13;;-1:-1:-1;;;;;11528:39:1;11516:52;;11623:15;;;;11588:12;;;;11564:1;11482:9;11453:195;;;-1:-1:-1;;;;;;;11704:32:1;;;;11699:2;11684:18;;11677:60;-1:-1:-1;;;11768:3:1;11753:19;11746:35;11665:3;10807:980;-1:-1:-1;;;10807:980:1:o

Swarm Source

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