Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 32 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20385510 | 156 days ago | IN | 0 ETH | 0.0002346 | ||||
Approve | 20385483 | 156 days ago | IN | 0 ETH | 0.0002711 | ||||
Set Both Fees | 20385483 | 156 days ago | IN | 0 ETH | 0.00019345 | ||||
Set Both Fees | 20385480 | 156 days ago | IN | 0 ETH | 0.00016699 | ||||
Approve | 20385474 | 156 days ago | IN | 0 ETH | 0.000268 | ||||
Approve | 20385474 | 156 days ago | IN | 0 ETH | 0.00033953 | ||||
Approve | 20385473 | 156 days ago | IN | 0 ETH | 0.00033048 | ||||
Approve | 20385473 | 156 days ago | IN | 0 ETH | 0.00038436 | ||||
Set Both Fees | 20385472 | 156 days ago | IN | 0 ETH | 0.00016608 | ||||
Approve | 20385472 | 156 days ago | IN | 0 ETH | 0.00023795 | ||||
Approve | 20385470 | 156 days ago | IN | 0 ETH | 0.00042326 | ||||
Approve | 20385470 | 156 days ago | IN | 0 ETH | 0.00042326 | ||||
Approve | 20385470 | 156 days ago | IN | 0 ETH | 0.00042326 | ||||
Approve | 20385470 | 156 days ago | IN | 0 ETH | 0.00042326 | ||||
Approve | 20385469 | 156 days ago | IN | 0 ETH | 0.00014767 | ||||
Approve | 20385469 | 156 days ago | IN | 0 ETH | 0.00025623 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00025811 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00042113 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00042113 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00042113 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00042113 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00042113 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00074717 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00074717 | ||||
Approve | 20385468 | 156 days ago | IN | 0 ETH | 0.00074717 |
Latest 24 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20385550 | 156 days ago | 0.01375644 ETH | ||||
20385550 | 156 days ago | 0 ETH | ||||
20385550 | 156 days ago | 0.00013756 ETH | ||||
20385550 | 156 days ago | 0.013894 ETH | ||||
20385503 | 156 days ago | 0.01375259 ETH | ||||
20385503 | 156 days ago | 0 ETH | ||||
20385503 | 156 days ago | 0.00013752 ETH | ||||
20385503 | 156 days ago | 0.01389012 ETH | ||||
20385483 | 156 days ago | 0.0138362 ETH | ||||
20385483 | 156 days ago | 0 ETH | ||||
20385483 | 156 days ago | 0.00013836 ETH | ||||
20385483 | 156 days ago | 0.01397456 ETH | ||||
20385483 | 156 days ago | 0.01392057 ETH | ||||
20385483 | 156 days ago | 0 ETH | ||||
20385483 | 156 days ago | 0.0001392 ETH | ||||
20385483 | 156 days ago | 0.01405977 ETH | ||||
20385474 | 156 days ago | 0.01394531 ETH | ||||
20385474 | 156 days ago | 0 ETH | ||||
20385474 | 156 days ago | 0.00013945 ETH | ||||
20385474 | 156 days ago | 0.01408476 ETH | ||||
20385474 | 156 days ago | 0.01403069 ETH | ||||
20385474 | 156 days ago | 0 ETH | ||||
20385474 | 156 days ago | 0.0001403 ETH | ||||
20385474 | 156 days ago | 0.01417099 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FROOTS
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-25 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.25; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: weiValue}(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint256); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to); event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity(address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function removeLiquidity(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapExactETHForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts); function swapTokensForExactETH(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts); function swapETHForExactTokens(uint256 amountOut, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts); function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB); function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountOut); function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external; function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external; } contract FROOTS is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping(address => uint256) private _rOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromLimit; uint256 private _tTotal = 10000 * 10**18; address payable private _marketingAddress = payable(address(0x9CDe39bC68309e4C7CB885cD1b28F24CA2b39c14)); string private _name = "FROOTS"; string private _symbol = "FROOTS"; uint8 private _decimals = 18; struct BuyFee { uint8 liquidity; uint8 marketing; } struct SellFee { uint8 liquidity; uint8 marketing; } BuyFee public buyFee; SellFee public sellFee; uint8 private _liquidityFee; uint8 private _marketingFee; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxTxAmount = _tTotal.div(1000).mul(20); // 2% uint256 private numTokensSellToAddToLiquidity = _tTotal.div(1000).mul(2); //0.2% uint256 public _maxWalletSize = _tTotal.div(1000).mul(20); // 2% event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } bool tradingOpen = false; constructor() { _rOwned[_msgSender()] = _tTotal; buyFee.liquidity = 1; buyFee.marketing = 9; sellFee.liquidity = 1; sellFee.marketing = 9; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromLimit[_marketingAddress] = true; _isExcludedFromLimit[owner()] = true; _isExcludedFromLimit[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _rOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function excludeFromLimit(address account) public onlyOwner { _isExcludedFromLimit[account] = true; } function setBothFees(uint8 buy_liquidity, uint8 buy_marketing, uint8 sell_liquidity, uint8 sell_marketing) external onlyOwner { buyFee.marketing = buy_marketing; buyFee.liquidity = buy_liquidity; sellFee.marketing = sell_marketing; sellFee.liquidity = sell_liquidity; } function setNumTokensSellToAddToLiquidity(uint256 numTokens) external onlyOwner { numTokensSellToAddToLiquidity = numTokens; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } receive() external payable {} function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) { uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tWallet = calculateMarketingFee(tAmount); uint256 tTransferAmount = tAmount.sub(tLiquidity).sub(tWallet); return (tTransferAmount, tLiquidity, tWallet); } function _takeLiquidity(uint256 tLiquidity) private { _rOwned[address(this)] = _rOwned[address(this)].add(tLiquidity); } function _takeWalletFee(uint256 tWallet) private { _rOwned[address(this)] = _rOwned[address(this)].add(tWallet); } function calculateLiquidityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_liquidityFee).div(10**2); } function calculateMarketingFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_marketingFee).div(10**2); } function removeAllFee() private { _liquidityFee = 0; _marketingFee = 0; } function setBuy() private { _liquidityFee = buyFee.liquidity; _marketingFee = buyFee.marketing; } function setSell() private { _liquidityFee = sellFee.liquidity; _marketingFee = sellFee.marketing; } 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 _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) require(tradingOpen, "Trading not yet enabled."); uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if (overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled) { contractTokenBalance = numTokensSellToAddToLiquidity; swapAndLiquify(contractTokenBalance); } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } if (takeFee) { if (!_isExcludedFromLimit[from] && !_isExcludedFromLimit[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if (to != uniswapV2Pair) { require(amount + balanceOf(to) <= _maxWalletSize, "Recipient exceeds max wallet size."); } } } _tokenTransfer(from, to, amount, takeFee); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 denominator = (buyFee.liquidity + sellFee.liquidity + buyFee.marketing + sellFee.marketing) * 2; uint256 tokensToAddLiquidityWith = (tokens * (buyFee.liquidity + sellFee.liquidity)) / denominator; uint256 toSwap = tokens - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForEth(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - (buyFee.liquidity + sellFee.liquidity)); uint256 ethToAddLiquidityWith = unitBalance * (buyFee.liquidity + sellFee.liquidity); if (ethToAddLiquidityWith > 0) { addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * (buyFee.marketing + sellFee.marketing); if (marketingAmt > 0) { payable(_marketingAddress).transfer(marketingAmt); } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, address(this), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if (takeFee) { removeAllFee(); if (sender == uniswapV2Pair) { setBuy(); } if (recipient == uniswapV2Pair) { setSell(); } } _transferStandard(sender, recipient, amount); removeAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tLiquidity, uint256 tWallet) = _getTValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(tAmount); _rOwned[recipient] = _rOwned[recipient].add(tTransferAmount); _takeLiquidity(tLiquidity); _takeWalletFee(tWallet); emit Transfer(sender, recipient, tTransferAmount); } function openTrading(bool _status) external onlyOwner { require(!tradingOpen, "Trading is already open"); tradingOpen = _status; } }
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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"liquidity","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromLimit","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"liquidity","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy_liquidity","type":"uint8"},{"internalType":"uint8","name":"buy_marketing","type":"uint8"},{"internalType":"uint8","name":"sell_liquidity","type":"uint8"},{"internalType":"uint8","name":"sell_marketing","type":"uint8"}],"name":"setBothFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numTokens","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
69021e19e0c9bab2400000600555600680546001600160a01b031916739cde39bc68309e4c7cb885cd1b28f24ca2b39c1417815561010060405260c09081526546524f4f545360d01b60e05260079061005890826105b1565b5060408051808201909152600681526546524f4f545360d01b602082015260089061008390826105b1565b506009805460ff19166012179055600c805463ff000000191663010000001790556005546100c0906014906100ba906103e8610411565b90610461565b600d556005546100d9906002906100ba906103e8610411565b600e556005546100f2906014906100ba906103e8610411565b600f556010805460ff1916905534801561010a575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600554335f9081526001602090815260409182902092909255600a805461090161ffff199182168117909255600b80549091169091179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa1580156101cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f19190610670565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102609190610670565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce9190610670565b6001600160a01b0390811660a0528116608052600160035f6102f75f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003845282812080548616600190811790915560068054841683528483208054881683179055549092168152600493849052918220805490941681179093556103775f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff1995861617905530815260049092529020805490911660011790556103bd3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405161040391815260200190565b60405180910390a35061070d565b5f61045883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506104e460201b60201c565b90505b92915050565b5f825f0361047057505f61045b565b5f61047b8385610696565b90508261048885836106b9565b146104585760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b5f81836105045760405162461bcd60e51b81526004016104db91906106d8565b505f61051084866106b9565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061054157607f821691505b60208210810361055f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156105ac57805f5260205f20601f840160051c8101602085101561058a5750805b601f840160051c820191505b818110156105a9575f8155600101610596565b50505b505050565b81516001600160401b038111156105ca576105ca610519565b6105de816105d8845461052d565b84610565565b602080601f831160018114610611575f84156105fa5750858301515b5f19600386901b1c1916600185901b178555610668565b5f85815260208120601f198616915b8281101561063f57888601518255948401946001909101908401610620565b508582101561065c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215610680575f80fd5b81516001600160a01b0381168114610458575f80fd5b808202811582820484141761045b57634e487b7160e01b5f52601160045260245ffd5b5f826106d357634e487b7160e01b5f52601260045260245ffd5b500490565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a051611ad561076d5f395f818161035e01528181610c2601528181610d7b015281816110a8015261110e01525f81816101fa015281816111e80152818161129f015281816112db0152818161134701526113a20152611ad55ff3fe608060405260043610610164575f3560e01c806349bd5a5e116100cd5780638f9a55c011610087578063a9059cbb11610062578063a9059cbb14610461578063c49b9a8014610480578063dd62ed3e1461049f578063f0f165af146104e3575f80fd5b80638f9a55c01461041957806395d89b411461042e578063a457c2d714610442575f80fd5b806349bd5a5e1461034d5780634a74bb021461038057806370a08231146103a0578063715018a6146103d45780637d1db4a5146103e85780638da5cb5b146103fd575f80fd5b80632a9b80721161011e5780632a9b8072146102715780632b14ca5614610290578063313ce567146102cc57806339509351146102ed5780633a17304a1461030c578063470624021461032b575f80fd5b806306fdde031461016f578063095ea7b3146101995780630bd3a7f9146101c85780631694505e146101e957806318160ddd1461023457806323b872dd14610252575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50610183610502565b60405161019091906116cc565b60405180910390f35b3480156101a4575f80fd5b506101b86101b3366004611718565b610592565b6040519015158152602001610190565b3480156101d3575f80fd5b506101e76101e2366004611742565b6105a8565b005b3480156101f4575f80fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610190565b34801561023f575f80fd5b506005545b604051908152602001610190565b34801561025d575f80fd5b506101b861026c36600461175d565b6105fd565b34801561027c575f80fd5b506101e761028b36600461179b565b610664565b34801561029b575f80fd5b50600b546102b29060ff8082169161010090041682565b6040805160ff938416815292909116602083015201610190565b3480156102d7575f80fd5b5060095460405160ff9091168152602001610190565b3480156102f8575f80fd5b506101b8610307366004611718565b6106f3565b348015610317575f80fd5b506101e76103263660046117cf565b610728565b348015610336575f80fd5b50600a546102b29060ff8082169161010090041682565b348015610358575f80fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038b575f80fd5b50600c546101b8906301000000900460ff1681565b3480156103ab575f80fd5b506102446103ba366004611742565b6001600160a01b03165f9081526001602052604090205490565b3480156103df575f80fd5b506101e7610790565b3480156103f3575f80fd5b50610244600d5481565b348015610408575f80fd5b505f546001600160a01b031661021c565b348015610424575f80fd5b50610244600f5481565b348015610439575f80fd5b50610183610801565b34801561044d575f80fd5b506101b861045c366004611718565b610810565b34801561046c575f80fd5b506101b861047b366004611718565b61085d565b34801561048b575f80fd5b506101e761049a36600461179b565b610869565b3480156104aa575f80fd5b506102446104b9366004611820565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104ee575f80fd5b506101e76104fd366004611857565b6108ea565b6060600780546105119061186e565b80601f016020809104026020016040519081016040528092919081815260200182805461053d9061186e565b80156105885780601f1061055f57610100808354040283529160200191610588565b820191905f5260205f20905b81548152906001019060200180831161056b57829003601f168201915b5050505050905090565b5f61059e338484610918565b5060015b92915050565b5f546001600160a01b031633146105da5760405162461bcd60e51b81526004016105d1906118a6565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f610609848484610a3b565b61065a843361065585604051806060016040528060288152602001611a53602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610e44565b610918565b5060019392505050565b5f546001600160a01b0316331461068d5760405162461bcd60e51b81526004016105d1906118a6565b60105460ff16156106e05760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d1565b6010805460ff1916911515919091179055565b335f8181526002602090815260408083206001600160a01b0387168452909152812054909161059e9185906106559086610e7c565b5f546001600160a01b031633146107515760405162461bcd60e51b81526004016105d1906118a6565b600a805461ffff1990811661010060ff968716810260ff199081169290921797871697909717909255600b805490911692851690950216179116179055565b5f546001600160a01b031633146107b95760405162461bcd60e51b81526004016105d1906118a6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600880546105119061186e565b5f61059e338461065585604051806060016040528060258152602001611a7b60259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610e44565b5f61059e338484610a3b565b5f546001600160a01b031633146108925760405162461bcd60e51b81526004016105d1906118a6565b600c805482151563010000000263ff000000199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906108df90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146109135760405162461bcd60e51b81526004016105d1906118a6565b600e55565b6001600160a01b03831661097a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d1565b6001600160a01b0382166109db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d1565b6001600160a01b038216610b015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d1565b5f8111610b625760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d1565b5f546001600160a01b03848116911614801590610b8c57505f546001600160a01b03838116911614155b15610be35760105460ff16610be35760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016105d1565b305f90815260016020526040902054600d548110610c005750600d545b600e5481108015908190610c1d5750600c5462010000900460ff16155b8015610c5b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015610c705750600c546301000000900460ff165b15610c8357600e549150610c8382610ee1565b6001600160a01b0385165f9081526003602052604090205460019060ff1680610cc357506001600160a01b0385165f9081526003602052604090205460ff165b15610ccb57505f5b8015610e30576001600160a01b0386165f9081526004602052604090205460ff16158015610d1157506001600160a01b0385165f9081526004602052604090205460ff16155b15610e3057600d54841115610d795760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016105d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614610e3057600f546001600160a01b0386165f90815260016020526040902054610dd790866118ef565b1115610e305760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b60648201526084016105d1565b610e3c86868684611090565b505050505050565b5f8184841115610e675760405162461bcd60e51b81526004016105d191906116cc565b505f610e738486611902565b95945050505050565b5f80610e8883856118ef565b905083811015610eda5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d1565b9392505050565b600c805462ff0000191662010000179055600b54600a545f9161010080820460ff90811693918204811692610f1a929082169116611915565b610f249190611915565b610f2e9190611915565b610f3990600261192e565b600b54600a5460ff92831693505f928492610f58929082169116611915565b610f659060ff1685611951565b610f6f9190611968565b90505f610f7c8285611902565b905047610f8882611193565b5f610f938247611902565b600b54600a549192505f91610fae9160ff9081169116611915565b610fbb9060ff1687611902565b610fc59083611968565b600b54600a549192505f91610fe09160ff9081169116611915565b610fed9060ff1683611951565b90508015610fff57610fff8682611341565b600b54600a545f916110209160ff6101009283900481169290910416611915565b60ff1661102e846002611951565b6110389190611951565b90508015611079576006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611077573d5f803e3d5ffd5b505b5050600c805462ff00001916905550505050505050565b8015611172576110a6600c805461ffff19169055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361110c5761110c600a54600c805461010080840460ff90811690910261ffff19909216931692909217919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361117257611172600b54600c805461010080840460ff90811690910261ffff19909216931692909217919091179055565b61117d84848461141e565b61118d600c805461ffff19169055565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106111c6576111c6611987565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611242573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611266919061199b565b8160018151811061127957611279611987565b60200260200101906001600160a01b031690816001600160a01b0316815250506112c4307f000000000000000000000000000000000000000000000000000000000000000084610918565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906113189085905f908690309042906004016119b6565b5f604051808303815f87803b15801561132f575f80fd5b505af1158015610e3c573d5f803e3d5ffd5b61136c307f000000000000000000000000000000000000000000000000000000000000000084610918565b60405163f305d71960e01b81523060048201819052602482018490525f60448301819052606483015260848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156113f2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114179190611a27565b5050505050565b5f805f61142a84611501565b6001600160a01b0389165f908152600160205260409020549295509093509150611454908561153f565b6001600160a01b038088165f9081526001602052604080822093909355908716815220546114829084610e7c565b6001600160a01b0386165f908152600160205260409020556114a382611580565b6114ac81611580565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114f191815260200190565b60405180910390a3505050505050565b5f805f8061150e856115ab565b90505f61151a866115cb565b90505f6115318261152b898661153f565b9061153f565b979296509094509092505050565b5f610eda83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e44565b305f908152600160205260409020546115999082610e7c565b305f9081526001602052604090205550565b600c545f906105a2906064906115c590859060ff166115e6565b90611664565b600c545f906105a2906064906115c5908590610100900460ff165b5f825f036115f557505f6105a2565b5f6116008385611951565b90508261160d8583611968565b14610eda5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d1565b5f610eda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836116c05760405162461bcd60e51b81526004016105d191906116cc565b505f610e738486611968565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611715575f80fd5b50565b5f8060408385031215611729575f80fd5b823561173481611701565b946020939093013593505050565b5f60208284031215611752575f80fd5b8135610eda81611701565b5f805f6060848603121561176f575f80fd5b833561177a81611701565b9250602084013561178a81611701565b929592945050506040919091013590565b5f602082840312156117ab575f80fd5b81358015158114610eda575f80fd5b803560ff811681146117ca575f80fd5b919050565b5f805f80608085870312156117e2575f80fd5b6117eb856117ba565b93506117f9602086016117ba565b9250611807604086016117ba565b9150611815606086016117ba565b905092959194509250565b5f8060408385031215611831575f80fd5b823561183c81611701565b9150602083013561184c81611701565b809150509250929050565b5f60208284031215611867575f80fd5b5035919050565b600181811c9082168061188257607f821691505b6020821081036118a057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105a2576105a26118db565b818103818111156105a2576105a26118db565b60ff81811683821601908111156105a2576105a26118db565b60ff818116838216029081169081811461194a5761194a6118db565b5092915050565b80820281158282048414176105a2576105a26118db565b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119ab575f80fd5b8151610eda81611701565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a065784516001600160a01b0316835293830193918301916001016119e1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611a39575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205cd3324c6398d7a97a635c31bbc26b5ef294205dd7700c50717e8a4b3d137dfd64736f6c63430008190033
Deployed Bytecode
0x608060405260043610610164575f3560e01c806349bd5a5e116100cd5780638f9a55c011610087578063a9059cbb11610062578063a9059cbb14610461578063c49b9a8014610480578063dd62ed3e1461049f578063f0f165af146104e3575f80fd5b80638f9a55c01461041957806395d89b411461042e578063a457c2d714610442575f80fd5b806349bd5a5e1461034d5780634a74bb021461038057806370a08231146103a0578063715018a6146103d45780637d1db4a5146103e85780638da5cb5b146103fd575f80fd5b80632a9b80721161011e5780632a9b8072146102715780632b14ca5614610290578063313ce567146102cc57806339509351146102ed5780633a17304a1461030c578063470624021461032b575f80fd5b806306fdde031461016f578063095ea7b3146101995780630bd3a7f9146101c85780631694505e146101e957806318160ddd1461023457806323b872dd14610252575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50610183610502565b60405161019091906116cc565b60405180910390f35b3480156101a4575f80fd5b506101b86101b3366004611718565b610592565b6040519015158152602001610190565b3480156101d3575f80fd5b506101e76101e2366004611742565b6105a8565b005b3480156101f4575f80fd5b5061021c7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610190565b34801561023f575f80fd5b506005545b604051908152602001610190565b34801561025d575f80fd5b506101b861026c36600461175d565b6105fd565b34801561027c575f80fd5b506101e761028b36600461179b565b610664565b34801561029b575f80fd5b50600b546102b29060ff8082169161010090041682565b6040805160ff938416815292909116602083015201610190565b3480156102d7575f80fd5b5060095460405160ff9091168152602001610190565b3480156102f8575f80fd5b506101b8610307366004611718565b6106f3565b348015610317575f80fd5b506101e76103263660046117cf565b610728565b348015610336575f80fd5b50600a546102b29060ff8082169161010090041682565b348015610358575f80fd5b5061021c7f000000000000000000000000be3a9c89c1dcea4774db19be9f89c3bad72d821081565b34801561038b575f80fd5b50600c546101b8906301000000900460ff1681565b3480156103ab575f80fd5b506102446103ba366004611742565b6001600160a01b03165f9081526001602052604090205490565b3480156103df575f80fd5b506101e7610790565b3480156103f3575f80fd5b50610244600d5481565b348015610408575f80fd5b505f546001600160a01b031661021c565b348015610424575f80fd5b50610244600f5481565b348015610439575f80fd5b50610183610801565b34801561044d575f80fd5b506101b861045c366004611718565b610810565b34801561046c575f80fd5b506101b861047b366004611718565b61085d565b34801561048b575f80fd5b506101e761049a36600461179b565b610869565b3480156104aa575f80fd5b506102446104b9366004611820565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104ee575f80fd5b506101e76104fd366004611857565b6108ea565b6060600780546105119061186e565b80601f016020809104026020016040519081016040528092919081815260200182805461053d9061186e565b80156105885780601f1061055f57610100808354040283529160200191610588565b820191905f5260205f20905b81548152906001019060200180831161056b57829003601f168201915b5050505050905090565b5f61059e338484610918565b5060015b92915050565b5f546001600160a01b031633146105da5760405162461bcd60e51b81526004016105d1906118a6565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f610609848484610a3b565b61065a843361065585604051806060016040528060288152602001611a53602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610e44565b610918565b5060019392505050565b5f546001600160a01b0316331461068d5760405162461bcd60e51b81526004016105d1906118a6565b60105460ff16156106e05760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d1565b6010805460ff1916911515919091179055565b335f8181526002602090815260408083206001600160a01b0387168452909152812054909161059e9185906106559086610e7c565b5f546001600160a01b031633146107515760405162461bcd60e51b81526004016105d1906118a6565b600a805461ffff1990811661010060ff968716810260ff199081169290921797871697909717909255600b805490911692851690950216179116179055565b5f546001600160a01b031633146107b95760405162461bcd60e51b81526004016105d1906118a6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600880546105119061186e565b5f61059e338461065585604051806060016040528060258152602001611a7b60259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610e44565b5f61059e338484610a3b565b5f546001600160a01b031633146108925760405162461bcd60e51b81526004016105d1906118a6565b600c805482151563010000000263ff000000199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906108df90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146109135760405162461bcd60e51b81526004016105d1906118a6565b600e55565b6001600160a01b03831661097a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d1565b6001600160a01b0382166109db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d1565b6001600160a01b038216610b015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d1565b5f8111610b625760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d1565b5f546001600160a01b03848116911614801590610b8c57505f546001600160a01b03838116911614155b15610be35760105460ff16610be35760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016105d1565b305f90815260016020526040902054600d548110610c005750600d545b600e5481108015908190610c1d5750600c5462010000900460ff16155b8015610c5b57507f000000000000000000000000be3a9c89c1dcea4774db19be9f89c3bad72d82106001600160a01b0316856001600160a01b031614155b8015610c705750600c546301000000900460ff165b15610c8357600e549150610c8382610ee1565b6001600160a01b0385165f9081526003602052604090205460019060ff1680610cc357506001600160a01b0385165f9081526003602052604090205460ff165b15610ccb57505f5b8015610e30576001600160a01b0386165f9081526004602052604090205460ff16158015610d1157506001600160a01b0385165f9081526004602052604090205460ff16155b15610e3057600d54841115610d795760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016105d1565b7f000000000000000000000000be3a9c89c1dcea4774db19be9f89c3bad72d82106001600160a01b0316856001600160a01b031614610e3057600f546001600160a01b0386165f90815260016020526040902054610dd790866118ef565b1115610e305760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b60648201526084016105d1565b610e3c86868684611090565b505050505050565b5f8184841115610e675760405162461bcd60e51b81526004016105d191906116cc565b505f610e738486611902565b95945050505050565b5f80610e8883856118ef565b905083811015610eda5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d1565b9392505050565b600c805462ff0000191662010000179055600b54600a545f9161010080820460ff90811693918204811692610f1a929082169116611915565b610f249190611915565b610f2e9190611915565b610f3990600261192e565b600b54600a5460ff92831693505f928492610f58929082169116611915565b610f659060ff1685611951565b610f6f9190611968565b90505f610f7c8285611902565b905047610f8882611193565b5f610f938247611902565b600b54600a549192505f91610fae9160ff9081169116611915565b610fbb9060ff1687611902565b610fc59083611968565b600b54600a549192505f91610fe09160ff9081169116611915565b610fed9060ff1683611951565b90508015610fff57610fff8682611341565b600b54600a545f916110209160ff6101009283900481169290910416611915565b60ff1661102e846002611951565b6110389190611951565b90508015611079576006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611077573d5f803e3d5ffd5b505b5050600c805462ff00001916905550505050505050565b8015611172576110a6600c805461ffff19169055565b7f000000000000000000000000be3a9c89c1dcea4774db19be9f89c3bad72d82106001600160a01b0316846001600160a01b03160361110c5761110c600a54600c805461010080840460ff90811690910261ffff19909216931692909217919091179055565b7f000000000000000000000000be3a9c89c1dcea4774db19be9f89c3bad72d82106001600160a01b0316836001600160a01b03160361117257611172600b54600c805461010080840460ff90811690910261ffff19909216931692909217919091179055565b61117d84848461141e565b61118d600c805461ffff19169055565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106111c6576111c6611987565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611242573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611266919061199b565b8160018151811061127957611279611987565b60200260200101906001600160a01b031690816001600160a01b0316815250506112c4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610918565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906113189085905f908690309042906004016119b6565b5f604051808303815f87803b15801561132f575f80fd5b505af1158015610e3c573d5f803e3d5ffd5b61136c307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610918565b60405163f305d71960e01b81523060048201819052602482018490525f60448301819052606483015260848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156113f2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114179190611a27565b5050505050565b5f805f61142a84611501565b6001600160a01b0389165f908152600160205260409020549295509093509150611454908561153f565b6001600160a01b038088165f9081526001602052604080822093909355908716815220546114829084610e7c565b6001600160a01b0386165f908152600160205260409020556114a382611580565b6114ac81611580565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114f191815260200190565b60405180910390a3505050505050565b5f805f8061150e856115ab565b90505f61151a866115cb565b90505f6115318261152b898661153f565b9061153f565b979296509094509092505050565b5f610eda83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e44565b305f908152600160205260409020546115999082610e7c565b305f9081526001602052604090205550565b600c545f906105a2906064906115c590859060ff166115e6565b90611664565b600c545f906105a2906064906115c5908590610100900460ff165b5f825f036115f557505f6105a2565b5f6116008385611951565b90508261160d8583611968565b14610eda5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d1565b5f610eda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836116c05760405162461bcd60e51b81526004016105d191906116cc565b505f610e738486611968565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611715575f80fd5b50565b5f8060408385031215611729575f80fd5b823561173481611701565b946020939093013593505050565b5f60208284031215611752575f80fd5b8135610eda81611701565b5f805f6060848603121561176f575f80fd5b833561177a81611701565b9250602084013561178a81611701565b929592945050506040919091013590565b5f602082840312156117ab575f80fd5b81358015158114610eda575f80fd5b803560ff811681146117ca575f80fd5b919050565b5f805f80608085870312156117e2575f80fd5b6117eb856117ba565b93506117f9602086016117ba565b9250611807604086016117ba565b9150611815606086016117ba565b905092959194509250565b5f8060408385031215611831575f80fd5b823561183c81611701565b9150602083013561184c81611701565b809150509250929050565b5f60208284031215611867575f80fd5b5035919050565b600181811c9082168061188257607f821691505b6020821081036118a057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105a2576105a26118db565b818103818111156105a2576105a26118db565b60ff81811683821601908111156105a2576105a26118db565b60ff818116838216029081169081811461194a5761194a6118db565b5092915050565b80820281158282048414176105a2576105a26118db565b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119ab575f80fd5b8151610eda81611701565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a065784516001600160a01b0316835293830193918301916001016119e1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611a39575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205cd3324c6398d7a97a635c31bbc26b5ef294205dd7700c50717e8a4b3d137dfd64736f6c63430008190033
Deployed Bytecode Sourcemap
12993:11331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15564:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16395:161;;;;;;;;;;-1:-1:-1;16395:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;16395:161:0;893:187:1;17388:115:0;;;;;;;;;;-1:-1:-1;17388:115:0;;;;;:::i;:::-;;:::i;:::-;;13921:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1528:32:1;;;1510:51;;1498:2;1483:18;13921:51:0;1337:230:1;15841:95:0;;;;;;;;;;-1:-1:-1;15921:7:0;;15841:95;;;1718:25:1;;;1706:2;1691:18;15841:95:0;1572:177:1;16564:313:0;;;;;;;;;;-1:-1:-1;16564:313:0;;;;;:::i;:::-;;:::i;24168:153::-;;;;;;;;;;-1:-1:-1;24168:153:0;;;;;:::i;:::-;;:::i;13820:22::-;;;;;;;;;;-1:-1:-1;13820:22:0;;;;;;;;;;;;;;;;;;;2689:4:1;2677:17;;;2659:36;;2731:17;;;;2726:2;2711:18;;2704:45;2632:18;13820:22:0;2493:262:1;15750:83:0;;;;;;;;;;-1:-1:-1;15816:9:0;;15750:83;;15816:9;;;;2902:36:1;;2890:2;2875:18;15750:83:0;2760:184:1;16885:218:0;;;;;;;;;;-1:-1:-1;16885:218:0;;;;;:::i;:::-;;:::i;17511:312::-;;;;;;;;;;-1:-1:-1;17511:312:0;;;;;:::i;:::-;;:::i;13793:20::-;;;;;;;;;;-1:-1:-1;13793:20:0;;;;;;;;;;;;;;;13979:38;;;;;;;;;;;;;;;14054:40;;;;;;;;;;-1:-1:-1;14054:40:0;;;;;;;;;;;15944:117;;;;;;;;;;-1:-1:-1;15944:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;16037:16:0;16010:7;16037:16;;;:7;:16;;;;;;;15944:117;5364:148;;;;;;;;;;;;;:::i;14103:55::-;;;;;;;;;;;;;;;;5150:79;;;;;;;;;;-1:-1:-1;5188:7:0;5215:6;-1:-1:-1;;;;;5215:6:0;5150:79;;14257:57;;;;;;;;;;;;;;;;15655:87;;;;;;;;;;;;;:::i;17111:269::-;;;;;;;;;;-1:-1:-1;17111:269:0;;;;;:::i;:::-;;:::i;16069:167::-;;;;;;;;;;-1:-1:-1;16069:167:0;;;;;:::i;:::-;;:::i;17979:171::-;;;;;;;;;;-1:-1:-1;17979:171:0;;;;;:::i;:::-;;:::i;16244:143::-;;;;;;;;;;-1:-1:-1;16244:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16352:18:0;;;16325:7;16352:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16244:143;17831:140;;;;;;;;;;-1:-1:-1;17831:140:0;;;;;:::i;:::-;;:::i;15564:83::-;15601:13;15634:5;15627:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15564:83;:::o;16395:161::-;16470:4;16487:39;2346:10;16510:7;16519:6;16487:8;:39::i;:::-;-1:-1:-1;16544:4:0;16395:161;;;;;:::o;17388:115::-;5277:6;;-1:-1:-1;;;;;5277:6:0;2346:10;5277:22;5269:67;;;;-1:-1:-1;;;5269:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;17459:29:0::1;;::::0;;;:20:::1;:29;::::0;;;;:36;;-1:-1:-1;;17459:36:0::1;17491:4;17459:36;::::0;;17388:115::o;16564:313::-;16662:4;16679:36;16689:6;16697:9;16708:6;16679:9;:36::i;:::-;16726:121;16735:6;2346:10;16757:89;16795:6;16757:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16757:19:0;;;;;;:11;:19;;;;;;;;2346:10;16757:33;;;;;;;;;;:37;:89::i;:::-;16726:8;:121::i;:::-;-1:-1:-1;16865:4:0;16564:313;;;;;:::o;24168:153::-;5277:6;;-1:-1:-1;;;;;5277:6:0;2346:10;5277:22;5269:67;;;;-1:-1:-1;;;5269:67:0;;;;;;;:::i;:::-;24242:11:::1;::::0;::::1;;24241:12;24233:48;;;::::0;-1:-1:-1;;;24233:48:0;;5242:2:1;24233:48:0::1;::::0;::::1;5224:21:1::0;5281:2;5261:18;;;5254:30;5320:25;5300:18;;;5293:53;5363:18;;24233:48:0::1;5040:347:1::0;24233:48:0::1;24292:11;:21:::0;;-1:-1:-1;;24292:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24168:153::o;16885:218::-;2346:10;16973:4;17022:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17022:34:0;;;;;;;;;;16973:4;;16990:83;;17013:7;;17022:50;;17061:10;17022:38;:50::i;17511:312::-;5277:6;;-1:-1:-1;;;;;5277:6:0;2346:10;5277:22;5269:67;;;;-1:-1:-1;;;5269:67:0;;;;;;;:::i;:::-;17648:6:::1;:32:::0;;-1:-1:-1;;17691:32:0;;;17648::::1;;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;17691:32:0;;;;;;;;;::::1;::::0;;;::::1;::::0;;;17736:7:::1;:34:::0;;17781;;;17736;;::::1;::::0;;::::1;17781::::0;;;::::1;;::::0;;17511:312::o;5364:148::-;5277:6;;-1:-1:-1;;;;;5277:6:0;2346:10;5277:22;5269:67;;;;-1:-1:-1;;;5269:67:0;;;;;;;:::i;:::-;5471:1:::1;5455:6:::0;;5434:40:::1;::::0;-1:-1:-1;;;;;5455:6:0;;::::1;::::0;5434:40:::1;::::0;5471:1;;5434:40:::1;5502:1;5485:19:::0;;-1:-1:-1;;;;;;5485:19:0::1;::::0;;5364:148::o;15655:87::-;15694:13;15727:7;15720:14;;;;;:::i;17111:269::-;17204:4;17221:129;2346:10;17244:7;17253:96;17292:15;17253:96;;;;;;;;;;;;;;;;;2346:10;17253:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17253:34:0;;;;;;;;;;;;:38;:96::i;16069:167::-;16147:4;16164:42;2346:10;16188:9;16199:6;16164:9;:42::i;17979:171::-;5277:6;;-1:-1:-1;;;;;5277:6:0;2346:10;5277:22;5269:67;;;;-1:-1:-1;;;5269:67:0;;;;;;;:::i;:::-;18056:21:::1;:32:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18056:32:0;;::::1;;::::0;;18104:38:::1;::::0;::::1;::::0;::::1;::::0;18080:8;1058:14:1;1051:22;1033:41;;1021:2;1006:18;;893:187;18104:38:0::1;;;;;;;;17979:171:::0;:::o;17831:140::-;5277:6;;-1:-1:-1;;;;;5277:6:0;2346:10;5277:22;5269:67;;;;-1:-1:-1;;;5269:67:0;;;;;;;:::i;:::-;17922:29:::1;:41:::0;17831:140::o;19491:337::-;-1:-1:-1;;;;;19584:19:0;;19576:68;;;;-1:-1:-1;;;19576:68:0;;5594:2:1;19576:68:0;;;5576:21:1;5633:2;5613:18;;;5606:30;5672:34;5652:18;;;5645:62;-1:-1:-1;;;5723:18:1;;;5716:34;5767:19;;19576:68:0;5392:400:1;19576:68:0;-1:-1:-1;;;;;19663:21:0;;19655:68;;;;-1:-1:-1;;;19655:68:0;;5999:2:1;19655:68:0;;;5981:21:1;6038:2;6018:18;;;6011:30;6077:34;6057:18;;;6050:62;-1:-1:-1;;;6128:18:1;;;6121:32;6170:19;;19655:68:0;5797:398:1;19655:68:0;-1:-1:-1;;;;;19736:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19788:32;;1718:25:1;;;19788:32:0;;1691:18:1;19788:32:0;;;;;;;19491:337;;;:::o;19836:1508::-;-1:-1:-1;;;;;19924:18:0;;19916:68;;;;-1:-1:-1;;;19916:68:0;;6402:2:1;19916:68:0;;;6384:21:1;6441:2;6421:18;;;6414:30;6480:34;6460:18;;;6453:62;-1:-1:-1;;;6531:18:1;;;6524:35;6576:19;;19916:68:0;6200:401:1;19916:68:0;-1:-1:-1;;;;;20003:16:0;;19995:64;;;;-1:-1:-1;;;19995:64:0;;6808:2:1;19995:64:0;;;6790:21:1;6847:2;6827:18;;;6820:30;6886:34;6866:18;;;6859:62;-1:-1:-1;;;6937:18:1;;;6930:33;6980:19;;19995:64:0;6606:399:1;19995:64:0;20087:1;20078:6;:10;20070:64;;;;-1:-1:-1;;;20070:64:0;;7212:2:1;20070:64:0;;;7194:21:1;7251:2;7231:18;;;7224:30;7290:34;7270:18;;;7263:62;-1:-1:-1;;;7341:18:1;;;7334:39;7390:19;;20070:64:0;7010:405:1;20070:64:0;5188:7;5215:6;-1:-1:-1;;;;;20151:15:0;;;5215:6;;20151:15;;;;:32;;-1:-1:-1;5188:7:0;5215:6;-1:-1:-1;;;;;20170:13:0;;;5215:6;;20170:13;;20151:32;20147:86;;;20193:11;;;;20185:48;;;;-1:-1:-1;;;20185:48:0;;7622:2:1;20185:48:0;;;7604:21:1;7661:2;7641:18;;;7634:30;7700:26;7680:18;;;7673:54;7744:18;;20185:48:0;7420:348:1;20185:48:0;20295:4;20246:28;16037:16;;;:7;:16;;;;;;20342:12;;20318:36;;20314:104;;-1:-1:-1;20394:12:0;;20314:104;20481:29;;20457:53;;;;;;;20525:40;;-1:-1:-1;20549:16:0;;;;;;;20548:17;20525:40;:65;;;;;20577:13;-1:-1:-1;;;;;20569:21:0;:4;-1:-1:-1;;;;;20569:21:0;;;20525:65;:90;;;;-1:-1:-1;20594:21:0;;;;;;;20525:90;20521:226;;;20655:29;;20632:52;;20699:36;20714:20;20699:14;:36::i;:::-;-1:-1:-1;;;;;20795:24:0;;20759:12;20795:24;;;:18;:24;;;;;;20774:4;;20795:24;;;:50;;-1:-1:-1;;;;;;20823:22:0;;;;;;:18;:22;;;;;;;;20795:50;20791:98;;;-1:-1:-1;20872:5:0;20791:98;20903:7;20899:384;;;-1:-1:-1;;;;;20932:26:0;;;;;;:20;:26;;;;;;;;20931:27;:56;;;;-1:-1:-1;;;;;;20963:24:0;;;;;;:20;:24;;;;;;;;20962:25;20931:56;20927:345;;;21026:12;;21016:6;:22;;21008:75;;;;-1:-1:-1;;;21008:75:0;;7975:2:1;21008:75:0;;;7957:21:1;8014:2;7994:18;;;7987:30;8053:34;8033:18;;;8026:62;-1:-1:-1;;;8104:18:1;;;8097:38;8152:19;;21008:75:0;7773:404:1;21008:75:0;21112:13;-1:-1:-1;;;;;21106:19:0;:2;-1:-1:-1;;;;;21106:19:0;;21102:155;;21184:14;;-1:-1:-1;;;;;16037:16:0;;16010:7;16037:16;;;:7;:16;;;;;;21158:22;;:6;:22;:::i;:::-;:40;;21150:87;;;;-1:-1:-1;;;21150:87:0;;8646:2:1;21150:87:0;;;8628:21:1;8685:2;8665:18;;;8658:30;8724:34;8704:18;;;8697:62;-1:-1:-1;;;8775:18:1;;;8768:32;8817:19;;21150:87:0;8444:398:1;21150:87:0;21295:41;21310:4;21316:2;21320:6;21328:7;21295:14;:41::i;:::-;19905:1439;;;19836:1508;;;:::o;1109:192::-;1195:7;1231:12;1223:6;;;;1215:29;;;;-1:-1:-1;;;1215:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1255:9:0;1267:5;1271:1;1267;:5;:::i;:::-;1255:17;1109:192;-1:-1:-1;;;;;1109:192:0:o;776:181::-;834:7;;866:5;870:1;866;:5;:::i;:::-;854:17;;895:1;890;:6;;882:46;;;;-1:-1:-1;;;882:46:0;;9182:2:1;882:46:0;;;9164:21:1;9221:2;9201:18;;;9194:30;9260:29;9240:18;;;9233:57;9307:18;;882:46:0;8980:351:1;882:46:0;948:1;776:181;-1:-1:-1;;;776:181:0:o;21352:1052::-;14587:16;:23;;-1:-1:-1;;14587:23:0;;;;;21504:7:::1;:17:::0;21485:6:::1;:16:::0;14587:23;;;21504:17;;::::1;14587:23:::0;21504:17;;::::1;::::0;21485:16;;::::1;::::0;::::1;::::0;21446:36:::1;::::0;21465:17;;::::1;::::0;21446:16:::1;:36;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;21445:81;::::0;21525:1:::1;21445:81;:::i;:::-;21602:7;:17:::0;21583:6:::1;:16:::0;21423:103:::1;::::0;;::::1;::::0;-1:-1:-1;21537:32:0::1;::::0;21423:103;;21583:36:::1;::::0;21602:17;;::::1;::::0;21583:16:::1;:36;:::i;:::-;21573:47;::::0;::::1;;:6:::0;:47:::1;:::i;:::-;21572:63;;;;:::i;:::-;21537:98:::0;-1:-1:-1;21646:14:0::1;21663:33;21537:98:::0;21663:6;:33:::1;:::i;:::-;21646:50:::0;-1:-1:-1;21734:21:0::1;21768:24;21646:50:::0;21768:16:::1;:24::i;:::-;21805:20;21828:38;21852:14:::0;21828:21:::1;:38;:::i;:::-;21949:7;:17:::0;21930:6:::1;:16:::0;21805:61;;-1:-1:-1;21877:19:0::1;::::0;21930:36:::1;::::0;21949:17:::1;::::0;;::::1;::::0;21930:16:::1;:36;:::i;:::-;21915:52;::::0;::::1;;:11:::0;:52:::1;:::i;:::-;21899:69;::::0;:12;:69:::1;:::i;:::-;22045:7;:17:::0;22026:6:::1;:16:::0;21877:91;;-1:-1:-1;21979:29:0::1;::::0;22026:36:::1;::::0;22045:17:::1;::::0;;::::1;::::0;22026:16:::1;:36;:::i;:::-;22011:52;::::0;::::1;;:11:::0;:52:::1;:::i;:::-;21979:84:::0;-1:-1:-1;22080:25:0;;22076:119:::1;;22122:61;22135:24;22161:21;22122:12;:61::i;:::-;22268:7;:17:::0;22249:6:::1;:16:::0;22207:20:::1;::::0;22249:36:::1;::::0;22268:17:::1;;::::0;;;::::1;::::0;::::1;::::0;22249:16;;::::1;;:36;:::i;:::-;22230:56;;:15;:11:::0;22244:1:::1;22230:15;:::i;:::-;:56;;;;:::i;:::-;22207:79:::0;-1:-1:-1;22303:16:0;;22299:98:::1;;22344:17;::::0;22336:49:::1;::::0;-1:-1:-1;;;;;22344:17:0;;::::1;::::0;22336:49;::::1;;;::::0;22372:12;;22344:17:::1;22336:49:::0;22344:17;22336:49;22372:12;22344:17;22336:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22299:98;-1:-1:-1::0;;14633:16:0;:24;;-1:-1:-1;;14633:24:0;;;-1:-1:-1;;;;;;;21352:1052:0:o;23271:429::-;23383:7;23379:230;;;23407:14;19171:13;:17;;-1:-1:-1;;19199:17:0;;;19128:96;23407:14;23450:13;-1:-1:-1;;;;;23440:23:0;:6;-1:-1:-1;;;;;23440:23:0;;23436:72;;23484:8;19285:6;:16;19269:13;:32;;19285:16;19328;;;19285;19328;;;19312:32;;;-1:-1:-1;;19312:32:0;;;19285:16;;19312:32;;;;;;;;;;19232:120;23484:8;23539:13;-1:-1:-1;;;;;23526:26:0;:9;-1:-1:-1;;;;;23526:26:0;;23522:76;;23573:9;19414:7;:17;19398:13;:33;;19414:17;19458;;;19414;19458;;;19442:33;;;-1:-1:-1;;19442:33:0;;;19414:17;;19442:33;;;;;;;;;;19360:123;23573:9;23621:44;23639:6;23647:9;23658:6;23621:17;:44::i;:::-;23678:14;19171:13;:17;;-1:-1:-1;;19199:17:0;;;19128:96;23678:14;23271:429;;;;:::o;22412:475::-;22502:16;;;22516:1;22502:16;;;;;;;;22478:21;;22502:16;;;;;;;;;;-1:-1:-1;22502:16:0;22478:40;;22547:4;22529;22534:1;22529:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22529:23:0;;;-1:-1:-1;;;;;22529:23:0;;;;;22573:15;-1:-1:-1;;;;;22573:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22563:4;22568:1;22563:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;22563:32:0;;;-1:-1:-1;;;;;22563:32:0;;;;;22608:62;22625:4;22640:15;22658:11;22608:8;:62::i;:::-;22683:196;;-1:-1:-1;;;22683:196:0;;-1:-1:-1;;;;;22683:15:0;:66;;;;:196;;22764:11;;22790:1;;22806:4;;22833;;22853:15;;22683:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22895:368;22976:62;22993:4;23008:15;23026:11;22976:8;:62::i;:::-;23051:204;;-1:-1:-1;;;23051:204:0;;23123:4;23051:204;;;11960:34:1;;;12010:18;;;12003:34;;;23169:1:0;12053:18:1;;;12046:34;;;12096:18;;;12089:34;12139:19;;;12132:44;23229:15:0;12192:19:1;;;12185:35;23051:15:0;-1:-1:-1;;;;;23051:31:0;;;;23090:9;;11894:19:1;;23051:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22895:368;;:::o;23708:452::-;23807:23;23832:18;23852:15;23871:20;23883:7;23871:11;:20::i;:::-;-1:-1:-1;;;;;23922:15:0;;;;;;:7;:15;;;;;;23806:85;;-1:-1:-1;23806:85:0;;-1:-1:-1;23806:85:0;-1:-1:-1;23922:28:0;;23942:7;23922:19;:28::i;:::-;-1:-1:-1;;;;;23904:15:0;;;;;;;:7;:15;;;;;;:46;;;;23982:18;;;;;;;:39;;24005:15;23982:22;:39::i;:::-;-1:-1:-1;;;;;23961:18:0;;;;;;:7;:18;;;;;:60;24032:26;24047:10;24032:14;:26::i;:::-;24069:23;24084:7;24069:14;:23::i;:::-;24125:9;-1:-1:-1;;;;;24108:44:0;24117:6;-1:-1:-1;;;;;24108:44:0;;24136:15;24108:44;;;;1718:25:1;;1706:2;1691:18;;1572:177;24108:44:0;;;;;;;;23795:365;;;23708:452;;;:::o;18195:347::-;18255:7;18264;18273;18293:18;18314:30;18336:7;18314:21;:30::i;:::-;18293:51;;18355:15;18373:30;18395:7;18373:21;:30::i;:::-;18355:48;-1:-1:-1;18414:23:0;18440:36;18355:48;18440:23;:7;18452:10;18440:11;:23::i;:::-;:27;;:36::i;:::-;18414:62;18514:10;;-1:-1:-1;18526:7:0;;-1:-1:-1;18195:347:0;;-1:-1:-1;;;18195:347:0:o;965:136::-;1023:7;1050:43;1054:1;1057;1050:43;;;;;;;;;;;;;;;;;:3;:43::i;18550:134::-;18654:4;18638:22;;;;:7;:22;;;;;;:38;;18665:10;18638:26;:38::i;:::-;18629:4;18613:22;;;;:7;:22;;;;;:63;-1:-1:-1;18550:134:0:o;18828:142::-;18937:13;;18898:7;;18925:37;;18956:5;;18925:26;;:7;;18937:13;;18925:11;:26::i;:::-;:30;;:37::i;18978:142::-;19087:13;;19048:7;;19075:37;;19106:5;;19075:26;;:7;;19087:13;;;;;1309:250;1367:7;1391:1;1396;1391:6;1387:47;;-1:-1:-1;1421:1:0;1414:8;;1387:47;1446:9;1458:5;1462:1;1458;:5;:::i;:::-;1446:17;-1:-1:-1;1491:1:0;1482:5;1486:1;1446:17;1482:5;:::i;:::-;:10;1474:56;;;;-1:-1:-1;;;1474:56:0;;12744:2:1;1474:56:0;;;12726:21:1;12783:2;12763:18;;;12756:30;12822:34;12802:18;;;12795:62;-1:-1:-1;;;12873:18:1;;;12866:31;12914:19;;1474:56:0;12542:397:1;1567:132:0;1625:7;1652:39;1656:1;1659;1652:39;;;;;;;;;;;;;;;;;1793:7;1828:12;1821:5;1813:28;;;;-1:-1:-1;;;1813:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1852:9:0;1864:5;1868:1;1864;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:315::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1085:247::-;1144:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;1252:9;1239:23;1271:31;1296:5;1271:31;:::i;1754:456::-;1831:6;1839;1847;1900:2;1888:9;1879:7;1875:23;1871:32;1868:52;;;1916:1;1913;1906:12;1868:52;1955:9;1942:23;1974:31;1999:5;1974:31;:::i;:::-;2024:5;-1:-1:-1;2081:2:1;2066:18;;2053:32;2094:33;2053:32;2094:33;:::i;:::-;1754:456;;2146:7;;-1:-1:-1;;;2200:2:1;2185:18;;;;2172:32;;1754:456::o;2215:273::-;2271:6;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2379:9;2366:23;2432:5;2425:13;2418:21;2411:5;2408:32;2398:60;;2454:1;2451;2444:12;2949:156;3015:20;;3075:4;3064:16;;3054:27;;3044:55;;3095:1;3092;3085:12;3044:55;2949:156;;;:::o;3110:393::-;3188:6;3196;3204;3212;3265:3;3253:9;3244:7;3240:23;3236:33;3233:53;;;3282:1;3279;3272:12;3233:53;3305:27;3322:9;3305:27;:::i;:::-;3295:37;;3351:36;3383:2;3372:9;3368:18;3351:36;:::i;:::-;3341:46;;3406:36;3438:2;3427:9;3423:18;3406:36;:::i;:::-;3396:46;;3461:36;3493:2;3482:9;3478:18;3461:36;:::i;:::-;3451:46;;3110:393;;;;;;;:::o;3716:388::-;3784:6;3792;3845:2;3833:9;3824:7;3820:23;3816:32;3813:52;;;3861:1;3858;3851:12;3813:52;3900:9;3887:23;3919:31;3944:5;3919:31;:::i;:::-;3969:5;-1:-1:-1;4026:2:1;4011:18;;3998:32;4039:33;3998:32;4039:33;:::i;:::-;4091:7;4081:17;;;3716:388;;;;;:::o;4109:180::-;4168:6;4221:2;4209:9;4200:7;4196:23;4192:32;4189:52;;;4237:1;4234;4227:12;4189:52;-1:-1:-1;4260:23:1;;4109:180;-1:-1:-1;4109:180:1:o;4294:380::-;4373:1;4369:12;;;;4416;;;4437:61;;4491:4;4483:6;4479:17;4469:27;;4437:61;4544:2;4536:6;4533:14;4513:18;4510:38;4507:161;;4590:10;4585:3;4581:20;4578:1;4571:31;4625:4;4622:1;4615:15;4653:4;4650:1;4643:15;4507:161;;4294:380;;;:::o;4679:356::-;4881:2;4863:21;;;4900:18;;;4893:30;4959:34;4954:2;4939:18;;4932:62;5026:2;5011:18;;4679:356::o;8182:127::-;8243:10;8238:3;8234:20;8231:1;8224:31;8274:4;8271:1;8264:15;8298:4;8295:1;8288:15;8314:125;8379:9;;;8400:10;;;8397:36;;;8413:18;;:::i;8847:128::-;8914:9;;;8935:11;;;8932:37;;;8949:18;;:::i;9336:148::-;9424:4;9403:12;;;9417;;;9399:31;;9442:13;;9439:39;;;9458:18;;:::i;9489:225::-;9593:4;9572:12;;;9586;;;9568:31;9619:22;;;;9660:24;;;9650:58;;9688:18;;:::i;:::-;9650:58;9489:225;;;;:::o;9719:168::-;9792:9;;;9823;;9840:15;;;9834:22;;9820:37;9810:71;;9861:18;;:::i;9892:217::-;9932:1;9958;9948:132;;10002:10;9997:3;9993:20;9990:1;9983:31;10037:4;10034:1;10027:15;10065:4;10062:1;10055:15;9948:132;-1:-1:-1;10094:9:1;;9892:217::o;10246:127::-;10307:10;10302:3;10298:20;10295:1;10288:31;10338:4;10335:1;10328:15;10362:4;10359:1;10352:15;10378:251;10448:6;10501:2;10489:9;10480:7;10476:23;10472:32;10469:52;;;10517:1;10514;10507:12;10469:52;10549:9;10543:16;10568:31;10593:5;10568:31;:::i;10634:980::-;10896:4;10944:3;10933:9;10929:19;10975:6;10964:9;10957:25;11001:2;11039:6;11034:2;11023:9;11019:18;11012:34;11082:3;11077:2;11066:9;11062:18;11055:31;11106:6;11141;11135:13;11172:6;11164;11157:22;11210:3;11199:9;11195:19;11188:26;;11249:2;11241:6;11237:15;11223:29;;11270:1;11280:195;11294:6;11291:1;11288:13;11280:195;;;11359:13;;-1:-1:-1;;;;;11355:39:1;11343:52;;11450:15;;;;11415:12;;;;11391:1;11309:9;11280:195;;;-1:-1:-1;;;;;;;11531:32:1;;;;11526:2;11511:18;;11504:60;-1:-1:-1;;;11595:3:1;11580:19;11573:35;11492:3;10634:980;-1:-1:-1;;;10634:980:1:o;12231:306::-;12319:6;12327;12335;12388:2;12376:9;12367:7;12363:23;12359:32;12356:52;;;12404:1;12401;12394:12;12356:52;12433:9;12427:16;12417:26;;12483:2;12472:9;12468:18;12462:25;12452:35;;12527:2;12516:9;12512:18;12506:25;12496:35;;12231:306;;;;;:::o
Swarm Source
ipfs://5cd3324c6398d7a97a635c31bbc26b5ef294205dd7700c50717e8a4b3d137dfd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,354.05 | 0.000000032661 | $0.00011 |
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.