ETH Price: $3,275.06 (+0.74%)
Gas: 2 Gwei

Token

RAI (RAI)
 

Overview

Max Total Supply

697,623.422739746779111933 RAI

Holders

951

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
isleepy.eth
Balance
5.513820820941328145 RAI

Value
$0.00
0x154500Ccb9cC55A0E390966AA53Fe10E7DA1047d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Rai

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-15
*/

// /$$$$$$$  /$$$$$$ /$$   /$$  /$$$$$$        /$$$$$$$$  /$$$$$$   /$$$$$$   /$$$$$$  /$$     /$$ /$$$$$$  /$$$$$$$$ /$$$$$$$$ /$$      /$$
//| $$__  $$|_  $$_/| $$  /$$/ /$$__  $$      | $$_____/ /$$__  $$ /$$__  $$ /$$__  $$|  $$   /$$//$$__  $$|__  $$__/| $$_____/| $$$    /$$$
//| $$  \ $$  | $$  | $$ /$$/ | $$  \ $$      | $$      | $$  \__/| $$  \ $$| $$  \__/ \  $$ /$$/| $$  \__/   | $$   | $$      | $$$$  /$$$$
//| $$$$$$$/  | $$  | $$$$$/  | $$$$$$$$      | $$$$$   | $$      | $$  | $$|  $$$$$$   \  $$$$/ |  $$$$$$    | $$   | $$$$$   | $$ $$/$$ $$
//| $$____/   | $$  | $$  $$  | $$__  $$      | $$__/   | $$      | $$  | $$ \____  $$   \  $$/   \____  $$   | $$   | $$__/   | $$  $$$| $$
//| $$        | $$  | $$\  $$ | $$  | $$      | $$      | $$    $$| $$  | $$ /$$  \ $$    | $$    /$$  \ $$   | $$   | $$      | $$\  $ | $$
//| $$       /$$$$$$| $$ \  $$| $$  | $$      | $$$$$$$$|  $$$$$$/|  $$$$$$/|  $$$$$$/    | $$   |  $$$$$$/   | $$   | $$$$$$$$| $$ \/  | $$
//|__/      |______/|__/  \__/|__/  |__/      |________/ \______/  \______/  \______/     |__/    \______/    |__/   |________/|__/     |__/
                                                                                                                                          
// website: https://pikacrypto.com


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

interface IThunder {
    function totalSupply() external view returns (uint256);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function burn(uint256 value) external;
}

pragma solidity 0.8.4;

