More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 120 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 19504970 | 225 days ago | IN | 0 ETH | 0.00088361 | ||||
Approve | 18256400 | 400 days ago | IN | 0 ETH | 0.00051973 | ||||
Approve | 17818780 | 461 days ago | IN | 0 ETH | 0.00087377 | ||||
Approve | 17818771 | 461 days ago | IN | 0 ETH | 0.00083772 | ||||
Approve | 17818761 | 461 days ago | IN | 0 ETH | 0.00085737 | ||||
Approve | 17818752 | 461 days ago | IN | 0 ETH | 0.00083475 | ||||
Approve | 17818743 | 461 days ago | IN | 0 ETH | 0.00084485 | ||||
Approve | 17818732 | 461 days ago | IN | 0 ETH | 0.00095393 | ||||
Approve | 17818709 | 461 days ago | IN | 0 ETH | 0.00083455 | ||||
Approve | 17818699 | 461 days ago | IN | 0 ETH | 0.00080709 | ||||
Approve | 17801625 | 464 days ago | IN | 0 ETH | 0.0007908 | ||||
Approve | 17801622 | 464 days ago | IN | 0 ETH | 0.00121566 | ||||
Transfer | 17801607 | 464 days ago | IN | 0 ETH | 0.00131421 | ||||
Approve | 17801566 | 464 days ago | IN | 0 ETH | 0.00067779 | ||||
Approve | 17801559 | 464 days ago | IN | 0 ETH | 0.00069646 | ||||
Approve | 17801533 | 464 days ago | IN | 0 ETH | 0.00073995 | ||||
Approve | 17801531 | 464 days ago | IN | 0 ETH | 0.00122913 | ||||
Approve | 17801525 | 464 days ago | IN | 0 ETH | 0.00065431 | ||||
Approve | 17801520 | 464 days ago | IN | 0 ETH | 0.00068052 | ||||
Approve | 17801515 | 464 days ago | IN | 0 ETH | 0.00119656 | ||||
Approve | 17801506 | 464 days ago | IN | 0 ETH | 0.00084617 | ||||
Approve | 17801491 | 464 days ago | IN | 0 ETH | 0.00067958 | ||||
Approve | 17801488 | 464 days ago | IN | 0 ETH | 0.00065932 | ||||
Approve | 17801485 | 464 days ago | IN | 0 ETH | 0.00066493 | ||||
Approve | 17801314 | 464 days ago | IN | 0 ETH | 0.00115016 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DeadMemes
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-08 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; 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 allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function symbol() external pure returns (string memory); function name() external pure returns (string memory); function decimals() external pure returns (uint8); function balanceOf(address owner) external view returns (uint256); function totalSupply() external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { 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 removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut( uint256 amountIn, address[] calldata path ) external view returns (uint256[] memory amounts); function getAmountsIn( uint256 amountOut, address[] calldata path ) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /** * @dev 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; } } /** * @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 deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @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); } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } } /** * @dev Implementation of the {ERC20} contract. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract DeadMemes is ERC20, Ownable { uint256 public maxWalletAmount; uint8 public devAndMarketingSellTaxPercentage = 1; uint256 private immutable _numTokensSellToAddToETH = 50000000 * (10 ** decimals()); mapping(address => bool) public isBlacklisted; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isExcludedFromMaxWallet; bool private _liquidityAdded = false; bool inSwapAndLiquify; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public devAndMarketingWallet; event DevAndMarketingSellTaxPercentageChanged(uint8, uint8); event Blacklisted(address, bool); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() ERC20("DeadMemes", "DEADMEMES") { devAndMarketingWallet = msg.sender; _mint(_msgSender(), (420690000000 * 10 ** decimals())); maxWalletAmount = (totalSupply() * 2) / 100; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; isExcludedFromFee[owner()] = true; isExcludedFromMaxWallet[owner()] = true; isExcludedFromMaxWallet[uniswapV2Pair] = true; } function changeDevAndMarketingWallet( address _devAndMarketingWallet ) external onlyOwner returns (bool) { require( _devAndMarketingWallet != address(0), "ERC20: devAndMarketingWallet should not be null address" ); devAndMarketingWallet = _devAndMarketingWallet; return true; } function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(devAndMarketingWallet), (block.timestamp + 300) ); } function blacklist( address _address, bool _flag ) external onlyOwner returns (bool) { isBlacklisted[_address] = _flag; emit Blacklisted(_address, _flag); return true; } function excludeFromFee( address account, bool _flag ) external onlyOwner returns (bool) { isExcludedFromFee[account] = _flag; return true; } function excludeFromMaxWallet( address account, bool _flag ) external onlyOwner returns (bool) { isExcludedFromMaxWallet[account] = _flag; return true; } 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"); require( balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance" ); require( !isBlacklisted[to] && !isBlacklisted[from], "ERC20: from/to account is blacklisted" ); if ( to == uniswapV2Pair && !inSwapAndLiquify && (!isExcludedFromFee[from] && !isExcludedFromFee[to]) ) { // sell uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= _numTokensSellToAddToETH) { _swapTokensForEth(contractTokenBalance); } uint256 devAndMarketingAmount = ((amount * devAndMarketingSellTaxPercentage) / 100); super._transfer(from, address(this), devAndMarketingAmount); amount -= devAndMarketingAmount; } require( (amount + balanceOf(to)) <= maxWalletAmount || isExcludedFromMaxWallet[to], "ERC20: balance amount exceeded max wallet amount limit" ); super._transfer(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"address","name":"","type":"address"},{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"Blacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"DevAndMarketingSellTaxPercentageChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devAndMarketingWallet","type":"address"}],"name":"changeDevAndMarketingWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAndMarketingSellTaxPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devAndMarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"excludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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"}]
Contract Creation Code
60e06040526007805460ff191660011790556200001a601290565b6200002790600a62000588565b62000037906302faf0806200059f565b608052600b805460ff1916905534801562000050575f80fd5b5060405180604001604052806009815260200168446561644d656d657360b81b81525060405180604001604052806009815260200168444541444d454d455360b81b8152508160039081620000a6919062000659565b506004620000b5828262000659565b505050620000d2620000cc6200036060201b60201c565b62000364565b600b805462010000600160b01b0319163362010000021790556200011c620000f73390565b620001056012600a62000588565b62000116906461f313f8806200059f565b620003b5565b60646200012860025490565b620001359060026200059f565b62000141919062000721565b6006819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c2919062000741565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000234919062000741565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200027f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000741565b6001600160a01b0390811660c052811660a052600160095f620002d06005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f908120805460ff191692151592909217909155600190600a90620003136005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560c0519091168152600a909252902080549091166001179055506200077f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004105760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f82825462000423919062000769565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004cd57815f1904821115620004b157620004b162000479565b80851615620004bf57918102915b93841c939080029062000492565b509250929050565b5f82620004e55750600162000582565b81620004f357505f62000582565b81600181146200050c5760028114620005175762000537565b600191505062000582565b60ff8411156200052b576200052b62000479565b50506001821b62000582565b5060208310610133831016604e8410600b84101617156200055c575081810a62000582565b6200056883836200048d565b805f19048211156200057e576200057e62000479565b0290505b92915050565b5f6200059860ff841683620004d5565b9392505050565b808202811582820484141762000582576200058262000479565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005e257607f821691505b6020821081036200060157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000654575f81815260208120601f850160051c810160208610156200062f5750805b601f850160051c820191505b8181101562000650578281556001016200063b565b5050505b505050565b81516001600160401b03811115620006755762000675620005b9565b6200068d81620006868454620005cd565b8462000607565b602080601f831160018114620006c3575f8415620006ab5750858301515b5f19600386901b1c1916600185901b17855562000650565b5f85815260208120601f198616915b82811015620006f357888601518255948401946001909101908401620006d2565b50858210156200071157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f826200073c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000752575f80fd5b81516001600160a01b038116811462000598575f80fd5b8082018082111562000582576200058262000479565b60805160a05160c051611305620007c65f395f81816102700152610a4801525f81816101d101528181610cfb01528181610db20152610de401525f610aec01526113055ff3fe608060405234801561000f575f80fd5b5060043610610187575f3560e01c80638da5cb5b116100d9578063ba76d51711610093578063dd62ed3e1161006e578063dd62ed3e1461039c578063df8408fe146103af578063f2fde38b146103c2578063fe575a87146103d5575f80fd5b8063ba76d51714610363578063c74a195814610370578063d2fcc00114610389575f80fd5b80638da5cb5b1461030857806395d89b4114610319578063a457c2d714610321578063a9059cbb14610334578063aa4bde2814610347578063ae3085e114610350575f80fd5b806339509351116101445780635342acb41161011f5780635342acb4146102925780636dd3d39f146102b457806370a08231146102d6578063715018a6146102fe575f80fd5b80633950935114610245578063404e51291461025857806349bd5a5e1461026b575f80fd5b806306fdde031461018b578063095ea7b3146101a95780631694505e146101cc57806318160ddd1461020b57806323b872dd1461021d578063313ce56714610230575b5f80fd5b6101936103f7565b6040516101a09190610f6b565b60405180910390f35b6101bc6101b7366004610fca565b610487565b60405190151581526020016101a0565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a0565b6002545b6040519081526020016101a0565b6101bc61022b366004610ff4565b6104a0565b60125b60405160ff90911681526020016101a0565b6101bc610253366004610fca565b6104c3565b6101bc610266366004611032565b6104e4565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b6101bc6102a036600461106d565b60096020525f908152604090205460ff1681565b6101bc6102c236600461106d565b600a6020525f908152604090205460ff1681565b61020f6102e436600461106d565b6001600160a01b03165f9081526020819052604090205490565b610306610554565b005b6005546001600160a01b03166101f3565b610193610567565b6101bc61032f366004610fca565b610576565b6101bc610342366004610fca565b6105f5565b61020f60065481565b6101bc61035e36600461106d565b610602565b6007546102339060ff1681565b600b546101f3906201000090046001600160a01b031681565b6101bc610397366004611032565b6106b3565b61020f6103aa36600461108f565b6106ea565b6101bc6103bd366004611032565b610714565b6103066103d036600461106d565b61074b565b6101bc6103e336600461106d565b60086020525f908152604090205460ff1681565b606060038054610406906110bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610432906110bb565b801561047d5780601f106104545761010080835404028352916020019161047d565b820191905f5260205f20905b81548152906001019060200180831161046057829003601f168201915b5050505050905090565b5f33610494818585610788565b60019150505b92915050565b5f336104ad8582856108ab565b6104b8858585610923565b506001949350505050565b5f336104948185856104d583836106ea565b6104df9190611107565b610788565b5f6104ed610c19565b6001600160a01b0383165f81815260086020908152604091829020805460ff19168615159081179091558251938452908301527fcf3473b85df1594d47b6958f29a32bea0abff9dd68296f7bf33443646793cfd8910160405180910390a150600192915050565b61055c610c19565b6105655f610c46565b565b606060048054610406906110bb565b5f338161058382866106ea565b9050838110156105e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104b88286868403610788565b5f33610494818585610923565b5f61060b610c19565b6001600160a01b0382166106875760405162461bcd60e51b815260206004820152603760248201527f45524332303a20646576416e644d61726b6574696e6757616c6c65742073686f60448201527f756c64206e6f74206265206e756c6c206164647265737300000000000000000060648201526084016105df565b50600b80546001600160a01b038316620100000262010000600160b01b03199091161790556001919050565b5f6106bc610c19565b506001600160a01b0382165f908152600a60205260409020805482151560ff19909116179055600192915050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f61071d610c19565b506001600160a01b0382165f908152600960205260409020805482151560ff19909116179055600192915050565b610753610c19565b6001600160a01b03811661077c57604051631e4fbdf760e01b81525f60048201526024016105df565b61078581610c46565b50565b6001600160a01b0383166107ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105df565b6001600160a01b03821661084b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105df565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6108b684846106ea565b90505f19811461091d57818110156109105760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105df565b61091d8484848403610788565b50505050565b6001600160a01b0383166109495760405162461bcd60e51b81526004016105df9061111a565b6001600160a01b03821661096f5760405162461bcd60e51b81526004016105df9061115f565b8061098e846001600160a01b03165f9081526020819052604090205490565b10156109ac5760405162461bcd60e51b81526004016105df906111a2565b6001600160a01b0382165f9081526008602052604090205460ff161580156109ec57506001600160a01b0383165f9081526008602052604090205460ff16155b610a465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2066726f6d2f746f206163636f756e7420697320626c61636b6c6044820152641a5cdd195960da1b60648201526084016105df565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610a8f5750600b54610100900460ff16155b8015610ad657506001600160a01b0383165f9081526009602052604090205460ff16158015610ad657506001600160a01b0382165f9081526009602052604090205460ff16155b15610b5557305f908152602081905260409020547f00000000000000000000000000000000000000000000000000000000000000008110610b1a57610b1a81610c97565b6007545f90606490610b2f9060ff16856111e8565b610b3991906111ff565b9050610b46853083610e81565b610b50818461121e565b925050505b6006546001600160a01b0383165f90815260208190526040902054610b7a9083611107565b111580610b9e57506001600160a01b0382165f908152600a602052604090205460ff165b610c095760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b60648201526084016105df565b610c14838383610e81565b505050565b6005546001600160a01b031633146105655760405163118cdaa760e01b81523360048201526024016105df565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600b805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610cd957610cd9611231565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d799190611245565b81600181518110610d8c57610d8c611231565b60200260200101906001600160a01b031690816001600160a01b031681525050610dd7307f000000000000000000000000000000000000000000000000000000000000000084610788565b600b546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163791ac9479185915f91869162010000900416610e254261012c611107565b6040518663ffffffff1660e01b8152600401610e45959493929190611260565b5f604051808303815f87803b158015610e5c575f80fd5b505af1158015610e6e573d5f803e3d5ffd5b5050600b805461ff001916905550505050565b6001600160a01b038316610ea75760405162461bcd60e51b81526004016105df9061111a565b6001600160a01b038216610ecd5760405162461bcd60e51b81526004016105df9061115f565b6001600160a01b0383165f9081526020819052604090205481811015610f055760405162461bcd60e51b81526004016105df906111a2565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b5f6020808352835180828501525f5b81811015610f9657858101830151858201604001528201610f7a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610785575f80fd5b5f8060408385031215610fdb575f80fd5b8235610fe681610fb6565b946020939093013593505050565b5f805f60608486031215611006575f80fd5b833561101181610fb6565b9250602084013561102181610fb6565b929592945050506040919091013590565b5f8060408385031215611043575f80fd5b823561104e81610fb6565b915060208301358015158114611062575f80fd5b809150509250929050565b5f6020828403121561107d575f80fd5b813561108881610fb6565b9392505050565b5f80604083850312156110a0575f80fd5b82356110ab81610fb6565b9150602083013561106281610fb6565b600181811c908216806110cf57607f821691505b6020821081036110ed57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561049a5761049a6110f3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808202811582820484141761049a5761049a6110f3565b5f8261121957634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561049a5761049a6110f3565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611255575f80fd5b815161108881610fb6565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112ae5784516001600160a01b031683529383019391830191600101611289565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122022a3cd35a31c3cab01a50be08e33b403bc31f13f7b17519830623b84a8a9cdb764736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610187575f3560e01c80638da5cb5b116100d9578063ba76d51711610093578063dd62ed3e1161006e578063dd62ed3e1461039c578063df8408fe146103af578063f2fde38b146103c2578063fe575a87146103d5575f80fd5b8063ba76d51714610363578063c74a195814610370578063d2fcc00114610389575f80fd5b80638da5cb5b1461030857806395d89b4114610319578063a457c2d714610321578063a9059cbb14610334578063aa4bde2814610347578063ae3085e114610350575f80fd5b806339509351116101445780635342acb41161011f5780635342acb4146102925780636dd3d39f146102b457806370a08231146102d6578063715018a6146102fe575f80fd5b80633950935114610245578063404e51291461025857806349bd5a5e1461026b575f80fd5b806306fdde031461018b578063095ea7b3146101a95780631694505e146101cc57806318160ddd1461020b57806323b872dd1461021d578063313ce56714610230575b5f80fd5b6101936103f7565b6040516101a09190610f6b565b60405180910390f35b6101bc6101b7366004610fca565b610487565b60405190151581526020016101a0565b6101f37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101a0565b6002545b6040519081526020016101a0565b6101bc61022b366004610ff4565b6104a0565b60125b60405160ff90911681526020016101a0565b6101bc610253366004610fca565b6104c3565b6101bc610266366004611032565b6104e4565b6101f37f000000000000000000000000a79c215ee123e8636a595ef85b0c152633ca340681565b6101bc6102a036600461106d565b60096020525f908152604090205460ff1681565b6101bc6102c236600461106d565b600a6020525f908152604090205460ff1681565b61020f6102e436600461106d565b6001600160a01b03165f9081526020819052604090205490565b610306610554565b005b6005546001600160a01b03166101f3565b610193610567565b6101bc61032f366004610fca565b610576565b6101bc610342366004610fca565b6105f5565b61020f60065481565b6101bc61035e36600461106d565b610602565b6007546102339060ff1681565b600b546101f3906201000090046001600160a01b031681565b6101bc610397366004611032565b6106b3565b61020f6103aa36600461108f565b6106ea565b6101bc6103bd366004611032565b610714565b6103066103d036600461106d565b61074b565b6101bc6103e336600461106d565b60086020525f908152604090205460ff1681565b606060038054610406906110bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610432906110bb565b801561047d5780601f106104545761010080835404028352916020019161047d565b820191905f5260205f20905b81548152906001019060200180831161046057829003601f168201915b5050505050905090565b5f33610494818585610788565b60019150505b92915050565b5f336104ad8582856108ab565b6104b8858585610923565b506001949350505050565b5f336104948185856104d583836106ea565b6104df9190611107565b610788565b5f6104ed610c19565b6001600160a01b0383165f81815260086020908152604091829020805460ff19168615159081179091558251938452908301527fcf3473b85df1594d47b6958f29a32bea0abff9dd68296f7bf33443646793cfd8910160405180910390a150600192915050565b61055c610c19565b6105655f610c46565b565b606060048054610406906110bb565b5f338161058382866106ea565b9050838110156105e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104b88286868403610788565b5f33610494818585610923565b5f61060b610c19565b6001600160a01b0382166106875760405162461bcd60e51b815260206004820152603760248201527f45524332303a20646576416e644d61726b6574696e6757616c6c65742073686f60448201527f756c64206e6f74206265206e756c6c206164647265737300000000000000000060648201526084016105df565b50600b80546001600160a01b038316620100000262010000600160b01b03199091161790556001919050565b5f6106bc610c19565b506001600160a01b0382165f908152600a60205260409020805482151560ff19909116179055600192915050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f61071d610c19565b506001600160a01b0382165f908152600960205260409020805482151560ff19909116179055600192915050565b610753610c19565b6001600160a01b03811661077c57604051631e4fbdf760e01b81525f60048201526024016105df565b61078581610c46565b50565b6001600160a01b0383166107ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105df565b6001600160a01b03821661084b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105df565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6108b684846106ea565b90505f19811461091d57818110156109105760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105df565b61091d8484848403610788565b50505050565b6001600160a01b0383166109495760405162461bcd60e51b81526004016105df9061111a565b6001600160a01b03821661096f5760405162461bcd60e51b81526004016105df9061115f565b8061098e846001600160a01b03165f9081526020819052604090205490565b10156109ac5760405162461bcd60e51b81526004016105df906111a2565b6001600160a01b0382165f9081526008602052604090205460ff161580156109ec57506001600160a01b0383165f9081526008602052604090205460ff16155b610a465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2066726f6d2f746f206163636f756e7420697320626c61636b6c6044820152641a5cdd195960da1b60648201526084016105df565b7f000000000000000000000000a79c215ee123e8636a595ef85b0c152633ca34066001600160a01b0316826001600160a01b0316148015610a8f5750600b54610100900460ff16155b8015610ad657506001600160a01b0383165f9081526009602052604090205460ff16158015610ad657506001600160a01b0382165f9081526009602052604090205460ff16155b15610b5557305f908152602081905260409020547f000000000000000000000000000000000000000000295be96e640669720000008110610b1a57610b1a81610c97565b6007545f90606490610b2f9060ff16856111e8565b610b3991906111ff565b9050610b46853083610e81565b610b50818461121e565b925050505b6006546001600160a01b0383165f90815260208190526040902054610b7a9083611107565b111580610b9e57506001600160a01b0382165f908152600a602052604090205460ff165b610c095760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b60648201526084016105df565b610c14838383610e81565b505050565b6005546001600160a01b031633146105655760405163118cdaa760e01b81523360048201526024016105df565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600b805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610cd957610cd9611231565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d799190611245565b81600181518110610d8c57610d8c611231565b60200260200101906001600160a01b031690816001600160a01b031681525050610dd7307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610788565b600b546001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169163791ac9479185915f91869162010000900416610e254261012c611107565b6040518663ffffffff1660e01b8152600401610e45959493929190611260565b5f604051808303815f87803b158015610e5c575f80fd5b505af1158015610e6e573d5f803e3d5ffd5b5050600b805461ff001916905550505050565b6001600160a01b038316610ea75760405162461bcd60e51b81526004016105df9061111a565b6001600160a01b038216610ecd5760405162461bcd60e51b81526004016105df9061115f565b6001600160a01b0383165f9081526020819052604090205481811015610f055760405162461bcd60e51b81526004016105df906111a2565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b5f6020808352835180828501525f5b81811015610f9657858101830151858201604001528201610f7a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610785575f80fd5b5f8060408385031215610fdb575f80fd5b8235610fe681610fb6565b946020939093013593505050565b5f805f60608486031215611006575f80fd5b833561101181610fb6565b9250602084013561102181610fb6565b929592945050506040919091013590565b5f8060408385031215611043575f80fd5b823561104e81610fb6565b915060208301358015158114611062575f80fd5b809150509250929050565b5f6020828403121561107d575f80fd5b813561108881610fb6565b9392505050565b5f80604083850312156110a0575f80fd5b82356110ab81610fb6565b9150602083013561106281610fb6565b600181811c908216806110cf57607f821691505b6020821081036110ed57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561049a5761049a6110f3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808202811582820484141761049a5761049a6110f3565b5f8261121957634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561049a5761049a6110f3565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611255575f80fd5b815161108881610fb6565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112ae5784516001600160a01b031683529383019391830191600101611289565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122022a3cd35a31c3cab01a50be08e33b403bc31f13f7b17519830623b84a8a9cdb764736f6c63430008140033
Deployed Bytecode Sourcemap
28177:4525:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18073:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20499:226;;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;20499:226:0;1023:187:1;28659:51:0;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;28659:51:0;1215:229:1;19408:108:0;19496:12;;19408:108;;;1595:25:1;;;1583:2;1568:18;19408:108:0;1449:177:1;21305:295:0;;;;;;:::i;:::-;;:::i;19044:93::-;19127:2;19044:93;;;2264:4:1;2252:17;;;2234:36;;2222:2;2207:18;19044:93:0;2092:184:1;22009:263:0;;;;;;:::i;:::-;;:::i;30624:226::-;;;;;;:::i;:::-;;:::i;28717:38::-;;;;;28466:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;28522:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19200:143;;;;;;:::i;:::-;-1:-1:-1;;;;;19317:18:0;19290:7;19317:18;;;;;;;;;;;;19200:143;15257:103;;;:::i;:::-;;14582:87;14655:6;;-1:-1:-1;;;;;14655:6:0;14582:87;;18292:104;;;:::i;22775:498::-;;;;;;:::i;:::-;;:::i;19722:218::-;;;;;;:::i;:::-;;:::i;28221:30::-;;;;;;29731:360;;;;;;:::i;:::-;;:::i;28258:49::-;;;;;;;;;28762:36;;;;;;;;-1:-1:-1;;;;;28762:36:0;;;31055:201;;;;;;:::i;:::-;;:::i;20003:176::-;;;;;;:::i;:::-;;:::i;30858:189::-;;;;;;:::i;:::-;;:::i;15515:220::-;;;;;;:::i;:::-;;:::i;28414:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18073:100;18127:13;18160:5;18153:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18073:100;:::o;20499:226::-;20607:4;13172:10;20663:32;13172:10;20679:7;20688:6;20663:8;:32::i;:::-;20713:4;20706:11;;;20499:226;;;;;:::o;21305:295::-;21436:4;13172:10;21494:38;21510:4;13172:10;21525:6;21494:15;:38::i;:::-;21543:27;21553:4;21559:2;21563:6;21543:9;:27::i;:::-;-1:-1:-1;21588:4:0;;21305:295;-1:-1:-1;;;;21305:295:0:o;22009:263::-;22122:4;13172:10;22178:64;13172:10;22194:7;22231:10;22203:25;13172:10;22194:7;22203:9;:25::i;:::-;:38;;;;:::i;:::-;22178:8;:64::i;30624:226::-;30726:4;14468:13;:11;:13::i;:::-;-1:-1:-1;;;;;30743:23:0;::::1;;::::0;;;:13:::1;:23;::::0;;;;;;;;:31;;-1:-1:-1;;30743:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;30792:28;;4370:51:1;;;4437:18;;;4430:50;30792:28:0::1;::::0;4343:18:1;30792:28:0::1;;;;;;;-1:-1:-1::0;30838:4:0::1;30624:226:::0;;;;:::o;15257:103::-;14468:13;:11;:13::i;:::-;15322:30:::1;15349:1;15322:18;:30::i;:::-;15257:103::o:0;18292:104::-;18348:13;18381:7;18374:14;;;;;:::i;22775:498::-;22893:4;13172:10;22893:4;22976:25;13172:10;22993:7;22976:9;:25::i;:::-;22949:52;;23054:15;23034:16;:35;;23012:122;;;;-1:-1:-1;;;23012:122:0;;4693:2:1;23012:122:0;;;4675:21:1;4732:2;4712:18;;;4705:30;4771:34;4751:18;;;4744:62;-1:-1:-1;;;4822:18:1;;;4815:35;4867:19;;23012:122:0;;;;;;;;;23170:60;23179:5;23186:7;23214:15;23195:16;:34;23170:8;:60::i;19722:218::-;19826:4;13172:10;19882:28;13172:10;19899:2;19903:6;19882:9;:28::i;29731:360::-;29844:4;14468:13;:11;:13::i;:::-;-1:-1:-1;;;;;29883:36:0;::::1;29861:141;;;::::0;-1:-1:-1;;;29861:141:0;;5099:2:1;29861:141:0::1;::::0;::::1;5081:21:1::0;5138:2;5118:18;;;5111:30;5177:34;5157:18;;;5150:62;5248:25;5228:18;;;5221:53;5291:19;;29861:141:0::1;4897:419:1::0;29861:141:0::1;-1:-1:-1::0;30013:21:0::1;:46:::0;;-1:-1:-1;;;;;30013:46:0;::::1;::::0;::::1;-1:-1:-1::0;;;;;;30013:46:0;;::::1;;::::0;;-1:-1:-1;29731:360:0;;;:::o;31055:201::-;31167:4;14468:13;:11;:13::i;:::-;-1:-1:-1;;;;;;31184:32:0;::::1;;::::0;;;:23:::1;:32;::::0;;;;:40;;;::::1;;-1:-1:-1::0;;31184:40:0;;::::1;;::::0;;;31055:201;;;;:::o;20003:176::-;-1:-1:-1;;;;;20144:18:0;;;20117:7;20144:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20003:176::o;30858:189::-;30964:4;14468:13;:11;:13::i;:::-;-1:-1:-1;;;;;;30981:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;;::::1;;-1:-1:-1::0;;30981:34:0;;::::1;;::::0;;;30858:189;;;;:::o;15515:220::-;14468:13;:11;:13::i;:::-;-1:-1:-1;;;;;15600:22:0;::::1;15596:93;;15646:31;::::0;-1:-1:-1;;;15646:31:0;;15674:1:::1;15646:31;::::0;::::1;1387:51:1::0;1360:18;;15646:31:0::1;1215:229:1::0;15596:93:0::1;15699:28;15718:8;15699:18;:28::i;:::-;15515:220:::0;:::o;25669:380::-;-1:-1:-1;;;;;25805:19:0;;25797:68;;;;-1:-1:-1;;;25797:68:0;;5523:2:1;25797:68:0;;;5505:21:1;5562:2;5542:18;;;5535:30;5601:34;5581:18;;;5574:62;-1:-1:-1;;;5652:18:1;;;5645:34;5696:19;;25797:68:0;5321:400:1;25797:68:0;-1:-1:-1;;;;;25884:21:0;;25876:68;;;;-1:-1:-1;;;25876:68:0;;5928:2:1;25876:68:0;;;5910:21:1;5967:2;5947:18;;;5940:30;6006:34;5986:18;;;5979:62;-1:-1:-1;;;6057:18:1;;;6050:32;6099:19;;25876:68:0;5726:398:1;25876:68:0;-1:-1:-1;;;;;25957:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26009:32;;1595:25:1;;;26009:32:0;;1568:18:1;26009:32:0;;;;;;;25669:380;;;:::o;26340:502::-;26475:24;26502:25;26512:5;26519:7;26502:9;:25::i;:::-;26475:52;;-1:-1:-1;;26542:16:0;:37;26538:297;;26642:6;26622:16;:26;;26596:117;;;;-1:-1:-1;;;26596:117:0;;6331:2:1;26596:117:0;;;6313:21:1;6370:2;6350:18;;;6343:30;6409:31;6389:18;;;6382:59;6458:18;;26596:117:0;6129:353:1;26596:117:0;26757:51;26766:5;26773:7;26801:6;26782:16;:25;26757:8;:51::i;:::-;26464:378;26340:502;;;:::o;31264:1435::-;-1:-1:-1;;;;;31396:18:0;;31388:68;;;;-1:-1:-1;;;31388:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31475:16:0;;31467:64;;;;-1:-1:-1;;;31467:64:0;;;;;;;:::i;:::-;31583:6;31564:15;31574:4;-1:-1:-1;;;;;19317:18:0;19290:7;19317:18;;;;;;;;;;;;19200:143;31564:15;:25;;31542:113;;;;-1:-1:-1;;;31542:113:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31689:17:0;;;;;;:13;:17;;;;;;;;31688:18;:42;;;;-1:-1:-1;;;;;;31711:19:0;;;;;;:13;:19;;;;;;;;31710:20;31688:42;31666:129;;;;-1:-1:-1;;;31666:129:0;;7906:2:1;31666:129:0;;;7888:21:1;7945:2;7925:18;;;7918:30;7984:34;7964:18;;;7957:62;-1:-1:-1;;;8035:18:1;;;8028:35;8080:19;;31666:129:0;7704:401:1;31666:129:0;31832:13;-1:-1:-1;;;;;31826:19:0;:2;-1:-1:-1;;;;;31826:19:0;;:53;;;;-1:-1:-1;31863:16:0;;;;;;;31862:17;31826:53;:122;;;;-1:-1:-1;;;;;;31898:23:0;;;;;;:17;:23;;;;;;;;31897:24;:50;;;;-1:-1:-1;;;;;;31926:21:0;;;;;;:17;:21;;;;;;;;31925:22;31897:50;31808:634;;;32045:4;31996:28;19317:18;;;;;;;;;;;32094:24;32070:48;;32066:128;;32139:39;32157:20;32139:17;:39::i;:::-;32270:32;;32210:29;;32306:3;;32244:58;;32270:32;;32244:6;:58;:::i;:::-;32243:66;;;;:::i;:::-;32210:100;;32325:59;32341:4;32355;32362:21;32325:15;:59::i;:::-;32399:31;32409:21;32399:31;;:::i;:::-;;;31960:482;;31808:634;32502:15;;-1:-1:-1;;;;;19317:18:0;;19290:7;19317:18;;;;;;;;;;;32475:22;;:6;:22;:::i;:::-;32474:43;;:91;;;-1:-1:-1;;;;;;32538:27:0;;;;;;:23;:27;;;;;;;;32474:91;32452:195;;;;-1:-1:-1;;;32452:195:0;;8840:2:1;32452:195:0;;;8822:21:1;8879:2;8859:18;;;8852:30;8918:34;8898:18;;;8891:62;-1:-1:-1;;;8969:18:1;;;8962:52;9031:19;;32452:195:0;8638:418:1;32452:195:0;32658:33;32674:4;32680:2;32684:6;32658:15;:33::i;:::-;31264:1435;;;:::o;14747:166::-;14655:6;;-1:-1:-1;;;;;14655:6:0;13172:10;14807:23;14803:103;;14854:40;;-1:-1:-1;;;14854:40:0;;13172:10;14854:40;;;1387:51:1;1360:18;;14854:40:0;1215:229:1;15895:191:0;15988:6;;;-1:-1:-1;;;;;16005:17:0;;;-1:-1:-1;;;;;;16005:17:0;;;;;;;16038:40;;15988:6;;;16005:17;15988:6;;16038:40;;15969:16;;16038:40;15958:128;15895:191;:::o;30099:517::-;28948:16;:23;;-1:-1:-1;;28948:23:0;;;;;30202:16:::1;::::0;;30216:1:::1;30202:16:::0;;;;;::::1;::::0;;-1:-1:-1;;30202:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;30202:16:0::1;30178:40;;30249:4;30231;30236:1;30231:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;30231:23:0::1;;;-1:-1:-1::0;;;;;30231:23:0::1;;;::::0;::::1;30277:15;-1:-1:-1::0;;;;;30277:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30267:4;30272:1;30267:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;30267:32:0::1;;;-1:-1:-1::0;;;;;30267:32:0::1;;;::::0;::::1;30312:62;30329:4;30344:15;30362:11;30312:8;:62::i;:::-;30537:21;::::0;-1:-1:-1;;;;;30387:15:0::1;:66:::0;::::1;::::0;::::1;::::0;30468:11;;30494:1:::1;::::0;30510:4;;30537:21;;::::1;;30575;:15;30593:3;30575:21;:::i;:::-;30387:221;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;28994:16:0;:24;;-1:-1:-1;;28994:24:0;;;-1:-1:-1;;;;30099:517:0:o;23743:776::-;-1:-1:-1;;;;;23874:18:0;;23866:68;;;;-1:-1:-1;;;23866:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23953:16:0;;23945:64;;;;-1:-1:-1;;;23945:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24044:15:0;;24022:19;24044:15;;;;;;;;;;;24092:21;;;;24070:109;;;;-1:-1:-1;;;24070:109:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24215:15:0;;;:9;:15;;;;;;;;;;;24233:20;;;24215:38;;24433:13;;;;;;;;;;:23;;;;;;24485:26;;1595:25:1;;;24433:13:0;;24485:26;;1568:18:1;24485:26:0;;;;;;;23855:664;23743:776;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:416::-;2346:6;2354;2407:2;2395:9;2386:7;2382:23;2378:32;2375:52;;;2423:1;2420;2413:12;2375:52;2462:9;2449:23;2481:31;2506:5;2481:31;:::i;:::-;2531:5;-1:-1:-1;2588:2:1;2573:18;;2560:32;2630:15;;2623:23;2611:36;;2601:64;;2661:1;2658;2651:12;2601:64;2684:7;2674:17;;;2281:416;;;;;:::o;2910:247::-;2969:6;3022:2;3010:9;3001:7;2997:23;2993:32;2990:52;;;3038:1;3035;3028:12;2990:52;3077:9;3064:23;3096:31;3121:5;3096:31;:::i;:::-;3146:5;2910:247;-1:-1:-1;;;2910:247:1:o;3162:388::-;3230:6;3238;3291:2;3279:9;3270:7;3266:23;3262:32;3259:52;;;3307:1;3304;3297:12;3259:52;3346:9;3333:23;3365:31;3390:5;3365:31;:::i;:::-;3415:5;-1:-1:-1;3472:2:1;3457:18;;3444:32;3485:33;3444:32;3485:33;:::i;3555:380::-;3634:1;3630:12;;;;3677;;;3698:61;;3752:4;3744:6;3740:17;3730:27;;3698:61;3805:2;3797:6;3794:14;3774:18;3771:38;3768:161;;3851:10;3846:3;3842:20;3839:1;3832:31;3886:4;3883:1;3876:15;3914:4;3911:1;3904:15;3768:161;;3555:380;;;:::o;3940:127::-;4001:10;3996:3;3992:20;3989:1;3982:31;4032:4;4029:1;4022:15;4056:4;4053:1;4046:15;4072:125;4137:9;;;4158:10;;;4155:36;;;4171:18;;:::i;6487:401::-;6689:2;6671:21;;;6728:2;6708:18;;;6701:30;6767:34;6762:2;6747:18;;6740:62;-1:-1:-1;;;6833:2:1;6818:18;;6811:35;6878:3;6863:19;;6487:401::o;6893:399::-;7095:2;7077:21;;;7134:2;7114:18;;;7107:30;7173:34;7168:2;7153:18;;7146:62;-1:-1:-1;;;7239:2:1;7224:18;;7217:33;7282:3;7267:19;;6893:399::o;7297:402::-;7499:2;7481:21;;;7538:2;7518:18;;;7511:30;7577:34;7572:2;7557:18;;7550:62;-1:-1:-1;;;7643:2:1;7628:18;;7621:36;7689:3;7674:19;;7297:402::o;8110:168::-;8183:9;;;8214;;8231:15;;;8225:22;;8211:37;8201:71;;8252:18;;:::i;8283:217::-;8323:1;8349;8339:132;;8393:10;8388:3;8384:20;8381:1;8374:31;8428:4;8425:1;8418:15;8456:4;8453:1;8446:15;8339:132;-1:-1:-1;8485:9:1;;8283:217::o;8505:128::-;8572:9;;;8593:11;;;8590:37;;;8607:18;;:::i;9193:127::-;9254:10;9249:3;9245:20;9242:1;9235:31;9285:4;9282:1;9275:15;9309:4;9306:1;9299:15;9325:251;9395:6;9448:2;9436:9;9427:7;9423:23;9419:32;9416:52;;;9464:1;9461;9454:12;9416:52;9496:9;9490:16;9515:31;9540:5;9515:31;:::i;9581:980::-;9843:4;9891:3;9880:9;9876:19;9922:6;9911:9;9904:25;9948:2;9986:6;9981:2;9970:9;9966:18;9959:34;10029:3;10024:2;10013:9;10009:18;10002:31;10053:6;10088;10082:13;10119:6;10111;10104:22;10157:3;10146:9;10142:19;10135:26;;10196:2;10188:6;10184:15;10170:29;;10217:1;10227:195;10241:6;10238:1;10235:13;10227:195;;;10306:13;;-1:-1:-1;;;;;10302:39:1;10290:52;;10397:15;;;;10362:12;;;;10338:1;10256:9;10227:195;;;-1:-1:-1;;;;;;;10478:32:1;;;;10473:2;10458:18;;10451:60;-1:-1:-1;;;10542:3:1;10527:19;10520:35;10439:3;9581:980;-1:-1:-1;;;9581:980:1:o
Swarm Source
ipfs://22a3cd35a31c3cab01a50be08e33b403bc31f13f7b17519830623b84a8a9cdb7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.