Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Tweet2
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Unlicensed
/**
HABIB
*/
pragma solidity 0.8.26;
interface ERC20 {
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);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
}
contract Ownable is Context {
address public _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() external virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface InterfaceLP {
function sync() external;
}
contract Tweet2 is Ownable, ERC20 {
address immutable WETH;
address constant DEAD = 0x000000000000000000000000000000000000dEaD;
string constant _name = unicode"Habib";
string constant _symbol = unicode"HABIB";
uint8 constant _decimals = 9;
uint256 constant _totalSupply = 1000000000 * 10**_decimals;
uint256 public _maxTxAmount = _totalSupply / 50;
uint256 public _maxWalletAmount = _totalSupply / 50;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) isFeeExempt;
mapping (address => bool) isTxLimitExempt;
uint256 public buyFee = 19;
uint256 public sellFee = 23;
uint256 constant transferFee = 0;
uint256 private lastSwap;
address private marketingFeeReceiver;
IDEXRouter public router;
InterfaceLP private pairContract;
address immutable public pair;
bool public TradingOpen = false;
bool public swapEnabled = true;
uint256 public swapThreshold = _totalSupply / 100;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount);
event exemptFees(address indexed holder, bool indexed exempt);
event exemptTxLimit(address indexed holder, bool indexed exempt);
event buyFeeUpdated(uint256 indexed buyFee);
event sellFeeUpdated(uint256 indexed sellFee);
event feesWalletUpdated(address indexed marketingFeeReceiver);
event tradingEnabled(bool indexed enabled, uint256 indexed startTime);
constructor () {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
pairContract = InterfaceLP(pair);
_allowances[address(this)][address(router)] = type(uint256).max;
marketingFeeReceiver = 0xD53600CB29b2dd50cd1aE045e597a1ff2361F50c;
isFeeExempt[msg.sender] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[pair] = true;
isTxLimitExempt[marketingFeeReceiver] = true;
isTxLimitExempt[address(this)] = true;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function totalSupply() external pure override returns (uint256) { return _totalSupply; }
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) {
require(spender != address(0), "Spender is the zero address");
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveAll(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
require(recipient != address(0), "Recipient is the zero address");
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
require(sender != address(0), "Sender is the zero address");
require(recipient != address(0), "Recipient is the zero address");
uint256 currentAllowance = _allowances[sender][_msgSender()];
if(currentAllowance != type(uint256).max){
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_allowances[sender][_msgSender()] = currentAllowance - amount;
}
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if(sender != owner()){
require(TradingOpen,"Trading not open yet");
}
checkTxLimit(sender, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
if (sender != owner() && (recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){
uint256 heldTokens = balanceOf(recipient);
require((heldTokens + amountReceived) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");}
if(
lastSwap != block.number &&
_balances[address(this)] >= swapThreshold &&
swapEnabled &&
!inSwap &&
recipient == pair
){
swapBack();
lastSwap = block.number;
}
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amountReceived;
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function checkTxLimit(address sender, uint256 amount) internal view {
require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded");
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}
function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
uint256 feeAmount = 0;
uint256 notFeeAmount;
if(recipient == pair) {
feeAmount = (amount * sellFee) / 100;
} else if(sender == pair) {
feeAmount = (amount * buyFee) / 100;
}else{
feeAmount = 0;
}
if(feeAmount > 0) {
_balances[address(this)] += feeAmount;
emit Transfer(sender, address(this), feeAmount);
notFeeAmount = amount - feeAmount;
} else {
notFeeAmount = amount;
}
return notFeeAmount;
}
function setFeeExempt(address wallet, bool exempt) external onlyOwner {
require(wallet != address(0), "Invalid address");
isFeeExempt[wallet] = exempt;
emit exemptFees(wallet, exempt);
}
function removeMaxLimits() external onlyOwner {
_maxWalletAmount = _totalSupply;
_maxTxAmount = _totalSupply;
emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount);
}
function enableTrading() external onlyOwner {
require(!TradingOpen,"Trading already Enabled.");
TradingOpen = true;
lastSwap = block.number;
emit tradingEnabled(TradingOpen, lastSwap);
}
function swapBack() internal swapping {
uint256 amountToSwap = swapThreshold;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 totalETHFee = address(this).balance;
(bool tmpSuccess1,) = payable(marketingFeeReceiver).call{value: totalETHFee}("");
require(tmpSuccess1, "Failed to send ether to Marketing Fee Receiver.");
}
function exemptAll(address holder, bool exempt) external onlyOwner {
require(holder != address(0), "Holder is the zero address");
isFeeExempt[holder] = exempt;
isTxLimitExempt[holder] = exempt;
emit exemptFees(holder, exempt);
}
function setTxLimitExempt(address holder, bool exempt) external onlyOwner {
require(holder != address(0), "Holder is the zero address");
isTxLimitExempt[holder] = exempt;
emit exemptTxLimit(holder, exempt);
}
function updateBuyFee(uint256 _buyFee) external onlyOwner {
require( _buyFee <= 5, "Fees can not be more than 5%");
buyFee =_buyFee;
emit buyFeeUpdated(buyFee);
}
function updateSellFee(uint256 _sellFee) external onlyOwner {
require(_sellFee <= 99, "Fees can not be more than 99%");
sellFee =_sellFee;
emit sellFeeUpdated(_sellFee);
}
function updatefeeWallet( address _marketingFeeReceiver) external onlyOwner {
require(_marketingFeeReceiver != address(0) , "Marketing fee receiver cannot be zero address");
marketingFeeReceiver = _marketingFeeReceiver;
emit feesWalletUpdated(marketingFeeReceiver);
}
function isDeployer(address wallet) public view returns (bool) {
return wallet == marketingFeeReceiver;
}
uint256 public burnCounter;
function triggerBurnCounter() public {
burnCounter++;
}
// 1)
uint256 public TXCounter;
function incrementTXCounter() public {
TXCounter++;
}
// 2)
bool public StateFalse;
function resetAlwaysFalse() public {
StateFalse = false;
}
// 3)
//uint256 public lastInteraction;
//function updateLastInteraction() public {
// lastInteraction = block.timestamp;
//}
// 4) Store the caller’s address
address public lastCaller;
function recordLastCaller() public {
lastCaller = msg.sender;
}
// 5) Clearentry for the caller
mapping(address => uint256) public Map;
function clearMapEntry() public {
delete Map[msg.sender];
}
// 6) Toggle a boolean flag back and forth
bool public toggleFlag;
function toggleFlagState() public {
toggleFlag = !toggleFlag;
}
// 7) Record the last block number seen
uint256 public lastBlockNumber;
function updateLastBlockNumber() public {
lastBlockNumber = block.number;
}
// 8) Store the current chain ID
uint256 public storedChainId;
function storeChainId() public {
storedChainId = block.chainid;
}
// 9) Capture the transaction’s gas price
//uint256 public lastGasPrice;
//function recordLastGasPrice() public {
// lastGasPrice = tx.gasprice;
//}
// 10) Push the caller into an array then immediately pop it
address[] public tempArray;
function pushAndPopCaller() public {
tempArray.push(msg.sender);
tempArray.pop();
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"buyFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"}],"name":"feesWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"sellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Map","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StateFalse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TXCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"approveAll","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":"burnCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearMapEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incrementTXCounter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isDeployer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastCaller","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":"pushAndPopCaller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordLastCaller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetAlwaysFalse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storeChainId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storedChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","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":"tempArray","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleFlagState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"triggerBurnCounter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateLastBlockNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"updatefeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c060405260326100126009600a61049d565b61002090633b9aca006104b3565b61002a91906104ca565b600155603261003b6009600a61049d565b61004990633b9aca006104b3565b61005391906104ca565b60025560136007556017600855600c805461ffff60a01b1916600160a81b17905560646100826009600a61049d565b61009090633b9aca006104b3565b61009a91906104ca565b600d553480156100a957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801561014f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017391906104ec565b6001600160a01b03908116608052600b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156101c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e791906104ec565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c91906104ec565b6001600160a01b0390811660a0819052600c80546001600160a01b03199081168317909155306000818152600460209081526040808320600b548816845282528083206000199055600a805490951673d53600cb29b2dd50cd1ae045e597a1ff2361f50c17855533835260058252808320805460ff19908116600190811790925560069093528184208054841682179055958352808320805483168717905584549096168252858220805482168617905591815293909320805490931690911790915561032b9060099061049d565b61033990633b9aca006104b3565b33600081815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61037a6009600a61049d565b61038890633b9aca006104b3565b60405190815260200160405180910390a3610515565b634e487b7160e01b600052601160045260246000fd5b6001815b60018411156103ef578085048111156103d3576103d361039e565b60018416156103e157908102905b60019390931c9280026103b8565b935093915050565b60008261040657506001610497565b8161041357506000610497565b816001811461042957600281146104335761044f565b6001915050610497565b60ff8411156104445761044461039e565b50506001821b610497565b5060208310610133831016604e8410600b8410161715610472575081810a610497565b61047f60001984846103b4565b80600019048211156104935761049361039e565b0290505b92915050565b60006104ac60ff8416836103f7565b9392505050565b80820281158282048414176104975761049761039e565b6000826104e757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156104fe57600080fd5b81516001600160a01b03811681146104ac57600080fd5b60805160a0516120ae61055660003960008181610792015281816115de015281816117430152818161196a01526119b601526000611aee01526120ae6000f3fe6080604052600436106102e75760003560e01c806370a0823111610190578063a8aa1b31116100dc578063d3ec72e011610095578063f2fde38b1161006f578063f2fde38b146108ce578063f6a78e17146108ee578063f887ea4014610903578063fb1c37911461092357600080fd5b8063d3ec72e01461085d578063dd62ed3e14610872578063de8ca33a146108b857600080fd5b8063a8aa1b3114610780578063a9059cbb146107b4578063b2bdfa7b146107d4578063bdbfefb9146107f4578063c483b71c14610810578063ccf8c0361461083d57600080fd5b80638d7a8ba71161014957806395d89b411161012357806395d89b41146106f3578063988f8ec714610721578063a0e47c7d14610745578063a6d1ef191461075a57600080fd5b80638d7a8ba7146106b35780638da5cb5b146106805780638ebfc796146106d357600080fd5b806370a0823114610609578063715018a61461063f57806378d68a2b146106545780637d1db4a51461066a578063893d20e8146106805780638a8c523c1461069e57600080fd5b80632552317c1161024f578063493977b01161020857806350c358a4116101e257806350c358a41461058e5780635ca30ba2146105bd5780636c0a24eb146105d25780636ddd1713146105e857600080fd5b8063493977b01461053c5780634c99007d146105565780634f226e7b1461056c57600080fd5b80632552317c146104a85780632b14ca56146104be578063313ce567146104d45780633cfa7204146104f0578063467abe0a14610506578063470624021461052657600080fd5b8063095ea7b3116102a1578063095ea7b3146103f657806318160ddd146104165780631bd74d091461042b5780631d933a4a146104435780632113522a1461046357806323b872dd1461048857600080fd5b8062c0096e146102f35780630160303c146103225780630445b6671461035a5780630621472c1461037e57806306fdde031461039e57806308fd3d05146103d557600080fd5b366102ee57005b600080fd5b3480156102ff57600080fd5b5060135461030d9060ff1681565b60405190151581526020015b60405180910390f35b34801561032e57600080fd5b5061034261033d366004611c67565b610943565b6040516001600160a01b039091168152602001610319565b34801561036657600080fd5b50610370600d5481565b604051908152602001610319565b34801561038a57600080fd5b5061030d610399366004611c9c565b61096d565b3480156103aa57600080fd5b506040805180820190915260058152642430b134b160d91b60208201525b6040516103199190611cb7565b3480156103e157600080fd5b50600c5461030d90600160a01b900460ff1681565b34801561040257600080fd5b5061030d610411366004611d05565b610981565b34801561042257600080fd5b50610370610a42565b34801561043757600080fd5b5061044146601555565b005b34801561044f57600080fd5b5061044161045e366004611c67565b610a63565b34801561046f57600080fd5b506011546103429061010090046001600160a01b031681565b34801561049457600080fd5b5061030d6104a3366004611d2f565b610b11565b3480156104b457600080fd5b5061037060145481565b3480156104ca57600080fd5b5061037060085481565b3480156104e057600080fd5b5060405160098152602001610319565b3480156104fc57600080fd5b5061044143601455565b34801561051257600080fd5b50610441610521366004611c67565b610c8c565b34801561053257600080fd5b5061037060075481565b34801561054857600080fd5b5060115461030d9060ff1681565b34801561056257600080fd5b50610370600f5481565b34801561057857600080fd5b5061044133600090815260126020526040812055565b34801561059a57600080fd5b5061030d6105a9366004611c9c565b600a546001600160a01b0391821691161490565b3480156105c957600080fd5b50610441610d3a565b3480156105de57600080fd5b5061037060025481565b3480156105f457600080fd5b50600c5461030d90600160a81b900460ff1681565b34801561061557600080fd5b50610370610624366004611c9c565b6001600160a01b031660009081526003602052604090205490565b34801561064b57600080fd5b50610441610d51565b34801561066057600080fd5b5061037060155481565b34801561067657600080fd5b5061037060015481565b34801561068c57600080fd5b506000546001600160a01b0316610342565b3480156106aa57600080fd5b50610441610dc5565b3480156106bf57600080fd5b506104416106ce366004611d6c565b610e9d565b3480156106df57600080fd5b506104416106ee366004611d6c565b610f71565b3480156106ff57600080fd5b506040805180820190915260058152642420a124a160d91b60208201526103c8565b34801561072d57600080fd5b506104416013805460ff19811660ff90911615179055565b34801561075157600080fd5b50610441611037565b34801561076657600080fd5b5060118054610100600160a81b0319163361010002179055005b34801561078c57600080fd5b506103427f000000000000000000000000000000000000000000000000000000000000000081565b3480156107c057600080fd5b5061030d6107cf366004611d05565b611047565b3480156107e057600080fd5b50600054610342906001600160a01b031681565b34801561080057600080fd5b506104416011805460ff19169055565b34801561081c57600080fd5b5061037061082b366004611c9c565b60126020526000908152604090205481565b34801561084957600080fd5b50610441610858366004611d6c565b6110aa565b34801561086957600080fd5b50610441611192565b34801561087e57600080fd5b5061037061088d366004611da8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156108c457600080fd5b5061037060105481565b3480156108da57600080fd5b506104416108e9366004611c9c565b611206565b3480156108fa57600080fd5b506104416112f0565b34801561090f57600080fd5b50600b54610342906001600160a01b031681565b34801561092f57600080fd5b5061044161093e366004611c9c565b611384565b6016818154811061095357600080fd5b6000918252602090912001546001600160a01b0316905081565b600061097b82600019610981565b92915050565b60006001600160a01b0383166109de5760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064015b60405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6000610a506009600a611ed8565b610a5e90633b9aca00611ee7565b905090565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b81526004016109d590611efe565b6063811115610ade5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2039392500000060448201526064016109d5565b600881905560405181907f63d66ef9bcebaeaa6f4eb61e9327d3f4098c923aa98a5fc5326a53f2e145f4f290600090a250565b60006001600160a01b038416610b695760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016109d5565b6001600160a01b038316610bbf5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016109d5565b6001600160a01b03841660009081526004602090815260408083203384529091529020546000198114610c765782811015610c4d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109d5565b6001600160a01b0385166000908152600460209081526040808320338452909152902083820390555b610c81858585611464565b9150505b9392505050565b6000546001600160a01b03163314610cb65760405162461bcd60e51b81526004016109d590611efe565b6005811115610d075760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016109d5565b600781905560405181907f11953a0453d6e2e337ab856b9de1f4818ffa2a51f3a9c12f924e2a043ae37f6d90600090a250565b600f8054906000610d4a83611f33565b9190505550565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b81526004016109d590611efe565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610def5760405162461bcd60e51b81526004016109d590611efe565b600c54600160a01b900460ff1615610e495760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016109d5565b600c805460ff60a01b1916600160a01b9081179182905543600981905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d90600090a3565b6000546001600160a01b03163314610ec75760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b038216610f1d5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016109d5565b6001600160a01b038216600081815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b038216610fe35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016109d5565b6001600160a01b038216600081815260056020526040808220805460ff191685151590811790915590519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b60108054906000610d4a83611f33565b60006001600160a01b03831661109f5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016109d5565b610c85338484611464565b6000546001600160a01b031633146110d45760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b03821661112a5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016109d5565b6001600160a01b0382166000818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b6016805460018101825560008290527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b031916331790558054806111e2576111e2611f4c565b600082815260209020810160001990810180546001600160a01b0319169055019055565b6000546001600160a01b031633146112305760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b0381166112955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461131a5760405162461bcd60e51b81526004016109d590611efe565b6113266009600a611ed8565b61133490633b9aca00611ee7565b6002556113436009600a611ed8565b61135190633b9aca00611ee7565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa990600090a3565b6000546001600160a01b031633146113ae5760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b03811661141a5760405162461bcd60e51b815260206004820152602d60248201527f4d61726b6574696e67206665652072656365697665722063616e6e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016109d5565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e6894395320346b3bc32e11af639cec1465f714c0956a0f2ab9c0ec0084364190600090a250565b600e5460009060ff16156114845761147d848484611820565b9050610c85565b6000546001600160a01b038581169116146114e957600c54600160a01b900460ff166114e95760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109d5565b6114f384836118ef565b6001600160a01b0384166000908152600360205260409020548281101561152c5760405162461bcd60e51b81526004016109d590611f62565b6001600160a01b03851660009081526005602052604081205460ff168061156b57506001600160a01b03851660009081526005602052604090205460ff165b61157f5761157a86858761195c565b611581565b835b90506115956000546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561165257506001600160a01b03851630148015906115d557506001600160a01b03851661dead14155b801561161357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b801561162d5750600a546001600160a01b03868116911614155b801561165257506001600160a01b03851660009081526006602052604090205460ff16155b156116f3576001600160a01b03851660009081526003602052604090205460025461167d8383611fa8565b11156116f15760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109d5565b505b43600954141580156117165750600d543060009081526003602052604090205410155b801561172b5750600c54600160a81b900460ff165b801561173a5750600e5460ff16155b801561177757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b1561178957611784611a87565b436009555b6001600160a01b038087166000908152600360205260408082208786039055918716815290812080548392906117c0908490611fa8565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180c91815260200190565b60405180910390a350600195945050505050565b6001600160a01b038316600090815260036020526040812054828110156118595760405162461bcd60e51b81526004016109d590611f62565b6001600160a01b03808616600090815260036020526040808220868503905591861681529081208054859290611890908490611fa8565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118dc91815260200190565b60405180910390a3506001949350505050565b6001548111158061191857506001600160a01b03821660009081526006602052604090205460ff165b6119585760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016109d5565b5050565b600080806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908516036119b4576064600854866119a39190611ee7565b6119ad9190611fbb565b9150611a02565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316036119fd576064600754866119a39190611ee7565b600091505b8115611a7d573060009081526003602052604081208054849290611a27908490611fa8565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611a768286611fdd565b9050610c81565b5092949350505050565b600e805460ff19166001179055600d546040805160028082526060820183526000926020830190803683370190505090503081600081518110611acc57611acc611ff0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611b2057611b20611ff0565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac94790611b66908590600090869030904290600401612006565b600060405180830381600087803b158015611b8057600080fd5b505af1158015611b94573d6000803e3d6000fd5b5050600a54604051479350600092506001600160a01b039091169083908381818185875af1925050503d8060008114611be9576040519150601f19603f3d011682016040523d82523d6000602084013e611bee565b606091505b5050905080611c575760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016109d5565b5050600e805460ff191690555050565b600060208284031215611c7957600080fd5b5035919050565b80356001600160a01b0381168114611c9757600080fd5b919050565b600060208284031215611cae57600080fd5b610c8582611c80565b602081526000825180602084015260005b81811015611ce55760208186018101516040868401015201611cc8565b506000604082850101526040601f19601f83011684010191505092915050565b60008060408385031215611d1857600080fd5b611d2183611c80565b946020939093013593505050565b600080600060608486031215611d4457600080fd5b611d4d84611c80565b9250611d5b60208501611c80565b929592945050506040919091013590565b60008060408385031215611d7f57600080fd5b611d8883611c80565b915060208301358015158114611d9d57600080fd5b809150509250929050565b60008060408385031215611dbb57600080fd5b611dc483611c80565b9150611dd260208401611c80565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115611e2c57808504811115611e1057611e10611ddb565b6001841615611e1e57908102905b60019390931c928002611df5565b935093915050565b600082611e435750600161097b565b81611e505750600061097b565b8160018114611e665760028114611e7057611e8c565b600191505061097b565b60ff841115611e8157611e81611ddb565b50506001821b61097b565b5060208310610133831016604e8410600b8410161715611eaf575081810a61097b565b611ebc6000198484611df1565b8060001904821115611ed057611ed0611ddb565b029392505050565b6000610c8560ff841683611e34565b808202811582820484141761097b5761097b611ddb565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060018201611f4557611f45611ddb565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561097b5761097b611ddb565b600082611fd857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561097b5761097b611ddb565b634e487b7160e01b600052603260045260246000fd5b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b818110156120585783516001600160a01b0316835260209384019390920191600101612031565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220c4757d1264befd0dc3c60507ff9c798245680485a6557a45ee68e66dc8aef00f64736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106102e75760003560e01c806370a0823111610190578063a8aa1b31116100dc578063d3ec72e011610095578063f2fde38b1161006f578063f2fde38b146108ce578063f6a78e17146108ee578063f887ea4014610903578063fb1c37911461092357600080fd5b8063d3ec72e01461085d578063dd62ed3e14610872578063de8ca33a146108b857600080fd5b8063a8aa1b3114610780578063a9059cbb146107b4578063b2bdfa7b146107d4578063bdbfefb9146107f4578063c483b71c14610810578063ccf8c0361461083d57600080fd5b80638d7a8ba71161014957806395d89b411161012357806395d89b41146106f3578063988f8ec714610721578063a0e47c7d14610745578063a6d1ef191461075a57600080fd5b80638d7a8ba7146106b35780638da5cb5b146106805780638ebfc796146106d357600080fd5b806370a0823114610609578063715018a61461063f57806378d68a2b146106545780637d1db4a51461066a578063893d20e8146106805780638a8c523c1461069e57600080fd5b80632552317c1161024f578063493977b01161020857806350c358a4116101e257806350c358a41461058e5780635ca30ba2146105bd5780636c0a24eb146105d25780636ddd1713146105e857600080fd5b8063493977b01461053c5780634c99007d146105565780634f226e7b1461056c57600080fd5b80632552317c146104a85780632b14ca56146104be578063313ce567146104d45780633cfa7204146104f0578063467abe0a14610506578063470624021461052657600080fd5b8063095ea7b3116102a1578063095ea7b3146103f657806318160ddd146104165780631bd74d091461042b5780631d933a4a146104435780632113522a1461046357806323b872dd1461048857600080fd5b8062c0096e146102f35780630160303c146103225780630445b6671461035a5780630621472c1461037e57806306fdde031461039e57806308fd3d05146103d557600080fd5b366102ee57005b600080fd5b3480156102ff57600080fd5b5060135461030d9060ff1681565b60405190151581526020015b60405180910390f35b34801561032e57600080fd5b5061034261033d366004611c67565b610943565b6040516001600160a01b039091168152602001610319565b34801561036657600080fd5b50610370600d5481565b604051908152602001610319565b34801561038a57600080fd5b5061030d610399366004611c9c565b61096d565b3480156103aa57600080fd5b506040805180820190915260058152642430b134b160d91b60208201525b6040516103199190611cb7565b3480156103e157600080fd5b50600c5461030d90600160a01b900460ff1681565b34801561040257600080fd5b5061030d610411366004611d05565b610981565b34801561042257600080fd5b50610370610a42565b34801561043757600080fd5b5061044146601555565b005b34801561044f57600080fd5b5061044161045e366004611c67565b610a63565b34801561046f57600080fd5b506011546103429061010090046001600160a01b031681565b34801561049457600080fd5b5061030d6104a3366004611d2f565b610b11565b3480156104b457600080fd5b5061037060145481565b3480156104ca57600080fd5b5061037060085481565b3480156104e057600080fd5b5060405160098152602001610319565b3480156104fc57600080fd5b5061044143601455565b34801561051257600080fd5b50610441610521366004611c67565b610c8c565b34801561053257600080fd5b5061037060075481565b34801561054857600080fd5b5060115461030d9060ff1681565b34801561056257600080fd5b50610370600f5481565b34801561057857600080fd5b5061044133600090815260126020526040812055565b34801561059a57600080fd5b5061030d6105a9366004611c9c565b600a546001600160a01b0391821691161490565b3480156105c957600080fd5b50610441610d3a565b3480156105de57600080fd5b5061037060025481565b3480156105f457600080fd5b50600c5461030d90600160a81b900460ff1681565b34801561061557600080fd5b50610370610624366004611c9c565b6001600160a01b031660009081526003602052604090205490565b34801561064b57600080fd5b50610441610d51565b34801561066057600080fd5b5061037060155481565b34801561067657600080fd5b5061037060015481565b34801561068c57600080fd5b506000546001600160a01b0316610342565b3480156106aa57600080fd5b50610441610dc5565b3480156106bf57600080fd5b506104416106ce366004611d6c565b610e9d565b3480156106df57600080fd5b506104416106ee366004611d6c565b610f71565b3480156106ff57600080fd5b506040805180820190915260058152642420a124a160d91b60208201526103c8565b34801561072d57600080fd5b506104416013805460ff19811660ff90911615179055565b34801561075157600080fd5b50610441611037565b34801561076657600080fd5b5060118054610100600160a81b0319163361010002179055005b34801561078c57600080fd5b506103427f00000000000000000000000071eb61149c969934c71cda4e8580eb55a3d87aa781565b3480156107c057600080fd5b5061030d6107cf366004611d05565b611047565b3480156107e057600080fd5b50600054610342906001600160a01b031681565b34801561080057600080fd5b506104416011805460ff19169055565b34801561081c57600080fd5b5061037061082b366004611c9c565b60126020526000908152604090205481565b34801561084957600080fd5b50610441610858366004611d6c565b6110aa565b34801561086957600080fd5b50610441611192565b34801561087e57600080fd5b5061037061088d366004611da8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156108c457600080fd5b5061037060105481565b3480156108da57600080fd5b506104416108e9366004611c9c565b611206565b3480156108fa57600080fd5b506104416112f0565b34801561090f57600080fd5b50600b54610342906001600160a01b031681565b34801561092f57600080fd5b5061044161093e366004611c9c565b611384565b6016818154811061095357600080fd5b6000918252602090912001546001600160a01b0316905081565b600061097b82600019610981565b92915050565b60006001600160a01b0383166109de5760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064015b60405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6000610a506009600a611ed8565b610a5e90633b9aca00611ee7565b905090565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b81526004016109d590611efe565b6063811115610ade5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2039392500000060448201526064016109d5565b600881905560405181907f63d66ef9bcebaeaa6f4eb61e9327d3f4098c923aa98a5fc5326a53f2e145f4f290600090a250565b60006001600160a01b038416610b695760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016109d5565b6001600160a01b038316610bbf5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016109d5565b6001600160a01b03841660009081526004602090815260408083203384529091529020546000198114610c765782811015610c4d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109d5565b6001600160a01b0385166000908152600460209081526040808320338452909152902083820390555b610c81858585611464565b9150505b9392505050565b6000546001600160a01b03163314610cb65760405162461bcd60e51b81526004016109d590611efe565b6005811115610d075760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016109d5565b600781905560405181907f11953a0453d6e2e337ab856b9de1f4818ffa2a51f3a9c12f924e2a043ae37f6d90600090a250565b600f8054906000610d4a83611f33565b9190505550565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b81526004016109d590611efe565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610def5760405162461bcd60e51b81526004016109d590611efe565b600c54600160a01b900460ff1615610e495760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016109d5565b600c805460ff60a01b1916600160a01b9081179182905543600981905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d90600090a3565b6000546001600160a01b03163314610ec75760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b038216610f1d5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016109d5565b6001600160a01b038216600081815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b038216610fe35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016109d5565b6001600160a01b038216600081815260056020526040808220805460ff191685151590811790915590519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b60108054906000610d4a83611f33565b60006001600160a01b03831661109f5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016109d5565b610c85338484611464565b6000546001600160a01b031633146110d45760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b03821661112a5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016109d5565b6001600160a01b0382166000818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b6016805460018101825560008290527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b031916331790558054806111e2576111e2611f4c565b600082815260209020810160001990810180546001600160a01b0319169055019055565b6000546001600160a01b031633146112305760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b0381166112955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461131a5760405162461bcd60e51b81526004016109d590611efe565b6113266009600a611ed8565b61133490633b9aca00611ee7565b6002556113436009600a611ed8565b61135190633b9aca00611ee7565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa990600090a3565b6000546001600160a01b031633146113ae5760405162461bcd60e51b81526004016109d590611efe565b6001600160a01b03811661141a5760405162461bcd60e51b815260206004820152602d60248201527f4d61726b6574696e67206665652072656365697665722063616e6e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016109d5565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e6894395320346b3bc32e11af639cec1465f714c0956a0f2ab9c0ec0084364190600090a250565b600e5460009060ff16156114845761147d848484611820565b9050610c85565b6000546001600160a01b038581169116146114e957600c54600160a01b900460ff166114e95760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109d5565b6114f384836118ef565b6001600160a01b0384166000908152600360205260409020548281101561152c5760405162461bcd60e51b81526004016109d590611f62565b6001600160a01b03851660009081526005602052604081205460ff168061156b57506001600160a01b03851660009081526005602052604090205460ff165b61157f5761157a86858761195c565b611581565b835b90506115956000546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561165257506001600160a01b03851630148015906115d557506001600160a01b03851661dead14155b801561161357507f00000000000000000000000071eb61149c969934c71cda4e8580eb55a3d87aa76001600160a01b0316856001600160a01b031614155b801561162d5750600a546001600160a01b03868116911614155b801561165257506001600160a01b03851660009081526006602052604090205460ff16155b156116f3576001600160a01b03851660009081526003602052604090205460025461167d8383611fa8565b11156116f15760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109d5565b505b43600954141580156117165750600d543060009081526003602052604090205410155b801561172b5750600c54600160a81b900460ff165b801561173a5750600e5460ff16155b801561177757507f00000000000000000000000071eb61149c969934c71cda4e8580eb55a3d87aa76001600160a01b0316856001600160a01b0316145b1561178957611784611a87565b436009555b6001600160a01b038087166000908152600360205260408082208786039055918716815290812080548392906117c0908490611fa8565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180c91815260200190565b60405180910390a350600195945050505050565b6001600160a01b038316600090815260036020526040812054828110156118595760405162461bcd60e51b81526004016109d590611f62565b6001600160a01b03808616600090815260036020526040808220868503905591861681529081208054859290611890908490611fa8565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118dc91815260200190565b60405180910390a3506001949350505050565b6001548111158061191857506001600160a01b03821660009081526006602052604090205460ff165b6119585760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016109d5565b5050565b600080806001600160a01b037f00000000000000000000000071eb61149c969934c71cda4e8580eb55a3d87aa78116908516036119b4576064600854866119a39190611ee7565b6119ad9190611fbb565b9150611a02565b7f00000000000000000000000071eb61149c969934c71cda4e8580eb55a3d87aa76001600160a01b0316866001600160a01b0316036119fd576064600754866119a39190611ee7565b600091505b8115611a7d573060009081526003602052604081208054849290611a27908490611fa8565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611a768286611fdd565b9050610c81565b5092949350505050565b600e805460ff19166001179055600d546040805160028082526060820183526000926020830190803683370190505090503081600081518110611acc57611acc611ff0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611b2057611b20611ff0565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac94790611b66908590600090869030904290600401612006565b600060405180830381600087803b158015611b8057600080fd5b505af1158015611b94573d6000803e3d6000fd5b5050600a54604051479350600092506001600160a01b039091169083908381818185875af1925050503d8060008114611be9576040519150601f19603f3d011682016040523d82523d6000602084013e611bee565b606091505b5050905080611c575760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016109d5565b5050600e805460ff191690555050565b600060208284031215611c7957600080fd5b5035919050565b80356001600160a01b0381168114611c9757600080fd5b919050565b600060208284031215611cae57600080fd5b610c8582611c80565b602081526000825180602084015260005b81811015611ce55760208186018101516040868401015201611cc8565b506000604082850101526040601f19601f83011684010191505092915050565b60008060408385031215611d1857600080fd5b611d2183611c80565b946020939093013593505050565b600080600060608486031215611d4457600080fd5b611d4d84611c80565b9250611d5b60208501611c80565b929592945050506040919091013590565b60008060408385031215611d7f57600080fd5b611d8883611c80565b915060208301358015158114611d9d57600080fd5b809150509250929050565b60008060408385031215611dbb57600080fd5b611dc483611c80565b9150611dd260208401611c80565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115611e2c57808504811115611e1057611e10611ddb565b6001841615611e1e57908102905b60019390931c928002611df5565b935093915050565b600082611e435750600161097b565b81611e505750600061097b565b8160018114611e665760028114611e7057611e8c565b600191505061097b565b60ff841115611e8157611e81611ddb565b50506001821b61097b565b5060208310610133831016604e8410600b8410161715611eaf575081810a61097b565b611ebc6000198484611df1565b8060001904821115611ed057611ed0611ddb565b029392505050565b6000610c8560ff841683611e34565b808202811582820484141761097b5761097b611ddb565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060018201611f4557611f45611ddb565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561097b5761097b611ddb565b600082611fd857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561097b5761097b611ddb565b634e487b7160e01b600052603260045260246000fd5b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b818110156120585783516001600160a01b0316835260209384019390920191600101612031565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220c4757d1264befd0dc3c60507ff9c798245680485a6557a45ee68e66dc8aef00f64736f6c634300081a0033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.