contract Owned {
    address public owner;
    address public proposedOwner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() virtual {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev propeses a new owner
     * Can only be called by the current owner.
     */
    function proposeOwner(address payable _newOwner) external onlyOwner {
        proposedOwner = _newOwner;
    }

    /**
     * @dev claims ownership of the contract
     * Can only be called by the new proposed owner.
     */
    function claimOwnership() external {
        require(msg.sender == proposedOwner);
        emit OwnershipTransferred(owner, proposedOwner);
        owner = proposedOwner;
    }
}


pragma solidity ^0.8.0;

/*
 * @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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}



pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @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);
}



pragma solidity ^0.8.0;


/**
 * @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);
}




pragma solidity ^0.8.0;




/**
 * @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 guidelines: functions revert instead
 * of 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 defaut 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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` 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);
    }

    /**
     * @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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

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

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

    /**
     * @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 to 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 { }
}


pragma solidity 0.8.4;




struct Wallets {
    address team;
    address charity;
    address staking;
    address liquidity;
}

contract Rai is ERC20, Owned {
    IThunder thunder;
    Wallets public thunderWallets;
    address public beneficiary;
    bool public feesEnabled;
    mapping(address => bool) public isExcludedFromFee;

    event BeneficiaryUpdated(address oldBeneficiary, address newBeneficiary);
    event FeesEnabledUpdated(bool enabled);
    event ExcludedFromFeeUpdated(address account, bool excluded);
    event ThunderWalletsUpdated();
    event Evolved(uint256 amountThunder, uint256 amountRai);

    constructor(address _thunder, Wallets memory _thunderWallets) ERC20("RAI", "RAI") {
        thunder = IThunder(_thunder);
        thunderWallets = _thunderWallets;
        // premine for uniswap liquidity
        uint256 totalSupply = 41000 ether;
        feesEnabled = false;
        _mint(_msgSender(), totalSupply);
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
        beneficiary = msg.sender;
    }

    function evolve(uint256 _amountThunder) external {
        thunder.transferFrom(msg.sender, address(this), _amountThunder);
        uint256 amountRai = _amountThunder / 1000;

        uint256 burnedThunder = calculateFee(_amountThunder, 2000);
        thunder.burn(burnedThunder);

        uint256 lpRewards = calculateFee(_amountThunder, 100);
        uint256 charityTeamAmount = lpRewards / 2;
        thunder.transfer(thunderWallets.liquidity, lpRewards);
        thunder.transfer(thunderWallets.charity, charityTeamAmount);
        thunder.transfer(thunderWallets.team, charityTeamAmount);
        thunder.transfer(thunderWallets.staking, _amountThunder - burnedThunder - lpRewards - charityTeamAmount * 2);

        _mint(msg.sender, amountRai);
        emit Evolved(_amountThunder, amountRai);
    }

    /**
     * @dev if fees are enabled, subtract 2.25% fee and send it to beneficiary
     * @dev after a certain threshold, try to swap collected fees automatically
     * @dev if automatic swap fails (or beneficiary does not implement swapTokens function) transfer should still succeed
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(recipient != address(this), "Cannot send tokens to token contract");
        if (!feesEnabled || isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            ERC20._transfer(sender, recipient, amount);
            return;
        }
        uint256 burnedFee = calculateFee(amount, 25);
        _burn(sender, burnedFee);

        uint256 transferFee = calculateFee(amount, 200);
        ERC20._transfer(sender, beneficiary, transferFee);
        ERC20._transfer(sender, recipient, amount - transferFee - burnedFee);
    }

    function calculateFee(uint256 _amount, uint256 _fee) public pure returns (uint256) {
        return (_amount * _fee) / 10000;
    }

    /**
     * @notice allows to burn tokens from own balance
     * @dev only allows burning tokens until minimum supply is reached
     * @param value amount of tokens to burn
     */
    function burn(uint256 value) public {
        _burn(_msgSender(), value);
    }

    /**
     * @notice sets recipient of transfer fee
     * @dev only callable by owner
     * @param _newBeneficiary new beneficiary
     */
    function setBeneficiary(address _newBeneficiary) public onlyOwner {
        setExcludeFromFee(_newBeneficiary, true);
        emit BeneficiaryUpdated(beneficiary, _newBeneficiary);
        beneficiary = _newBeneficiary;
    }

    /**
     * @notice sets the wallets for the thunder tokens
     * @dev only callable by owner
     * @param _newWallets updated wallets
     */
    function setThunderWallets(Wallets memory _newWallets) public onlyOwner {
        emit ThunderWalletsUpdated();
        thunderWallets = _newWallets;
    }

    /**
     * @notice sets whether account collects fees on token transfer
     * @dev only callable by owner
     * @param _enabled bool whether fees are enabled
     */
    function setFeesEnabled(bool _enabled) public onlyOwner {
        emit FeesEnabledUpdated(_enabled);
        feesEnabled = _enabled;
    }

    /**
     * @notice adds or removes an account that is exempt from fee collection
     * @dev only callable by owner
     * @param _account account to modify
     * @param _excluded new value
     */
    function setExcludeFromFee(address _account, bool _excluded) public onlyOwner {
        isExcludedFromFee[_account] = _excluded;
        emit ExcludedFromFeeUpdated(_account, _excluded);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_thunder","type":"address"},{"components":[{"internalType":"address","name":"team","type":"address"},{"internalType":"address","name":"charity","type":"address"},{"internalType":"address","name":"staking","type":"address"},{"internalType":"address","name":"liquidity","type":"address"}],"internalType":"struct Wallets","name":"_thunderWallets","type":"tuple"}],"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":false,"internalType":"address","name":"oldBeneficiary","type":"address"},{"indexed":false,"internalType":"address","name":"newBeneficiary","type":"address"}],"name":"BeneficiaryUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountThunder","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountRai","type":"uint256"}],"name":"Evolved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"ExcludedFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"FeesEnabledUpdated","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":[],"name":"ThunderWalletsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"calculateFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountThunder","type":"uint256"}],"name":"evolve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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 payable","name":"_newOwner","type":"address"}],"name":"proposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newBeneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"team","type":"address"},{"internalType":"address","name":"charity","type":"address"},{"internalType":"address","name":"staking","type":"address"},{"internalType":"address","name":"liquidity","type":"address"}],"internalType":"struct Wallets","name":"_newWallets","type":"tuple"}],"name":"setThunderWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thunderWallets","outputs":[{"internalType":"address","name":"team","type":"address"},{"internalType":"address","name":"charity","type":"address"},{"internalType":"address","name":"staking","type":"address"},{"internalType":"address","name":"liquidity","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001fed38038062001fed83398101604081905262000034916200039d565b6040518060400160405280600381526020016252414960e81b8152506040518060400160405280600381526020016252414960e81b815250816003908051906020019062000084929190620002da565b5080516200009a906004906020840190620002da565b5050600580546001600160a01b031916339081179091556040519091506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600780546001600160a01b038085166001600160a01b0319928316179092558251600880549184169183169190911790556020830151600980549184169183169190911790556040830151600a80549184169183169190911790556060830151600b8054919093169116179055600c805460ff60a01b191690556908ae9d4cd4b0a7a0000062000177620001703390565b82620001f2565b5050336000818152600d602052604081208054600160ff199182168117909255737a250d5630b4cf539739df2c5dacb4c659f2488d9092527fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e8054909216179055600c80546001600160a01b031916909117905550620004b9565b6001600160a01b0382166200024d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000261919062000457565b90915550506001600160a01b038216600090815260208190526040812080548392906200029090849062000457565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620002e8906200047c565b90600052602060002090601f0160209004810192826200030c576000855562000357565b82601f106200032757805160ff191683800117855562000357565b8280016001018555821562000357579182015b82811115620003575782518255916020019190600101906200033a565b506200036592915062000369565b5090565b5b808211156200036557600081556001016200036a565b80516001600160a01b03811681146200039857600080fd5b919050565b60008082840360a0811215620003b1578283fd5b620003bc8462000380565b92506080601f1982011215620003d0578182fd5b50604051608081016001600160401b03811182821017156200040057634e487b7160e01b83526041600452602483fd5b604052620004116020850162000380565b8152620004216040850162000380565b6020820152620004346060850162000380565b6040820152620004476080850162000380565b6060820152809150509250929050565b600082198211156200047757634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200049157607f821691505b60208210811415620004b357634e487b7160e01b600052602260045260246000fd5b50919050565b611b2480620004c96000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370a08231116100ee578063a901dd9211610097578063b5ed298a11610071578063b5ed298a146103ed578063d153b60c14610400578063dd62ed3e14610413578063f119f5671461044c57600080fd5b8063a901dd92146103b4578063a9059cbb146103c7578063af9549e0146103da57600080fd5b80639ddeab77116100c85780639ddeab7714610369578063a457c2d71461037c578063a64e4f8a1461038f57600080fd5b806370a08231146103255780638da5cb5b1461034e57806395d89b411461036157600080fd5b806334e731221161015b57806342966c681161013557806342966c681461028e5780634e71e0c8146102a15780635342acb4146102a95780636d3e9a8f146102cc57600080fd5b806334e731221461023d57806338af3eed14610250578063395093511461027b57600080fd5b80631c31f7101161018c5780631c31f7101461020657806323b872dd1461021b578063313ce5671461022e57600080fd5b806306fdde03146101b3578063095ea7b3146101d157806318160ddd146101f4575b600080fd5b6101bb61045f565b6040516101c89190611932565b60405180910390f35b6101e46101df3660046117ed565b6104f1565b60405190151581526020016101c8565b6002545b6040519081526020016101c8565b61021961021436600461172c565b610507565b005b6101e4610229366004611780565b6105aa565b604051601281526020016101c8565b6101f861024b366004611911565b61068f565b600c54610263906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b6101e46102893660046117ed565b6106af565b61021961029c3660046118f9565b6106e6565b6102196106f3565b6101e46102b736600461172c565b600d6020526000908152604090205460ff1681565b600854600954600a54600b546102f2936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016101c8565b6101f861033336600461172c565b6001600160a01b031660009081526020819052604090205490565b600554610263906001600160a01b031681565b6101bb610785565b610219610377366004611850565b610794565b6101e461038a3660046117ed565b610849565b600c546101e49074010000000000000000000000000000000000000000900460ff1681565b6102196103c2366004611818565b610916565b6101e46103d53660046117ed565b6109ac565b6102196103e83660046117c0565b6109b9565b6102196103fb36600461172c565b610a51565b600654610263906001600160a01b031681565b6101f8610421366004611748565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61021961045a3660046118f9565b610aa2565b60606003805461046e90611a48565b80601f016020809104026020016040519081016040528092919081815260200182805461049a90611a48565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b5050505050905090565b60006104fe338484610f04565b50600192915050565b6005546001600160a01b0316331461051e57600080fd5b6105298160016109b9565b600c54604080516001600160a01b03928316815291831660208301527fe72eaf6addaa195f3c83095031dd08f3a96808dcf047babed1fe4e4f69d6c622910160405180910390a1600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006105b7848484611091565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610684853361067f8685611a31565b610f04565b506001949350505050565b600061271061069e83856119f4565b6106a891906119bb565b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104fe91859061067f9086906119a3565b6106f0338261120a565b50565b6006546001600160a01b0316331461070a57600080fd5b6006546005546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600654600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055565b60606004805461046e90611a48565b6005546001600160a01b031633146107ab57600080fd5b6040517f4729fa2100a6a46a1b9f25f11808707be6b6495eb3856f57334e974641c0285a90600090a18051600880547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161790915560208301516009805483169184169190911790556040830151600a80548316918416919091179055606090920151600b80549093169116179055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156108fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610667565b61090c338561067f8685611a31565b5060019392505050565b6005546001600160a01b0316331461092d57600080fd5b60405181151581527fba500994dffbabeeb9e430f03a978d7b975359a20c5bde3a6ccb5a0c454680c89060200160405180910390a1600c805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60006104fe338484611091565b6005546001600160a01b031633146109d057600080fd5b6001600160a01b0382166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f318c131114339c004fff0a22fcdbbc0566bb2a7cd3aa1660e636ec5a66784ff2910160405180910390a15050565b6005546001600160a01b03163314610a6857600080fd5b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6007546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b03909116906323b872dd90606401602060405180830381600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611834565b506000610b546103e8836119bb565b90506000610b64836107d061068f565b6007546040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b0316906342966c6890602401600060405180830381600087803b158015610bc457600080fd5b505af1158015610bd8573d6000803e3d6000fd5b505050506000610be984606461068f565b90506000610bf86002836119bb565b600754600b546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101869052929350169063a9059cbb90604401602060405180830381600087803b158015610c6357600080fd5b505af1158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b9190611834565b506007546009546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015610d0557600080fd5b505af1158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190611834565b506007546008546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015610da757600080fd5b505af1158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611834565b50600754600a546001600160a01b039182169163a9059cbb9116610e048460026119f4565b85610e0f888b611a31565b610e199190611a31565b610e239190611a31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb99190611834565b50610ec433856113c4565b60408051868152602081018690527f831683a0a2794a398b7d69c2b83ba3c01f936a631165543a1a686a39e3164886910160405180910390a15050505050565b6001600160a01b038316610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b03821661102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216301415611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f43616e6e6f742073656e6420746f6b656e7320746f20746f6b656e20636f6e7460448201527f72616374000000000000000000000000000000000000000000000000000000006064820152608401610667565b600c5474010000000000000000000000000000000000000000900460ff16158061116b57506001600160a01b0383166000908152600d602052604090205460ff165b8061118e57506001600160a01b0382166000908152600d602052604090205460ff165b156111a35761119e8383836114bd565b505050565b60006111b082601961068f565b90506111bc848261120a565b60006111c98360c861068f565b600c549091506111e49086906001600160a01b0316836114bd565b6112038585846111f48588611a31565b6111fe9190611a31565b6114bd565b5050505050565b6001600160a01b0382166112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b03821660009081526020819052604090205481811015611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610667565b6113538282611a31565b6001600160a01b03841660009081526020819052604081209190915560028054849290611381908490611a31565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611084565b6001600160a01b038216611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610667565b806002600082825461144691906119a3565b90915550506001600160a01b038216600090815260208190526040812080548392906114739084906119a3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b0382166115e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b03831660009081526020819052604090205481811015611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610667565b61169c8282611a31565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906116d29084906119a3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161171e91815260200190565b60405180910390a350505050565b60006020828403121561173d578081fd5b81356106a881611acb565b6000806040838503121561175a578081fd5b823561176581611acb565b9150602083013561177581611acb565b809150509250929050565b600080600060608486031215611794578081fd5b833561179f81611acb565b925060208401356117af81611acb565b929592945050506040919091013590565b600080604083850312156117d2578182fd5b82356117dd81611acb565b9150602083013561177581611ae0565b600080604083850312156117ff578182fd5b823561180a81611acb565b946020939093013593505050565b600060208284031215611829578081fd5b81356106a881611ae0565b600060208284031215611845578081fd5b81516106a881611ae0565b600060808284031215611861578081fd5b6040516080810181811067ffffffffffffffff821117156118a9577f4e487b710000000000000000000000000000000000000000000000000000000083526041600452602483fd5b60405282356118b781611acb565b815260208301356118c781611acb565b602082015260408301356118da81611acb565b604082015260608301356118ed81611acb565b60608201529392505050565b60006020828403121561190a578081fd5b5035919050565b60008060408385031215611923578182fd5b50508035926020909101359150565b6000602080835283518082850152825b8181101561195e57858101830151858201604001528201611942565b8181111561196f5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156119b6576119b6611a9c565b500190565b6000826119ef577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a2c57611a2c611a9c565b500290565b600082821015611a4357611a43611a9c565b500390565b600181811c90821680611a5c57607f821691505b60208210811415611a96577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001600160a01b03811681146106f057600080fd5b80151581146106f057600080fdfea26469706673582212207128bb52f45722b35dd0e23b830c3a3ee0cf16b2599252f1e610242c10ae190564736f6c6343000804003300000000000000000000000043a89815f33747edbecc588d6bb7e1c10dda5599000000000000000000000000af4d3ee0061c18eeb19f852658e4088e572f6a27000000000000000000000000969015c7dbefca0d72ee4d49f0b09bd1bea3a55700000000000000000000000093c0601e0dfac43d8aa83cf86eacb5f496a64b4b000000000000000000000000f21b2f10e523a2a35c0797ce835523d1bd02e309

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370a08231116100ee578063a901dd9211610097578063b5ed298a11610071578063b5ed298a146103ed578063d153b60c14610400578063dd62ed3e14610413578063f119f5671461044c57600080fd5b8063a901dd92146103b4578063a9059cbb146103c7578063af9549e0146103da57600080fd5b80639ddeab77116100c85780639ddeab7714610369578063a457c2d71461037c578063a64e4f8a1461038f57600080fd5b806370a08231146103255780638da5cb5b1461034e57806395d89b411461036157600080fd5b806334e731221161015b57806342966c681161013557806342966c681461028e5780634e71e0c8146102a15780635342acb4146102a95780636d3e9a8f146102cc57600080fd5b806334e731221461023d57806338af3eed14610250578063395093511461027b57600080fd5b80631c31f7101161018c5780631c31f7101461020657806323b872dd1461021b578063313ce5671461022e57600080fd5b806306fdde03146101b3578063095ea7b3146101d157806318160ddd146101f4575b600080fd5b6101bb61045f565b6040516101c89190611932565b60405180910390f35b6101e46101df3660046117ed565b6104f1565b60405190151581526020016101c8565b6002545b6040519081526020016101c8565b61021961021436600461172c565b610507565b005b6101e4610229366004611780565b6105aa565b604051601281526020016101c8565b6101f861024b366004611911565b61068f565b600c54610263906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b6101e46102893660046117ed565b6106af565b61021961029c3660046118f9565b6106e6565b6102196106f3565b6101e46102b736600461172c565b600d6020526000908152604090205460ff1681565b600854600954600a54600b546102f2936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016101c8565b6101f861033336600461172c565b6001600160a01b031660009081526020819052604090205490565b600554610263906001600160a01b031681565b6101bb610785565b610219610377366004611850565b610794565b6101e461038a3660046117ed565b610849565b600c546101e49074010000000000000000000000000000000000000000900460ff1681565b6102196103c2366004611818565b610916565b6101e46103d53660046117ed565b6109ac565b6102196103e83660046117c0565b6109b9565b6102196103fb36600461172c565b610a51565b600654610263906001600160a01b031681565b6101f8610421366004611748565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61021961045a3660046118f9565b610aa2565b60606003805461046e90611a48565b80601f016020809104026020016040519081016040528092919081815260200182805461049a90611a48565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b5050505050905090565b60006104fe338484610f04565b50600192915050565b6005546001600160a01b0316331461051e57600080fd5b6105298160016109b9565b600c54604080516001600160a01b03928316815291831660208301527fe72eaf6addaa195f3c83095031dd08f3a96808dcf047babed1fe4e4f69d6c622910160405180910390a1600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006105b7848484611091565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610684853361067f8685611a31565b610f04565b506001949350505050565b600061271061069e83856119f4565b6106a891906119bb565b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104fe91859061067f9086906119a3565b6106f0338261120a565b50565b6006546001600160a01b0316331461070a57600080fd5b6006546005546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600654600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055565b60606004805461046e90611a48565b6005546001600160a01b031633146107ab57600080fd5b6040517f4729fa2100a6a46a1b9f25f11808707be6b6495eb3856f57334e974641c0285a90600090a18051600880547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161790915560208301516009805483169184169190911790556040830151600a80548316918416919091179055606090920151600b80549093169116179055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156108fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610667565b61090c338561067f8685611a31565b5060019392505050565b6005546001600160a01b0316331461092d57600080fd5b60405181151581527fba500994dffbabeeb9e430f03a978d7b975359a20c5bde3a6ccb5a0c454680c89060200160405180910390a1600c805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60006104fe338484611091565b6005546001600160a01b031633146109d057600080fd5b6001600160a01b0382166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f318c131114339c004fff0a22fcdbbc0566bb2a7cd3aa1660e636ec5a66784ff2910160405180910390a15050565b6005546001600160a01b03163314610a6857600080fd5b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6007546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b03909116906323b872dd90606401602060405180830381600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611834565b506000610b546103e8836119bb565b90506000610b64836107d061068f565b6007546040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b0316906342966c6890602401600060405180830381600087803b158015610bc457600080fd5b505af1158015610bd8573d6000803e3d6000fd5b505050506000610be984606461068f565b90506000610bf86002836119bb565b600754600b546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101869052929350169063a9059cbb90604401602060405180830381600087803b158015610c6357600080fd5b505af1158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b9190611834565b506007546009546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015610d0557600080fd5b505af1158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190611834565b506007546008546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015610da757600080fd5b505af1158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611834565b50600754600a546001600160a01b039182169163a9059cbb9116610e048460026119f4565b85610e0f888b611a31565b610e199190611a31565b610e239190611a31565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb99190611834565b50610ec433856113c4565b60408051868152602081018690527f831683a0a2794a398b7d69c2b83ba3c01f936a631165543a1a686a39e3164886910160405180910390a15050505050565b6001600160a01b038316610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b03821661102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216301415611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f43616e6e6f742073656e6420746f6b656e7320746f20746f6b656e20636f6e7460448201527f72616374000000000000000000000000000000000000000000000000000000006064820152608401610667565b600c5474010000000000000000000000000000000000000000900460ff16158061116b57506001600160a01b0383166000908152600d602052604090205460ff165b8061118e57506001600160a01b0382166000908152600d602052604090205460ff165b156111a35761119e8383836114bd565b505050565b60006111b082601961068f565b90506111bc848261120a565b60006111c98360c861068f565b600c549091506111e49086906001600160a01b0316836114bd565b6112038585846111f48588611a31565b6111fe9190611a31565b6114bd565b5050505050565b6001600160a01b0382166112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b03821660009081526020819052604090205481811015611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610667565b6113538282611a31565b6001600160a01b03841660009081526020819052604081209190915560028054849290611381908490611a31565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611084565b6001600160a01b038216611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610667565b806002600082825461144691906119a3565b90915550506001600160a01b038216600090815260208190526040812080548392906114739084906119a3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038316611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b0382166115e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610667565b6001600160a01b03831660009081526020819052604090205481811015611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610667565b61169c8282611a31565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906116d29084906119a3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161171e91815260200190565b60405180910390a350505050565b60006020828403121561173d578081fd5b81356106a881611acb565b6000806040838503121561175a578081fd5b823561176581611acb565b9150602083013561177581611acb565b809150509250929050565b600080600060608486031215611794578081fd5b833561179f81611acb565b925060208401356117af81611acb565b929592945050506040919091013590565b600080604083850312156117d2578182fd5b82356117dd81611acb565b9150602083013561177581611ae0565b600080604083850312156117ff578182fd5b823561180a81611acb565b946020939093013593505050565b600060208284031215611829578081fd5b81356106a881611ae0565b600060208284031215611845578081fd5b81516106a881611ae0565b600060808284031215611861578081fd5b6040516080810181811067ffffffffffffffff821117156118a9577f4e487b710000000000000000000000000000000000000000000000000000000083526041600452602483fd5b60405282356118b781611acb565b815260208301356118c781611acb565b602082015260408301356118da81611acb565b604082015260608301356118ed81611acb565b60608201529392505050565b60006020828403121561190a578081fd5b5035919050565b60008060408385031215611923578182fd5b50508035926020909101359150565b6000602080835283518082850152825b8181101561195e57858101830151858201604001528201611942565b8181111561196f5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156119b6576119b6611a9c565b500190565b6000826119ef577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a2c57611a2c611a9c565b500290565b600082821015611a4357611a43611a9c565b500390565b600181811c90821680611a5c57607f821691505b60208210811415611a96577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001600160a01b03811681146106f057600080fd5b80151581146106f057600080fdfea26469706673582212207128bb52f45722b35dd0e23b830c3a3ee0cf16b2599252f1e610242c10ae190564736f6c63430008040033

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

