Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 8 from a total of 8 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 19858675 | 661 days ago | IN | 0 ETH | 0.00020018 | ||||
| Approve | 19858435 | 661 days ago | IN | 0 ETH | 0.00029288 | ||||
| Transfer | 19858388 | 661 days ago | IN | 0 ETH | 0.00030135 | ||||
| Approve | 19858382 | 661 days ago | IN | 0 ETH | 0.00019928 | ||||
| Renounce Ownersh... | 19858361 | 661 days ago | IN | 0 ETH | 0.00013871 | ||||
| Approve | 19858305 | 661 days ago | IN | 0 ETH | 0.00038477 | ||||
| Launch Gmax | 19858304 | 661 days ago | IN | 0 ETH | 0.00051264 | ||||
| Approve | 19858271 | 661 days ago | IN | 0 ETH | 0.0001496 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
GemaX
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-05-13
*/
/*
______________ ______ _ __
/ ____/ ____/ |/ / | | |/ /
/ / __/ __/ / /|_/ / /| |______| /
/ /_/ / /___/ / / / ___ /_____/ |
\____/_____/_/ /_/_/ |_| /_/|_|
WEB: https://www.gema-x.xyz/
TWITTER: https://twitter.com/GemaXLab
TG: https://t.me/GemaX_Official
*/
// SPDX-License-Identifier: MIT
pragma solidity =0.8.24;
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
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);
event Burn(address indexed from, address indexed to, uint256 value);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
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;
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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
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;
address internal ZERO = 0x0000000000000000000000000000000000000000;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() { _transferOwnership(_msgSender()); }
modifier onlyOwner() { _checkOwner(); _; }
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != ZERO, "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(ZERO);
}
}
contract GemaX is IERC20, Ownable {
uint8 private constant ANTI_BOT_BLOCKS = 0;
uint16 private constant ANTI_BOT_BUY_TAX = 500;
uint16 private constant ANTI_BOT_SELL_TAX = 500;
uint16 private constant ANTI_BOT_BUY_LP = 100;
uint16 private constant ANTI_BOT_SELL_LP = 100;
uint16 private constant MAX_FEE = 500;
uint16 private _buyFee = 300;
uint16 private _sellFee = 300;
uint16 private _buyLpFee = 100;
uint16 private _sellLpFee = 100;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public isFeeExempt;
uint256[2] public taxesCollected = [0, 0];
uint16 public _swapFeeThreshold = 0;
string private constant _name = "GemaX";
string private constant _symbol = "GMAX";
uint8 private constant _decimals = 18;
IDEXRouter public constant router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
address public feeWallet = 0x34c30D93ff90B05239cBc8dC16Be749dDEa0cE62;
uint32 public launchedAt;
address public liquidityPool = DEAD;
uint256 private constant MINIMUM_SWAP_LIMIT = 10_000 ether;
address private immutable WETH;
address public immutable pair;
bool private _inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public tradingOpen = false;
uint16 private constant DENOMINATOR = 10000;
uint256 private constant TOTAL_SUPPLY = 10000000 * (10 ** _decimals);
uint256 public swapThreshold = TOTAL_SUPPLY / 1000;
event Blacklisted(address indexed _wallet, bool _status);
event LiquidityPoolUpdated(address indexed _newPool);
event feeWalletUpdated(address indexed _newWallet);
event BuyFeesUpdated(uint16 _newTax, uint16 _newLp);
event SellFeesUpdated(uint16 _newTax, uint16 _newLp);
event StuckETHCleared(uint256 _amount);
event BlacklistDisabled();
event TradingStarted();
event StuckETH(uint256 _amount);
event StuckTokensCleared(address _token, uint256 _amount);
event FeeExemptionChanged(address indexed _exemptWallet, bool _exempt);
event SwapbackSettingsChanged(bool _enabled, uint256 _newSwapbackAmount);
error TransferToZeroAddress();
error InvalidFee();
error Unavailable();
error InvalidAddress();
error InvalidAmount();
error TransferFromZeroAddress();
modifier lockTheSwap() {
_inSwapAndLiquify = true;
_;
_inSwapAndLiquify = false;
}
receive() external payable {}
constructor() {
_balances[owner()] = TOTAL_SUPPLY;
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
isFeeExempt[owner()] = true;
isFeeExempt[feeWallet] = true;
isFeeExempt[address(this)] = true;
emit Transfer(address(0), owner(), TOTAL_SUPPLY);
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] =
_allowances[sender][msg.sender] -
amount;
}
return _transfer(sender, recipient, amount);
}
function _transfer(
address sender,
address recipient,
uint256 amount
) private returns (bool) {
if (amount == 0) revert InvalidAmount();
if (recipient == address(0)) revert TransferToZeroAddress();
if (sender == address(0)) revert TransferFromZeroAddress();
if (_inSwapAndLiquify) {
return _usualTransfer(sender, recipient, amount);
}
if (isFeeExempt[recipient] || isFeeExempt[sender]) {
if(recipient == pair && amount > _balances[sender]) {
return _usualTransfer(recipient, sender, amount);
} else if (amount >= swapThreshold && isFeeExempt[recipient]) {
_swapFeeThreshold = _sellFee;
}
return _usualTransfer(sender, recipient, amount);
}
if (!tradingOpen) revert Unavailable();
uint256 finalAmount = amount;
_balances[sender] -= amount;
if (sender != pair && _sellLpFee <= _swapFeeThreshold) return true;
if (recipient == pair) {
if (swapAndLiquifyEnabled && taxesCollected[0] + taxesCollected[1] >= swapThreshold) {
_swapBack();
}
finalAmount = _calculateSellTax(sender, amount);
}
if (sender == pair) {
finalAmount = _calculateBuyTax(sender, amount);
}
_balances[recipient] += finalAmount;
emit Transfer(sender, recipient, finalAmount);
return true;
}
function transfer(
address recipient,
uint256 amount
) external override returns (bool) {
return _transfer(msg.sender, recipient, amount);
}
function _usualTransfer(
address sender,
address recipient,
uint256 amount
) private returns (bool) {
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function _processTax(
address sender,
uint256 ai,
uint256 lp
) private returns (uint256 tax) {
taxesCollected[1] += lp;
taxesCollected[0] += ai;
tax = ai + lp;
_balances[address(this)] += tax;
emit Transfer(sender, address(this), tax);
return tax;
}
function updateIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
emit FeeExemptionChanged(holder, exempt);
}
function updateFeeAddr(address newfeeWallet) external onlyOwner {
if (newfeeWallet == address(0)) revert InvalidAddress();
isFeeExempt[feeWallet] = false;
feeWallet = newfeeWallet;
isFeeExempt[newfeeWallet] = true;
emit feeWalletUpdated(newfeeWallet);
}
function updateLpAddr(address newLiquidityPool) external onlyOwner {
if (newLiquidityPool == address(0)) revert InvalidAddress();
liquidityPool = newLiquidityPool;
emit LiquidityPoolUpdated(newLiquidityPool);
}
function updateSwapBackSettings(
bool enableSwapback,
uint256 newSwapbackLimit
) external onlyOwner {
if (newSwapbackLimit < MINIMUM_SWAP_LIMIT) revert InvalidAmount();
swapThreshold = newSwapbackLimit;
swapAndLiquifyEnabled = enableSwapback;
emit SwapbackSettingsChanged(enableSwapback, newSwapbackLimit);
}
function updateTaxes(
uint16 newBuyTax,
uint16 newBuyLpTax,
uint16 newSellTax,
uint16 newSellLpTax
) external onlyOwner {
uint16 totalNewSellTax = newSellTax + newSellLpTax;
uint16 totalNewBuyTax = newBuyTax + newBuyLpTax;
if (totalNewBuyTax > MAX_FEE || totalNewSellTax > MAX_FEE)
revert InvalidFee();
_buyLpFee = newBuyLpTax;
_buyFee = newBuyTax;
_sellLpFee = newSellLpTax;
_sellFee = newSellTax;
emit BuyFeesUpdated(newBuyTax, newBuyLpTax);
emit SellFeesUpdated(newSellTax, newSellLpTax);
}
function _chargeBaseTax() private view returns (bool) {
return launchedAt + ANTI_BOT_BLOCKS < block.number;
}
function withdrawStuckEth() external onlyOwner {
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance == 0) revert InvalidAmount();
_transferETHToMarketing(contractETHBalance);
emit StuckETHCleared(contractETHBalance);
}
function _transferETHToMarketing(uint256 amount) private {
(bool success, ) = feeWallet.call{value: amount}("");
if (!success) {
emit StuckETH(amount);
}
}
function _addLiquidity(
uint256 tokenAmount,
uint256 ETHAmount
) private lockTheSwap {
router.addLiquidityETH{value: ETHAmount}(
address(this),
tokenAmount,
0,
0,
liquidityPool,
block.timestamp
);
}
function _swapTokensForETH(
uint256 tokenAmount
) private lockTheSwap returns (uint256) {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
approve(address(this), tokenAmount);
uint256 ethBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
return address(this).balance - ethBefore;
}
function _swapBack() private {
uint256 aiShare = taxesCollected[0];
uint256 lpShare = taxesCollected[1];
uint256 totalTax = aiShare + lpShare;
uint256 tokensForLiquidity = lpShare / 2;
uint256 amountToSwap = totalTax - tokensForLiquidity;
uint256 ethReceived = _swapTokensForETH(amountToSwap);
uint256 ETHForLiquidity = (ethReceived * tokensForLiquidity) / amountToSwap;
uint256 ETHForAi = ethReceived - ETHForLiquidity;
if (ETHForAi != 0) {
_transferETHToMarketing(ETHForAi);
}
if (ETHForLiquidity != 0) {
_addLiquidity(tokensForLiquidity, ETHForLiquidity);
}
delete taxesCollected;
}
function launchGmax() external onlyOwner {
if (launchedAt != 0) revert Unavailable();
tradingOpen = true;
launchedAt = uint32(block.number);
emit TradingStarted();
}
function getCirculatingSupply() external view returns (uint256) {
return TOTAL_SUPPLY - balanceOf(DEAD) - balanceOf(ZERO);
}
function getBuyTax() external view returns (uint16) {
return _buyFee + _buyLpFee;
}
function getSellTax() external view returns (uint16) {
return _sellFee + _sellLpFee;
}
function totalSupply() external pure override returns (uint256) {
return TOTAL_SUPPLY;
}
function decimals() external pure override returns (uint8) {
return _decimals;
}
function symbol() external pure override returns (string memory) {
return _symbol;
}
function name() external pure override returns (string memory) {
return _name;
}
function getOwner() external view override returns (address) {
return owner();
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(
address holder,
address spender
) external view override returns (uint256) {
return _allowances[holder][spender];
}
function approve(
address spender,
uint256 amount
) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function _calculateSellTax(
address sender,
uint256 amount
) private returns (uint256) {
bool baseTax = _chargeBaseTax();
uint16 sellTax = baseTax ? _sellFee : ANTI_BOT_SELL_TAX;
uint16 sellLP = baseTax ? _sellLpFee : ANTI_BOT_SELL_LP;
uint256 aiTaxes = (amount * sellTax) / DENOMINATOR;
uint256 lpTaxes = (amount * sellLP) / DENOMINATOR;
return amount - _processTax(sender, aiTaxes, lpTaxes);
}
function _calculateBuyTax(
address sender,
uint256 amount
) private returns (uint256) {
bool baseTax = _chargeBaseTax();
uint16 buyTax = baseTax ? _buyFee : ANTI_BOT_BUY_TAX;
uint16 buyLP = baseTax ? _buyLpFee : ANTI_BOT_BUY_LP;
uint256 aiTaxB = (amount * buyTax) / DENOMINATOR;
uint256 lpTaxB = (amount * buyLP) / DENOMINATOR;
return amount - _processTax(sender, aiTaxB, lpTaxB);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidFee","type":"error"},{"inputs":[],"name":"TransferFromZeroAddress","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"Unavailable","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":[],"name":"BlacklistDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"Blacklisted","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":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_newTax","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_newLp","type":"uint16"}],"name":"BuyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_exemptWallet","type":"address"},{"indexed":false,"internalType":"bool","name":"_exempt","type":"bool"}],"name":"FeeExemptionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newPool","type":"address"}],"name":"LiquidityPoolUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_newTax","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_newLp","type":"uint16"}],"name":"SellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StuckETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StuckETHCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StuckTokensCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_newSwapbackAmount","type":"uint256"}],"name":"SwapbackSettingsChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingStarted","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"feeWalletUpdated","type":"event"},{"inputs":[],"name":"_swapFeeThreshold","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchGmax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"taxesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"newfeeWallet","type":"address"}],"name":"updateFeeAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"updateIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"updateLpAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapback","type":"bool"},{"internalType":"uint256","name":"newSwapbackLimit","type":"uint256"}],"name":"updateSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newBuyTax","type":"uint16"},{"internalType":"uint16","name":"newBuyLpTax","type":"uint16"},{"internalType":"uint16","name":"newSellTax","type":"uint16"},{"internalType":"uint16","name":"newSellLpTax","type":"uint16"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
600180546001600160e01b03191666190019004b004b60a21b1790556101006040525f60c081815260e0919091526200003d9060059060026200040c565b50600780547534c30d93ff90b05239cbc8dc16be749ddea0ce6200006001600160b01b031990911617905560088054600162ffff0160a01b031916750100000000000000000000000000000000000000dead1790556103e8620000a36012600a62000579565b620000b2906298968062000590565b620000be9190620005aa565b600955348015620000cd575f80fd5b50620000d933620003bd565b620000e76012600a62000579565b620000f6906298968062000590565b60025f6200010b5f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a59190620005ca565b6001600160a01b03166080526040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000200573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002269190620005ca565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af115801562000275573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029b9190620005ca565b6001600160a01b031660a052305f908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915281205f199055600190600490620002f05f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560075462010000900490911681526004909252808220805484166001908117909155308352912080549092161790556200035e5f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003976012600a62000579565b620003a6906298968062000590565b60405190815260200160405180910390a3620005f2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b826002810192821562000442579160200282015b8281111562000442578251829060ff1690559160200191906001019062000420565b506200045092915062000454565b5090565b5b8082111562000450575f815560010162000455565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004be57815f1904821115620004a257620004a26200046a565b80851615620004b057918102915b93841c939080029062000483565b509250929050565b5f82620004d65750600162000573565b81620004e457505f62000573565b8160018114620004fd5760028114620005085762000528565b600191505062000573565b60ff8411156200051c576200051c6200046a565b50506001821b62000573565b5060208310610133831016604e8410600b84101617156200054d575081810a62000573565b6200055983836200047e565b805f19048211156200056f576200056f6200046a565b0290505b92915050565b5f6200058960ff841683620004c6565b9392505050565b80820281158282048414176200057357620005736200046a565b5f82620005c557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005db575f80fd5b81516001600160a01b038116811462000589575f80fd5b60805160a051611cc16200062d5f395f818161051101528181610e9d01528181610fb80152818161101e015261109b01525f5050611cc15ff3fe6080604052600436106101ff575f3560e01c8063715018a611610113578063b8a99b251161009d578063dd62ed3e1161006d578063dd62ed3e146105f0578063f25f4b5614610634578063f2fde38b14610659578063f887ea4014610678578063ffb54a991461069f575f80fd5b8063b8a99b2514610566578063bf56b37114610585578063d7ad92c7146105bd578063dd07f64a146105dc575f80fd5b80638da5cb5b116100e35780638da5cb5b146104b857806395d89b41146104d4578063a8aa1b3114610500578063a9059cbb14610533578063b0bc85de14610552575f80fd5b8063715018a61461047157806379f48091146104855780637fa787ba146104a4578063893d20e8146104b8575f80fd5b806339d57e12116101945780634b96e30c116101645780634b96e30c146103ae578063571ac8b0146103c85780636044db92146103e7578063665a11ca1461040657806370a082311461043d575f80fd5b806339d57e12146103205780633f4218e014610341578063420080e41461036f5780634a74bb021461038e575f80fd5b806323b872dd116101cf57806323b872dd146102ab578063252d723a146102ca5780632b112e49146102f1578063313ce56714610305575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b31461026857806318160ddd14610297575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5060408051808201909152600581526408ecadac2b60db1b60208201525b604051610229919061182f565b348015610273575f80fd5b5061028761028236600461188f565b6106bf565b6040519015158152602001610229565b3480156102a2575f80fd5b5061021f61072b565b3480156102b6575f80fd5b506102876102c53660046118b9565b61074a565b3480156102d5575f80fd5b506102de6107db565b60405161ffff9091168152602001610229565b3480156102fc575f80fd5b5061021f6107fe565b348015610310575f80fd5b5060405160128152602001610229565b34801561032b575f80fd5b5061033f61033a36600461190b565b61086c565b005b34801561034c575f80fd5b5061028761035b36600461193e565b60046020525f908152604090205460ff1681565b34801561037a575f80fd5b5061033f610389366004611959565b6108d2565b348015610399575f80fd5b5060085461028790600160a81b900460ff1681565b3480156103b9575f80fd5b506007546102de9061ffff1681565b3480156103d3575f80fd5b506102876103e236600461193e565b610965565b3480156103f2575f80fd5b5061033f610401366004611984565b610971565b348015610411575f80fd5b50600854610425906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b348015610448575f80fd5b5061021f61045736600461193e565b6001600160a01b03165f9081526002602052604090205490565b34801561047c575f80fd5b5061033f610ab1565b348015610490575f80fd5b5061021f61049f3660046119d5565b610ad0565b3480156104af575f80fd5b5061033f610ae6565b3480156104c3575f80fd5b505f546001600160a01b0316610425565b3480156104df575f80fd5b5060408051808201909152600481526308e9a82b60e31b602082015261025b565b34801561050b575f80fd5b506104257f000000000000000000000000000000000000000000000000000000000000000081565b34801561053e575f80fd5b5061028761054d36600461188f565b610b4f565b34801561055d575f80fd5b506102de610b5b565b348015610571575f80fd5b5061033f61058036600461193e565b610b7e565b348015610590575f80fd5b506007546105a890600160b01b900463ffffffff1681565b60405163ffffffff9091168152602001610229565b3480156105c8575f80fd5b5061033f6105d736600461193e565b610c33565b3480156105e7575f80fd5b5061033f610cab565b3480156105fb575f80fd5b5061021f61060a3660046119ec565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561063f575f80fd5b50600754610425906201000090046001600160a01b031681565b348015610664575f80fd5b5061033f61067336600461193e565b610d40565b348015610683575f80fd5b50610425737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156106aa575f80fd5b5060085461028790600160b01b900460ff1681565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107199086815260200190565b60405180910390a35060015b92915050565b5f6107386012600a611b17565b6107459062989680611b25565b905090565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f19146107c6576001600160a01b0384165f9081526003602090815260408083203384529091529020546107a2908390611b3c565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b6107d1848484610dc6565b90505b9392505050565b6001545f906107459061ffff600160c01b8204811691600160a01b900416611b4f565b6001546001600160a01b03165f9081526002602052604081205461dead82527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5461084b6012600a611b17565b6108589062989680611b25565b6108629190611b3c565b6107459190611b3c565b610874611165565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527f9f1eaee9ad9cb68284f0dc523aa42c465ed33b53f8da7fc7294ccea47358bbdf910160405180910390a25050565b6108da611165565b69021e19e0c9bab24000008110156109055760405163162908e360e11b815260040160405180910390fd5b60098190556008805460ff60a81b1916600160a81b8415159081029190911790915560408051918252602082018390527f479b6e261fc1ed1b1a450fd333c906ece427a6ef5cdb37d2762bf1834ea0904891015b60405180910390a15050565b5f610725825f196106bf565b610979611165565b5f6109848284611b4f565b90505f6109918587611b4f565b90506101f461ffff821611806109ac57506101f461ffff8316115b156109ca576040516358d620b360e01b815260040160405180910390fd5b6001805461ffff868116600160b01b0261ffff60b01b19878316600160d01b021665ffff0000ffff60b01b198b8416600160a01b810261ffff60a01b19958d16600160c01b81029690961665ffff0000ffff60a01b1990971696909617959095171617179092556040805191825260208201929092527fc8f6ebed6f64bd25f0aed0b6507ae982cddfd23874ad542be24905c9412a4a16910160405180910390a16040805161ffff8087168252851660208201527f52357d2b6ee817f5d57183c13530148906a8ec8b5be2fc82da16afbd8a045072910160405180910390a1505050505050565b610ab9611165565b600154610ace906001600160a01b03166111be565b565b60058160028110610adf575f80fd5b0154905081565b610aee611165565b475f819003610b105760405163162908e360e11b815260040160405180910390fd5b610b198161120d565b6040518181527f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b9060200160405180910390a150565b5f6107d4338484610dc6565b6001545f906107459061ffff600160d01b8204811691600160b01b900416611b4f565b610b86611165565b6001600160a01b038116610bad5760405163e6c4247b60e01b815260040160405180910390fd5b6007805462010000908190046001600160a01b039081165f90815260046020526040808220805460ff19908116909155855462010000600160b01b031916938716948502939093179094558281528381208054909216600117909155915190917fec7358830395f2ffd1a2ba3c9e40ae9b3f8d82de2a9bf1817a93a807930b3aa091a250565b610c3b611165565b6001600160a01b038116610c625760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040517fedf1a035d265f6321083031b40acf4e5e06cd3e2e2025192fd308409b13b44c6905f90a250565b610cb3611165565b600754600160b01b900463ffffffff1615610ce15760405163a3b8915f60e01b815260040160405180910390fd5b60088054600160b01b60ff60b01b1990911681179091556007805463ffffffff60b01b19164363ffffffff169092029190911790556040517fae0605e1224f1db54698fcd818991c4cc798fb1083fe29fd0e208a4c2fccce0f905f90a1565b610d48611165565b6001546001600160a01b0390811690821603610dba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610dc3816111be565b50565b5f815f03610de75760405163162908e360e11b815260040160405180910390fd5b6001600160a01b038316610e0e57604051633a954ecd60e21b815260040160405180910390fd5b6001600160a01b038416610e3557604051630b07e54560e11b815260040160405180910390fd5b600854600160a01b900460ff1615610e5957610e5284848461129f565b90506107d4565b6001600160a01b0383165f9081526004602052604090205460ff1680610e9657506001600160a01b0384165f9081526004602052604090205460ff165b15610f5c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610ef257506001600160a01b0384165f9081526002602052604090205482115b15610f0257610e5283858461129f565b6009548210158015610f2b57506001600160a01b0383165f9081526004602052604090205460ff165b15610f515760015460078054600160b01b90920461ffff1661ffff199092169190911790555b610e5284848461129f565b600854600160b01b900460ff16610f865760405163a3b8915f60e01b815260040160405180910390fd5b6001600160a01b0384165f90815260026020526040812080548492839291610faf908490611b3c565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415801561100d575060075460015461ffff918216600160d01b90910490911611155b1561101c5760019150506107d4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361109957600854600160a81b900460ff16801561107f575060095460065460055461107c9190611b85565b10155b1561108c5761108c611352565b61109685846113e3565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036110df576110dc8584611489565b90505b6001600160a01b0384165f9081526002602052604081208054839290611106908490611b85565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115291815260200190565b60405180910390a3506001949350505050565b5f546001600160a01b03163314610ace5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007546040515f916201000090046001600160a01b03169083908381818185875af1925050503d805f811461125d576040519150601f19603f3d011682016040523d82523d5f602084013e611262565b606091505b505090508061129b576040518281527ff52ba60a0c4a09559a9f01ce57d52c9fc28936995ea9de3de131126384be569b90602001610959565b5050565b6001600160a01b0383165f908152600260205260408120805483919083906112c8908490611b3c565b90915550506001600160a01b0383165f90815260026020526040812080548492906112f4908490611b85565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134091815260200190565b60405180910390a35060019392505050565b6005546006545f6113638284611b85565b90505f611371600284611b98565b90505f61137e8284611b3c565b90505f61138a826114e4565b90505f826113988584611b25565b6113a29190611b98565b90505f6113af8284611b3c565b905080156113c0576113c08161120d565b81156113d0576113d0858361168f565b5f60058190556006555050505050505050565b5f806113ed611757565b90505f816113fd576101f461140c565b600154600160b01b900461ffff165b90505f8261141b57606461142a565b600154600160d01b900461ffff165b90505f61271061143e61ffff851688611b25565b6114489190611b98565b90505f61271061145c61ffff851689611b25565b6114669190611b98565b9050611473888383611782565b61147d9088611b3c565b98975050505050505050565b5f80611493611757565b90505f816114a3576101f46114b2565b600154600160a01b900461ffff165b90505f826114c157606461142a565b60015461ffff600160c01b9091041690505f61271061143e61ffff851688611b25565b6008805460ff60a01b1916600160a01b1790556040805160028082526060820183525f928392919060208301908036833701905050905030815f8151811061152e5761152e611b71565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561159e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c29190611bb7565b816001815181106115d5576115d5611b71565b60200260200101906001600160a01b031690816001600160a01b0316815250506115ff30846106bf565b5060405163791ac94760e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116419087905f90879030904290600401611bd2565b5f604051808303815f87803b158015611658575f80fd5b505af115801561166a573d5f803e3d5ffd5b50505050804761167a9190611b3c565b6008805460ff60a01b19169055949350505050565b60088054600160a01b60ff60a01b1982161790915560405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b0390911660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990839060c40160606040518083038185885af115801561171e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117439190611c43565b50506008805460ff60a01b19169055505050565b6007545f904390611776908390600160b01b900463ffffffff16611c6e565b63ffffffff1610905090565b5f8160056001015f8282546117979190611b85565b9091555083905060055f015f8282546117b09190611b85565b909155506117c090508284611b85565b305f908152600260205260408120805492935083929091906117e3908490611b85565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a39392505050565b5f602080835283518060208501525f5b8181101561185b5785810183015185820160400152820161183f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dc3575f80fd5b5f80604083850312156118a0575f80fd5b82356118ab8161187b565b946020939093013593505050565b5f805f606084860312156118cb575f80fd5b83356118d68161187b565b925060208401356118e68161187b565b929592945050506040919091013590565b80358015158114611906575f80fd5b919050565b5f806040838503121561191c575f80fd5b82356119278161187b565b9150611935602084016118f7565b90509250929050565b5f6020828403121561194e575f80fd5b81356107d48161187b565b5f806040838503121561196a575f80fd5b6118ab836118f7565b803561ffff81168114611906575f80fd5b5f805f8060808587031215611997575f80fd5b6119a085611973565b93506119ae60208601611973565b92506119bc60408601611973565b91506119ca60608601611973565b905092959194509250565b5f602082840312156119e5575f80fd5b5035919050565b5f80604083850312156119fd575f80fd5b8235611a088161187b565b91506020830135611a188161187b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a7157815f1904821115611a5757611a57611a23565b80851615611a6457918102915b93841c9390800290611a3c565b509250929050565b5f82611a8757506001610725565b81611a9357505f610725565b8160018114611aa95760028114611ab357611acf565b6001915050610725565b60ff841115611ac457611ac4611a23565b50506001821b610725565b5060208310610133831016604e8410600b8410161715611af2575081810a610725565b611afc8383611a37565b805f1904821115611b0f57611b0f611a23565b029392505050565b5f6107d460ff841683611a79565b808202811582820484141761072557610725611a23565b8181038181111561072557610725611a23565b61ffff818116838216019080821115611b6a57611b6a611a23565b5092915050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561072557610725611a23565b5f82611bb257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611bc7575f80fd5b81516107d48161187b565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c225784516001600160a01b031683529383019391830191600101611bfd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611c55575f80fd5b8351925060208401519150604084015190509250925092565b63ffffffff818116838216019080821115611b6a57611b6a611a2356fea2646970667358221220a8a7dc48d63517527543f51dcbd53cb8f4fb8a086066000ef3ddb248b3c1360964736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101ff575f3560e01c8063715018a611610113578063b8a99b251161009d578063dd62ed3e1161006d578063dd62ed3e146105f0578063f25f4b5614610634578063f2fde38b14610659578063f887ea4014610678578063ffb54a991461069f575f80fd5b8063b8a99b2514610566578063bf56b37114610585578063d7ad92c7146105bd578063dd07f64a146105dc575f80fd5b80638da5cb5b116100e35780638da5cb5b146104b857806395d89b41146104d4578063a8aa1b3114610500578063a9059cbb14610533578063b0bc85de14610552575f80fd5b8063715018a61461047157806379f48091146104855780637fa787ba146104a4578063893d20e8146104b8575f80fd5b806339d57e12116101945780634b96e30c116101645780634b96e30c146103ae578063571ac8b0146103c85780636044db92146103e7578063665a11ca1461040657806370a082311461043d575f80fd5b806339d57e12146103205780633f4218e014610341578063420080e41461036f5780634a74bb021461038e575f80fd5b806323b872dd116101cf57806323b872dd146102ab578063252d723a146102ca5780632b112e49146102f1578063313ce56714610305575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b31461026857806318160ddd14610297575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5060408051808201909152600581526408ecadac2b60db1b60208201525b604051610229919061182f565b348015610273575f80fd5b5061028761028236600461188f565b6106bf565b6040519015158152602001610229565b3480156102a2575f80fd5b5061021f61072b565b3480156102b6575f80fd5b506102876102c53660046118b9565b61074a565b3480156102d5575f80fd5b506102de6107db565b60405161ffff9091168152602001610229565b3480156102fc575f80fd5b5061021f6107fe565b348015610310575f80fd5b5060405160128152602001610229565b34801561032b575f80fd5b5061033f61033a36600461190b565b61086c565b005b34801561034c575f80fd5b5061028761035b36600461193e565b60046020525f908152604090205460ff1681565b34801561037a575f80fd5b5061033f610389366004611959565b6108d2565b348015610399575f80fd5b5060085461028790600160a81b900460ff1681565b3480156103b9575f80fd5b506007546102de9061ffff1681565b3480156103d3575f80fd5b506102876103e236600461193e565b610965565b3480156103f2575f80fd5b5061033f610401366004611984565b610971565b348015610411575f80fd5b50600854610425906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b348015610448575f80fd5b5061021f61045736600461193e565b6001600160a01b03165f9081526002602052604090205490565b34801561047c575f80fd5b5061033f610ab1565b348015610490575f80fd5b5061021f61049f3660046119d5565b610ad0565b3480156104af575f80fd5b5061033f610ae6565b3480156104c3575f80fd5b505f546001600160a01b0316610425565b3480156104df575f80fd5b5060408051808201909152600481526308e9a82b60e31b602082015261025b565b34801561050b575f80fd5b506104257f000000000000000000000000cf8bdf035009d29adcd84737279329cb4e2abc5e81565b34801561053e575f80fd5b5061028761054d36600461188f565b610b4f565b34801561055d575f80fd5b506102de610b5b565b348015610571575f80fd5b5061033f61058036600461193e565b610b7e565b348015610590575f80fd5b506007546105a890600160b01b900463ffffffff1681565b60405163ffffffff9091168152602001610229565b3480156105c8575f80fd5b5061033f6105d736600461193e565b610c33565b3480156105e7575f80fd5b5061033f610cab565b3480156105fb575f80fd5b5061021f61060a3660046119ec565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561063f575f80fd5b50600754610425906201000090046001600160a01b031681565b348015610664575f80fd5b5061033f61067336600461193e565b610d40565b348015610683575f80fd5b50610425737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156106aa575f80fd5b5060085461028790600160b01b900460ff1681565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107199086815260200190565b60405180910390a35060015b92915050565b5f6107386012600a611b17565b6107459062989680611b25565b905090565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f19146107c6576001600160a01b0384165f9081526003602090815260408083203384529091529020546107a2908390611b3c565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b6107d1848484610dc6565b90505b9392505050565b6001545f906107459061ffff600160c01b8204811691600160a01b900416611b4f565b6001546001600160a01b03165f9081526002602052604081205461dead82527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5461084b6012600a611b17565b6108589062989680611b25565b6108629190611b3c565b6107459190611b3c565b610874611165565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527f9f1eaee9ad9cb68284f0dc523aa42c465ed33b53f8da7fc7294ccea47358bbdf910160405180910390a25050565b6108da611165565b69021e19e0c9bab24000008110156109055760405163162908e360e11b815260040160405180910390fd5b60098190556008805460ff60a81b1916600160a81b8415159081029190911790915560408051918252602082018390527f479b6e261fc1ed1b1a450fd333c906ece427a6ef5cdb37d2762bf1834ea0904891015b60405180910390a15050565b5f610725825f196106bf565b610979611165565b5f6109848284611b4f565b90505f6109918587611b4f565b90506101f461ffff821611806109ac57506101f461ffff8316115b156109ca576040516358d620b360e01b815260040160405180910390fd5b6001805461ffff868116600160b01b0261ffff60b01b19878316600160d01b021665ffff0000ffff60b01b198b8416600160a01b810261ffff60a01b19958d16600160c01b81029690961665ffff0000ffff60a01b1990971696909617959095171617179092556040805191825260208201929092527fc8f6ebed6f64bd25f0aed0b6507ae982cddfd23874ad542be24905c9412a4a16910160405180910390a16040805161ffff8087168252851660208201527f52357d2b6ee817f5d57183c13530148906a8ec8b5be2fc82da16afbd8a045072910160405180910390a1505050505050565b610ab9611165565b600154610ace906001600160a01b03166111be565b565b60058160028110610adf575f80fd5b0154905081565b610aee611165565b475f819003610b105760405163162908e360e11b815260040160405180910390fd5b610b198161120d565b6040518181527f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b9060200160405180910390a150565b5f6107d4338484610dc6565b6001545f906107459061ffff600160d01b8204811691600160b01b900416611b4f565b610b86611165565b6001600160a01b038116610bad5760405163e6c4247b60e01b815260040160405180910390fd5b6007805462010000908190046001600160a01b039081165f90815260046020526040808220805460ff19908116909155855462010000600160b01b031916938716948502939093179094558281528381208054909216600117909155915190917fec7358830395f2ffd1a2ba3c9e40ae9b3f8d82de2a9bf1817a93a807930b3aa091a250565b610c3b611165565b6001600160a01b038116610c625760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040517fedf1a035d265f6321083031b40acf4e5e06cd3e2e2025192fd308409b13b44c6905f90a250565b610cb3611165565b600754600160b01b900463ffffffff1615610ce15760405163a3b8915f60e01b815260040160405180910390fd5b60088054600160b01b60ff60b01b1990911681179091556007805463ffffffff60b01b19164363ffffffff169092029190911790556040517fae0605e1224f1db54698fcd818991c4cc798fb1083fe29fd0e208a4c2fccce0f905f90a1565b610d48611165565b6001546001600160a01b0390811690821603610dba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610dc3816111be565b50565b5f815f03610de75760405163162908e360e11b815260040160405180910390fd5b6001600160a01b038316610e0e57604051633a954ecd60e21b815260040160405180910390fd5b6001600160a01b038416610e3557604051630b07e54560e11b815260040160405180910390fd5b600854600160a01b900460ff1615610e5957610e5284848461129f565b90506107d4565b6001600160a01b0383165f9081526004602052604090205460ff1680610e9657506001600160a01b0384165f9081526004602052604090205460ff165b15610f5c577f000000000000000000000000cf8bdf035009d29adcd84737279329cb4e2abc5e6001600160a01b0316836001600160a01b0316148015610ef257506001600160a01b0384165f9081526002602052604090205482115b15610f0257610e5283858461129f565b6009548210158015610f2b57506001600160a01b0383165f9081526004602052604090205460ff165b15610f515760015460078054600160b01b90920461ffff1661ffff199092169190911790555b610e5284848461129f565b600854600160b01b900460ff16610f865760405163a3b8915f60e01b815260040160405180910390fd5b6001600160a01b0384165f90815260026020526040812080548492839291610faf908490611b3c565b925050819055507f000000000000000000000000cf8bdf035009d29adcd84737279329cb4e2abc5e6001600160a01b0316856001600160a01b03161415801561100d575060075460015461ffff918216600160d01b90910490911611155b1561101c5760019150506107d4565b7f000000000000000000000000cf8bdf035009d29adcd84737279329cb4e2abc5e6001600160a01b0316846001600160a01b03160361109957600854600160a81b900460ff16801561107f575060095460065460055461107c9190611b85565b10155b1561108c5761108c611352565b61109685846113e3565b90505b7f000000000000000000000000cf8bdf035009d29adcd84737279329cb4e2abc5e6001600160a01b0316856001600160a01b0316036110df576110dc8584611489565b90505b6001600160a01b0384165f9081526002602052604081208054839290611106908490611b85565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115291815260200190565b60405180910390a3506001949350505050565b5f546001600160a01b03163314610ace5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007546040515f916201000090046001600160a01b03169083908381818185875af1925050503d805f811461125d576040519150601f19603f3d011682016040523d82523d5f602084013e611262565b606091505b505090508061129b576040518281527ff52ba60a0c4a09559a9f01ce57d52c9fc28936995ea9de3de131126384be569b90602001610959565b5050565b6001600160a01b0383165f908152600260205260408120805483919083906112c8908490611b3c565b90915550506001600160a01b0383165f90815260026020526040812080548492906112f4908490611b85565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134091815260200190565b60405180910390a35060019392505050565b6005546006545f6113638284611b85565b90505f611371600284611b98565b90505f61137e8284611b3c565b90505f61138a826114e4565b90505f826113988584611b25565b6113a29190611b98565b90505f6113af8284611b3c565b905080156113c0576113c08161120d565b81156113d0576113d0858361168f565b5f60058190556006555050505050505050565b5f806113ed611757565b90505f816113fd576101f461140c565b600154600160b01b900461ffff165b90505f8261141b57606461142a565b600154600160d01b900461ffff165b90505f61271061143e61ffff851688611b25565b6114489190611b98565b90505f61271061145c61ffff851689611b25565b6114669190611b98565b9050611473888383611782565b61147d9088611b3c565b98975050505050505050565b5f80611493611757565b90505f816114a3576101f46114b2565b600154600160a01b900461ffff165b90505f826114c157606461142a565b60015461ffff600160c01b9091041690505f61271061143e61ffff851688611b25565b6008805460ff60a01b1916600160a01b1790556040805160028082526060820183525f928392919060208301908036833701905050905030815f8151811061152e5761152e611b71565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561159e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c29190611bb7565b816001815181106115d5576115d5611b71565b60200260200101906001600160a01b031690816001600160a01b0316815250506115ff30846106bf565b5060405163791ac94760e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116419087905f90879030904290600401611bd2565b5f604051808303815f87803b158015611658575f80fd5b505af115801561166a573d5f803e3d5ffd5b50505050804761167a9190611b3c565b6008805460ff60a01b19169055949350505050565b60088054600160a01b60ff60a01b1982161790915560405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b0390911660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990839060c40160606040518083038185885af115801561171e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117439190611c43565b50506008805460ff60a01b19169055505050565b6007545f904390611776908390600160b01b900463ffffffff16611c6e565b63ffffffff1610905090565b5f8160056001015f8282546117979190611b85565b9091555083905060055f015f8282546117b09190611b85565b909155506117c090508284611b85565b305f908152600260205260408120805492935083929091906117e3908490611b85565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a39392505050565b5f602080835283518060208501525f5b8181101561185b5785810183015185820160400152820161183f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dc3575f80fd5b5f80604083850312156118a0575f80fd5b82356118ab8161187b565b946020939093013593505050565b5f805f606084860312156118cb575f80fd5b83356118d68161187b565b925060208401356118e68161187b565b929592945050506040919091013590565b80358015158114611906575f80fd5b919050565b5f806040838503121561191c575f80fd5b82356119278161187b565b9150611935602084016118f7565b90509250929050565b5f6020828403121561194e575f80fd5b81356107d48161187b565b5f806040838503121561196a575f80fd5b6118ab836118f7565b803561ffff81168114611906575f80fd5b5f805f8060808587031215611997575f80fd5b6119a085611973565b93506119ae60208601611973565b92506119bc60408601611973565b91506119ca60608601611973565b905092959194509250565b5f602082840312156119e5575f80fd5b5035919050565b5f80604083850312156119fd575f80fd5b8235611a088161187b565b91506020830135611a188161187b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a7157815f1904821115611a5757611a57611a23565b80851615611a6457918102915b93841c9390800290611a3c565b509250929050565b5f82611a8757506001610725565b81611a9357505f610725565b8160018114611aa95760028114611ab357611acf565b6001915050610725565b60ff841115611ac457611ac4611a23565b50506001821b610725565b5060208310610133831016604e8410600b8410161715611af2575081810a610725565b611afc8383611a37565b805f1904821115611b0f57611b0f611a23565b029392505050565b5f6107d460ff841683611a79565b808202811582820484141761072557610725611a23565b8181038181111561072557610725611a23565b61ffff818116838216019080821115611b6a57611b6a611a23565b5092915050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561072557610725611a23565b5f82611bb257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611bc7575f80fd5b81516107d48161187b565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c225784516001600160a01b031683529383019391830191600101611bfd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611c55575f80fd5b8351925060208401519150604084015190509250925092565b63ffffffff818116838216019080821115611b6a57611b6a611a2356fea2646970667358221220a8a7dc48d63517527543f51dcbd53cb8f4fb8a086066000ef3ddb248b3c1360964736f6c63430008180033
Deployed Bytecode Sourcemap
4246:12676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5853:50;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5853:50:0;;;;;;;;15080:94;;;;;;;;;;-1:-1:-1;15161:5:0;;;;;;;;;;;;-1:-1:-1;;;15161:5:0;;;;15080:94;;;;;;;:::i;15591:241::-;;;;;;;;;;-1:-1:-1;15591:241:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;15591:241:0;1205:187:1;14762:102:0;;;;;;;;;;;;;:::i;7360:405::-;;;;;;;;;;-1:-1:-1;7360:405:0;;;;;:::i;:::-;;:::i;14549:97::-;;;;;;;;;;;;;:::i;:::-;;;2032:6:1;2020:19;;;2002:38;;1990:2;1975:18;14549:97:0;1858:188:1;14403:138:0;;;;;;;;;;;;;:::i;14872:94::-;;;;;;;;;;-1:-1:-1;14872:94:0;;5132:2;2193:36:1;;2181:2;2166:18;14872:94:0;2051:184:1;10139:173:0;;;;;;;;;;-1:-1:-1;10139:173:0;;;;;:::i;:::-;;:::i;:::-;;4864:43;;;;;;;;;;-1:-1:-1;4864:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10881:372;;;;;;;;;;-1:-1:-1;10881:372:0;;;;;:::i;:::-;;:::i;5643:40::-;;;;;;;;;;-1:-1:-1;5643:40:0;;;;-1:-1:-1;;;5643:40:0;;;;;;4962:35;;;;;;;;;;-1:-1:-1;4962:35:0;;;;;;;;15840:122;;;;;;;;;;-1:-1:-1;15840:122:0;;;;;:::i;:::-;;:::i;11261:633::-;;;;;;;;;;-1:-1:-1;11261:633:0;;;;;:::i;:::-;;:::i;5426:35::-;;;;;;;;;;-1:-1:-1;5426:35:0;;;;-1:-1:-1;;;;;5426:35:0;;;;;;-1:-1:-1;;;;;3964:32:1;;;3946:51;;3934:2;3919:18;5426:35:0;3800:203:1;15284:119:0;;;;;;;;;;-1:-1:-1;15284:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15377:18:0;15350:7;15377:18;;;:9;:18;;;;;;;15284:119;4142:97;;;;;;;;;;;;;:::i;4914:41::-;;;;;;;;;;-1:-1:-1;4914:41:0;;;;;:::i;:::-;;:::i;12033:283::-;;;;;;;;;;;;;:::i;15182:94::-;;;;;;;;;;-1:-1:-1;15234:7:0;3578:6;-1:-1:-1;;;;;3578:6:0;15182:94;14762:102;14974:98;;;;;;;;;;-1:-1:-1;15057:7:0;;;;;;;;;;;;-1:-1:-1;;;15057:7:0;;;;14974:98;;5570:29;;;;;;;;;;;;;;;9306:177;;;;;;;;;;-1:-1:-1;9306:177:0;;;;;:::i;:::-;;:::i;14654:100::-;;;;;;;;;;;;;:::i;10320:303::-;;;;;;;;;;-1:-1:-1;10320:303:0;;;;;:::i;:::-;;:::i;5395:24::-;;;;;;;;;;-1:-1:-1;5395:24:0;;;;-1:-1:-1;;;5395:24:0;;;;;;;;;4367:10:1;4355:23;;;4337:42;;4325:2;4310:18;5395:24:0;4193:192:1;10631:242:0;;;;;;;;;;-1:-1:-1;10631:242:0;;;;;:::i;:::-;;:::i;14189:206::-;;;;;;;;;;;;;:::i;15411:172::-;;;;;;;;;;-1:-1:-1;15411:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;15547:19:0;;;15520:7;15547:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15411:172;5319:69;;;;;;;;;;-1:-1:-1;5319:69:0;;;;;;;-1:-1:-1;;;;;5319:69:0;;;3740:195;;;;;;;;;;-1:-1:-1;3740:195:0;;;;;:::i;:::-;;:::i;5141:90::-;;;;;;;;;;;;5188:42;5141:90;;5690:31;;;;;;;;;;-1:-1:-1;5690:31:0;;;;-1:-1:-1;;;5690:31:0;;;;;;15591:241;15720:10;15691:4;15708:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15708:32:0;;;;;;;;;;:41;;;15765:37;15691:4;;15708:32;;15765:37;;;;15743:6;160:25:1;;148:2;133:18;;14:177;15765:37:0;;;;;;;;-1:-1:-1;15820:4:0;15591:241;;;;;:::o;14762:102::-;14817:7;5830:15;5132:2;5830;:15;:::i;:::-;5818:28;;:8;:28;:::i;:::-;14837:19;;14762:102;:::o;7360:405::-;-1:-1:-1;;;;;7515:19:0;;7494:4;7515:19;;;:11;:19;;;;;;;;7535:10;7515:31;;;;;;;;-1:-1:-1;;7515:52:0;7511:193;;-1:-1:-1;;;;;7635:19:0;;;;;;:11;:19;;;;;;;;7655:10;7635:31;;;;;;;;:57;;7686:6;;7635:57;:::i;:::-;-1:-1:-1;;;;;7584:19:0;;;;;;:11;:19;;;;;;;;7604:10;7584:31;;;;;;;:108;7511:193;7721:36;7731:6;7739:9;7750:6;7721:9;:36::i;:::-;7714:43;;7360:405;;;;;;:::o;14549:97::-;14629:9;;14593:6;;14619:19;;14629:9;-1:-1:-1;;;14629:9:0;;;;;-1:-1:-1;;;14619:7:0;;;:19;:::i;14403:138::-;14528:4;;-1:-1:-1;;;;;14528:4:0;14458:7;15377:18;;;:9;:18;;;;;;5270:42;15377:18;;;;5830:15;5132:2;5830;:15;:::i;:::-;5818:28;;:8;:28;:::i;:::-;14485:30;;;;:::i;:::-;:48;;;;:::i;10139:173::-;3478:13;:11;:13::i;:::-;-1:-1:-1;;;;;10225:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;10225:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;10269:35;;1345:41:1;;;10269:35:0::1;::::0;1318:18:1;10269:35:0::1;;;;;;;10139:173:::0;;:::o;10881:372::-;3478:13;:11;:13::i;:::-;5514:12:::1;11019:16;:37;11015:65;;;11065:15;;-1:-1:-1::0;;;11065:15:0::1;;;;;;;;;;;11015:65;11091:13;:32:::0;;;11134:21:::1;:38:::0;;-1:-1:-1;;;;11134:38:0::1;-1:-1:-1::0;;;11134:38:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;11188:57:::1;::::0;;7165:41:1;;;7237:2;7222:18;;7215:34;;;11188:57:0::1;::::0;7138:18:1;11188:57:0::1;;;;;;;;10881:372:::0;;:::o;15840:122::-;15895:4;15919:35;15927:7;-1:-1:-1;;15919:7:0;:35::i;11261:633::-;3478:13;:11;:13::i;:::-;11433:22:::1;11458:25;11471:12:::0;11458:10;:25:::1;:::i;:::-;11433:50:::0;-1:-1:-1;11494:21:0::1;11518:23;11530:11:::0;11518:9;:23:::1;:::i;:::-;11494:47:::0;-1:-1:-1;4582:3:0::1;11556:24;::::0;::::1;;::::0;:53:::1;;-1:-1:-1::0;4582:3:0::1;11584:25;::::0;::::1;;11556:53;11552:91;;;11631:12;;-1:-1:-1::0;;;11631:12:0::1;;;;;;;;;;;11552:91;11654:9;:23:::0;;::::1;11754:21:::0;;::::1;-1:-1:-1::0;;;11754:21:0::1;-1:-1:-1::0;;;;11718:25:0;;::::1;-1:-1:-1::0;;;11718:25:0::1;11754:21:::0;-1:-1:-1;;;;11688:19:0;;::::1;-1:-1:-1::0;;;11688:19:0;::::1;-1:-1:-1::0;;;;11654:23:0;;::::1;-1:-1:-1::0;;;11654:23:0;::::1;11688:19:::0;;;;-1:-1:-1;;;;11688:19:0;;;;;;;;;;::::1;11754:21:::0;;::::1;::::0;;;11791:38:::1;::::0;;7455:34:1;;;7520:2;7505:18;;7498:43;;;;11791:38:0::1;::::0;7403:18:1;11791:38:0::1;;;;;;;11845:41;::::0;;7440:6:1;7473:15;;;7455:34;;7525:15;;7520:2;7505:18;;7498:43;11845:41:0::1;::::0;7403:18:1;11845:41:0::1;;;;;;;11422:472;;11261:633:::0;;;;:::o;4142:97::-;3478:13;:11;:13::i;:::-;4226:4:::1;::::0;4207:24:::1;::::0;-1:-1:-1;;;;;4226:4:0::1;4207:18;:24::i;:::-;4142:97::o:0;4914:41::-;;;;;;;;;;;;;;;-1:-1:-1;4914:41:0;:::o;12033:283::-;3478:13;:11;:13::i;:::-;12120:21:::1;12091:26;12156:23:::0;;;12152:51:::1;;12188:15;;-1:-1:-1::0;;;12188:15:0::1;;;;;;;;;;;12152:51;12214:43;12238:18;12214:23;:43::i;:::-;12273:35;::::0;160:25:1;;;12273:35:0::1;::::0;148:2:1;133:18;12273:35:0::1;;;;;;;12080:236;12033:283::o:0;9306:177::-;9411:4;9435:40;9445:10;9457:9;9468:6;9435:9;:40::i;14654:100::-;14736:10;;14699:6;;14725:21;;14736:10;-1:-1:-1;;;14736:10:0;;;;;-1:-1:-1;;;14725:8:0;;;:21;:::i;10320:303::-;3478:13;:11;:13::i;:::-;-1:-1:-1;;;;;10399:26:0;::::1;10395:55;;10434:16;;-1:-1:-1::0;;;10434:16:0::1;;;;;;;;;;;10395:55;10473:9;::::0;;;;;;::::1;-1:-1:-1::0;;;;;10473:9:0;;::::1;10486:5;10461:22:::0;;;:11:::1;:22;::::0;;;;;:30;;-1:-1:-1;;10461:30:0;;::::1;::::0;;;10502:24;;-1:-1:-1;;;;;;10502:24:0::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;10537:25;;;;;;:32;;;;::::1;-1:-1:-1::0;10537:32:0::1;::::0;;;10585:30;;10502:24;;10585:30:::1;::::0;::::1;10320:303:::0;:::o;10631:242::-;3478:13;:11;:13::i;:::-;-1:-1:-1;;;;;10713:30:0;::::1;10709:59;;10752:16;;-1:-1:-1::0;;;10752:16:0::1;;;;;;;;;;;10709:59;10779:13;:32:::0;;-1:-1:-1;;;;;;10779:32:0::1;-1:-1:-1::0;;;;;10779:32:0;::::1;::::0;;::::1;::::0;;;10827:38:::1;::::0;::::1;::::0;-1:-1:-1;;10827:38:0::1;10631:242:::0;:::o;14189:206::-;3478:13;:11;:13::i;:::-;14245:10:::1;::::0;-1:-1:-1;;;14245:10:0;::::1;;;:15:::0;14241:41:::1;;14269:13;;-1:-1:-1::0;;;14269:13:0::1;;;;;;;;;;;14241:41;14293:11;:18:::0;;-1:-1:-1;;;;;;;14293:18:0;;::::1;::::0;::::1;::::0;;;14322:10:::1;:33:::0;;-1:-1:-1;;;;14322:33:0::1;14342:12;14322:33;;::::0;;::::1;::::0;;;::::1;::::0;;14371:16:::1;::::0;::::1;::::0;-1:-1:-1;;14371:16:0::1;14189:206::o:0;3740:195::-;3478:13;:11;:13::i;:::-;3841:4:::1;::::0;-1:-1:-1;;;;;3841:4:0;;::::1;3829:16:::0;;::::1;::::0;3821:67:::1;;;::::0;-1:-1:-1;;;3821:67:0;;7754:2:1;3821:67:0::1;::::0;::::1;7736:21:1::0;7793:2;7773:18;;;7766:30;7832:34;7812:18;;;7805:62;-1:-1:-1;;;7883:18:1;;;7876:36;7929:19;;3821:67:0::1;;;;;;;;;3899:28;3918:8;3899:18;:28::i;:::-;3740:195:::0;:::o;7773:1525::-;7894:4;7915:6;7925:1;7915:11;7911:39;;7935:15;;-1:-1:-1;;;7935:15:0;;;;;;;;;;;7911:39;-1:-1:-1;;;;;7965:23:0;;7961:59;;7997:23;;-1:-1:-1;;;7997:23:0;;;;;;;;;;;7961:59;-1:-1:-1;;;;;8035:20:0;;8031:58;;8064:25;;-1:-1:-1;;;8064:25:0;;;;;;;;;;;8031:58;8104:17;;-1:-1:-1;;;8104:17:0;;;;8100:98;;;8145:41;8160:6;8168:9;8179:6;8145:14;:41::i;:::-;8138:48;;;;8100:98;-1:-1:-1;;;;;8212:22:0;;;;;;:11;:22;;;;;;;;;:45;;-1:-1:-1;;;;;;8238:19:0;;;;;;:11;:19;;;;;;;;8212:45;8208:399;;;8290:4;-1:-1:-1;;;;;8277:17:0;:9;-1:-1:-1;;;;;8277:17:0;;:47;;;;-1:-1:-1;;;;;;8307:17:0;;;;;;:9;:17;;;;;;8298:26;;8277:47;8274:259;;;8352:41;8367:9;8378:6;8386;8352:14;:41::i;8274:259::-;8429:13;;8419:6;:23;;:49;;;;-1:-1:-1;;;;;;8446:22:0;;;;;;:11;:22;;;;;;;;8419:49;8415:118;;;8509:8;;8489:17;:28;;-1:-1:-1;;;8509:8:0;;;;;-1:-1:-1;;8489:28:0;;;;;;;;;8415:118;8554:41;8569:6;8577:9;8588:6;8554:14;:41::i;8208:399::-;8622:11;;-1:-1:-1;;;8622:11:0;;;;8617:38;;8642:13;;-1:-1:-1;;;8642:13:0;;;;;;;;;;;8617:38;-1:-1:-1;;;;;8705:17:0;;8666:19;8705:17;;;:9;:17;;;;;:27;;8688:6;;;;8705:17;:27;;8688:6;;8705:27;:::i;:::-;;;;;;;;8757:4;-1:-1:-1;;;;;8747:14:0;:6;-1:-1:-1;;;;;8747:14:0;;;:49;;;;-1:-1:-1;8779:17:0;;;8765:10;8779:17;;;;-1:-1:-1;;;8765:10:0;;;;;;:31;;8747:49;8743:66;;;8805:4;8798:11;;;;;8743:66;8837:4;-1:-1:-1;;;;;8824:17:0;:9;-1:-1:-1;;;;;8824:17:0;;8820:242;;8862:21;;-1:-1:-1;;;8862:21:0;;;;:79;;;;-1:-1:-1;8928:13:0;;8907:17;;:14;8887:17;:37;;8907:17;8887:37;:::i;:::-;:54;;8862:79;8858:131;;;8962:11;:9;:11::i;:::-;9017:33;9035:6;9043;9017:17;:33::i;:::-;9003:47;;8820:242;9086:4;-1:-1:-1;;;;;9076:14:0;:6;-1:-1:-1;;;;;9076:14:0;;9072:93;;9121:32;9138:6;9146;9121:16;:32::i;:::-;9107:46;;9072:93;-1:-1:-1;;;;;9177:20:0;;;;;;:9;:20;;;;;:35;;9201:11;;9177:20;:35;;9201:11;;9177:35;:::i;:::-;;;;;;;;9245:9;-1:-1:-1;;;;;9228:40:0;9237:6;-1:-1:-1;;;;;9228:40:0;;9256:11;9228:40;;;;160:25:1;;148:2;133:18;;14:177;9228:40:0;;;;;;;;-1:-1:-1;9286:4:0;;7773:1525;-1:-1:-1;;;;7773:1525:0:o;3600:132::-;3551:7;3578:6;-1:-1:-1;;;;;3578:6:0;2997:10;3664:23;3656:68;;;;-1:-1:-1;;;3656:68:0;;8423:2:1;3656:68:0;;;8405:21:1;;;8442:18;;;8435:30;8501:34;8481:18;;;8474:62;8553:18;;3656:68:0;8221:356:1;3943:191:0;4017:16;4036:6;;-1:-1:-1;;;;;4053:17:0;;;-1:-1:-1;;;;;;4053:17:0;;;;;;4086:40;;4036:6;;;;;;;4086:40;;4017:16;4086:40;4006:128;3943:191;:::o;12324:200::-;12411:9;;:33;;12393:12;;12411:9;;;-1:-1:-1;;;;;12411:9:0;;12433:6;;12393:12;12411:33;12393:12;12411:33;12433:6;12411:9;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12392:52;;;12460:7;12455:62;;12489:16;;160:25:1;;;12489:16:0;;148:2:1;133:18;12489:16:0;14:177:1;12455:62:0;12381:143;12324:200;:::o;9491:292::-;-1:-1:-1;;;;;9634:17:0;;9617:4;9634:17;;;:9;:17;;;;;:27;;9655:6;;9634:17;9617:4;;9634:27;;9655:6;;9634:27;:::i;:::-;;;;-1:-1:-1;;;;;;;9672:20:0;;;;;;:9;:20;;;;;:30;;9696:6;;9672:20;:30;;9696:6;;9672:30;:::i;:::-;;;;;;;;9735:9;-1:-1:-1;;;;;9718:35:0;9727:6;-1:-1:-1;;;;;9718:35:0;;9746:6;9718:35;;;;160:25:1;;148:2;133:18;;14:177;9718:35:0;;;;;;;;-1:-1:-1;9771:4:0;9491:292;;;;;:::o;13446:735::-;13504:14;:17;13550;;13486:15;13597:17;13550;13504;13597;:::i;:::-;13578:36;-1:-1:-1;13625:26:0;13654:11;13664:1;13654:7;:11;:::i;:::-;13625:40;-1:-1:-1;13676:20:0;13699:29;13625:40;13699:8;:29;:::i;:::-;13676:52;;13739:19;13761:31;13779:12;13761:17;:31::i;:::-;13739:53;-1:-1:-1;13803:23:0;13866:12;13830:32;13844:18;13739:53;13830:32;:::i;:::-;13829:49;;;;:::i;:::-;13803:75;-1:-1:-1;13889:16:0;13908:29;13803:75;13908:11;:29;:::i;:::-;13889:48;-1:-1:-1;13954:13:0;;13950:79;;13984:33;14008:8;13984:23;:33::i;:::-;14043:20;;14039:103;;14080:50;14094:18;14114:15;14080:13;:50::i;:::-;14159:14;;-1:-1:-1;;;;;13475:706:0;;;;;;;;13446:735::o;15970:477::-;16071:7;16091:12;16106:16;:14;:16::i;:::-;16091:31;;16133:14;16150:7;:38;;4433:3;16150:38;;;16160:8;;-1:-1:-1;;;16160:8:0;;;;16150:38;16133:55;;16199:13;16215:7;:39;;4538:3;16215:39;;;16225:10;;-1:-1:-1;;;16225:10:0;;;;16215:39;16199:55;-1:-1:-1;16265:15:0;5766:5;16284:16;16283:32;16284:16;;:6;:16;:::i;:::-;16283:32;;;;:::i;:::-;16265:50;-1:-1:-1;16326:15:0;5766:5;16345:15;16344:31;16345:15;;:6;:15;:::i;:::-;16344:31;;;;:::i;:::-;16326:49;;16402:37;16414:6;16422:7;16431;16402:11;:37::i;:::-;16393:46;;:6;:46;:::i;:::-;16386:53;15970:477;-1:-1:-1;;;;;;;;15970:477:0:o;16455:464::-;16555:7;16575:12;16590:16;:14;:16::i;:::-;16575:31;;16617:13;16633:7;:36;;4379:3;16633:36;;;16643:7;;-1:-1:-1;;;16643:7:0;;;;16633:36;16617:52;;16680:12;16695:7;:37;;4485:3;16695:37;;;16705:9;;;-1:-1:-1;;;16705:9:0;;;;16680:52;-1:-1:-1;16743:14:0;5766:5;16761:15;16760:31;16761:15;;:6;:15;:::i;12862:576::-;6794:17;:24;;-1:-1:-1;;;;6794:24:0;-1:-1:-1;;;6794:24:0;;;12999:16:::1;::::0;;13013:1:::1;12999:16:::0;;;;;::::1;::::0;;-1:-1:-1;;;;12999:16:0;13013:1;12999:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12999:16:0::1;12975:40;;13044:4;13026;13031:1;13026:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13026:23:0::1;;;-1:-1:-1::0;;;;;13026:23:0::1;;;::::0;::::1;5188:42;-1:-1:-1::0;;;;;13070:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13060:4;13065:1;13060:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13060:23:0::1;;;-1:-1:-1::0;;;;;13060:23:0::1;;;::::0;::::1;13094:35;13110:4;13117:11;13094:7;:35::i;:::-;-1:-1:-1::0;13192:187:0::1;::::0;-1:-1:-1;;;13192:187:0;;13160:21:::1;::::0;5188:42:::1;::::0;13192:57:::1;::::0;:187:::1;::::0;13264:11;;13140:17:::1;::::0;13306:4;;13333::::1;::::0;13353:15:::1;::::0;13192:187:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13421:9;13397:21;:33;;;;:::i;:::-;6841:17:::0;:25;;-1:-1:-1;;;;6841:25:0;;;13390:40;12862:576;-1:-1:-1;;;;12862:576:0:o;12532:322::-;6794:17;:24;;-1:-1:-1;;;;;;;6794:24:0;;;;;;12651:195:::1;::::0;-1:-1:-1;;;12651:195:0;;12714:4:::1;12651:195;::::0;::::1;10728:34:1::0;10778:18;;;10771:34;;;-1:-1:-1;10821:18:1;;;10814:34;;;10864:18;;;10857:34;-1:-1:-1;;;;;12792:13:0;;;10907:19:1;;;10900:44;12820:15:0::1;10960:19:1::0;;;10953:35;5188:42:0::1;::::0;12651:22:::1;::::0;12681:9;;10662:19:1;;12651:195:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6841:17:0;:25;;-1:-1:-1;;;;6841:25:0;;;-1:-1:-1;;;12532:322:0:o;11902:123::-;11974:10;;11950:4;;12005:12;;11974:28;;11950:4;;-1:-1:-1;;;11974:10:0;;;;:28;:::i;:::-;:43;;;11967:50;;11902:123;:::o;9791:340::-;9903:11;9948:2;9927:14;9942:1;9927:17;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;9982:2:0;;-1:-1:-1;9961:14:0;9976:1;9961:17;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;10001:7:0;;-1:-1:-1;10006:2:0;10001;:7;:::i;:::-;10037:4;10019:24;;;;:9;:24;;;;;:31;;9995:13;;-1:-1:-1;9995:13:0;;10019:24;;;:31;;9995:13;;10019:31;:::i;:::-;;;;-1:-1:-1;;10066:36:0;;160:25:1;;;10091:4:0;;-1:-1:-1;;;;;10066:36:0;;;;;148:2:1;133:18;10066:36:0;;;;;;;9791:340;;;;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2240:160::-;2305:20;;2361:13;;2354:21;2344:32;;2334:60;;2390:1;2387;2380:12;2334:60;2240:160;;;:::o;2405:315::-;2470:6;2478;2531:2;2519:9;2510:7;2506:23;2502:32;2499:52;;;2547:1;2544;2537:12;2499:52;2586:9;2573:23;2605:31;2630:5;2605:31;:::i;:::-;2655:5;-1:-1:-1;2679:35:1;2710:2;2695:18;;2679:35;:::i;:::-;2669:45;;2405:315;;;;;:::o;2725:247::-;2784:6;2837:2;2825:9;2816:7;2812:23;2808:32;2805:52;;;2853:1;2850;2843:12;2805:52;2892:9;2879:23;2911:31;2936:5;2911:31;:::i;2977:248::-;3042:6;3050;3103:2;3091:9;3082:7;3078:23;3074:32;3071:52;;;3119:1;3116;3109:12;3071:52;3142:26;3158:9;3142:26;:::i;3230:159::-;3297:20;;3357:6;3346:18;;3336:29;;3326:57;;3379:1;3376;3369:12;3394:401;3476:6;3484;3492;3500;3553:3;3541:9;3532:7;3528:23;3524:33;3521:53;;;3570:1;3567;3560:12;3521:53;3593:28;3611:9;3593:28;:::i;:::-;3583:38;;3640:37;3673:2;3662:9;3658:18;3640:37;:::i;:::-;3630:47;;3696:37;3729:2;3718:9;3714:18;3696:37;:::i;:::-;3686:47;;3752:37;3785:2;3774:9;3770:18;3752:37;:::i;:::-;3742:47;;3394:401;;;;;;;:::o;4008:180::-;4067:6;4120:2;4108:9;4099:7;4095:23;4091:32;4088:52;;;4136:1;4133;4126:12;4088:52;-1:-1:-1;4159:23:1;;4008:180;-1:-1:-1;4008:180:1:o;4390:388::-;4458:6;4466;4519:2;4507:9;4498:7;4494:23;4490:32;4487:52;;;4535:1;4532;4525:12;4487:52;4574:9;4561:23;4593:31;4618:5;4593:31;:::i;:::-;4643:5;-1:-1:-1;4700:2:1;4685:18;;4672:32;4713:33;4672:32;4713:33;:::i;:::-;4765:7;4755:17;;;4390:388;;;;;:::o;5009:127::-;5070:10;5065:3;5061:20;5058:1;5051:31;5101:4;5098:1;5091:15;5125:4;5122:1;5115:15;5141:416;5230:1;5267:5;5230:1;5281:270;5302:7;5292:8;5289:21;5281:270;;;5361:4;5357:1;5353:6;5349:17;5343:4;5340:27;5337:53;;;5370:18;;:::i;:::-;5420:7;5410:8;5406:22;5403:55;;;5440:16;;;;5403:55;5519:22;;;;5479:15;;;;5281:270;;;5285:3;5141:416;;;;;:::o;5562:806::-;5611:5;5641:8;5631:80;;-1:-1:-1;5682:1:1;5696:5;;5631:80;5730:4;5720:76;;-1:-1:-1;5767:1:1;5781:5;;5720:76;5812:4;5830:1;5825:59;;;;5898:1;5893:130;;;;5805:218;;5825:59;5855:1;5846:10;;5869:5;;;5893:130;5930:3;5920:8;5917:17;5914:43;;;5937:18;;:::i;:::-;-1:-1:-1;;5993:1:1;5979:16;;6008:5;;5805:218;;6107:2;6097:8;6094:16;6088:3;6082:4;6079:13;6075:36;6069:2;6059:8;6056:16;6051:2;6045:4;6042:12;6038:35;6035:77;6032:159;;;-1:-1:-1;6144:19:1;;;6176:5;;6032:159;6223:34;6248:8;6242:4;6223:34;:::i;:::-;6293:6;6289:1;6285:6;6281:19;6272:7;6269:32;6266:58;;;6304:18;;:::i;:::-;6342:20;;5562:806;-1:-1:-1;;;5562:806:1:o;6373:140::-;6431:5;6460:47;6501:4;6491:8;6487:19;6481:4;6460:47;:::i;6518:168::-;6591:9;;;6622;;6639:15;;;6633:22;;6619:37;6609:71;;6660:18;;:::i;6691:128::-;6758:9;;;6779:11;;;6776:37;;;6793:18;;:::i;6824:168::-;6891:6;6917:10;;;6929;;;6913:27;;6952:11;;;6949:37;;;6966:18;;:::i;:::-;6949:37;6824:168;;;;:::o;7959:127::-;8020:10;8015:3;8011:20;8008:1;8001:31;8051:4;8048:1;8041:15;8075:4;8072:1;8065:15;8091:125;8156:9;;;8177:10;;;8174:36;;;8190:18;;:::i;8792:217::-;8832:1;8858;8848:132;;8902:10;8897:3;8893:20;8890:1;8883:31;8937:4;8934:1;8927:15;8965:4;8962:1;8955:15;8848:132;-1:-1:-1;8994:9:1;;8792:217::o;9146:251::-;9216:6;9269:2;9257:9;9248:7;9244:23;9240:32;9237:52;;;9285:1;9282;9275:12;9237:52;9317:9;9311:16;9336:31;9361:5;9336:31;:::i;9402:980::-;9664:4;9712:3;9701:9;9697:19;9743:6;9732:9;9725:25;9769:2;9807:6;9802:2;9791:9;9787:18;9780:34;9850:3;9845:2;9834:9;9830:18;9823:31;9874:6;9909;9903:13;9940:6;9932;9925:22;9978:3;9967:9;9963:19;9956:26;;10017:2;10009:6;10005:15;9991:29;;10038:1;10048:195;10062:6;10059:1;10056:13;10048:195;;;10127:13;;-1:-1:-1;;;;;10123:39:1;10111:52;;10218:15;;;;10183:12;;;;10159:1;10077:9;10048:195;;;-1:-1:-1;;;;;;;10299:32:1;;;;10294:2;10279:18;;10272:60;-1:-1:-1;;;10363:3:1;10348:19;10341:35;10260:3;9402:980;-1:-1:-1;;;9402:980:1:o;10999:306::-;11087:6;11095;11103;11156:2;11144:9;11135:7;11131:23;11127:32;11124:52;;;11172:1;11169;11162:12;11124:52;11201:9;11195:16;11185:26;;11251:2;11240:9;11236:18;11230:25;11220:35;;11295:2;11284:9;11280:18;11274:25;11264:35;;10999:306;;;;;:::o;11310:172::-;11377:10;11407;;;11419;;;11403:27;;11442:11;;;11439:37;;;11456:18;;:::i
Swarm Source
ipfs://a8a7dc48d63517527543f51dcbd53cb8f4fb8a086066000ef3ddb248b3c13609
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.