More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 58 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18581466 | 445 days ago | IN | 0 ETH | 0.00158128 | ||||
Approve | 18581449 | 445 days ago | IN | 0 ETH | 0.00129473 | ||||
Approve | 18581436 | 445 days ago | IN | 0 ETH | 0.00140162 | ||||
Approve | 18581424 | 445 days ago | IN | 0 ETH | 0.00148911 | ||||
Approve | 18581419 | 445 days ago | IN | 0 ETH | 0.00138915 | ||||
Approve | 18581419 | 445 days ago | IN | 0 ETH | 0.00132886 | ||||
Approve | 18581416 | 445 days ago | IN | 0 ETH | 0.00171886 | ||||
Approve | 18581414 | 445 days ago | IN | 0 ETH | 0.00157519 | ||||
Approve | 18581413 | 445 days ago | IN | 0 ETH | 0.0013556 | ||||
Approve | 18581410 | 445 days ago | IN | 0 ETH | 0.0013332 | ||||
Approve | 18581405 | 445 days ago | IN | 0 ETH | 0.00160698 | ||||
Approve | 18581405 | 445 days ago | IN | 0 ETH | 0.00160698 | ||||
Approve | 18581402 | 445 days ago | IN | 0 ETH | 0.00157201 | ||||
Approve | 18581401 | 445 days ago | IN | 0 ETH | 0.00154172 | ||||
Approve | 18581399 | 445 days ago | IN | 0 ETH | 0.00198265 | ||||
Approve | 18581399 | 445 days ago | IN | 0 ETH | 0.00198265 | ||||
Approve | 18581399 | 445 days ago | IN | 0 ETH | 0.00147432 | ||||
Approve | 18581398 | 445 days ago | IN | 0 ETH | 0.00137611 | ||||
Approve | 18581397 | 445 days ago | IN | 0 ETH | 0.00137806 | ||||
Approve | 18581394 | 445 days ago | IN | 0 ETH | 0.00204319 | ||||
Approve | 18581392 | 445 days ago | IN | 0 ETH | 0.00144438 | ||||
Approve | 18581391 | 445 days ago | IN | 0 ETH | 0.0019081 | ||||
Approve | 18581391 | 445 days ago | IN | 0 ETH | 0.0019081 | ||||
Approve | 18581387 | 445 days ago | IN | 0 ETH | 0.00212325 | ||||
Approve | 18581383 | 445 days ago | IN | 0 ETH | 0.00148931 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
18581405 | 445 days ago | 0.00703944 ETH | ||||
18581405 | 445 days ago | 0.00703944 ETH | ||||
18581401 | 445 days ago | 0.00347701 ETH | ||||
18581401 | 445 days ago | 0.00347701 ETH | ||||
18581400 | 445 days ago | 0.00123752 ETH | ||||
18581400 | 445 days ago | 0.00123752 ETH | ||||
18581400 | 445 days ago | 0.00940012 ETH | ||||
18581400 | 445 days ago | 0.00940012 ETH | ||||
18581396 | 445 days ago | 0.0050188 ETH | ||||
18581396 | 445 days ago | 0.0050188 ETH | ||||
18581396 | 445 days ago | 0.00181847 ETH | ||||
18581396 | 445 days ago | 0.00181847 ETH | ||||
18581393 | 445 days ago | 0.0023677 ETH | ||||
18581393 | 445 days ago | 0.0023677 ETH | ||||
18581391 | 445 days ago | 0.00793225 ETH | ||||
18581391 | 445 days ago | 0.00793225 ETH | ||||
18581387 | 445 days ago | 0.00331445 ETH | ||||
18581387 | 445 days ago | 0.00331445 ETH | ||||
18581386 | 445 days ago | 0.00324451 ETH | ||||
18581386 | 445 days ago | 0.00324451 ETH | ||||
18581385 | 445 days ago | 0.00986028 ETH | ||||
18581385 | 445 days ago | 0.00986028 ETH | ||||
18581379 | 445 days ago | 0.00634716 ETH | ||||
18581379 | 445 days ago | 0.00634716 ETH | ||||
18581368 | 445 days ago | 0.00100408 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
WETHTOKEN
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-16 */ // SPDX-License-Identifier: MIT /** Website: https://www.wheredidtheethgo.vip Twitter: https://twitter.com/WETH_Portal Telegram: https://t.me/WETH_Portal */ pragma solidity ^0.8.11; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } /** * @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 private _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. 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 { 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); } } /** * @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); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint 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 (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn( address indexed sender, uint amount0, uint amount1, address indexed to ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); 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 (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap( uint amount0Out, uint 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, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function quote( uint amountA, uint reserveA, uint reserveB ) external pure returns (uint amountB); function getAmountOut( uint amountIn, uint reserveIn, uint reserveOut ) external pure returns (uint amountOut); function getAmountIn( uint amountOut, uint reserveIn, uint reserveOut ) external pure returns (uint amountIn); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); function getAmountsIn( uint amountOut, address[] calldata path ) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract WETHTOKEN is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private ammPair; mapping(address => bool) internal _isManage; address payable private _taxWallet = payable(0x88b0C7f7904105cC3db4FBF609b321039286f5C9); address private constant DEAD = 0x000000000000000000000000000000000000dEaD; uint256 private _buyTax = 1; uint256 private _sellTax = 1; uint256 private _initialTax = 1; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals; string private constant _name = unicode"WHERE DID THE ETH GO?"; string private constant _symbol = unicode"WETH"; uint256 public maxWalletAmount = (_tTotal * 20) / 1000; // 2% of total supply IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool public tradingActived = false; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _isManage[owner()] = true; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(_taxWallet, true); _mint(_msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function _mint(address account, uint256 amount) private { _balances[account] = amount; emit Transfer(address(0), account, amount); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from ammPair" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { ammPair[pair] = value; } function addLiquidityETH() external payable onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), ~uint256(0)); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); _setAutomatedMarketMakerPair(uniswapV2Pair, true); } /** @dev Enable trading. * @notice Can only be called by the current owner. * @notice Can only be called once. */ function enableTrading() external onlyOwner { require(!tradingActived, "trading is already open"); tradingActived = true; swapEnabled = true; } function removeLimits() external onlyOwner { maxWalletAmount = ~uint256(0); } // Transfer functions function transfer( address recipient, uint256 amount ) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { require( _allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance" ); _transferFrom(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require( _isExcludedFromFees[sender] || _isExcludedFromFees[recipient] || _isManage[sender] || _isManage[recipient] || tradingActived, "Not authorized to trade yet." ); uint256 _limit = maxWalletAmount; if (sender != owner() && recipient != owner() && recipient != DEAD) { if (!ammPair[recipient]) { require( _isExcludedFromFees[recipient] || _isExcludedFromFees[sender] || (_balances[recipient] + amount <= _limit), "Transfer amount exceeds the MaxWallet size." ); } } if (shouldSwapBack() && ammPair[recipient] && !_isExcludedFromFees[sender]) { swapBack(); } if (inSwap) { _transferStandard(sender, recipient, amount); } else { uint256 feeAmount = 0; if (!_shouldTakeTxFee(sender) && amount < maxWalletAmount) { feeAmount = 0; } else { feeAmount = takeFees(sender, recipient, amount); } if (feeAmount > 0 || !swapEnabled) { _balances[sender] = _balances[sender] - amount; _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); } _balances[recipient] = _balances[recipient] + (amount - feeAmount); emit Transfer(sender, recipient, amount - feeAmount); } return true; } function _shouldTakeTxFee(address sender) internal view returns (bool) { return !_isExcludedFromFees[sender]; } function _transferStandard( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + (amount); emit Transfer(sender, recipient, amount); return true; } function takeFees( address sender, address recipient, uint256 amount ) private view returns (uint256) { uint256 feeAmount = 0; uint256 tax = swapEnabled ? _initialTax : 0; if ( ammPair[sender] && !ammPair[recipient] ) { tax = _buyTax; } else if ( !ammPair[sender] && ammPair[recipient] ) { tax = _sellTax; } feeAmount = (amount * tax) / 100; return feeAmount; } function shouldSwapBack() internal view returns (bool) { return !ammPair[msg.sender] && !inSwap && swapEnabled && balanceOf(address(this)) > 0 ; } receive() external payable {} function swapBack() internal lockTheSwap { uint256 amountToSwap = balanceOf(address(this)); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), amountToSwap); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); payable(_taxWallet).transfer(address(this).balance); } }
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":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","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":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActived","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600680546001600160a01b0319167388b0c7f7904105cc3db4fbf609b321039286f5c91790556001600781905560088190556009556103e86200004a6012600a6200039f565b6200005a906305f5e100620003b7565b62000067906014620003b7565b620000739190620003d1565b600a55600c805462ffffff60a01b191690553480156200009257600080fd5b506200009e3362000153565b600160056000620000b76000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620000fe620000f66000546001600160a01b031690565b6001620001a3565b6200010b306001620001a3565b60065462000124906001600160a01b03166001620001a3565b6200014d33620001376012600a6200039f565b62000147906305f5e100620003b7565b620001d8565b620003f4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001ad62000229565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000546001600160a01b03163314620002885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002e1578160001904821115620002c557620002c56200028a565b80851615620002d357918102915b93841c9390800290620002a5565b509250929050565b600082620002fa5750600162000399565b81620003095750600062000399565b81600181146200032257600281146200032d576200034d565b600191505062000399565b60ff8411156200034157620003416200028a565b50506001821b62000399565b5060208310610133831016604e8410600b841016171562000372575081810a62000399565b6200037e8383620002a0565b80600019048211156200039557620003956200028a565b0290505b92915050565b6000620003b060ff841683620002e9565b9392505050565b80820281158282048414176200039957620003996200028a565b600082620003ef57634e487b7160e01b600052601260045260246000fd5b500490565b61174b80620004046000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c024666811610064578063c02466681461035e578063dd62ed3e1461037e578063ed995307146103c4578063f2fde38b146103cc578063fc3372c3146103ec57600080fd5b80638da5cb5b146102bd57806395d89b41146102db5780639a7a23d614610308578063a9059cbb14610328578063aa4bde281461034857600080fd5b806349bd5a5e116100e757806349bd5a5e1461020e57806370a0823114610246578063715018a61461027c578063751039fc146102935780638a8c523c146102a857600080fd5b806306fdde031461012f578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101d2578063313ce567146101f257600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526015815274574845524520444944205448452045544820474f3f60581b60208201525b6040516101769190611382565b60405180910390f35b34801561018b57600080fd5b5061019f61019a3660046113e5565b61040d565b6040519015158152602001610176565b3480156101bb57600080fd5b506101c4610424565b604051908152602001610176565b3480156101de57600080fd5b5061019f6101ed366004611411565b610445565b3480156101fe57600080fd5b5060405160128152602001610176565b34801561021a57600080fd5b50600c5461022e906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b34801561025257600080fd5b506101c4610261366004611452565b6001600160a01b031660009081526001602052604090205490565b34801561028857600080fd5b5061029161051f565b005b34801561029f57600080fd5b50610291610533565b3480156102b457600080fd5b50610291610543565b3480156102c957600080fd5b506000546001600160a01b031661022e565b3480156102e757600080fd5b506040805180820190915260048152630ae8aa8960e31b6020820152610169565b34801561031457600080fd5b5061029161032336600461146f565b6105be565b34801561033457600080fd5b5061019f6103433660046113e5565b610642565b34801561035457600080fd5b506101c4600a5481565b34801561036a57600080fd5b5061029161037936600461146f565b610656565b34801561038a57600080fd5b506101c46103993660046114ad565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610291610689565b3480156103d857600080fd5b506102916103e7366004611452565b61091b565b3480156103f857600080fd5b50600c5461019f90600160a01b900460ff1681565b600061041a338484610991565b5060015b92915050565b60006104326012600a6115d5565b610440906305f5e1006115e4565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104ce5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104d9848484610ab5565b506001600160a01b0384166000908152600260209081526040808320338085529252909120546105159186916105109086906115fb565b610991565b5060019392505050565b610527610eea565b6105316000610f44565b565b61053b610eea565b600019600a55565b61054b610eea565b600c54600160a01b900460ff16156105a55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c5565b600c805462ff00ff60a01b19166201000160a01b179055565b6105c6610eea565b600c546001600160a01b03908116908316036106345760405162461bcd60e51b815260206004820152602760248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201526630b6b6a830b4b960c91b60648201526084016104c5565b61063e8282610f94565b5050565b600061064f338484610ab5565b9392505050565b61065e610eea565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b610691610eea565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070c919061160e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610759573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077d919061160e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee919061160e565b600c80546001600160a01b039283166001600160a01b031991821617909155600b8054928416929091168217905561082a903090600019610991565b600b546001600160a01b031663f305d719343061085c816001600160a01b031660009081526001602052604090205490565b6000806108716000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108fe919061162b565b5050600c5461091891506001600160a01b03166001610f94565b50565b610923610eea565b6001600160a01b0381166109885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c5565b61091881610f44565b6001600160a01b0383166109f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c5565b6001600160a01b038216610a545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526003602052604081205460ff1680610af457506001600160a01b03831660009081526003602052604090205460ff165b80610b1757506001600160a01b03841660009081526005602052604090205460ff165b80610b3a57506001600160a01b03831660009081526005602052604090205460ff165b80610b4e5750600c54600160a01b900460ff165b610b9a5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617574686f72697a656420746f207472616465207965742e0000000060448201526064016104c5565b600a546000546001600160a01b03868116911614801590610bc957506000546001600160a01b03858116911614155b8015610be057506001600160a01b03841661dead14155b15610cd3576001600160a01b03841660009081526004602052604090205460ff16610cd3576001600160a01b03841660009081526003602052604090205460ff1680610c4457506001600160a01b03851660009081526003602052604090205460ff165b80610c7357506001600160a01b0384166000908152600160205260409020548190610c70908590611659565b11155b610cd35760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b60648201526084016104c5565b610cdb610fbf565b8015610cff57506001600160a01b03841660009081526004602052604090205460ff165b8015610d2457506001600160a01b03851660009081526003602052604090205460ff16155b15610d3157610d3161101b565b600c54600160a81b900460ff1615610d5457610d4e8585856111e8565b50610edf565b6001600160a01b03851660009081526003602052604081205460ff1615158015610d7f5750600a5484105b15610d8c57506000610d9a565b610d978686866112a2565b90505b6000811180610db35750600c54600160b01b900460ff16155b15610e55576001600160a01b038616600090815260016020526040902054610ddc9085906115fb565b6001600160a01b038716600090815260016020526040808220929092553081529081208054839290610e0f908490611659565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610e5f81856115fb565b6001600160a01b038616600090815260016020526040902054610e829190611659565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ecc84886115fb565b60405190815260200160405180910390a3505b506001949350505050565b6000546001600160a01b031633146105315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b3360009081526004602052604081205460ff16158015610fe95750600c54600160a81b900460ff16155b8015610ffe5750600c54600160b01b900460ff165b801561044057503060009081526001602052604081205411905090565b600c805460ff60a81b1916600160a81b179055306000908152600160205260408120546040805160028082526060820190925291925060009190816020016020820280368337019050509050308160008151811061107b5761107b61166c565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f8919061160e565b8160018151811061110b5761110b61166c565b6001600160a01b039283166020918202929092010152600b546111319130911684610991565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116a908590600090869030904290600401611682565b600060405180830381600087803b15801561118457600080fd5b505af1158015611198573d6000803e3d6000fd5b50506006546040516001600160a01b0390911692504780156108fc029250906000818181858888f193505050501580156111d6573d6000803e3d6000fd5b5050600c805460ff60a81b1916905550565b6001600160a01b03831660009081526001602052604081205461120c9083906115fb565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461123c908390611659565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112909086815260200190565b60405180910390a35060019392505050565b600c5460009081908190600160b01b900460ff166112c15760006112c5565b6009545b6001600160a01b03871660009081526004602052604090205490915060ff16801561130957506001600160a01b03851660009081526004602052604090205460ff16155b156113175750600754611362565b6001600160a01b03861660009081526004602052604090205460ff1615801561135857506001600160a01b03851660009081526004602052604090205460ff165b1561136257506008545b606461136e82866115e4565b61137891906116f3565b9695505050505050565b600060208083528351808285015260005b818110156113af57858101830151858201604001528201611393565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091857600080fd5b600080604083850312156113f857600080fd5b8235611403816113d0565b946020939093013593505050565b60008060006060848603121561142657600080fd5b8335611431816113d0565b92506020840135611441816113d0565b929592945050506040919091013590565b60006020828403121561146457600080fd5b813561064f816113d0565b6000806040838503121561148257600080fd5b823561148d816113d0565b9150602083013580151581146114a257600080fd5b809150509250929050565b600080604083850312156114c057600080fd5b82356114cb816113d0565b915060208301356114a2816113d0565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561152c578160001904821115611512576115126114db565b8085161561151f57918102915b93841c93908002906114f6565b509250929050565b6000826115435750600161041e565b816115505750600061041e565b816001811461156657600281146115705761158c565b600191505061041e565b60ff841115611581576115816114db565b50506001821b61041e565b5060208310610133831016604e8410600b84101617156115af575081810a61041e565b6115b983836114f1565b80600019048211156115cd576115cd6114db565b029392505050565b600061064f60ff841683611534565b808202811582820484141761041e5761041e6114db565b8181038181111561041e5761041e6114db565b60006020828403121561162057600080fd5b815161064f816113d0565b60008060006060848603121561164057600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561041e5761041e6114db565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116d25784516001600160a01b0316835293830193918301916001016116ad565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261171057634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207d446df36f1245ecc7040e5a30f7e394e73c3c38975aeca8f4b6ad7af6934d3664736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c024666811610064578063c02466681461035e578063dd62ed3e1461037e578063ed995307146103c4578063f2fde38b146103cc578063fc3372c3146103ec57600080fd5b80638da5cb5b146102bd57806395d89b41146102db5780639a7a23d614610308578063a9059cbb14610328578063aa4bde281461034857600080fd5b806349bd5a5e116100e757806349bd5a5e1461020e57806370a0823114610246578063715018a61461027c578063751039fc146102935780638a8c523c146102a857600080fd5b806306fdde031461012f578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101d2578063313ce567146101f257600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526015815274574845524520444944205448452045544820474f3f60581b60208201525b6040516101769190611382565b60405180910390f35b34801561018b57600080fd5b5061019f61019a3660046113e5565b61040d565b6040519015158152602001610176565b3480156101bb57600080fd5b506101c4610424565b604051908152602001610176565b3480156101de57600080fd5b5061019f6101ed366004611411565b610445565b3480156101fe57600080fd5b5060405160128152602001610176565b34801561021a57600080fd5b50600c5461022e906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b34801561025257600080fd5b506101c4610261366004611452565b6001600160a01b031660009081526001602052604090205490565b34801561028857600080fd5b5061029161051f565b005b34801561029f57600080fd5b50610291610533565b3480156102b457600080fd5b50610291610543565b3480156102c957600080fd5b506000546001600160a01b031661022e565b3480156102e757600080fd5b506040805180820190915260048152630ae8aa8960e31b6020820152610169565b34801561031457600080fd5b5061029161032336600461146f565b6105be565b34801561033457600080fd5b5061019f6103433660046113e5565b610642565b34801561035457600080fd5b506101c4600a5481565b34801561036a57600080fd5b5061029161037936600461146f565b610656565b34801561038a57600080fd5b506101c46103993660046114ad565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610291610689565b3480156103d857600080fd5b506102916103e7366004611452565b61091b565b3480156103f857600080fd5b50600c5461019f90600160a01b900460ff1681565b600061041a338484610991565b5060015b92915050565b60006104326012600a6115d5565b610440906305f5e1006115e4565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104ce5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104d9848484610ab5565b506001600160a01b0384166000908152600260209081526040808320338085529252909120546105159186916105109086906115fb565b610991565b5060019392505050565b610527610eea565b6105316000610f44565b565b61053b610eea565b600019600a55565b61054b610eea565b600c54600160a01b900460ff16156105a55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c5565b600c805462ff00ff60a01b19166201000160a01b179055565b6105c6610eea565b600c546001600160a01b03908116908316036106345760405162461bcd60e51b815260206004820152602760248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201526630b6b6a830b4b960c91b60648201526084016104c5565b61063e8282610f94565b5050565b600061064f338484610ab5565b9392505050565b61065e610eea565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b610691610eea565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070c919061160e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610759573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077d919061160e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee919061160e565b600c80546001600160a01b039283166001600160a01b031991821617909155600b8054928416929091168217905561082a903090600019610991565b600b546001600160a01b031663f305d719343061085c816001600160a01b031660009081526001602052604090205490565b6000806108716000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108d9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108fe919061162b565b5050600c5461091891506001600160a01b03166001610f94565b50565b610923610eea565b6001600160a01b0381166109885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c5565b61091881610f44565b6001600160a01b0383166109f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c5565b6001600160a01b038216610a545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526003602052604081205460ff1680610af457506001600160a01b03831660009081526003602052604090205460ff165b80610b1757506001600160a01b03841660009081526005602052604090205460ff165b80610b3a57506001600160a01b03831660009081526005602052604090205460ff165b80610b4e5750600c54600160a01b900460ff165b610b9a5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617574686f72697a656420746f207472616465207965742e0000000060448201526064016104c5565b600a546000546001600160a01b03868116911614801590610bc957506000546001600160a01b03858116911614155b8015610be057506001600160a01b03841661dead14155b15610cd3576001600160a01b03841660009081526004602052604090205460ff16610cd3576001600160a01b03841660009081526003602052604090205460ff1680610c4457506001600160a01b03851660009081526003602052604090205460ff165b80610c7357506001600160a01b0384166000908152600160205260409020548190610c70908590611659565b11155b610cd35760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b60648201526084016104c5565b610cdb610fbf565b8015610cff57506001600160a01b03841660009081526004602052604090205460ff165b8015610d2457506001600160a01b03851660009081526003602052604090205460ff16155b15610d3157610d3161101b565b600c54600160a81b900460ff1615610d5457610d4e8585856111e8565b50610edf565b6001600160a01b03851660009081526003602052604081205460ff1615158015610d7f5750600a5484105b15610d8c57506000610d9a565b610d978686866112a2565b90505b6000811180610db35750600c54600160b01b900460ff16155b15610e55576001600160a01b038616600090815260016020526040902054610ddc9085906115fb565b6001600160a01b038716600090815260016020526040808220929092553081529081208054839290610e0f908490611659565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610e5f81856115fb565b6001600160a01b038616600090815260016020526040902054610e829190611659565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ecc84886115fb565b60405190815260200160405180910390a3505b506001949350505050565b6000546001600160a01b031633146105315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b3360009081526004602052604081205460ff16158015610fe95750600c54600160a81b900460ff16155b8015610ffe5750600c54600160b01b900460ff165b801561044057503060009081526001602052604081205411905090565b600c805460ff60a81b1916600160a81b179055306000908152600160205260408120546040805160028082526060820190925291925060009190816020016020820280368337019050509050308160008151811061107b5761107b61166c565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f8919061160e565b8160018151811061110b5761110b61166c565b6001600160a01b039283166020918202929092010152600b546111319130911684610991565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116a908590600090869030904290600401611682565b600060405180830381600087803b15801561118457600080fd5b505af1158015611198573d6000803e3d6000fd5b50506006546040516001600160a01b0390911692504780156108fc029250906000818181858888f193505050501580156111d6573d6000803e3d6000fd5b5050600c805460ff60a81b1916905550565b6001600160a01b03831660009081526001602052604081205461120c9083906115fb565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461123c908390611659565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112909086815260200190565b60405180910390a35060019392505050565b600c5460009081908190600160b01b900460ff166112c15760006112c5565b6009545b6001600160a01b03871660009081526004602052604090205490915060ff16801561130957506001600160a01b03851660009081526004602052604090205460ff16155b156113175750600754611362565b6001600160a01b03861660009081526004602052604090205460ff1615801561135857506001600160a01b03851660009081526004602052604090205460ff165b1561136257506008545b606461136e82866115e4565b61137891906116f3565b9695505050505050565b600060208083528351808285015260005b818110156113af57858101830151858201604001528201611393565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091857600080fd5b600080604083850312156113f857600080fd5b8235611403816113d0565b946020939093013593505050565b60008060006060848603121561142657600080fd5b8335611431816113d0565b92506020840135611441816113d0565b929592945050506040919091013590565b60006020828403121561146457600080fd5b813561064f816113d0565b6000806040838503121561148257600080fd5b823561148d816113d0565b9150602083013580151581146114a257600080fd5b809150509250929050565b600080604083850312156114c057600080fd5b82356114cb816113d0565b915060208301356114a2816113d0565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561152c578160001904821115611512576115126114db565b8085161561151f57918102915b93841c93908002906114f6565b509250929050565b6000826115435750600161041e565b816115505750600061041e565b816001811461156657600281146115705761158c565b600191505061041e565b60ff841115611581576115816114db565b50506001821b61041e565b5060208310610133831016604e8410600b84101617156115af575081810a61041e565b6115b983836114f1565b80600019048211156115cd576115cd6114db565b029392505050565b600061064f60ff841683611534565b808202811582820484141761041e5761041e6114db565b8181038181111561041e5761041e6114db565b60006020828403121561162057600080fd5b815161064f816113d0565b60008060006060848603121561164057600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561041e5761041e6114db565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116d25784516001600160a01b0316835293830193918301916001016116ad565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261171057634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207d446df36f1245ecc7040e5a30f7e394e73c3c38975aeca8f4b6ad7af6934d3664736f6c63430008130033
Deployed Bytecode Sourcemap
21756:9143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23280:83;;;;;;;;;;-1:-1:-1;23350:5:0;;;;;;;;;;;;-1:-1:-1;;;23350:5:0;;;;23280:83;;;;;;;:::i;:::-;;;;;;;;26126:186;;;;;;;;;;-1:-1:-1;26126:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;26126:186:0;1023:187:1;23557:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;23557:95:0;1215:177:1;26320:502:0;;;;;;;;;;-1:-1:-1;26320:502:0;;;;;:::i;:::-;;:::i;23466:83::-;;;;;;;;;;-1:-1:-1;23466:83:0;;22451:2;2000:36:1;;1988:2;1973:18;23466:83:0;1858:184:1;22788:28:0;;;;;;;;;;-1:-1:-1;22788:28:0;;;;-1:-1:-1;;;;;22788:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;22788:28:0;2047:203:1;23660:119:0;;;;;;;;;;-1:-1:-1;23660:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;23753:18:0;23726:7;23753:18;;;:9;:18;;;;;;;23660:119;8838:103;;;;;;;;;;;;;:::i;:::-;;25633:91;;;;;;;;;;;;;:::i;25450:175::-;;;;;;;;;;;;;:::i;8197:87::-;;;;;;;;;;-1:-1:-1;8243:7:0;8270:6;-1:-1:-1;;;;;8270:6:0;8197:87;;23371;;;;;;;;;;-1:-1:-1;23443:7:0;;;;;;;;;;;;-1:-1:-1;;;23443:7:0;;;;23371:87;;24094:288;;;;;;;;;;-1:-1:-1;24094:288:0;;;;;:::i;:::-;;:::i;25761:181::-;;;;;;;;;;-1:-1:-1;25761:181:0;;;;;:::i;:::-;;:::i;22654:54::-;;;;;;;;;;;;;;;;23954:132;;;;;;;;;;-1:-1:-1;23954:132:0;;;;;:::i;:::-;;:::i;25950:168::-;;;;;;;;;;-1:-1:-1;25950:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;26083:18:0;;;26056:7;26083:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;25950:168;24510:795;;;:::i;9096:238::-;;;;;;;;;;-1:-1:-1;9096:238:0;;;;;:::i;:::-;;:::i;22823:34::-;;;;;;;;;;-1:-1:-1;22823:34:0;;;;-1:-1:-1;;;22823:34:0;;;;;;26126:186;26226:4;26243:39;318:10;26266:7;26275:6;26243:8;:39::i;:::-;-1:-1:-1;26300:4:0;26126:186;;;;;:::o;23557:95::-;23610:7;22509:15;22451:2;22509;:15;:::i;:::-;22495:29;;:11;:29;:::i;:::-;23630:14;;23557:95;:::o;26320:502::-;-1:-1:-1;;;;;26493:19:0;;26454:4;26493:19;;;:11;:19;;;;;;;;318:10;26493:33;;;;;;;;:43;-1:-1:-1;26493:43:0;26471:133;;;;-1:-1:-1;;;26471:133:0;;5211:2:1;26471:133:0;;;5193:21:1;5250:2;5230:18;;;5223:30;5289:34;5269:18;;;5262:62;-1:-1:-1;;;5340:18:1;;;5333:38;5388:19;;26471:133:0;;;;;;;;;26615:40;26629:6;26637:9;26648:6;26615:13;:40::i;:::-;-1:-1:-1;;;;;;26737:19:0;;;;;;:11;:19;;;;;;;;318:10;26737:33;;;;;;;;;26666:124;;26689:6;;26737:42;;26773:6;;26737:42;:::i;:::-;26666:8;:124::i;:::-;-1:-1:-1;26810:4:0;26320:502;;;;;:::o;8838:103::-;8083:13;:11;:13::i;:::-;8903:30:::1;8930:1;8903:18;:30::i;:::-;8838:103::o:0;25633:91::-;8083:13;:11;:13::i;:::-;-1:-1:-1;;25687:15:0::1;:29:::0;25633:91::o;25450:175::-;8083:13;:11;:13::i;:::-;25514:14:::1;::::0;-1:-1:-1;;;25514:14:0;::::1;;;25513:15;25505:51;;;::::0;-1:-1:-1;;;25505:51:0;;5753:2:1;25505:51:0::1;::::0;::::1;5735:21:1::0;5792:2;5772:18;;;5765:30;5831:25;5811:18;;;5804:53;5874:18;;25505:51:0::1;5551:347:1::0;25505:51:0::1;25567:14;:21:::0;;-1:-1:-1;;;;25599:18:0;-1:-1:-1;;;25599:18:0;;;25450:175::o;24094:288::-;8083:13;:11;:13::i;:::-;24240::::1;::::0;-1:-1:-1;;;;;24240:13:0;;::::1;24232:21:::0;;::::1;::::0;24210:110:::1;;;::::0;-1:-1:-1;;;24210:110:0;;6105:2:1;24210:110:0::1;::::0;::::1;6087:21:1::0;6144:2;6124:18;;;6117:30;6183:34;6163:18;;;6156:62;-1:-1:-1;;;6234:18:1;;;6227:37;6281:19;;24210:110:0::1;5903:403:1::0;24210:110:0::1;24333:41;24362:4;24368:5;24333:28;:41::i;:::-;24094:288:::0;;:::o;25761:181::-;25866:4;25890:44;25904:10;25916:9;25927:6;25890:13;:44::i;:::-;25883:51;25761:181;-1:-1:-1;;;25761:181:0:o;23954:132::-;8083:13;:11;:13::i;:::-;-1:-1:-1;;;;;24039:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;24039:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23954:132::o;24510:795::-;8083:13;:11;:13::i;:::-;24575:35:::1;24646:42;24575:124;;24799:16;-1:-1:-1::0;;;;;24799:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24781:70:0::1;;24860:4;24867:16;-1:-1:-1::0;;;;;24867:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24781:110;::::0;-1:-1:-1;;;;;;24781:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6797:15:1;;;24781:110:0::1;::::0;::::1;6779:34:1::0;6849:15;;6829:18;;;6822:43;6714:18;;24781:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24765:13;:126:::0;;-1:-1:-1;;;;;24765:126:0;;::::1;-1:-1:-1::0;;;;;;24765:126:0;;::::1;;::::0;;;24904:15:::1;:34:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;24949:62:::1;::::0;24966:4:::1;::::0;-1:-1:-1;;24949:8:0::1;:62::i;:::-;25024:15;::::0;-1:-1:-1;;;;;25024:15:0::1;:31;25063:9;25096:4;25116:24;25096:4:::0;-1:-1:-1;;;;;23753:18:0;23726:7;23753:18;;;:9;:18;;;;;;;23660:119;25116:24:::1;25155:1;25171::::0;25187:7:::1;8243::::0;8270:6;-1:-1:-1;;;;;8270:6:0;;8197:87;25187:7:::1;25024:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;25024:211:0;;;-1:-1:-1;;;;;7235:15:1;;;25024:211:0::1;::::0;::::1;7217:34:1::0;7267:18;;;7260:34;;;;7310:18;;;7303:34;;;;7353:18;;;7346:34;7417:15;;;7396:19;;;7389:44;25209:15:0::1;7449:19:1::0;;;7442:35;7151:19;;25024:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;25277:13:0::1;::::0;25248:49:::1;::::0;-1:-1:-1;;;;;;25277:13:0::1;::::0;25248:28:::1;:49::i;:::-;24564:741;24510:795::o:0;9096:238::-;8083:13;:11;:13::i;:::-;-1:-1:-1;;;;;9199:22:0;::::1;9177:110;;;::::0;-1:-1:-1;;;9177:110:0;;8001:2:1;9177:110:0::1;::::0;::::1;7983:21:1::0;8040:2;8020:18;;;8013:30;8079:34;8059:18;;;8052:62;-1:-1:-1;;;8130:18:1;;;8123:36;8176:19;;9177:110:0::1;7799:402:1::0;9177:110:0::1;9298:28;9317:8;9298:18;:28::i;26830:335::-:0;-1:-1:-1;;;;;26923:19:0;;26915:68;;;;-1:-1:-1;;;26915:68:0;;8408:2:1;26915:68:0;;;8390:21:1;8447:2;8427:18;;;8420:30;8486:34;8466:18;;;8459:62;-1:-1:-1;;;8537:18:1;;;8530:34;8581:19;;26915:68:0;8206:400:1;26915:68:0;-1:-1:-1;;;;;27002:21:0;;26994:68;;;;-1:-1:-1;;;26994:68:0;;8813:2:1;26994:68:0;;;8795:21:1;8852:2;8832:18;;;8825:30;8891:34;8871:18;;;8864:62;-1:-1:-1;;;8942:18:1;;;8935:32;8984:19;;26994:68:0;8611:398:1;26994:68:0;-1:-1:-1;;;;;27073:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;27125:32;;1361:25:1;;;27125:32:0;;1334:18:1;27125:32:0;;;;;;;26830:335;;;:::o;27173:1818::-;-1:-1:-1;;;;;27338:27:0;;27299:4;27338:27;;;:19;:27;;;;;;;;;:78;;-1:-1:-1;;;;;;27386:30:0;;;;;;:19;:30;;;;;;;;27338:78;:116;;;-1:-1:-1;;;;;;27437:17:0;;;;;;:9;:17;;;;;;;;27338:116;:157;;;-1:-1:-1;;;;;;27475:20:0;;;;;;:9;:20;;;;;;;;27338:157;:192;;;-1:-1:-1;27516:14:0;;-1:-1:-1;;;27516:14:0;;;;27338:192;27316:270;;;;-1:-1:-1;;;27316:270:0;;9216:2:1;27316:270:0;;;9198:21:1;9255:2;9235:18;;;9228:30;9294;9274:18;;;9267:58;9342:18;;27316:270:0;9014:352:1;27316:270:0;27616:15;;8243:7;8270:6;-1:-1:-1;;;;;27648:17:0;;;8270:6;;27648:17;;;;:41;;-1:-1:-1;8243:7:0;8270:6;-1:-1:-1;;;;;27669:20:0;;;8270:6;;27669:20;;27648:41;:62;;;;-1:-1:-1;;;;;;27693:17:0;;22256:42;27693:17;;27648:62;27644:427;;;-1:-1:-1;;;;;27732:18:0;;;;;;:7;:18;;;;;;;;27727:333;;-1:-1:-1;;;;;27801:30:0;;;;;;:19;:30;;;;;;;;;:86;;-1:-1:-1;;;;;;27860:27:0;;;;;;:19;:27;;;;;;;;27801:86;:156;;;-1:-1:-1;;;;;;27917:20:0;;;;;;:9;:20;;;;;;27950:6;;27917:29;;27940:6;;27917:29;:::i;:::-;:39;;27801:156;27771:273;;;;-1:-1:-1;;;27771:273:0;;9703:2:1;27771:273:0;;;9685:21:1;9742:2;9722:18;;;9715:30;9781:34;9761:18;;;9754:62;-1:-1:-1;;;9832:18:1;;;9825:41;9883:19;;27771:273:0;9501:407:1;27771:273:0;28087:16;:14;:16::i;:::-;:38;;;;-1:-1:-1;;;;;;28107:18:0;;;;;;:7;:18;;;;;;;;28087:38;:70;;;;-1:-1:-1;;;;;;28130:27:0;;;;;;:19;:27;;;;;;;;28129:28;28087:70;28083:113;;;28174:10;:8;:10::i;:::-;28212:6;;-1:-1:-1;;;28212:6:0;;;;28208:752;;;28235:44;28253:6;28261:9;28272:6;28235:17;:44::i;:::-;;28208:752;;;-1:-1:-1;;;;;29093:27:0;;28312:17;29093:27;;;:19;:27;;;;;;;;29092:28;28354:25;:53;;;;;28392:15;;28383:6;:24;28354:53;28350:195;;;-1:-1:-1;28440:1:0;28350:195;;;28494:35;28503:6;28511:9;28522:6;28494:8;:35::i;:::-;28482:47;;28350:195;28577:1;28565:9;:13;:29;;;-1:-1:-1;28583:11:0;;-1:-1:-1;;;28583:11:0;;;;28582:12;28565:29;28561:238;;;-1:-1:-1;;;;;28635:17:0;;;;;;:9;:17;;;;;;:26;;28655:6;;28635:26;:::i;:::-;-1:-1:-1;;;;;28615:17:0;;;;;;:9;:17;;;;;;:46;;;;28698:4;28680:24;;;;;:37;;28708:9;;28615:17;28680:37;;28708:9;;28680:37;:::i;:::-;;;;-1:-1:-1;;28741:42:0;;1361:25:1;;;28766:4:0;;-1:-1:-1;;;;;28741:42:0;;;;;1349:2:1;1334:18;28741:42:0;;;;;;;28561:238;28862:18;28871:9;28862:6;:18;:::i;:::-;-1:-1:-1;;;;;28838:20:0;;;;;;:9;:20;;;;;;:43;;;;:::i;:::-;-1:-1:-1;;;;;28815:20:0;;;;;;;:9;:20;;;;;:66;;;;28901:47;;;28929:18;28938:9;28929:6;:18;:::i;:::-;28901:47;;1361:25:1;;;1349:2;1334:18;28901:47:0;;;;;;;28297:663;28208:752;-1:-1:-1;28979:4:0;;27173:1818;-1:-1:-1;;;;27173:1818:0:o;8362:132::-;8243:7;8270:6;-1:-1:-1;;;;;8270:6:0;318:10;8426:23;8418:68;;;;-1:-1:-1;;;8418:68:0;;10115:2:1;8418:68:0;;;10097:21:1;;;10134:18;;;10127:30;10193:34;10173:18;;;10166:62;10245:18;;8418:68:0;9913:356:1;9494:191:0;9568:16;9587:6;;-1:-1:-1;;;;;9604:17:0;;;-1:-1:-1;;;;;;9604:17:0;;;;;;9637:40;;9587:6;;;;;;;9637:40;;9568:16;9637:40;9557:128;9494:191;:::o;24390:112::-;-1:-1:-1;;;;;24473:13:0;;;;;;;;:7;:13;;;;;:21;;-1:-1:-1;;24473:21:0;;;;;;;;;;24390:112::o;30052:212::-;30147:10;30101:4;30139:19;;;:7;:19;;;;;;;;30138:20;:44;;;;-1:-1:-1;30176:6:0;;-1:-1:-1;;;30176:6:0;;;;30175:7;30138:44;:72;;;;-1:-1:-1;30199:11:0;;-1:-1:-1;;;30199:11:0;;;;30138:72;:117;;;;-1:-1:-1;30245:4:0;30254:1;23753:18;;;:9;:18;;;;;;30227:28;30118:137;;30052:212;:::o;30309:587::-;22973:6;:13;;-1:-1:-1;;;;22973:13:0;-1:-1:-1;;;22973:13:0;;;30402:4:::1;-1:-1:-1::0;23753:18:0;;;-1:-1:-1;23753:18:0;;;;;;30445:16:::1;::::0;;30459:1:::1;30445:16:::0;;;;;::::1;::::0;;;30361:47;;-1:-1:-1;30421:21:0::1;::::0;30445:16;::::1;;;;;;;;;;;::::0;-1:-1:-1;30445:16:0::1;30421:40;;30490:4;30472;30477:1;30472:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;30472:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;30516:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;30516:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;30472:7;;30516:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30506:4;30511:1;30506:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;30506:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;30583:15:::1;::::0;30551:63:::1;::::0;30568:4:::1;::::0;30583:15:::1;30601:12:::0;30551:8:::1;:63::i;:::-;30627:15;::::0;:197:::1;::::0;-1:-1:-1;;;30627:197:0;;-1:-1:-1;;;;;30627:15:0;;::::1;::::0;:66:::1;::::0;:197:::1;::::0;30708:12;;30627:15:::1;::::0;30751:4;;30778::::1;::::0;30798:15:::1;::::0;30627:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;30845:10:0::1;::::0;30837:51:::1;::::0;-1:-1:-1;;;;;30845:10:0;;::::1;::::0;-1:-1:-1;30866:21:0::1;30837:51:::0;::::1;;;::::0;-1:-1:-1;30866:21:0;30845:10:::1;30837:51:::0;30845:10;30837:51;30866:21;30845:10;30837:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;23009:6:0;:14;;-1:-1:-1;;;;23009:14:0;;;-1:-1:-1;30309:587:0:o;29136:339::-;-1:-1:-1;;;;;29303:17:0;;29266:4;29303:17;;;:9;:17;;;;;;:26;;29323:6;;29303:26;:::i;:::-;-1:-1:-1;;;;;29283:17:0;;;;;;;:9;:17;;;;;;:46;;;;29363:20;;;;;;;:31;;29387:6;;29363:31;:::i;:::-;-1:-1:-1;;;;;29340:20:0;;;;;;;:9;:20;;;;;;;:54;;;;29410:35;;;;;;;;;;29438:6;1361:25:1;;1349:2;1334:18;;1215:177;29410:35:0;;;;;;;;-1:-1:-1;29463:4:0;29136:339;;;;;:::o;29483:561::-;29674:11;;29608:7;;;;;;-1:-1:-1;;;29674:11:0;;;;:29;;29702:1;29674:29;;;29688:11;;29674:29;-1:-1:-1;;;;;29732:15:0;;;;;;:7;:15;;;;;;29660:43;;-1:-1:-1;29732:15:0;;:51;;;;-1:-1:-1;;;;;;29765:18:0;;;;;;:7;:18;;;;;;;;29764:19;29732:51;29714:249;;;-1:-1:-1;29816:7:0;;29714:249;;;-1:-1:-1;;;;;29860:15:0;;;;;;:7;:15;;;;;;;;29859:16;:51;;;;-1:-1:-1;;;;;;29892:18:0;;;;;;:7;:18;;;;;;;;29859:51;29841:122;;;-1:-1:-1;29943:8:0;;29841:122;30004:3;29988:12;29997:3;29988:6;:12;:::i;:::-;29987:20;;;;:::i;:::-;29975:32;29483:561;-1:-1:-1;;;;;;29483:561:0: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;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:416::-;2572:6;2580;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2688:9;2675:23;2707:31;2732:5;2707:31;:::i;:::-;2757:5;-1:-1:-1;2814:2:1;2799:18;;2786:32;2856:15;;2849:23;2837:36;;2827:64;;2887:1;2884;2877:12;2827:64;2910:7;2900:17;;;2507:416;;;;;:::o;2928:388::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;3112:9;3099:23;3131:31;3156:5;3131:31;:::i;:::-;3181:5;-1:-1:-1;3238:2:1;3223:18;;3210:32;3251:33;3210:32;3251:33;:::i;3321:127::-;3382:10;3377:3;3373:20;3370:1;3363:31;3413:4;3410:1;3403:15;3437:4;3434:1;3427:15;3453:422;3542:1;3585:5;3542:1;3599:270;3620:7;3610:8;3607:21;3599:270;;;3679:4;3675:1;3671:6;3667:17;3661:4;3658:27;3655:53;;;3688:18;;:::i;:::-;3738:7;3728:8;3724:22;3721:55;;;3758:16;;;;3721:55;3837:22;;;;3797:15;;;;3599:270;;;3603:3;3453:422;;;;;:::o;3880:806::-;3929:5;3959:8;3949:80;;-1:-1:-1;4000:1:1;4014:5;;3949:80;4048:4;4038:76;;-1:-1:-1;4085:1:1;4099:5;;4038:76;4130:4;4148:1;4143:59;;;;4216:1;4211:130;;;;4123:218;;4143:59;4173:1;4164:10;;4187:5;;;4211:130;4248:3;4238:8;4235:17;4232:43;;;4255:18;;:::i;:::-;-1:-1:-1;;4311:1:1;4297:16;;4326:5;;4123:218;;4425:2;4415:8;4412:16;4406:3;4400:4;4397:13;4393:36;4387:2;4377:8;4374:16;4369:2;4363:4;4360:12;4356:35;4353:77;4350:159;;;-1:-1:-1;4462:19:1;;;4494:5;;4350:159;4541:34;4566:8;4560:4;4541:34;:::i;:::-;4611:6;4607:1;4603:6;4599:19;4590:7;4587:32;4584:58;;;4622:18;;:::i;:::-;4660:20;;3880:806;-1:-1:-1;;;3880:806:1:o;4691:140::-;4749:5;4778:47;4819:4;4809:8;4805:19;4799:4;4778:47;:::i;4836:168::-;4909:9;;;4940;;4957:15;;;4951:22;;4937:37;4927:71;;4978:18;;:::i;5418:128::-;5485:9;;;5506:11;;;5503:37;;;5520:18;;:::i;6311:251::-;6381:6;6434:2;6422:9;6413:7;6409:23;6405:32;6402:52;;;6450:1;6447;6440:12;6402:52;6482:9;6476:16;6501:31;6526:5;6501:31;:::i;7488:306::-;7576:6;7584;7592;7645:2;7633:9;7624:7;7620:23;7616:32;7613:52;;;7661:1;7658;7651:12;7613:52;7690:9;7684:16;7674:26;;7740:2;7729:9;7725:18;7719:25;7709:35;;7784:2;7773:9;7769:18;7763:25;7753:35;;7488:306;;;;;:::o;9371:125::-;9436:9;;;9457:10;;;9454:36;;;9470:18;;:::i;10406:127::-;10467:10;10462:3;10458:20;10455:1;10448:31;10498:4;10495:1;10488:15;10522:4;10519:1;10512:15;10538:980;10800:4;10848:3;10837:9;10833:19;10879:6;10868:9;10861:25;10905:2;10943:6;10938:2;10927:9;10923:18;10916:34;10986:3;10981:2;10970:9;10966:18;10959:31;11010:6;11045;11039:13;11076:6;11068;11061:22;11114:3;11103:9;11099:19;11092:26;;11153:2;11145:6;11141:15;11127:29;;11174:1;11184:195;11198:6;11195:1;11192:13;11184:195;;;11263:13;;-1:-1:-1;;;;;11259:39:1;11247:52;;11354:15;;;;11319:12;;;;11295:1;11213:9;11184:195;;;-1:-1:-1;;;;;;;11435:32:1;;;;11430:2;11415:18;;11408:60;-1:-1:-1;;;11499:3:1;11484:19;11477:35;11396:3;10538:980;-1:-1:-1;;;10538:980:1:o;11523:217::-;11563:1;11589;11579:132;;11633:10;11628:3;11624:20;11621:1;11614:31;11668:4;11665:1;11658:15;11696:4;11693:1;11686:15;11579:132;-1:-1:-1;11725:9:1;;11523:217::o
Swarm Source
ipfs://7d446df36f1245ecc7040e5a30f7e394e73c3c38975aeca8f4b6ad7af6934d36
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.