00000000000000000000000043a89815f33747edbecc588d6bb7e1c10dda5599000000000000000000000000af4d3ee0061c18eeb19f852658e4088e572f6a27000000000000000000000000969015c7dbefca0d72ee4d49f0b09bd1bea3a55700000000000000000000000093c0601e0dfac43d8aa83cf86eacb5f496a64b4b000000000000000000000000f21b2f10e523a2a35c0797ce835523d1bd02e309

-----Decoded View---------------
Arg [0] : _thunder (address): 0x43a89815F33747eDBeCC588d6BB7E1c10dDa5599
Arg [1] : _thunderWallets (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000043a89815f33747edbecc588d6bb7e1c10dda5599
Arg [1] : 000000000000000000000000af4d3ee0061c18eeb19f852658e4088e572f6a27
Arg [2] : 000000000000000000000000969015c7dbefca0d72ee4d49f0b09bd1bea3a557
Arg [3] : 00000000000000000000000093c0601e0dfac43d8aa83cf86eacb5f496a64b4b
Arg [4] : 000000000000000000000000f21b2f10e523a2a35c0797ce835523d1bd02e309


Deployed Bytecode Sourcemap

18126:4688:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9211:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11378:169;;;;;;:::i;:::-;;:::i;:::-;;;6461:14:1;;6454:22;6436:41;;6424:2;6409:18;11378:169:0;6391:92:1;10331:108:0;10419:12;;10331:108;;;11711:25:1;;;11699:2;11684:18;10331:108:0;11666:76:1;21525:229:0;;;;;;:::i;:::-;;:::i;:::-;;12029:422;;;;;;:::i;:::-;;:::i;10173:93::-;;;10256:2;12142:36:1;;12130:2;12115:18;10173:93:0;12097:87:1;20956:133:0;;;;;;:::i;:::-;;:::i;18221:26::-;;;;;-1:-1:-1;;;;;18221:26:0;;;;;;-1:-1:-1;;;;;4387:55:1;;;4369:74;;4357:2;4342:18;18221:26:0;4324:125:1;12860:215:0;;;;;;:::i;:::-;;:::i;21288:81::-;;;;;;:::i;:::-;;:::i;2776:180::-;;;:::i;18284:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18185:29;;;;;;;;;;;-1:-1:-1;;;;;18185:29:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5096:15:1;;;5078:34;;5148:15;;;5143:2;5128:18;;5121:43;5200:15;;;5180:18;;;5173:43;;;;5252:15;;;5247:2;5232:18;;5225:43;5004:3;4989:19;18185:29:0;4971:303:1;10502:127:0;;;;;;:::i;:::-;-1:-1:-1;;;;;10603:18:0;10576:7;10603:18;;;;;;;;;;;;10502:127;1857:20;;;;;-1:-1:-1;;;;;1857:20:0;;;9430:104;;;:::i;21915:158::-;;;;;;:::i;:::-;;:::i;13578:377::-;;;;;;:::i;:::-;;:::i;18254:23::-;;;;;;;;;;;;22258:141;;;;;;:::i;:::-;;:::i;10842:175::-;;;;;;:::i;:::-;;:::i;22616:195::-;;;;;;:::i;:::-;;:::i;2538:112::-;;;;;;:::i;:::-;;:::i;1884:28::-;;;;;-1:-1:-1;;;;;1884:28:0;;;11080:151;;;;;;:::i;:::-;-1:-1:-1;;;;;11196:18:0;;;11169:7;11196:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11080:151;19133:821;;;;;;:::i;:::-;;:::i;9211:100::-;9265:13;9298:5;9291:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9211:100;:::o;11378:169::-;11461:4;11478:39;3611:10;11501:7;11510:6;11478:8;:39::i;:::-;-1:-1:-1;11535:4:0;11378:169;;;;:::o;21525:229::-;2403:5;;-1:-1:-1;;;;;2403:5:0;2389:10;:19;2381:28;;;;;;21602:40:::1;21620:15;21637:4;21602:17;:40::i;:::-;21677:11;::::0;21658:48:::1;::::0;;-1:-1:-1;;;;;21677:11:0;;::::1;4689:34:1::0;;4759:15;;;4754:2;4739:18;;4732:43;21658:48:0::1;::::0;4601:18:1;21658:48:0::1;;;;;;;21717:11;:29:::0;;;::::1;-1:-1:-1::0;;;;;21717:29:0;;;::::1;::::0;;;::::1;::::0;;21525:229::o;12029:422::-;12135:4;12152:36;12162:6;12170:9;12181:6;12152:9;:36::i;:::-;-1:-1:-1;;;;;12228:19:0;;12201:24;12228:19;;;:11;:19;;;;;;;;3611:10;12228:33;;;;;;;;12280:26;;;;12272:79;;;;;;;9379:2:1;12272:79:0;;;9361:21:1;9418:2;9398:18;;;9391:30;9457:34;9437:18;;;9430:62;9528:10;9508:18;;;9501:38;9556:19;;12272:79:0;;;;;;;;;12362:57;12371:6;3611:10;12393:25;12412:6;12393:16;:25;:::i;:::-;12362:8;:57::i;:::-;-1:-1:-1;12439:4:0;;12029:422;-1:-1:-1;;;;12029:422:0:o;20956:133::-;21030:7;21076:5;21058:14;21068:4;21058:7;:14;:::i;:::-;21057:24;;;;:::i;:::-;21050:31;20956:133;-1:-1:-1;;;20956:133:0:o;12860:215::-;3611:10;12948:4;12997:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12997:34:0;;;;;;;;;;12948:4;;12965:80;;12988:7;;12997:47;;13034:10;;12997:47;:::i;21288:81::-;21335:26;3611:10;21355:5;21335;:26::i;:::-;21288:81;:::o;2776:180::-;2844:13;;-1:-1:-1;;;;;2844:13:0;2830:10;:27;2822:36;;;;;;2902:13;;2895:5;;2874:42;;-1:-1:-1;;;;;2902:13:0;;;;2895:5;;;;2874:42;;2902:13;;2874:42;2935:13;;2927:5;:21;;;;-1:-1:-1;;;;;2935:13:0;;;2927:21;;;;;;2776:180::o;9430:104::-;9486:13;9519:7;9512:14;;;;;:::i;21915:158::-;2403:5;;-1:-1:-1;;;;;2403:5:0;2389:10;:19;2381:28;;;;;;22003:23:::1;::::0;::::1;::::0;;;::::1;22037:28:::0;;:14:::1;:28:::0;;;;;::::1;-1:-1:-1::0;;;;;22037:28:0;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;::::0;::::1;;::::0;;21915:158::o;13578:377::-;3611:10;13671:4;13715:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13715:34:0;;;;;;;;;;13768:35;;;;13760:85;;;;;;;11001:2:1;13760:85:0;;;10983:21:1;11040:2;11020:18;;;11013:30;11079:34;11059:18;;;11052:62;11150:7;11130:18;;;11123:35;11175:19;;13760:85:0;10973:227:1;13760:85:0;13856:67;3611:10;13879:7;13888:34;13907:15;13888:16;:34;:::i;13856:67::-;-1:-1:-1;13943:4:0;;13578:377;-1:-1:-1;;;13578:377:0:o;22258:141::-;2403:5;;-1:-1:-1;;;;;2403:5:0;2389:10;:19;2381:28;;;;;;22330::::1;::::0;6461:14:1;;6454:22;6436:41;;22330:28:0::1;::::0;6424:2:1;6409:18;22330:28:0::1;;;;;;;22369:11;:22:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;22258:141::o;10842:175::-;10928:4;10945:42;3611:10;10969:9;10980:6;10945:9;:42::i;22616:195::-;2403:5;;-1:-1:-1;;;;;2403:5:0;2389:10;:19;2381:28;;;;;;-1:-1:-1;;;;;22705:27:0;::::1;;::::0;;;:17:::1;:27;::::0;;;;;;;;:39;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;22760:43;;5850:74:1;;;5940:18;;;5933:50;22760:43:0::1;::::0;5823:18:1;22760:43:0::1;;;;;;;22616:195:::0;;:::o;2538:112::-;2403:5;;-1:-1:-1;;;;;2403:5:0;2389:10;:19;2381:28;;;;;;2617:13:::1;:25:::0;;;::::1;-1:-1:-1::0;;;;;2617:25:0;;;::::1;::::0;;;::::1;::::0;;2538:112::o;19133:821::-;19193:7;;:63;;;;;19214:10;19193:63;;;5542:34:1;19234:4:0;5592:18:1;;;5585:43;5644:18;;;5637:34;;;-1:-1:-1;;;;;19193:7:0;;;;:20;;5454:18:1;;19193:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19267:17:0;19287:21;19304:4;19287:14;:21;:::i;:::-;19267:41;;19321:21;19345:34;19358:14;19374:4;19345:12;:34::i;:::-;19390:7;;:27;;;;;;;;11711:25:1;;;19321:58:0;;-1:-1:-1;;;;;;19390:7:0;;:12;;11684:18:1;;19390:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19430:17;19450:33;19463:14;19479:3;19450:12;:33::i;:::-;19430:53;-1:-1:-1;19494:25:0;19522:13;19534:1;19430:53;19522:13;:::i;:::-;19546:7;;19563:24;;19546:53;;;;;-1:-1:-1;;;;;19563:24:0;;;19546:53;;;6168:74:1;6258:18;;;6251:34;;;19494:41:0;;-1:-1:-1;19546:7:0;;:16;;6141:18:1;;19546:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19610:7:0;;19627:22;;19610:59;;;;;-1:-1:-1;;;;;19627:22:0;;;19610:59;;;6168:74:1;6258:18;;;6251:34;;;19610:7:0;;;:16;;6141:18:1;;19610:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19680:7:0;;19697:14;:19;19680:56;;;;;-1:-1:-1;;;;;19697:19:0;;;19680:56;;;6168:74:1;6258:18;;;6251:34;;;19680:7:0;;;:16;;6141:18:1;;19680:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19747:7:0;;19764:22;;-1:-1:-1;;;;;19747:7:0;;;;:16;;19764:22;19833:21;:17;19764:22;19833:21;:::i;:::-;19821:9;19788:30;19805:13;19788:14;:30;:::i;:::-;:42;;;;:::i;:::-;:66;;;;:::i;:::-;19747:108;;;;;;;;;;-1:-1:-1;;;;;6186:55:1;;;19747:108:0;;;6168:74:1;6258:18;;;6251:34;6141:18;;19747:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19868:28;19874:10;19886:9;19868:5;:28::i;:::-;19912:34;;;11921:25:1;;;11977:2;11962:18;;11955:34;;;19912::0;;11894:18:1;19912:34:0;;;;;;;19133:821;;;;;:::o;16934:346::-;-1:-1:-1;;;;;17036:19:0;;17028:68;;;;;;;10596:2:1;17028:68:0;;;10578:21:1;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;10745:6;10725:18;;;10718:34;10769:19;;17028:68:0;10568:226:1;17028:68:0;-1:-1:-1;;;;;17115:21:0;;17107:68;;;;;;;8164:2:1;17107:68:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242:34;8222:18;;;8215:62;8313:4;8293:18;;;8286:32;8335:19;;17107:68:0;8136:224:1;17107:68:0;-1:-1:-1;;;;;17188:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17240:32;;11711:25:1;;;17240:32:0;;11684:18:1;17240:32:0;;;;;;;;16934:346;;;:::o;20264:684::-;-1:-1:-1;;;;;20405:26:0;;20426:4;20405:26;;20397:75;;;;;;;8974:2:1;20397:75:0;;;8956:21:1;9013:2;8993:18;;;8986:30;9052:34;9032:18;;;9025:62;9123:6;9103:18;;;9096:34;9147:19;;20397:75:0;8946:226:1;20397:75:0;20488:11;;;;;;;20487:12;;:41;;-1:-1:-1;;;;;;20503:25:0;;;;;;:17;:25;;;;;;;;20487:41;:73;;;-1:-1:-1;;;;;;20532:28:0;;;;;;:17;:28;;;;;;;;20487:73;20483:169;;;20577:42;20593:6;20601:9;20612:6;20577:15;:42::i;:::-;20264:684;;;:::o;20483:169::-;20662:17;20682:24;20695:6;20703:2;20682:12;:24::i;:::-;20662:44;;20717:24;20723:6;20731:9;20717:5;:24::i;:::-;20754:19;20776:25;20789:6;20797:3;20776:12;:25::i;:::-;20836:11;;20754:47;;-1:-1:-1;20812:49:0;;20828:6;;-1:-1:-1;;;;;20836:11:0;20754:47;20812:15;:49::i;:::-;20872:68;20888:6;20896:9;20930;20907:20;20916:11;20907:6;:20;:::i;:::-;:32;;;;:::i;:::-;20872:15;:68::i;:::-;20264:684;;;;;:::o;16002:494::-;-1:-1:-1;;;;;16086:21:0;;16078:67;;;;;;;9788:2:1;16078:67:0;;;9770:21:1;9827:2;9807:18;;;9800:30;9866:34;9846:18;;;9839:62;9937:3;9917:18;;;9910:31;9958:19;;16078:67:0;9760:223:1;16078:67:0;-1:-1:-1;;;;;16245:18:0;;16220:22;16245:18;;;;;;;;;;;16282:24;;;;16274:71;;;;;;;7761:2:1;16274:71:0;;;7743:21:1;7800:2;7780:18;;;7773:30;7839:34;7819:18;;;7812:62;7910:4;7890:18;;;7883:32;7932:19;;16274:71:0;7733:224:1;16274:71:0;16377:23;16394:6;16377:14;:23;:::i;:::-;-1:-1:-1;;;;;16356:18:0;;:9;:18;;;;;;;;;;:44;;;;16411:12;:22;;16427:6;;16356:9;16411:22;;16427:6;;16411:22;:::i;:::-;;;;-1:-1:-1;;16451:37:0;;11711:25:1;;;16477:1:0;;-1:-1:-1;;;;;16451:37:0;;;;;11699:2:1;11684:18;16451:37:0;11666:76:1;15331:338:0;-1:-1:-1;;;;;15415:21:0;;15407:65;;;;;;;11407:2:1;15407:65:0;;;11389:21:1;11446:2;11426:18;;;11419:30;11485:33;11465:18;;;11458:61;11536:18;;15407:65:0;11379:181:1;15407:65:0;15563:6;15547:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;15580:18:0;;:9;:18;;;;;;;;;;:28;;15602:6;;15580:9;:28;;15602:6;;15580:28;:::i;:::-;;;;-1:-1:-1;;15624:37:0;;11711:25:1;;;-1:-1:-1;;;;;15624:37:0;;;15641:1;;15624:37;;11699:2:1;11684:18;15624:37:0;;;;;;;15331:338;;:::o;14445:604::-;-1:-1:-1;;;;;14551:20:0;;14543:70;;;;;;;10190:2:1;14543:70:0;;;10172:21:1;10229:2;10209:18;;;10202:30;10268:34;10248:18;;;10241:62;10339:7;10319:18;;;10312:35;10364:19;;14543:70:0;10162:227:1;14543:70:0;-1:-1:-1;;;;;14632:23:0;;14624:71;;;;;;;7357:2:1;14624:71:0;;;7339:21:1;7396:2;7376:18;;;7369:30;7435:34;7415:18;;;7408:62;7506:5;7486:18;;;7479:33;7529:19;;14624:71:0;7329:225:1;14624:71:0;-1:-1:-1;;;;;14792:17:0;;14768:21;14792:17;;;;;;;;;;;14828:23;;;;14820:74;;;;;;;8567:2:1;14820:74:0;;;8549:21:1;8606:2;8586:18;;;8579:30;8645:34;8625:18;;;8618:62;8716:8;8696:18;;;8689:36;8742:19;;14820:74:0;8539:228:1;14820:74:0;14925:22;14941:6;14925:13;:22;:::i;:::-;-1:-1:-1;;;;;14905:17:0;;;:9;:17;;;;;;;;;;;:42;;;;14958:20;;;;;;;;:30;;14982:6;;14905:9;14958:30;;14982:6;;14958:30;:::i;:::-;;;;;;;;15023:9;-1:-1:-1;;;;;15006:35:0;15015:6;-1:-1:-1;;;;;15006:35:0;;15034:6;15006:35;;;;11711:25:1;;11699:2;11684:18;;11666:76;15006:35:0;;;;;;;;14445:604;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;546:398::-;614:6;622;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:31;784:5;759:31;:::i;:::-;809:5;-1:-1:-1;866:2:1;851:18;;838:32;879:33;838:32;879:33;:::i;:::-;931:7;921:17;;;633:311;;;;;:::o;949:466::-;1026:6;1034;1042;1095:2;1083:9;1074:7;1070:23;1066:32;1063:2;;;1116:6;1108;1101:22;1063:2;1160:9;1147:23;1179:31;1204:5;1179:31;:::i;:::-;1229:5;-1:-1:-1;1286:2:1;1271:18;;1258:32;1299:33;1258:32;1299:33;:::i;:::-;1053:362;;1351:7;;-1:-1:-1;;;1405:2:1;1390:18;;;;1377:32;;1053:362::o;1420:392::-;1485:6;1493;1546:2;1534:9;1525:7;1521:23;1517:32;1514:2;;;1567:6;1559;1552:22;1514:2;1611:9;1598:23;1630:31;1655:5;1630:31;:::i;:::-;1680:5;-1:-1:-1;1737:2:1;1722:18;;1709:32;1750:30;1709:32;1750:30;:::i;1817:325::-;1885:6;1893;1946:2;1934:9;1925:7;1921:23;1917:32;1914:2;;;1967:6;1959;1952:22;1914:2;2011:9;1998:23;2030:31;2055:5;2030:31;:::i;:::-;2080:5;2132:2;2117:18;;;;2104:32;;-1:-1:-1;;;1904:238:1:o;2147:251::-;2203:6;2256:2;2244:9;2235:7;2231:23;2227:32;2224:2;;;2277:6;2269;2262:22;2224:2;2321:9;2308:23;2340:28;2362:5;2340:28;:::i;2403:255::-;2470:6;2523:2;2511:9;2502:7;2498:23;2494:32;2491:2;;;2544:6;2536;2529:22;2491:2;2581:9;2575:16;2600:28;2622:5;2600:28;:::i;2663:1097::-;2746:6;2799:3;2787:9;2778:7;2774:23;2770:33;2767:2;;;2821:6;2813;2806:22;2767:2;2859;2853:9;2901:3;2893:6;2889:16;2971:6;2959:10;2956:22;2935:18;2923:10;2920:34;2917:62;2914:2;;;3017:77;3009:6;3002:93;3118:4;3115:1;3108:15;3151:4;3143:6;3136:20;2914:2;3182;3175:22;3219:23;;3251:31;3219:23;3251:31;:::i;:::-;3291:21;;3364:2;3349:18;;3336:32;3377:33;3336:32;3377:33;:::i;:::-;3438:2;3426:15;;3419:32;3503:2;3488:18;;3475:32;3516:33;3475:32;3516:33;:::i;:::-;3577:2;3565:15;;3558:32;3642:2;3627:18;;3614:32;3655:33;3614:32;3655:33;:::i;:::-;3716:2;3704:15;;3697:32;3708:6;2757:1003;-1:-1:-1;;;2757:1003:1:o;3765:190::-;3824:6;3877:2;3865:9;3856:7;3852:23;3848:32;3845:2;;;3898:6;3890;3883:22;3845:2;-1:-1:-1;3926:23:1;;3835:120;-1:-1:-1;3835:120:1:o;3960:258::-;4028:6;4036;4089:2;4077:9;4068:7;4064:23;4060:32;4057:2;;;4110:6;4102;4095:22;4057:2;-1:-1:-1;;4138:23:1;;;4208:2;4193:18;;;4180:32;;-1:-1:-1;4047:171:1:o;6488:662::-;6600:4;6629:2;6658;6647:9;6640:21;6690:6;6684:13;6733:6;6728:2;6717:9;6713:18;6706:34;6758:4;6771:140;6785:6;6782:1;6779:13;6771:140;;;6880:14;;;6876:23;;6870:30;6846:17;;;6865:2;6842:26;6835:66;6800:10;;6771:140;;;6929:6;6926:1;6923:13;6920:2;;;6999:4;6994:2;6985:6;6974:9;6970:22;6966:31;6959:45;6920:2;-1:-1:-1;7066:2:1;7054:15;7071:66;7050:88;7035:104;;;;7141:2;7031:113;;6609:541;-1:-1:-1;;;6609:541:1:o;12189:128::-;12229:3;12260:1;12256:6;12253:1;12250:13;12247:2;;;12266:18;;:::i;:::-;-1:-1:-1;12302:9:1;;12237:80::o;12322:274::-;12362:1;12388;12378:2;;12423:77;12420:1;12413:88;12524:4;12521:1;12514:15;12552:4;12549:1;12542:15;12378:2;-1:-1:-1;12581:9:1;;12368:228::o;12601:::-;12641:7;12767:1;12699:66;12695:74;12692:1;12689:81;12684:1;12677:9;12670:17;12666:105;12663:2;;;12774:18;;:::i;:::-;-1:-1:-1;12814:9:1;;12653:176::o;12834:125::-;12874:4;12902:1;12899;12896:8;12893:2;;;12907:18;;:::i;:::-;-1:-1:-1;12944:9:1;;12883:76::o;12964:437::-;13043:1;13039:12;;;;13086;;;13107:2;;13161:4;13153:6;13149:17;13139:27;;13107:2;13214;13206:6;13203:14;13183:18;13180:38;13177:2;;;13251:77;13248:1;13241:88;13352:4;13349:1;13342:15;13380:4;13377:1;13370:15;13177:2;;13019:382;;;:::o;13406:184::-;13458:77;13455:1;13448:88;13555:4;13552:1;13545:15;13579:4;13576:1;13569:15;13595:154;-1:-1:-1;;;;;13674:5:1;13670:54;13663:5;13660:65;13650:2;;13739:1;13736;13729:12;13754:118;13840:5;13833:13;13826:21;13819:5;13816:32;13806:2;;13862:1;13859;13852:12

Swarm Source

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