Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 CANDY
Holders
23
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
422,525.700107667208470409 CANDYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CandyToken
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** Website: https://www.candytoken.app/ Twitter: https://twitter.com/candyerc20 Telegram: https://t.me/candyerc20 Docs: https://docs.candytoken.app */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.18; import "../IERC20.sol"; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; event 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 burn(address to) external returns (uint amount0, uint amount1); function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function quote( uint amountA, uint reserveA, uint reserveB ) external pure returns (uint amountB); function getAmountOut( uint amountIn, uint reserveIn, uint reserveOut ) external pure returns (uint amountOut); function getAmountIn( uint amountOut, uint reserveIn, uint reserveOut ) external pure returns (uint amountIn); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); function getAmountsIn( uint amountOut, address[] calldata path ) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IStaking { function deposit(address _address, uint amount) external; } contract CandyToken is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; // Stake IStaking public stake; // Burn Stats uint256 public totalBurned = 0; uint256 public totalBurnRewards = 0; uint256 public burnCapDivisor = 10; // Divisor for burn reward cap per tx uint256 public burnSub1EthCap = 100000000000000000; // cap in gwei if rewards < 1 Eth string private _name = "TRICK OR TREAT"; string private _symbol = "CANDY"; uint8 private _decimals = 18; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) private _allowances; // Supply / Max Tx tokenomics uint256 private _totalSupply = 100 * 10 ** 6 * 10 ** 18; uint256 public _maxTxAmount = 2 * 10 ** 6 * 10 ** 18; uint256 public _walletMax = 2 * 10 ** 6 * 10 ** 18; uint256 private minimumTokensBeforeSwap = 30 ** 5 * 10 ** 18; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; address payable private devMarketingWallet; uint256 public _buyJackpotFees = 10; uint256 public _buyDevFees = 5; uint256 public _buyBurnFees = 10; uint256 public _sellJackpotFees = 10; uint256 public _sellDevFees = 5; uint256 public _sellBurnFees = 10; uint256 public _jackpotShares = 2; uint256 public _devShares = 1; uint256 public _burnShares = 2; uint256 public _totalDistributionShares = 5; uint256 public _totalTaxIfBuying = 25; uint256 public _totalTaxIfSelling = 25; uint public buyCount = 0; // Fees / MaxWallet / TxLimit exemption mappings mapping(address => bool) public checkExcludedFromFees; mapping(address => bool) public checkWalletLimitExcept; mapping(address => bool) public checkTxLimitExcept; mapping(address => bool) public checkMarketPair; // Swap and liquify flags (for taxes) bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public enableTrading; // events & modifiers event BurnedTokensForEth( address account, uint256 burnAmount, uint256 ethRecievedAmount ); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens(uint256 amountIn, address[] path); event SwapTokensForETH(uint256 amountIn, address[] path); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(address _stakingAddress) { devMarketingWallet = payable(msg.sender); stake = IStaking(_stakingAddress); uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); _approve(address(this), address(uniswapV2Router), _totalSupply); _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; checkExcludedFromFees[owner()] = true; checkExcludedFromFees[address(this)] = true; checkExcludedFromFees[_stakingAddress] = true; _totalTaxIfBuying = _buyJackpotFees.add(_buyDevFees).add(_buyBurnFees); _totalTaxIfSelling = _sellJackpotFees.add(_sellDevFees).add( _sellBurnFees ); _totalDistributionShares = _jackpotShares.add(_devShares).add( _burnShares ); checkWalletLimitExcept[owner()] = true; checkWalletLimitExcept[address(uniswapPair)] = true; checkWalletLimitExcept[address(this)] = true; checkWalletLimitExcept[address(stake)] = true; checkTxLimitExcept[owner()] = true; checkTxLimitExcept[address(this)] = true; checkMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function addMarketPair(address account) public onlyOwner { checkMarketPair[account] = true; } function setcheckTxLimitExcept( address holder, bool exempt ) external onlyOwner { checkTxLimitExcept[holder] = exempt; } function setcheckExcludedFromFees( address account, bool newValue ) public onlyOwner { checkExcludedFromFees[account] = newValue; } function setDistributionSettings( uint256 newLiquidityShare, uint256 newDevShare, uint256 newBurnShare ) external onlyOwner { _jackpotShares = newLiquidityShare; _devShares = newDevShare; _burnShares = newBurnShare; _totalDistributionShares = _jackpotShares.add(_devShares).add( _burnShares ); } function adjustMaxTxAmount(uint256 maxTxAmount) external onlyOwner { require( maxTxAmount <= (100 * 10 ** 6 * 10 ** 18), "Max wallet should be less" ); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setcheckWalletLimitExcept( address holder, bool exempt ) external onlyOwner { checkWalletLimitExcept[holder] = exempt; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function openTrading() external onlyOwner { require(!enableTrading, "trading opened"); addLiquidity(balanceOf(address(this)), address(this).balance); enableTrading = true; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub( balanceOf(0x000000000000000000000000000000000000dEaD) ); } function transferToAddressETH( address payable recipient, uint256 amount ) private { recipient.transfer(amount); } // msg.sender burns tokens and recieve uniswap rate TAX FREE, instead of selling. function burnForEth(uint256 amount) public returns (bool) { require(balanceOf(_msgSender()) >= amount, "not enough funds to burn"); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uint[] memory a = uniswapV2Router.getAmountsOut(amount, path); uint256 cap; if (address(this).balance <= 1 ether) { cap = burnSub1EthCap; } else { cap = address(this).balance / burnCapDivisor; } require(a[a.length - 1] <= cap, "amount greater than cap"); require( address(this).balance >= a[a.length - 1], "not enough funds in contract" ); transferToAddressETH(_msgSender(), a[a.length - 1]); _burn(_msgSender(), amount); totalBurnRewards += a[a.length - 1]; totalBurned += amount; emit BurnedTokensForEth(_msgSender(), amount, a[a.length - 1]); return true; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if ((recipient == address(this)) && (enableTrading)) { recipient = address(stake); stake.deposit(sender, amount); } if (inSwapAndLiquify) { _basicTransfer(sender, recipient, amount); } else { if (!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) { require( amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount." ); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if ( overMinimumTokenBalance && !inSwapAndLiquify && !checkMarketPair[sender] && swapAndLiquifyEnabled ) { if (swapAndLiquifyByLimitOnly && enableTrading) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify( amount < contractTokenBalance ? amount : contractTokenBalance ); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 finalAmount = (checkExcludedFromFees[sender] || checkExcludedFromFees[recipient]) ? amount : takeFee(sender, recipient, amount); if (!enableTrading) finalAmount = takeFee(sender, recipient, amount); if (checkWalletLimit && !checkWalletLimitExcept[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); } } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { if (!enableTrading) return; uint256 ethBalanceBeforeSwap = address(this).balance; swapTokensForEth(tAmount); uint256 amountReceived = address(this).balance.sub( ethBalanceBeforeSwap ); uint256 amountETHJackpot = amountReceived.mul(_jackpotShares).div( _totalDistributionShares ); uint256 amountETHDev = amountReceived.mul(_devShares).div( _totalDistributionShares ); if (amountETHJackpot > 0) transferToAddressETH(payable(address(stake)), amountETHJackpot); if (amountETHDev > 0) transferToAddressETH(devMarketingWallet, amountETHDev); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount = 0; if (checkMarketPair[sender]) { feeAmount = amount.mul(buyCount > 20 ? 5 : _totalTaxIfBuying).div( 100 ); buyCount = buyCount.add(1); } else if (checkMarketPair[recipient]) { feeAmount = amount.mul(buyCount > 20 ? 5 : _totalTaxIfSelling).div( 100 ); } if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function setPair(address _address) external onlyOwner { uniswapPair = _address; } function getStats() public view returns (uint256, uint256, uint256) { return (totalBurned, totalBurnRewards, address(this).balance); } function recoverETH() external onlyOwner { owner().call{value: address(this).balance}(""); } receive() external payable {} }
pragma solidity ^0.8.19; 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 ); }
{ "remappings": [ "@openzeppelin/=lib/openzeppelin-contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "lib/forge-std:ds-test/=lib/forge-std/lib/ds-test/src/", "lib/openzeppelin-contracts:@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "lib/openzeppelin-contracts:ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/", "lib/openzeppelin-contracts:erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "lib/openzeppelin-contracts:forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stakingAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethRecievedAmount","type":"uint256"}],"name":"BurnedTokensForEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyJackpotFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_jackpotShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellJackpotFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnCapDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnForEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnSub1EthCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStats","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newDevShare","type":"uint256"},{"internalType":"uint256","name":"newBurnShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stake","outputs":[{"internalType":"contract IStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60006003819055600455600a60055567016345785d8a000060065560c0604052600e60809081526d15149250d2c813d488151491505560921b60a0526007906200004a908262000806565b5060408051808201909152600581526443414e445960d81b602082015260089062000076908262000806565b506009805460ff191660121790556a52b7d2dcc80cd2e4000000600c556a01a784379d99db42000000600d819055600e556a1419b9a3bada27fb800000600f55600a601381905560056014819055601582905560168290556017819055601891909155600260198181556001601a55601b91909155601c91909155601d819055601e556000601f5560248054630100010063ffffff00199091161790553480156200012057600080fd5b50604051620032e2380380620032e28339810160408190526200014391620008d2565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060128054336001600160a01b0319918216179091556002805482166001600160a01b03841617905560108054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d9190620008d2565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b69190620008d2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a9190620008d2565b601180546001600160a01b0319166001600160a01b03928316179055601054600c546200035b9230921690620005c9565b600c54306000908152600b602090815260408083206010546001600160a01b031684528252822092909255600191906200039d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081529280528183208054851660019081179091559085168352912080549092161790556015546014546013546200041192916200040a9190620006f5565b90620006f5565b601d556018546017546016546200042f92916200040a9190620006f5565b601e55601b54601a546019546200044d92916200040a9190620006f5565b601c55600160216000620004696000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556011548216815260219093528183208054851660019081179091553084528284208054861682179055600254909116835290822080549093168117909255602290620004eb6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526022845282812080548616600190811790915560115490921681526023909352908220805490931617909155600c5490600a90620005573390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620005ba91815260200190565b60405180910390a3506200091f565b6001600160a01b038316620006315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620006945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000628565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080620007048385620008fd565b905083811015620007585760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000628565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200078c57607f821691505b602082108103620007ad57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200080157600081815260208120601f850160051c81016020861015620007dc5750805b601f850160051c820191505b81811015620007fd57828155600101620007e8565b5050505b505050565b81516001600160401b0381111562000822576200082262000761565b6200083a8162000833845462000777565b84620007b3565b602080601f831160018114620008725760008415620008595750858301515b600019600386901b1c1916600185901b178555620007fd565b600085815260208120601f198616915b82811015620008a35788860151825594840194600190910190840162000882565b5085821015620008c25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008e557600080fd5b81516001600160a01b03811681146200075857600080fd5b808201808211156200075b57634e487b7160e01b600052601160045260246000fd5b6129b3806200092f6000396000f3fe6080604052600436106103905760003560e01c806382eefb43116101dc578063c59d484711610102578063dd62ed3e116100a0578063f872858a1161006f578063f872858a14610a4a578063fabf706314610a6b578063fb34a33614610a9a578063fe47e0c914610ab057600080fd5b8063dd62ed3e146109ae578063e207a92b146109f4578063f0cd1dac14610a14578063f2fde38b14610a2a57600080fd5b8063c9567bf9116100dc578063c9567bf91461094d578063ca70307514610962578063d89135cd14610978578063da00097d1461098e57600080fd5b8063c59d4847146108ce578063c78a789b146108fd578063c816841b1461092d57600080fd5b8063a08e671f1161017a578063a9059cbb11610149578063a9059cbb1461084e578063af254b721461086e578063c2d4640e1461088e578063c49b9a80146108ae57600080fd5b8063a08e671f146107e2578063a40dcda3146107f8578063a457c2d71461080e578063a5d69d1f1461082e57600080fd5b80638e223341116101b65780638e223341146107825780638f03aad514610798578063914eb66a146107b857806395d89b41146107cd57600080fd5b806382eefb431461072d5780638a8c523c146107435780638da5cb5b1461076457600080fd5b80633d98b9af116102c157806357e6adcb1161025f5780637b3a3ec61161022e5780637b3a3ec6146106cb5780637d1db4a5146106e1578063807c2d9c146106f75780638187f5161461070d57600080fd5b806357e6adcb1461063f5780635e2524551461065f578063667b511c1461067557806370a082311461069557600080fd5b80634a74bb021161029b5780634a74bb02146105aa5780634f1c2aa4146105c9578063526012e8146105df57806355324fa91461060f57600080fd5b80633d98b9af146105685780633f2516881461057e5780634a728e241461059457600080fd5b80632b112e491161032e57806331eca57e1161030857806331eca57e146104fc57806332cd6bcb1461051257806339509351146105285780633a4b66f11461054857600080fd5b80632b112e49146104a55780632cdae5cb146104ba578063313ce567146104da57600080fd5b80631694505e1161036a5780631694505e1461040e57806318160ddd1461044657806323b872dd146104655780632563ae831461048557600080fd5b80630614117a1461039c57806306fdde03146103b3578063095ea7b3146103de57600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610ac6565b005b3480156103bf57600080fd5b506103c8610b59565b6040516103d59190612483565b60405180910390f35b3480156103ea57600080fd5b506103fe6103f93660046124e9565b610beb565b60405190151581526020016103d5565b34801561041a57600080fd5b5060105461042e906001600160a01b031681565b6040516001600160a01b0390911681526020016103d5565b34801561045257600080fd5b50600c545b6040519081526020016103d5565b34801561047157600080fd5b506103fe610480366004612515565b610c02565b34801561049157600080fd5b506103b16104a036600461256b565b610c6b565b3480156104b157600080fd5b50610457610cb3565b3480156104c657600080fd5b506103b16104d5366004612586565b610cf3565b3480156104e657600080fd5b5060095460405160ff90911681526020016103d5565b34801561050857600080fd5b5061045760065481565b34801561051e57600080fd5b5061045760135481565b34801561053457600080fd5b506103fe6105433660046124e9565b610d47565b34801561055457600080fd5b5060025461042e906001600160a01b031681565b34801561057457600080fd5b5061045760185481565b34801561058a57600080fd5b50610457601a5481565b3480156105a057600080fd5b5061045760145481565b3480156105b657600080fd5b506024546103fe90610100900460ff1681565b3480156105d557600080fd5b50610457601b5481565b3480156105eb57600080fd5b506103fe6105fa3660046125bb565b60216020526000908152604090205460ff1681565b34801561061b57600080fd5b506103fe61062a3660046125bb565b60236020526000908152604090205460ff1681565b34801561064b57600080fd5b506103b161065a366004612586565b610d7d565b34801561066b57600080fd5b5061045760155481565b34801561068157600080fd5b506103b1610690366004612586565b610dd2565b3480156106a157600080fd5b506104576106b03660046125bb565b6001600160a01b03166000908152600a602052604090205490565b3480156106d757600080fd5b5061045760055481565b3480156106ed57600080fd5b50610457600d5481565b34801561070357600080fd5b50610457600e5481565b34801561071957600080fd5b506103b16107283660046125bb565b610e27565b34801561073957600080fd5b50610457601e5481565b34801561074f57600080fd5b506024546103fe90600160201b900460ff1681565b34801561077057600080fd5b506000546001600160a01b031661042e565b34801561078e57600080fd5b5061045760195481565b3480156107a457600080fd5b506103b16107b33660046125d8565b610e73565b3480156107c457600080fd5b506103b1610efd565b3480156107d957600080fd5b506103c8610f71565b3480156107ee57600080fd5b50610457601c5481565b34801561080457600080fd5b5061045760175481565b34801561081a57600080fd5b506103fe6108293660046124e9565b610f80565b34801561083a57600080fd5b506103b161084936600461256b565b610fcf565b34801561085a57600080fd5b506103fe6108693660046124e9565b611015565b34801561087a57600080fd5b506103fe6108893660046125d8565b611022565b34801561089a57600080fd5b506103b16108a93660046125f1565b6113f2565b3480156108ba57600080fd5b506103b16108c936600461256b565b611447565b3480156108da57600080fd5b5060035460045447604080519384526020840192909252908201526060016103d5565b34801561090957600080fd5b506103fe6109183660046125bb565b60226020526000908152604090205460ff1681565b34801561093957600080fd5b5060115461042e906001600160a01b031681565b34801561095957600080fd5b506103b16114c5565b34801561096e57600080fd5b50610457601f5481565b34801561098457600080fd5b5061045760035481565b34801561099a57600080fd5b506024546103fe9062010000900460ff1681565b3480156109ba57600080fd5b506104576109c936600461261d565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610a0057600080fd5b506103b1610a0f3660046125bb565b61156a565b348015610a2057600080fd5b50610457601d5481565b348015610a3657600080fd5b506103b1610a453660046125bb565b6115b8565b348015610a5657600080fd5b506024546103fe906301000000900460ff1681565b348015610a7757600080fd5b506103fe610a863660046125bb565b602080526000908152604090205460ff1681565b348015610aa657600080fd5b5061045760045481565b348015610abc57600080fd5b5061045760165481565b6000546001600160a01b03163314610af95760405162461bcd60e51b8152600401610af090612656565b60405180910390fd5b6000546001600160a01b03166001600160a01b03164760405160006040518083038185875af1925050503d8060008114610b4f576040519150601f19603f3d011682016040523d82523d6000602084013e505050565b606091505b505050565b606060078054610b689061268b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b949061268b565b8015610be15780601f10610bb657610100808354040283529160200191610be1565b820191906000526020600020905b815481529060010190602001808311610bc457829003601f168201915b5050505050905090565b6000610bf83384846116a2565b5060015b92915050565b6000610c0f8484846117c7565b610c618433610c5c85604051806060016040528060288152602001612911602891396001600160a01b038a166000908152600b602090815260408083203384529091529020549190611c3a565b6116a2565b5060019392505050565b6000546001600160a01b03163314610c955760405162461bcd60e51b8152600401610af090612656565b6024805491151563010000000263ff00000019909216919091179055565b61dead6000908152600a6020527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb54600c54610cee91611c74565b905090565b6000546001600160a01b03163314610d1d5760405162461bcd60e51b8152600401610af090612656565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610bf8918590610c5c9086611cbd565b6000546001600160a01b03163314610da75760405162461bcd60e51b8152600401610af090612656565b6001600160a01b03919091166000908152602160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dfc5760405162461bcd60e51b8152600401610af090612656565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e515760405162461bcd60e51b8152600401610af090612656565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e9d5760405162461bcd60e51b8152600401610af090612656565b6a52b7d2dcc80cd2e4000000811115610ef85760405162461bcd60e51b815260206004820152601960248201527f4d61782077616c6c65742073686f756c64206265206c657373000000000000006044820152606401610af0565b600d55565b6000546001600160a01b03163314610f275760405162461bcd60e51b8152600401610af090612656565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060088054610b689061268b565b6000610bf83384610c5c8560405180606001604052806025815260200161295960259139336000908152600b602090815260408083206001600160a01b038d1684529091529020549190611c3a565b6000546001600160a01b03163314610ff95760405162461bcd60e51b8152600401610af090612656565b60248054911515620100000262ff000019909216919091179055565b6000610bf83384846117c7565b60008161102e336106b0565b101561107c5760405162461bcd60e51b815260206004820152601860248201527f6e6f7420656e6f7567682066756e647320746f206275726e00000000000000006044820152606401610af0565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110b1576110b16126db565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906126f1565b81600181518110611141576111416126db565b6001600160a01b03928316602091820292909201015260105460405163d06ca61f60e01b8152600092919091169063d06ca61f906111859087908690600401612752565b600060405180830381865afa1580156111a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ca9190810190612773565b90506000670de0b6b3a764000047116111e657506006546111f6565b6005546111f39047612847565b90505b8082600184516112069190612869565b81518110611216576112166126db565b6020026020010151111561126c5760405162461bcd60e51b815260206004820152601760248201527f616d6f756e742067726561746572207468616e206361700000000000000000006044820152606401610af0565b816001835161127b9190612869565b8151811061128b5761128b6126db565b60200260200101514710156112e25760405162461bcd60e51b815260206004820152601c60248201527f6e6f7420656e6f7567682066756e647320696e20636f6e7472616374000000006044820152606401610af0565b6113123383600185516112f59190612869565b81518110611305576113056126db565b6020026020010151611d1c565b61131c3386611d52565b816001835161132b9190612869565b8151811061133b5761133b6126db565b602002602001015160046000828254611354919061287c565b92505081905550846003600082825461136d919061287c565b909155507f6ca5c7c2d43ebd8c6d3049382038bb2df58288440912f41fcd488a779ed943819050338684600186516113a59190612869565b815181106113b5576113b56126db565b602090810291909101810151604080516001600160a01b0390951685529184019290925282015260600160405180910390a1506001949350505050565b6000546001600160a01b0316331461141c5760405162461bcd60e51b8152600401610af090612656565b6019839055601a829055601b81905561143f816114398585611cbd565b90611cbd565b601c55505050565b6000546001600160a01b031633146114715760405162461bcd60e51b8152600401610af090612656565b602480548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906114ba90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114ef5760405162461bcd60e51b8152600401610af090612656565b602454600160201b900460ff161561153a5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99c81bdc195b995960921b6044820152606401610af0565b306000908152600a60205260409020546115549047611e86565b6024805464ff000000001916600160201b179055565b6000546001600160a01b031633146115945760405162461bcd60e51b8152600401610af090612656565b6001600160a01b03166000908152602360205260409020805460ff19166001179055565b6000546001600160a01b031633146115e25760405162461bcd60e51b8152600401610af090612656565b6001600160a01b0381166116475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166117045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af0565b6001600160a01b0382166117655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af0565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661182b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af0565b6001600160a01b03821661188d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af0565b6001600160a01b038216301480156118ae5750602454600160201b900460ff165b1561191d576002546040516311f9fbc960e21b81526001600160a01b03858116600483015260248201849052909116925082906347e7ef2490604401600060405180830381600087803b15801561190457600080fd5b505af1158015611918573d6000803e3d6000fd5b505050505b60245460ff161561193957611933838383611f5b565b50505050565b6001600160a01b03831660009081526022602052604090205460ff1615801561197b57506001600160a01b03821660009081526022602052604090205460ff16155b156119e357600d548111156119e35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610af0565b306000908152600a6020526040902054600f5481108015908190611a0a575060245460ff16155b8015611a2f57506001600160a01b03851660009081526023602052604090205460ff16155b8015611a425750602454610100900460ff165b15611a895760245462010000900460ff168015611a685750602454600160201b900460ff165b15611a7357600f5491505b611a89828410611a83578261202f565b8361202f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388166000908152600a9091529190912054611adb918590611c3a565b6001600160a01b0386166000908152600a602090815260408083209390935580529081205460ff1680611b2557506001600160a01b038516600090815260208052604090205460ff165b611b3957611b348686866120f3565b611b3b565b835b602454909150600160201b900460ff16611b5d57611b5a8686866120f3565b90505b6024546301000000900460ff168015611b8f57506001600160a01b03851660009081526021602052604090205460ff16155b15611bc557600e54611bba82611439886001600160a01b03166000908152600a602052604090205490565b1115611bc557600080fd5b6001600160a01b0385166000908152600a6020526040902054611be89082611cbd565b6001600160a01b038087166000818152600a6020526040908190209390935591519088169060008051602061293983398151915290611c2a9085815260200190565b60405180910390a3505050505050565b60008184841115611c5e5760405162461bcd60e51b8152600401610af09190612483565b506000611c6b8486612869565b95945050505050565b6000611cb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c3a565b9392505050565b600080611cca838561287c565b905083811015611cb65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610af0565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610b54573d6000803e3d6000fd5b6001600160a01b038216611db25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610af0565b6001600160a01b0382166000908152600a602052604090205481811015611e265760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610af0565b6001600160a01b0383166000908152600a602052604081208383039055600c8054849290611e55908490612869565b90915550506040518281526000906001600160a01b03851690600080516020612939833981519152906020016117ba565b601054611e9e9030906001600160a01b0316846116a2565b6010546001600160a01b031663f305d719823085600080611ec76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611f2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f54919061288f565b5050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a90915291822054611fac918490611c3a565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611fdb9083611cbd565b6001600160a01b038085166000818152600a602052604090819020939093559151908616906000805160206129398339815191529061201d9086815260200190565b60405180910390a35060019392505050565b6024805460ff191660011790819055600160201b900460ff16156120e6574761205782612203565b60006120634783611c74565b90506000612088601c546120826019548561239690919063ffffffff16565b90612418565b905060006120a7601c54612082601a548661239690919063ffffffff16565b905081156120c5576002546120c5906001600160a01b031683611d1c565b80156120e1576012546120e1906001600160a01b031682611d1c565b505050505b506024805460ff19169055565b6001600160a01b038316600090815260236020526040812054819060ff16156121535761213a60646120826014601f541161213057601d54612133565b60055b8690612396565b601f5490915061214b906001611cbd565b601f55612191565b6001600160a01b03841660009081526023602052604090205460ff16156121915761218e60646120826014601f541161213057601e54612133565b90505b80156121f957306000908152600a60205260409020546121b19082611cbd565b306000818152600a6020526040908190209290925590516001600160a01b03871690600080516020612939833981519152906121f09085815260200190565b60405180910390a35b611c6b8382611c74565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612238576122386126db565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b591906126f1565b816001815181106122c8576122c86126db565b6001600160a01b0392831660209182029290920101526010546122ee91309116846116a2565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906123279085906000908690309042906004016128bd565b600060405180830381600087803b15801561234157600080fd5b505af1158015612355573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161238a929190612752565b60405180910390a15050565b6000826000036123a857506000610bfc565b60006123b483856128f9565b9050826123c18583612847565b14611cb65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610af0565b6000611cb683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836124765760405162461bcd60e51b8152600401610af09190612483565b506000611c6b8486612847565b600060208083528351808285015260005b818110156124b057858101830151858201604001528201612494565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146124e657600080fd5b50565b600080604083850312156124fc57600080fd5b8235612507816124d1565b946020939093013593505050565b60008060006060848603121561252a57600080fd5b8335612535816124d1565b92506020840135612545816124d1565b929592945050506040919091013590565b8035801515811461256657600080fd5b919050565b60006020828403121561257d57600080fd5b611cb682612556565b6000806040838503121561259957600080fd5b82356125a4816124d1565b91506125b260208401612556565b90509250929050565b6000602082840312156125cd57600080fd5b8135611cb6816124d1565b6000602082840312156125ea57600080fd5b5035919050565b60008060006060848603121561260657600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561263057600080fd5b823561263b816124d1565b9150602083013561264b816124d1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061269f57607f821691505b6020821081036126bf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561270357600080fd5b8151611cb6816124d1565b600081518084526020808501945080840160005b838110156127475781516001600160a01b031687529582019590820190600101612722565b509495945050505050565b82815260406020820152600061276b604083018461270e565b949350505050565b6000602080838503121561278657600080fd5b825167ffffffffffffffff8082111561279e57600080fd5b818501915085601f8301126127b257600080fd5b8151818111156127c4576127c46126c5565b8060051b604051601f19603f830116810181811085821117156127e9576127e96126c5565b60405291825284820192508381018501918883111561280757600080fd5b938501935b828510156128255784518452938501939285019261280c565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b60008261286457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610bfc57610bfc612831565b80820180821115610bfc57610bfc612831565b6000806000606084860312156128a457600080fd5b8351925060208401519150604084015190509250925092565b85815284602082015260a0604082015260006128dc60a083018661270e565b6001600160a01b0394909416606083015250608001529392505050565b8082028115828204841417610bfc57610bfc61283156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220730b71b374cbe64ccb23c957d23e170b4e8fd4a73e6d5f4d97202327dd89dc8e64736f6c63430008140033000000000000000000000000313aac4f15b0afea968233f5e375dfe556fabf0f
Deployed Bytecode
0x6080604052600436106103905760003560e01c806382eefb43116101dc578063c59d484711610102578063dd62ed3e116100a0578063f872858a1161006f578063f872858a14610a4a578063fabf706314610a6b578063fb34a33614610a9a578063fe47e0c914610ab057600080fd5b8063dd62ed3e146109ae578063e207a92b146109f4578063f0cd1dac14610a14578063f2fde38b14610a2a57600080fd5b8063c9567bf9116100dc578063c9567bf91461094d578063ca70307514610962578063d89135cd14610978578063da00097d1461098e57600080fd5b8063c59d4847146108ce578063c78a789b146108fd578063c816841b1461092d57600080fd5b8063a08e671f1161017a578063a9059cbb11610149578063a9059cbb1461084e578063af254b721461086e578063c2d4640e1461088e578063c49b9a80146108ae57600080fd5b8063a08e671f146107e2578063a40dcda3146107f8578063a457c2d71461080e578063a5d69d1f1461082e57600080fd5b80638e223341116101b65780638e223341146107825780638f03aad514610798578063914eb66a146107b857806395d89b41146107cd57600080fd5b806382eefb431461072d5780638a8c523c146107435780638da5cb5b1461076457600080fd5b80633d98b9af116102c157806357e6adcb1161025f5780637b3a3ec61161022e5780637b3a3ec6146106cb5780637d1db4a5146106e1578063807c2d9c146106f75780638187f5161461070d57600080fd5b806357e6adcb1461063f5780635e2524551461065f578063667b511c1461067557806370a082311461069557600080fd5b80634a74bb021161029b5780634a74bb02146105aa5780634f1c2aa4146105c9578063526012e8146105df57806355324fa91461060f57600080fd5b80633d98b9af146105685780633f2516881461057e5780634a728e241461059457600080fd5b80632b112e491161032e57806331eca57e1161030857806331eca57e146104fc57806332cd6bcb1461051257806339509351146105285780633a4b66f11461054857600080fd5b80632b112e49146104a55780632cdae5cb146104ba578063313ce567146104da57600080fd5b80631694505e1161036a5780631694505e1461040e57806318160ddd1461044657806323b872dd146104655780632563ae831461048557600080fd5b80630614117a1461039c57806306fdde03146103b3578063095ea7b3146103de57600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610ac6565b005b3480156103bf57600080fd5b506103c8610b59565b6040516103d59190612483565b60405180910390f35b3480156103ea57600080fd5b506103fe6103f93660046124e9565b610beb565b60405190151581526020016103d5565b34801561041a57600080fd5b5060105461042e906001600160a01b031681565b6040516001600160a01b0390911681526020016103d5565b34801561045257600080fd5b50600c545b6040519081526020016103d5565b34801561047157600080fd5b506103fe610480366004612515565b610c02565b34801561049157600080fd5b506103b16104a036600461256b565b610c6b565b3480156104b157600080fd5b50610457610cb3565b3480156104c657600080fd5b506103b16104d5366004612586565b610cf3565b3480156104e657600080fd5b5060095460405160ff90911681526020016103d5565b34801561050857600080fd5b5061045760065481565b34801561051e57600080fd5b5061045760135481565b34801561053457600080fd5b506103fe6105433660046124e9565b610d47565b34801561055457600080fd5b5060025461042e906001600160a01b031681565b34801561057457600080fd5b5061045760185481565b34801561058a57600080fd5b50610457601a5481565b3480156105a057600080fd5b5061045760145481565b3480156105b657600080fd5b506024546103fe90610100900460ff1681565b3480156105d557600080fd5b50610457601b5481565b3480156105eb57600080fd5b506103fe6105fa3660046125bb565b60216020526000908152604090205460ff1681565b34801561061b57600080fd5b506103fe61062a3660046125bb565b60236020526000908152604090205460ff1681565b34801561064b57600080fd5b506103b161065a366004612586565b610d7d565b34801561066b57600080fd5b5061045760155481565b34801561068157600080fd5b506103b1610690366004612586565b610dd2565b3480156106a157600080fd5b506104576106b03660046125bb565b6001600160a01b03166000908152600a602052604090205490565b3480156106d757600080fd5b5061045760055481565b3480156106ed57600080fd5b50610457600d5481565b34801561070357600080fd5b50610457600e5481565b34801561071957600080fd5b506103b16107283660046125bb565b610e27565b34801561073957600080fd5b50610457601e5481565b34801561074f57600080fd5b506024546103fe90600160201b900460ff1681565b34801561077057600080fd5b506000546001600160a01b031661042e565b34801561078e57600080fd5b5061045760195481565b3480156107a457600080fd5b506103b16107b33660046125d8565b610e73565b3480156107c457600080fd5b506103b1610efd565b3480156107d957600080fd5b506103c8610f71565b3480156107ee57600080fd5b50610457601c5481565b34801561080457600080fd5b5061045760175481565b34801561081a57600080fd5b506103fe6108293660046124e9565b610f80565b34801561083a57600080fd5b506103b161084936600461256b565b610fcf565b34801561085a57600080fd5b506103fe6108693660046124e9565b611015565b34801561087a57600080fd5b506103fe6108893660046125d8565b611022565b34801561089a57600080fd5b506103b16108a93660046125f1565b6113f2565b3480156108ba57600080fd5b506103b16108c936600461256b565b611447565b3480156108da57600080fd5b5060035460045447604080519384526020840192909252908201526060016103d5565b34801561090957600080fd5b506103fe6109183660046125bb565b60226020526000908152604090205460ff1681565b34801561093957600080fd5b5060115461042e906001600160a01b031681565b34801561095957600080fd5b506103b16114c5565b34801561096e57600080fd5b50610457601f5481565b34801561098457600080fd5b5061045760035481565b34801561099a57600080fd5b506024546103fe9062010000900460ff1681565b3480156109ba57600080fd5b506104576109c936600461261d565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610a0057600080fd5b506103b1610a0f3660046125bb565b61156a565b348015610a2057600080fd5b50610457601d5481565b348015610a3657600080fd5b506103b1610a453660046125bb565b6115b8565b348015610a5657600080fd5b506024546103fe906301000000900460ff1681565b348015610a7757600080fd5b506103fe610a863660046125bb565b602080526000908152604090205460ff1681565b348015610aa657600080fd5b5061045760045481565b348015610abc57600080fd5b5061045760165481565b6000546001600160a01b03163314610af95760405162461bcd60e51b8152600401610af090612656565b60405180910390fd5b6000546001600160a01b03166001600160a01b03164760405160006040518083038185875af1925050503d8060008114610b4f576040519150601f19603f3d011682016040523d82523d6000602084013e505050565b606091505b505050565b606060078054610b689061268b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b949061268b565b8015610be15780601f10610bb657610100808354040283529160200191610be1565b820191906000526020600020905b815481529060010190602001808311610bc457829003601f168201915b5050505050905090565b6000610bf83384846116a2565b5060015b92915050565b6000610c0f8484846117c7565b610c618433610c5c85604051806060016040528060288152602001612911602891396001600160a01b038a166000908152600b602090815260408083203384529091529020549190611c3a565b6116a2565b5060019392505050565b6000546001600160a01b03163314610c955760405162461bcd60e51b8152600401610af090612656565b6024805491151563010000000263ff00000019909216919091179055565b61dead6000908152600a6020527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb54600c54610cee91611c74565b905090565b6000546001600160a01b03163314610d1d5760405162461bcd60e51b8152600401610af090612656565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610bf8918590610c5c9086611cbd565b6000546001600160a01b03163314610da75760405162461bcd60e51b8152600401610af090612656565b6001600160a01b03919091166000908152602160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dfc5760405162461bcd60e51b8152600401610af090612656565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e515760405162461bcd60e51b8152600401610af090612656565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e9d5760405162461bcd60e51b8152600401610af090612656565b6a52b7d2dcc80cd2e4000000811115610ef85760405162461bcd60e51b815260206004820152601960248201527f4d61782077616c6c65742073686f756c64206265206c657373000000000000006044820152606401610af0565b600d55565b6000546001600160a01b03163314610f275760405162461bcd60e51b8152600401610af090612656565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060088054610b689061268b565b6000610bf83384610c5c8560405180606001604052806025815260200161295960259139336000908152600b602090815260408083206001600160a01b038d1684529091529020549190611c3a565b6000546001600160a01b03163314610ff95760405162461bcd60e51b8152600401610af090612656565b60248054911515620100000262ff000019909216919091179055565b6000610bf83384846117c7565b60008161102e336106b0565b101561107c5760405162461bcd60e51b815260206004820152601860248201527f6e6f7420656e6f7567682066756e647320746f206275726e00000000000000006044820152606401610af0565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110b1576110b16126db565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906126f1565b81600181518110611141576111416126db565b6001600160a01b03928316602091820292909201015260105460405163d06ca61f60e01b8152600092919091169063d06ca61f906111859087908690600401612752565b600060405180830381865afa1580156111a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ca9190810190612773565b90506000670de0b6b3a764000047116111e657506006546111f6565b6005546111f39047612847565b90505b8082600184516112069190612869565b81518110611216576112166126db565b6020026020010151111561126c5760405162461bcd60e51b815260206004820152601760248201527f616d6f756e742067726561746572207468616e206361700000000000000000006044820152606401610af0565b816001835161127b9190612869565b8151811061128b5761128b6126db565b60200260200101514710156112e25760405162461bcd60e51b815260206004820152601c60248201527f6e6f7420656e6f7567682066756e647320696e20636f6e7472616374000000006044820152606401610af0565b6113123383600185516112f59190612869565b81518110611305576113056126db565b6020026020010151611d1c565b61131c3386611d52565b816001835161132b9190612869565b8151811061133b5761133b6126db565b602002602001015160046000828254611354919061287c565b92505081905550846003600082825461136d919061287c565b909155507f6ca5c7c2d43ebd8c6d3049382038bb2df58288440912f41fcd488a779ed943819050338684600186516113a59190612869565b815181106113b5576113b56126db565b602090810291909101810151604080516001600160a01b0390951685529184019290925282015260600160405180910390a1506001949350505050565b6000546001600160a01b0316331461141c5760405162461bcd60e51b8152600401610af090612656565b6019839055601a829055601b81905561143f816114398585611cbd565b90611cbd565b601c55505050565b6000546001600160a01b031633146114715760405162461bcd60e51b8152600401610af090612656565b602480548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906114ba90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114ef5760405162461bcd60e51b8152600401610af090612656565b602454600160201b900460ff161561153a5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99c81bdc195b995960921b6044820152606401610af0565b306000908152600a60205260409020546115549047611e86565b6024805464ff000000001916600160201b179055565b6000546001600160a01b031633146115945760405162461bcd60e51b8152600401610af090612656565b6001600160a01b03166000908152602360205260409020805460ff19166001179055565b6000546001600160a01b031633146115e25760405162461bcd60e51b8152600401610af090612656565b6001600160a01b0381166116475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166117045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af0565b6001600160a01b0382166117655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af0565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661182b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af0565b6001600160a01b03821661188d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af0565b6001600160a01b038216301480156118ae5750602454600160201b900460ff165b1561191d576002546040516311f9fbc960e21b81526001600160a01b03858116600483015260248201849052909116925082906347e7ef2490604401600060405180830381600087803b15801561190457600080fd5b505af1158015611918573d6000803e3d6000fd5b505050505b60245460ff161561193957611933838383611f5b565b50505050565b6001600160a01b03831660009081526022602052604090205460ff1615801561197b57506001600160a01b03821660009081526022602052604090205460ff16155b156119e357600d548111156119e35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610af0565b306000908152600a6020526040902054600f5481108015908190611a0a575060245460ff16155b8015611a2f57506001600160a01b03851660009081526023602052604090205460ff16155b8015611a425750602454610100900460ff165b15611a895760245462010000900460ff168015611a685750602454600160201b900460ff165b15611a7357600f5491505b611a89828410611a83578261202f565b8361202f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388166000908152600a9091529190912054611adb918590611c3a565b6001600160a01b0386166000908152600a602090815260408083209390935580529081205460ff1680611b2557506001600160a01b038516600090815260208052604090205460ff165b611b3957611b348686866120f3565b611b3b565b835b602454909150600160201b900460ff16611b5d57611b5a8686866120f3565b90505b6024546301000000900460ff168015611b8f57506001600160a01b03851660009081526021602052604090205460ff16155b15611bc557600e54611bba82611439886001600160a01b03166000908152600a602052604090205490565b1115611bc557600080fd5b6001600160a01b0385166000908152600a6020526040902054611be89082611cbd565b6001600160a01b038087166000818152600a6020526040908190209390935591519088169060008051602061293983398151915290611c2a9085815260200190565b60405180910390a3505050505050565b60008184841115611c5e5760405162461bcd60e51b8152600401610af09190612483565b506000611c6b8486612869565b95945050505050565b6000611cb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c3a565b9392505050565b600080611cca838561287c565b905083811015611cb65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610af0565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610b54573d6000803e3d6000fd5b6001600160a01b038216611db25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610af0565b6001600160a01b0382166000908152600a602052604090205481811015611e265760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610af0565b6001600160a01b0383166000908152600a602052604081208383039055600c8054849290611e55908490612869565b90915550506040518281526000906001600160a01b03851690600080516020612939833981519152906020016117ba565b601054611e9e9030906001600160a01b0316846116a2565b6010546001600160a01b031663f305d719823085600080611ec76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611f2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f54919061288f565b5050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a90915291822054611fac918490611c3a565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611fdb9083611cbd565b6001600160a01b038085166000818152600a602052604090819020939093559151908616906000805160206129398339815191529061201d9086815260200190565b60405180910390a35060019392505050565b6024805460ff191660011790819055600160201b900460ff16156120e6574761205782612203565b60006120634783611c74565b90506000612088601c546120826019548561239690919063ffffffff16565b90612418565b905060006120a7601c54612082601a548661239690919063ffffffff16565b905081156120c5576002546120c5906001600160a01b031683611d1c565b80156120e1576012546120e1906001600160a01b031682611d1c565b505050505b506024805460ff19169055565b6001600160a01b038316600090815260236020526040812054819060ff16156121535761213a60646120826014601f541161213057601d54612133565b60055b8690612396565b601f5490915061214b906001611cbd565b601f55612191565b6001600160a01b03841660009081526023602052604090205460ff16156121915761218e60646120826014601f541161213057601e54612133565b90505b80156121f957306000908152600a60205260409020546121b19082611cbd565b306000818152600a6020526040908190209290925590516001600160a01b03871690600080516020612939833981519152906121f09085815260200190565b60405180910390a35b611c6b8382611c74565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612238576122386126db565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b591906126f1565b816001815181106122c8576122c86126db565b6001600160a01b0392831660209182029290920101526010546122ee91309116846116a2565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906123279085906000908690309042906004016128bd565b600060405180830381600087803b15801561234157600080fd5b505af1158015612355573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161238a929190612752565b60405180910390a15050565b6000826000036123a857506000610bfc565b60006123b483856128f9565b9050826123c18583612847565b14611cb65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610af0565b6000611cb683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836124765760405162461bcd60e51b8152600401610af09190612483565b506000611c6b8486612847565b600060208083528351808285015260005b818110156124b057858101830151858201604001528201612494565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146124e657600080fd5b50565b600080604083850312156124fc57600080fd5b8235612507816124d1565b946020939093013593505050565b60008060006060848603121561252a57600080fd5b8335612535816124d1565b92506020840135612545816124d1565b929592945050506040919091013590565b8035801515811461256657600080fd5b919050565b60006020828403121561257d57600080fd5b611cb682612556565b6000806040838503121561259957600080fd5b82356125a4816124d1565b91506125b260208401612556565b90509250929050565b6000602082840312156125cd57600080fd5b8135611cb6816124d1565b6000602082840312156125ea57600080fd5b5035919050565b60008060006060848603121561260657600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561263057600080fd5b823561263b816124d1565b9150602083013561264b816124d1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061269f57607f821691505b6020821081036126bf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561270357600080fd5b8151611cb6816124d1565b600081518084526020808501945080840160005b838110156127475781516001600160a01b031687529582019590820190600101612722565b509495945050505050565b82815260406020820152600061276b604083018461270e565b949350505050565b6000602080838503121561278657600080fd5b825167ffffffffffffffff8082111561279e57600080fd5b818501915085601f8301126127b257600080fd5b8151818111156127c4576127c46126c5565b8060051b604051601f19603f830116810181811085821117156127e9576127e96126c5565b60405291825284820192508381018501918883111561280757600080fd5b938501935b828510156128255784518452938501939285019261280c565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b60008261286457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610bfc57610bfc612831565b80820180821115610bfc57610bfc612831565b6000806000606084860312156128a457600080fd5b8351925060208401519150604084015190509250925092565b85815284602082015260a0604082015260006128dc60a083018661270e565b6001600160a01b0394909416606083015250608001529392505050565b8082028115828204841417610bfc57610bfc61283156fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220730b71b374cbe64ccb23c957d23e170b4e8fd4a73e6d5f4d97202327dd89dc8e64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000313aac4f15b0afea968233f5e375dfe556fabf0f
-----Decoded View---------------
Arg [0] : _stakingAddress (address): 0x313aac4f15b0AfEA968233f5E375DFE556fabf0F
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000313aac4f15b0afea968233f5e375dfe556fabf0f
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.