Latest 25 from a total of 1,153 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 23557169 | 95 days ago | IN | 0 ETH | 0.000078 | ||||
| Approve | 23557164 | 95 days ago | IN | 0 ETH | 0.00008616 | ||||
| Approve | 21804347 | 340 days ago | IN | 0 ETH | 0.0000329 | ||||
| Approve | 21574805 | 372 days ago | IN | 0 ETH | 0.00053912 | ||||
| Approve | 21573154 | 372 days ago | IN | 0 ETH | 0.00025053 | ||||
| Approve | 21505336 | 382 days ago | IN | 0 ETH | 0.00008835 | ||||
| Approve | 21480903 | 385 days ago | IN | 0 ETH | 0.00021522 | ||||
| Approve | 21379948 | 399 days ago | IN | 0 ETH | 0.00057915 | ||||
| Transfer | 21329520 | 406 days ago | IN | 0 ETH | 0.00088158 | ||||
| Transfer | 21303284 | 410 days ago | IN | 0 ETH | 0.00057133 | ||||
| Transfer | 21273325 | 414 days ago | IN | 0 ETH | 0.00065466 | ||||
| Approve | 21073499 | 442 days ago | IN | 0 ETH | 0.00042951 | ||||
| Transfer | 21070604 | 442 days ago | IN | 0 ETH | 0.00042828 | ||||
| Withdraw Liquidi... | 21022599 | 449 days ago | IN | 0 ETH | 0.00108437 | ||||
| Transfer | 21017719 | 450 days ago | IN | 0 ETH | 0.00028318 | ||||
| Transfer | 21017715 | 450 days ago | IN | 0 ETH | 0.00028976 | ||||
| Transfer | 21017697 | 450 days ago | IN | 0 ETH | 0.00026204 | ||||
| Transfer | 21015001 | 450 days ago | IN | 0 ETH | 0.00049978 | ||||
| Transfer | 21014956 | 450 days ago | IN | 0 ETH | 0.00044149 | ||||
| Approve | 21013409 | 450 days ago | IN | 0 ETH | 0.00035292 | ||||
| Transfer | 21013394 | 450 days ago | IN | 0 ETH | 0.0003638 | ||||
| Transfer | 21010934 | 451 days ago | IN | 0 ETH | 0.00035761 | ||||
| Transfer | 21009493 | 451 days ago | IN | 0 ETH | 0.00027184 | ||||
| Transfer | 21008404 | 451 days ago | IN | 0 ETH | 0.00043059 | ||||
| Transfer | 21005302 | 451 days ago | IN | 0 ETH | 0.00035037 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
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
Contract ABI
API[{"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
OVERVIEW
Rhino? Bronco? Bull? Which team will you draw for the inaugural season of Defi All Odds? Join us to play, compete, and win! #AllForWin #WinForAllNet Worth in USD
$1,364.53
Net Worth in ETH
0.413208
Token Allocations
DAOG
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.001941 | 703,172.6967 | $1,364.53 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.