ETH Price: $3,030.19 (+2.39%)
Gas: 2 Gwei

Contract

0xb132496431E7B68e42Dc8523c7CFB0e9929923Da
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve191325052024-02-01 8:49:59158 days ago1706777399IN
0xb1324964...9929923Da
0 ETH0.0003996516.43576199
Approve184236132023-10-25 0:12:47257 days ago1698192767IN
0xb1324964...9929923Da
0 ETH0.0005255321.61286989
Approve182701362023-10-03 12:53:23279 days ago1696337603IN
0xb1324964...9929923Da
0 ETH0.0003574414.7
Approve181884132023-09-22 2:27:47290 days ago1695349667IN
0xb1324964...9929923Da
0 ETH0.000390468.43548909
Approve179948812023-08-25 23:07:59317 days ago1693004879IN
0xb1324964...9929923Da
0 ETH0.0008563418.3765251
Approve179893442023-08-25 4:32:11318 days ago1692937931IN
0xb1324964...9929923Da
0 ETH0.0007822516.89971371
Approve179860352023-08-24 17:25:23319 days ago1692897923IN
0xb1324964...9929923Da
0 ETH0.0011618325.1001248
Approve179852992023-08-24 14:56:59319 days ago1692889019IN
0xb1324964...9929923Da
0 ETH0.0017502437.6072319
Approve179830872023-08-24 7:31:11319 days ago1692862271IN
0xb1324964...9929923Da
0 ETH0.0008027417.34232564
Approve179830082023-08-24 7:14:59319 days ago1692861299IN
0xb1324964...9929923Da
0 ETH0.0008434918.10082641
Approve179817952023-08-24 3:10:59319 days ago1692846659IN
0xb1324964...9929923Da
0 ETH0.0006061113.0234463
Transfer179810632023-08-24 0:43:23319 days ago1692837803IN
0xb1324964...9929923Da
0 ETH0.0010134515.68402765
Approve179794632023-08-23 19:21:47320 days ago1692818507IN
0xb1324964...9929923Da
0 ETH0.0013725529.45395082
Approve179792682023-08-23 18:42:11320 days ago1692816131IN
0xb1324964...9929923Da
0 ETH0.0012016625.82005304
Approve179792202023-08-23 18:32:35320 days ago1692815555IN
0xb1324964...9929923Da
0 ETH0.0013716729.63358072
Approve179791882023-08-23 18:26:11320 days ago1692815171IN
0xb1324964...9929923Da
0 ETH0.0017956138.80219294
Approve179791772023-08-23 18:23:59320 days ago1692815039IN
0xb1324964...9929923Da
0 ETH0.0018515339.78374151
Approve179791652023-08-23 18:21:35320 days ago1692814895IN
0xb1324964...9929923Da
0 ETH0.0021233545.56557098
Approve179791482023-08-23 18:18:11320 days ago1692814691IN
0xb1324964...9929923Da
0 ETH0.0021776646.73098206
Approve179791482023-08-23 18:18:11320 days ago1692814691IN
0xb1324964...9929923Da
0 ETH0.002702858
Approve179791432023-08-23 18:17:11320 days ago1692814631IN
0xb1324964...9929923Da
0 ETH0.0022865249.19371126
Approve179791412023-08-23 18:16:47320 days ago1692814607IN
0xb1324964...9929923Da
0 ETH0.0022377548.34416716
Approve179790952023-08-23 18:07:35320 days ago1692814055IN
0xb1324964...9929923Da
0 ETH0.00261156.40774287
Approve179790942023-08-23 18:07:23320 days ago1692814043IN
0xb1324964...9929923Da
0 ETH0.001685157.73279871
Approve179790932023-08-23 18:07:11320 days ago1692814031IN
0xb1324964...9929923Da
0 ETH0.0025633955.4367891
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
180028042023-08-27 1:44:47316 days ago1693100687
0xb1324964...9929923Da
0.00097857 ETH
180028042023-08-27 1:44:47316 days ago1693100687
0xb1324964...9929923Da
0.00032619 ETH
180028042023-08-27 1:44:47316 days ago1693100687
0xb1324964...9929923Da
0.00130476 ETH
179832902023-08-24 8:11:47319 days ago1692864707
0xb1324964...9929923Da
0.00643984 ETH
179832902023-08-24 8:11:47319 days ago1692864707
0xb1324964...9929923Da
0.00214661 ETH
179832902023-08-24 8:11:47319 days ago1692864707
0xb1324964...9929923Da
0.00858646 ETH
179830422023-08-24 7:21:59319 days ago1692861719
0xb1324964...9929923Da
0.01282973 ETH
179830422023-08-24 7:21:59319 days ago1692861719
0xb1324964...9929923Da
0.00427657 ETH
179830422023-08-24 7:21:59319 days ago1692861719
0xb1324964...9929923Da
0.01710631 ETH
179813832023-08-24 1:47:47319 days ago1692841667
0xb1324964...9929923Da
0.00113132 ETH
179813832023-08-24 1:47:47319 days ago1692841667
0xb1324964...9929923Da
0.0003771 ETH
179813832023-08-24 1:47:47319 days ago1692841667
0xb1324964...9929923Da
0.00150843 ETH
179798702023-08-23 20:43:23320 days ago1692823403
0xb1324964...9929923Da
0.00123011 ETH
179798702023-08-23 20:43:23320 days ago1692823403
0xb1324964...9929923Da
0.00041003 ETH
179798702023-08-23 20:43:23320 days ago1692823403
0xb1324964...9929923Da
0.00164014 ETH
179794852023-08-23 19:26:11320 days ago1692818771
0xb1324964...9929923Da
0.00138123 ETH
179794852023-08-23 19:26:11320 days ago1692818771
0xb1324964...9929923Da
0.00046041 ETH
179794852023-08-23 19:26:11320 days ago1692818771
0xb1324964...9929923Da
0.00184165 ETH
179794772023-08-23 19:24:35320 days ago1692818675
0xb1324964...9929923Da
0.00279725 ETH
179794772023-08-23 19:24:35320 days ago1692818675
0xb1324964...9929923Da
0.00093241 ETH
179794772023-08-23 19:24:35320 days ago1692818675
0xb1324964...9929923Da
0.00372967 ETH
179792892023-08-23 18:46:23320 days ago1692816383
0xb1324964...9929923Da
0.00173303 ETH
179792892023-08-23 18:46:23320 days ago1692816383
0xb1324964...9929923Da
0.00057767 ETH
179792892023-08-23 18:46:23320 days ago1692816383
0xb1324964...9929923Da
0.00231071 ETH
179792812023-08-23 18:44:47320 days ago1692816287
0xb1324964...9929923Da
0.00160683 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CardanoAvalancheRadixSolana95inu

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : cars.sol
// SPDX-License-Identifier: MIT

