POL Price: $0.623308 (-3.93%)
 

Overview

Max Total Supply

1,000,000,000 $ROE

Holders

4,476

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Borroe

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2024-05-23
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;


/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}
/// @title Interface of the BORROE ERC20 token
interface IBorroe is IERC20 {
    event AddedToWhitelist(address indexed user);
    event RemovedFromWhitelist(address indexed user);

    /// @notice Adds a user to the whitelist
    /// @param user The user to add to the whitelist
    function addToWhitelist(address user) external;

    /// @notice Removes a user from the whitelist
    /// @param user The used to remove from the whitelist
    function removeFromWhitelist(address user) external;

    /// @notice Checks that address is whitelisted
    /// @param user The address of the user to check
    function checkWhitelisted(address user) external view returns (bool);

    /// @notice Returns the maximum total supply of tokens
    /// @return The maximum total supply of tokens
    function maxTotalSupply() external view returns (uint256);
}
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

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

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

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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
/// @title The native ERC20 token for Borroe system.
contract Borroe is IBorroe, ERC20, Ownable {
    uint256 private constant _MAX_TOTAL_SUPPLY = 1e9;

    /// @dev Converts from % to basis points and vice versa
    uint256 private constant _BP_CONVERTER = 1e4;

    // Addresses of initial token distribution destinations
    address private immutable _vesting;
    address private immutable _liquidityPool;
    address private immutable _exchangeListing;
    address private immutable _marketing;
    address private immutable _treasury;
    address private immutable _rewards;

    // 50%
    uint256 public constant TO_VESTING = 5000;

    // 5% + 2.5%
    uint256 public constant TO_LOCK_TEAM = 500;
    uint256 public constant TO_LOCK_PARTNERS = 250;

    // 10%
    uint256 public constant TO_LIQUIDITY_POOL = 1000;
    uint256 public constant TO_EXCHANGE_LISTING = 1000;
    uint256 public constant TO_MARKETING = 1000;
    uint256 public constant TO_TREASURY = 1000;

    // 2.5%
    uint256 public constant TO_REWARDS = 250;

    // 1%
    uint256 public constant BURNT_ON_TRANSFER = 100;
    uint256 public constant TO_MARKETING_ON_TRANSFER = 100;
    uint256 public constant TO_REWARDS_ON_TRANSFER = 100;

    /// @dev If tokens are transfered to the whitelisted address,
    ///      3% of fees are charged
    /// @dev DEXes trading BORROE tokens should be whitelisted
    ///      so that users pay transaction fees (3%) when creating orders
    mapping(address => bool) private _whitelist;

    /// @param vesting The address of vesting contract
    /// @param liquidityPool The address of liquidity pool
    /// @param exchangeListing The address of exchange listing wallet
    /// @param marketing The address of marketing wallet
    /// @param treasury The address of treasury
    /// @param rewards The address of rewards wallet
    constructor(
        address vesting,
        address liquidityPool,
        address exchangeListing,
        address marketing,
        address treasury,
        address rewards
    ) ERC20("BORROE", "$ROE") {
        require(vesting != address(0), "BORROE: Invalid vesting address");
        require(
            liquidityPool != address(0),
            "BORROE: Invalid liquidity pool address"
        );
        require(
            exchangeListing != address(0),
            "BORROE: Invalid exchange listing address"
        );
        require(marketing != address(0), "BORROE: Invalid marketing address");
        require(treasury != address(0), "BORROE: Invalid treasury address");
        require(rewards != address(0), "BORROE: Invalid rewards address");

        _vesting = vesting;
        _liquidityPool = liquidityPool;
        _exchangeListing = exchangeListing;
        _marketing = marketing;
        _treasury = treasury;
        _rewards = rewards;

        // Mint tokens to vesting contract
        // Both vested and locked tokens are minted
        _mint(
            _vesting,
            (_MAX_TOTAL_SUPPLY *
                10 ** decimals() *
                (TO_VESTING + TO_LOCK_TEAM + TO_LOCK_PARTNERS)) / _BP_CONVERTER
        );

        // Mint tokens to liquidity pool
        _mint(
            _liquidityPool,
            (_MAX_TOTAL_SUPPLY * 10 ** decimals() * TO_LIQUIDITY_POOL) /
                _BP_CONVERTER
        );

        // Mint tokens to exchange listing
        _mint(
            _exchangeListing,
            (_MAX_TOTAL_SUPPLY * 10 ** decimals() * TO_EXCHANGE_LISTING) /
                _BP_CONVERTER
        );

        // Mint tokens to marketing
        _mint(
            _marketing,
            (_MAX_TOTAL_SUPPLY * 10 ** decimals() * TO_MARKETING) /
                _BP_CONVERTER
        );

        // Mint tokens to treasury
        _mint(
            _treasury,
            (_MAX_TOTAL_SUPPLY * 10 ** decimals() * TO_TREASURY) / _BP_CONVERTER
        );

        // Mint tokens to rewards
        _mint(
            _rewards,
            (_MAX_TOTAL_SUPPLY * 10 ** decimals() * TO_REWARDS) / _BP_CONVERTER
        );
    }

    /// @notice See {IBorroe-maxTotalSupply}
    function maxTotalSupply() external pure returns (uint256) {
        return _MAX_TOTAL_SUPPLY * 10 ** decimals();
    }

    /// @notice See {IBorroe-checkWhitelisted}
    function checkWhitelisted(address user) external view returns (bool) {
        require(user != address(0), "BORROE: Invalid address");
        return _whitelist[user];
    }

    /// @notice See {IBorroe-addToWhitelist}
    function addToWhitelist(address user) external onlyOwner {
        require(user != address(0), "BORROE: Invalid address");
        require(!_whitelist[user], "BORROE: Address is already whitelisted");
        _whitelist[user] = true;
        emit AddedToWhitelist(user);
    }

    /// @notice See {IBorroe-removeFromWhitelist}
    function removeFromWhitelist(address user) external onlyOwner {
        require(user != address(0), "BORROE: Invalid address");
        require(_whitelist[user], "BORROE: Address is not whitelisted");
        _whitelist[user] = false;
        emit RemovedFromWhitelist(user);
    }

    /// @notice See {IBorroe-decimals}
    function decimals() public pure override returns (uint8) {
        return 18;
    }

    /// @notice Custom transfer function that charges 3% of transfered amount
    ///      as fees and distributes them
    function transfer(
        address to,
        uint256 amount
    ) public override(ERC20, IERC20) returns (bool) {
        address owner = msg.sender;

        // Charge and distribute fees if destination address is whitelisted
        if (_whitelist[to]) {
            amount = _distributeFees(owner, amount);
        }

        _transfer(owner, to, amount);

        return true;
    }

    /// @notice Custom transfer function that charges 3% of transfered amount
    ///      as fees and distributes them
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public override(ERC20, IERC20) returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);

        // Charge and distribute fees if destination address is whitelisted
        if (_whitelist[to]) {
            amount = _distributeFees(from, amount);
        }

        _transfer(from, to, amount);

        return true;
    }

    /// @dev Custom mint function limiting total supply
    /// @param account The receiver of tokens
    /// @param amount The amount of tokens to mint
    function _mint(address account, uint256 amount) internal override {
        require(
            totalSupply() + amount <= _MAX_TOTAL_SUPPLY * 10 ** decimals(),
            "BORROE: Mint exceeds max total supply"
        );

        super._mint(account, amount);
    }

    /// @dev Calculates parts of fee amount to be distributed among known destinations
    ///      and distributes them:
    ///      1% gets burnt
    ///      1% gets transfered to markeing wallet
    ///      1% gets transfered to rewards wallet
    function _distributeFees(
        address from,
        uint256 amount
    ) private returns (uint256) {
        require(
            from != address(0),
            "BORROE: Fees distributor cannot have zero address"
        );
        require(amount != 0, "BORROE: Invalid fee amount");
        uint256 burnt = (amount * BURNT_ON_TRANSFER) / _BP_CONVERTER;
        uint256 toMarketing = (amount * TO_MARKETING_ON_TRANSFER) /
            _BP_CONVERTER;
        uint256 toRewards = (amount * TO_REWARDS_ON_TRANSFER) / _BP_CONVERTER;

        _burn(from, burnt);
        _transfer(from, _marketing, toMarketing);
        _transfer(from, _rewards, toRewards);

        uint256 decreasedAmount = amount - burnt - toMarketing - toRewards;

        return decreasedAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"vesting","type":"address"},{"internalType":"address","name":"liquidityPool","type":"address"},{"internalType":"address","name":"exchangeListing","type":"address"},{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"rewards","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"AddedToWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"RemovedFromWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BURNT_ON_TRANSFER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_EXCHANGE_LISTING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_LIQUIDITY_POOL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_LOCK_PARTNERS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_LOCK_TEAM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_MARKETING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_MARKETING_ON_TRANSFER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_REWARDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_REWARDS_ON_TRANSFER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_TREASURY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TO_VESTING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","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":"address","name":"user","type":"address"}],"name":"checkWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101406040523480156200001257600080fd5b5060405162001d9b38038062001d9b83398101604081905262000035916200060b565b60405180604001604052806006815260200165424f52524f4560d01b8152506040518060400160405280600481526020016324524f4560e01b815250816003908162000082919062000730565b50600462000091828262000730565b505050620000ae620000a8620003fb60201b60201c565b620003ff565b6001600160a01b0386166200010a5760405162461bcd60e51b815260206004820152601f60248201527f424f52524f453a20496e76616c69642076657374696e6720616464726573730060448201526064015b60405180910390fd5b6001600160a01b038516620001715760405162461bcd60e51b815260206004820152602660248201527f424f52524f453a20496e76616c6964206c697175696469747920706f6f6c206160448201526564647265737360d01b606482015260840162000101565b6001600160a01b038416620001da5760405162461bcd60e51b815260206004820152602860248201527f424f52524f453a20496e76616c69642065786368616e6765206c697374696e67604482015267206164647265737360c01b606482015260840162000101565b6001600160a01b0383166200023c5760405162461bcd60e51b815260206004820152602160248201527f424f52524f453a20496e76616c6964206d61726b6574696e67206164647265736044820152607360f81b606482015260840162000101565b6001600160a01b038216620002945760405162461bcd60e51b815260206004820181905260248201527f424f52524f453a20496e76616c69642074726561737572792061646472657373604482015260640162000101565b6001600160a01b038116620002ec5760405162461bcd60e51b815260206004820152601f60248201527f424f52524f453a20496e76616c69642072657761726473206164647265737300604482015260640162000101565b6001600160a01b03808716608081905286821660a05285821660c05284821660e0528382166101005290821661012052620003809061271060fa620003366101f461138862000812565b62000342919062000812565b60125b6200035290600a6200092b565b6200036290633b9aca0062000943565b6200036e919062000943565b6200037a91906200095d565b62000451565b60a05162000396906127106103e8601262000345565b60c051620003ac906127106103e8601262000345565b60e051620003c2906127106103e8601262000345565b61010051620003d9906127106103e8601262000345565b61012051620003ef9061271060fa601262000345565b50505050505062000980565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200045f6012600a6200092b565b6200046f90633b9aca0062000943565b816200047a60025490565b62000486919062000812565b1115620004e45760405162461bcd60e51b815260206004820152602560248201527f424f52524f453a204d696e742065786365656473206d617820746f74616c20736044820152647570706c7960d81b606482015260840162000101565b620004fb8282620004ff60201b620008e01760201c565b5050565b6001600160a01b038216620005575760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000101565b80600260008282546200056b919062000812565b90915550506001600160a01b038216600090815260208190526040812080548392906200059a90849062000812565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620004fb600083835b505050565b80516001600160a01b03811681146200060657600080fd5b919050565b60008060008060008060c087890312156200062557600080fd5b6200063087620005ee565b95506200064060208801620005ee565b94506200065060408801620005ee565b93506200066060608801620005ee565b92506200067060808801620005ee565b91506200068060a08801620005ee565b90509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006b757607f821691505b602082108103620006d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005e957600081815260208120601f850160051c81016020861015620007075750805b601f850160051c820191505b81811015620007285782815560010162000713565b505050505050565b81516001600160401b038111156200074c576200074c6200068c565b62000764816200075d8454620006a2565b84620006de565b602080601f8311600181146200079c5760008415620007835750858301515b600019600386901b1c1916600185901b17855562000728565b600085815260208120601f198616915b82811015620007cd57888601518255948401946001909101908401620007ac565b5085821015620007ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620008285762000828620007fc565b92915050565b600181815b808511156200086f578160001904821115620008535762000853620007fc565b808516156200086157918102915b93841c939080029062000833565b509250929050565b600082620008885750600162000828565b81620008975750600062000828565b8160018114620008b05760028114620008bb57620008db565b600191505062000828565b60ff841115620008cf57620008cf620007fc565b50506001821b62000828565b5060208310610133831016604e8410600b841016171562000900575081810a62000828565b6200090c83836200082e565b8060001904821115620009235762000923620007fc565b029392505050565b60006200093c60ff84168362000877565b9392505050565b8082028115828204841417620008285762000828620007fc565b6000826200097b57634e487b7160e01b600052601260045260246000fd5b500490565b60805160a05160c05160e05161010051610120516113d7620009c46000396000610cae0152600050506000610c8301526000505060005050600050506113d76000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638ab1d68111610104578063b9d6a3df116100a2578063e43252d711610071578063e43252d71461033f578063e46559601461028c578063f2fde38b14610352578063ffabd4b01461036557600080fd5b8063b9d6a3df14610323578063d23599ac14610246578063db2b829114610246578063dd62ed3e1461032c57600080fd5b8063a457c2d7116100de578063a457c2d7146102fd578063a9059cbb14610310578063ace2376e146101f2578063b2e2fcb9146101f257600080fd5b80638ab1d681146102c75780638da5cb5b146102da57806395d89b41146102f557600080fd5b80632ab4d0521161017157806345752f601161014b57806345752f601461028c5780635c9fd28f1461024657806370a0823114610294578063715018a6146102bd57600080fd5b80632ab4d05214610262578063313ce5671461026a578063395093511461027957600080fd5b806318160ddd116101ad57806318160ddd1461022b57806320d8dad014610233578063214777fb1461024657806323b872dd1461024f57600080fd5b806306fdde03146101d457806307f175a5146101f2578063095ea7b314610208575b600080fd5b6101dc61036e565b6040516101e9919061106e565b60405180910390f35b6101fa606481565b6040519081526020016101e9565b61021b6102163660046110d8565b610400565b60405190151581526020016101e9565b6002546101fa565b61021b610241366004611102565b61041a565b6101fa6103e881565b61021b61025d366004611124565b61046a565b6101fa6104bc565b604051601281526020016101e9565b61021b6102873660046110d8565b6104dd565b6101fa60fa81565b6101fa6102a2366004611102565b6001600160a01b031660009081526020819052604090205490565b6102c56104ff565b005b6102c56102d5366004611102565b610535565b6005546040516001600160a01b0390911681526020016101e9565b6101dc610641565b61021b61030b3660046110d8565b610650565b61021b61031e3660046110d8565b6106cb565b6101fa61138881565b6101fa61033a366004611160565b610706565b6102c561034d366004611102565b610731565b6102c5610360366004611102565b610845565b6101fa6101f481565b60606003805461037d90611193565b80601f01602080910402602001604051908101604052809291908181526020018280546103a990611193565b80156103f65780601f106103cb576101008083540402835291602001916103f6565b820191906000526020600020905b8154815290600101906020018083116103d957829003601f168201915b5050505050905090565b60003361040e8185856109bf565b60019150505b92915050565b60006001600160a01b03821661044b5760405162461bcd60e51b8152600401610442906111cd565b60405180910390fd5b506001600160a01b031660009081526006602052604090205460ff1690565b600033610478858285610ae3565b6001600160a01b03841660009081526006602052604090205460ff16156104a6576104a38584610b5d565b92505b6104b1858585610d00565b506001949350505050565b60006104ca6012600a6112fe565b6104d890633b9aca0061130d565b905090565b60003361040e8185856104f08383610706565b6104fa9190611324565b6109bf565b6005546001600160a01b031633146105295760405162461bcd60e51b815260040161044290611337565b6105336000610ece565b565b6005546001600160a01b0316331461055f5760405162461bcd60e51b815260040161044290611337565b6001600160a01b0381166105855760405162461bcd60e51b8152600401610442906111cd565b6001600160a01b03811660009081526006602052604090205460ff166105f85760405162461bcd60e51b815260206004820152602260248201527f424f52524f453a2041646472657373206973206e6f742077686974656c697374604482015261195960f21b6064820152608401610442565b6001600160a01b038116600081815260066020526040808220805460ff19169055517fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df7579190a250565b60606004805461037d90611193565b6000338161065e8286610706565b9050838110156106be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610442565b6104b182868684036109bf565b6001600160a01b038216600090815260066020526040812054339060ff16156106fb576106f88184610b5d565b92505b61040e818585610d00565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461075b5760405162461bcd60e51b815260040161044290611337565b6001600160a01b0381166107815760405162461bcd60e51b8152600401610442906111cd565b6001600160a01b03811660009081526006602052604090205460ff16156107f95760405162461bcd60e51b815260206004820152602660248201527f424f52524f453a204164647265737320697320616c72656164792077686974656044820152651b1a5cdd195960d21b6064820152608401610442565b6001600160a01b038116600081815260066020526040808220805460ff19166001179055517fa850ae9193f515cbae8d35e8925bd2be26627fc91bce650b8652ed254e9cab039190a250565b6005546001600160a01b0316331461086f5760405162461bcd60e51b815260040161044290611337565b6001600160a01b0381166108d45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b6108dd81610ece565b50565b6001600160a01b0382166109365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610442565b80600260008282546109489190611324565b90915550506001600160a01b03821660009081526020819052604081208054839290610975908490611324565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610442565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610442565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610aef8484610706565b90506000198114610b575781811015610b4a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610442565b610b5784848484036109bf565b50505050565b60006001600160a01b038316610bcf5760405162461bcd60e51b815260206004820152603160248201527f424f52524f453a2046656573206469737472696275746f722063616e6e6f742060448201527068617665207a65726f206164647265737360781b6064820152608401610442565b81600003610c1f5760405162461bcd60e51b815260206004820152601a60248201527f424f52524f453a20496e76616c69642066656520616d6f756e740000000000006044820152606401610442565b6000612710610c2f60648561130d565b610c39919061136c565b90506000612710610c4b60648661130d565b610c55919061136c565b90506000612710610c6760648761130d565b610c71919061136c565b9050610c7d8684610f20565b610ca8867f000000000000000000000000000000000000000000000000000000000000000084610d00565b610cd3867f000000000000000000000000000000000000000000000000000000000000000083610d00565b60008183610ce1868961138e565b610ceb919061138e565b610cf5919061138e565b979650505050505050565b6001600160a01b038316610d645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610442565b6001600160a01b038216610dc65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610442565b6001600160a01b03831660009081526020819052604090205481811015610e3e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610442565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e75908490611324565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ec191815260200190565b60405180910390a3610b57565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610f805760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610442565b6001600160a01b03821660009081526020819052604090205481811015610ff45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610442565b6001600160a01b038316600090815260208190526040812083830390556002805484929061102390849061138e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600060208083528351808285015260005b8181101561109b5785810183015185820160400152820161107f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146110d357600080fd5b919050565b600080604083850312156110eb57600080fd5b6110f4836110bc565b946020939093013593505050565b60006020828403121561111457600080fd5b61111d826110bc565b9392505050565b60008060006060848603121561113957600080fd5b611142846110bc565b9250611150602085016110bc565b9150604084013590509250925092565b6000806040838503121561117357600080fd5b61117c836110bc565b915061118a602084016110bc565b90509250929050565b600181811c908216806111a757607f821691505b6020821081036111c757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526017908201527f424f52524f453a20496e76616c69642061646472657373000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561125557816000190482111561123b5761123b611204565b8085161561124857918102915b93841c939080029061121f565b509250929050565b60008261126c57506001610414565b8161127957506000610414565b816001811461128f5760028114611299576112b5565b6001915050610414565b60ff8411156112aa576112aa611204565b50506001821b610414565b5060208310610133831016604e8410600b84101617156112d8575081810a610414565b6112e2838361121a565b80600019048211156112f6576112f6611204565b029392505050565b600061111d60ff84168361125d565b808202811582820484141761041457610414611204565b8082018082111561041457610414611204565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261138957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104145761041461120456fea264697066735822122061bd9d7241cf32ad62701c163df67a411ebd280d61d8d16f54ee9c9067bd656364736f6c63430008110033000000000000000000000000989b0c9623ab19e648a18992386364a2a47af440000000000000000000000000739b2b4f969d7bb420847dd4929c4f8ac1e8d57e000000000000000000000000c3e53446cd0122f520de3e3c5e72e6f88cb9e1c10000000000000000000000000f97f267ba33913eb9f222ff2f5f929031c0dfa8000000000000000000000000c02d0c00c46972980370bf6975d30b622cff938d000000000000000000000000c5e26798e1c6a2954155ce2b8cc00ed83a6b4981

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638ab1d68111610104578063b9d6a3df116100a2578063e43252d711610071578063e43252d71461033f578063e46559601461028c578063f2fde38b14610352578063ffabd4b01461036557600080fd5b8063b9d6a3df14610323578063d23599ac14610246578063db2b829114610246578063dd62ed3e1461032c57600080fd5b8063a457c2d7116100de578063a457c2d7146102fd578063a9059cbb14610310578063ace2376e146101f2578063b2e2fcb9146101f257600080fd5b80638ab1d681146102c75780638da5cb5b146102da57806395d89b41146102f557600080fd5b80632ab4d0521161017157806345752f601161014b57806345752f601461028c5780635c9fd28f1461024657806370a0823114610294578063715018a6146102bd57600080fd5b80632ab4d05214610262578063313ce5671461026a578063395093511461027957600080fd5b806318160ddd116101ad57806318160ddd1461022b57806320d8dad014610233578063214777fb1461024657806323b872dd1461024f57600080fd5b806306fdde03146101d457806307f175a5146101f2578063095ea7b314610208575b600080fd5b6101dc61036e565b6040516101e9919061106e565b60405180910390f35b6101fa606481565b6040519081526020016101e9565b61021b6102163660046110d8565b610400565b60405190151581526020016101e9565b6002546101fa565b61021b610241366004611102565b61041a565b6101fa6103e881565b61021b61025d366004611124565b61046a565b6101fa6104bc565b604051601281526020016101e9565b61021b6102873660046110d8565b6104dd565b6101fa60fa81565b6101fa6102a2366004611102565b6001600160a01b031660009081526020819052604090205490565b6102c56104ff565b005b6102c56102d5366004611102565b610535565b6005546040516001600160a01b0390911681526020016101e9565b6101dc610641565b61021b61030b3660046110d8565b610650565b61021b61031e3660046110d8565b6106cb565b6101fa61138881565b6101fa61033a366004611160565b610706565b6102c561034d366004611102565b610731565b6102c5610360366004611102565b610845565b6101fa6101f481565b60606003805461037d90611193565b80601f01602080910402602001604051908101604052809291908181526020018280546103a990611193565b80156103f65780601f106103cb576101008083540402835291602001916103f6565b820191906000526020600020905b8154815290600101906020018083116103d957829003601f168201915b5050505050905090565b60003361040e8185856109bf565b60019150505b92915050565b60006001600160a01b03821661044b5760405162461bcd60e51b8152600401610442906111cd565b60405180910390fd5b506001600160a01b031660009081526006602052604090205460ff1690565b600033610478858285610ae3565b6001600160a01b03841660009081526006602052604090205460ff16156104a6576104a38584610b5d565b92505b6104b1858585610d00565b506001949350505050565b60006104ca6012600a6112fe565b6104d890633b9aca0061130d565b905090565b60003361040e8185856104f08383610706565b6104fa9190611324565b6109bf565b6005546001600160a01b031633146105295760405162461bcd60e51b815260040161044290611337565b6105336000610ece565b565b6005546001600160a01b0316331461055f5760405162461bcd60e51b815260040161044290611337565b6001600160a01b0381166105855760405162461bcd60e51b8152600401610442906111cd565b6001600160a01b03811660009081526006602052604090205460ff166105f85760405162461bcd60e51b815260206004820152602260248201527f424f52524f453a2041646472657373206973206e6f742077686974656c697374604482015261195960f21b6064820152608401610442565b6001600160a01b038116600081815260066020526040808220805460ff19169055517fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df7579190a250565b60606004805461037d90611193565b6000338161065e8286610706565b9050838110156106be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610442565b6104b182868684036109bf565b6001600160a01b038216600090815260066020526040812054339060ff16156106fb576106f88184610b5d565b92505b61040e818585610d00565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461075b5760405162461bcd60e51b815260040161044290611337565b6001600160a01b0381166107815760405162461bcd60e51b8152600401610442906111cd565b6001600160a01b03811660009081526006602052604090205460ff16156107f95760405162461bcd60e51b815260206004820152602660248201527f424f52524f453a204164647265737320697320616c72656164792077686974656044820152651b1a5cdd195960d21b6064820152608401610442565b6001600160a01b038116600081815260066020526040808220805460ff19166001179055517fa850ae9193f515cbae8d35e8925bd2be26627fc91bce650b8652ed254e9cab039190a250565b6005546001600160a01b0316331461086f5760405162461bcd60e51b815260040161044290611337565b6001600160a01b0381166108d45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610442565b6108dd81610ece565b50565b6001600160a01b0382166109365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610442565b80600260008282546109489190611324565b90915550506001600160a01b03821660009081526020819052604081208054839290610975908490611324565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610442565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610442565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610aef8484610706565b90506000198114610b575781811015610b4a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610442565b610b5784848484036109bf565b50505050565b60006001600160a01b038316610bcf5760405162461bcd60e51b815260206004820152603160248201527f424f52524f453a2046656573206469737472696275746f722063616e6e6f742060448201527068617665207a65726f206164647265737360781b6064820152608401610442565b81600003610c1f5760405162461bcd60e51b815260206004820152601a60248201527f424f52524f453a20496e76616c69642066656520616d6f756e740000000000006044820152606401610442565b6000612710610c2f60648561130d565b610c39919061136c565b90506000612710610c4b60648661130d565b610c55919061136c565b90506000612710610c6760648761130d565b610c71919061136c565b9050610c7d8684610f20565b610ca8867f0000000000000000000000000f97f267ba33913eb9f222ff2f5f929031c0dfa884610d00565b610cd3867f000000000000000000000000c5e26798e1c6a2954155ce2b8cc00ed83a6b498183610d00565b60008183610ce1868961138e565b610ceb919061138e565b610cf5919061138e565b979650505050505050565b6001600160a01b038316610d645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610442565b6001600160a01b038216610dc65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610442565b6001600160a01b03831660009081526020819052604090205481811015610e3e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610442565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610e75908490611324565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ec191815260200190565b60405180910390a3610b57565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610f805760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610442565b6001600160a01b03821660009081526020819052604090205481811015610ff45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610442565b6001600160a01b038316600090815260208190526040812083830390556002805484929061102390849061138e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600060208083528351808285015260005b8181101561109b5785810183015185820160400152820161107f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146110d357600080fd5b919050565b600080604083850312156110eb57600080fd5b6110f4836110bc565b946020939093013593505050565b60006020828403121561111457600080fd5b61111d826110bc565b9392505050565b60008060006060848603121561113957600080fd5b611142846110bc565b9250611150602085016110bc565b9150604084013590509250925092565b6000806040838503121561117357600080fd5b61117c836110bc565b915061118a602084016110bc565b90509250929050565b600181811c908216806111a757607f821691505b6020821081036111c757634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526017908201527f424f52524f453a20496e76616c69642061646472657373000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561125557816000190482111561123b5761123b611204565b8085161561124857918102915b93841c939080029061121f565b509250929050565b60008261126c57506001610414565b8161127957506000610414565b816001811461128f5760028114611299576112b5565b6001915050610414565b60ff8411156112aa576112aa611204565b50506001821b610414565b5060208310610133831016604e8410600b84101617156112d8575081810a610414565b6112e2838361121a565b80600019048211156112f6576112f6611204565b029392505050565b600061111d60ff84168361125d565b808202811582820484141761041457610414611204565b8082018082111561041457610414611204565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261138957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104145761041461120456fea264697066735822122061bd9d7241cf32ad62701c163df67a411ebd280d61d8d16f54ee9c9067bd656364736f6c63430008110033

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

