More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17232239 | 657 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DividendDistributor
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-10 */ /* https://t.me/PrintTheLadysPortal https://twitter.com/PrintTheLadys */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * ERC20 standard interface. */ 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); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } 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 IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit(uint256 amount) external; function claimDividend(address shareholder) external; function getDividendsClaimedOf (address shareholder) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public immutable LADYS = address(0x12970E6868f88f6557B76120662c1B3E50A646bf); //UNI struct Share { uint256 amount; uint256 totalExcluded; uint256 totalClaimed; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalClaimed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor (address owner) { _token = msg.sender; _owner = owner; } receive() external payable { } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit(uint256 amount) external override onlyToken { if (amount > 0) { totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getClaimableDividendOf(shareholder); if(amount > 0){ totalClaimed = totalClaimed.add(amount); shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); IERC20(LADYS).transfer(shareholder, amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { require (shares[shareholder].amount > 0, "You're not a PRINTER shareholder!"); return shares[shareholder].totalClaimed; } } contract PrintTheLadys is IERC20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; address public immutable LADYS = address(0x12970E6868f88f6557B76120662c1B3E50A646bf); //UNI string private constant _name = "Print The Ladys"; string private constant _symbol = "PL"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 888000888000888 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private cooldown; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private totalFee = 8; uint256 private feeDenominator = 100; address payable public marketingWallet = payable(0x9d17740193458DE04A5e01dd9E5551559f18bf4b); IDEXRouter public router; address public pair; uint256 public launchedAt; bool private tradingOpen; bool private buyLimit = true; uint256 private maxBuy = 8880008880008 * (10 ** _decimals); uint256 public numTokensSellToAddToLiquidity = 888000888000 * 10**9; DividendDistributor private distributor; bool public blacklistEnabled = false; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner); isFeeExempt[_owner] = true; isFeeExempt[marketingWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view 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) { _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 transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } 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].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading if (blacklistEnabled) { require (!isBot[sender] && !isBot[recipient], "Bot!"); } if (buyLimit) { if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir"); } if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) { require (cooldown[recipient] < block.timestamp); cooldown[recipient] = block.timestamp + 60 seconds; } if(inSwap){ return _basicTransfer(sender, recipient, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0); if(shouldSwapBack){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) && (sender == pair || recipient == pair) ); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount; feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBack() internal swapping { uint256 amountToSwap = balanceOf(address(this)); swapTokensForEth(amountToSwap.div(2)); swapTokensForLADYS(amountToSwap.div(2)); uint256 dividends = IERC20(LADYS).balanceOf(address(this)); bool success = IERC20(LADYS).transfer(address(distributor), dividends); if (success) { distributor.deposit(dividends); } payable(marketingWallet).transfer(address(this).balance); } function swapTokensForLADYS(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = WETH; path[2] = LADYS; // make the swap router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp ); } function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setFee (uint256 _fee) external onlyOwner { require (_fee <= 15, "Fee can't exceed 15%"); totalFee = _fee; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(marketingWallet).transfer(contractETHBalance); } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { return distributor.getClaimableDividendOf(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function getTotalDividends() external view returns (uint256) { return distributor.totalDividends(); } function getTotalClaimed() external view returns (uint256) { return distributor.totalClaimed(); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { return distributor.getDividendsClaimedOf(shareholder); } function removeBuyLimit() external onlyOwner { buyLimit = false; } function checkBot(address account) public view returns (bool) { return isBot[account]; } function setBlacklistEnabled() external onlyOwner { require (blacklistEnabled == false, "can only be called once"); blacklistEnabled = true; } function setSwapThresholdAmount (uint256 amount) external onlyOwner { require (amount <= _totalSupply.div(100), "can't exceed 1%"); numTokensSellToAddToLiquidity = amount * 10 ** 9; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"LADYS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"}],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalClaimed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040527312970e6868f88f6557b76120662c1b3e50a646bf6080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610da0380380610da083398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cc16100df6000396000818161016101526107410152610cc16000f3fe6080604052600436106100e15760003560e01c8063997664d71161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063997664d714610204578063b2bdfa7b1461021a578063b6b55f251461023a57600080fd5b806329a6dae7116100bb57806329a6dae71461014f5780633a98ef39146101a05780635cc33f74146101c45780638ecc37fb146101e457600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610ad8565b6102fd565b005b34801561011b57600080fd5b5061010d61012a366004610b04565b61035d565b34801561013b57600080fd5b5061010d61014a366004610b2e565b6104d5565b34801561015b57600080fd5b506101837f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac57600080fd5b506101b660055481565b604051908152602001610197565b3480156101d057600080fd5b506101b66101df366004610b2e565b6104f8565b3480156101f057600080fd5b506101b66101ff366004610b2e565b61058b565b34801561021057600080fd5b506101b660065481565b34801561022657600080fd5b50600154610183906001600160a01b031681565b34801561024657600080fd5b5061010d610255366004610b49565b610616565b34801561026657600080fd5b50610296610275366004610b2e565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610197565b3480156102bd57600080fd5b506101b660075481565b3480156102d357600080fd5b506101b660085481565b3480156102e957600080fd5b50600054610183906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610670565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b4565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108c9565b90610914565b6005556001600160a01b03821660009081526004602052604090208190556104b281610973565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610670565b50565b6001600160a01b03811660009081526004602052604081205461056c5760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b257506000919050565b6001600160a01b0382166000908152600460205260408120546105d490610973565b6001600160a01b038416600090815260046020526040902060010154909150808211610604575060009392505050565b61060e82826108c9565b949350505050565b6000546001600160a01b0316331461062d57600080fd5b80156104f5576006546106409082610914565b60065560055460095461066a916106619161065b9085610990565b90610a12565b60085490610914565b60085550565b6001600160a01b03811660009081526004602052604081205490036106925750565b600061069d8261058b565b905080156107b0576007546106b29082610914565b6007556001600160a01b0382166000908152600460205260409020600201546106db9082610914565b6001600160a01b038316600090815260046020526040902060028101919091555461070590610973565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae9190610b62565b505b5050565b600280546107c490600190610b9a565b815481106107d4576107d4610bb1565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081257610812610bb1565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161085e90600190610b9a565b8154811061086e5761086e610bb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a4576108a4610bc7565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a54565b90505b92915050565b6000806109218385610bdd565b90508381101561090b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610563565b600061090e60095461065b6008548561099090919063ffffffff16565b6000826000036109a25750600061090e565b60006109ae8385610bf5565b9050826109bb8583610c14565b1461090b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610563565b600061090b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a8e565b60008184841115610a785760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610b9a565b95945050505050565b60008183610aaf5760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610c14565b80356001600160a01b0381168114610ad357600080fd5b919050565b60008060408385031215610aeb57600080fd5b82359150610afb60208401610abc565b90509250929050565b60008060408385031215610b1757600080fd5b610b2083610abc565b946020939093013593505050565b600060208284031215610b4057600080fd5b61090b82610abc565b600060208284031215610b5b57600080fd5b5035919050565b600060208284031215610b7457600080fd5b8151801515811461090b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bac57610bac610b84565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf057610bf0610b84565b500190565b6000816000190483118215151615610c0f57610c0f610b84565b500290565b600082610c3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6357858101830151858201604001528201610c47565b81811115610c75576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220a2bf636cade629055afcb271e05f517cb887ff68eab00cf74cbb44148aa9798f64736f6c634300080d00330000000000000000000000005b95162a51856195c224b40a0805e30929463c95
Deployed Bytecode
0x6080604052600436106100e15760003560e01c8063997664d71161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063997664d714610204578063b2bdfa7b1461021a578063b6b55f251461023a57600080fd5b806329a6dae7116100bb57806329a6dae71461014f5780633a98ef39146101a05780635cc33f74146101c45780638ecc37fb146101e457600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610ad8565b6102fd565b005b34801561011b57600080fd5b5061010d61012a366004610b04565b61035d565b34801561013b57600080fd5b5061010d61014a366004610b2e565b6104d5565b34801561015b57600080fd5b506101837f00000000000000000000000012970e6868f88f6557b76120662c1b3e50a646bf81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac57600080fd5b506101b660055481565b604051908152602001610197565b3480156101d057600080fd5b506101b66101df366004610b2e565b6104f8565b3480156101f057600080fd5b506101b66101ff366004610b2e565b61058b565b34801561021057600080fd5b506101b660065481565b34801561022657600080fd5b50600154610183906001600160a01b031681565b34801561024657600080fd5b5061010d610255366004610b49565b610616565b34801561026657600080fd5b50610296610275366004610b2e565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610197565b3480156102bd57600080fd5b506101b660075481565b3480156102d357600080fd5b506101b660085481565b3480156102e957600080fd5b50600054610183906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610670565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b4565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108c9565b90610914565b6005556001600160a01b03821660009081526004602052604090208190556104b281610973565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610670565b50565b6001600160a01b03811660009081526004602052604081205461056c5760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b257506000919050565b6001600160a01b0382166000908152600460205260408120546105d490610973565b6001600160a01b038416600090815260046020526040902060010154909150808211610604575060009392505050565b61060e82826108c9565b949350505050565b6000546001600160a01b0316331461062d57600080fd5b80156104f5576006546106409082610914565b60065560055460095461066a916106619161065b9085610990565b90610a12565b60085490610914565b60085550565b6001600160a01b03811660009081526004602052604081205490036106925750565b600061069d8261058b565b905080156107b0576007546106b29082610914565b6007556001600160a01b0382166000908152600460205260409020600201546106db9082610914565b6001600160a01b038316600090815260046020526040902060028101919091555461070590610973565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f00000000000000000000000012970e6868f88f6557b76120662c1b3e50a646bf169063a9059cbb906044016020604051808303816000875af115801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae9190610b62565b505b5050565b600280546107c490600190610b9a565b815481106107d4576107d4610bb1565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081257610812610bb1565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161085e90600190610b9a565b8154811061086e5761086e610bb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a4576108a4610bc7565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a54565b90505b92915050565b6000806109218385610bdd565b90508381101561090b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610563565b600061090e60095461065b6008548561099090919063ffffffff16565b6000826000036109a25750600061090e565b60006109ae8385610bf5565b9050826109bb8583610c14565b1461090b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610563565b600061090b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a8e565b60008184841115610a785760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610b9a565b95945050505050565b60008183610aaf5760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610c14565b80356001600160a01b0381168114610ad357600080fd5b919050565b60008060408385031215610aeb57600080fd5b82359150610afb60208401610abc565b90509250929050565b60008060408385031215610b1757600080fd5b610b2083610abc565b946020939093013593505050565b600060208284031215610b4057600080fd5b61090b82610abc565b600060208284031215610b5b57600080fd5b5035919050565b600060208284031215610b7457600080fd5b8151801515811461090b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bac57610bac610b84565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf057610bf0610b84565b500190565b6000816000190483118215151615610c0f57610c0f610b84565b500290565b600082610c3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6357858101830151858201604001528201610c47565b81811115610c75576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220a2bf636cade629055afcb271e05f517cb887ff68eab00cf74cbb44148aa9798f64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005b95162a51856195c224b40a0805e30929463c95
-----Decoded View---------------
Arg [0] : owner (address): 0x5B95162A51856195c224b40A0805E30929463c95
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005b95162a51856195c224b40a0805e30929463c95
Deployed Bytecode Sourcemap
5116:4272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8921:217;;;;;;;;;;-1:-1:-1;8921:217:0;;;;;:::i;:::-;;:::i;:::-;;6147:644;;;;;;;;;;-1:-1:-1;6147:644:0;;;;;:::i;:::-;;:::i;7646:122::-;;;;;;;;;;-1:-1:-1;7646:122:0;;;;;:::i;:::-;;:::i;5269:84::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1065:32:1;;;1047:51;;1035:2;1020:18;5269:84:0;;;;;;;;5637:26;;;;;;;;;;;;;;;;;;;1255:25:1;;;1243:2;1228:18;5637:26:0;1109:177:1;9148:231:0;;;;;;;;;;-1:-1:-1;9148:231:0;;;;;:::i;:::-;;:::i;7776:484::-;;;;;;;;;;-1:-1:-1;7776:484:0;;;;;:::i;:::-;;:::i;5670:29::-;;;;;;;;;;;;;;;;5239:21;;;;;;;;;;-1:-1:-1;5239:21:0;;;;-1:-1:-1;;;;;5239:21:0;;;6799:301;;;;;;;;;;-1:-1:-1;6799:301:0;;;;;:::i;:::-;;:::i;5588:40::-;;;;;;;;;;-1:-1:-1;5588:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1678:25:1;;;1734:2;1719:18;;1712:34;;;;1762:18;;;1755:34;1666:2;1651:18;5588:40:0;1476:319:1;5706:27:0;;;;;;;;;;;;;;;;5740:32;;;;;;;;;;;;;;;;5211:21;;;;;;;;;;-1:-1:-1;5211:21:0;;;;-1:-1:-1;;;;;5211:21:0;;;8921:217;5984:6;;-1:-1:-1;;;;;5984:6:0;5970:10;:20;5962:29;;;;;;9032:21:::1;-1:-1:-1::0;;;;;9064:24:0;::::1;:66;9089:10:::0;:40:::1;;9111:18;9089:40;;;9102:6;9089:40;9064:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8992:146;8921:217:::0;;:::o;6147:644::-;5900:6;;-1:-1:-1;;;;;5900:6:0;5886:10;:20;5878:29;;;;;;-1:-1:-1;;;;;6244:19:0;::::1;6273:1;6244:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;6241:92:::1;;6290:31;6309:11;6290:18;:31::i;:::-;6357:1;6348:6;:10;:45;;;;-1:-1:-1::0;;;;;;6362:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;:31;6348:45:::1;6345:214;;;8545:12:::0;:19;;-1:-1:-1;;;;;8511:31:0;;;;;;:18;:31;;;;;:53;;;8575:30;;;;;;;;;;;;;-1:-1:-1;;;;;;8575:30:0;;;;;;6345:214:::1;;;6456:11:::0;;:45;::::1;;;-1:-1:-1::0;;;;;;6471:19:0;::::1;6500:1;6471:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;;6456:45:::1;6453:106;;;6517:30;6535:11;6517:17;:30::i;:::-;-1:-1:-1::0;;;;;6601:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;6585:11:::1;::::0;:55:::1;::::0;6633:6;;6585:43:::1;::::0;:15:::1;:43::i;:::-;:47:::0;::::1;:55::i;:::-;6571:11;:69:::0;-1:-1:-1;;;;;6651:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:35;;;6733:50:::1;6680:6:::0;6733:22:::1;:50::i;:::-;-1:-1:-1::0;;;;;6697:19:0;;::::1;;::::0;;;:6:::1;:19;::::0;;;;:33:::1;;:86:::0;;;;-1:-1:-1;6147:644:0:o;7646:122::-;5900:6;;-1:-1:-1;;;;;5900:6:0;5886:10;:20;5878:29;;;;;;7729:31:::1;7748:11;7729:18;:31::i;:::-;7646:122:::0;:::o;9148:231::-;-1:-1:-1;;;;;9253:19:0;;9224:7;9253:19;;;:6;:19;;;;;:26;9244:77;;;;-1:-1:-1;;;9244:77:0;;2002:2:1;9244:77:0;;;1984:21:1;2041:2;2021:18;;;2014:30;2080:34;2060:18;;;2053:62;-1:-1:-1;;;2131:18:1;;;2124:31;2172:19;;9244:77:0;;;;;;;;;-1:-1:-1;;;;;;9339:19:0;;;;;:6;:19;;;;;:32;;;;9148:231::o;7776:484::-;-1:-1:-1;;;;;7873:19:0;;7850:7;7873:19;;;:6;:19;;;;;:26;:31;;7870:48;;-1:-1:-1;7914:1:0;;7776:484;-1:-1:-1;7776:484:0:o;7870:48::-;-1:-1:-1;;;;;7989:19:0;;7930:33;7989:19;;;:6;:19;;;;;:26;7966:50;;:22;:50::i;:::-;-1:-1:-1;;;;;8062:19:0;;8027:32;8062:19;;;:6;:19;;;;;:33;;;7930:86;;-1:-1:-1;8111:53:0;;;8108:70;;-1:-1:-1;8174:1:0;;7776:484;-1:-1:-1;;;7776:484:0:o;8108:70::-;8197:55;:25;8227:24;8197:29;:55::i;:::-;8190:62;7776:484;-1:-1:-1;;;;7776:484:0:o;6799:301::-;5900:6;;-1:-1:-1;;;;;5900:6:0;5886:10;:20;5878:29;;;;;;6885:10;;6881:212:::1;;6937:14;::::0;:26:::1;::::0;6956:6;6937:18:::1;:26::i;:::-;6920:14;:43:::0;7068:11:::1;::::0;7020:31:::1;::::0;6998:83:::1;::::0;7020:60:::1;::::0;:43:::1;::::0;7056:6;7020:35:::1;:43::i;:::-;:47:::0;::::1;:60::i;:::-;6998:17;::::0;;:21:::1;:83::i;:::-;6978:17;:103:::0;6799:301;:::o;7108:530::-;-1:-1:-1;;;;;7180:19:0;;;;;;:6;:19;;;;;:26;:31;;7177:46;;7108:530;:::o;7177:46::-;7235:14;7252:35;7275:11;7252:22;:35::i;:::-;7235:52;-1:-1:-1;7301:10:0;;7298:333;;7342:12;;:24;;7359:6;7342:16;:24::i;:::-;7327:12;:39;-1:-1:-1;;;;;7416:19:0;;;;;;:6;:19;;;;;:32;;;:44;;7453:6;7416:36;:44::i;:::-;-1:-1:-1;;;;;7381:19:0;;;;;;:6;:19;;;;;:32;;;:79;;;;7534:26;7511:50;;:22;:50::i;:::-;-1:-1:-1;;;;;7475:19:0;;;;;;;:6;:19;;;;;;;;;:33;;:86;;;;7576:43;-1:-1:-1;;;7576:43:0;;;;;2376:51:1;2443:18;;;2436:34;;;7583:5:0;7576:22;;;;2349:18:1;;7576:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7298:333;7166:472;7108:530;:::o;8621:288::-;8737:12;8750:19;;:21;;8770:1;;8750:21;:::i;:::-;8737:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8702:31:0;;;;;:18;:31;;;;;;;;8689:12;:45;;8737:35;;;;;8689:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;8689:83:0;-1:-1:-1;;;;;8689:83:0;;;;;;8841:31;;;;;:18;:31;;;;;;;;8802:12;8815:19;;8841:31;;:18;8689:45;8815:21;;-1:-1:-1;;8815:21:0;:::i;:::-;8802:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8802:35:0;8783:55;;;;;;;;;;;;:89;8883:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;8883:18:0;;;;;-1:-1:-1;;;;;;8883:18:0;;;;;;-1:-1:-1;8621:288:0:o;438:136::-;496:7;523:43;527:1;530;523:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;516:50;;438:136;;;;;:::o;251:181::-;309:7;;341:5;345:1;341;:5;:::i;:::-;329:17;;370:1;365;:6;;357:46;;;;-1:-1:-1;;;357:46:0;;3624:2:1;357:46:0;;;3606:21:1;3663:2;3643:18;;;3636:30;3702:29;3682:18;;;3675:57;3749:18;;357:46:0;3422:351:1;8268:170:0;8338:7;8365:65;8398:31;;8365:28;8375:17;;8365:5;:9;;:28;;;;:::i;778:250::-;836:7;860:1;865;860:6;856:47;;-1:-1:-1;890:1:0;883:8;;856:47;915:9;927:5;931:1;927;:5;:::i;:::-;915:17;-1:-1:-1;960:1:0;951:5;955:1;915:17;951:5;:::i;:::-;:10;943:56;;;;-1:-1:-1;;;943:56:0;;4375:2:1;943:56:0;;;4357:21:1;4414:2;4394:18;;;4387:30;4453:34;4433:18;;;4426:62;-1:-1:-1;;;4504:18:1;;;4497:31;4545:19;;943:56:0;4173:397:1;1034:132:0;1092:7;1119:39;1123:1;1126;1119:39;;;;;;;;;;;;;;;;;:3;:39::i;580:192::-;666:7;702:12;694:6;;;;686:29;;;;-1:-1:-1;;;686:29:0;;;;;;;;:::i;:::-;-1:-1:-1;726:9:0;738:5;742:1;738;:5;:::i;:::-;726:17;580:192;-1:-1:-1;;;;;580:192:0:o;1172:345::-;1258:7;1360:12;1353:5;1345:28;;;;-1:-1:-1;;;1345:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1384:9:0;1396:5;1400:1;1396;:5;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;373:9;360:23;350:33;;402:38;436:2;425:9;421:18;402:38;:::i;:::-;392:48;;192:254;;;;;:::o;451:::-;519:6;527;580:2;568:9;559:7;555:23;551:32;548:52;;;596:1;593;586:12;548:52;619:29;638:9;619:29;:::i;:::-;609:39;695:2;680:18;;;;667:32;;-1:-1:-1;;;451:254:1:o;710:186::-;769:6;822:2;810:9;801:7;797:23;793:32;790:52;;;838:1;835;828:12;790:52;861:29;880:9;861:29;:::i;1291:180::-;1350:6;1403:2;1391:9;1382:7;1378:23;1374:32;1371:52;;;1419:1;1416;1409:12;1371:52;-1:-1:-1;1442:23:1;;1291:180;-1:-1:-1;1291:180:1:o;2481:277::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2649:9;2643:16;2702:5;2695:13;2688:21;2681:5;2678:32;2668:60;;2724:1;2721;2714:12;2763:127;2824:10;2819:3;2815:20;2812:1;2805:31;2855:4;2852:1;2845:15;2879:4;2876:1;2869:15;2895:125;2935:4;2963:1;2960;2957:8;2954:34;;;2968:18;;:::i;:::-;-1:-1:-1;3005:9:1;;2895:125::o;3025:127::-;3086:10;3081:3;3077:20;3074:1;3067:31;3117:4;3114:1;3107:15;3141:4;3138:1;3131:15;3157:127;3218:10;3213:3;3209:20;3206:1;3199:31;3249:4;3246:1;3239:15;3273:4;3270:1;3263:15;3289:128;3329:3;3360:1;3356:6;3353:1;3350:13;3347:39;;;3366:18;;:::i;:::-;-1:-1:-1;3402:9:1;;3289:128::o;3778:168::-;3818:7;3884:1;3880;3876:6;3872:14;3869:1;3866:21;3861:1;3854:9;3847:17;3843:45;3840:71;;;3891:18;;:::i;:::-;-1:-1:-1;3931:9:1;;3778:168::o;3951:217::-;3991:1;4017;4007:132;;4061:10;4056:3;4052:20;4049:1;4042:31;4096:4;4093:1;4086:15;4124:4;4121:1;4114:15;4007:132;-1:-1:-1;4153:9:1;;3951:217::o;4575:597::-;4687:4;4716:2;4745;4734:9;4727:21;4777:6;4771:13;4820:6;4815:2;4804:9;4800:18;4793:34;4845:1;4855:140;4869:6;4866:1;4863:13;4855:140;;;4964:14;;;4960:23;;4954:30;4930:17;;;4949:2;4926:26;4919:66;4884:10;;4855:140;;;5013:6;5010:1;5007:13;5004:91;;;5083:1;5078:2;5069:6;5058:9;5054:22;5050:31;5043:42;5004:91;-1:-1:-1;5156:2:1;5135:15;-1:-1:-1;;5131:29:1;5116:45;;;;5163:2;5112:54;;4575:597;-1:-1:-1;;;4575:597:1:o
Swarm Source
ipfs://a2bf636cade629055afcb271e05f517cb887ff68eab00cf74cbb44148aa9798f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | <$0.000001 | 95,442,419,015.6544 | $3,618.32 |
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.