/*

Telegram - https://t.me/cars95i
Twitter - https://twitter.com/cars95i
Website - https://cars95i.xyz

*/

pragma solidity ^0.8.21;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint256);

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

pragma solidity ^0.8.21;

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

pragma solidity ^0.8.21;

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

pragma solidity ^0.8.21;

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

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

pragma solidity ^0.8.21;


interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.21;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

pragma solidity ^0.8.21;


abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

pragma solidity ^0.8.21;


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;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

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

    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");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    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");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

    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);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

pragma solidity ^0.8.21;

contract CardanoAvalancheRadixSolana95inu is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;
    address private devWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxSwapAmount;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public deadBlocks;

    uint256 public buyTotalFees;

    uint256 public sellTotalFees;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor() ERC20("CardanoAvalancheRadixSolana95inu", "CARS") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = 2_500_000 * 1e18; // 0.25%
        maxWallet = 2_500_000 * 1e18; // 0.25%
        swapTokensAtAmount = 500_000 * 1e18; // 0.05%
        maxSwapAmount = 5_000_000 * 1e18; // 0.5%

        marketingWallet = 0x139c134F57B01505dD7cA4fCF766d342814F242e; // marketing
        devWallet = 0xa4fb2cCFAf5A698a81bA632a90C2ECf9175498f5; // dev

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        deadBlocks = _deadBlocks;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function changeLimits(bool _input) external onlyOwner returns (bool) {
        limitsInEffect = _input;
        return _input;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        swapTokensAtAmount = newAmount * (10 ** 18);
    }

    function updateMaxSwap(uint256 newAmount) external onlyOwner {
        maxSwapAmount = newAmount * (10 ** 18);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10 ** 18);
    }

    function whitelistContract(address _whitelist, bool isWL) public onlyOwner {
        _isExcludedMaxTransactionAmount[_whitelist] = isWL;

        _isExcludedFromFees[_whitelist] = isWL;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function manualswap(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success,) = address(devWallet).call{value: address(this).balance}("");
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBothFees(uint256 _fees) external onlyOwner {
        buyTotalFees = _fees;
        sellTotalFees = _fees;
    }

    function updateBuyFees(uint256 _marketingFee) external onlyOwner {
        buyTotalFees = _marketingFee;
    }

    function updateSellFees(uint256 _marketingFee) external onlyOwner {
        sellTotalFees = _marketingFee;
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 18));
        }
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if ((launchedAt + deadBlocks) >= block.number) {
                    buyTotalFees = 40;
                    sellTotalFees = 40;
                } else if (block.number <= launchedAt + deadBlocks + 5) {
                    buyTotalFees = 20;
                    sellTotalFees = 20;
                } else if (block.number <= launchedAt + deadBlocks + 10) {
                    buyTotalFees = 10;
                    sellTotalFees = 10;
                } else {
                    buyTotalFees = 2;
                    sellTotalFees = 2;
                }

                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from]
                && !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > maxSwapAmount) {
            contractBalance = maxSwapAmount;
        }

        // Halve the amount of liquidity tokens

        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethForDev = (address(this).balance).div(4);
        uint256 ethforMarketing = address(this).balance - ethForDev;

        (success,) = address(devWallet).call{value: ethForDev}("");

        (success,) = address(marketingWallet).call{value: ethforMarketing}("");
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_input","type":"bool"}],"name":"changeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fees","type":"uint256"}],"name":"updateBothFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600c805462ffffff191660011790553480156200001f575f80fd5b5060408051808201825260208082527f43617264616e6f4176616c616e6368655261646978536f6c616e613935696e7581830152825180840190935260048352634341525360e01b908301529060036200007a8382620006a3565b506004620000898282620006a3565b505050620000a6620000a06200035560201b60201c565b62000359565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000c8816001620003aa565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000111573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013791906200076b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000183573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a991906200076b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021a91906200076b565b6001600160a01b031660a081905262000235906001620003aa565b60a0516200024590600162000422565b6a02116545850052128000006008819055600a556969e10de76676d08000006009556a0422ca8b0a00a425000000600b55600680546001600160a01b031990811673139c134f57b01505dd7ca4fcf766d342814f242e179091556007805490911673a4fb2ccfaf5a698a81ba632a90c2ecf9175498f51790556b033b2e3c9fd0803ce8000000620002ea620002e26005546001600160a01b031690565b600162000475565b620002f730600162000475565b6200030661dead600162000475565b620003256200031d6005546001600160a01b031690565b6001620003aa565b62000332306001620003aa565b6200034161dead6001620003aa565b6200034d33826200051d565b5050620007c0565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620003f85760405162461bcd60e51b815260206004820181905260248201525f8051602062002c0083398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004bf5760405162461bcd60e51b815260206004820181905260248201525f8051602062002c008339815191526044820152606401620003ef565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005755760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003ef565b8060025f8282546200058891906200079a565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005b69084906200079a565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062d57607f821691505b6020821081036200064c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005ff575f81815260208120601f850160051c810160208610156200067a5750805b601f850160051c820191505b818110156200069b5782815560010162000686565b505050505050565b81516001600160401b03811115620006bf57620006bf62000604565b620006d781620006d0845462000618565b8462000652565b602080601f8311600181146200070d575f8415620006f55750858301515b5f19600386901b1c1916600185901b1785556200069b565b5f85815260208120601f198616915b828110156200073d578886015182559484019460019091019084016200071c565b50858210156200075b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200077c575f80fd5b81516001600160a01b038116811462000793575f80fd5b9392505050565b80820180821115620007ba57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051612402620007fe5f395f818161043d0152610e1601525f818161034701528181611b6101528181611c180152611c5401526124025ff3fe608060405260043610610283575f3560e01c80638da5cb5b11610155578063c18bc195116100be578063dd62ed3e11610078578063dd62ed3e146107b4578063e2f45605146107f8578063eba4c3331461080d578063f2fde38b1461082c578063f8b45b051461084b578063fabb0b4f14610860575f80fd5b8063c18bc19514610718578063c8c8ebe414610737578063cce987d41461074c578063d257b34f14610761578063d85ba06314610780578063db56f45814610795575f80fd5b8063a9059cbb1161010f578063a9059cbb14610650578063aacebbe31461066f578063b62496f51461068e578063b926e464146106bc578063bbc0c742146106db578063c0246668146106f9575f80fd5b80638da5cb5b146105a3578063924de9b7146105c057806395d89b41146105df5780639a7a23d6146105f3578063a457c2d714610612578063a672990c14610631575f80fd5b806349bd5a5e116101f757806370a08231116101b157806370a08231146104df578063715018a61461051357806371fc4688146105275780637571336a1461054657806382aa7c6814610565578063881dce6014610584575f80fd5b806349bd5a5e1461042c5780634a62bb651461045f57806367243482146104785780636a486a8e146104975780636ddd1713146104ac5780636fc3eaec146104cb575f80fd5b806318160ddd1161024857806318160ddd14610381578063203e727e1461039f57806323b872dd146103be57806327c8f835146103dd578063313ce567146103f2578063395093511461040d575f80fd5b806306fdde031461028e578063095ea7b3146102b857806310d5de53146102e7578063150074a3146103155780631694505e14610336575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a2610875565b6040516102af9190611f77565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004611fd6565b610905565b60405190151581526020016102af565b3480156102f2575f80fd5b506102d7610301366004612000565b60136020525f908152604090205460ff1681565b348015610320575f80fd5b5061033461032f36600461201b565b61091b565b005b348015610341575f80fd5b506103697f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561038c575f80fd5b506002545b6040519081526020016102af565b3480156103aa575f80fd5b506103346103b936600461201b565b610966565b3480156103c9575f80fd5b506102d76103d8366004612032565b610a43565b3480156103e8575f80fd5b5061036961dead81565b3480156103fd575f80fd5b50604051601281526020016102af565b348015610418575f80fd5b506102d7610427366004611fd6565b610aeb565b348015610437575f80fd5b506103697f000000000000000000000000000000000000000000000000000000000000000081565b34801561046a575f80fd5b50600c546102d79060ff1681565b348015610483575f80fd5b506103346104923660046120b8565b610b26565b3480156104a2575f80fd5b5061039160115481565b3480156104b7575f80fd5b50600c546102d79062010000900460ff1681565b3480156104d6575f80fd5b50610334610bbd565b3480156104ea575f80fd5b506103916104f9366004612000565b6001600160a01b03165f9081526020819052604090205490565b34801561051e575f80fd5b50610334610c12565b348015610532575f80fd5b5061033461054136600461201b565b610c47565b348015610551575f80fd5b5061033461056036600461212e565b610c76565b348015610570575f80fd5b5061033461057f36600461201b565b610cca565b34801561058f575f80fd5b5061033461059e36600461201b565b610d12565b3480156105ae575f80fd5b506005546001600160a01b0316610369565b3480156105cb575f80fd5b506103346105da366004612161565b610d95565b3480156105ea575f80fd5b506102a2610ddb565b3480156105fe575f80fd5b5061033461060d36600461212e565b610dea565b34801561061d575f80fd5b506102d761062c366004611fd6565b610ec9565b34801561063c575f80fd5b5061033461064b36600461212e565b610f61565b34801561065b575f80fd5b506102d761066a366004611fd6565b610fc8565b34801561067a575f80fd5b50610334610689366004612000565b610fd4565b348015610699575f80fd5b506102d76106a8366004612000565b60146020525f908152604090205460ff1681565b3480156106c7575f80fd5b506102d76106d6366004612161565b61105a565b3480156106e6575f80fd5b50600c546102d790610100900460ff1681565b348015610704575f80fd5b5061033461071336600461212e565b61109c565b348015610723575f80fd5b5061033461073236600461201b565b611124565b348015610742575f80fd5b5061039160085481565b348015610757575f80fd5b50610391600b5481565b34801561076c575f80fd5b5061033461077b36600461201b565b6111f5565b34801561078b575f80fd5b5061039160105481565b3480156107a0575f80fd5b506103346107af36600461201b565b611237565b3480156107bf575f80fd5b506103916107ce36600461217a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610803575f80fd5b5061039160095481565b348015610818575f80fd5b5061033461082736600461201b565b61126b565b348015610837575f80fd5b50610334610846366004612000565b61129a565b348015610856575f80fd5b50610391600a5481565b34801561086b575f80fd5b50610391600f5481565b606060038054610884906121b1565b80601f01602080910402602001604051908101604052809291908181526020018280546108b0906121b1565b80156108fb5780601f106108d2576101008083540402835291602001916108fb565b820191905f5260205f20905b8154815290600101906020018083116108de57829003601f168201915b5050505050905090565b5f610911338484611332565b5060015b92915050565b6005546001600160a01b0316331461094e5760405162461bcd60e51b8152600401610945906121e9565b60405180910390fd5b61096081670de0b6b3a7640000612232565b600b5550565b6005546001600160a01b031633146109905760405162461bcd60e51b8152600401610945906121e9565b670de0b6b3a76400006103e86109a560025490565b6109b0906001612232565b6109ba9190612249565b6109c49190612249565b811015610a2b5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610945565b610a3d81670de0b6b3a7640000612232565b60085550565b5f610a4f848484611455565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ad35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610945565b610ae08533858403611332565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610911918590610b21908690612268565b611332565b8215801590610b3457508083145b610b3c575f80fd5b335f5b84811015610bb557610ba382878784818110610b5d57610b5d61227b565b9050602002016020810190610b729190612000565b868685818110610b8457610b8461227b565b90506020020135670de0b6b3a7640000610b9e9190612232565b611455565b80610bad8161228f565b915050610b3f565b505050505050565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610c07576040519150601f19603f3d011682016040523d82523d5f602084013e610c0c565b606091505b50505050565b6005546001600160a01b03163314610c3c5760405162461bcd60e51b8152600401610945906121e9565b610c455f611abb565b565b6005546001600160a01b03163314610c715760405162461bcd60e51b8152600401610945906121e9565b601055565b6005546001600160a01b03163314610ca05760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610945906121e9565b600f55600c805462ffff0019166201010017905543600d5542600e55565b6006546001600160a01b0316336001600160a01b031614610d31575f80fd5b305f908152602081905260409020548111158015610d4e57505f81115b610d895760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610945565b610d9281611b0c565b50565b6005546001600160a01b03163314610dbf5760405162461bcd60e51b8152600401610945906121e9565b600c8054911515620100000262ff000019909216919091179055565b606060048054610884906121b1565b6005546001600160a01b03163314610e145760405162461bcd60e51b8152600401610945906121e9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610ebb5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610945565b610ec58282611cba565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610945565b610f573385858403611332565b5060019392505050565b6005546001600160a01b03163314610f8b5760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b039091165f908152601360209081526040808320805494151560ff19958616811790915560129092529091208054909216179055565b5f610911338484611455565b6005546001600160a01b03163314610ffe5760405162461bcd60e51b8152600401610945906121e9565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005545f906001600160a01b031633146110865760405162461bcd60e51b8152600401610945906121e9565b50600c805460ff1916821515179055805b919050565b6005546001600160a01b031633146110c65760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461114e5760405162461bcd60e51b8152600401610945906121e9565b670de0b6b3a76400006103e861116360025490565b61116e906005612232565b6111789190612249565b6111829190612249565b8110156111dd5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610945565b6111ef81670de0b6b3a7640000612232565b600a5550565b6005546001600160a01b0316331461121f5760405162461bcd60e51b8152600401610945906121e9565b61123181670de0b6b3a7640000612232565b60095550565b6005546001600160a01b031633146112615760405162461bcd60e51b8152600401610945906121e9565b6010819055601155565b6005546001600160a01b031633146112955760405162461bcd60e51b8152600401610945906121e9565b601155565b6005546001600160a01b031633146112c45760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b0381166113295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610945565b610d9281611abb565b6001600160a01b0383166113945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610945565b6001600160a01b0382166113f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610945565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661147b5760405162461bcd60e51b8152600401610945906122a7565b6001600160a01b0382166114a15760405162461bcd60e51b8152600401610945906122ec565b805f036114b8576114b383835f611d0d565b505050565b600c5460ff16156118b5576005546001600160a01b038481169116148015906114ef57506005546001600160a01b03838116911614155b801561150357506001600160a01b03821615155b801561151a57506001600160a01b03821661dead14155b80156115305750600554600160a01b900460ff16155b156118b55743600f54600d546115469190612268565b1061155a57602860108190556011556115c5565b600f54600d5461156a9190612268565b611575906005612268565b431161158a57601460108190556011556115c5565b600f54600d5461159a9190612268565b6115a590600a612268565b43116115ba57600a60108190556011556115c5565b600260108190556011555b600c54610100900460ff16611656576001600160a01b0383165f9081526012602052604090205460ff168061161157506001600160a01b0382165f9081526012602052604090205460ff165b6116565760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610945565b6001600160a01b0383165f9081526014602052604090205460ff16801561169557506001600160a01b0382165f9081526013602052604090205460ff16155b156117785760085481111561170a5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610945565b600a546001600160a01b0383165f9081526020819052604090205461172f9083612268565b11156117735760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610945565b6118b5565b6001600160a01b0382165f9081526014602052604090205460ff1680156117b757506001600160a01b0383165f9081526013602052604090205460ff16155b1561182d576008548111156117735760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610945565b6001600160a01b0382165f9081526013602052604090205460ff166118b557600a546001600160a01b0383165f908152602081905260409020546118719083612268565b11156118b55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610945565b305f90815260208190526040902054600954811080159081906118e05750600c5462010000900460ff165b80156118f65750600554600160a01b900460ff16155b801561191a57506001600160a01b0385165f9081526014602052604090205460ff16155b801561193e57506001600160a01b0385165f9081526012602052604090205460ff16155b801561196257506001600160a01b0384165f9081526012602052604090205460ff16155b15611990576005805460ff60a01b1916600160a01b179055611982611e60565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526012602052604090205460ff600160a01b9092048216159116806119dc57506001600160a01b0385165f9081526012602052604090205460ff165b156119e457505f5b5f8115611aa7576001600160a01b0386165f9081526014602052604090205460ff168015611a1357505f601154115b15611a3f57611a386064611a3260115488611f5a90919063ffffffff16565b90611f6c565b9050611a89565b6001600160a01b0387165f9081526014602052604090205460ff168015611a6757505f601054115b15611a8957611a866064611a3260105488611f5a90919063ffffffff16565b90505b8015611a9a57611a9a873083611d0d565b611aa4818661232f565b94505b611ab2878787611d0d565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b3f57611b3f61227b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bdf9190612342565b81600181518110611bf257611bf261227b565b60200260200101906001600160a01b031690816001600160a01b031681525050611c3d307f000000000000000000000000000000000000000000000000000000000000000084611332565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611c919085905f9086903090429060040161235d565b5f604051808303815f87803b158015611ca8575f80fd5b505af1158015610bb5573d5f803e3d5ffd5b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d335760405162461bcd60e51b8152600401610945906122a7565b6001600160a01b038216611d595760405162461bcd60e51b8152600401610945906122ec565b6001600160a01b0383165f9081526020819052604090205481811015611dd05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610945565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611e06908490612268565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e5291815260200190565b60405180910390a350505050565b305f9081526020819052604081205490818103611e7b575050565b600b54821115611e8b57600b5491505b81611e9581611b0c565b5f611ea1476004611f6c565b90505f611eae824761232f565b6007546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611ef9576040519150601f19603f3d011682016040523d82523d5f602084013e611efe565b606091505b50506006546040519195506001600160a01b03169082905f81818185875af1925050503d805f8114611f4b576040519150601f19603f3d011682016040523d82523d5f602084013e611f50565b606091505b5050505050505050565b5f611f658284612232565b9392505050565b5f611f658284612249565b5f6020808352835180828501525f5b81811015611fa257858101830151858201604001528201611f86565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d92575f80fd5b5f8060408385031215611fe7575f80fd5b8235611ff281611fc2565b946020939093013593505050565b5f60208284031215612010575f80fd5b8135611f6581611fc2565b5f6020828403121561202b575f80fd5b5035919050565b5f805f60608486031215612044575f80fd5b833561204f81611fc2565b9250602084013561205f81611fc2565b929592945050506040919091013590565b5f8083601f840112612080575f80fd5b50813567ffffffffffffffff811115612097575f80fd5b6020830191508360208260051b85010111156120b1575f80fd5b9250929050565b5f805f80604085870312156120cb575f80fd5b843567ffffffffffffffff808211156120e2575f80fd5b6120ee88838901612070565b90965094506020870135915080821115612106575f80fd5b5061211387828801612070565b95989497509550505050565b80358015158114611097575f80fd5b5f806040838503121561213f575f80fd5b823561214a81611fc2565b91506121586020840161211f565b90509250929050565b5f60208284031215612171575f80fd5b611f658261211f565b5f806040838503121561218b575f80fd5b823561219681611fc2565b915060208301356121a681611fc2565b809150509250929050565b600181811c908216806121c557607f821691505b6020821081036121e357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109155761091561221e565b5f8261226357634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109155761091561221e565b634e487b7160e01b5f52603260045260245ffd5b5f600182016122a0576122a061221e565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109155761091561221e565b5f60208284031215612352575f80fd5b8151611f6581611fc2565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123ab5784516001600160a01b031683529383019391830191600101612386565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203e8186d3865735dbf6485e1be37de8c1d809804d9e73ba6c1ad45f6fa5dabb4364736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x608060405260043610610283575f3560e01c80638da5cb5b11610155578063c18bc195116100be578063dd62ed3e11610078578063dd62ed3e146107b4578063e2f45605146107f8578063eba4c3331461080d578063f2fde38b1461082c578063f8b45b051461084b578063fabb0b4f14610860575f80fd5b8063c18bc19514610718578063c8c8ebe414610737578063cce987d41461074c578063d257b34f14610761578063d85ba06314610780578063db56f45814610795575f80fd5b8063a9059cbb1161010f578063a9059cbb14610650578063aacebbe31461066f578063b62496f51461068e578063b926e464146106bc578063bbc0c742146106db578063c0246668146106f9575f80fd5b80638da5cb5b146105a3578063924de9b7146105c057806395d89b41146105df5780639a7a23d6146105f3578063a457c2d714610612578063a672990c14610631575f80fd5b806349bd5a5e116101f757806370a08231116101b157806370a08231146104df578063715018a61461051357806371fc4688146105275780637571336a1461054657806382aa7c6814610565578063881dce6014610584575f80fd5b806349bd5a5e1461042c5780634a62bb651461045f57806367243482146104785780636a486a8e146104975780636ddd1713146104ac5780636fc3eaec146104cb575f80fd5b806318160ddd1161024857806318160ddd14610381578063203e727e1461039f57806323b872dd146103be57806327c8f835146103dd578063313ce567146103f2578063395093511461040d575f80fd5b806306fdde031461028e578063095ea7b3146102b857806310d5de53146102e7578063150074a3146103155780631694505e14610336575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a2610875565b6040516102af9190611f77565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004611fd6565b610905565b60405190151581526020016102af565b3480156102f2575f80fd5b506102d7610301366004612000565b60136020525f908152604090205460ff1681565b348015610320575f80fd5b5061033461032f36600461201b565b61091b565b005b348015610341575f80fd5b506103697f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102af565b34801561038c575f80fd5b506002545b6040519081526020016102af565b3480156103aa575f80fd5b506103346103b936600461201b565b610966565b3480156103c9575f80fd5b506102d76103d8366004612032565b610a43565b3480156103e8575f80fd5b5061036961dead81565b3480156103fd575f80fd5b50604051601281526020016102af565b348015610418575f80fd5b506102d7610427366004611fd6565b610aeb565b348015610437575f80fd5b506103697f0000000000000000000000002b69106591fdefd1e8d2fe30423fdc578906ec5381565b34801561046a575f80fd5b50600c546102d79060ff1681565b348015610483575f80fd5b506103346104923660046120b8565b610b26565b3480156104a2575f80fd5b5061039160115481565b3480156104b7575f80fd5b50600c546102d79062010000900460ff1681565b3480156104d6575f80fd5b50610334610bbd565b3480156104ea575f80fd5b506103916104f9366004612000565b6001600160a01b03165f9081526020819052604090205490565b34801561051e575f80fd5b50610334610c12565b348015610532575f80fd5b5061033461054136600461201b565b610c47565b348015610551575f80fd5b5061033461056036600461212e565b610c76565b348015610570575f80fd5b5061033461057f36600461201b565b610cca565b34801561058f575f80fd5b5061033461059e36600461201b565b610d12565b3480156105ae575f80fd5b506005546001600160a01b0316610369565b3480156105cb575f80fd5b506103346105da366004612161565b610d95565b3480156105ea575f80fd5b506102a2610ddb565b3480156105fe575f80fd5b5061033461060d36600461212e565b610dea565b34801561061d575f80fd5b506102d761062c366004611fd6565b610ec9565b34801561063c575f80fd5b5061033461064b36600461212e565b610f61565b34801561065b575f80fd5b506102d761066a366004611fd6565b610fc8565b34801561067a575f80fd5b50610334610689366004612000565b610fd4565b348015610699575f80fd5b506102d76106a8366004612000565b60146020525f908152604090205460ff1681565b3480156106c7575f80fd5b506102d76106d6366004612161565b61105a565b3480156106e6575f80fd5b50600c546102d790610100900460ff1681565b348015610704575f80fd5b5061033461071336600461212e565b61109c565b348015610723575f80fd5b5061033461073236600461201b565b611124565b348015610742575f80fd5b5061039160085481565b348015610757575f80fd5b50610391600b5481565b34801561076c575f80fd5b5061033461077b36600461201b565b6111f5565b34801561078b575f80fd5b5061039160105481565b3480156107a0575f80fd5b506103346107af36600461201b565b611237565b3480156107bf575f80fd5b506103916107ce36600461217a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610803575f80fd5b5061039160095481565b348015610818575f80fd5b5061033461082736600461201b565b61126b565b348015610837575f80fd5b50610334610846366004612000565b61129a565b348015610856575f80fd5b50610391600a5481565b34801561086b575f80fd5b50610391600f5481565b606060038054610884906121b1565b80601f01602080910402602001604051908101604052809291908181526020018280546108b0906121b1565b80156108fb5780601f106108d2576101008083540402835291602001916108fb565b820191905f5260205f20905b8154815290600101906020018083116108de57829003601f168201915b5050505050905090565b5f610911338484611332565b5060015b92915050565b6005546001600160a01b0316331461094e5760405162461bcd60e51b8152600401610945906121e9565b60405180910390fd5b61096081670de0b6b3a7640000612232565b600b5550565b6005546001600160a01b031633146109905760405162461bcd60e51b8152600401610945906121e9565b670de0b6b3a76400006103e86109a560025490565b6109b0906001612232565b6109ba9190612249565b6109c49190612249565b811015610a2b5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610945565b610a3d81670de0b6b3a7640000612232565b60085550565b5f610a4f848484611455565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ad35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610945565b610ae08533858403611332565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610911918590610b21908690612268565b611332565b8215801590610b3457508083145b610b3c575f80fd5b335f5b84811015610bb557610ba382878784818110610b5d57610b5d61227b565b9050602002016020810190610b729190612000565b868685818110610b8457610b8461227b565b90506020020135670de0b6b3a7640000610b9e9190612232565b611455565b80610bad8161228f565b915050610b3f565b505050505050565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610c07576040519150601f19603f3d011682016040523d82523d5f602084013e610c0c565b606091505b50505050565b6005546001600160a01b03163314610c3c5760405162461bcd60e51b8152600401610945906121e9565b610c455f611abb565b565b6005546001600160a01b03163314610c715760405162461bcd60e51b8152600401610945906121e9565b601055565b6005546001600160a01b03163314610ca05760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610945906121e9565b600f55600c805462ffff0019166201010017905543600d5542600e55565b6006546001600160a01b0316336001600160a01b031614610d31575f80fd5b305f908152602081905260409020548111158015610d4e57505f81115b610d895760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610945565b610d9281611b0c565b50565b6005546001600160a01b03163314610dbf5760405162461bcd60e51b8152600401610945906121e9565b600c8054911515620100000262ff000019909216919091179055565b606060048054610884906121b1565b6005546001600160a01b03163314610e145760405162461bcd60e51b8152600401610945906121e9565b7f0000000000000000000000002b69106591fdefd1e8d2fe30423fdc578906ec536001600160a01b0316826001600160a01b031603610ebb5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610945565b610ec58282611cba565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610945565b610f573385858403611332565b5060019392505050565b6005546001600160a01b03163314610f8b5760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b039091165f908152601360209081526040808320805494151560ff19958616811790915560129092529091208054909216179055565b5f610911338484611455565b6005546001600160a01b03163314610ffe5760405162461bcd60e51b8152600401610945906121e9565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005545f906001600160a01b031633146110865760405162461bcd60e51b8152600401610945906121e9565b50600c805460ff1916821515179055805b919050565b6005546001600160a01b031633146110c65760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461114e5760405162461bcd60e51b8152600401610945906121e9565b670de0b6b3a76400006103e861116360025490565b61116e906005612232565b6111789190612249565b6111829190612249565b8110156111dd5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610945565b6111ef81670de0b6b3a7640000612232565b600a5550565b6005546001600160a01b0316331461121f5760405162461bcd60e51b8152600401610945906121e9565b61123181670de0b6b3a7640000612232565b60095550565b6005546001600160a01b031633146112615760405162461bcd60e51b8152600401610945906121e9565b6010819055601155565b6005546001600160a01b031633146112955760405162461bcd60e51b8152600401610945906121e9565b601155565b6005546001600160a01b031633146112c45760405162461bcd60e51b8152600401610945906121e9565b6001600160a01b0381166113295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610945565b610d9281611abb565b6001600160a01b0383166113945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610945565b6001600160a01b0382166113f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610945565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661147b5760405162461bcd60e51b8152600401610945906122a7565b6001600160a01b0382166114a15760405162461bcd60e51b8152600401610945906122ec565b805f036114b8576114b383835f611d0d565b505050565b600c5460ff16156118b5576005546001600160a01b038481169116148015906114ef57506005546001600160a01b03838116911614155b801561150357506001600160a01b03821615155b801561151a57506001600160a01b03821661dead14155b80156115305750600554600160a01b900460ff16155b156118b55743600f54600d546115469190612268565b1061155a57602860108190556011556115c5565b600f54600d5461156a9190612268565b611575906005612268565b431161158a57601460108190556011556115c5565b600f54600d5461159a9190612268565b6115a590600a612268565b43116115ba57600a60108190556011556115c5565b600260108190556011555b600c54610100900460ff16611656576001600160a01b0383165f9081526012602052604090205460ff168061161157506001600160a01b0382165f9081526012602052604090205460ff165b6116565760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610945565b6001600160a01b0383165f9081526014602052604090205460ff16801561169557506001600160a01b0382165f9081526013602052604090205460ff16155b156117785760085481111561170a5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610945565b600a546001600160a01b0383165f9081526020819052604090205461172f9083612268565b11156117735760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610945565b6118b5565b6001600160a01b0382165f9081526014602052604090205460ff1680156117b757506001600160a01b0383165f9081526013602052604090205460ff16155b1561182d576008548111156117735760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610945565b6001600160a01b0382165f9081526013602052604090205460ff166118b557600a546001600160a01b0383165f908152602081905260409020546118719083612268565b11156118b55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610945565b305f90815260208190526040902054600954811080159081906118e05750600c5462010000900460ff165b80156118f65750600554600160a01b900460ff16155b801561191a57506001600160a01b0385165f9081526014602052604090205460ff16155b801561193e57506001600160a01b0385165f9081526012602052604090205460ff16155b801561196257506001600160a01b0384165f9081526012602052604090205460ff16155b15611990576005805460ff60a01b1916600160a01b179055611982611e60565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526012602052604090205460ff600160a01b9092048216159116806119dc57506001600160a01b0385165f9081526012602052604090205460ff165b156119e457505f5b5f8115611aa7576001600160a01b0386165f9081526014602052604090205460ff168015611a1357505f601154115b15611a3f57611a386064611a3260115488611f5a90919063ffffffff16565b90611f6c565b9050611a89565b6001600160a01b0387165f9081526014602052604090205460ff168015611a6757505f601054115b15611a8957611a866064611a3260105488611f5a90919063ffffffff16565b90505b8015611a9a57611a9a873083611d0d565b611aa4818661232f565b94505b611ab2878787611d0d565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b3f57611b3f61227b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bdf9190612342565b81600181518110611bf257611bf261227b565b60200260200101906001600160a01b031690816001600160a01b031681525050611c3d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611332565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611c919085905f9086903090429060040161235d565b5f604051808303815f87803b158015611ca8575f80fd5b505af1158015610bb5573d5f803e3d5ffd5b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d335760405162461bcd60e51b8152600401610945906122a7565b6001600160a01b038216611d595760405162461bcd60e51b8152600401610945906122ec565b6001600160a01b0383165f9081526020819052604090205481811015611dd05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610945565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611e06908490612268565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e5291815260200190565b60405180910390a350505050565b305f9081526020819052604081205490818103611e7b575050565b600b54821115611e8b57600b5491505b81611e9581611b0c565b5f611ea1476004611f6c565b90505f611eae824761232f565b6007546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611ef9576040519150601f19603f3d011682016040523d82523d5f602084013e611efe565b606091505b50506006546040519195506001600160a01b03169082905f81818185875af1925050503d805f8114611f4b576040519150601f19603f3d011682016040523d82523d5f602084013e611f50565b606091505b5050505050505050565b5f611f658284612232565b9392505050565b5f611f658284612249565b5f6020808352835180828501525f5b81811015611fa257858101830151858201604001528201611f86565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d92575f80fd5b5f8060408385031215611fe7575f80fd5b8235611ff281611fc2565b946020939093013593505050565b5f60208284031215612010575f80fd5b8135611f6581611fc2565b5f6020828403121561202b575f80fd5b5035919050565b5f805f60608486031215612044575f80fd5b833561204f81611fc2565b9250602084013561205f81611fc2565b929592945050506040919091013590565b5f8083601f840112612080575f80fd5b50813567ffffffffffffffff811115612097575f80fd5b6020830191508360208260051b85010111156120b1575f80fd5b9250929050565b5f805f80604085870312156120cb575f80fd5b843567ffffffffffffffff808211156120e2575f80fd5b6120ee88838901612070565b90965094506020870135915080821115612106575f80fd5b5061211387828801612070565b95989497509550505050565b80358015158114611097575f80fd5b5f806040838503121561213f575f80fd5b823561214a81611fc2565b91506121586020840161211f565b90509250929050565b5f60208284031215612171575f80fd5b611f658261211f565b5f806040838503121561218b575f80fd5b823561219681611fc2565b915060208301356121a681611fc2565b809150509250929050565b600181811c908216806121c557607f821691505b6020821081036121e357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109155761091561221e565b5f8261226357634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109155761091561221e565b634e487b7160e01b5f52603260045260245ffd5b5f600182016122a0576122a061221e565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109155761091561221e565b5f60208284031215612352575f80fd5b8151611f6581611fc2565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123ab5784516001600160a01b031683529383019391830191600101612386565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203e8186d3865735dbf6485e1be37de8c1d809804d9e73ba6c1ad45f6fa5dabb4364736f6c63430008150033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.