Overview
Max Total Supply
73,000,000 DAOG
Holders
283 (0.00%)
Market
Price
$0.00 @ 0.000001 ETH
Onchain Market Cap
$141,658.69
Circulating Supply Market Cap
$117,056.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 DAOGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DAOTOKEN
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { error AddressInsufficientBalance(address account); error AddressEmptyCode(address target); error FailedInnerCall(); function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { if (address(this).balance < value) { revert AddressInsufficientBalance(address(this)); } (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata); } function verifyCallResultFromTarget( address target, bool success, bytes memory returndata ) internal view returns (bytes memory) { if (!success) { _revert(returndata); } else { if (returndata.length == 0 && target.code.length == 0) { revert AddressEmptyCode(target); } return returndata; } } function _revert(bytes memory returndata) private pure { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert FailedInnerCall(); } } } library SafeERC20 { using Address for address; error SafeERC20FailedOperation(address token); error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease); function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value))); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value))); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall(data); if (returndata.length != 0 && !abi.decode(returndata, (bool))) { revert SafeERC20FailedOperation(address(token)); } } } library MerkleProof { error MerkleProofInvalidMultiproof(); function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { return processProof(proof, leaf) == root; } function verifyCalldata(bytes32[] calldata proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { return processProofCalldata(proof, leaf) == root; } function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { computedHash = _hashPair(computedHash, proof[i]); } return computedHash; } function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { computedHash = _hashPair(computedHash, proof[i]); } return computedHash; } function multiProofVerify( bytes32[] memory proof, bool[] memory proofFlags, bytes32 root, bytes32[] memory leaves ) internal pure returns (bool) { return processMultiProof(proof, proofFlags, leaves) == root; } function multiProofVerifyCalldata( bytes32[] calldata proof, bool[] calldata proofFlags, bytes32 root, bytes32[] memory leaves ) internal pure returns (bool) { return processMultiProofCalldata(proof, proofFlags, leaves) == root; } function processMultiProof( bytes32[] memory proof, bool[] memory proofFlags, bytes32[] memory leaves ) internal pure returns (bytes32 merkleRoot) { uint256 leavesLen = leaves.length; uint256 proofLen = proof.length; uint256 totalHashes = proofFlags.length; if (leavesLen + proofLen != totalHashes + 1) { revert MerkleProofInvalidMultiproof(); } bytes32[] memory hashes = new bytes32[](totalHashes); uint256 leafPos = 0; uint256 hashPos = 0; uint256 proofPos = 0; for (uint256 i = 0; i < totalHashes; i++) { bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]; bytes32 b = proofFlags[i] ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) : proof[proofPos++]; hashes[i] = _hashPair(a, b); } if (totalHashes > 0) { if (proofPos != proofLen) { revert MerkleProofInvalidMultiproof(); } unchecked { return hashes[totalHashes - 1]; } } else if (leavesLen > 0) { return leaves[0]; } else { return proof[0]; } } function processMultiProofCalldata( bytes32[] calldata proof, bool[] calldata proofFlags, bytes32[] memory leaves ) internal pure returns (bytes32 merkleRoot) { uint256 leavesLen = leaves.length; uint256 proofLen = proof.length; uint256 totalHashes = proofFlags.length; if (leavesLen + proofLen != totalHashes + 1) { revert MerkleProofInvalidMultiproof(); } bytes32[] memory hashes = new bytes32[](totalHashes); uint256 leafPos = 0; uint256 hashPos = 0; uint256 proofPos = 0; for (uint256 i = 0; i < totalHashes; i++) { bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]; bytes32 b = proofFlags[i] ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) : proof[proofPos++]; hashes[i] = _hashPair(a, b); } if (totalHashes > 0) { if (proofPos != proofLen) { revert MerkleProofInvalidMultiproof(); } unchecked { return hashes[totalHashes - 1]; } } else if (leavesLen > 0) { return leaves[0]; } else { return proof[0]; } } function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) { return a < b ? _efficientHash(a, b) : _efficientHash(b, a); } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } } interface IUniswapV2Factory { 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 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; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; error OwnableUnauthorizedAccount(address account); error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract DAOTOKEN is Ownable, IERC20 { using SafeERC20 for IERC20; event ChangeBuyTax(uint256 prevTax, uint256 newTax); event ChangeSellTax(uint256 prevTax, uint256 newTax); bool private _swap; uint8 private constant _decimals = 18; uint16 public buyTax = 500; uint16 public sellTax = 500; uint16 public constant denominator = 10_000; uint256 public constant maxSupply = 100_000_000 ether; uint256 private _totalSupply = 61_000_000 ether; uint256 public threshold = 0.25 ether; uint256 public swapPct = 10_000; uint256 public immutable genesis; uint256 public startLiquidity; uint256 public constant firstDate2024 = 1704067200; // 1st Jan 2024 00:00 GMT+0000. address payable private _multiSig; address public immutable pair; bytes32 public OGRoot; bytes32 public annualRoot; string private constant _name = "DAOGAME"; string private constant _symbol = "DAOG"; IUniswapV2Router02 immutable private uniV2Router; uint256[] public remainingCommunity = [1_000_000 ether, 1_000_000 ether]; uint256[] public remainingTeam = [2_500_000 ether, 2_500_000 ether]; uint256[] public remainingRewards = [12_000_000 ether, 10_000_000 ether, 10_000_000 ether]; mapping(address => bool) private _isPool; mapping(address => uint256) private _balances; mapping(address => mapping (address => uint256)) private _allowances; mapping(address => bool) public exempted; mapping(address => bytes32[]) public proofs; constructor(address multiSig_, address router_) Ownable(msg.sender){ require( multiSig_ != address(0) && router_ != address(0), "zero address" ); genesis = block.timestamp; exempted[_msgSender()] = true; exempted[multiSig_] = true; exempted[address(this)] = true; _balances[multiSig_] = 1_000_000 ether; _balances[_msgSender()] = 60_000_000 ether; uniV2Router = IUniswapV2Router02(router_); // mainnet 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D _multiSig = payable(multiSig_); pair = IUniswapV2Factory(uniV2Router.factory()).createPair(uniV2Router.WETH(), address(this)); _isPool[pair] = true; } modifier lockSwap { _swap = true; _; _swap = false; } receive() external payable {} function name() external pure returns (string memory) { return _name; } function symbol() external pure returns (string memory) { return _symbol; } function decimals() external pure returns (uint8) { return _decimals; } function totalSupply() external view override returns(uint256) { return _totalSupply; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function isPool(address addr) external view returns (bool){ return _isPool[addr]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require (_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function setProof(bytes32[] memory _proof) external { proofs[_msgSender()] = _proof; } function setBuyTax(uint16 newTax) external onlyOwner { require (newTax <= 500, "tax cannot exceed 5%"); emit ChangeBuyTax(buyTax, newTax); buyTax = newTax; } function setSellTax(uint16 newTax) external onlyOwner { require (newTax <= 500, "tax cannot exceed 5%"); emit ChangeSellTax(sellTax, newTax); sellTax = newTax; } function setExempted(address _address, bool exempt_) external onlyOwner { exempted[_address] = exempt_; } function setPool(address addr, bool isPool_) external onlyOwner { require(addr != address(0), "zero address cannot be pool"); _isPool[addr] = isPool_; } function safeTokenSwap(uint256 amount) external onlyOwner { _tokensToETH(amount); } function safeETHtransfer() external onlyOwner { (bool success,) = _multiSig.call{value: address(this).balance}(""); require(success, "Failed to send Ether"); } function setOGRoot(bytes32 _OGRoot) external onlyOwner { OGRoot = _OGRoot; } function setAnnualRoot(bytes32 _annualRoot) external onlyOwner { annualRoot = _annualRoot; } function setStartLiquidity() external onlyOwner { require(startLiquidity == 0, "already set"); startLiquidity = block.timestamp; } function setThreshold(uint256 _threshold) external onlyOwner { threshold = _threshold; } function setSwapPct(uint256 _swapPct) external onlyOwner { require(_swapPct <= denominator, "wrong pct"); swapPct = _swapPct; } function mintCommunity() external onlyOwner { _mint(remainingCommunity); } function mintTeam() external onlyOwner { _mint(remainingTeam); } function mintRewards() external onlyOwner { uint256 available; if(block.timestamp >= firstDate2024 + 2 * (365.25 * 1 days)) { available += remainingRewards[2]; delete remainingRewards[2]; } if(block.timestamp >= firstDate2024 + (365.25 * 1 days)) { available += remainingRewards[1]; delete remainingRewards[1]; } if(block.timestamp >= firstDate2024) { available += remainingRewards[0]; delete remainingRewards[0]; } _mintAvailable(available); } function setMultiSig(address payable multiSig_) external onlyOwner { _multiSig = multiSig_; } function withdrawLiquidity() external onlyOwner { // lock 1 year require( startLiquidity != 0 && block.timestamp >= startLiquidity + (365.25 * 1 days), "not yet" ); uint256 lpBalance = IERC20(pair).balanceOf(address(this)); require(lpBalance != 0, "zero lp balance"); IERC20(pair).safeTransfer(_multiSig, lpBalance); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(amount != 0, "cannot transfer zero"); require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(_balances[sender] >= amount, "ERC20: transfer exceeds balance"); require(!(_isPool[sender] && _isPool[recipient]), "cannot transfer pool to pool"); require( startLiquidity != 0 || exempted[sender] || exempted[recipient], "unauthorized transfer" ); uint256 taxedAmount = amount; if(startLiquidity != 0){ uint256 tax; bool buy; bool sell; // if buy if(_isPool[sender]) { buy = true; } else if(_isPool[recipient]) { sell = true; } // whitelist verification if(buy && !exempted[recipient]) { if(block.timestamp <= startLiquidity + 1 hours / 2) { _verify(recipient, OGRoot); } else if(block.timestamp <= startLiquidity + 1 hours) { _verify(recipient, annualRoot); } // apply buy tax tax = amount * buyTax / denominator; } else if(sell && !exempted[sender]) { // apply sell tax tax = amount * sellTax / denominator; } if(tax != 0){ unchecked { taxedAmount -= tax; _balances[address(this)] += tax; } emit Transfer(sender, address(this), tax); } if(sell && _balances[address(this)] != 0) { address[] memory path = _getPath(); uint256 amountOut = uniV2Router.getAmountsOut(_balances[address(this)], path)[1]; // DAOG amount if (amountOut >= threshold && !_swap && swapPct != 0) { _tokensToETH(_balances[address(this)] * swapPct / denominator); } } } // 0.5% limit 1st 24h if(block.timestamp <= startLiquidity + 1 days ){ _checkLimits( recipient, taxedAmount, 50 ); // 1% limit next 72h } else if(block.timestamp <= startLiquidity + 4 days) { _checkLimits( recipient, taxedAmount, 100 ); } unchecked{ _balances[recipient] += taxedAmount; _balances[sender] -= amount; } emit Transfer(sender, recipient, taxedAmount); } function _mint(uint256[] storage remaining) private { uint256 available; if(block.timestamp >= genesis + (365.25 * 2 days) ) { available += remaining[1]; delete remaining[1]; } if(block.timestamp >= genesis + (365.25 * 1 days)) { available += remaining[0]; delete remaining[0]; } _mintAvailable(available); } function _checkLimits( address recipient, uint256 taxedAmount, uint8 pct ) private view { uint256 limit = maxSupply * pct / denominator; string memory pctStr = pct == 50 ? "0.5% supply": "1% supply"; if(!exempted[recipient] && !_isPool[recipient]) { require( _balances[recipient] + taxedAmount <= limit, string.concat("recipient balance ", pctStr) ); } } function _verify(address _whitelisted, bytes32 _root) private view { string memory group = _root == OGRoot ? "OG" : "Annual"; require( MerkleProof.verify( proofs[_whitelisted], _root, keccak256(abi.encodePacked(_whitelisted)) ), string.concat("not whitelisted ", group) ); } function _getPath() private view returns(address[] memory) { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniV2Router.WETH(); return path; } function _tokensToETH(uint256 amount) private lockSwap { if(_multiSig != address(0)){ address[] memory path = _getPath(); _approve(address(this), address(uniV2Router), amount); uniV2Router .swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, _multiSig, block.timestamp ); } } function _mintAvailable(uint256 available) private { require(available != 0, "nothing to withdraw"); unchecked { _balances[_multiSig] += available; _totalSupply += available; } require(_totalSupply <= maxSupply, "wrong supply"); emit Transfer(address(0), _multiSig, available); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"multiSig_","type":"address"},{"internalType":"address","name":"router_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"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":"prevTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"ChangeBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"ChangeSellTax","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":[],"name":"OGRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":[],"name":"annualRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":"buyTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"denominator","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exempted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstDate2024","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintCommunity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"proofs","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"remainingCommunity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"remainingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"remainingTeam","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeETHtransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"safeTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_annualRoot","type":"bytes32"}],"name":"setAnnualRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newTax","type":"uint16"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"exempt_","type":"bool"}],"name":"setExempted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"multiSig_","type":"address"}],"name":"setMultiSig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_OGRoot","type":"bytes32"}],"name":"setOGRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"isPool_","type":"bool"}],"name":"setPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"setProof","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newTax","type":"uint16"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setStartLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapPct","type":"uint256"}],"name":"setSwapPct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"threshold","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":"withdrawLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6000805463ffffffff60a81b1916627d007d60aa1b1790556a327540a046d49f5d0000006001556703782dace9d90000600290815561271060035561012060405269d3c21bcecceda100000060e081815261010091909152620000669160089190620003f7565b50604080518082019091526a021165458500521280000080825260208201526200009590600990600262000452565b50604080516060810182526a09ed194db19b238c00000081526a084595161401484a0000006020820181905291810191909152620000d890600a90600362000452565b50348015620000e657600080fd5b5060405162002dd638038062002dd68339810160408190526200010991620004cf565b33806200013157604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200013c81620003a7565b506001600160a01b038216158015906200015e57506001600160a01b03811615155b6200019b5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b604482015260640162000128565b42608052336000818152600e602090815260408083208054600160ff1991821681179092556001600160a01b0388811680875284872080548416851790553087528487208054909316909317909155818552600c845282852069d3c21bcecceda10000009055948452928190206a31a17e847807b1bc000000905592841660c0819052600580546001600160a01b031916909317909255825163c45a015560e01b81529251919263c45a015592600480830193928290030181865afa15801562000269573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028f919062000507565b6001600160a01b031663c9c6539660c0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000507565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000507565b6001600160a01b031660a08190526000908152600b60205260409020805460ff19166001179055506200052c9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000440579160200282015b828111156200044057825182906001600160501b031690559160200191906001019062000418565b506200044e9291506200049b565b5090565b82805482825590600052602060002090810192821562000440579160200282015b828111156200044057825182906001600160581b031690559160200191906001019062000473565b5b808211156200044e57600081556001016200049c565b80516001600160a01b0381168114620004ca57600080fd5b919050565b60008060408385031215620004e357600080fd5b620004ee83620004b2565b9150620004fe60208401620004b2565b90509250929050565b6000602082840312156200051a57600080fd5b6200052582620004b2565b9392505050565b60805160a05160c0516128496200058d6000396000818161183701528181611bd701528181611c160152611e330152600081816106dd01528181610d280152610ded0152600081816106a9015281816119fa0152611a7801526128496000f3fe60806040526004361061028b5760003560e01c80638da5cb5b1161015a578063b7e33dcc116100c1578063dd62ed3e1161007a578063dd62ed3e14610810578063ea3b1d6514610856578063f0b5336514610876578063f2fde38b1461088c578063f68d0429146108ac578063faecaade146108c257600080fd5b8063b7e33dcc1461073f578063b8c4a1871461075f578063bfe262cc1461077f578063c3b045e4146107af578063cc1776d3146107cf578063d5abeb01146107f157600080fd5b80639c138b7b116101135780639c138b7b146106625780639c77eead14610682578063a7f0b3de14610697578063a8aa1b31146106cb578063a9059cbb146106ff578063adf75e121461071f57600080fd5b80638da5cb5b146105a15780639008cba5146105d357806395d89b41146105e9578063960bfe041461061657806396ce07951461063657806396e3369b1461064c57600080fd5b80633d91bc33116101fe57806370a08231116101b757806370a08231146104f457806370e197b31461052a578063715018a61461053f5780637ea382c114610554578063852f813b146105695780638d5c6b491461058957600080fd5b80633d91bc331461041b57806342cde4e81461043b5780634f7041a5146104515780635b16ebb7146104865780635c6fdfe1146104bf5780635efe1a1f146104d457600080fd5b8063234cb05111610250578063234cb0511461036a57806323b872dd1461037f578063284d30ef1461039f5780632aa8404e146103bf578063313ce567146103df5780633d856fff146103fb57600080fd5b80625174a31461029757806306fdde03146102ca578063095ea7b31461030357806318160ddd1461033357806320bec12c1461034857600080fd5b3661029257005b600080fd5b3480156102a357600080fd5b506102b76102b23660046122a3565b6108d7565b6040519081526020015b60405180910390f35b3480156102d657600080fd5b5060408051808201909152600781526644414f47414d4560c81b60208201525b6040516102c191906122e8565b34801561030f57600080fd5b5061032361031e366004612330565b6108f8565b60405190151581526020016102c1565b34801561033f57600080fd5b506001546102b7565b34801561035457600080fd5b5061036861036336600461236a565b61090e565b005b34801561037657600080fd5b5061036861099c565b34801561038b57600080fd5b5061032361039a3660046123a3565b610ad1565b3480156103ab57600080fd5b506103686103ba3660046123e4565b610ba6565b3480156103cb57600080fd5b506103686103da3660046122a3565b610bd0565b3480156103eb57600080fd5b50604051601281526020016102c1565b34801561040757600080fd5b506102b7610416366004612330565b610bdd565b34801561042757600080fd5b5061036861043636600461246c565b610c0e565b34801561044757600080fd5b506102b760025481565b34801561045d57600080fd5b5060005461047390600160a81b900461ffff1681565b60405161ffff90911681526020016102c1565b34801561049257600080fd5b506103236104a13660046123e4565b6001600160a01b03166000908152600b602052604090205460ff1690565b3480156104cb57600080fd5b50610368610c32565b3480156104e057600080fd5b506103686104ef3660046122a3565b610c7e565b34801561050057600080fd5b506102b761050f3660046123e4565b6001600160a01b03166000908152600c602052604090205490565b34801561053657600080fd5b50610368610c8b565b34801561054b57600080fd5b50610368610c9f565b34801561056057600080fd5b50610368610cb1565b34801561057557600080fd5b506103686105843660046122a3565b610e16565b34801561059557600080fd5b506102b7636592008081565b3480156105ad57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c1565b3480156105df57600080fd5b506102b760035481565b3480156105f557600080fd5b5060408051808201909152600481526344414f4760e01b60208201526102f6565b34801561062257600080fd5b506103686106313660046122a3565b610e61565b34801561064257600080fd5b5061047361271081565b34801561065857600080fd5b506102b760045481565b34801561066e57600080fd5b5061036861067d366004612502565b610e6e565b34801561068e57600080fd5b50610368610f2e565b3480156106a357600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d757600080fd5b506105bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561070b57600080fd5b5061032361071a366004612330565b610f40565b34801561072b57600080fd5b5061036861073a36600461236a565b610f4d565b34801561074b57600080fd5b506102b761075a3660046122a3565b610f80565b34801561076b57600080fd5b5061036861077a3660046122a3565b610f90565b34801561078b57600080fd5b5061032361079a3660046123e4565b600e6020526000908152604090205460ff1681565b3480156107bb57600080fd5b506103686107ca366004612502565b610fa1565b3480156107db57600080fd5b5060005461047390600160b81b900461ffff1681565b3480156107fd57600080fd5b506102b76a52b7d2dcc80cd2e400000081565b34801561081c57600080fd5b506102b761082b366004612526565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561086257600080fd5b506102b76108713660046122a3565b611061565b34801561088257600080fd5b506102b760065481565b34801561089857600080fd5b506103686108a73660046123e4565b611071565b3480156108b857600080fd5b506102b760075481565b3480156108ce57600080fd5b506103686110ac565b600a81815481106108e757600080fd5b600091825260209091200154905081565b600061090533848461114e565b50600192915050565b610916611272565b6001600160a01b0382166109715760405162461bcd60e51b815260206004820152601b60248201527f7a65726f20616464726573732063616e6e6f7420626520706f6f6c000000000060448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6109a4611272565b60006109b863659200806303c30fc061256a565b4210610a0a57600a6002815481106109d2576109d2612582565b9060005260206000200154816109e8919061256a565b9050600a6002815481106109fe576109fe612582565b60009182526020822001555b610a1c63659200806301e187e061256a565b4210610a6e57600a600181548110610a3657610a36612582565b906000526020600020015481610a4c919061256a565b9050600a600181548110610a6257610a62612582565b60009182526020822001555b63659200804210610ac557600a600081548110610a8d57610a8d612582565b906000526020600020015481610aa3919061256a565b9050600a600081548110610ab957610ab9612582565b60009182526020822001555b610ace8161129f565b50565b6001600160a01b0383166000908152600d60209081526040808320338452909152812054821115610b555760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610968565b610b6084848461139d565b6001600160a01b0384166000908152600d6020908152604080832033808552925290912054610b9b918691610b96908690612598565b61114e565b5060015b9392505050565b610bae611272565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610bd8611272565b600755565b600f6020528160005260406000208181548110610bf957600080fd5b90600052602060002001600091509150505481565b336000908152600f602090815260409091208251610c2e92840190612243565b5050565b610c3a611272565b60045415610c785760405162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b6044820152606401610968565b42600455565b610c86611272565b600655565b610c93611272565b610c9d60096119f3565b565b610ca7611272565b610c9d6000611afa565b610cb9611272565b60045415801590610cda5750600454610cd6906301e187e061256a565b4210155b610d105760405162461bcd60e51b81526020600482015260076024820152661b9bdd081e595d60ca1b6044820152606401610968565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906125af565b905080610ddc5760405162461bcd60e51b815260206004820152600f60248201526e7a65726f206c702062616c616e636560881b6044820152606401610968565b600554610ace906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683611b4a565b610e1e611272565b612710811115610e5c5760405162461bcd60e51b81526020600482015260096024820152681ddc9bdb99c81c18dd60ba1b6044820152606401610968565b600355565b610e69611272565b600255565b610e76611272565b6101f48161ffff161115610ec35760405162461bcd60e51b81526020600482015260146024820152737461782063616e6e6f742065786365656420352560601b6044820152606401610968565b6000546040805161ffff600160b81b9093048316815291831660208301527f6d9880198c1159f52707b61a6882da80275b14b90bd9e5f332b3ed9d39eeb42c910160405180910390a16000805461ffff909216600160b81b0261ffff60b81b19909216919091179055565b610f36611272565b610c9d60086119f3565b600061090533848461139d565b610f55611272565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b600981815481106108e757600080fd5b610f98611272565b610ace81611ba1565b610fa9611272565b6101f48161ffff161115610ff65760405162461bcd60e51b81526020600482015260146024820152737461782063616e6e6f742065786365656420352560601b6044820152606401610968565b6000546040805161ffff600160a81b9093048316815291831660208301527fae004c20b38d4d71a0cf8304ec672eacfd34dedc962fa7e5e82d9e55ac7444c0910160405180910390a16000805461ffff909216600160a81b0261ffff60a81b19909216919091179055565b600881815481106108e757600080fd5b611079611272565b6001600160a01b0381166110a357604051631e4fbdf760e01b815260006004820152602401610968565b610ace81611afa565b6110b4611272565b6005546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611101576040519150601f19603f3d011682016040523d82523d6000602084013e611106565b606091505b5050905080610ace5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610968565b6001600160a01b0383166111b05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610968565b6001600160a01b0382166112115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610968565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03163314610c9d5760405163118cdaa760e01b8152336004820152602401610968565b806112e25760405162461bcd60e51b81526020600482015260136024820152726e6f7468696e6720746f20776974686472617760681b6044820152606401610968565b6005546001600160a01b03166000908152600c60205260409020805482019055600180548201908190556a52b7d2dcc80cd2e400000010156113555760405162461bcd60e51b815260206004820152600c60248201526b77726f6e6720737570706c7960a01b6044820152606401610968565b6005546040518281526001600160a01b03909116906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b806113e15760405162461bcd60e51b815260206004820152601460248201527363616e6e6f74207472616e73666572207a65726f60601b6044820152606401610968565b6001600160a01b0383166114455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610968565b6001600160a01b0382166114a75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610968565b6001600160a01b0383166000908152600c602052604090205481111561150f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220657863656564732062616c616e6365006044820152606401610968565b6001600160a01b0383166000908152600b602052604090205460ff16801561154f57506001600160a01b0382166000908152600b602052604090205460ff165b1561159c5760405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f74207472616e7366657220706f6f6c20746f20706f6f6c000000006044820152606401610968565b6004541515806115c457506001600160a01b0383166000908152600e602052604090205460ff165b806115e757506001600160a01b0382166000908152600e602052604090205460ff165b61162b5760405162461bcd60e51b81526020600482015260156024820152743ab730baba3437b934bd32b2103a3930b739b332b960591b6044820152606401610968565b600454819015611937576001600160a01b0384166000908152600b60205260408120548190819060ff16156116635760019150611688565b6001600160a01b0386166000908152600b602052604090205460ff1615611688575060015b8180156116ae57506001600160a01b0386166000908152600e602052604090205460ff16155b15611727576004546116c29061070861256a565b42116116d9576116d486600654611c9c565b6116fa565b6004546116e890610e1061256a565b42116116fa576116fa86600754611c9c565b6000546127109061171690600160a81b900461ffff16876125c8565b61172091906125e7565b925061177b565b80801561174d57506001600160a01b0387166000908152600e602052604090205460ff16155b1561177b576000546127109061176e90600160b81b900461ffff16876125c8565b61177891906125e7565b92505b82156117e157306000818152600c6020526040908190208054860190555194849003946001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d89087815260200190565b60405180910390a35b8080156117fc5750306000908152600c602052604090205415155b1561193357600061180b611dd8565b306000908152600c602052604080822054905163d06ca61f60e01b815292935090916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d06ca61f9161186d9190869060040161264d565b600060405180830381865afa15801561188a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118b2919081019061266e565b6001815181106118c4576118c4612582565b6020026020010151905060025481101580156118ea5750600054600160a01b900460ff16155b80156118f7575060035415155b1561193057600354306000908152600c6020526040902054611930916127109161192191906125c8565b61192b91906125e7565b611ba1565b50505b5050505b600454611947906201518061256a565b421161195e5761195983826032611ee3565b611980565b60045461196e906205460061256a565b42116119805761198083826064611ee3565b6001600160a01b038084166000818152600c6020526040808220805486019055928716808252908390208054869003905591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119e59085815260200190565b60405180910390a350505050565b6000611a237f00000000000000000000000000000000000000000000000000000000000000006303c30fc061256a565b4210611a735781600181548110611a3c57611a3c612582565b906000526020600020015481611a52919061256a565b905081600181548110611a6757611a67612582565b60009182526020822001555b611aa17f00000000000000000000000000000000000000000000000000000000000000006301e187e061256a565b4210611af15781600081548110611aba57611aba612582565b906000526020600020015481611ad0919061256a565b905081600081548110611ae557611ae5612582565b60009182526020822001555b610c2e8161129f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611b9c90849061201e565b505050565b6000805460ff60a01b1916600160a01b1790556005546001600160a01b031615611c8c576000611bcf611dd8565b9050611bfc307f00000000000000000000000000000000000000000000000000000000000000008461114e565b60055460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac94792611c589287926000928892919091169042906004016126f4565b600060405180830381600087803b158015611c7257600080fd5b505af1158015611c86573d6000803e3d6000fd5b50505050505b506000805460ff60a01b19169055565b60006006548214611ccb5760405180604001604052806006815260200165105b9b9d585b60d21b815250611ce7565b604051806040016040528060028152602001614f4760f01b8152505b6001600160a01b0384166000908152600f60209081526040918290208054835181840281018401909452808452939450611d94939091830182828015611d4c57602002820191906000526020600020905b815481526020019060010190808311611d38575b50506040516bffffffffffffffffffffffff1960608a901b1660208201528793506034019150611d799050565b60405160208183030381529060405280519060200120612081565b81604051602001611da59190612730565b60405160208183030381529060405290611dd25760405162461bcd60e51b815260040161096891906122e8565b50505050565b604080516002808252606080830184529260009291906020830190803683370190505090503081600081518110611e1157611e11612582565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190612768565b81600181518110611ec657611ec6612582565b6001600160a01b0390921660209283029190910190910152919050565b6000612710611f0060ff84166a52b7d2dcc80cd2e40000006125c8565b611f0a91906125e7565b905060008260ff16603214611f405760405180604001604052806009815260200168312520737570706c7960b81b815250611f65565b6040518060400160405280600b81526020016a302e352520737570706c7960a81b8152505b6001600160a01b0386166000908152600e602052604090205490915060ff16158015611faa57506001600160a01b0385166000908152600b602052604090205460ff16155b15612017576001600160a01b0385166000908152600c60205260409020548290611fd590869061256a565b111581604051602001611fe89190612785565b604051602081830303815290604052906120155760405162461bcd60e51b815260040161096891906122e8565b505b5050505050565b60006120336001600160a01b03841683612097565b9050805160001415801561205857508080602001905181019061205691906127bf565b155b15611b9c57604051635274afe760e01b81526001600160a01b0384166004820152602401610968565b60008261208e85846120a5565b14949350505050565b6060610b9f838360006120f2565b600081815b84518110156120ea576120d6828683815181106120c9576120c9612582565b602002602001015161218f565b9150806120e2816127dc565b9150506120aa565b509392505050565b6060814710156121175760405163cd78605960e01b8152306004820152602401610968565b600080856001600160a01b0316848660405161213391906127f7565b60006040518083038185875af1925050503d8060008114612170576040519150601f19603f3d011682016040523d82523d6000602084013e612175565b606091505b50915091506121858683836121be565b9695505050505050565b60008183106121ab576000828152602084905260409020610b9f565b6000838152602083905260409020610b9f565b6060826121d3576121ce8261221a565b610b9f565b81511580156121ea57506001600160a01b0384163b155b1561221357604051639996b31560e01b81526001600160a01b0385166004820152602401610968565b5080610b9f565b80511561222a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090810192821561227e579160200282015b8281111561227e578251825591602001919060010190612263565b5061228a92915061228e565b5090565b5b8082111561228a576000815560010161228f565b6000602082840312156122b557600080fd5b5035919050565b60005b838110156122d75781810151838201526020016122bf565b83811115611dd25750506000910152565b60208152600082518060208401526123078160408501602087016122bc565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610ace57600080fd5b6000806040838503121561234357600080fd5b823561234e8161231b565b946020939093013593505050565b8015158114610ace57600080fd5b6000806040838503121561237d57600080fd5b82356123888161231b565b915060208301356123988161235c565b809150509250929050565b6000806000606084860312156123b857600080fd5b83356123c38161231b565b925060208401356123d38161231b565b929592945050506040919091013590565b6000602082840312156123f657600080fd5b8135610b9f8161231b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561244057612440612401565b604052919050565b600067ffffffffffffffff82111561246257612462612401565b5060051b60200190565b6000602080838503121561247f57600080fd5b823567ffffffffffffffff81111561249657600080fd5b8301601f810185136124a757600080fd5b80356124ba6124b582612448565b612417565b81815260059190911b820183019083810190878311156124d957600080fd5b928401925b828410156124f7578335825292840192908401906124de565b979650505050505050565b60006020828403121561251457600080fd5b813561ffff81168114610b9f57600080fd5b6000806040838503121561253957600080fd5b82356125448161231b565b915060208301356123988161231b565b634e487b7160e01b600052601160045260246000fd5b6000821982111561257d5761257d612554565b500190565b634e487b7160e01b600052603260045260246000fd5b6000828210156125aa576125aa612554565b500390565b6000602082840312156125c157600080fd5b5051919050565b60008160001904831182151516156125e2576125e2612554565b500290565b60008261260457634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156126425781516001600160a01b03168752958201959082019060010161261d565b509495945050505050565b8281526040602082015260006126666040830184612609565b949350505050565b6000602080838503121561268157600080fd5b825167ffffffffffffffff81111561269857600080fd5b8301601f810185136126a957600080fd5b80516126b76124b582612448565b81815260059190911b820183019083810190878311156126d657600080fd5b928401925b828410156124f7578351825292840192908401906126db565b85815284602082015260a06040820152600061271360a0830186612609565b6001600160a01b0394909416606083015250608001529392505050565b6f03737ba103bb434ba32b634b9ba32b2160851b81526000825161275b8160108501602087016122bc565b9190910160100192915050565b60006020828403121561277a57600080fd5b8151610b9f8161231b565b7103932b1b4b834b2b73a103130b630b731b2960751b8152600082516127b28160128501602087016122bc565b9190910160120192915050565b6000602082840312156127d157600080fd5b8151610b9f8161235c565b60006000198214156127f0576127f0612554565b5060010190565b600082516128098184602087016122bc565b919091019291505056fea2646970667358221220bbb92865c888d40c0c16c3cbf238d016430c8bb1028b91160b030c47d1925aa964736f6c634300080c00330000000000000000000000007f6af9c71ec60f282b01575a4be0930150013c530000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x60806040526004361061028b5760003560e01c80638da5cb5b1161015a578063b7e33dcc116100c1578063dd62ed3e1161007a578063dd62ed3e14610810578063ea3b1d6514610856578063f0b5336514610876578063f2fde38b1461088c578063f68d0429146108ac578063faecaade146108c257600080fd5b8063b7e33dcc1461073f578063b8c4a1871461075f578063bfe262cc1461077f578063c3b045e4146107af578063cc1776d3146107cf578063d5abeb01146107f157600080fd5b80639c138b7b116101135780639c138b7b146106625780639c77eead14610682578063a7f0b3de14610697578063a8aa1b31146106cb578063a9059cbb146106ff578063adf75e121461071f57600080fd5b80638da5cb5b146105a15780639008cba5146105d357806395d89b41146105e9578063960bfe041461061657806396ce07951461063657806396e3369b1461064c57600080fd5b80633d91bc33116101fe57806370a08231116101b757806370a08231146104f457806370e197b31461052a578063715018a61461053f5780637ea382c114610554578063852f813b146105695780638d5c6b491461058957600080fd5b80633d91bc331461041b57806342cde4e81461043b5780634f7041a5146104515780635b16ebb7146104865780635c6fdfe1146104bf5780635efe1a1f146104d457600080fd5b8063234cb05111610250578063234cb0511461036a57806323b872dd1461037f578063284d30ef1461039f5780632aa8404e146103bf578063313ce567146103df5780633d856fff146103fb57600080fd5b80625174a31461029757806306fdde03146102ca578063095ea7b31461030357806318160ddd1461033357806320bec12c1461034857600080fd5b3661029257005b600080fd5b3480156102a357600080fd5b506102b76102b23660046122a3565b6108d7565b6040519081526020015b60405180910390f35b3480156102d657600080fd5b5060408051808201909152600781526644414f47414d4560c81b60208201525b6040516102c191906122e8565b34801561030f57600080fd5b5061032361031e366004612330565b6108f8565b60405190151581526020016102c1565b34801561033f57600080fd5b506001546102b7565b34801561035457600080fd5b5061036861036336600461236a565b61090e565b005b34801561037657600080fd5b5061036861099c565b34801561038b57600080fd5b5061032361039a3660046123a3565b610ad1565b3480156103ab57600080fd5b506103686103ba3660046123e4565b610ba6565b3480156103cb57600080fd5b506103686103da3660046122a3565b610bd0565b3480156103eb57600080fd5b50604051601281526020016102c1565b34801561040757600080fd5b506102b7610416366004612330565b610bdd565b34801561042757600080fd5b5061036861043636600461246c565b610c0e565b34801561044757600080fd5b506102b760025481565b34801561045d57600080fd5b5060005461047390600160a81b900461ffff1681565b60405161ffff90911681526020016102c1565b34801561049257600080fd5b506103236104a13660046123e4565b6001600160a01b03166000908152600b602052604090205460ff1690565b3480156104cb57600080fd5b50610368610c32565b3480156104e057600080fd5b506103686104ef3660046122a3565b610c7e565b34801561050057600080fd5b506102b761050f3660046123e4565b6001600160a01b03166000908152600c602052604090205490565b34801561053657600080fd5b50610368610c8b565b34801561054b57600080fd5b50610368610c9f565b34801561056057600080fd5b50610368610cb1565b34801561057557600080fd5b506103686105843660046122a3565b610e16565b34801561059557600080fd5b506102b7636592008081565b3480156105ad57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c1565b3480156105df57600080fd5b506102b760035481565b3480156105f557600080fd5b5060408051808201909152600481526344414f4760e01b60208201526102f6565b34801561062257600080fd5b506103686106313660046122a3565b610e61565b34801561064257600080fd5b5061047361271081565b34801561065857600080fd5b506102b760045481565b34801561066e57600080fd5b5061036861067d366004612502565b610e6e565b34801561068e57600080fd5b50610368610f2e565b3480156106a357600080fd5b506102b77f00000000000000000000000000000000000000000000000000000000652c16f381565b3480156106d757600080fd5b506105bb7f000000000000000000000000ff4d9a735a4eb10c4889bc71d49111662efa856681565b34801561070b57600080fd5b5061032361071a366004612330565b610f40565b34801561072b57600080fd5b5061036861073a36600461236a565b610f4d565b34801561074b57600080fd5b506102b761075a3660046122a3565b610f80565b34801561076b57600080fd5b5061036861077a3660046122a3565b610f90565b34801561078b57600080fd5b5061032361079a3660046123e4565b600e6020526000908152604090205460ff1681565b3480156107bb57600080fd5b506103686107ca366004612502565b610fa1565b3480156107db57600080fd5b5060005461047390600160b81b900461ffff1681565b3480156107fd57600080fd5b506102b76a52b7d2dcc80cd2e400000081565b34801561081c57600080fd5b506102b761082b366004612526565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561086257600080fd5b506102b76108713660046122a3565b611061565b34801561088257600080fd5b506102b760065481565b34801561089857600080fd5b506103686108a73660046123e4565b611071565b3480156108b857600080fd5b506102b760075481565b3480156108ce57600080fd5b506103686110ac565b600a81815481106108e757600080fd5b600091825260209091200154905081565b600061090533848461114e565b50600192915050565b610916611272565b6001600160a01b0382166109715760405162461bcd60e51b815260206004820152601b60248201527f7a65726f20616464726573732063616e6e6f7420626520706f6f6c000000000060448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6109a4611272565b60006109b863659200806303c30fc061256a565b4210610a0a57600a6002815481106109d2576109d2612582565b9060005260206000200154816109e8919061256a565b9050600a6002815481106109fe576109fe612582565b60009182526020822001555b610a1c63659200806301e187e061256a565b4210610a6e57600a600181548110610a3657610a36612582565b906000526020600020015481610a4c919061256a565b9050600a600181548110610a6257610a62612582565b60009182526020822001555b63659200804210610ac557600a600081548110610a8d57610a8d612582565b906000526020600020015481610aa3919061256a565b9050600a600081548110610ab957610ab9612582565b60009182526020822001555b610ace8161129f565b50565b6001600160a01b0383166000908152600d60209081526040808320338452909152812054821115610b555760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610968565b610b6084848461139d565b6001600160a01b0384166000908152600d6020908152604080832033808552925290912054610b9b918691610b96908690612598565b61114e565b5060015b9392505050565b610bae611272565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610bd8611272565b600755565b600f6020528160005260406000208181548110610bf957600080fd5b90600052602060002001600091509150505481565b336000908152600f602090815260409091208251610c2e92840190612243565b5050565b610c3a611272565b60045415610c785760405162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b6044820152606401610968565b42600455565b610c86611272565b600655565b610c93611272565b610c9d60096119f3565b565b610ca7611272565b610c9d6000611afa565b610cb9611272565b60045415801590610cda5750600454610cd6906301e187e061256a565b4210155b610d105760405162461bcd60e51b81526020600482015260076024820152661b9bdd081e595d60ca1b6044820152606401610968565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000ff4d9a735a4eb10c4889bc71d49111662efa85666001600160a01b0316906370a0823190602401602060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906125af565b905080610ddc5760405162461bcd60e51b815260206004820152600f60248201526e7a65726f206c702062616c616e636560881b6044820152606401610968565b600554610ace906001600160a01b037f000000000000000000000000ff4d9a735a4eb10c4889bc71d49111662efa85668116911683611b4a565b610e1e611272565b612710811115610e5c5760405162461bcd60e51b81526020600482015260096024820152681ddc9bdb99c81c18dd60ba1b6044820152606401610968565b600355565b610e69611272565b600255565b610e76611272565b6101f48161ffff161115610ec35760405162461bcd60e51b81526020600482015260146024820152737461782063616e6e6f742065786365656420352560601b6044820152606401610968565b6000546040805161ffff600160b81b9093048316815291831660208301527f6d9880198c1159f52707b61a6882da80275b14b90bd9e5f332b3ed9d39eeb42c910160405180910390a16000805461ffff909216600160b81b0261ffff60b81b19909216919091179055565b610f36611272565b610c9d60086119f3565b600061090533848461139d565b610f55611272565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b600981815481106108e757600080fd5b610f98611272565b610ace81611ba1565b610fa9611272565b6101f48161ffff161115610ff65760405162461bcd60e51b81526020600482015260146024820152737461782063616e6e6f742065786365656420352560601b6044820152606401610968565b6000546040805161ffff600160a81b9093048316815291831660208301527fae004c20b38d4d71a0cf8304ec672eacfd34dedc962fa7e5e82d9e55ac7444c0910160405180910390a16000805461ffff909216600160a81b0261ffff60a81b19909216919091179055565b600881815481106108e757600080fd5b611079611272565b6001600160a01b0381166110a357604051631e4fbdf760e01b815260006004820152602401610968565b610ace81611afa565b6110b4611272565b6005546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611101576040519150601f19603f3d011682016040523d82523d6000602084013e611106565b606091505b5050905080610ace5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610968565b6001600160a01b0383166111b05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610968565b6001600160a01b0382166112115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610968565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03163314610c9d5760405163118cdaa760e01b8152336004820152602401610968565b806112e25760405162461bcd60e51b81526020600482015260136024820152726e6f7468696e6720746f20776974686472617760681b6044820152606401610968565b6005546001600160a01b03166000908152600c60205260409020805482019055600180548201908190556a52b7d2dcc80cd2e400000010156113555760405162461bcd60e51b815260206004820152600c60248201526b77726f6e6720737570706c7960a01b6044820152606401610968565b6005546040518281526001600160a01b03909116906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b806113e15760405162461bcd60e51b815260206004820152601460248201527363616e6e6f74207472616e73666572207a65726f60601b6044820152606401610968565b6001600160a01b0383166114455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610968565b6001600160a01b0382166114a75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610968565b6001600160a01b0383166000908152600c602052604090205481111561150f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220657863656564732062616c616e6365006044820152606401610968565b6001600160a01b0383166000908152600b602052604090205460ff16801561154f57506001600160a01b0382166000908152600b602052604090205460ff165b1561159c5760405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f74207472616e7366657220706f6f6c20746f20706f6f6c000000006044820152606401610968565b6004541515806115c457506001600160a01b0383166000908152600e602052604090205460ff165b806115e757506001600160a01b0382166000908152600e602052604090205460ff165b61162b5760405162461bcd60e51b81526020600482015260156024820152743ab730baba3437b934bd32b2103a3930b739b332b960591b6044820152606401610968565b600454819015611937576001600160a01b0384166000908152600b60205260408120548190819060ff16156116635760019150611688565b6001600160a01b0386166000908152600b602052604090205460ff1615611688575060015b8180156116ae57506001600160a01b0386166000908152600e602052604090205460ff16155b15611727576004546116c29061070861256a565b42116116d9576116d486600654611c9c565b6116fa565b6004546116e890610e1061256a565b42116116fa576116fa86600754611c9c565b6000546127109061171690600160a81b900461ffff16876125c8565b61172091906125e7565b925061177b565b80801561174d57506001600160a01b0387166000908152600e602052604090205460ff16155b1561177b576000546127109061176e90600160b81b900461ffff16876125c8565b61177891906125e7565b92505b82156117e157306000818152600c6020526040908190208054860190555194849003946001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d89087815260200190565b60405180910390a35b8080156117fc5750306000908152600c602052604090205415155b1561193357600061180b611dd8565b306000908152600c602052604080822054905163d06ca61f60e01b815292935090916001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169163d06ca61f9161186d9190869060040161264d565b600060405180830381865afa15801561188a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118b2919081019061266e565b6001815181106118c4576118c4612582565b6020026020010151905060025481101580156118ea5750600054600160a01b900460ff16155b80156118f7575060035415155b1561193057600354306000908152600c6020526040902054611930916127109161192191906125c8565b61192b91906125e7565b611ba1565b50505b5050505b600454611947906201518061256a565b421161195e5761195983826032611ee3565b611980565b60045461196e906205460061256a565b42116119805761198083826064611ee3565b6001600160a01b038084166000818152600c6020526040808220805486019055928716808252908390208054869003905591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119e59085815260200190565b60405180910390a350505050565b6000611a237f00000000000000000000000000000000000000000000000000000000652c16f36303c30fc061256a565b4210611a735781600181548110611a3c57611a3c612582565b906000526020600020015481611a52919061256a565b905081600181548110611a6757611a67612582565b60009182526020822001555b611aa17f00000000000000000000000000000000000000000000000000000000652c16f36301e187e061256a565b4210611af15781600081548110611aba57611aba612582565b906000526020600020015481611ad0919061256a565b905081600081548110611ae557611ae5612582565b60009182526020822001555b610c2e8161129f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611b9c90849061201e565b505050565b6000805460ff60a01b1916600160a01b1790556005546001600160a01b031615611c8c576000611bcf611dd8565b9050611bfc307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461114e565b60055460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac94792611c589287926000928892919091169042906004016126f4565b600060405180830381600087803b158015611c7257600080fd5b505af1158015611c86573d6000803e3d6000fd5b50505050505b506000805460ff60a01b19169055565b60006006548214611ccb5760405180604001604052806006815260200165105b9b9d585b60d21b815250611ce7565b604051806040016040528060028152602001614f4760f01b8152505b6001600160a01b0384166000908152600f60209081526040918290208054835181840281018401909452808452939450611d94939091830182828015611d4c57602002820191906000526020600020905b815481526020019060010190808311611d38575b50506040516bffffffffffffffffffffffff1960608a901b1660208201528793506034019150611d799050565b60405160208183030381529060405280519060200120612081565b81604051602001611da59190612730565b60405160208183030381529060405290611dd25760405162461bcd60e51b815260040161096891906122e8565b50505050565b604080516002808252606080830184529260009291906020830190803683370190505090503081600081518110611e1157611e11612582565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190612768565b81600181518110611ec657611ec6612582565b6001600160a01b0390921660209283029190910190910152919050565b6000612710611f0060ff84166a52b7d2dcc80cd2e40000006125c8565b611f0a91906125e7565b905060008260ff16603214611f405760405180604001604052806009815260200168312520737570706c7960b81b815250611f65565b6040518060400160405280600b81526020016a302e352520737570706c7960a81b8152505b6001600160a01b0386166000908152600e602052604090205490915060ff16158015611faa57506001600160a01b0385166000908152600b602052604090205460ff16155b15612017576001600160a01b0385166000908152600c60205260409020548290611fd590869061256a565b111581604051602001611fe89190612785565b604051602081830303815290604052906120155760405162461bcd60e51b815260040161096891906122e8565b505b5050505050565b60006120336001600160a01b03841683612097565b9050805160001415801561205857508080602001905181019061205691906127bf565b155b15611b9c57604051635274afe760e01b81526001600160a01b0384166004820152602401610968565b60008261208e85846120a5565b14949350505050565b6060610b9f838360006120f2565b600081815b84518110156120ea576120d6828683815181106120c9576120c9612582565b602002602001015161218f565b9150806120e2816127dc565b9150506120aa565b509392505050565b6060814710156121175760405163cd78605960e01b8152306004820152602401610968565b600080856001600160a01b0316848660405161213391906127f7565b60006040518083038185875af1925050503d8060008114612170576040519150601f19603f3d011682016040523d82523d6000602084013e612175565b606091505b50915091506121858683836121be565b9695505050505050565b60008183106121ab576000828152602084905260409020610b9f565b6000838152602083905260409020610b9f565b6060826121d3576121ce8261221a565b610b9f565b81511580156121ea57506001600160a01b0384163b155b1561221357604051639996b31560e01b81526001600160a01b0385166004820152602401610968565b5080610b9f565b80511561222a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090810192821561227e579160200282015b8281111561227e578251825591602001919060010190612263565b5061228a92915061228e565b5090565b5b8082111561228a576000815560010161228f565b6000602082840312156122b557600080fd5b5035919050565b60005b838110156122d75781810151838201526020016122bf565b83811115611dd25750506000910152565b60208152600082518060208401526123078160408501602087016122bc565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610ace57600080fd5b6000806040838503121561234357600080fd5b823561234e8161231b565b946020939093013593505050565b8015158114610ace57600080fd5b6000806040838503121561237d57600080fd5b82356123888161231b565b915060208301356123988161235c565b809150509250929050565b6000806000606084860312156123b857600080fd5b83356123c38161231b565b925060208401356123d38161231b565b929592945050506040919091013590565b6000602082840312156123f657600080fd5b8135610b9f8161231b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561244057612440612401565b604052919050565b600067ffffffffffffffff82111561246257612462612401565b5060051b60200190565b6000602080838503121561247f57600080fd5b823567ffffffffffffffff81111561249657600080fd5b8301601f810185136124a757600080fd5b80356124ba6124b582612448565b612417565b81815260059190911b820183019083810190878311156124d957600080fd5b928401925b828410156124f7578335825292840192908401906124de565b979650505050505050565b60006020828403121561251457600080fd5b813561ffff81168114610b9f57600080fd5b6000806040838503121561253957600080fd5b82356125448161231b565b915060208301356123988161231b565b634e487b7160e01b600052601160045260246000fd5b6000821982111561257d5761257d612554565b500190565b634e487b7160e01b600052603260045260246000fd5b6000828210156125aa576125aa612554565b500390565b6000602082840312156125c157600080fd5b5051919050565b60008160001904831182151516156125e2576125e2612554565b500290565b60008261260457634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156126425781516001600160a01b03168752958201959082019060010161261d565b509495945050505050565b8281526040602082015260006126666040830184612609565b949350505050565b6000602080838503121561268157600080fd5b825167ffffffffffffffff81111561269857600080fd5b8301601f810185136126a957600080fd5b80516126b76124b582612448565b81815260059190911b820183019083810190878311156126d657600080fd5b928401925b828410156124f7578351825292840192908401906126db565b85815284602082015260a06040820152600061271360a0830186612609565b6001600160a01b0394909416606083015250608001529392505050565b6f03737ba103bb434ba32b634b9ba32b2160851b81526000825161275b8160108501602087016122bc565b9190910160100192915050565b60006020828403121561277a57600080fd5b8151610b9f8161231b565b7103932b1b4b834b2b73a103130b630b731b2960751b8152600082516127b28160128501602087016122bc565b9190910160120192915050565b6000602082840312156127d157600080fd5b8151610b9f8161235c565b60006000198214156127f0576127f0612554565b5060010190565b600082516128098184602087016122bc565b919091019291505056fea2646970667358221220bbb92865c888d40c0c16c3cbf238d016430c8bb1028b91160b030c47d1925aa964736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007f6af9c71ec60f282b01575a4be0930150013c530000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : multiSig_ (address): 0x7f6af9C71EC60f282b01575a4bE0930150013c53
Arg [1] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007f6af9c71ec60f282b01575a4be0930150013c53
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
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.