Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 5 internal transactions
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DividendDistributor
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-08-03
*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
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;
}
}
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 Auth {
address internal owner;
mapping (address => bool) internal authorizations;
constructor(address _owner) {
owner = _owner;
authorizations[_owner] = true;
}
modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER"); _;
}
modifier authorized() {
require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
}
function authorize(address adr) public onlyOwner {
authorizations[adr] = true;
}
function unauthorize(address adr) public onlyOwner {
authorizations[adr] = false;
}
function isOwner(address account) public view returns (bool) {
return account == owner;
}
function isAuthorized(address adr) internal view returns (bool) {
return authorizations[adr];
}
function transferOwnership(address payable adr) public onlyOwner {
owner = adr;
authorizations[adr] = true;
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 setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
function setShare(address shareholder, uint256 amount) external;
function deposit() external payable;
function process(uint256 gas) external;
}
contract DividendDistributor is IDividendDistributor {
using SafeMath for uint256;
address _token;
struct Share {
uint256 amount;
uint256 totalExcluded;
uint256 totalRealised;
}
IDEXRouter router;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
ERC20 RewardToken = ERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7); //USDT
address[] shareholders;
mapping (address => uint256) shareholderIndexes;
mapping (address => uint256) shareholderClaims;
mapping (address => Share) public shares;
uint256 public totalShares;
uint256 public totalDividends;
uint256 public totalDistributed;
uint256 public dividendsPerShare;
uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;
uint256 public minPeriod = 69 minutes;
uint256 public minDistribution = 1 / 100000 * (10 ** 18);
uint256 currentIndex;
bool initialized;
modifier initialization() {
require(!initialized);
_;
initialized = true;
}
modifier onlyToken() {
require(msg.sender == _token); _;
}
constructor (address _router) {
router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress);
_token = msg.sender;
}
function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
minPeriod = newMinPeriod;
minDistribution = newMinDistribution;
}
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() external payable override onlyToken {
uint256 balanceBefore = RewardToken.balanceOf(address(this));
address[] memory path = new address[](2);
path[0] = router.WETH();
path[1] = address(RewardToken);
router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
0,
path,
address(this),
block.timestamp
);
uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore);
totalDividends = totalDividends.add(amount);
dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
}
function process(uint256 gas) external override onlyToken {
uint256 shareholderCount = shareholders.length;
if(shareholderCount == 0) { return; }
uint256 iterations = 0;
uint256 gasUsed = 0;
uint256 gasLeft = gasleft();
while(gasUsed < gas && iterations < shareholderCount) {
if(currentIndex >= shareholderCount){ currentIndex = 0; }
if(shouldDistribute(shareholders[currentIndex])){
distributeDividend(shareholders[currentIndex]);
}
gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
gasLeft = gasleft();
currentIndex++;
iterations++;
}
}
function shouldDistribute(address shareholder) internal view returns (bool) {
return shareholderClaims[shareholder] + minPeriod < block.timestamp
&& getUnpaidEarnings(shareholder) > minDistribution;
}
function distributeDividend(address shareholder) internal {
if(shares[shareholder].amount == 0){ return; }
uint256 amount = getUnpaidEarnings(shareholder);
if(amount > 0){
totalDistributed = totalDistributed.add(amount);
RewardToken.transfer(shareholder, amount);
shareholderClaims[shareholder] = block.timestamp;
shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
}
}
function claimDividend() external {
require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
distributeDividend(msg.sender);
}
function getUnpaidEarnings(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();
}
}
contract USDTPRINTER is ERC20, Auth {
using SafeMath for uint256;
string constant _name = "USDT PRINTER";
string constant _symbol = unicode"USDTP";
uint8 constant _decimals = 9;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address RewardToken = 0xdAC17F958D2ee523a2206206994597C13D831ec7; //USDT
uint256 _totalSupply = 1 * 21**9 * (10 ** _decimals);
uint256 public _maxTxAmount = _totalSupply * 2 / 100;
uint256 public _walletMax = _totalSupply * 2 / 100;
bool public restrictWhales = true;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) public isFeeExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public isDividendExempt;
uint256 public liquidityFee = 1;
uint256 public marketingFee = 5;
uint256 public rewardsFee = 4;
uint256 public extraFeeOnSell = 0;
uint256 public totalFee = 10;
uint256 public totalFeeIfSelling = 10;
address public autoLiquidityReceiver;
address public marketingWallet;
address public teamWallet;
IDEXRouter public router;
address public pair;
uint256 public launchedAt;
bool public tradingOpen = false;
DividendDistributor public dividendDistributor;
uint256 distributorGas = 300000;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
uint256 public swapThreshold = _totalSupply * 5 / 10000;
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () Auth(msg.sender) {
router = IDEXRouter(routerAddress);
pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
dividendDistributor = new DividendDistributor(address(router));
isFeeExempt[msg.sender] = true;
isFeeExempt[address(this)] = true;
isFeeExempt[0x71B5759d73262FBb223956913ecF4ecC51057641] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[pair] = true;
isTxLimitExempt[0x71B5759d73262FBb223956913ecF4ecC51057641] = true;
isDividendExempt[pair] = true;
isDividendExempt[msg.sender] = true;
isDividendExempt[address(this)] = true;
isDividendExempt[DEAD] = true;
isDividendExempt[ZERO] = true;
isDividendExempt[0x71B5759d73262FBb223956913ecF4ecC51057641] = true;
// NAIS!
autoLiquidityReceiver = 0x382dE02467509700b138b9db9973408F2e9982DA;
marketingWallet = 0x382dE02467509700b138b9db9973408F2e9982DA;
teamWallet = 0x382dE02467509700b138b9db9973408F2e9982DA;
totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
totalFeeIfSelling = totalFee.add(extraFeeOnSell);
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function name() external pure override returns (string memory) { return _name; }
function symbol() external pure override returns (string memory) { return _symbol; }
function decimals() external pure override returns (uint8) { return _decimals; }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function getOwner() external view override returns (address) { return owner; }
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
}
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 launched() internal view returns (bool) {
return launchedAt != 0;
}
function clearStuckToken(address _token) external authorized {
uint256 _contractBalance = ERC20(_token).balanceOf(address(dividendDistributor));
payable(teamWallet).transfer(_contractBalance);
}
function launch() internal {
launchedAt = block.number;
}
function changeTxLimit(uint256 newLimit) external authorized {
_maxTxAmount = newLimit;
}
function changeWalletLimit(uint256 newLimit) external authorized {
_walletMax = newLimit;
}
function changeRestrictWhales(bool newValue) external authorized {
restrictWhales = newValue;
}
function changeIsFeeExempt(address holder, bool exempt) external authorized {
isFeeExempt[holder] = exempt;
}
function changeIsTxLimitExempt(address holder, bool exempt) external authorized {
isTxLimitExempt[holder] = exempt;
}
function changeIsDividendExempt(address holder, bool exempt) external authorized {
require(holder != address(this) && holder != pair);
isDividendExempt[holder] = exempt;
if(exempt){
dividendDistributor.setShare(holder, 0);
}else{
dividendDistributor.setShare(holder, _balances[holder]);
}
}
function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newExtraSellFee) external authorized {
liquidityFee = newLiqFee;
rewardsFee = newRewardFee;
marketingFee = newMarketingFee;
extraFeeOnSell = newExtraSellFee;
totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
totalFeeIfSelling = totalFee.add(extraFeeOnSell);
}
function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newTeamWallet) external authorized {
autoLiquidityReceiver = newLiquidityReceiver;
marketingWallet = newMarketingWallet;
teamWallet = newTeamWallet;
}
function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized {
swapAndLiquifyEnabled = enableSwapBack;
swapThreshold = newSwapBackLimit;
swapAndLiquifyByLimitOnly = swapByLimitOnly;
}
function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
}
function changeDistributorSettings(uint256 gas) external authorized {
require(gas < 300000);
distributorGas = gas;
}
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(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
if(!authorizations[sender] && !authorizations[recipient]){
require(tradingOpen, "Trading not open yet");
}
require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
if(!launched() && recipient == pair) {
require(_balances[sender] > 0);
launch();
}
//Exchange tokens
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
if(!isTxLimitExempt[recipient] && restrictWhales)
{
require(_balances[recipient].add(amount) <= _walletMax);
}
uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient].add(finalAmount);
// Dividend tracker
if(!isDividendExempt[sender]) {
try dividendDistributor.setShare(sender, _balances[sender]) {} catch {}
}
if(!isDividendExempt[recipient]) {
try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {}
}
try dividendDistributor.process(distributorGas) {} catch {}
emit Transfer(sender, recipient, finalAmount);
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 takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
uint256 feeAmount = amount.mul(feeApplicable).div(100);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
function tradingStatus(bool newStatus) public onlyOwner {
tradingOpen = newStatus;
}
function swapBack() internal lockTheSwap {
uint256 tokensToLiquify = _balances[address(this)];
uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountBNB = address(this).balance;
uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(totalBNBFee);
uint256 amountBNBMarketing = amountBNB.sub(amountBNBLiquidity).sub(amountBNBReflection);
try dividendDistributor.deposit{value: amountBNBReflection}() {} catch {}
uint256 marketingShare = amountBNBMarketing.mul(1).div(1);
(bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 30000}("");
// only to supress warning msg
tmpSuccess = false;
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountBNBLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
}
}
event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"process","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","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":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","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"}]Contract Creation Code
6080604052600280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556003805490911673dac17f958d2ee523a2206206994597c13d831ec71790556ec097ce7bc90715b34b9f1000000000600c5561102c600d556509184e72a000600e5534801561007b57600080fd5b506040516110ea3803806110ea83398101604081905261009a916100eb565b6001600160a01b0381166100b9576002546001600160a01b03166100bb565b805b600180546001600160a01b03929092166001600160a01b031992831617905560008054909116331790555061011b565b6000602082840312156100fd57600080fd5b81516001600160a01b038116811461011457600080fd5b9392505050565b610fc08061012a6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610d24565b610285565b005b34801561013957600080fd5b506100f8610148366004610d50565b6103fd565b34801561015957600080fd5b5061012b610168366004610d6d565b610488565b34801561017957600080fd5b506100f860085481565b34801561018f57600080fd5b506100f8600e5481565b3480156101a557600080fd5b506100f860095481565b3480156101bb57600080fd5b506101eb6101ca366004610d50565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104aa565b34801561021a57600080fd5b506100f8600b5481565b34801561023057600080fd5b506100f8600a5481565b34801561024657600080fd5b5061012b61073a565b34801561025b57600080fd5b5061012b61026a366004610d8f565b61079f565b34801561027b57600080fd5b506100f8600d5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260076020526040902054156102c3576102c3826108a4565b6000811180156102e957506001600160a01b038216600090815260076020526040902054155b1561034f57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526007602052604090205415155b1561038257610382826109c2565b6001600160a01b0382166000908152600760205260409020546008546103b39183916103ad91610ad7565b90610b22565b6008556001600160a01b03821660009081526007602052604090208190556103da81610b81565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b038116600090815260076020526040812054810361042457506000919050565b6001600160a01b03821660009081526007602052604081205461044690610b81565b6001600160a01b038416600090815260076020526040902060010154909150808211610476575060009392505050565b6104808282610ad7565b949350505050565b6000546001600160a01b0316331461049f57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104c157600080fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052e9190610da8565b60408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c19190610dc1565b816000815181106105d4576105d4610dde565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061060557610605610dde565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de9590349061064b90600090869030904290600401610df4565b6000604051808303818588803b15801561066457600080fd5b505af1158015610678573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094506106f893508692506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156106ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f29190610da8565b90610ad7565b6009549091506107089082610b22565b600955600854600c5461073291610729916107239085610b9e565b90610c20565b600b5490610b22565b600b55505050565b61074333610c62565b6107945760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000060448201526064015b60405180910390fd5b61079d336108a4565b565b6000546001600160a01b031633146107b657600080fd5b60045460008190036107c6575050565b60008060005a90505b84821080156107dd57508383105b1561089c5783600f54106107f1576000600f555b6108236004600f548154811061080957610809610dde565b6000918252602090912001546001600160a01b0316610c62565b1561085a5761085a6004600f548154811061084057610840610dde565b6000918252602090912001546001600160a01b03166108a4565b61086f6108685a8390610ad7565b8390610b22565b91505a600f8054919250600061088483610e74565b9190505550828061089490610e74565b9350506107cf565b505050505b50565b6001600160a01b03811660009081526007602052604081205490036108c65750565b60006108d1826103fd565b905080156109be57600a546108e69082610b22565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561093c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109609190610e8d565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109949082610b22565b6001600160a01b03831660009081526007602052604090206002810191909155546103da90610b81565b5050565b600480546109d290600190610eaf565b815481106109e2576109e2610dde565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2057610a20610dde565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610a6c90600190610eaf565b81548110610a7c57610a7c610dde565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610ab257610ab2610ec6565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca7565b90505b92915050565b600080610b2f8385610edc565b905083811015610b195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161078b565b6000610b1c600c54610723600b5485610b9e90919063ffffffff16565b600082600003610bb057506000610b1c565b6000610bbc8385610ef4565b905082610bc98583610f13565b14610b195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161078b565b6000610b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ce1565b600d546001600160a01b03821660009081526006602052604081205490914291610c8c9190610edc565b108015610b1c5750600e54610ca0836103fd565b1192915050565b60008184841115610ccb5760405162461bcd60e51b815260040161078b9190610f35565b506000610cd88486610eaf565b95945050505050565b60008183610d025760405162461bcd60e51b815260040161078b9190610f35565b506000610cd88486610f13565b6001600160a01b03811681146108a157600080fd5b60008060408385031215610d3757600080fd5b8235610d4281610d0f565b946020939093013593505050565b600060208284031215610d6257600080fd5b8135610b1981610d0f565b60008060408385031215610d8057600080fd5b50508035926020909101359150565b600060208284031215610da157600080fd5b5035919050565b600060208284031215610dba57600080fd5b5051919050565b600060208284031215610dd357600080fd5b8151610b1981610d0f565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e3e5784516001600160a01b031683529383019391830191600101610e19565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b600060018201610e8657610e86610e5e565b5060010190565b600060208284031215610e9f57600080fd5b81518015158114610b1957600080fd5b600082821015610ec157610ec1610e5e565b500390565b634e487b7160e01b600052603160045260246000fd5b60008219821115610eef57610eef610e5e565b500190565b6000816000190483118215151615610f0e57610f0e610e5e565b500290565b600082610f3057634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610f6257858101830151858201604001528201610f46565b81811115610f74576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220a40ff71a671c387c154cb99ec651c2f5a101009b8c1a7fcbd964ec534803d16964736f6c634300080f00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610d24565b610285565b005b34801561013957600080fd5b506100f8610148366004610d50565b6103fd565b34801561015957600080fd5b5061012b610168366004610d6d565b610488565b34801561017957600080fd5b506100f860085481565b34801561018f57600080fd5b506100f8600e5481565b3480156101a557600080fd5b506100f860095481565b3480156101bb57600080fd5b506101eb6101ca366004610d50565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104aa565b34801561021a57600080fd5b506100f8600b5481565b34801561023057600080fd5b506100f8600a5481565b34801561024657600080fd5b5061012b61073a565b34801561025b57600080fd5b5061012b61026a366004610d8f565b61079f565b34801561027b57600080fd5b506100f8600d5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260076020526040902054156102c3576102c3826108a4565b6000811180156102e957506001600160a01b038216600090815260076020526040902054155b1561034f57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526007602052604090205415155b1561038257610382826109c2565b6001600160a01b0382166000908152600760205260409020546008546103b39183916103ad91610ad7565b90610b22565b6008556001600160a01b03821660009081526007602052604090208190556103da81610b81565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b038116600090815260076020526040812054810361042457506000919050565b6001600160a01b03821660009081526007602052604081205461044690610b81565b6001600160a01b038416600090815260076020526040902060010154909150808211610476575060009392505050565b6104808282610ad7565b949350505050565b6000546001600160a01b0316331461049f57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104c157600080fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052e9190610da8565b60408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c19190610dc1565b816000815181106105d4576105d4610dde565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061060557610605610dde565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de9590349061064b90600090869030904290600401610df4565b6000604051808303818588803b15801561066457600080fd5b505af1158015610678573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094506106f893508692506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156106ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f29190610da8565b90610ad7565b6009549091506107089082610b22565b600955600854600c5461073291610729916107239085610b9e565b90610c20565b600b5490610b22565b600b55505050565b61074333610c62565b6107945760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000060448201526064015b60405180910390fd5b61079d336108a4565b565b6000546001600160a01b031633146107b657600080fd5b60045460008190036107c6575050565b60008060005a90505b84821080156107dd57508383105b1561089c5783600f54106107f1576000600f555b6108236004600f548154811061080957610809610dde565b6000918252602090912001546001600160a01b0316610c62565b1561085a5761085a6004600f548154811061084057610840610dde565b6000918252602090912001546001600160a01b03166108a4565b61086f6108685a8390610ad7565b8390610b22565b91505a600f8054919250600061088483610e74565b9190505550828061089490610e74565b9350506107cf565b505050505b50565b6001600160a01b03811660009081526007602052604081205490036108c65750565b60006108d1826103fd565b905080156109be57600a546108e69082610b22565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561093c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109609190610e8d565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109949082610b22565b6001600160a01b03831660009081526007602052604090206002810191909155546103da90610b81565b5050565b600480546109d290600190610eaf565b815481106109e2576109e2610dde565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2057610a20610dde565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610a6c90600190610eaf565b81548110610a7c57610a7c610dde565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610ab257610ab2610ec6565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca7565b90505b92915050565b600080610b2f8385610edc565b905083811015610b195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161078b565b6000610b1c600c54610723600b5485610b9e90919063ffffffff16565b600082600003610bb057506000610b1c565b6000610bbc8385610ef4565b905082610bc98583610f13565b14610b195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161078b565b6000610b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ce1565b600d546001600160a01b03821660009081526006602052604081205490914291610c8c9190610edc565b108015610b1c5750600e54610ca0836103fd565b1192915050565b60008184841115610ccb5760405162461bcd60e51b815260040161078b9190610f35565b506000610cd88486610eaf565b95945050505050565b60008183610d025760405162461bcd60e51b815260040161078b9190610f35565b506000610cd88486610f13565b6001600160a01b03811681146108a157600080fd5b60008060408385031215610d3757600080fd5b8235610d4281610d0f565b946020939093013593505050565b600060208284031215610d6257600080fd5b8135610b1981610d0f565b60008060408385031215610d8057600080fd5b50508035926020909101359150565b600060208284031215610da157600080fd5b5035919050565b600060208284031215610dba57600080fd5b5051919050565b600060208284031215610dd357600080fd5b8151610b1981610d0f565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e3e5784516001600160a01b031683529383019391830191600101610e19565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b600060018201610e8657610e86610e5e565b5060010190565b600060208284031215610e9f57600080fd5b81518015158114610b1957600080fd5b600082821015610ec157610ec1610e5e565b500390565b634e487b7160e01b600052603160045260246000fd5b60008219821115610eef57610eef610e5e565b500190565b6000816000190483118215151615610f0e57610f0e610e5e565b500290565b600082610f3057634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610f6257858101830151858201604001528201610f46565b81811115610f74576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220a40ff71a671c387c154cb99ec651c2f5a101009b8c1a7fcbd964ec534803d16964736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
5117:5799:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5866:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5866:57:0;;;;;;;;6664:646;;;;;;;;;;-1:-1:-1;6664:646:0;;;;;:::i;:::-;;:::i;:::-;;9785:479;;;;;;;;;;-1:-1:-1;9785:479:0;;;;;:::i;:::-;;:::i;6455:201::-;;;;;;;;;;-1:-1:-1;6455:201:0;;;;;:::i;:::-;;:::i;5720:26::-;;;;;;;;;;;;;;;;5976:56;;;;;;;;;;;;;;;;5753:29;;;;;;;;;;;;;;;;5671:40;;;;;;;;;;-1:-1:-1;5671:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1382:25:1;;;1438:2;1423:18;;1416:34;;;;1466:18;;;1459:34;1370:2;1355:18;5671:40:0;1180:319:1;7318:709:0;;;:::i;5827:32::-;;;;;;;;;;;;;;;;5789:31;;;;;;;;;;;;;;;;9617:160;;;;;;;;;;;;;:::i;8035:723::-;;;;;;;;;;-1:-1:-1;8035:723:0;;;;;:::i;:::-;;:::i;5932:37::-;;;;;;;;;;;;;;;;6664:646;6262:6;;-1:-1:-1;;;;;6262:6:0;6248:10;:20;6240:29;;;;;;-1:-1:-1;;;;;6763:19:0;::::1;6792:1;6763:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;6760:92:::1;;6809:31;6828:11;6809:18;:31::i;:::-;6876:1;6867:6;:10;:45;;;;-1:-1:-1::0;;;;;;6881:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;:31;6867:45:::1;6864:214;;;10549:12:::0;:19;;-1:-1:-1;;;;;10515:31:0;;;;;;:18;:31;;;;;:53;;;10579:30;;;;;;;;;;;;;-1:-1:-1;;;;;;10579:30:0;;;;;;6864:214:::1;;;6975:11:::0;;:45;::::1;;;-1:-1:-1::0;;;;;;6990:19:0;::::1;7019:1;6990:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;;6975:45:::1;6972:106;;;7036:30;7054:11;7036:17;:30::i;:::-;-1:-1:-1::0;;;;;7120:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;7104:11:::1;::::0;:55:::1;::::0;7152:6;;7104:43:::1;::::0;:15:::1;:43::i;:::-;:47:::0;::::1;:55::i;:::-;7090:11;:69:::0;-1:-1:-1;;;;;7170:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:35;;;7252:50:::1;7199:6:::0;7252:22:::1;:50::i;:::-;-1:-1:-1::0;;;;;7216:19:0;;::::1;;::::0;;;:6:::1;:19;::::0;;;;:33:::1;;:86:::0;;;;-1:-1:-1;6664:646:0:o;9785:479::-;-1:-1:-1;;;;;9877:19:0;;9854:7;9877:19;;;:6;:19;;;;;:26;:31;;9874:48;;-1:-1:-1;9918:1:0;;9785:479;-1:-1:-1;9785:479:0:o;9874:48::-;-1:-1:-1;;;;;9993:19:0;;9934:33;9993:19;;;:6;:19;;;;;:26;9970:50;;:22;:50::i;:::-;-1:-1:-1;;;;;10066:19:0;;10031:32;10066:19;;;:6;:19;;;;;:33;;;9934:86;;-1:-1:-1;10115:53:0;;;10112:70;;-1:-1:-1;10178:1:0;;9785:479;-1:-1:-1;;;9785:479:0:o;10112:70::-;10201:55;:25;10231:24;10201:29;:55::i;:::-;10194:62;9785:479;-1:-1:-1;;;;9785:479:0:o;6455:201::-;6262:6;;-1:-1:-1;;;;;6262:6:0;6248:10;:20;6240:29;;;;;;6577:9:::1;:24:::0;;;;6612:15:::1;:36:::0;6455:201::o;7318:709::-;6262:6;;-1:-1:-1;;;;;6262:6:0;6248:10;:20;6240:29;;;;;;7410:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;7410:36:0;;7440:4:::1;7410:36;::::0;::::1;1835:74:1::0;7386:21:0::1;::::0;-1:-1:-1;;;;;7410:11:0::1;::::0;:21:::1;::::0;1808:18:1;;7410:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7483:16;::::0;;7497:1:::1;7483:16:::0;;;;;::::1;::::0;;7386:60;;-1:-1:-1;7459:21:0::1;::::0;7483:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;7520:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;7520:13:0;;;;7459:40;;-1:-1:-1;;;;;;7520:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;7520:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7510:4;7515:1;7510:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7510:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;7562:11:::1;::::0;7544:7;;7562:11;::::1;::::0;7544:4;;7562:11;;7544:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;7544:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;:30;7587:6:::1;::::0;:179:::1;::::0;-1:-1:-1;;;7587:179:0;;:6;::::1;::::0;:57:::1;::::0;7652:9:::1;::::0;7587:179:::1;::::0;:6:::1;::::0;7693:4;;7720::::1;::::0;7740:15:::1;::::0;7587:179:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7796:11:0::1;::::0;:36:::1;::::0;-1:-1:-1;;;7796:36:0;;7826:4:::1;7796:36;::::0;::::1;1835:74:1::0;7779:14:0::1;::::0;-1:-1:-1;7796:55:0::1;::::0;-1:-1:-1;7837:13:0;;-1:-1:-1;;;;;;7796:11:0;;::::1;::::0;:21:::1;::::0;1808:18:1;;7796:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40:::0;::::1;:55::i;:::-;7879:14;::::0;7779:72;;-1:-1:-1;7879:26:0::1;::::0;7779:72;7879:18:::1;:26::i;:::-;7862:14;:43:::0;8006:11:::1;::::0;7958:31:::1;::::0;7936:83:::1;::::0;7958:60:::1;::::0;:43:::1;::::0;7994:6;7958:35:::1;:43::i;:::-;:47:::0;::::1;:60::i;:::-;7936:17;::::0;;:21:::1;:83::i;:::-;7916:17;:103:::0;-1:-1:-1;;;7318:709:0:o;9617:160::-;9672:28;9689:10;9672:16;:28::i;:::-;9664:64;;;;-1:-1:-1;;;9664:64:0;;3790:2:1;9664:64:0;;;3772:21:1;3829:2;3809:18;;;3802:30;3868:25;3848:18;;;3841:53;3911:18;;9664:64:0;;;;;;;;;9739:30;9758:10;9739:18;:30::i;:::-;9617:160::o;8035:723::-;6262:6;;-1:-1:-1;;;;;6262:6:0;6248:10;:20;6240:29;;;;;;8131:12:::1;:19:::0;8104:24:::1;8166:21:::0;;;8163:37:::1;;8191:7;8035:723:::0;:::o;8163:37::-:1;8212:18;8245:15:::0;8275::::1;8293:9;8275:27;;8315:436;8331:3;8321:7;:13;:46;;;;;8351:16;8338:10;:29;8321:46;8315:436;;;8405:16;8389:12;;:32;8386:57;;8439:1;8424:12;:16:::0;8386:57:::1;8462:44;8479:12;8492;;8479:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;8479:26:0::1;8462:16;:44::i;:::-;8459:129;;;8526:46;8545:12;8558;;8545:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;8545:26:0::1;8526:18;:46::i;:::-;8614:35;8626:22;8638:9;8626:7:::0;;:11:::1;:22::i;:::-;8614:7:::0;;:11:::1;:35::i;:::-;8604:45;;8674:9;8698:12;:14:::0;;8664:19;;-1:-1:-1;8698:12:0::1;:14;::::0;::::1;:::i;:::-;;;;;;8727:12;;;;;:::i;:::-;;;;8315:436;;;8093:665;;;;6271:1;8035:723:::0;:::o;9009:596::-;-1:-1:-1;;;;;9081:19:0;;;;;;:6;:19;;;;;:26;:31;;9078:46;;9009:596;:::o;9078:46::-;9136:14;9153:30;9171:11;9153:17;:30::i;:::-;9136:47;-1:-1:-1;9197:10:0;;9194:404;;9242:16;;:28;;9263:6;9242:20;:28::i;:::-;9223:16;:47;9285:11;;:41;;-1:-1:-1;;;9285:41:0;;-1:-1:-1;;;;;4404:55:1;;;9285:41:0;;;4386:74:1;4476:18;;;4469:34;;;9285:11:0;;;;:20;;4359:18:1;;9285:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;9341:30:0;;;;;;:17;:30;;;;;;;;9374:15;9341:48;;9440:6;:19;;;;;:33;;;:45;;9478:6;9440:37;:45::i;:::-;-1:-1:-1;;;;;9404:19:0;;;;;;:6;:19;;;;;:33;;;:81;;;;9559:26;9536:50;;:22;:50::i;9194:404::-;9067:538;9009:596;:::o;10625:288::-;10741:12;10754:19;;:21;;10774:1;;10754:21;:::i;:::-;10741:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;10706:31:0;;;;;:18;:31;;;;;;;;10693:12;:45;;10741:35;;;;;10693:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;10693:83:0;-1:-1:-1;;;;;10693:83:0;;;;;;10845:31;;;;;:18;:31;;;;;;;;10806:12;10819:19;;10845:31;;:18;10693:45;10819:21;;-1:-1:-1;;10819:21:0;:::i;:::-;10806:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;10806:35:0;10787:55;;;;;;;;;;;;:89;10887:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;10887:18:0;;;;;-1:-1:-1;;;;;;10887:18:0;;;;;;-1:-1:-1;10625:288:0:o;271:136::-;329:7;356:43;360:1;363;356:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;349:50;;271:136;;;;;:::o;84:181::-;142:7;;174:5;178:1;174;:5;:::i;:::-;162:17;;203:1;198;:6;;190:46;;;;-1:-1:-1;;;190:46:0;;5393:2:1;190:46:0;;;5375:21:1;5432:2;5412:18;;;5405:30;5471:29;5451:18;;;5444:57;5518:18;;190:46:0;5191:351:1;10272:170:0;10342:7;10369:65;10402:31;;10369:28;10379:17;;10369:5;:9;;:28;;;;:::i;611:250::-;669:7;693:1;698;693:6;689:47;;-1:-1:-1;723:1:0;716:8;;689:47;748:9;760:5;764:1;760;:5;:::i;:::-;748:17;-1:-1:-1;793:1:0;784:5;788:1;748:17;784:5;:::i;:::-;:10;776:56;;;;-1:-1:-1;;;776:56:0;;6144:2:1;776:56:0;;;6126:21:1;6183:2;6163:18;;;6156:30;6222:34;6202:18;;;6195:62;-1:-1:-1;;;6273:18:1;;;6266:31;6314:19;;776:56:0;5942:397:1;867:132:0;925:7;952:39;956:1;959;952:39;;;;;;;;;;;;;;;;;:3;:39::i;8770:231::-;8897:9;;-1:-1:-1;;;;;8864:30:0;;8840:4;8864:30;;;:17;:30;;;;;;8840:4;;8909:15;;8864:42;;8897:9;8864:42;:::i;:::-;:60;:129;;;;;8978:15;;8945:30;8963:11;8945:17;:30::i;:::-;:48;8857:136;8770:231;-1:-1:-1;;8770:231:0:o;413:192::-;499:7;535:12;527:6;;;;519:29;;;;-1:-1:-1;;;519:29:0;;;;;;;;:::i;:::-;-1:-1:-1;559:9:0;571:5;575:1;571;:5;:::i;:::-;559:17;413:192;-1:-1:-1;;;;;413:192:0:o;1005:345::-;1091:7;1193:12;1186:5;1178:28;;;;-1:-1:-1;;;1178:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1217:9:0;1229:5;1233:1;1229;:5;:::i;196:154:1:-;-1:-1:-1;;;;;275:5:1;271:54;264:5;261:65;251:93;;340:1;337;330:12;355:315;423:6;431;484:2;472:9;463:7;459:23;455:32;452:52;;;500:1;497;490:12;452:52;539:9;526:23;558:31;583:5;558:31;:::i;:::-;608:5;660:2;645:18;;;;632:32;;-1:-1:-1;;;355:315:1:o;675:247::-;734:6;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;842:9;829:23;861:31;886:5;861:31;:::i;927:248::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;-1:-1:-1;;1095:23:1;;;1165:2;1150:18;;;1137:32;;-1:-1:-1;927:248:1:o;1504:180::-;1563:6;1616:2;1604:9;1595:7;1591:23;1587:32;1584:52;;;1632:1;1629;1622:12;1584:52;-1:-1:-1;1655:23:1;;1504:180;-1:-1:-1;1504:180:1:o;1920:184::-;1990:6;2043:2;2031:9;2022:7;2018:23;2014:32;2011:52;;;2059:1;2056;2049:12;2011:52;-1:-1:-1;2082:16:1;;1920:184;-1:-1:-1;1920:184:1:o;2241:251::-;2311:6;2364:2;2352:9;2343:7;2339:23;2335:32;2332:52;;;2380:1;2377;2370:12;2332:52;2412:9;2406:16;2431:31;2456:5;2431:31;:::i;2497:127::-;2558:10;2553:3;2549:20;2546:1;2539:31;2589:4;2586:1;2579:15;2613:4;2610:1;2603:15;2629:954;2863:4;2911:3;2900:9;2896:19;2942:6;2931:9;2924:25;2968:2;3006:3;3001:2;2990:9;2986:18;2979:31;3030:6;3065;3059:13;3096:6;3088;3081:22;3134:3;3123:9;3119:19;3112:26;;3173:2;3165:6;3161:15;3147:29;;3194:1;3204:218;3218:6;3215:1;3212:13;3204:218;;;3283:13;;-1:-1:-1;;;;;3279:62:1;3267:75;;3397:15;;;;3362:12;;;;3240:1;3233:9;3204:218;;;-1:-1:-1;;;;;;;3478:55:1;;;;3473:2;3458:18;;3451:83;-1:-1:-1;;;3565:2:1;3550:18;3543:34;3439:3;2629:954;-1:-1:-1;;2629:954:1:o;3940:127::-;4001:10;3996:3;3992:20;3989:1;3982:31;4032:4;4029:1;4022:15;4056:4;4053:1;4046:15;4072:135;4111:3;4132:17;;;4129:43;;4152:18;;:::i;:::-;-1:-1:-1;4199:1:1;4188:13;;4072:135::o;4514:277::-;4581:6;4634:2;4622:9;4613:7;4609:23;4605:32;4602:52;;;4650:1;4647;4640:12;4602:52;4682:9;4676:16;4735:5;4728:13;4721:21;4714:5;4711:32;4701:60;;4757:1;4754;4747:12;4796:125;4836:4;4864:1;4861;4858:8;4855:34;;;4869:18;;:::i;:::-;-1:-1:-1;4906:9:1;;4796:125::o;4926:127::-;4987:10;4982:3;4978:20;4975:1;4968:31;5018:4;5015:1;5008:15;5042:4;5039:1;5032:15;5058:128;5098:3;5129:1;5125:6;5122:1;5119:13;5116:39;;;5135:18;;:::i;:::-;-1:-1:-1;5171:9:1;;5058:128::o;5547:168::-;5587:7;5653:1;5649;5645:6;5641:14;5638:1;5635:21;5630:1;5623:9;5616:17;5612:45;5609:71;;;5660:18;;:::i;:::-;-1:-1:-1;5700:9:1;;5547:168::o;5720:217::-;5760:1;5786;5776:132;;5830:10;5825:3;5821:20;5818:1;5811:31;5865:4;5862:1;5855:15;5893:4;5890:1;5883:15;5776:132;-1:-1:-1;5922:9:1;;5720:217::o;6344:597::-;6456:4;6485:2;6514;6503:9;6496:21;6546:6;6540:13;6589:6;6584:2;6573:9;6569:18;6562:34;6614:1;6624:140;6638:6;6635:1;6632:13;6624:140;;;6733:14;;;6729:23;;6723:30;6699:17;;;6718:2;6695:26;6688:66;6653:10;;6624:140;;;6782:6;6779:1;6776:13;6773:91;;;6852:1;6847:2;6838:6;6827:9;6823:22;6819:31;6812:42;6773:91;-1:-1:-1;6925:2:1;6904:15;-1:-1:-1;;6900:29:1;6885:45;;;;6932:2;6881:54;;6344:597;-1:-1:-1;;;6344:597:1:o
Swarm Source
ipfs://a40ff71a671c387c154cb99ec651c2f5a101009b8c1a7fcbd964ec534803d169
Loading...
Loading
Loading...
Loading
Net Worth in USD
$3.60
Net Worth in ETH
0.001819
Token Allocations
USDT
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1 | 3.6044 | $3.6 |
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.