ETH Price: $1,958.90 (-0.21%)
 

Overview

ETH Balance

0.017574286907504017 ETH

Eth Value

$34.43 (@ $1,958.90/ETH)

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve245616452026-03-01 9:17:4715 hrs ago1772356667IN
MoonBull: $MOBU Token
0 ETH0.000094232.03451637
Approve245571922026-02-28 18:23:1130 hrs ago1772302991IN
MoonBull: $MOBU Token
0 ETH0.000048571.04444082
Approve245569262026-02-28 17:29:3531 hrs ago1772299775IN
MoonBull: $MOBU Token
0 ETH0.000003280.07048523
Approve245563692026-02-28 15:36:5933 hrs ago1772293019IN
MoonBull: $MOBU Token
0 ETH0.000049771.07012203
Approve245562782026-02-28 15:18:4733 hrs ago1772291927IN
MoonBull: $MOBU Token
0 ETH0.000007650.16521624
Transfer245544842026-02-28 9:17:4739 hrs ago1772270267IN
MoonBull: $MOBU Token
0 ETH0.000091341.06919947
Transfer245540662026-02-28 7:53:4740 hrs ago1772265227IN
MoonBull: $MOBU Token
0 ETH0.000015380.22506859
Approve245540212026-02-28 7:44:3541 hrs ago1772264675IN
MoonBull: $MOBU Token
0 ETH0.000007950.17079738
Transfer245514602026-02-27 23:09:472 days ago1772233787IN
MoonBull: $MOBU Token
0 ETH0.000007790.08636694
Transfer245507472026-02-27 20:46:352 days ago1772225195IN
MoonBull: $MOBU Token
0 ETH0.00006540.95687835
Transfer245499362026-02-27 18:03:472 days ago1772215427IN
MoonBull: $MOBU Token
0 ETH0.000080441.17709324
Approve245483602026-02-27 12:47:352 days ago1772196455IN
MoonBull: $MOBU Token
0 ETH0.000098832.12448876
Transfer245481532026-02-27 12:05:472 days ago1772193947IN
MoonBull: $MOBU Token
0 ETH0.000182172.13192472
Approve245480392026-02-27 11:42:472 days ago1772192567IN
MoonBull: $MOBU Token
0 ETH0.00005451.17684651
Approve245443102026-02-26 23:14:233 days ago1772147663IN
MoonBull: $MOBU Token
0 ETH0.000095332.04937248
Approve245410302026-02-26 12:15:473 days ago1772108147IN
MoonBull: $MOBU Token
0 ETH0.000049661.0677708
Approve245375312026-02-26 0:33:234 days ago1772066003IN
MoonBull: $MOBU Token
0 ETH0.000098012.11675853
Approve245352622026-02-25 16:56:354 days ago1772038595IN
MoonBull: $MOBU Token
0 ETH0.000110842.39262106
Transfer245289022026-02-24 19:38:115 days ago1771961891IN
MoonBull: $MOBU Token
0 ETH0.000076041.03981655
Transfer245288892026-02-24 19:35:355 days ago1771961735IN
MoonBull: $MOBU Token
0 ETH0.000064041.055032
Transfer245288862026-02-24 19:34:595 days ago1771961699IN
MoonBull: $MOBU Token
0 ETH0.000094071.04281781
Approve245270882026-02-24 13:33:595 days ago1771940039IN
MoonBull: $MOBU Token
0 ETH0.000052131.12088316
Approve245180632026-02-23 7:21:596 days ago1771831319IN
MoonBull: $MOBU Token
0 ETH0.000001250.04783744
Approve245180622026-02-23 7:21:476 days ago1771831307IN
MoonBull: $MOBU Token
0 ETH0.000001240.05137649
Approve245177162026-02-23 6:12:356 days ago1771827155IN
MoonBull: $MOBU Token
0 ETH0.000048051.0388714
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MoonBull

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 5 : MoonBull.sol
// SPDX-License-Identifier: MIT
/*
 * MoonBull Token ($MOBU)
 *
 * Website     : https://MoonBull.io
 * X           : https://x.com/MoonBullX
 * Telegram    : https://t.me/MoonBullCoin
 * Support     : [email protected]
 *
 * Welcome to MoonBull! Visit our site or reach out to join the journey to the moon.
 */

pragma solidity 0.8.28;