000000000000000000000000989b0c9623ab19e648a18992386364a2a47af440000000000000000000000000739b2b4f969d7bb420847dd4929c4f8ac1e8d57e000000000000000000000000c3e53446cd0122f520de3e3c5e72e6f88cb9e1c10000000000000000000000000f97f267ba33913eb9f222ff2f5f929031c0dfa8000000000000000000000000c02d0c00c46972980370bf6975d30b622cff938d000000000000000000000000c5e26798e1c6a2954155ce2b8cc00ed83a6b4981

-----Decoded View---------------
Arg [0] : vesting (address): 0x989B0c9623ab19e648A18992386364a2A47Af440
Arg [1] : liquidityPool (address): 0x739b2B4f969D7Bb420847DD4929c4F8ac1E8d57E
Arg [2] : exchangeListing (address): 0xC3E53446CD0122f520De3e3C5E72E6f88cB9E1C1
Arg [3] : marketing (address): 0x0f97F267BA33913EB9F222fF2F5F929031C0Dfa8
Arg [4] : treasury (address): 0xc02D0C00C46972980370bf6975d30b622Cff938D
Arg [5] : rewards (address): 0xc5e26798e1C6a2954155ce2b8CC00Ed83a6B4981

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000989b0c9623ab19e648a18992386364a2a47af440
Arg [1] : 000000000000000000000000739b2b4f969d7bb420847dd4929c4f8ac1e8d57e
Arg [2] : 000000000000000000000000c3e53446cd0122f520de3e3c5e72e6f88cb9e1c1
Arg [3] : 0000000000000000000000000f97f267ba33913eb9f222ff2f5f929031c0dfa8
Arg [4] : 000000000000000000000000c02d0c00c46972980370bf6975d30b622cff938d
Arg [5] : 000000000000000000000000c5e26798e1c6a2954155ce2b8cc00ed83a6b4981


