ERC-20
Overview
Max Total Supply
66,666,666 RP
Holders
76
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
347,099.590465181587225852 RPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ReapersPump
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* o__ __o o__ __o__/_ o o__ __o o__ __o__/_ o__ __o o o__ __o * <| v\ <| v <|> <| v\ <| v <| v\ <|> /v v\ * / \ <\ < > / \ / \ <\ < > / \ <\ < > /> <\ * \o/ o/ | o/ \o \o/ o/ | \o/ o/ _\o____ * |__ _<| o__/_ <|__ __|> |__ _<|/ o__/_ |__ _<| \_\__o__ * | \ | / \ | | | \ \ * <o> \o <o> o/ \o <o> <o> <o> \o \ / * | v\ | /v v\ | | | v\ o o * / \ <\ / \ _\o__/_ /> <\ / \ / \ _\o__/_ / \ <\ <\__ __/> * * * o__ __o o o o o o__ __o * <| v\ <|> <|> <|\ /|> <| v\ * / \ <\ / \ / \ / \\o o// \ / \ <\ * \o/ o/ \o/ \o/ \o/ v\ /v \o/ \o/ o/ * |__ _<|/ | | | <\/> | |__ _<|/ * | < > < > / \ / \ | * <o> \ / \o/ \o/ <o> * | o o | | | * / \ <\__ __/> / \ / \ / \ * * * Reaper will come for you in three days, but in the meantime he has more important things to do. * Reaper kills 13% of tokens in lp daily. * * https://twitter.com/ReapersPump * https://reaperspump.xyz/ * https://t.me/reaperspump * */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; import "lib/openzeppelin-contracts/contracts/access/Ownable.sol"; import "interfaces/IUniswapV2Router02.sol"; import "interfaces/IUniswapV2Pair.sol"; import "interfaces/IUniswapV2Factory.sol"; 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); } contract ReapersPump is IERC20, Ownable { string public name = "REAPERS PUMP"; string public symbol = "RP"; uint8 public decimals = 18; uint256 public totalSupply; bool reaperAwake; uint256 public sellTax = 300; uint256 public lastKillTimestamp; uint256 maxWallet; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) isExcludedFromTax; mapping(address => uint256) public _firstReceivedBlock; mapping(address => bool) public _immortal; IUniswapV2Pair public uniswapV2Pair; IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address payable treasury = payable(0xf5b8D766f96F1403B1529B2664798fC4FE577809); constructor() { totalSupply = 66_666_666e18; balanceOf[msg.sender] = totalSupply; maxWallet = totalSupply / 50; uniswapV2Pair = IUniswapV2Pair( IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()) ); _immortal[msg.sender] = true; _immortal[address(this)] = true; _immortal[address(uniswapV2Pair)] = true; _immortal[address(uniswapV2Router)] = true; isExcludedFromTax[msg.sender] = true; isExcludedFromTax[address(this)] = true; isExcludedFromTax[treasury] = true; isExcludedFromTax[address(uniswapV2Router)] = true; } event KillTokens(uint256 prevReserve, uint256 newReserve); bool inSwap = false; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } receive() external payable {} function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _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 _spendAllowance(address owner, address spender, uint256 amount) private { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function CheatDeath(address account) public onlyOwner { _immortal[account] = true; } function AcceptDeath(address account) public onlyOwner { _immortal[account] = false; _firstReceivedBlock[account] = 0; } function KnowDeath(address account) public view returns (uint256) { uint256 deathBlock; if (_firstReceivedBlock[account] != 0) { deathBlock = _firstReceivedBlock[account] + 3 days; } if (_firstReceivedBlock[account] == 0 || _immortal[account]) { deathBlock = 0; } return deathBlock; } function transfer(address recipient, uint256 amount) external returns (bool) { require(_firstReceivedBlock[msg.sender] + 3 days > block.timestamp || _immortal[msg.sender], "cannot escape death"); _transfer(_msgSender(), recipient, amount); emit Transfer(msg.sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) { require(_firstReceivedBlock[sender] + 3 days > block.timestamp || _immortal[sender], "cannot escape death"); _spendAllowance(sender, _msgSender(), amount); _transfer(sender, recipient, amount); emit Transfer(sender, recipient, amount); return true; } function _transfer(address sender, address recipient, uint256 amount) private { if (sender == address(uniswapV2Pair) && !isExcludedFromTax[recipient]) { require(amount + balanceOf[recipient] <= maxWallet, "Transfer amount exceeds the maxWallet"); } if (recipient == address(uniswapV2Pair) && !isExcludedFromTax[sender]) { uint256 tax = (amount * sellTax) / 10000; amount -= tax; balanceOf[address(this)] += tax; balanceOf[sender] -= tax; } uint256 contractTokenBalance = balanceOf[address(this)]; bool canSwap = contractTokenBalance > 0; if ( canSwap && !inSwap && sender != address(uniswapV2Pair) && !isExcludedFromTax[sender] && !isExcludedFromTax[recipient] ) { swapTokensForEth(contractTokenBalance); } if (_firstReceivedBlock[recipient] == 0) { _firstReceivedBlock[recipient] = block.timestamp; } balanceOf[sender] -= amount; balanceOf[recipient] += amount; } bool isReserve0; function killTokens() public { require(reaperAwake, "Reaper is not awake"); require(lastKillTimestamp != block.timestamp, "Reaper cooldown"); (uint112 reserve0, uint112 reserve1,) = uniswapV2Pair.getReserves(); uint112 reserve = isReserve0 ? reserve0 : reserve1; uint toBurn = viewKillTokens(); lastKillTimestamp = block.timestamp; burnFrom(address(uniswapV2Pair), toBurn); uniswapV2Pair.sync(); emit KillTokens(reserve, reserve - toBurn); } function viewKillTokens() public view returns (uint256){ (uint112 reserve0, uint112 reserve1,) = uniswapV2Pair.getReserves(); uint112 reserve = isReserve0 ? reserve0 : reserve1; uint256 timePassed = viewTimePassed(); uint256 toBurn; toBurn = (reserve * timePassed) / ((769 * 86400)/100); return toBurn; } function awakenReaper() public onlyOwner { require(!reaperAwake, "Reaper is up"); reaperAwake = true; maxWallet = type(uint).max; lastKillTimestamp = block.timestamp; } function setReserve(bool _isReserve0) public onlyOwner { isReserve0 = _isReserve0; } function viewTimePassed() public view returns (uint256) { uint256 timePassed; if (block.timestamp - lastKillTimestamp > 3 days) { timePassed = 3 days; } else { timePassed = block.timestamp - lastKillTimestamp; } return timePassed; } function burnFrom(address account, uint256 amount) private { balanceOf[account] -= amount; totalSupply -= amount; emit Transfer(account, address(0), amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, treasury, block.timestamp ); } }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; }
pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); }
pragma solidity >=0.6.2; import './IUniswapV2Router01.sol'; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "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":false,"internalType":"uint256","name":"prevReserve","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReserve","type":"uint256"}],"name":"KillTokens","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":"account","type":"address"}],"name":"AcceptDeath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"CheatDeath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"KnowDeath","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_firstReceivedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_immortal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"awakenReaper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"killTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastKillTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_isReserve0","type":"bool"}],"name":"setReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewKillTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTimePassed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600c60809081526b0524541504552532050554d560a41b60a0526001906200002d90826200041f565b5060408051808201909152600280825261052560f41b6020830152906200005590826200041f565b506003805460ff1916601217905561012c600655600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055601080546001600160a81b03191673f5b8d766f96f1403b1529b2664798fc4fe577809179055348015620000c257600080fd5b50620000ce336200032a565b6a372537349a396a286800006004819055336000908152600960205260409020819055620000ff90603290620004eb565b600855600f546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017391906200050e565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc91906200050e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027091906200050e565b600e80546001600160a01b0319166001600160a01b03928316178155336000818152600d60209081526040808320805460ff1990811660019081179092553080865283862080548316841790559654881685528285208054821683179055600f8054891686528386208054831684179055958552600b909352818420805484168217905594835280832080548316861790556010548616835280832080548316861790559254909416815220805490921617905562000540565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003a557607f821691505b602082108103620003c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200041a57600081815260208120601f850160051c81016020861015620003f55750805b601f850160051c820191505b81811015620004165782815560010162000401565b5050505b505050565b81516001600160401b038111156200043b576200043b6200037a565b62000453816200044c845462000390565b84620003cc565b602080601f8311600181146200048b5760008415620004725750858301515b600019600386901b1c1916600185901b17855562000416565b600085815260208120601f198616915b82811015620004bc578886015182559484019460019091019084016200049b565b5085821015620004db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826200050957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200052157600080fd5b81516001600160a01b03811681146200053957600080fd5b9392505050565b61171b80620005506000396000f3fe6080604052600436106101845760003560e01c8063715018a6116100d1578063cc1776d31161008a578063f1ce50e211610064578063f1ce50e214610484578063f2fde38b146104b4578063f4c84f5d146104d4578063fd710e25146104e957600080fd5b8063cc1776d314610408578063cd6591181461041e578063dd62ed3e1461043e57600080fd5b8063715018a61461036b5780638da5cb5b1461038057806395d89b411461039e578063a9059cbb146103b3578063aa20aeb0146103d3578063bc3a6240146103f357600080fd5b806323b872dd1161013e5780632ce90c11116101185780632ce90c11146102db578063313ce567146102f257806349bd5a5e1461031e57806370a082311461033e57600080fd5b806323b872dd1461027857806323bad31c146102985780632735e2fe146102ae57600080fd5b806247770c1461019057806306fdde03146101b8578063095ea7b3146101da578063119ff0bf1461020a5780631694505e1461022a57806318160ddd1461026257600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b506101a5610509565b6040519081526020015b60405180910390f35b3480156101c457600080fd5b506101cd610541565b6040516101af91906113d7565b3480156101e657600080fd5b506101fa6101f536600461143a565b6105cf565b60405190151581526020016101af565b34801561021657600080fd5b506101a5610225366004611466565b6105e5565b34801561023657600080fd5b50600f5461024a906001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b34801561026e57600080fd5b506101a560045481565b34801561028457600080fd5b506101fa61029336600461148a565b610679565b3480156102a457600080fd5b506101a560075481565b3480156102ba57600080fd5b506101a56102c9366004611466565b600c6020526000908152604090205481565b3480156102e757600080fd5b506102f0610779565b005b3480156102fe57600080fd5b5060035461030c9060ff1681565b60405160ff90911681526020016101af565b34801561032a57600080fd5b50600e5461024a906001600160a01b031681565b34801561034a57600080fd5b506101a5610359366004611466565b60096020526000908152604090205481565b34801561037757600080fd5b506102f0610990565b34801561038c57600080fd5b506000546001600160a01b031661024a565b3480156103aa57600080fd5b506101cd6109a4565b3480156103bf57600080fd5b506101fa6103ce36600461143a565b6109b1565b3480156103df57600080fd5b506102f06103ee3660046114cb565b610a81565b3480156103ff57600080fd5b506102f0610aa7565b34801561041457600080fd5b506101a560065481565b34801561042a57600080fd5b506102f0610439366004611466565b610b0a565b34801561044a57600080fd5b506101a56104593660046114ed565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561049057600080fd5b506101fa61049f366004611466565b600d6020526000908152604090205460ff1681565b3480156104c057600080fd5b506102f06104cf366004611466565b610b3e565b3480156104e057600080fd5b506101a5610bb7565b3480156104f557600080fd5b506102f0610504366004611466565b610c90565b6000806203f4806007544261051e919061153c565b111561052e57506203f480919050565b60075461053b904261153c565b92915050565b6001805461054e9061154f565b80601f016020809104026020016040519081016040528092919081815260200182805461057a9061154f565b80156105c75780601f1061059c576101008083540402835291602001916105c7565b820191906000526020600020905b8154815290600101906020018083116105aa57829003601f168201915b505050505081565b60006105dc338484610cbc565b50600192915050565b6001600160a01b0381166000908152600c602052604081205481901561062e576001600160a01b0383166000908152600c602052604090205461062b906203f480611589565b90505b6001600160a01b0383166000908152600c6020526040902054158061066b57506001600160a01b0383166000908152600d602052604090205460ff165b1561053b5750600092915050565b6001600160a01b0383166000908152600c602052604081205442906106a1906203f480611589565b11806106c557506001600160a01b0384166000908152600d602052604090205460ff165b61070c5760405162461bcd60e51b81526020600482015260136024820152720c6c2dcdcdee840cae6c6c2e0ca40c8cac2e8d606b1b60448201526064015b60405180910390fd5b610717843384610de0565b610722848484610e72565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161076791815260200190565b60405180910390a35060019392505050565b60055460ff166107c15760405162461bcd60e51b8152602060048201526013602482015272526561706572206973206e6f74206177616b6560681b6044820152606401610703565b42600754036108045760405162461bcd60e51b815260206004820152600f60248201526e2932b0b832b91031b7b7b63237bbb760891b6044820152606401610703565b600080600e60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e91906115b8565b506010549193509150600090600160a81b900460ff1661089e57816108a0565b825b905060006108ac610bb7565b42600755600e549091506108c9906001600160a01b031682611124565b600e60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561091957600080fd5b505af115801561092d573d6000803e3d6000fd5b505050507f58a0009b319be2c15f784d63bca6fcf234096808d071a14ae90693588100e2e68282846001600160701b0316610968919061153c565b604080516001600160701b03909316835260208301919091520160405180910390a150505050565b6109986111af565b6109a26000611209565b565b6002805461054e9061154f565b336000908152600c602052604081205442906109d0906203f480611589565b11806109eb5750336000908152600d602052604090205460ff165b610a2d5760405162461bcd60e51b81526020600482015260136024820152720c6c2dcdcdee840cae6c6c2e0ca40c8cac2e8d606b1b6044820152606401610703565b610a38338484610e72565b6040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600192915050565b610a896111af565b60108054911515600160a81b0260ff60a81b19909216919091179055565b610aaf6111af565b60055460ff1615610af15760405162461bcd60e51b815260206004820152600c60248201526b05265617065722069732075760a41b6044820152606401610703565b6005805460ff1916600117905560001960085542600755565b610b126111af565b6001600160a01b03166000908152600d60209081526040808320805460ff19169055600c909152812055565b610b466111af565b6001600160a01b038116610bab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610703565b610bb481611209565b50565b6000806000600e60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3391906115b8565b506010549193509150600090600160a81b900460ff16610c535781610c55565b825b90506000610c61610509565b90506000620a2360610c7c836001600160701b038616611608565b610c86919061161f565b9695505050505050565b610c986111af565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6001600160a01b038316610d1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610703565b6001600160a01b038216610d7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610703565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600a60209081526040808320938616835292905220546000198114610e6c5781811015610e5f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610703565b610e6c8484848403610cbc565b50505050565b600e546001600160a01b038481169116148015610ea857506001600160a01b0382166000908152600b602052604090205460ff16155b15610f2f576008546001600160a01b038316600090815260096020526040902054610ed39083611589565b1115610f2f5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206d617857604482015264185b1b195d60da1b6064820152608401610703565b600e546001600160a01b038381169116148015610f6557506001600160a01b0383166000908152600b602052604090205460ff16155b15610feb57600061271060065483610f7d9190611608565b610f87919061161f565b9050610f93818361153c565b30600090815260096020526040812080549294508392909190610fb7908490611589565b90915550506001600160a01b03841660009081526009602052604081208054839290610fe490849061153c565b9091555050505b30600090815260096020526040902054801580159081906110165750601054600160a01b900460ff16155b80156110305750600e546001600160a01b03868116911614155b801561105557506001600160a01b0385166000908152600b602052604090205460ff16155b801561107a57506001600160a01b0384166000908152600b602052604090205460ff16155b156110885761108882611259565b6001600160a01b0384166000908152600c602052604081205490036110c3576001600160a01b0384166000908152600c602052604090204290555b6001600160a01b038516600090815260096020526040812080548592906110eb90849061153c565b90915550506001600160a01b03841660009081526009602052604081208054859290611118908490611589565b90915550505050505050565b6001600160a01b0382166000908152600960205260408120805483929061114c90849061153c565b925050819055508060046000828254611165919061153c565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610703565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112a1576112a1611641565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131e9190611657565b8160018151811061133157611331611641565b6001600160a01b039283166020918202929092010152600f546113579130911684610cbc565b600f5460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261139492879260009288929116904290600401611674565b600060405180830381600087803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b50506010805460ff60a01b1916905550505050565b600060208083528351808285015260005b81811015611404578581018301518582016040015282016113e8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bb457600080fd5b6000806040838503121561144d57600080fd5b823561145881611425565b946020939093013593505050565b60006020828403121561147857600080fd5b813561148381611425565b9392505050565b60008060006060848603121561149f57600080fd5b83356114aa81611425565b925060208401356114ba81611425565b929592945050506040919091013590565b6000602082840312156114dd57600080fd5b8135801515811461148357600080fd5b6000806040838503121561150057600080fd5b823561150b81611425565b9150602083013561151b81611425565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561053b5761053b611526565b600181811c9082168061156357607f821691505b60208210810361158357634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561053b5761053b611526565b80516001600160701b03811681146115b357600080fd5b919050565b6000806000606084860312156115cd57600080fd5b6115d68461159c565b92506115e46020850161159c565b9150604084015163ffffffff811681146115fd57600080fd5b809150509250925092565b808202811582820484141761053b5761053b611526565b60008261163c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561166957600080fd5b815161148381611425565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116c45784516001600160a01b03168352938301939183019160010161169f565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220677bcf0046891475b571148ec3b725584ba355203de7d5ed07930f6d750f9d0864736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101845760003560e01c8063715018a6116100d1578063cc1776d31161008a578063f1ce50e211610064578063f1ce50e214610484578063f2fde38b146104b4578063f4c84f5d146104d4578063fd710e25146104e957600080fd5b8063cc1776d314610408578063cd6591181461041e578063dd62ed3e1461043e57600080fd5b8063715018a61461036b5780638da5cb5b1461038057806395d89b411461039e578063a9059cbb146103b3578063aa20aeb0146103d3578063bc3a6240146103f357600080fd5b806323b872dd1161013e5780632ce90c11116101185780632ce90c11146102db578063313ce567146102f257806349bd5a5e1461031e57806370a082311461033e57600080fd5b806323b872dd1461027857806323bad31c146102985780632735e2fe146102ae57600080fd5b806247770c1461019057806306fdde03146101b8578063095ea7b3146101da578063119ff0bf1461020a5780631694505e1461022a57806318160ddd1461026257600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b506101a5610509565b6040519081526020015b60405180910390f35b3480156101c457600080fd5b506101cd610541565b6040516101af91906113d7565b3480156101e657600080fd5b506101fa6101f536600461143a565b6105cf565b60405190151581526020016101af565b34801561021657600080fd5b506101a5610225366004611466565b6105e5565b34801561023657600080fd5b50600f5461024a906001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b34801561026e57600080fd5b506101a560045481565b34801561028457600080fd5b506101fa61029336600461148a565b610679565b3480156102a457600080fd5b506101a560075481565b3480156102ba57600080fd5b506101a56102c9366004611466565b600c6020526000908152604090205481565b3480156102e757600080fd5b506102f0610779565b005b3480156102fe57600080fd5b5060035461030c9060ff1681565b60405160ff90911681526020016101af565b34801561032a57600080fd5b50600e5461024a906001600160a01b031681565b34801561034a57600080fd5b506101a5610359366004611466565b60096020526000908152604090205481565b34801561037757600080fd5b506102f0610990565b34801561038c57600080fd5b506000546001600160a01b031661024a565b3480156103aa57600080fd5b506101cd6109a4565b3480156103bf57600080fd5b506101fa6103ce36600461143a565b6109b1565b3480156103df57600080fd5b506102f06103ee3660046114cb565b610a81565b3480156103ff57600080fd5b506102f0610aa7565b34801561041457600080fd5b506101a560065481565b34801561042a57600080fd5b506102f0610439366004611466565b610b0a565b34801561044a57600080fd5b506101a56104593660046114ed565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561049057600080fd5b506101fa61049f366004611466565b600d6020526000908152604090205460ff1681565b3480156104c057600080fd5b506102f06104cf366004611466565b610b3e565b3480156104e057600080fd5b506101a5610bb7565b3480156104f557600080fd5b506102f0610504366004611466565b610c90565b6000806203f4806007544261051e919061153c565b111561052e57506203f480919050565b60075461053b904261153c565b92915050565b6001805461054e9061154f565b80601f016020809104026020016040519081016040528092919081815260200182805461057a9061154f565b80156105c75780601f1061059c576101008083540402835291602001916105c7565b820191906000526020600020905b8154815290600101906020018083116105aa57829003601f168201915b505050505081565b60006105dc338484610cbc565b50600192915050565b6001600160a01b0381166000908152600c602052604081205481901561062e576001600160a01b0383166000908152600c602052604090205461062b906203f480611589565b90505b6001600160a01b0383166000908152600c6020526040902054158061066b57506001600160a01b0383166000908152600d602052604090205460ff165b1561053b5750600092915050565b6001600160a01b0383166000908152600c602052604081205442906106a1906203f480611589565b11806106c557506001600160a01b0384166000908152600d602052604090205460ff165b61070c5760405162461bcd60e51b81526020600482015260136024820152720c6c2dcdcdee840cae6c6c2e0ca40c8cac2e8d606b1b60448201526064015b60405180910390fd5b610717843384610de0565b610722848484610e72565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161076791815260200190565b60405180910390a35060019392505050565b60055460ff166107c15760405162461bcd60e51b8152602060048201526013602482015272526561706572206973206e6f74206177616b6560681b6044820152606401610703565b42600754036108045760405162461bcd60e51b815260206004820152600f60248201526e2932b0b832b91031b7b7b63237bbb760891b6044820152606401610703565b600080600e60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e91906115b8565b506010549193509150600090600160a81b900460ff1661089e57816108a0565b825b905060006108ac610bb7565b42600755600e549091506108c9906001600160a01b031682611124565b600e60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561091957600080fd5b505af115801561092d573d6000803e3d6000fd5b505050507f58a0009b319be2c15f784d63bca6fcf234096808d071a14ae90693588100e2e68282846001600160701b0316610968919061153c565b604080516001600160701b03909316835260208301919091520160405180910390a150505050565b6109986111af565b6109a26000611209565b565b6002805461054e9061154f565b336000908152600c602052604081205442906109d0906203f480611589565b11806109eb5750336000908152600d602052604090205460ff165b610a2d5760405162461bcd60e51b81526020600482015260136024820152720c6c2dcdcdee840cae6c6c2e0ca40c8cac2e8d606b1b6044820152606401610703565b610a38338484610e72565b6040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600192915050565b610a896111af565b60108054911515600160a81b0260ff60a81b19909216919091179055565b610aaf6111af565b60055460ff1615610af15760405162461bcd60e51b815260206004820152600c60248201526b05265617065722069732075760a41b6044820152606401610703565b6005805460ff1916600117905560001960085542600755565b610b126111af565b6001600160a01b03166000908152600d60209081526040808320805460ff19169055600c909152812055565b610b466111af565b6001600160a01b038116610bab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610703565b610bb481611209565b50565b6000806000600e60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3391906115b8565b506010549193509150600090600160a81b900460ff16610c535781610c55565b825b90506000610c61610509565b90506000620a2360610c7c836001600160701b038616611608565b610c86919061161f565b9695505050505050565b610c986111af565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6001600160a01b038316610d1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610703565b6001600160a01b038216610d7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610703565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600a60209081526040808320938616835292905220546000198114610e6c5781811015610e5f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610703565b610e6c8484848403610cbc565b50505050565b600e546001600160a01b038481169116148015610ea857506001600160a01b0382166000908152600b602052604090205460ff16155b15610f2f576008546001600160a01b038316600090815260096020526040902054610ed39083611589565b1115610f2f5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206d617857604482015264185b1b195d60da1b6064820152608401610703565b600e546001600160a01b038381169116148015610f6557506001600160a01b0383166000908152600b602052604090205460ff16155b15610feb57600061271060065483610f7d9190611608565b610f87919061161f565b9050610f93818361153c565b30600090815260096020526040812080549294508392909190610fb7908490611589565b90915550506001600160a01b03841660009081526009602052604081208054839290610fe490849061153c565b9091555050505b30600090815260096020526040902054801580159081906110165750601054600160a01b900460ff16155b80156110305750600e546001600160a01b03868116911614155b801561105557506001600160a01b0385166000908152600b602052604090205460ff16155b801561107a57506001600160a01b0384166000908152600b602052604090205460ff16155b156110885761108882611259565b6001600160a01b0384166000908152600c602052604081205490036110c3576001600160a01b0384166000908152600c602052604090204290555b6001600160a01b038516600090815260096020526040812080548592906110eb90849061153c565b90915550506001600160a01b03841660009081526009602052604081208054859290611118908490611589565b90915550505050505050565b6001600160a01b0382166000908152600960205260408120805483929061114c90849061153c565b925050819055508060046000828254611165919061153c565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610703565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112a1576112a1611641565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131e9190611657565b8160018151811061133157611331611641565b6001600160a01b039283166020918202929092010152600f546113579130911684610cbc565b600f5460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261139492879260009288929116904290600401611674565b600060405180830381600087803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b50506010805460ff60a01b1916905550505050565b600060208083528351808285015260005b81811015611404578581018301518582016040015282016113e8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bb457600080fd5b6000806040838503121561144d57600080fd5b823561145881611425565b946020939093013593505050565b60006020828403121561147857600080fd5b813561148381611425565b9392505050565b60008060006060848603121561149f57600080fd5b83356114aa81611425565b925060208401356114ba81611425565b929592945050506040919091013590565b6000602082840312156114dd57600080fd5b8135801515811461148357600080fd5b6000806040838503121561150057600080fd5b823561150b81611425565b9150602083013561151b81611425565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561053b5761053b611526565b600181811c9082168061156357607f821691505b60208210810361158357634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561053b5761053b611526565b80516001600160701b03811681146115b357600080fd5b919050565b6000806000606084860312156115cd57600080fd5b6115d68461159c565b92506115e46020850161159c565b9150604084015163ffffffff811681146115fd57600080fd5b809150509250925092565b808202811582820484141761053b5761053b611526565b60008261163c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561166957600080fd5b815161148381611425565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116c45784516001600160a01b03168352938301939183019160010161169f565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220677bcf0046891475b571148ec3b725584ba355203de7d5ed07930f6d750f9d0864736f6c63430008130033
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.