More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15613938 | 857 days ago | 0.01028134 ETH | ||||
15613938 | 857 days ago | 0.01028134 ETH | ||||
15602996 | 858 days ago | 0.01197632 ETH | ||||
15602996 | 858 days ago | 0.01197632 ETH | ||||
15420938 | 886 days ago | 0.00921603 ETH | ||||
15420938 | 886 days ago | 0.00921603 ETH | ||||
15316406 | 903 days ago | 0.01070602 ETH | ||||
15316406 | 903 days ago | 0.01070602 ETH | ||||
15222180 | 918 days ago | 0.01473842 ETH | ||||
15222180 | 918 days ago | 0.01473842 ETH | ||||
15178053 | 925 days ago | 0.00995401 ETH | ||||
15178053 | 925 days ago | 0.00995401 ETH | ||||
15164171 | 927 days ago | 0.01330556 ETH | ||||
15164171 | 927 days ago | 0.01330556 ETH | ||||
15163128 | 927 days ago | 0.01737271 ETH | ||||
15163128 | 927 days ago | 0.01737271 ETH | ||||
15159689 | 927 days ago | 0.01204391 ETH | ||||
15159689 | 927 days ago | 0.01204391 ETH | ||||
15090575 | 938 days ago | 0.01350774 ETH | ||||
15090575 | 938 days ago | 0.01350774 ETH | ||||
15048980 | 945 days ago | 0.01397699 ETH | ||||
15048980 | 945 days ago | 0.01397699 ETH | ||||
15005120 | 953 days ago | 0.01844247 ETH | ||||
15005120 | 953 days ago | 0.01844247 ETH | ||||
14951068 | 962 days ago | 0.02401756 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DividendDistributor
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-30 */ // https://t.me/FreelonMuskTG // https://twitter.com/FreelonMuskCoin // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/utils/math/SafeMath.sol // OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/ProofFactory.sol pragma solidity ^0.8.0; interface IBURNER { function burnEmUp() external payable; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); } 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; } interface IWETH is IERC20 { function deposit() external payable; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IUniswapV2Router02 router; IWETH public RewardToken; 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 = 30 minutes; uint256 public minDistribution = 1 * (10 ** 18); uint256 currentIndex; bool initialized; modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router, address _reflectionToken, address token) { router = IUniswapV2Router02(_router); RewardToken = IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); _token = token; } 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)); RewardToken.deposit{value: msg.value}(); 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); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); RewardToken.transfer(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 Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_reflectionToken","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"RewardToken","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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
60806040526ec097ce7bc90715b34b9f1000000000600b55610708600c55670de0b6b3a7640000600d5534801561003557600080fd5b50604051610ea4380380610ea4833981016040819052610054916100c1565b600180546001600160a01b039485166001600160a01b03199182161790915560028054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055600080549290941691161790915550610103565b80516001600160a01b03811681146100bc57600080fd5b919050565b6000806000606084860312156100d5578283fd5b6100de846100a5565b92506100ec602085016100a5565b91506100fa604085016100a5565b90509250925092565b610d92806101126000396000f3fe6080604052600436106100e85760003560e01c8063ce7c2ac21161008a578063f0fc6bca11610059578063f0fc6bca1461021a578063f1e9f1e51461022f578063ffb2c47914610251578063ffd49c8414610271576100e8565b8063ce7c2ac2146101b9578063d0e30db0146101e8578063e2d2e219146101f0578063efca2eed14610205576100e8565b80632d48e896116100c65780632d48e8961461015a5780633a98ef391461017a5780634fab0ae81461018f578063997664d7146101a4576100e8565b806311ce023d146100ed57806314b6ca961461011857806328fd31981461013a575b600080fd5b3480156100f957600080fd5b50610102610286565b60405161010f9190610c9e565b60405180910390f35b34801561012457600080fd5b50610138610133366004610ba0565b61028c565b005b34801561014657600080fd5b50610102610155366004610b86565b6103b1565b34801561016657600080fd5b50610138610175366004610c19565b61043d565b34801561018657600080fd5b5061010261045f565b34801561019b57600080fd5b50610102610465565b3480156101b057600080fd5b5061010261046b565b3480156101c557600080fd5b506101d96101d4366004610b86565b610471565b60405161010f93929190610ca7565b610138610492565b3480156101fc57600080fd5b50610102610665565b34801561021157600080fd5b5061010261066b565b34801561022657600080fd5b50610138610671565b34801561023b57600080fd5b506102446106aa565b60405161010f9190610c3a565b34801561025d57600080fd5b5061013861026c366004610be9565b6106b9565b34801561027d57600080fd5b506101026107d8565b600b5481565b6000546001600160a01b031633146102a357600080fd5b6001600160a01b038216600090815260066020526040902054156102ca576102ca826107de565b6000811180156102f057506001600160a01b038216600090815260066020526040902054155b15610303576102fe82610922565b610336565b8015801561032857506001600160a01b03821660009081526006602052604090205415155b156103365761033682610983565b6001600160a01b03821660009081526006602052604090205460075461036791839161036191610ad0565b90610ae3565b6007556001600160a01b038216600090815260066020526040902081905561038e81610aef565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b0381166000908152600660205260408120546103d657506000610438565b6001600160a01b0382166000908152600660205260408120546103f890610aef565b6001600160a01b03841660009081526006602052604090206001015490915080821161042957600092505050610438565b6104338282610ad0565b925050505b919050565b6000546001600160a01b0316331461045457600080fd5b600c91909155600d55565b60075481565b600d5481565b60085481565b60066020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104a957600080fd5b6002546040516370a0823160e01b81526000916001600160a01b0316906370a08231906104da903090600401610c3a565b60206040518083038186803b1580156104f257600080fd5b505afa158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a9190610c01565b9050600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561057c57600080fd5b505af1158015610590573d6000803e3d6000fd5b50506002546040516370a0823160e01b81526000945061062493508592506001600160a01b03909116906370a08231906105ce903090600401610c3a565b60206040518083038186803b1580156105e657600080fd5b505afa1580156105fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061e9190610c01565b90610ad0565b6008549091506106349082610ae3565b600855600754600b5461065e916106559161064f9085610b12565b90610b1e565b600a5490610ae3565b600a555050565b600a5481565b60095481565b61067a33610b2a565b61069f5760405162461bcd60e51b815260040161069690610c67565b60405180910390fd5b6106a8336107de565b565b6002546001600160a01b031681565b6000546001600160a01b031633146106d057600080fd5b600354806106de57506107d5565b60008060005a90505b84821080156106f557508383105b156107d05783600e5410610709576000600e555b6107496003600e548154811061072f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316610b2a565b1561078e5761078e6003600e548154811061077457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03166107de565b6107a361079c5a8390610ad0565b8390610ae3565b91505a600e805491925060006107b883610d2b565b919050555082806107c890610d2b565b9350506106e7565b505050505b50565b600c5481565b6001600160a01b038116600090815260066020526040902054610800576107d5565b600061080b826103b1565b9050801561091e576009546108209082610ae3565b6009556001600160a01b038216600090815260056020908152604080832042905560069091529020600201546108569082610ae3565b6001600160a01b038316600090815260066020526040902060028101919091555461088090610aef565b6001600160a01b038084166000908152600660205260409081902060010192909255600254915163a9059cbb60e01b815291169063a9059cbb906108ca9085908590600401610c4e565b602060405180830381600087803b1580156108e457600080fd5b505af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610bc9565b505b5050565b600380546001600160a01b039092166000818152600460205260408120849055600184018355919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180546001600160a01b0319169091179055565b6003805461099390600190610d14565b815481106109b157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03848116845260049092526040909220546003805492909316929181106109fd57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610a4990600190610d14565b81548110610a6757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610aab57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610adc8284610d14565b9392505050565b6000610adc8284610cbd565b6000610b0c600b5461064f600a5485610b1290919063ffffffff16565b92915050565b6000610adc8284610cf5565b6000610adc8284610cd5565b600c546001600160a01b03821660009081526005602052604081205490914291610b549190610cbd565b108015610b0c5750600d54610b68836103b1565b1192915050565b80356001600160a01b038116811461043857600080fd5b600060208284031215610b97578081fd5b610adc82610b6f565b60008060408385031215610bb2578081fd5b610bbb83610b6f565b946020939093013593505050565b600060208284031215610bda578081fd5b81518015158114610adc578182fd5b600060208284031215610bfa578081fd5b5035919050565b600060208284031215610c12578081fd5b5051919050565b60008060408385031215610c2b578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526017908201527f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60008219821115610cd057610cd0610d46565b500190565b600082610cf057634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610d0f57610d0f610d46565b500290565b600082821015610d2657610d26610d46565b500390565b6000600019821415610d3f57610d3f610d46565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212201c2623fe53867b0df83e779e22ba13a56d49f81065e6799e74a46db689295b4f64736f6c634300080000330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000226856c5f882efa0454df860cef0935f8c3b3118
Deployed Bytecode
0x6080604052600436106100e85760003560e01c8063ce7c2ac21161008a578063f0fc6bca11610059578063f0fc6bca1461021a578063f1e9f1e51461022f578063ffb2c47914610251578063ffd49c8414610271576100e8565b8063ce7c2ac2146101b9578063d0e30db0146101e8578063e2d2e219146101f0578063efca2eed14610205576100e8565b80632d48e896116100c65780632d48e8961461015a5780633a98ef391461017a5780634fab0ae81461018f578063997664d7146101a4576100e8565b806311ce023d146100ed57806314b6ca961461011857806328fd31981461013a575b600080fd5b3480156100f957600080fd5b50610102610286565b60405161010f9190610c9e565b60405180910390f35b34801561012457600080fd5b50610138610133366004610ba0565b61028c565b005b34801561014657600080fd5b50610102610155366004610b86565b6103b1565b34801561016657600080fd5b50610138610175366004610c19565b61043d565b34801561018657600080fd5b5061010261045f565b34801561019b57600080fd5b50610102610465565b3480156101b057600080fd5b5061010261046b565b3480156101c557600080fd5b506101d96101d4366004610b86565b610471565b60405161010f93929190610ca7565b610138610492565b3480156101fc57600080fd5b50610102610665565b34801561021157600080fd5b5061010261066b565b34801561022657600080fd5b50610138610671565b34801561023b57600080fd5b506102446106aa565b60405161010f9190610c3a565b34801561025d57600080fd5b5061013861026c366004610be9565b6106b9565b34801561027d57600080fd5b506101026107d8565b600b5481565b6000546001600160a01b031633146102a357600080fd5b6001600160a01b038216600090815260066020526040902054156102ca576102ca826107de565b6000811180156102f057506001600160a01b038216600090815260066020526040902054155b15610303576102fe82610922565b610336565b8015801561032857506001600160a01b03821660009081526006602052604090205415155b156103365761033682610983565b6001600160a01b03821660009081526006602052604090205460075461036791839161036191610ad0565b90610ae3565b6007556001600160a01b038216600090815260066020526040902081905561038e81610aef565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b0381166000908152600660205260408120546103d657506000610438565b6001600160a01b0382166000908152600660205260408120546103f890610aef565b6001600160a01b03841660009081526006602052604090206001015490915080821161042957600092505050610438565b6104338282610ad0565b925050505b919050565b6000546001600160a01b0316331461045457600080fd5b600c91909155600d55565b60075481565b600d5481565b60085481565b60066020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104a957600080fd5b6002546040516370a0823160e01b81526000916001600160a01b0316906370a08231906104da903090600401610c3a565b60206040518083038186803b1580156104f257600080fd5b505afa158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a9190610c01565b9050600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561057c57600080fd5b505af1158015610590573d6000803e3d6000fd5b50506002546040516370a0823160e01b81526000945061062493508592506001600160a01b03909116906370a08231906105ce903090600401610c3a565b60206040518083038186803b1580156105e657600080fd5b505afa1580156105fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061e9190610c01565b90610ad0565b6008549091506106349082610ae3565b600855600754600b5461065e916106559161064f9085610b12565b90610b1e565b600a5490610ae3565b600a555050565b600a5481565b60095481565b61067a33610b2a565b61069f5760405162461bcd60e51b815260040161069690610c67565b60405180910390fd5b6106a8336107de565b565b6002546001600160a01b031681565b6000546001600160a01b031633146106d057600080fd5b600354806106de57506107d5565b60008060005a90505b84821080156106f557508383105b156107d05783600e5410610709576000600e555b6107496003600e548154811061072f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316610b2a565b1561078e5761078e6003600e548154811061077457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03166107de565b6107a361079c5a8390610ad0565b8390610ae3565b91505a600e805491925060006107b883610d2b565b919050555082806107c890610d2b565b9350506106e7565b505050505b50565b600c5481565b6001600160a01b038116600090815260066020526040902054610800576107d5565b600061080b826103b1565b9050801561091e576009546108209082610ae3565b6009556001600160a01b038216600090815260056020908152604080832042905560069091529020600201546108569082610ae3565b6001600160a01b038316600090815260066020526040902060028101919091555461088090610aef565b6001600160a01b038084166000908152600660205260409081902060010192909255600254915163a9059cbb60e01b815291169063a9059cbb906108ca9085908590600401610c4e565b602060405180830381600087803b1580156108e457600080fd5b505af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610bc9565b505b5050565b600380546001600160a01b039092166000818152600460205260408120849055600184018355919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180546001600160a01b0319169091179055565b6003805461099390600190610d14565b815481106109b157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03848116845260049092526040909220546003805492909316929181106109fd57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610a4990600190610d14565b81548110610a6757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610aab57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610adc8284610d14565b9392505050565b6000610adc8284610cbd565b6000610b0c600b5461064f600a5485610b1290919063ffffffff16565b92915050565b6000610adc8284610cf5565b6000610adc8284610cd5565b600c546001600160a01b03821660009081526005602052604081205490914291610b549190610cbd565b108015610b0c5750600d54610b68836103b1565b1192915050565b80356001600160a01b038116811461043857600080fd5b600060208284031215610b97578081fd5b610adc82610b6f565b60008060408385031215610bb2578081fd5b610bbb83610b6f565b946020939093013593505050565b600060208284031215610bda578081fd5b81518015158114610adc578182fd5b600060208284031215610bfa578081fd5b5035919050565b600060208284031215610c12578081fd5b5051919050565b60008060408385031215610c2b578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526017908201527f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60008219821115610cd057610cd0610d46565b500190565b600082610cf057634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610d0f57610d0f610d46565b500290565b600082821015610d2657610d26610d46565b500390565b6000600019821415610d3f57610d3f610d46565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212201c2623fe53867b0df83e779e22ba13a56d49f81065e6799e74a46db689295b4f64736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000226856c5f882efa0454df860cef0935f8c3b3118
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _reflectionToken (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [2] : token (address): 0x226856C5F882EFa0454DF860CeF0935f8c3B3118
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [2] : 000000000000000000000000226856c5f882efa0454df860cef0935f8c3b3118
Deployed Bytecode Sourcemap
15905:5371:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16538:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17278:646;;;;;;;;;;-1:-1:-1;17278:646:0;;;;;:::i;:::-;;:::i;:::-;;20145:479;;;;;;;;;;-1:-1:-1;20145:479:0;;;;;:::i;:::-;;:::i;17069:201::-;;;;;;;;;;-1:-1:-1;17069:201:0;;;;;:::i;:::-;;:::i;16392:26::-;;;;;;;;;;;;;:::i;16648:47::-;;;;;;;;;;;;;:::i;16425:29::-;;;;;;;;;;;;;:::i;16343:40::-;;;;;;;;;;-1:-1:-1;16343:40:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;17932:441::-;;;:::i;16499:32::-;;;;;;;;;;;;;:::i;16461:31::-;;;;;;;;;;;;;:::i;19979:158::-;;;;;;;;;;;;;:::i;16173:24::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18385:723::-;;;;;;;;;;-1:-1:-1;18385:723:0;;;;;:::i;:::-;;:::i;16604:37::-;;;;;;;;;;;;;:::i;16538:57::-;;;;:::o;17278:646::-;16810:6;;-1:-1:-1;;;;;16810:6:0;16796:10;:20;16788:29;;;;;;-1:-1:-1;;;;;17377:19:0;::::1;17406:1;17377:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;17374:92:::1;;17423:31;17442:11;17423:18;:31::i;:::-;17490:1;17481:6;:10;:45;;;;-1:-1:-1::0;;;;;;17495:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;:31;17481:45:::1;17478:214;;;17542:27;17557:11;17542:14;:27::i;:::-;17478:214;;;17589:11:::0;;:45;::::1;;;-1:-1:-1::0;;;;;;17604:19:0;::::1;17633:1;17604:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;;17589:45:::1;17586:106;;;17650:30;17668:11;17650:17;:30::i;:::-;-1:-1:-1::0;;;;;17734:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;17718:11:::1;::::0;:55:::1;::::0;17766:6;;17718:43:::1;::::0;:15:::1;:43::i;:::-;:47:::0;::::1;:55::i;:::-;17704:11;:69:::0;-1:-1:-1;;;;;17784:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:35;;;17866:50:::1;17813:6:::0;17866:22:::1;:50::i;:::-;-1:-1:-1::0;;;;;17830:19:0;;::::1;;::::0;;;:6:::1;:19;::::0;;;;:33:::1;;:86:::0;;;;-1:-1:-1;17278:646:0:o;20145:479::-;-1:-1:-1;;;;;20237:19:0;;20214:7;20237:19;;;:6;:19;;;;;:26;20234:48;;-1:-1:-1;20278:1:0;20271:8;;20234:48;-1:-1:-1;;;;;20353:19:0;;20294:33;20353:19;;;:6;:19;;;;;:26;20330:50;;:22;:50::i;:::-;-1:-1:-1;;;;;20426:19:0;;20391:32;20426:19;;;:6;:19;;;;;:33;;;20294:86;;-1:-1:-1;20475:53:0;;;20472:70;;20538:1;20531:8;;;;;;20472:70;20561:55;:25;20591:24;20561:29;:55::i;:::-;20554:62;;;;20145:479;;;;:::o;17069:201::-;16810:6;;-1:-1:-1;;;;;16810:6:0;16796:10;:20;16788:29;;;;;;17191:9:::1;:24:::0;;;;17226:15:::1;:36:::0;17069:201::o;16392:26::-;;;;:::o;16648:47::-;;;;:::o;16425:29::-;;;;:::o;16343:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17932:441::-;16810:6;;-1:-1:-1;;;;;16810:6:0;16796:10;:20;16788:29;;;;;;18024:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;18024:36:0;;18000:21:::1;::::0;-1:-1:-1;;;;;18024:11:0::1;::::0;:21:::1;::::0;:36:::1;::::0;18054:4:::1;::::0;18024:36:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18000:60;;18073:11;;;;;;;;;-1:-1:-1::0;;;;;18073:11:0::1;-1:-1:-1::0;;;;;18073:19:0::1;;18100:9;18073:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18142:11:0::1;::::0;:36:::1;::::0;-1:-1:-1;;;18142:36:0;;18125:14:::1;::::0;-1:-1:-1;18142:55:0::1;::::0;-1:-1:-1;18183:13:0;;-1:-1:-1;;;;;;18142:11:0;;::::1;::::0;:21:::1;::::0;:36:::1;::::0;18172:4:::1;::::0;18142:36:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40:::0;::::1;:55::i;:::-;18225:14;::::0;18125:72;;-1:-1:-1;18225:26:0::1;::::0;18125:72;18225:18:::1;:26::i;:::-;18208:14;:43:::0;18352:11:::1;::::0;18304:31:::1;::::0;18282:83:::1;::::0;18304:60:::1;::::0;:43:::1;::::0;18340:6;18304:35:::1;:43::i;:::-;:47:::0;::::1;:60::i;:::-;18282:17;::::0;;:21:::1;:83::i;:::-;18262:17;:103:::0;-1:-1:-1;;17932:441:0:o;16499:32::-;;;;:::o;16461:31::-;;;;:::o;19979:158::-;20032:28;20049:10;20032:16;:28::i;:::-;20024:64;;;;-1:-1:-1;;;20024:64:0;;;;;;;:::i;:::-;;;;;;;;;20099:30;20118:10;20099:18;:30::i;:::-;19979:158::o;16173:24::-;;;-1:-1:-1;;;;;16173:24:0;;:::o;18385:723::-;16810:6;;-1:-1:-1;;;;;16810:6:0;16796:10;:20;16788:29;;;;;;18481:12:::1;:19:::0;18516:21;18513:37:::1;;18541:7;;;18513:37;18562:18;18595:15:::0;18625::::1;18643:9;18625:27;;18665:436;18681:3;18671:7;:13;:46;;;;;18701:16;18688:10;:29;18671:46;18665:436;;;18755:16;18739:12;;:32;18736:57;;18789:1;18774:12;:16:::0;18736:57:::1;18812:44;18829:12;18842;;18829:26;;;;;;-1:-1:-1::0;;;18829:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;18829:26:0::1;18812:16;:44::i;:::-;18809:129;;;18876:46;18895:12;18908;;18895:26;;;;;;-1:-1:-1::0;;;18895:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;18895:26:0::1;18876:18;:46::i;:::-;18964:35;18976:22;18988:9;18976:7:::0;;:11:::1;:22::i;:::-;18964:7:::0;;:11:::1;:35::i;:::-;18954:45;;19024:9;19048:12;:14:::0;;19014:19;;-1:-1:-1;19048:12:0::1;:14;::::0;::::1;:::i;:::-;;;;;;19077:12;;;;;:::i;:::-;;;;18665:436;;;16819:1;;;;;18385:723:::0;:::o;16604:37::-;;;;:::o;19359:608::-;-1:-1:-1;;;;;19431:19:0;;;;;;:6;:19;;;;;:26;19428:46;;19465:7;;19428:46;19486:14;19503:30;19521:11;19503:17;:30::i;:::-;19486:47;-1:-1:-1;19547:10:0;;19544:416;;19592:16;;:28;;19613:6;19592:20;:28::i;:::-;19573:16;:47;-1:-1:-1;;;;;19635:30:0;;;;;;:17;:30;;;;;;;;19668:15;19635:48;;19734:6;:19;;;;;:33;;;:45;;19772:6;19734:37;:45::i;:::-;-1:-1:-1;;;;;19698:19:0;;;;;;:6;:19;;;;;:33;;;:81;;;;19853:26;19830:50;;:22;:50::i;:::-;-1:-1:-1;;;;;19794:19:0;;;;;;;:6;:19;;;;;;;:33;;:86;;;;19895:11;;:41;;-1:-1:-1;;;19895:41:0;;:11;;;:20;;:41;;19801:11;;19929:6;;19895:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19544:416;19359:608;;:::o;20810:167::-;20909:12;:19;;-1:-1:-1;;;;;20875:31:0;;;;;;;:18;:31;;;;;:53;;;20939:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20939:30:0;;;;;;20810:167::o;20985:288::-;21101:12;21114:19;;:21;;21134:1;;21114:21;:::i;:::-;21101:35;;;;;;-1:-1:-1;;;21101:35:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21066:31:0;;;;;:18;:31;;;;;;;;21053:12;:45;;21101:35;;;;;21053:12;:45;;;;-1:-1:-1;;;21053:45:0;;;;;;;;;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;21053:83:0;-1:-1:-1;;;;;21053:83:0;;;;;;21205:31;;;;;:18;:31;;;;;;;;21166:12;21179:19;;21205:31;;:18;21053:45;21179:21;;-1:-1:-1;;21179:21:0;:::i;:::-;21166:35;;;;;;-1:-1:-1;;;21166:35:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21166:35:0;21147:55;;;;;;;;;;;;:89;21247:12;:18;;;;;-1:-1:-1;;;21247:18:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;21247:18:0;;;;;-1:-1:-1;;;;;;21247:18:0;;;;;;-1:-1:-1;20985:288:0:o;7867:98::-;7925:7;7952:5;7956:1;7952;:5;:::i;:::-;7945:12;7867:98;-1:-1:-1;;;7867:98:0:o;7486:::-;7544:7;7571:5;7575:1;7571;:5;:::i;20632:170::-;20702:7;20729:65;20762:31;;20729:28;20739:17;;20729:5;:9;;:28;;;;:::i;:65::-;20722:72;20632:170;-1:-1:-1;;20632:170:0:o;8224:98::-;8282:7;8309:5;8313:1;8309;:5;:::i;8623:98::-;8681:7;8708:5;8712:1;8708;:5;:::i;19120:231::-;19247:9;;-1:-1:-1;;;;;19214:30:0;;19190:4;19214:30;;;:17;:30;;;;;;19190:4;;19259:15;;19214:42;;19247:9;19214:42;:::i;:::-;:60;:129;;;;;19328:15;;19295:30;19313:11;19295:17;:30::i;:::-;:48;;19120:231;-1:-1:-1;;19120:231:0:o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:266::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;653:2;638:18;;;;625:32;;-1:-1:-1;;;484:179:1:o;668:297::-;;788:2;776:9;767:7;763:23;759:32;756:2;;;809:6;801;794:22;756:2;846:9;840:16;899:5;892:13;885:21;878:5;875:32;865:2;;926:6;918;911:22;970:190;;1082:2;1070:9;1061:7;1057:23;1053:32;1050:2;;;1103:6;1095;1088:22;1050:2;-1:-1:-1;1131:23:1;;1040:120;-1:-1:-1;1040:120:1:o;1165:194::-;;1288:2;1276:9;1267:7;1263:23;1259:32;1256:2;;;1309:6;1301;1294:22;1256:2;-1:-1:-1;1337:16:1;;1246:113;-1:-1:-1;1246:113:1:o;1364:258::-;;;1493:2;1481:9;1472:7;1468:23;1464:32;1461:2;;;1514:6;1506;1499:22;1461:2;-1:-1:-1;;1542:23:1;;;1612:2;1597:18;;;1584:32;;-1:-1:-1;1451:171:1:o;1627:203::-;-1:-1:-1;;;;;1791:32:1;;;;1773:51;;1761:2;1746:18;;1728:102::o;1835:274::-;-1:-1:-1;;;;;2027:32:1;;;;2009:51;;2091:2;2076:18;;2069:34;1997:2;1982:18;;1964:145::o;2335:347::-;2537:2;2519:21;;;2576:2;2556:18;;;2549:30;2615:25;2610:2;2595:18;;2588:53;2673:2;2658:18;;2509:173::o;2687:177::-;2833:25;;;2821:2;2806:18;;2788:76::o;2869:319::-;3071:25;;;3127:2;3112:18;;3105:34;;;;3170:2;3155:18;;3148:34;3059:2;3044:18;;3026:162::o;3193:128::-;;3264:1;3260:6;3257:1;3254:13;3251:2;;;3270:18;;:::i;:::-;-1:-1:-1;3306:9:1;;3241:80::o;3326:217::-;;3392:1;3382:2;;-1:-1:-1;;;3417:31:1;;3471:4;3468:1;3461:15;3499:4;3424:1;3489:15;3382:2;-1:-1:-1;3528:9:1;;3372:171::o;3548:168::-;;3654:1;3650;3646:6;3642:14;3639:1;3636:21;3631:1;3624:9;3617:17;3613:45;3610:2;;;3661:18;;:::i;:::-;-1:-1:-1;3701:9:1;;3600:116::o;3721:125::-;;3789:1;3786;3783:8;3780:2;;;3794:18;;:::i;:::-;-1:-1:-1;3831:9:1;;3770:76::o;3851:135::-;;-1:-1:-1;;3911:17:1;;3908:2;;;3931:18;;:::i;:::-;-1:-1:-1;3978:1:1;3967:13;;3898:88::o;3991:127::-;4052:10;4047:3;4043:20;4040:1;4033:31;4083:4;4080:1;4073:15;4107:4;4104:1;4097:15
Swarm Source
ipfs://1c2623fe53867b0df83e779e22ba13a56d49f81065e6799e74a46db689295b4f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,188.45 | 0.622 | $1,983.37 |
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.