import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract MoonBull is Context, IERC20, IERC20Metadata, Ownable {
    string private _name;
    string private _symbol;
    uint8 private constant DECIMALS = 18;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private immutable _tTotal;
    uint256 private _rTotal;
    uint256 private _tFeeTotal;
    
    uint256 public constant sellReflectionFee = 2;
    uint256 public constant sellLiquidityFee = 2;
    uint256 public constant sellBurnFee = 1;
    
    
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _isExcluded;
    mapping(address => uint256) public isDexPair;
    address[] private _excluded;
    
    IUniswapV2Router02 public uniswapV2Router;
    
    uint256 private inSwapAndLiquify;
    
    uint256 private constant NUM_TOKENS_SELL_TO_ADD_TO_LIQUIDITY = 25_000_000 * 10**DECIMALS;
    
    address public constant burnAddress = 0x000000000000000000000000000000000000dEaD;
    
    event ReflectionDistributed(uint256 tAmount);
    event BurnCompleted(uint256 amount);
    event DexPairUpdated(address indexed pair, bool indexed isPair);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    event RouterUpdated(address indexed router);
    
    error LaunchPadLocked();
    error NotEnoughRocketFuel();
    error MissionControlDenied();
    error InvalidFeeAmount();
    
    struct TransferValues {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rFee;
        uint256 tTransferAmount;
        uint256 tFee;
        uint256 tLiquidity;
        uint256 tBurn;
    }
    
    modifier lockTheSwap {
        inSwapAndLiquify = 1;
        _;
        inSwapAndLiquify = 0;
    }

    constructor() Ownable(_msgSender()) {
        _name = "MoonBull";
        _symbol = "$MOBU";
        _tTotal = 73_200_000_000 * 10**DECIMALS;
        _rTotal = (MAX - (MAX % _tTotal));
        
        _rOwned[_msgSender()] = _rTotal;
        
        // Exclude contract from rewards to prevent fee loops
        _isExcluded[address(this)] = 1;
        _excluded.push(address(this));
        
        // Exclude burn address from rewards
        _isExcluded[burnAddress] = 1;
        _excluded.push(burnAddress);
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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


    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account] == 1) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

    function allowance(address astronaut, address copilot) public view override returns (uint256) {
        return _allowances[astronaut][copilot];
    }

    function approve(address copilot, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), copilot, amount);
        return true;
    }

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

    function increaseAllowance(address copilot, uint256 addedValue) public returns (bool) {
        address astronaut = _msgSender();
        _approve(astronaut, copilot, _allowances[astronaut][copilot] + addedValue);
        return true;
    }

    function decreaseAllowance(address copilot, uint256 subtractedValue) public returns (bool) {
        address astronaut = _msgSender();
        uint256 currentAllowance = _allowances[astronaut][copilot];
        if (currentAllowance < subtractedValue) revert NotEnoughRocketFuel();
        unchecked {
            _approve(astronaut, copilot, currentAllowance - subtractedValue);
        }
        return true;
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        if (rAmount > _rTotal) revert InvalidFeeAmount();
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }

    function setRouter(address router) external onlyOwner {
        if (router == address(0)) revert LaunchPadLocked();
        uniswapV2Router = IUniswapV2Router02(router);
        emit RouterUpdated(router);
    }

    function setDexPair(address pair, bool isPair) external onlyOwner {
        if (pair == address(0)) revert LaunchPadLocked();
        isDexPair[pair] = isPair ? 1 : 0;
        
        if (isPair && _isExcluded[pair] == 0) {
            if (_rOwned[pair] > 0) {
                _tOwned[pair] = tokenFromReflection(_rOwned[pair]);
            }
            _isExcluded[pair] = 1;
            _excluded.push(pair);
        }
        
        emit DexPairUpdated(pair, isPair);
    }


    function renounceOwnership() public override onlyOwner {
        super.renounceOwnership();
    }

    receive() external payable {}

    function _approve(address astronaut, address copilot, uint256 amount) private {
        if (astronaut == address(0)) revert LaunchPadLocked();
        if (copilot == address(0)) revert LaunchPadLocked();

        _allowances[astronaut][copilot] = amount;
        emit Approval(astronaut, copilot, amount);
    }

    function _spendAllowance(address astronaut, address copilot, uint256 amount) internal {
        uint256 currentAllowance = allowance(astronaut, copilot);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < amount) revert MissionControlDenied();
            unchecked {
                _approve(astronaut, copilot, currentAllowance - amount);
            }
        }
    }

    function _transfer(address from, address to, uint256 amount) private {
        if (from == address(0)) revert LaunchPadLocked();
        if (to == address(0)) revert LaunchPadLocked();
        if (amount == 0) return;

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >= NUM_TOKENS_SELL_TO_ADD_TO_LIQUIDITY;
        
        if (
            overMinTokenBalance &&
            inSwapAndLiquify == 0 &&
            isDexPair[from] == 0 &&
            address(uniswapV2Router) != address(0)
        ) {
            swapAndLiquify(NUM_TOKENS_SELL_TO_ADD_TO_LIQUIDITY);
        }

        bool isSell = isDexPair[to] == 1;
        bool takeFee = isSell;

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        if (address(uniswapV2Router) == address(0)) revert LaunchPadLocked();
        uint256 half = contractTokenBalance >> 1;
        uint256 otherHalf = contractTokenBalance - half;

        uint256 initialBalance = address(this).balance;

        swapTokensForEth(half);

        uint256 newBalance = address(this).balance - initialBalance;

        addLiquidity(otherHalf, newBalance);
        
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        if (_allowances[address(this)][address(uniswapV2Router)] < tokenAmount) {
            _approve(address(this), address(uniswapV2Router), type(uint256).max);
        }

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        if (_allowances[address(this)][address(uniswapV2Router)] < tokenAmount) {
            _approve(address(this), address(uniswapV2Router), type(uint256).max);
        }

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            burnAddress,
            block.timestamp
        );
    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {
        TransferValues memory values = _getValues(tAmount, takeFee);
        
        if (_isExcluded[sender] == 1) {
            _tOwned[sender] = _tOwned[sender] - tAmount;
        }
        _rOwned[sender] = _rOwned[sender] - values.rAmount;
        
        if (_isExcluded[recipient] == 1) {
            _tOwned[recipient] = _tOwned[recipient] + values.tTransferAmount;
        }
        _rOwned[recipient] = _rOwned[recipient] + values.rTransferAmount;
        
        if (takeFee) {
            _takeLiquidity(values.tLiquidity);
            _takeBurn(values.tBurn);
            _reflectFee(values.rFee, values.tFee);
        }
        
        emit Transfer(sender, recipient, values.tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal - rFee;
        _tFeeTotal = _tFeeTotal + tFee;
        emit ReflectionDistributed(tFee);
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (TransferValues memory) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn) = _getTValues(tAmount, takeFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tBurn, currentRate);
        
        return TransferValues(
            rAmount,
            rTransferAmount,
            rFee,
            tTransferAmount,
            tFee,
            tLiquidity,
            tBurn
        );
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (uint256, uint256, uint256, uint256) {
        if (!takeFee) {
            return (tAmount, 0, 0, 0);
        }
        uint256 tFee = calculateReflectionFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tBurn = calculateBurnFee(tAmount);
        uint256 tTransferAmount = tAmount - tFee - tLiquidity - tBurn;
        return (tTransferAmount, tFee, tLiquidity, tBurn);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount * currentRate;
        uint256 rFee = tFee * currentRate;
        uint256 rLiquidity = tLiquidity * currentRate;
        uint256 rBurn = tBurn * currentRate;
        uint256 rTransferAmount = rAmount - rFee - rLiquidity - rBurn;
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        uint256 excludedLength = _excluded.length;
        for (uint256 i; i < excludedLength; ++i) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _takeLiquidity(uint256 tLiquidity) private {
        if (tLiquidity == 0) return;
        uint256 currentRate = _getRate();
        uint256 rLiquidity = tLiquidity * currentRate;
        _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity;
        if (_isExcluded[address(this)] == 1)
            _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity;
    }

    function _takeBurn(uint256 tBurn) private {
        if (tBurn == 0) return;
        uint256 currentRate = _getRate();
        uint256 rBurn = tBurn * currentRate;
        _rOwned[burnAddress] = _rOwned[burnAddress] + rBurn;
        if (_isExcluded[burnAddress] == 1) {
            _tOwned[burnAddress] = _tOwned[burnAddress] + tBurn;
        }
        emit BurnCompleted(tBurn);
    }

    function calculateReflectionFee(uint256 amount) private view returns (uint256) {
        return (amount * sellReflectionFee) / 100;
    }

    function calculateLiquidityFee(uint256 amount) private view returns (uint256) {
        return (amount * sellLiquidityFee) / 100;
    }

    function calculateBurnFee(uint256 amount) private view returns (uint256) {
        return (amount * sellBurnFee) / 100;
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @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.
 *
 * The initial owner is set to the address provided by the deployer. 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;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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 {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _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);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity >=0.6.2;

import {IERC20} from "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC-20 standard.
 */
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);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/IERC20.sol)

pragma solidity >=0.4.16;

/**
 * @dev Interface of the ERC-20 standard as defined in the ERC.
 */
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 value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` 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 value) external returns (bool);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidFeeAmount","type":"error"},{"inputs":[],"name":"LaunchPadLocked","type":"error"},{"inputs":[],"name":"MissionControlDenied","type":"error"},{"inputs":[],"name":"NotEnoughRocketFuel","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint256","name":"amount","type":"uint256"}],"name":"BurnCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"isPair","type":"bool"}],"name":"DexPairUpdated","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":false,"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"ReflectionDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"router","type":"address"}],"name":"RouterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"astronaut","type":"address"},{"internalType":"address","name":"copilot","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"copilot","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":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"copilot","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"copilot","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":"isDexPair","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellReflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"isPair","type":"bool"}],"name":"setDexPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b610040816101b2565b50604080518082019091526008815267135bdbdb909d5b1b60c21b602082015260019061006d90826102a1565b50604080518082019091526005815264244d4f425560d81b602082015260029061009790826102a1565b506100a46012600a61045e565b6100b39064110b0f5c00610474565b60808190526100c49060001961048b565b6100d0906000196104ad565b6003819055336000818152600560209081526040808320949094553080835260088252848320600190819055600a805480830182557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890810180546001600160a01b031990811690951790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998390558154928301825590855201805490911661dead1790556080519351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104c0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061022c57607f821691505b60208210810361024c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561029c57806000526020600020601f840160051c810160208510156102795750805b601f840160051c820191505b818110156102995760008155600101610285565b50505b505050565b81516001600160401b038111156102ba576102ba610202565b6102ce816102c88454610218565b84610252565b6020601f82116001811461030257600083156102ea5750848201515b600019600385901b1c1916600184901b178455610299565b600084815260208120601f198516915b828110156103325787850151825560209485019460019092019101610312565b50848210156103505786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b6001815b60018411156103b0578085048111156103945761039461035f565b60018416156103a257908102905b60019390931c928002610379565b935093915050565b6000826103c757506001610458565b816103d457506000610458565b81600181146103ea57600281146103f457610410565b6001915050610458565b60ff8411156104055761040561035f565b50506001821b610458565b5060208310610133831016604e8410600b8410161715610433575081810a610458565b6104406000198484610375565b80600019048211156104545761045461035f565b0290505b92915050565b600061046d60ff8416836103b8565b9392505050565b80820281158282048414176104585761045861035f565b6000826104a857634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156104585761045861035f565b608051611af06104f76000396000818161021c01528181610e7401528181610f2e01528181610ff0015261102b0152611af06000f3fe60806040526004361061014f5760003560e01c806370d5ae05116100b6578063adb873bd1161006f578063adb873bd146103be578063c0d78655146103d3578063dd62ed3e146103f3578063e55648f414610439578063f2fde38b14610459578063f6374342146102e957600080fd5b806370d5ae051461031e578063715018a6146103345780638da5cb5b1461034b57806395d89b4114610369578063a457c2d71461037e578063a9059cbb1461039e57600080fd5b80632d838119116101085780632d83811914610260578063313ce56714610280578063395093511461029c57806340009927146102bc5780636042f719146102e957806370a08231146102fe57600080fd5b806306fdde031461015b578063095ea7b31461018657806313114a9d146101b65780631694505e146101d557806318160ddd1461020d57806323b872dd1461024057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610479565b60405161017d91906116d0565b60405180910390f35b34801561019257600080fd5b506101a66101a1366004611733565b61050b565b604051901515815260200161017d565b3480156101c257600080fd5b506004545b60405190815260200161017d565b3480156101e157600080fd5b50600b546101f5906001600160a01b031681565b6040516001600160a01b03909116815260200161017d565b34801561021957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101c7565b34801561024c57600080fd5b506101a661025b36600461175f565b610522565b34801561026c57600080fd5b506101c761027b3660046117a0565b610546565b34801561028c57600080fd5b506040516012815260200161017d565b3480156102a857600080fd5b506101a66102b7366004611733565b610587565b3480156102c857600080fd5b506101c76102d73660046117b9565b60096020526000908152604090205481565b3480156102f557600080fd5b506101c7600281565b34801561030a57600080fd5b506101c76103193660046117b9565b6105d0565b34801561032a57600080fd5b506101f561dead81565b34801561034057600080fd5b5061034961062e565b005b34801561035757600080fd5b506000546001600160a01b03166101f5565b34801561037557600080fd5b50610170610640565b34801561038a57600080fd5b506101a6610399366004611733565b61064f565b3480156103aa57600080fd5b506101a66103b9366004611733565b6106a4565b3480156103ca57600080fd5b506101c7600181565b3480156103df57600080fd5b506103496103ee3660046117b9565b6106b1565b3480156103ff57600080fd5b506101c761040e3660046117d6565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561044557600080fd5b5061034961045436600461180f565b61072d565b34801561046557600080fd5b506103496104743660046117b9565b6108aa565b60606001805461048890611842565b80601f01602080910402602001604051908101604052809291908181526020018280546104b490611842565b80156105015780601f106104d657610100808354040283529160200191610501565b820191906000526020600020905b8154815290600101906020018083116104e457829003601f168201915b5050505050905090565b60006105183384846108ed565b5060015b92915050565b6000336105308582856109a2565b61053b858585610a05565b506001949350505050565b600060035482111561056a5760405162a4671960e71b815260040160405180910390fd5b6000610574610b32565b90506105808184611892565b9392505050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091906105c690829086906105c19087906118b4565b6108ed565b5060019392505050565b6001600160a01b03811660009081526008602052604081205460010361060c57506001600160a01b031660009081526006602052604090205490565b6001600160a01b03821660009081526005602052604090205461051c90610546565b610636610b55565b61063e610b82565b565b60606002805461048890611842565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091908381101561069757604051634c5d196160e11b815260040160405180910390fd5b61053b82868684036108ed565b6000610518338484610a05565b6106b9610b55565b6001600160a01b0381166106e35760405160016211070d60e11b0319815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc8090600090a250565b610735610b55565b6001600160a01b03821661075f5760405160016211070d60e11b0319815260040160405180910390fd5b8061076b57600061076e565b60015b6001600160a01b038316600090815260096020526040902060ff9190911690558080156107b157506001600160a01b038216600090815260086020526040902054155b1561086e576001600160a01b03821660009081526005602052604090205415610810576001600160a01b0382166000908152600560205260409020546107f690610546565b6001600160a01b0383166000908152600660205260409020555b6001600160a01b0382166000818152600860205260408120600190819055600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b03191690911790555b604051811515906001600160a01b038416907f568be47e27f53734673ed7d53af6e687fd70fdfff51f9f47304301d6f918900d90600090a35050565b6108b2610b55565b6001600160a01b0381166108e157604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6108ea81610b90565b50565b6001600160a01b0383166109175760405160016211070d60e11b0319815260040160405180910390fd5b6001600160a01b0382166109415760405160016211070d60e11b0319815260040160405180910390fd5b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526007602090815260408083209386168352929052205460001981146109ff57818110156109f2576040516339d18f4360e11b815260040160405180910390fd5b6109ff84848484036108ed565b50505050565b6001600160a01b038316610a2f5760405160016211070d60e11b0319815260040160405180910390fd5b6001600160a01b038216610a595760405160016211070d60e11b0319815260040160405180910390fd5b80600003610a6657505050565b6000610a71306105d0565b90506000610a816012600a6119ae565b610a8f9063017d78406119bd565b8210159050808015610aa15750600c54155b8015610ac357506001600160a01b038516600090815260096020526040902054155b8015610ad95750600b546001600160a01b031615155b15610b0057610b00610aed6012600a6119ae565b610afb9063017d78406119bd565b610be0565b6001600160a01b03841660009081526009602052604090205460011480610b2987878784610c93565b50505050505050565b6000806000610b3f610e67565b9092509050610b4e8183611892565b9250505090565b6000546001600160a01b0316331461063e5760405163118cdaa760e01b81523360048201526024016108d8565b610b8a610b55565b61063e60005b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600c55600b546001600160a01b0316610c115760405160016211070d60e11b0319815260040160405180910390fd5b600181901c6000610c2282846119d4565b905047610c2e8361105b565b6000610c3a82476119d4565b9050610c4683826111e7565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506000600c55505050565b6000610c9f83836112c8565b6001600160a01b038616600090815260086020526040902054909150600103610d00576001600160a01b038516600090815260066020526040902054610ce69084906119d4565b6001600160a01b0386166000908152600660205260409020555b80516001600160a01b038616600090815260056020526040902054610d2591906119d4565b6001600160a01b03808716600090815260056020908152604080832094909455918716815260089091522054600103610d9a5760608101516001600160a01b038516600090815260066020526040902054610d8091906118b4565b6001600160a01b0385166000908152600660205260409020555b6020808201516001600160a01b03861660009081526005909252604090912054610dc491906118b4565b6001600160a01b0385166000908152600560205260409020558115610e0f57610df08160a0015161137c565b610dfd8160c00151611411565b610e0f81604001518260800151611563565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360600151604051610e5891815260200190565b60405180910390a35050505050565b600354600a5460009182917f000000000000000000000000000000000000000000000000000000000000000090835b81811015610fed578360056000600a8481548110610eb657610eb66119e7565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180610f2157508260066000600a8481548110610efa57610efa6119e7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15610f55575050600354947f0000000000000000000000000000000000000000000000000000000000000000945092505050565b60056000600a8381548110610f6c57610f6c6119e7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054610f9b90856119d4565b935060066000600a8381548110610fb457610fb46119e7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054610fe390846119d4565b9250600101610e96565b507f000000000000000000000000000000000000000000000000000000000000000060035461101c9190611892565b831015611051575050600354937f00000000000000000000000000000000000000000000000000000000000000009350915050565b5090939092509050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611090576110906119e7565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d91906119fd565b81600181518110611120576111206119e7565b6001600160a01b03928316602091820292909201810191909152306000908152600782526040808220600b54909416825292909152205482111561117857600b546111789030906001600160a01b03166000196108ed565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111b1908590600090869030904290600401611a1a565b600060405180830381600087803b1580156111cb57600080fd5b505af11580156111df573d6000803e3d6000fd5b505050505050565b306000908152600760209081526040808320600b546001600160a01b0316845290915290205482111561122e57600b5461122e9030906001600160a01b03166000196108ed565b600b5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561129c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c19190611a8c565b5050505050565b6113086040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060008061131887876115bc565b9350935093509350600061132a610b32565b9050600080600061133e8b88888888611636565b6040805160e081018252938452602084019290925290820152606081019890985250505050608084019290925260a083015260c08201529392505050565b806000036113875750565b6000611391610b32565b9050600061139f82846119bd565b306000908152600560205260409020549091506113bd9082906118b4565b3060009081526005602090815260408083209390935560089052205460010361140c57306000908152600660205260409020546113fb9084906118b4565b306000908152600660205260409020555b505050565b8060000361141c5750565b6000611426610b32565b9050600061143482846119bd565b61dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5490915061146f9082906118b4565b61dead6000527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5560086020527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342995460010361152b5761dead60005260066020527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546114fd9084906118b4565b61dead60005260066020527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22555b6040518381527f6394676ebae6d9e73d2799f2843bb7b7ab050352d646126b55975291b88bc8b29060200160405180910390a1505050565b8160035461157191906119d4565b6003556004546115829082906118b4565b6004556040518181527f26221fceafd78c0e5cc8c06eae46dda5be9b778e6723222df87a3c25c785d27e9060200160405180910390a15050565b600080600080846115d85750849250600091508190508061162d565b60006115e3876116a8565b905060006115f0886116a8565b905060006115fd896116c1565b90506000818361160d868d6119d4565b61161791906119d4565b61162191906119d4565b97509295509093509150505b92959194509250565b6000808080611645858a6119bd565b90506000611653868a6119bd565b90506000611661878a6119bd565b9050600061166f888a6119bd565b90506000818361167f86886119d4565b61168991906119d4565b61169391906119d4565b949d949c50929a509298505050505050505050565b600060646116b76002846119bd565b61051c9190611892565b600060646116b76001846119bd565b602081526000825180602084015260005b818110156116fe57602081860181015160408684010152016116e1565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146108ea57600080fd5b6000806040838503121561174657600080fd5b82356117518161171e565b946020939093013593505050565b60008060006060848603121561177457600080fd5b833561177f8161171e565b9250602084013561178f8161171e565b929592945050506040919091013590565b6000602082840312156117b257600080fd5b5035919050565b6000602082840312156117cb57600080fd5b81356105808161171e565b600080604083850312156117e957600080fd5b82356117f48161171e565b915060208301356118048161171e565b809150509250929050565b6000806040838503121561182257600080fd5b823561182d8161171e565b91506020830135801515811461180457600080fd5b600181811c9082168061185657607f821691505b60208210810361187657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000826118af57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561051c5761051c61187c565b6001815b6001841115611902578085048111156118e6576118e661187c565b60018416156118f457908102905b60019390931c9280026118cb565b935093915050565b6000826119195750600161051c565b816119265750600061051c565b816001811461193c576002811461194657611962565b600191505061051c565b60ff8411156119575761195761187c565b50506001821b61051c565b5060208310610133831016604e8410600b8410161715611985575081810a61051c565b61199260001984846118c7565b80600019048211156119a6576119a661187c565b029392505050565b600061058060ff84168361190a565b808202811582820484141761051c5761051c61187c565b8181038181111561051c5761051c61187c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a0f57600080fd5b81516105808161171e565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b81811015611a6c5783516001600160a01b0316835260209384019390920191600101611a45565b50506001600160a01b039590951660608401525050608001529392505050565b600080600060608486031215611aa157600080fd5b505081516020830151604090930151909492935091905056fea26469706673582212200e4018c993fec8711641a56d3de7f03c7a1995ef7a9bfc169479137b86553b0564736f6c634300081c0033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806370d5ae05116100b6578063adb873bd1161006f578063adb873bd146103be578063c0d78655146103d3578063dd62ed3e146103f3578063e55648f414610439578063f2fde38b14610459578063f6374342146102e957600080fd5b806370d5ae051461031e578063715018a6146103345780638da5cb5b1461034b57806395d89b4114610369578063a457c2d71461037e578063a9059cbb1461039e57600080fd5b80632d838119116101085780632d83811914610260578063313ce56714610280578063395093511461029c57806340009927146102bc5780636042f719146102e957806370a08231146102fe57600080fd5b806306fdde031461015b578063095ea7b31461018657806313114a9d146101b65780631694505e146101d557806318160ddd1461020d57806323b872dd1461024057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610479565b60405161017d91906116d0565b60405180910390f35b34801561019257600080fd5b506101a66101a1366004611733565b61050b565b604051901515815260200161017d565b3480156101c257600080fd5b506004545b60405190815260200161017d565b3480156101e157600080fd5b50600b546101f5906001600160a01b031681565b6040516001600160a01b03909116815260200161017d565b34801561021957600080fd5b507f0000000000000000000000000000000000000000ec859eef4c04ab03f00000006101c7565b34801561024c57600080fd5b506101a661025b36600461175f565b610522565b34801561026c57600080fd5b506101c761027b3660046117a0565b610546565b34801561028c57600080fd5b506040516012815260200161017d565b3480156102a857600080fd5b506101a66102b7366004611733565b610587565b3480156102c857600080fd5b506101c76102d73660046117b9565b60096020526000908152604090205481565b3480156102f557600080fd5b506101c7600281565b34801561030a57600080fd5b506101c76103193660046117b9565b6105d0565b34801561032a57600080fd5b506101f561dead81565b34801561034057600080fd5b5061034961062e565b005b34801561035757600080fd5b506000546001600160a01b03166101f5565b34801561037557600080fd5b50610170610640565b34801561038a57600080fd5b506101a6610399366004611733565b61064f565b3480156103aa57600080fd5b506101a66103b9366004611733565b6106a4565b3480156103ca57600080fd5b506101c7600181565b3480156103df57600080fd5b506103496103ee3660046117b9565b6106b1565b3480156103ff57600080fd5b506101c761040e3660046117d6565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561044557600080fd5b5061034961045436600461180f565b61072d565b34801561046557600080fd5b506103496104743660046117b9565b6108aa565b60606001805461048890611842565b80601f01602080910402602001604051908101604052809291908181526020018280546104b490611842565b80156105015780601f106104d657610100808354040283529160200191610501565b820191906000526020600020905b8154815290600101906020018083116104e457829003601f168201915b5050505050905090565b60006105183384846108ed565b5060015b92915050565b6000336105308582856109a2565b61053b858585610a05565b506001949350505050565b600060035482111561056a5760405162a4671960e71b815260040160405180910390fd5b6000610574610b32565b90506105808184611892565b9392505050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091906105c690829086906105c19087906118b4565b6108ed565b5060019392505050565b6001600160a01b03811660009081526008602052604081205460010361060c57506001600160a01b031660009081526006602052604090205490565b6001600160a01b03821660009081526005602052604090205461051c90610546565b610636610b55565b61063e610b82565b565b60606002805461048890611842565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091908381101561069757604051634c5d196160e11b815260040160405180910390fd5b61053b82868684036108ed565b6000610518338484610a05565b6106b9610b55565b6001600160a01b0381166106e35760405160016211070d60e11b0319815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc8090600090a250565b610735610b55565b6001600160a01b03821661075f5760405160016211070d60e11b0319815260040160405180910390fd5b8061076b57600061076e565b60015b6001600160a01b038316600090815260096020526040902060ff9190911690558080156107b157506001600160a01b038216600090815260086020526040902054155b1561086e576001600160a01b03821660009081526005602052604090205415610810576001600160a01b0382166000908152600560205260409020546107f690610546565b6001600160a01b0383166000908152600660205260409020555b6001600160a01b0382166000818152600860205260408120600190819055600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b03191690911790555b604051811515906001600160a01b038416907f568be47e27f53734673ed7d53af6e687fd70fdfff51f9f47304301d6f918900d90600090a35050565b6108b2610b55565b6001600160a01b0381166108e157604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6108ea81610b90565b50565b6001600160a01b0383166109175760405160016211070d60e11b0319815260040160405180910390fd5b6001600160a01b0382166109415760405160016211070d60e11b0319815260040160405180910390fd5b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526007602090815260408083209386168352929052205460001981146109ff57818110156109f2576040516339d18f4360e11b815260040160405180910390fd5b6109ff84848484036108ed565b50505050565b6001600160a01b038316610a2f5760405160016211070d60e11b0319815260040160405180910390fd5b6001600160a01b038216610a595760405160016211070d60e11b0319815260040160405180910390fd5b80600003610a6657505050565b6000610a71306105d0565b90506000610a816012600a6119ae565b610a8f9063017d78406119bd565b8210159050808015610aa15750600c54155b8015610ac357506001600160a01b038516600090815260096020526040902054155b8015610ad95750600b546001600160a01b031615155b15610b0057610b00610aed6012600a6119ae565b610afb9063017d78406119bd565b610be0565b6001600160a01b03841660009081526009602052604090205460011480610b2987878784610c93565b50505050505050565b6000806000610b3f610e67565b9092509050610b4e8183611892565b9250505090565b6000546001600160a01b0316331461063e5760405163118cdaa760e01b81523360048201526024016108d8565b610b8a610b55565b61063e60005b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600c55600b546001600160a01b0316610c115760405160016211070d60e11b0319815260040160405180910390fd5b600181901c6000610c2282846119d4565b905047610c2e8361105b565b6000610c3a82476119d4565b9050610c4683826111e7565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506000600c55505050565b6000610c9f83836112c8565b6001600160a01b038616600090815260086020526040902054909150600103610d00576001600160a01b038516600090815260066020526040902054610ce69084906119d4565b6001600160a01b0386166000908152600660205260409020555b80516001600160a01b038616600090815260056020526040902054610d2591906119d4565b6001600160a01b03808716600090815260056020908152604080832094909455918716815260089091522054600103610d9a5760608101516001600160a01b038516600090815260066020526040902054610d8091906118b4565b6001600160a01b0385166000908152600660205260409020555b6020808201516001600160a01b03861660009081526005909252604090912054610dc491906118b4565b6001600160a01b0385166000908152600560205260409020558115610e0f57610df08160a0015161137c565b610dfd8160c00151611411565b610e0f81604001518260800151611563565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360600151604051610e5891815260200190565b60405180910390a35050505050565b600354600a5460009182917f0000000000000000000000000000000000000000ec859eef4c04ab03f000000090835b81811015610fed578360056000600a8481548110610eb657610eb66119e7565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180610f2157508260066000600a8481548110610efa57610efa6119e7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15610f55575050600354947f0000000000000000000000000000000000000000ec859eef4c04ab03f0000000945092505050565b60056000600a8381548110610f6c57610f6c6119e7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054610f9b90856119d4565b935060066000600a8381548110610fb457610fb46119e7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054610fe390846119d4565b9250600101610e96565b507f0000000000000000000000000000000000000000ec859eef4c04ab03f000000060035461101c9190611892565b831015611051575050600354937f0000000000000000000000000000000000000000ec859eef4c04ab03f00000009350915050565b5090939092509050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611090576110906119e7565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d91906119fd565b81600181518110611120576111206119e7565b6001600160a01b03928316602091820292909201810191909152306000908152600782526040808220600b54909416825292909152205482111561117857600b546111789030906001600160a01b03166000196108ed565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111b1908590600090869030904290600401611a1a565b600060405180830381600087803b1580156111cb57600080fd5b505af11580156111df573d6000803e3d6000fd5b505050505050565b306000908152600760209081526040808320600b546001600160a01b0316845290915290205482111561122e57600b5461122e9030906001600160a01b03166000196108ed565b600b5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561129c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c19190611a8c565b5050505050565b6113086040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008060008061131887876115bc565b9350935093509350600061132a610b32565b9050600080600061133e8b88888888611636565b6040805160e081018252938452602084019290925290820152606081019890985250505050608084019290925260a083015260c08201529392505050565b806000036113875750565b6000611391610b32565b9050600061139f82846119bd565b306000908152600560205260409020549091506113bd9082906118b4565b3060009081526005602090815260408083209390935560089052205460010361140c57306000908152600660205260409020546113fb9084906118b4565b306000908152600660205260409020555b505050565b8060000361141c5750565b6000611426610b32565b9050600061143482846119bd565b61dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5490915061146f9082906118b4565b61dead6000527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5560086020527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342995460010361152b5761dead60005260066020527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546114fd9084906118b4565b61dead60005260066020527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22555b6040518381527f6394676ebae6d9e73d2799f2843bb7b7ab050352d646126b55975291b88bc8b29060200160405180910390a1505050565b8160035461157191906119d4565b6003556004546115829082906118b4565b6004556040518181527f26221fceafd78c0e5cc8c06eae46dda5be9b778e6723222df87a3c25c785d27e9060200160405180910390a15050565b600080600080846115d85750849250600091508190508061162d565b60006115e3876116a8565b905060006115f0886116a8565b905060006115fd896116c1565b90506000818361160d868d6119d4565b61161791906119d4565b61162191906119d4565b97509295509093509150505b92959194509250565b6000808080611645858a6119bd565b90506000611653868a6119bd565b90506000611661878a6119bd565b9050600061166f888a6119bd565b90506000818361167f86886119d4565b61168991906119d4565b61169391906119d4565b949d949c50929a509298505050505050505050565b600060646116b76002846119bd565b61051c9190611892565b600060646116b76001846119bd565b602081526000825180602084015260005b818110156116fe57602081860181015160408684010152016116e1565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146108ea57600080fd5b6000806040838503121561174657600080fd5b82356117518161171e565b946020939093013593505050565b60008060006060848603121561177457600080fd5b833561177f8161171e565b9250602084013561178f8161171e565b929592945050506040919091013590565b6000602082840312156117b257600080fd5b5035919050565b6000602082840312156117cb57600080fd5b81356105808161171e565b600080604083850312156117e957600080fd5b82356117f48161171e565b915060208301356118048161171e565b809150509250929050565b6000806040838503121561182257600080fd5b823561182d8161171e565b91506020830135801515811461180457600080fd5b600181811c9082168061185657607f821691505b60208210810361187657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000826118af57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561051c5761051c61187c565b6001815b6001841115611902578085048111156118e6576118e661187c565b60018416156118f457908102905b60019390931c9280026118cb565b935093915050565b6000826119195750600161051c565b816119265750600061051c565b816001811461193c576002811461194657611962565b600191505061051c565b60ff8411156119575761195761187c565b50506001821b61051c565b5060208310610133831016604e8410600b8410161715611985575081810a61051c565b61199260001984846118c7565b80600019048211156119a6576119a661187c565b029392505050565b600061058060ff84168361190a565b808202811582820484141761051c5761051c61187c565b8181038181111561051c5761051c61187c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a0f57600080fd5b81516105808161171e565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b81811015611a6c5783516001600160a01b0316835260209384019390920191600101611a45565b50506001600160a01b039590951660608401525050608001529392505050565b600080600060608486031215611aa157600080fd5b505081516020830151604090930151909492935091905056fea26469706673582212200e4018c993fec8711641a56d3de7f03c7a1995ef7a9bfc169479137b86553b0564736f6c634300081c0033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

MoonBull ($MOBU) is a community-led Ethereum meme token focused on holder engagement. It offers staking rewards and a referral program, with momentum driven by regular updates and social campaigns as new releases roll out.

Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.