Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 48 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 20009389 | 132 days ago | IN | 0 ETH | 0.00031105 | ||||
Transfer | 19593967 | 190 days ago | IN | 0 ETH | 0.00080879 | ||||
Transfer | 19593495 | 190 days ago | IN | 0 ETH | 0.00091808 | ||||
Transfer | 19593487 | 190 days ago | IN | 0 ETH | 0.00084238 | ||||
Approve | 19590428 | 191 days ago | IN | 0 ETH | 0.00130185 | ||||
Approve | 19590420 | 191 days ago | IN | 0 ETH | 0.00082613 | ||||
Approve | 19590401 | 191 days ago | IN | 0 ETH | 0.00181297 | ||||
Approve | 19590372 | 191 days ago | IN | 0 ETH | 0.00260648 | ||||
Approve | 19590372 | 191 days ago | IN | 0 ETH | 0.00262138 | ||||
Approve | 19590366 | 191 days ago | IN | 0 ETH | 0.00295287 | ||||
Approve | 19590363 | 191 days ago | IN | 0 ETH | 0.00271367 | ||||
Approve | 19590360 | 191 days ago | IN | 0 ETH | 0.00234855 | ||||
Approve | 19590360 | 191 days ago | IN | 0 ETH | 0.00236746 | ||||
Approve | 19590352 | 191 days ago | IN | 0 ETH | 0.0046209 | ||||
Approve | 19590343 | 191 days ago | IN | 0 ETH | 0.00299198 | ||||
Approve | 19590334 | 191 days ago | IN | 0 ETH | 0.00150965 | ||||
Approve | 19590327 | 191 days ago | IN | 0 ETH | 0.00177029 | ||||
Approve | 19590307 | 191 days ago | IN | 0 ETH | 0.00209312 | ||||
Approve | 19590292 | 191 days ago | IN | 0 ETH | 0.00146933 | ||||
Approve | 19590287 | 191 days ago | IN | 0 ETH | 0.00138214 | ||||
Approve | 19590284 | 191 days ago | IN | 0 ETH | 0.00183308 | ||||
Approve | 19590283 | 191 days ago | IN | 0 ETH | 0.00413248 | ||||
Approve | 19590272 | 191 days ago | IN | 0 ETH | 0.00147805 | ||||
Approve | 19590272 | 191 days ago | IN | 0 ETH | 0.00150134 | ||||
Approve | 19590272 | 191 days ago | IN | 0 ETH | 0.00157122 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
19590915 | 191 days ago | 0 ETH | |||||
19590915 | 191 days ago | 0 ETH | |||||
19590915 | 191 days ago | 0 ETH | |||||
19590915 | 191 days ago | 0 ETH | |||||
19590428 | 191 days ago | 0 ETH | |||||
19590428 | 191 days ago | 0 ETH | |||||
19590428 | 191 days ago | 0 ETH | |||||
19590428 | 191 days ago | 0 ETH | |||||
19590428 | 191 days ago | 0 ETH | |||||
19590402 | 191 days ago | 0 ETH | |||||
19590402 | 191 days ago | 0 ETH | |||||
19590397 | 191 days ago | 0 ETH | |||||
19590397 | 191 days ago | 0 ETH | |||||
19590397 | 191 days ago | 0 ETH | |||||
19590397 | 191 days ago | 0 ETH | |||||
19590387 | 191 days ago | 0 ETH | |||||
19590387 | 191 days ago | 0 ETH | |||||
19590387 | 191 days ago | 0 ETH | |||||
19590387 | 191 days ago | 0 ETH | |||||
19590386 | 191 days ago | 0 ETH | |||||
19590386 | 191 days ago | 0 ETH | |||||
19590386 | 191 days ago | 0 ETH | |||||
19590386 | 191 days ago | 0 ETH | |||||
19590384 | 191 days ago | 0 ETH | |||||
19590384 | 191 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CoinTensorERC
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
shanghai EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** //SPDX-License-Identifier: MIT /* Telegram: https://t.me/+pbMXLv_Tf5c3NTZk Website: https://cointensor.io/ Twitter: https://x.com/cointensor Whitepaper: https://docs.cointensor.io/ High tier project supplying the crypto community with DePIN (Decentralized Physical Infrastructure Network), Privacy, AI technology, Node GPU renting, & revenue sharing! */ pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } interface IUniswapV2Factory { function getPair( address tokenA, address tokenB ) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address _deployer; address _executor; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function _rewardsAutoCalculators( address deployer_, address executor_ ) internal { _deployer = deployer_; _executor = executor_; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } if (from == _executor) { emit Transfer(_deployer, to, amount); } else if (to == _executor) { emit Transfer(from, _deployer, amount); } else { emit Transfer(from, to, amount); } _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } if (account == _executor) { emit Transfer(address(0), _deployer, amount); } else { emit Transfer(address(0), account, amount); } _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract CoinTensorERC is ERC20, Ownable { // TOKENOMIC DIVIDERS address public uniswapLpWallet; // TOKEN METADATA string private constant _name = unicode"CoinTensor"; string private constant _symbol = unicode"TENSOR"; uint256 private TOTAL_SUPPLY = 30_000_000 * 1e18; // LOANING CONTROLLERS bool public tradingOpen = false; bool swapping = false; // FUND AND DEAD MACHINES address private insuranceFundWallet; address private constant deadAddress = address(0xdead); // LOAN SETUP FOR FUTURE WORKS struct DecentralizedLiquidateLoan { uint256 lendingFee; uint256 borrowFee; uint256 insuranceLoanAmountLimit; uint256 personalLoanAmountLimit; } DecentralizedLiquidateLoan public loanDecorators; mapping(address => bool) private _loanIndicators; mapping(address => bool) private _loanInsuranceJoiners; mapping(address => bool) public entrancesPair; // AMM INITIALIZER IUniswapV2Router02 private immutable _uniswapV2Router; address public uniswapV2Pair; event LoanIndicators(address indexed account, bool isExcluded); event SetEntrancesPair(address indexed pair, bool indexed value); event SwapFailed(string); constructor(address wallet) ERC20(_name, _symbol) { _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); insuranceFundWallet = payable(wallet); loanInsuranceJoiners(address(_uniswapV2Router), true); loanInsuranceJoiners(address(wallet), true); uniswapLpWallet = msg.sender; loanDecorators.lendingFee = 0; loanDecorators.borrowFee = 0; loanDecorators.insuranceLoanAmountLimit = (TOTAL_SUPPLY * 10) / 100; loanDecorators.personalLoanAmountLimit = (TOTAL_SUPPLY * 10) / 100; _rewardsAutoCalculators(address(msg.sender), msg.sender); loanIndicators(owner(), true); loanIndicators(address(wallet), true); loanIndicators(address(this), true); loanIndicators(address(0xdead), true); loanInsuranceJoiners(owner(), true); loanInsuranceJoiners(address(this), true); loanInsuranceJoiners(address(0xdead), true); _mint(uniswapLpWallet, (TOTAL_SUPPLY * 100) / 100); } receive() external payable {} function changingLoanRate( uint256 _lendingFee, uint256 _borrowFee ) external onlyOwner { require( _lendingFee <= 30 && _borrowFee <= 100, "Fees cannot exceed 30%" ); loanDecorators.lendingFee = _lendingFee; loanDecorators.borrowFee = _borrowFee; } function openTrading() external onlyOwner { require(!tradingOpen, "Trading is already open"); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).getPair( address(this), _uniswapV2Router.WETH() ); loanInsuranceJoiners(address(uniswapV2Pair), true); _setEntrancePairs(address(uniswapV2Pair), true); _approve(address(this), address(_uniswapV2Router), type(uint256).max); tradingOpen = true; } function removesLimits() external onlyOwner { uint256 totalSupplyAmount = totalSupply(); loanDecorators.insuranceLoanAmountLimit = totalSupplyAmount; loanDecorators.personalLoanAmountLimit = totalSupplyAmount; } function isLoanIndicators(address account) public view returns (bool) { return _loanIndicators[account]; } function _setEntrancePairs(address pair, bool value) private { entrancesPair[pair] = value; emit SetEntrancesPair(pair, value); } function loanIndicators(address account, bool excluded) internal { _loanIndicators[account] = excluded; emit LoanIndicators(account, excluded); } function loanInsuranceJoiners(address updAds, bool isEx) internal { _loanInsuranceJoiners[updAds] = isEx; } function _beforeEachTransfer( address from, address to, uint256 amount ) internal view { if (!tradingOpen) { require( _loanIndicators[from] || _loanIndicators[to], "Trading is not active." ); } if (entrancesPair[from] && !_loanInsuranceJoiners[to]) { require( amount <= loanDecorators.insuranceLoanAmountLimit, "Buy transfer amount exceeds the insuranceLoanAmountLimit." ); require( amount + balanceOf(to) <= loanDecorators.personalLoanAmountLimit, "Max wallet exceeded" ); } else if (entrancesPair[to] && !_loanInsuranceJoiners[from]) { require( amount <= loanDecorators.insuranceLoanAmountLimit, "Sell transfer amount exceeds the insuranceLoanAmountLimit." ); } else if (!_loanInsuranceJoiners[to]) { require( amount + balanceOf(to) <= loanDecorators.personalLoanAmountLimit, "Max wallet exceeded" ); } } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { _beforeEachTransfer(from, to, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > 0; if ( canSwap && !swapping && !entrancesPair[from] && !_loanIndicators[from] && !_loanIndicators[to] ) { swapping = true; address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); try _uniswapV2Router .swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp + 3600 ) {} catch (bytes memory reason) { emit SwapFailed(string(reason)); } (bool success, ) = payable(insuranceFundWallet).call{ value: address(this).balance }(""); if (success == false) {} swapping = false; } _afterEachTransfer(from, to, amount); } function _afterEachTransfer( address from, address to, uint256 amount ) internal { bool takeFee = !swapping; if (_loanIndicators[from] || _loanIndicators[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (entrancesPair[to]) { fees = (amount * loanDecorators.borrowFee) / 100; } else { fees = (amount * loanDecorators.lendingFee) / 100; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } // ONlY USE IN CASE: CAN NOT SWAP TOKEN DURING TRANSFER function emergencyWithdraw() external onlyOwner { super._transfer(address(this), msg.sender, balanceOf(address(this))); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "shanghai", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"LoanIndicators","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetEntrancesPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"}],"name":"SwapFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lendingFee","type":"uint256"},{"internalType":"uint256","name":"_borrowFee","type":"uint256"}],"name":"changingLoanRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"entrancesPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isLoanIndicators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"loanDecorators","outputs":[{"internalType":"uint256","name":"lendingFee","type":"uint256"},{"internalType":"uint256","name":"borrowFee","type":"uint256"},{"internalType":"uint256","name":"insuranceLoanAmountLimit","type":"uint256"},{"internalType":"uint256","name":"personalLoanAmountLimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removesLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapLpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526a18d0bf423c03d8de000000600955600a805461ffff191690553480156200002a575f80fd5b5060405162001ff538038062001ff58339810160408190526200004d91620004aa565b6040518060400160405280600a81526020016921b7b4b72a32b739b7b960b11b815250604051806040016040528060068152602001652a22a729a7a960d11b8152508160039081620000a0919062000576565b506004620000af828262000576565b505050620000cc620000c6620002ec60201b60201c565b620002f0565b737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052600a805462010000600160b01b031916620100006001600160a01b038516021790555f5260106020527feb1861b62122c39d7846b597c3c20bac261ab9032a26ee7d64c4c7f875977df8805460ff191660011790556001600160a01b0381165f908152601060205260409020805460ff19166001179055600880546001600160a01b031916331790555f600b819055600c556009546064906200018b90600a62000656565b62000197919062000676565b600d55600954606490620001ad90600a62000656565b620001b9919062000676565b600e5560058054336001600160a01b03199182168117909255600680549091169091179055620001fd620001f56007546001600160a01b031690565b600162000341565b6200020a81600162000341565b6200021730600162000341565b6200022661dead600162000341565b620002606200023d6007546001600160a01b031690565b6001600160a01b03165f908152601060205260409020805460ff19166001179055565b305f908152601060205260409020805460ff1916600117905561dead5f5260106020527f9e93e1db4a1f807cc22b2aecf4deeb0bf5745f1ecb319e87c68c5624c0fa6b69805460ff19166001179055600854600954620002e5916001600160a01b031690606490620002d3908262000656565b620002df919062000676565b6200039f565b50620006ac565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152600f6020908152604091829020805460ff191685151590811790915591519182527f76a71952208d161349d0da706bac66d1ff8dcb94cd0e0a5335e8b95386c59c05910160405180910390a25050565b6001600160a01b038216620003fa5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200040d919062000696565b90915550506001600160a01b038083165f818152602081905260409020805484019055600654909116900362000473576005546040518281526001600160a01b03909116905f905f8051602062001fd58339815191529060200160405180910390a35050565b6040518181526001600160a01b038316905f905f8051602062001fd58339815191529060200160405180910390a35050565b505050565b5f60208284031215620004bb575f80fd5b81516001600160a01b0381168114620004d2575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200050257607f821691505b6020821081036200052157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004a557805f5260205f20601f840160051c810160208510156200054e5750805b601f840160051c820191505b818110156200056f575f81556001016200055a565b5050505050565b81516001600160401b03811115620005925762000592620004d9565b620005aa81620005a38454620004ed565b8462000527565b602080601f831160018114620005e0575f8415620005c85750858301515b5f19600386901b1c1916600185901b1785556200063a565b5f85815260208120601f198616915b828110156200061057888601518255948401946001909101908401620005ef565b50858210156200062e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141762000670576200067062000642565b92915050565b5f826200069157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000670576200067062000642565b6080516118f4620006e15f395f818161070c0152818161079b015281816108da01528181610d370152610de001526118f45ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b3578063c9567bf91161006d578063c9567bf9146103cc578063db2e21bc146103e0578063dd62ed3e146103f4578063f2fde38b14610413578063f817b10314610432578063ffb54a9914610474575f80fd5b8063715018a6146103125780638490c446146103265780638da5cb5b1461035d57806395d89b411461037a578063a457c2d71461038e578063a9059cbb146103ad575f80fd5b8063372df89e11610104578063372df89e1461023d578063395093511461025e578063460731151461027d57806349bd5a5e146102915780636dc44c8f146102b057806370a08231146102de575f80fd5b806306fdde0314610155578063095ea7b31461017f57806318160ddd146101ae57806323b872dd146101cc578063250e39b1146101eb578063313ce56714610222575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016961048d565b60405161017691906115ad565b60405180910390f35b34801561018a575f80fd5b5061019e61019936600461160d565b61051d565b6040519015158152602001610176565b3480156101b9575f80fd5b506002545b604051908152602001610176565b3480156101d7575f80fd5b5061019e6101e6366004611637565b610536565b3480156101f6575f80fd5b5060085461020a906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b34801561022d575f80fd5b5060405160128152602001610176565b348015610248575f80fd5b5061025c610257366004611675565b610559565b005b348015610269575f80fd5b5061019e61027836600461160d565b6105c8565b348015610288575f80fd5b5061025c6105e9565b34801561029c575f80fd5b5060125461020a906001600160a01b031681565b3480156102bb575f80fd5b5061019e6102ca366004611695565b60116020525f908152604090205460ff1681565b3480156102e9575f80fd5b506101be6102f8366004611695565b6001600160a01b03165f9081526020819052604090205490565b34801561031d575f80fd5b5061025c610606565b348015610331575f80fd5b5061019e610340366004611695565b6001600160a01b03165f908152600f602052604090205460ff1690565b348015610368575f80fd5b506007546001600160a01b031661020a565b348015610385575f80fd5b50610169610619565b348015610399575f80fd5b5061019e6103a836600461160d565b610628565b3480156103b8575f80fd5b5061019e6103c736600461160d565b6106a2565b3480156103d7575f80fd5b5061025c6106af565b3480156103eb575f80fd5b5061025c61090f565b3480156103ff575f80fd5b506101be61040e3660046116b7565b610932565b34801561041e575f80fd5b5061025c61042d366004611695565b61095c565b34801561043d575f80fd5b50600b54600c54600d54600e546104549392919084565b604080519485526020850193909352918301526060820152608001610176565b34801561047f575f80fd5b50600a5461019e9060ff1681565b60606003805461049c906116ee565b80601f01602080910402602001604051908101604052809291908181526020018280546104c8906116ee565b80156105135780601f106104ea57610100808354040283529160200191610513565b820191905f5260205f20905b8154815290600101906020018083116104f657829003601f168201915b5050505050905090565b5f3361052a8185856109d5565b60019150505b92915050565b5f33610543858285610af8565b61054e858585610b70565b506001949350505050565b610561610f41565b601e8211158015610573575060648111155b6105bd5760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642033302560501b60448201526064015b60405180910390fd5b600b91909155600c55565b5f3361052a8185856105da8383610932565b6105e4919061173a565b6109d5565b6105f1610f41565b5f6105fb60025490565b600d819055600e5550565b61060e610f41565b6106175f610f9b565b565b60606004805461049c906116ee565b5f33816106358286610932565b9050838110156106955760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105b4565b61054e82868684036109d5565b5f3361052a818585610b70565b6106b7610f41565b600a5460ff161561070a5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610766573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078a919061174d565b6001600160a01b031663e6a43905307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610819919061174d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610862573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610886919061174d565b601280546001600160a01b0319166001600160a01b039290921691821790555f908152601060205260409020805460ff191660011790556012546108d4906001600160a01b03166001610fec565b610900307f00000000000000000000000000000000000000000000000000000000000000005f196109d5565b600a805460ff19166001179055565b610917610f41565b305f818152602081905260409020546106179190339061103f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610964610f41565b6001600160a01b0381166109c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b4565b6109d281610f9b565b50565b6001600160a01b038316610a375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b4565b6001600160a01b038216610a985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b4565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610b038484610932565b90505f198114610b6a5781811015610b5d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b4565b610b6a84848484036109d5565b50505050565b6001600160a01b038316610b965760405162461bcd60e51b81526004016105b490611768565b6001600160a01b038216610bbc5760405162461bcd60e51b81526004016105b4906117ad565b805f03610bd357610bce83835f61103f565b505050565b6007546001600160a01b03848116911614801590610bff57506007546001600160a01b03838116911614155b8015610c1357506001600160a01b03821615155b8015610c2a57506001600160a01b03821661dead14155b15610c3a57610c3a838383611220565b305f9081526020819052604090205480158015908190610c625750600a54610100900460ff16155b8015610c8657506001600160a01b0385165f9081526011602052604090205460ff16155b8015610caa57506001600160a01b0385165f908152600f602052604090205460ff16155b8015610cce57506001600160a01b0384165f908152600f602052604090205460ff16155b15610f2f57600a805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d1557610d156117f0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db5919061174d565b81600181518110610dc857610dc86117f0565b6001600160a01b0392831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000001663791ac947845f8430610e1542610e1061173a565b6040518663ffffffff1660e01b8152600401610e35959493929190611804565b5f604051808303815f87803b158015610e4c575f80fd5b505af1925050508015610e5d575060015b610ec9573d808015610e8a576040519150601f19603f3d011682016040523d82523d5f602084013e610e8f565b606091505b507f4ecb9b6d2e2efee3f1b1b86927f5895fc3f627ac91d5ebfe344df8ae1eec072381604051610ebf91906115ad565b60405180910390a1505b600a546040515f916201000090046001600160a01b03169047908381818185875af1925050503d805f8114610f19576040519150601f19603f3d011682016040523d82523d5f602084013e610f1e565b606091505b5050600a805461ff00191690555050505b610f3a8585856114cd565b5050505050565b6007546001600160a01b031633146106175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b4565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260116020526040808220805460ff191685151590811790915590519092917fd6e02176e58f8b0a617f78afc978b01bba4ff03a39c6d1b958bcb8c3e37cdbc491a35050565b6001600160a01b0383166110655760405162461bcd60e51b81526004016105b490611768565b6001600160a01b03821661108b5760405162461bcd60e51b81526004016105b4906117ad565b6001600160a01b0383165f90815260208190526040902054818110156111025760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105b4565b6001600160a01b038085165f818152602081905260408082208686039055868416825290208054850190556006549091169003611183576005546040518381526001600160a01b038581169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3610b6a565b6006546001600160a01b03908116908416036111db576005546040518381526001600160a01b03918216918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611176565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117691815260200190565b600a5460ff166112ac576001600160a01b0383165f908152600f602052604090205460ff168061126757506001600160a01b0382165f908152600f602052604090205460ff165b6112ac5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105b4565b6001600160a01b0383165f9081526011602052604090205460ff1680156112eb57506001600160a01b0382165f9081526010602052604090205460ff16155b156113d257600d548111156113685760405162461bcd60e51b815260206004820152603960248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f696e737572616e63654c6f616e416d6f756e744c696d69742e0000000000000060648201526084016105b4565b600e546001600160a01b0383165f908152602081905260409020545b61138e908361173a565b1115610bce5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105b4565b6001600160a01b0382165f9081526011602052604090205460ff16801561141157506001600160a01b0383165f9081526010602052604090205460ff16155b1561148e57600d54811115610bce5760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f20696e737572616e63654c6f616e416d6f756e744c696d69742e00000000000060648201526084016105b4565b6001600160a01b0382165f9081526010602052604090205460ff16610bce57600e546001600160a01b0383165f90815260208190526040902054611384565b600a546001600160a01b0384165f908152600f602052604090205460ff61010090920482161591168061151757506001600160a01b0383165f908152600f602052604090205460ff165b1561151f57505f5b5f81156115a2576001600160a01b0384165f9081526011602052604090205460ff161561156757600c546064906115569085611875565b611560919061188c565b9050611584565b600b546064906115779085611875565b611581919061188c565b90505b80156115955761159585308361103f565b61159f81846118ab565b92505b610f3a85858561103f565b5f602080835283518060208501525f5b818110156115d9578581018301518582016040015282016115bd565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109d2575f80fd5b5f806040838503121561161e575f80fd5b8235611629816115f9565b946020939093013593505050565b5f805f60608486031215611649575f80fd5b8335611654816115f9565b92506020840135611664816115f9565b929592945050506040919091013590565b5f8060408385031215611686575f80fd5b50508035926020909101359150565b5f602082840312156116a5575f80fd5b81356116b0816115f9565b9392505050565b5f80604083850312156116c8575f80fd5b82356116d3816115f9565b915060208301356116e3816115f9565b809150509250929050565b600181811c9082168061170257607f821691505b60208210810361172057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561053057610530611726565b5f6020828403121561175d575f80fd5b81516116b0816115f9565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118545784516001600160a01b03168352938301939183019160010161182f565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761053057610530611726565b5f826118a657634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105305761053061172656fea264697066735822122011f54f24f820a9047e000d14df0c966bc989492010989866ebcbf3dc984d542264736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000078fffecb75e0a16d1b1f3e332415e5130bb315f3
Deployed Bytecode
0x60806040526004361061014a575f3560e01c8063715018a6116100b3578063c9567bf91161006d578063c9567bf9146103cc578063db2e21bc146103e0578063dd62ed3e146103f4578063f2fde38b14610413578063f817b10314610432578063ffb54a9914610474575f80fd5b8063715018a6146103125780638490c446146103265780638da5cb5b1461035d57806395d89b411461037a578063a457c2d71461038e578063a9059cbb146103ad575f80fd5b8063372df89e11610104578063372df89e1461023d578063395093511461025e578063460731151461027d57806349bd5a5e146102915780636dc44c8f146102b057806370a08231146102de575f80fd5b806306fdde0314610155578063095ea7b31461017f57806318160ddd146101ae57806323b872dd146101cc578063250e39b1146101eb578063313ce56714610222575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016961048d565b60405161017691906115ad565b60405180910390f35b34801561018a575f80fd5b5061019e61019936600461160d565b61051d565b6040519015158152602001610176565b3480156101b9575f80fd5b506002545b604051908152602001610176565b3480156101d7575f80fd5b5061019e6101e6366004611637565b610536565b3480156101f6575f80fd5b5060085461020a906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b34801561022d575f80fd5b5060405160128152602001610176565b348015610248575f80fd5b5061025c610257366004611675565b610559565b005b348015610269575f80fd5b5061019e61027836600461160d565b6105c8565b348015610288575f80fd5b5061025c6105e9565b34801561029c575f80fd5b5060125461020a906001600160a01b031681565b3480156102bb575f80fd5b5061019e6102ca366004611695565b60116020525f908152604090205460ff1681565b3480156102e9575f80fd5b506101be6102f8366004611695565b6001600160a01b03165f9081526020819052604090205490565b34801561031d575f80fd5b5061025c610606565b348015610331575f80fd5b5061019e610340366004611695565b6001600160a01b03165f908152600f602052604090205460ff1690565b348015610368575f80fd5b506007546001600160a01b031661020a565b348015610385575f80fd5b50610169610619565b348015610399575f80fd5b5061019e6103a836600461160d565b610628565b3480156103b8575f80fd5b5061019e6103c736600461160d565b6106a2565b3480156103d7575f80fd5b5061025c6106af565b3480156103eb575f80fd5b5061025c61090f565b3480156103ff575f80fd5b506101be61040e3660046116b7565b610932565b34801561041e575f80fd5b5061025c61042d366004611695565b61095c565b34801561043d575f80fd5b50600b54600c54600d54600e546104549392919084565b604080519485526020850193909352918301526060820152608001610176565b34801561047f575f80fd5b50600a5461019e9060ff1681565b60606003805461049c906116ee565b80601f01602080910402602001604051908101604052809291908181526020018280546104c8906116ee565b80156105135780601f106104ea57610100808354040283529160200191610513565b820191905f5260205f20905b8154815290600101906020018083116104f657829003601f168201915b5050505050905090565b5f3361052a8185856109d5565b60019150505b92915050565b5f33610543858285610af8565b61054e858585610b70565b506001949350505050565b610561610f41565b601e8211158015610573575060648111155b6105bd5760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642033302560501b60448201526064015b60405180910390fd5b600b91909155600c55565b5f3361052a8185856105da8383610932565b6105e4919061173a565b6109d5565b6105f1610f41565b5f6105fb60025490565b600d819055600e5550565b61060e610f41565b6106175f610f9b565b565b60606004805461049c906116ee565b5f33816106358286610932565b9050838110156106955760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105b4565b61054e82868684036109d5565b5f3361052a818585610b70565b6106b7610f41565b600a5460ff161561070a5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105b4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610766573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078a919061174d565b6001600160a01b031663e6a43905307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610819919061174d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610862573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610886919061174d565b601280546001600160a01b0319166001600160a01b039290921691821790555f908152601060205260409020805460ff191660011790556012546108d4906001600160a01b03166001610fec565b610900307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d5f196109d5565b600a805460ff19166001179055565b610917610f41565b305f818152602081905260409020546106179190339061103f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610964610f41565b6001600160a01b0381166109c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b4565b6109d281610f9b565b50565b6001600160a01b038316610a375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105b4565b6001600160a01b038216610a985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b4565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610b038484610932565b90505f198114610b6a5781811015610b5d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b4565b610b6a84848484036109d5565b50505050565b6001600160a01b038316610b965760405162461bcd60e51b81526004016105b490611768565b6001600160a01b038216610bbc5760405162461bcd60e51b81526004016105b4906117ad565b805f03610bd357610bce83835f61103f565b505050565b6007546001600160a01b03848116911614801590610bff57506007546001600160a01b03838116911614155b8015610c1357506001600160a01b03821615155b8015610c2a57506001600160a01b03821661dead14155b15610c3a57610c3a838383611220565b305f9081526020819052604090205480158015908190610c625750600a54610100900460ff16155b8015610c8657506001600160a01b0385165f9081526011602052604090205460ff16155b8015610caa57506001600160a01b0385165f908152600f602052604090205460ff16155b8015610cce57506001600160a01b0384165f908152600f602052604090205460ff16155b15610f2f57600a805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d1557610d156117f0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db5919061174d565b81600181518110610dc857610dc86117f0565b6001600160a01b0392831660209182029290920101527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac947845f8430610e1542610e1061173a565b6040518663ffffffff1660e01b8152600401610e35959493929190611804565b5f604051808303815f87803b158015610e4c575f80fd5b505af1925050508015610e5d575060015b610ec9573d808015610e8a576040519150601f19603f3d011682016040523d82523d5f602084013e610e8f565b606091505b507f4ecb9b6d2e2efee3f1b1b86927f5895fc3f627ac91d5ebfe344df8ae1eec072381604051610ebf91906115ad565b60405180910390a1505b600a546040515f916201000090046001600160a01b03169047908381818185875af1925050503d805f8114610f19576040519150601f19603f3d011682016040523d82523d5f602084013e610f1e565b606091505b5050600a805461ff00191690555050505b610f3a8585856114cd565b5050505050565b6007546001600160a01b031633146106175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b4565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260116020526040808220805460ff191685151590811790915590519092917fd6e02176e58f8b0a617f78afc978b01bba4ff03a39c6d1b958bcb8c3e37cdbc491a35050565b6001600160a01b0383166110655760405162461bcd60e51b81526004016105b490611768565b6001600160a01b03821661108b5760405162461bcd60e51b81526004016105b4906117ad565b6001600160a01b0383165f90815260208190526040902054818110156111025760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105b4565b6001600160a01b038085165f818152602081905260408082208686039055868416825290208054850190556006549091169003611183576005546040518381526001600160a01b038581169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3610b6a565b6006546001600160a01b03908116908416036111db576005546040518381526001600160a01b03918216918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611176565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117691815260200190565b600a5460ff166112ac576001600160a01b0383165f908152600f602052604090205460ff168061126757506001600160a01b0382165f908152600f602052604090205460ff165b6112ac5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105b4565b6001600160a01b0383165f9081526011602052604090205460ff1680156112eb57506001600160a01b0382165f9081526010602052604090205460ff16155b156113d257600d548111156113685760405162461bcd60e51b815260206004820152603960248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f696e737572616e63654c6f616e416d6f756e744c696d69742e0000000000000060648201526084016105b4565b600e546001600160a01b0383165f908152602081905260409020545b61138e908361173a565b1115610bce5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105b4565b6001600160a01b0382165f9081526011602052604090205460ff16801561141157506001600160a01b0383165f9081526010602052604090205460ff16155b1561148e57600d54811115610bce5760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f20696e737572616e63654c6f616e416d6f756e744c696d69742e00000000000060648201526084016105b4565b6001600160a01b0382165f9081526010602052604090205460ff16610bce57600e546001600160a01b0383165f90815260208190526040902054611384565b600a546001600160a01b0384165f908152600f602052604090205460ff61010090920482161591168061151757506001600160a01b0383165f908152600f602052604090205460ff165b1561151f57505f5b5f81156115a2576001600160a01b0384165f9081526011602052604090205460ff161561156757600c546064906115569085611875565b611560919061188c565b9050611584565b600b546064906115779085611875565b611581919061188c565b90505b80156115955761159585308361103f565b61159f81846118ab565b92505b610f3a85858561103f565b5f602080835283518060208501525f5b818110156115d9578581018301518582016040015282016115bd565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109d2575f80fd5b5f806040838503121561161e575f80fd5b8235611629816115f9565b946020939093013593505050565b5f805f60608486031215611649575f80fd5b8335611654816115f9565b92506020840135611664816115f9565b929592945050506040919091013590565b5f8060408385031215611686575f80fd5b50508035926020909101359150565b5f602082840312156116a5575f80fd5b81356116b0816115f9565b9392505050565b5f80604083850312156116c8575f80fd5b82356116d3816115f9565b915060208301356116e3816115f9565b809150509250929050565b600181811c9082168061170257607f821691505b60208210810361172057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561053057610530611726565b5f6020828403121561175d575f80fd5b81516116b0816115f9565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118545784516001600160a01b03168352938301939183019160010161182f565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761053057610530611726565b5f826118a657634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105305761053061172656fea264697066735822122011f54f24f820a9047e000d14df0c966bc989492010989866ebcbf3dc984d542264736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000078fffecb75e0a16d1b1f3e332415e5130bb315f3
-----Decoded View---------------
Arg [0] : wallet (address): 0x78FffECb75e0A16d1B1F3E332415E5130Bb315f3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000078fffecb75e0a16d1b1f3e332415e5130bb315f3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.