Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 FED
Holders
91
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Blockrock
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; 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); } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } contract Blockrock is IERC20, Ownable { string private constant _name = "BlockRock"; string private constant _symbol = "FED"; uint8 private constant _decimals = 18; uint256 private constant _totalSupply = 10_000_000 * 10**_decimals; address private _owner; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _blocked; mapping (address => bool) private isTaxExempt; mapping (address => uint256) private _lastTradeBlock; mapping (address => bool) private isContractExempt; uint256 private tradeCooldown = 1; uint256 public constant maxWalletAmount = 100_000 * 10**_decimals; uint256 private constant contractSwapLimit = 50_000 * 10**_decimals; uint256 private constant contractSwapMax = 2_000_000 * 10**_decimals; struct TradingFees{ uint256 buyTax; uint256 sellTax; } TradingFees public tradingFees = TradingFees(4,6); uint256 public constant sniperTax = 50; IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address private immutable ETH = uniswapRouter.WETH(); address private immutable uniswapPair; address payable private immutable deployerAddress = payable(msg.sender); address payable private constant devWallet = payable(0xd40ABA76d0983dEA3F289cBaD60577Dd12b438e1); address payable private constant fundWallet = payable(0xDDe5275aB429B6741Dd6e28CadD49d9df31227Fa); bool private tradingOpen = false; bool private swapping = false; bool private antiMEV = false; uint256 private startingBlock; uint private preLaunch; modifier swapLock { swapping = true; _; swapping = false; } modifier tradingLock() { require(tradingOpen, "Trading is not open yet."); _; } constructor () { uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH); isContractExempt[address(this)] = true; uint256 deployerTokens = _totalSupply * 75 / 100; uint256 devWalletTokens = _totalSupply - deployerTokens; _balances[msg.sender] = deployerTokens; emit Transfer(address(0), msg.sender, deployerTokens); _balances[devWallet] = devWalletTokens; emit Transfer(address(0), devWallet, devWalletTokens); _owner = msg.sender; } receive() external payable {} function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount); _transfer(sender, recipient, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function _transfer(address from, address to, uint256 amount) tradingLock() private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Token: transfer amount must be greater than zero"); _balances[from] -= amount; if (from != address(this) && from != devWallet && to != devWallet && to != deployerAddress) { if(antiMEV && !isContractExempt[from] && !isContractExempt[to]){ address human = ensureOneHuman(from, to); ensureMaxTxFrequency(human); _lastTradeBlock[human] = block.number; } if (from == uniswapPair && to != address(uniswapRouter)) { require(balanceOf(to) + amount <= maxWalletAmount, "Token: transfer implies violation of max wallet"); } uint256 contractTokenBalance = balanceOf(address(this)); if (shouldSwapback(from, contractTokenBalance)) swapback(contractTokenBalance); uint256 taxedTokens = takeFee(from, amount); if(taxedTokens > 0){ amount -= taxedTokens; _balances[address(this)] += taxedTokens; emit Transfer(from, address(this), taxedTokens); } } _balances[to] += amount; emit Transfer(from, to, amount); } function swapback(uint256 tokenAmount) private swapLock { tokenAmount = getSwapAmount(tokenAmount); if(allowance(address(this), address(uniswapRouter)) < tokenAmount) { _approve(address(this), address(uniswapRouter), _totalSupply); } address[] memory path = new address[](2); path[0] = address(this); path[1] = ETH; uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { uint256 devShare = contractETHBalance * 25 / 100; uint256 fundShare = contractETHBalance - devShare; devWallet.transfer(devShare); fundWallet.transfer(fundShare); } } function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool shouldSwap) { shouldSwap = !swapping && from != uniswapPair && tokenAmount > contractSwapLimit && 1 + startingBlock <= block.number; } function getSwapAmount(uint256 tokenAmount) private pure returns (uint256 swapAmount) { swapAmount = tokenAmount > contractSwapMax ? contractSwapMax : contractSwapLimit; } function takeFee(address from, uint256 amount) private view returns (uint256 feeAmount) { if (isTaxExempt[from]) { return 0; // No fee charged for tax-exempt addresses } // Continue with the existing fee calculation if (_blocked[from] || block.number <= startingBlock) { feeAmount = amount * sniperTax / 100; } else { feeAmount = amount * (from == uniswapPair ? tradingFees.buyTax : tradingFees.sellTax) / 100; } } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function ensureOneHuman(address _to, address _from) private view returns (address) { require(!isContract(_to) || !isContract(_from)); if (isContract(_to)) return _from; else return _to; } function setTaxExempt(address account, bool value) external onlyOwner { isTaxExempt[account] = value; } function ensureMaxTxFrequency(address addr) view private { bool isAllowed = _lastTradeBlock[addr] == 0 || ((_lastTradeBlock[addr] + tradeCooldown) < (block.number + 1)); require(isAllowed, "Max tx frequency exceeded!"); } function toggleAntiMEV(bool toggle) external onlyOwner { require(msg.sender == deployerAddress); antiMEV = toggle; } function setTradeCooldown(uint256 newTradeCooldown) external onlyOwner { require(msg.sender == deployerAddress); require(newTradeCooldown > 0 && newTradeCooldown < 4, "Token: only trade cooldown values in range (0,4) permissible"); tradeCooldown = newTradeCooldown; } function manualSwapback(uint256 percent) external onlyOwner { require(msg.sender == deployerAddress); require(0 < percent && percent <= 100, "Token: only percent values in range (0,100] permissible"); uint256 tokensToSwap = percent * balanceOf(address(this)) / 100; swapback(tokensToSwap); } function setFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner { require(msg.sender == deployerAddress); require(newBuyTax <= tradingFees.buyTax, "Token: only fee reduction permitted"); require(newSellTax <= tradingFees.sellTax, "Token: only fee reduction permitted"); tradingFees.buyTax = newBuyTax; tradingFees.sellTax = newSellTax; } function setContractExempt(address account, bool value) external onlyOwner { require(account != address(this)); isContractExempt[account] = value; } function setBots(address[] calldata bots, bool shouldBlock) external onlyOwner { for (uint i = 0; i < bots.length; i++) { require(bots[i] != uniswapPair && bots[i] != address(uniswapRouter) && bots[i] != address(this)); _blocked[bots[i]] = shouldBlock; } } function initialize() external onlyOwner { require(preLaunch++<2); } function modifyParameters(bool[] calldata param, uint256 nrBlocks) external onlyOwner { assert(preLaunch<2&&preLaunch+1>=2); preLaunch++;param; startingBlock += nrBlocks; } function toggleTrading(bool _status) external onlyOwner { tradingOpen = _status; } }
{ "optimizer": { "enabled": true, "runs": 1000 }, "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":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool[]","name":"param","type":"bool[]"},{"internalType":"uint256","name":"nrBlocks","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setContractExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setTaxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTradeCooldown","type":"uint256"}],"name":"setTradeCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"toggle","type":"bool"}],"name":"toggleAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"toggleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingFees","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60016008556101206040819052600460e081905260066101008190526009829055600a556315ab88c960e31b8252737a250d5630b4cf539739df2c5dacb4c659f2488d9163ad5c4648916101249160209181865afa15801562000066573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008c919062000333565b6001600160a01b03166080523360c052600b805462ffffff19169055348015620000b557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000170919062000333565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000333565b6001600160a01b031660a052306000908152600760205260408120805460ff1916600117905560646200021e6012600a6200047a565b6200022d90629896806200048b565b6200023a90604b6200048b565b620002469190620004a5565b9050600081620002596012600a6200047a565b6200026890629896806200048b565b620002749190620004c8565b33600081815260026020526040808220869055519293509091600080516020620026a683398151915290620002ac9086815260200190565b60405180910390a373d40aba76d0983dea3f289cbad60577dd12b438e16000818152600260209081527f66bae5d11d62ec8effd10638671b14210368a15f0a5f2bed005409366d2c740d849055604051848152600080516020620026a6833981519152910160405180910390a35050600180546001600160a01b03191633179055620004de565b6000602082840312156200034657600080fd5b81516001600160a01b03811681146200035e57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003bc578160001904821115620003a057620003a062000365565b80851615620003ae57918102915b93841c939080029062000380565b509250929050565b600082620003d55750600162000474565b81620003e45750600062000474565b8160018114620003fd5760028114620004085762000428565b600191505062000474565b60ff8411156200041c576200041c62000365565b50506001821b62000474565b5060208310610133831016604e8410600b84101617156200044d575081810a62000474565b6200045983836200037b565b806000190482111562000470576200047062000365565b0290505b92915050565b60006200035e60ff841683620003c4565b808202811582820484141762000474576200047462000365565b600082620004c357634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000474576200047462000365565b60805160a05160c0516121676200053f600039600081816105cc015281816106650152818161098001528181610f6201526113f3015260008181610c17015281816114bc01528181611aba0152611bab0152600061183401526121676000f3fe60806040526004361061019a5760003560e01c806374378132116100e1578063a9059cbb1161008a578063f1f5cd9111610064578063f1f5cd91146104e8578063f2fde38b146104fd578063f318bbfe1461051d578063f8d982b21461053d57600080fd5b8063a9059cbb1461046d578063aa4bde281461048d578063dd62ed3e146104a257600080fd5b806395d89b41116100bb57806395d89b41146103e75780639686d3221461042d5780639c0db5f31461044d57600080fd5b8063743781321461037a5780638129fc1c146103aa5780638da5cb5b146103bf57600080fd5b806323b872dd11610143578063313ce5671161011d578063313ce5671461031357806370a082311461032f578063715018a61461036557600080fd5b806323b872dd146102b357806326560be7146102d35780633049b580146102f357600080fd5b80630b78f9c0116101745780630b78f9c01461025057806318160ddd146102705780631dc610401461029357600080fd5b806306fdde03146101a6578063095ea7b3146101fe57806309fb56391461022e57600080fd5b366101a157005b600080fd5b3480156101b257600080fd5b5060408051808201909152600981527f426c6f636b526f636b000000000000000000000000000000000000000000000060208201525b6040516101f59190611c59565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004611cc3565b61055d565b60405190151581526020016101f5565b34801561023a57600080fd5b5061024e610249366004611cfd565b610574565b005b34801561025c57600080fd5b5061024e61026b366004611d18565b610612565b34801561027c57600080fd5b50610285610756565b6040519081526020016101f5565b34801561029f57600080fd5b5061024e6102ae366004611d3a565b610776565b3480156102bf57600080fd5b5061021e6102ce366004611d6d565b6107e9565b3480156102df57600080fd5b5061024e6102ee366004611cfd565b6108d2565b3480156102ff57600080fd5b5061024e61030e366004611da9565b61092d565b34801561031f57600080fd5b50604051601281526020016101f5565b34801561033b57600080fd5b5061028561034a366004611dc2565b6001600160a01b031660009081526002602052604090205490565b34801561037157600080fd5b5061024e610a31565b34801561038657600080fd5b50600954600a54610395919082565b604080519283526020830191909152016101f5565b3480156103b657600080fd5b5061024e610ad0565b3480156103cb57600080fd5b506000546040516001600160a01b0390911681526020016101f5565b3480156103f357600080fd5b5060408051808201909152600381527f464544000000000000000000000000000000000000000000000000000000000060208201526101e8565b34801561043957600080fd5b5061024e610448366004611d3a565b610b3a565b34801561045957600080fd5b5061024e610468366004611e29565b610bc2565b34801561047957600080fd5b5061021e610488366004611cc3565b610d70565b34801561049957600080fd5b50610285610d7d565b3480156104ae57600080fd5b506102856104bd366004611e7d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104f457600080fd5b50610285603281565b34801561050957600080fd5b5061024e610518366004611dc2565b610d99565b34801561052957600080fd5b5061024e610538366004611ea7565b610e69565b34801561054957600080fd5b5061024e610558366004611da9565b610f0f565b600061056a338484611045565b5060015b92915050565b6000546001600160a01b031633146105c15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064015b60405180910390fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105f657600080fd5b600b8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461068f57600080fd5b6009548211156106ed5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600a5481111561074b5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600991909155600a55565b60006107646012600a611fed565b6107719062989680611ffc565b905090565b6000546001600160a01b031633146107be5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156108825760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546108bd9186916108b8908690612013565b611045565b6108c884848461119e565b5060019392505050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600b805460ff1916911515919091179055565b6000546001600160a01b031633146109755760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109aa57600080fd5b6000811180156109ba5750600481105b610a2c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c650000000060648201526084016105b8565b600855565b6000546001600160a01b03163314610a795760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600d80546002916000610b2a83612026565b9190505510610b3857600080fd5b565b6000546001600160a01b03163314610b825760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b306001600160a01b03831603610b9757600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c0a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b60005b82811015610d6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316848483818110610c5157610c5161203f565b9050602002016020810190610c669190611dc2565b6001600160a01b031614158015610cc05750737a250d5630b4cf539739df2c5dacb4c659f2488d848483818110610c9f57610c9f61203f565b9050602002016020810190610cb49190611dc2565b6001600160a01b031614155b8015610cfb575030848483818110610cda57610cda61203f565b9050602002016020810190610cef9190611dc2565b6001600160a01b031614155b610d0457600080fd5b8160046000868685818110610d1b57610d1b61203f565b9050602002016020810190610d309190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6281612026565b915050610c0d565b50505050565b600061056a33848461119e565b610d896012600a611fed565b610d9690620186a0611ffc565b81565b6000546001600160a01b03163314610de15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b038116610e5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e66816116fb565b50565b6000546001600160a01b03163314610eb15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6002600d54108015610ed257506002600d546001610ecf9190612055565b10155b610ede57610ede612068565b600d8054906000610eee83612026565b919050555080600c6000828254610f059190612055565b9091555050505050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f8c57600080fd5b806000108015610f9d575060648111155b61100f5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c6500000000000000000060648201526084016105b8565b3060009081526002602052604081205460649061102c9084611ffc565b611036919061207e565b90506110418161175a565b5050565b6001600160a01b0383166110c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600b5460ff166111f05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e000000000000000060448201526064016105b8565b6001600160a01b03831661126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0382166112e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000811161135e5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016105b8565b6001600160a01b03831660009081526002602052604081208054839290611386908490612013565b90915550506001600160a01b03831630148015906113c157506001600160a01b03831673d40aba76d0983dea3f289cbad60577dd12b438e114155b80156113ea57506001600160a01b03821673d40aba76d0983dea3f289cbad60577dd12b438e114155b801561142857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561168757600b5462010000900460ff16801561145e57506001600160a01b03831660009081526007602052604090205460ff16155b801561148357506001600160a01b03821660009081526007602052604090205460ff16155b156114ba57600061149484846119d3565b905061149f81611a00565b6001600160a01b031660009081526006602052604090204390555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561151857506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115d4576115296012600a611fed565b61153690620186a0611ffc565b81611556846001600160a01b031660009081526002602052604090205490565b6115609190612055565b11156115d45760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201527f6e206f66206d61782077616c6c6574000000000000000000000000000000000060648201526084016105b8565b306000908152600260205260409020546115ee8482611aa2565b156115fc576115fc8161175a565b60006116088584611b32565b905080156116845761161a8184612013565b3060009081526002602052604081208054929550839290919061163e908490612055565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b038216600090815260026020526040812080548392906116af908490612055565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119191815260200190565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b805461ff00191661010017905561177281611c02565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156117dd576117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d6117d06012600a611fed565b6108b89062989680611ffc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118125761181261203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106118665761186661203f565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906118d79085906000908690309042906004016120a0565b600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b5047925050811590506119c35760006064611921836019611ffc565b61192b919061207e565b905060006119398284612013565b60405190915073d40aba76d0983dea3f289cbad60577dd12b438e19083156108fc029084906000818181858888f1935050505015801561197d573d6000803e3d6000fd5b5060405173dde5275ab429b6741dd6e28cadd49d9df31227fa9082156108fc029083906000818181858888f193505050501580156119bf573d6000803e3d6000fd5b5050505b5050600b805461ff001916905550565b6000823b15806119e25750813b155b6119eb57600080fd5b823b156119f957508061056e565b508161056e565b6001600160a01b0381166000908152600660205260408120541580611a535750611a2b436001612055565b6008546001600160a01b038416600090815260066020526040902054611a519190612055565b105b9050806110415760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016105b8565b600b54600090610100900460ff16158015611aef57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015611b115750611b026012600a611fed565b611b0e9061c350611ffc565b82115b8015611b2b575043600c546001611b289190612055565b11155b9392505050565b6001600160a01b03821660009081526005602052604081205460ff1615611b5b5750600061056e565b6001600160a01b03831660009081526004602052604090205460ff1680611b845750600c544311155b15611ba7576064611b96603284611ffc565b611ba0919061207e565b905061056e565b60647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614611bea57600a54611bee565b6009545b611bf89084611ffc565b611b2b919061207e565b6000611c106012600a611fed565b611c1d90621e8480611ffc565b8211611c4057611c2f6012600a611fed565b611c3b9061c350611ffc565b61056e565b611c4c6012600a611fed565b61056e90621e8480611ffc565b600060208083528351808285015260005b81811015611c8657858101830151858201604001528201611c6a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cbe57600080fd5b919050565b60008060408385031215611cd657600080fd5b611cdf83611ca7565b946020939093013593505050565b80358015158114611cbe57600080fd5b600060208284031215611d0f57600080fd5b611b2b82611ced565b60008060408385031215611d2b57600080fd5b50508035926020909101359150565b60008060408385031215611d4d57600080fd5b611d5683611ca7565b9150611d6460208401611ced565b90509250929050565b600080600060608486031215611d8257600080fd5b611d8b84611ca7565b9250611d9960208501611ca7565b9150604084013590509250925092565b600060208284031215611dbb57600080fd5b5035919050565b600060208284031215611dd457600080fd5b611b2b82611ca7565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b6020830191508360208260051b8501011115611e2257600080fd5b9250929050565b600080600060408486031215611e3e57600080fd5b833567ffffffffffffffff811115611e5557600080fd5b611e6186828701611ddd565b9094509250611e74905060208501611ced565b90509250925092565b60008060408385031215611e9057600080fd5b611e9983611ca7565b9150611d6460208401611ca7565b600080600060408486031215611ebc57600080fd5b833567ffffffffffffffff811115611ed357600080fd5b611edf86828701611ddd565b909790965060209590950135949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f44578160001904821115611f2a57611f2a611ef3565b80851615611f3757918102915b93841c9390800290611f0e565b509250929050565b600082611f5b5750600161056e565b81611f685750600061056e565b8160018114611f7e5760028114611f8857611fa4565b600191505061056e565b60ff841115611f9957611f99611ef3565b50506001821b61056e565b5060208310610133831016604e8410600b8410161715611fc7575081810a61056e565b611fd18383611f09565b8060001904821115611fe557611fe5611ef3565b029392505050565b6000611b2b60ff841683611f4c565b808202811582820484141761056e5761056e611ef3565b8181038181111561056e5761056e611ef3565b60006001820161203857612038611ef3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561056e5761056e611ef3565b634e487b7160e01b600052600160045260246000fd5b60008261209b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120f05784516001600160a01b0316835293830193918301916001016120cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d3f9c07002324660e91861ba8f98fbd0f92f9997aff3a808365302f830e9415864736f6c63430008110033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061019a5760003560e01c806374378132116100e1578063a9059cbb1161008a578063f1f5cd9111610064578063f1f5cd91146104e8578063f2fde38b146104fd578063f318bbfe1461051d578063f8d982b21461053d57600080fd5b8063a9059cbb1461046d578063aa4bde281461048d578063dd62ed3e146104a257600080fd5b806395d89b41116100bb57806395d89b41146103e75780639686d3221461042d5780639c0db5f31461044d57600080fd5b8063743781321461037a5780638129fc1c146103aa5780638da5cb5b146103bf57600080fd5b806323b872dd11610143578063313ce5671161011d578063313ce5671461031357806370a082311461032f578063715018a61461036557600080fd5b806323b872dd146102b357806326560be7146102d35780633049b580146102f357600080fd5b80630b78f9c0116101745780630b78f9c01461025057806318160ddd146102705780631dc610401461029357600080fd5b806306fdde03146101a6578063095ea7b3146101fe57806309fb56391461022e57600080fd5b366101a157005b600080fd5b3480156101b257600080fd5b5060408051808201909152600981527f426c6f636b526f636b000000000000000000000000000000000000000000000060208201525b6040516101f59190611c59565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004611cc3565b61055d565b60405190151581526020016101f5565b34801561023a57600080fd5b5061024e610249366004611cfd565b610574565b005b34801561025c57600080fd5b5061024e61026b366004611d18565b610612565b34801561027c57600080fd5b50610285610756565b6040519081526020016101f5565b34801561029f57600080fd5b5061024e6102ae366004611d3a565b610776565b3480156102bf57600080fd5b5061021e6102ce366004611d6d565b6107e9565b3480156102df57600080fd5b5061024e6102ee366004611cfd565b6108d2565b3480156102ff57600080fd5b5061024e61030e366004611da9565b61092d565b34801561031f57600080fd5b50604051601281526020016101f5565b34801561033b57600080fd5b5061028561034a366004611dc2565b6001600160a01b031660009081526002602052604090205490565b34801561037157600080fd5b5061024e610a31565b34801561038657600080fd5b50600954600a54610395919082565b604080519283526020830191909152016101f5565b3480156103b657600080fd5b5061024e610ad0565b3480156103cb57600080fd5b506000546040516001600160a01b0390911681526020016101f5565b3480156103f357600080fd5b5060408051808201909152600381527f464544000000000000000000000000000000000000000000000000000000000060208201526101e8565b34801561043957600080fd5b5061024e610448366004611d3a565b610b3a565b34801561045957600080fd5b5061024e610468366004611e29565b610bc2565b34801561047957600080fd5b5061021e610488366004611cc3565b610d70565b34801561049957600080fd5b50610285610d7d565b3480156104ae57600080fd5b506102856104bd366004611e7d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104f457600080fd5b50610285603281565b34801561050957600080fd5b5061024e610518366004611dc2565b610d99565b34801561052957600080fd5b5061024e610538366004611ea7565b610e69565b34801561054957600080fd5b5061024e610558366004611da9565b610f0f565b600061056a338484611045565b5060015b92915050565b6000546001600160a01b031633146105c15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064015b60405180910390fd5b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e716146105f657600080fd5b600b8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e7161461068f57600080fd5b6009548211156106ed5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600a5481111561074b5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600991909155600a55565b60006107646012600a611fed565b6107719062989680611ffc565b905090565b6000546001600160a01b031633146107be5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156108825760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546108bd9186916108b8908690612013565b611045565b6108c884848461119e565b5060019392505050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600b805460ff1916911515919091179055565b6000546001600160a01b031633146109755760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e716146109aa57600080fd5b6000811180156109ba5750600481105b610a2c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c650000000060648201526084016105b8565b600855565b6000546001600160a01b03163314610a795760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600d80546002916000610b2a83612026565b9190505510610b3857600080fd5b565b6000546001600160a01b03163314610b825760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b306001600160a01b03831603610b9757600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c0a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b60005b82811015610d6a577f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316848483818110610c5157610c5161203f565b9050602002016020810190610c669190611dc2565b6001600160a01b031614158015610cc05750737a250d5630b4cf539739df2c5dacb4c659f2488d848483818110610c9f57610c9f61203f565b9050602002016020810190610cb49190611dc2565b6001600160a01b031614155b8015610cfb575030848483818110610cda57610cda61203f565b9050602002016020810190610cef9190611dc2565b6001600160a01b031614155b610d0457600080fd5b8160046000868685818110610d1b57610d1b61203f565b9050602002016020810190610d309190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6281612026565b915050610c0d565b50505050565b600061056a33848461119e565b610d896012600a611fed565b610d9690620186a0611ffc565b81565b6000546001600160a01b03163314610de15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b038116610e5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e66816116fb565b50565b6000546001600160a01b03163314610eb15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6002600d54108015610ed257506002600d546001610ecf9190612055565b10155b610ede57610ede612068565b600d8054906000610eee83612026565b919050555080600c6000828254610f059190612055565b9091555050505050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e71614610f8c57600080fd5b806000108015610f9d575060648111155b61100f5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c6500000000000000000060648201526084016105b8565b3060009081526002602052604081205460649061102c9084611ffc565b611036919061207e565b90506110418161175a565b5050565b6001600160a01b0383166110c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600b5460ff166111f05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e000000000000000060448201526064016105b8565b6001600160a01b03831661126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0382166112e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000811161135e5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016105b8565b6001600160a01b03831660009081526002602052604081208054839290611386908490612013565b90915550506001600160a01b03831630148015906113c157506001600160a01b03831673d40aba76d0983dea3f289cbad60577dd12b438e114155b80156113ea57506001600160a01b03821673d40aba76d0983dea3f289cbad60577dd12b438e114155b801561142857507f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e76001600160a01b0316826001600160a01b031614155b1561168757600b5462010000900460ff16801561145e57506001600160a01b03831660009081526007602052604090205460ff16155b801561148357506001600160a01b03821660009081526007602052604090205460ff16155b156114ba57600061149484846119d3565b905061149f81611a00565b6001600160a01b031660009081526006602052604090204390555b7f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316836001600160a01b031614801561151857506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115d4576115296012600a611fed565b61153690620186a0611ffc565b81611556846001600160a01b031660009081526002602052604090205490565b6115609190612055565b11156115d45760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201527f6e206f66206d61782077616c6c6574000000000000000000000000000000000060648201526084016105b8565b306000908152600260205260409020546115ee8482611aa2565b156115fc576115fc8161175a565b60006116088584611b32565b905080156116845761161a8184612013565b3060009081526002602052604081208054929550839290919061163e908490612055565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b038216600090815260026020526040812080548392906116af908490612055565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119191815260200190565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b805461ff00191661010017905561177281611c02565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156117dd576117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d6117d06012600a611fed565b6108b89062989680611ffc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118125761181261203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106118665761186661203f565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906118d79085906000908690309042906004016120a0565b600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b5047925050811590506119c35760006064611921836019611ffc565b61192b919061207e565b905060006119398284612013565b60405190915073d40aba76d0983dea3f289cbad60577dd12b438e19083156108fc029084906000818181858888f1935050505015801561197d573d6000803e3d6000fd5b5060405173dde5275ab429b6741dd6e28cadd49d9df31227fa9082156108fc029083906000818181858888f193505050501580156119bf573d6000803e3d6000fd5b5050505b5050600b805461ff001916905550565b6000823b15806119e25750813b155b6119eb57600080fd5b823b156119f957508061056e565b508161056e565b6001600160a01b0381166000908152600660205260408120541580611a535750611a2b436001612055565b6008546001600160a01b038416600090815260066020526040902054611a519190612055565b105b9050806110415760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016105b8565b600b54600090610100900460ff16158015611aef57507f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316836001600160a01b031614155b8015611b115750611b026012600a611fed565b611b0e9061c350611ffc565b82115b8015611b2b575043600c546001611b289190612055565b11155b9392505050565b6001600160a01b03821660009081526005602052604081205460ff1615611b5b5750600061056e565b6001600160a01b03831660009081526004602052604090205460ff1680611b845750600c544311155b15611ba7576064611b96603284611ffc565b611ba0919061207e565b905061056e565b60647f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316846001600160a01b031614611bea57600a54611bee565b6009545b611bf89084611ffc565b611b2b919061207e565b6000611c106012600a611fed565b611c1d90621e8480611ffc565b8211611c4057611c2f6012600a611fed565b611c3b9061c350611ffc565b61056e565b611c4c6012600a611fed565b61056e90621e8480611ffc565b600060208083528351808285015260005b81811015611c8657858101830151858201604001528201611c6a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cbe57600080fd5b919050565b60008060408385031215611cd657600080fd5b611cdf83611ca7565b946020939093013593505050565b80358015158114611cbe57600080fd5b600060208284031215611d0f57600080fd5b611b2b82611ced565b60008060408385031215611d2b57600080fd5b50508035926020909101359150565b60008060408385031215611d4d57600080fd5b611d5683611ca7565b9150611d6460208401611ced565b90509250929050565b600080600060608486031215611d8257600080fd5b611d8b84611ca7565b9250611d9960208501611ca7565b9150604084013590509250925092565b600060208284031215611dbb57600080fd5b5035919050565b600060208284031215611dd457600080fd5b611b2b82611ca7565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b6020830191508360208260051b8501011115611e2257600080fd5b9250929050565b600080600060408486031215611e3e57600080fd5b833567ffffffffffffffff811115611e5557600080fd5b611e6186828701611ddd565b9094509250611e74905060208501611ced565b90509250925092565b60008060408385031215611e9057600080fd5b611e9983611ca7565b9150611d6460208401611ca7565b600080600060408486031215611ebc57600080fd5b833567ffffffffffffffff811115611ed357600080fd5b611edf86828701611ddd565b909790965060209590950135949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f44578160001904821115611f2a57611f2a611ef3565b80851615611f3757918102915b93841c9390800290611f0e565b509250929050565b600082611f5b5750600161056e565b81611f685750600061056e565b8160018114611f7e5760028114611f8857611fa4565b600191505061056e565b60ff841115611f9957611f99611ef3565b50506001821b61056e565b5060208310610133831016604e8410600b8410161715611fc7575081810a61056e565b611fd18383611f09565b8060001904821115611fe557611fe5611ef3565b029392505050565b6000611b2b60ff841683611f4c565b808202811582820484141761056e5761056e611ef3565b8181038181111561056e5761056e611ef3565b60006001820161203857612038611ef3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561056e5761056e611ef3565b634e487b7160e01b600052600160045260246000fd5b60008261209b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120f05784516001600160a01b0316835293830193918301916001016120cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d3f9c07002324660e91861ba8f98fbd0f92f9997aff3a808365302f830e9415864736f6c63430008110033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.