Deployed Bytecode Sourcemap

20155:7958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9308:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21299:52;;21348:3;21299:52;;;;;713:25:1;;;701:2;686:18;21299:52:0;567:177:1;11659:201:0;;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;11659:201:0;1186:187:1;10428:108:0;10516:12;;10428:108;;24485:176;;;;;;:::i;:::-;;:::i;20898:48::-;;20942:4;20898:48;;26136:478;;;;;;:::i;:::-;;:::i;24309:120::-;;;:::i;25389:85::-;;;25464:2;2044:36:1;;2032:2;2017:18;25389:85:0;1902:184:1;13144:238:0;;;;;;:::i;:::-;;:::i;21124:40::-;;21161:3;21124:40;;10599:127;;;;;;:::i;:::-;-1:-1:-1;;;;;10700:18:0;10673:7;10700:18;;;;;;;;;;;;10599:127;2384:103;;;:::i;:::-;;25055:286;;;;;;:::i;:::-;;:::i;1733:87::-;1806:6;;1733:87;;-1:-1:-1;;;;;1806:6:0;;;2237:51:1;;2225:2;2210:18;1733:87:0;2091:203:1;9527:104:0;;;:::i;13885:436::-;;;;;;:::i;:::-;;:::i;25604:402::-;;;;;;:::i;:::-;;:::i;20714:41::-;;20751:4;20714:41;;11188:151;;;;;;:::i;:::-;;:::i;24715:281::-;;;;;;:::i;:::-;;:::i;2642:201::-;;;;;;:::i;:::-;;:::i;20782:42::-;;20821:3;20782:42;;9308:100;9362:13;9395:5;9388:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9308:100;:::o;11659:201::-;11742:4;682:10;11798:32;682:10;11814:7;11823:6;11798:8;:32::i;:::-;11848:4;11841:11;;;11659:201;;;;;:::o;24485:176::-;24548:4;-1:-1:-1;;;;;24573:18:0;;24565:54;;;;-1:-1:-1;;;24565:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;24637:16:0;;;;;:10;:16;;;;;;;;;24485:176::o;26136:478::-;26274:4;26309:10;26330:38;26346:4;26309:10;26361:6;26330:15;:38::i;:::-;-1:-1:-1;;;;;26462:14:0;;;;;;:10;:14;;;;;;;;26458:85;;;26502:29;26518:4;26524:6;26502:15;:29::i;:::-;26493:38;;26458:85;26555:27;26565:4;26571:2;26575:6;26555:9;:27::i;:::-;-1:-1:-1;26602:4:0;;26136:478;-1:-1:-1;;;;26136:478:0:o;24309:120::-;24358:7;24405:16;25464:2;24405;:16;:::i;:::-;24385:36;;20250:3;24385:36;:::i;:::-;24378:43;;24309:120;:::o;13144:238::-;13232:4;682:10;13288:64;682:10;13304:7;13341:10;13313:25;682:10;13304:7;13313:9;:25::i;:::-;:38;;;;:::i;:::-;13288:8;:64::i;2384:103::-;1806:6;;-1:-1:-1;;;;;1806:6:0;682:10;1953:23;1945:68;;;;-1:-1:-1;;;1945:68:0;;;;;;;:::i;:::-;2449:30:::1;2476:1;2449:18;:30::i;:::-;2384:103::o:0;25055:286::-;1806:6;;-1:-1:-1;;;;;1806:6:0;682:10;1953:23;1945:68;;;;-1:-1:-1;;;1945:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25136:18:0;::::1;25128:54;;;;-1:-1:-1::0;;;25128:54:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25201:16:0;::::1;;::::0;;;:10:::1;:16;::::0;;;;;::::1;;25193:63;;;::::0;-1:-1:-1;;;25193:63:0;;5682:2:1;25193:63:0::1;::::0;::::1;5664:21:1::0;5721:2;5701:18;;;5694:30;5760:34;5740:18;;;5733:62;-1:-1:-1;;;5811:18:1;;;5804:32;5853:19;;25193:63:0::1;5480:398:1::0;25193:63:0::1;-1:-1:-1::0;;;;;25267:16:0;::::1;25286:5;25267:16:::0;;;:10:::1;:16;::::0;;;;;:24;;-1:-1:-1;;25267:24:0::1;::::0;;25307:26;::::1;::::0;25286:5;25307:26:::1;25055:286:::0;:::o;9527:104::-;9583:13;9616:7;9609:14;;;;;:::i;13885:436::-;13978:4;682:10;13978:4;14061:25;682:10;14078:7;14061:9;:25::i;:::-;14034:52;;14125:15;14105:16;:35;;14097:85;;;;-1:-1:-1;;;14097:85:0;;6085:2:1;14097:85:0;;;6067:21:1;6124:2;6104:18;;;6097:30;6163:34;6143:18;;;6136:62;-1:-1:-1;;;6214:18:1;;;6207:35;6259:19;;14097:85:0;5883:401:1;14097:85:0;14218:60;14227:5;14234:7;14262:15;14243:16;:34;14218:8;:60::i;25604:402::-;-1:-1:-1;;;;;25852:14:0;;25715:4;25852:14;;;:10;:14;;;;;;25748:10;;25852:14;;25848:86;;;25892:30;25908:5;25915:6;25892:15;:30::i;:::-;25883:39;;25848:86;25946:28;25956:5;25963:2;25967:6;25946:9;:28::i;11188:151::-;-1:-1:-1;;;;;11304:18:0;;;11277:7;11304:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11188:151::o;24715:281::-;1806:6;;-1:-1:-1;;;;;1806:6:0;682:10;1953:23;1945:68;;;;-1:-1:-1;;;1945:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24791:18:0;::::1;24783:54;;;;-1:-1:-1::0;;;24783:54:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24857:16:0;::::1;;::::0;;;:10:::1;:16;::::0;;;;;::::1;;24856:17;24848:68;;;::::0;-1:-1:-1;;;24848:68:0;;6491:2:1;24848:68:0::1;::::0;::::1;6473:21:1::0;6530:2;6510:18;;;6503:30;6569:34;6549:18;;;6542:62;-1:-1:-1;;;6620:18:1;;;6613:36;6666:19;;24848:68:0::1;6289:402:1::0;24848:68:0::1;-1:-1:-1::0;;;;;24927:16:0;::::1;;::::0;;;:10:::1;:16;::::0;;;;;:23;;-1:-1:-1;;24927:23:0::1;24946:4;24927:23;::::0;;24966:22;::::1;::::0;24927:16;24966:22:::1;24715:281:::0;:::o;2642:201::-;1806:6;;-1:-1:-1;;;;;1806:6:0;682:10;1953:23;1945:68;;;;-1:-1:-1;;;1945:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2731:22:0;::::1;2723:73;;;::::0;-1:-1:-1;;;2723:73:0;;6898:2:1;2723:73:0::1;::::0;::::1;6880:21:1::0;6937:2;6917:18;;;6910:30;6976:34;6956:18;;;6949:62;-1:-1:-1;;;7027:18:1;;;7020:36;7073:19;;2723:73:0::1;6696:402:1::0;2723:73:0::1;2807:28;2826:8;2807:18;:28::i;:::-;2642:201:::0;:::o;15758:399::-;-1:-1:-1;;;;;15842:21:0;;15834:65;;;;-1:-1:-1;;;15834:65:0;;7305:2:1;15834:65:0;;;7287:21:1;7344:2;7324:18;;;7317:30;7383:33;7363:18;;;7356:61;7434:18;;15834:65:0;7103:355:1;15834:65:0;15990:6;15974:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16007:18:0;;:9;:18;;;;;;;;;;:28;;16029:6;;16007:9;:28;;16029:6;;16007:28;:::i;:::-;;;;-1:-1:-1;;16051:37:0;;713:25:1;;;-1:-1:-1;;;;;16051:37:0;;;16068:1;;16051:37;;701:2:1;686:18;16051:37:0;;;;;;;15758:399;;:::o;17519:380::-;-1:-1:-1;;;;;17655:19:0;;17647:68;;;;-1:-1:-1;;;17647:68:0;;7665:2:1;17647:68:0;;;7647:21:1;7704:2;7684:18;;;7677:30;7743:34;7723:18;;;7716:62;-1:-1:-1;;;7794:18:1;;;7787:34;7838:19;;17647:68:0;7463:400:1;17647:68:0;-1:-1:-1;;;;;17734:21:0;;17726:68;;;;-1:-1:-1;;;17726:68:0;;8070:2:1;17726:68:0;;;8052:21:1;8109:2;8089:18;;;8082:30;8148:34;8128:18;;;8121:62;-1:-1:-1;;;8199:18:1;;;8192:32;8241:19;;17726:68:0;7868:398:1;17726:68:0;-1:-1:-1;;;;;17807:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17859:32;;713:25:1;;;17859:32:0;;686:18:1;17859:32:0;;;;;;;17519:380;;;:::o;18190:453::-;18325:24;18352:25;18362:5;18369:7;18352:9;:25::i;:::-;18325:52;;-1:-1:-1;;18392:16:0;:37;18388:248;;18474:6;18454:16;:26;;18446:68;;;;-1:-1:-1;;;18446:68:0;;8473:2:1;18446:68:0;;;8455:21:1;8512:2;8492:18;;;8485:30;8551:31;8531:18;;;8524:59;8600:18;;18446:68:0;8271:353:1;18446:68:0;18558:51;18567:5;18574:7;18602:6;18583:16;:25;18558:8;:51::i;:::-;18314:329;18190:453;;;:::o;27316:794::-;27413:7;-1:-1:-1;;;;;27455:18:0;;27433:117;;;;-1:-1:-1;;;27433:117:0;;8831:2:1;27433:117:0;;;8813:21:1;8870:2;8850:18;;;8843:30;8909:34;8889:18;;;8882:62;-1:-1:-1;;;8960:18:1;;;8953:47;9017:19;;27433:117:0;8629:413:1;27433:117:0;27569:6;27579:1;27569:11;27561:50;;;;-1:-1:-1;;;27561:50:0;;9249:2:1;27561:50:0;;;9231:21:1;9288:2;9268:18;;;9261:30;9327:28;9307:18;;;9300:56;9373:18;;27561:50:0;9047:350:1;27561:50:0;27622:13;20364:3;27639:26;21228:3;27639:6;:26;:::i;:::-;27638:44;;;;:::i;:::-;27622:60;-1:-1:-1;27693:19:0;20364:3;27716:33;21289:3;27716:6;:33;:::i;:::-;27715:64;;;;:::i;:::-;27693:86;-1:-1:-1;27790:17:0;20364:3;27811:31;21348:3;27811:6;:31;:::i;:::-;27810:49;;;;:::i;:::-;27790:69;;27872:18;27878:4;27884:5;27872;:18::i;:::-;27901:40;27911:4;27917:10;27929:11;27901:9;:40::i;:::-;27952:36;27962:4;27968:8;27978:9;27952;:36::i;:::-;28001:23;28058:9;28044:11;28027:14;28036:5;28027:6;:14;:::i;:::-;:28;;;;:::i;:::-;:40;;;;:::i;:::-;28001:66;27316:794;-1:-1:-1;;;;;;;27316:794:0:o;14800:671::-;-1:-1:-1;;;;;14931:18:0;;14923:68;;;;-1:-1:-1;;;14923:68:0;;9959:2:1;14923:68:0;;;9941:21:1;9998:2;9978:18;;;9971:30;10037:34;10017:18;;;10010:62;-1:-1:-1;;;10088:18:1;;;10081:35;10133:19;;14923:68:0;9757:401:1;14923:68:0;-1:-1:-1;;;;;15010:16:0;;15002:64;;;;-1:-1:-1;;;15002:64:0;;10365:2:1;15002:64:0;;;10347:21:1;10404:2;10384:18;;;10377:30;10443:34;10423:18;;;10416:62;-1:-1:-1;;;10494:18:1;;;10487:33;10537:19;;15002:64:0;10163:399:1;15002:64:0;-1:-1:-1;;;;;15152:15:0;;15130:19;15152:15;;;;;;;;;;;15186:21;;;;15178:72;;;;-1:-1:-1;;;15178:72:0;;10769:2:1;15178:72:0;;;10751:21:1;10808:2;10788:18;;;10781:30;10847:34;10827:18;;;10820:62;-1:-1:-1;;;10898:18:1;;;10891:36;10944:19;;15178:72:0;10567:402:1;15178:72:0;-1:-1:-1;;;;;15286:15:0;;;:9;:15;;;;;;;;;;;15304:20;;;15286:38;;15346:13;;;;;;;;:23;;15318:6;;15286:9;15346:23;;15318:6;;15346:23;:::i;:::-;;;;;;;;15402:2;-1:-1:-1;;;;;15387:26:0;15396:4;-1:-1:-1;;;;;15387:26:0;;15406:6;15387:26;;;;713:25:1;;701:2;686:18;;567:177;15387:26:0;;;;;;;;15426:37;19243:125;3003:191;3096:6;;;-1:-1:-1;;;;;3113:17:0;;;-1:-1:-1;;;;;;3113:17:0;;;;;;;3146:40;;3096:6;;;3113:17;3096:6;;3146:40;;3077:16;;3146:40;3066:128;3003:191;:::o;16490:591::-;-1:-1:-1;;;;;16574:21:0;;16566:67;;;;-1:-1:-1;;;16566:67:0;;11176:2:1;16566:67:0;;;11158:21:1;11215:2;11195:18;;;11188:30;11254:34;11234:18;;;11227:62;-1:-1:-1;;;11305:18:1;;;11298:31;11346:19;;16566:67:0;10974:397:1;16566:67:0;-1:-1:-1;;;;;16733:18:0;;16708:22;16733:18;;;;;;;;;;;16770:24;;;;16762:71;;;;-1:-1:-1;;;16762:71:0;;11578:2:1;16762:71:0;;;11560:21:1;11617:2;11597:18;;;11590:30;11656:34;11636:18;;;11629:62;-1:-1:-1;;;11707:18:1;;;11700:32;11749:19;;16762:71:0;11376:398:1;16762:71:0;-1:-1:-1;;;;;16869:18:0;;:9;:18;;;;;;;;;;16890:23;;;16869:44;;16935:12;:22;;16907:6;;16869:9;16935:22;;16907:6;;16935:22;:::i;:::-;;;;-1:-1:-1;;16975:37:0;;713:25:1;;;17001:1:0;;-1:-1:-1;;;;;16975:37:0;;;;;701:2:1;686:18;16975:37:0;;;;;;;19243:125;;;:::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;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:186::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;1529:29;1548:9;1529:29;:::i;:::-;1519:39;1378:186;-1:-1:-1;;;1378:186:1:o;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2299:260::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2299:260;;;;;:::o;2564:380::-;2643:1;2639:12;;;;2686;;;2707:61;;2761:4;2753:6;2749:17;2739:27;;2707:61;2814:2;2806:6;2803:14;2783:18;2780:38;2777:161;;2860:10;2855:3;2851:20;2848:1;2841:31;2895:4;2892:1;2885:15;2923:4;2920:1;2913:15;2777:161;;2564:380;;;:::o;2949:347::-;3151:2;3133:21;;;3190:2;3170:18;;;3163:30;3229:25;3224:2;3209:18;;3202:53;3287:2;3272:18;;2949:347::o;3301:127::-;3362:10;3357:3;3353:20;3350:1;3343:31;3393:4;3390:1;3383:15;3417:4;3414:1;3407:15;3433:422;3522:1;3565:5;3522:1;3579:270;3600:7;3590:8;3587:21;3579:270;;;3659:4;3655:1;3651:6;3647:17;3641:4;3638:27;3635:53;;;3668:18;;:::i;:::-;3718:7;3708:8;3704:22;3701:55;;;3738:16;;;;3701:55;3817:22;;;;3777:15;;;;3579:270;;;3583:3;3433:422;;;;;:::o;3860:806::-;3909:5;3939:8;3929:80;;-1:-1:-1;3980:1:1;3994:5;;3929:80;4028:4;4018:76;;-1:-1:-1;4065:1:1;4079:5;;4018:76;4110:4;4128:1;4123:59;;;;4196:1;4191:130;;;;4103:218;;4123:59;4153:1;4144:10;;4167:5;;;4191:130;4228:3;4218:8;4215:17;4212:43;;;4235:18;;:::i;:::-;-1:-1:-1;;4291:1:1;4277:16;;4306:5;;4103:218;;4405:2;4395:8;4392:16;4386:3;4380:4;4377:13;4373:36;4367:2;4357:8;4354:16;4349:2;4343:4;4340:12;4336:35;4333:77;4330:159;;;-1:-1:-1;4442:19:1;;;4474:5;;4330:159;4521:34;4546:8;4540:4;4521:34;:::i;:::-;4591:6;4587:1;4583:6;4579:19;4570:7;4567:32;4564:58;;;4602:18;;:::i;:::-;4640:20;;3860:806;-1:-1:-1;;;3860:806:1:o;4671:140::-;4729:5;4758:47;4799:4;4789:8;4785:19;4779:4;4758:47;:::i;4816:168::-;4889:9;;;4920;;4937:15;;;4931:22;;4917:37;4907:71;;4958:18;;:::i;4989:125::-;5054:9;;;5075:10;;;5072:36;;;5088:18;;:::i;5119:356::-;5321:2;5303:21;;;5340:18;;;5333:30;5399:34;5394:2;5379:18;;5372:62;5466:2;5451:18;;5119:356::o;9402:217::-;9442:1;9468;9458:132;;9512:10;9507:3;9503:20;9500:1;9493:31;9547:4;9544:1;9537:15;9575:4;9572:1;9565:15;9458:132;-1:-1:-1;9604:9:1;;9402:217::o;9624:128::-;9691:9;;;9712:11;;;9709:37;;;9726:18;;:::i

Swarm Source

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