More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 38 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Dividend | 15256021 | 760 days ago | IN | 0 ETH | 0.00080409 | ||||
Claim Dividend | 15200221 | 769 days ago | IN | 0 ETH | 0.00230462 | ||||
Claim Dividend | 15167267 | 774 days ago | IN | 0 ETH | 0.00595665 | ||||
Claim Dividend | 15003795 | 801 days ago | IN | 0 ETH | 0.0046878 | ||||
Claim Dividend | 14992423 | 803 days ago | IN | 0 ETH | 0.00527171 | ||||
Claim Dividend | 14989602 | 804 days ago | IN | 0 ETH | 0.00221137 | ||||
Claim Dividend | 14970239 | 807 days ago | IN | 0 ETH | 0.00305562 | ||||
Claim Dividend | 14964202 | 808 days ago | IN | 0 ETH | 0.00365364 | ||||
Claim Dividend | 14955776 | 809 days ago | IN | 0 ETH | 0.01024411 | ||||
Claim Dividend | 14951191 | 810 days ago | IN | 0 ETH | 0.00905326 | ||||
Claim Dividend | 14946098 | 811 days ago | IN | 0 ETH | 0.00282874 | ||||
Claim Dividend | 14936978 | 813 days ago | IN | 0 ETH | 0.00508585 | ||||
Claim Dividend | 14932778 | 813 days ago | IN | 0 ETH | 0.00394756 | ||||
Claim Dividend | 14931276 | 814 days ago | IN | 0 ETH | 0.00317728 | ||||
Claim Dividend | 14928277 | 814 days ago | IN | 0 ETH | 0.00794266 | ||||
Claim Dividend | 14925510 | 815 days ago | IN | 0 ETH | 0.01892155 | ||||
Claim Dividend | 14925132 | 815 days ago | IN | 0 ETH | 0.00447758 | ||||
Claim Dividend | 14924887 | 815 days ago | IN | 0 ETH | 0.00635214 | ||||
Claim Dividend | 14922382 | 815 days ago | IN | 0 ETH | 0.00893723 | ||||
Claim Dividend | 14922373 | 815 days ago | IN | 0 ETH | 0.00883128 | ||||
Claim Dividend | 14921656 | 815 days ago | IN | 0 ETH | 0.00637163 | ||||
Claim Dividend | 14921302 | 815 days ago | IN | 0 ETH | 0.00316536 | ||||
Claim Dividend | 14920694 | 815 days ago | IN | 0 ETH | 0.00402103 | ||||
Claim Dividend | 14920461 | 815 days ago | IN | 0 ETH | 0.00292813 | ||||
Claim Dividend | 14920431 | 815 days ago | IN | 0 ETH | 0.00415064 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14974243 | 806 days ago | 0.006616 ETH | ||||
14974243 | 806 days ago | 0.006616 ETH | ||||
14970157 | 807 days ago | 0.03308004 ETH | ||||
14970157 | 807 days ago | 0.03308004 ETH | ||||
14964169 | 808 days ago | 0.06153721 ETH | ||||
14964169 | 808 days ago | 0.06153721 ETH | ||||
14947787 | 811 days ago | 0.03506715 ETH | ||||
14947787 | 811 days ago | 0.03506715 ETH | ||||
14946467 | 811 days ago | 0.00877421 ETH | ||||
14946467 | 811 days ago | 0.00877421 ETH | ||||
14945500 | 811 days ago | 0.04387108 ETH | ||||
14945500 | 811 days ago | 0.04387108 ETH | ||||
14944428 | 811 days ago | 0.0604553 ETH | ||||
14944428 | 811 days ago | 0.0604553 ETH | ||||
14942559 | 812 days ago | 0.12015563 ETH | ||||
14942559 | 812 days ago | 0.12015563 ETH | ||||
14938149 | 812 days ago | 0.02743725 ETH | ||||
14938149 | 812 days ago | 0.02743725 ETH | ||||
14938012 | 812 days ago | 0.13718625 ETH | ||||
14938012 | 812 days ago | 0.13718625 ETH | ||||
14935078 | 813 days ago | 0.05175969 ETH | ||||
14935078 | 813 days ago | 0.05175969 ETH | ||||
14934525 | 813 days ago | 0.07181876 ETH | ||||
14934525 | 813 days ago | 0.07181876 ETH | ||||
14934211 | 813 days ago | 0.15594292 ETH |
Loading...
Loading
Contract Name:
DividendDistributor
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-06 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 ); /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } /* * @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; } } /** * @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() { _setOwner(_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 { _setOwner(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" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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, Ownable { address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IUniswapV2Router02 public router; IERC20 public RewardToken; address[] shareholders; mapping(address => uint256) public shareholderIndexes; mapping(address => uint256) public 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 public currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyBBTToken() { // require(msg.sender == bbtContract); require(msg.sender == address(RewardToken)); _; } constructor( address _router, address _reflectionToken, address token ) { router = IUniswapV2Router02(_router); RewardToken = IERC20(_reflectionToken); _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 - shares[shareholder].amount + amount; shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit() external payable override { 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)) - balanceBefore; totalDividends = totalDividends + amount; dividendsPerShare = dividendsPerShare + ((dividendsPerShareAccuracyFactor * amount) / totalShares); } function process(uint256 gas) external override { 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 + (gasLeft - gasleft()); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) public 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 + amount; RewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised += 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 - shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return (share * dividendsPerShare) / 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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"RewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"process","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","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":"shareholderClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareholderIndexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"shouldDistribute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526ec097ce7bc90715b34b9f1000000000600c55610708600d55670de0b6b3a7640000600e5534801561003557600080fd5b5060405162001231380380620012318339810160408190526100569161010d565b61005f336100a1565b600280546001600160a01b039485166001600160a01b031991821617909155600380549385169382169390931790925560018054919093169116179055610150565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461010857600080fd5b919050565b60008060006060848603121561012257600080fd5b61012b846100f1565b9250610139602085016100f1565b9150610147604085016100f1565b90509250925092565b6110d180620001606000396000f3fe6080604052600436106101405760003560e01c8063997664d7116100b6578063f0fc6bca1161006f578063f0fc6bca14610384578063f1e9f1e514610399578063f2fde38b146103b9578063f887ea40146103d9578063ffb2c479146103f9578063ffd49c841461041957600080fd5b8063997664d7146102b6578063ce7c2ac2146102cc578063d0e30db014610323578063d4fda1f21461032b578063e2d2e21914610358578063efca2eed1461036e57600080fd5b80633a98ef39116101085780633a98ef39146101e65780634fab0ae8146101fc57806366817df514610212578063715018a61461023f5780638c21cd52146102545780638da5cb5b1461028457600080fd5b806311ce023d1461014557806314b6ca961461016e57806326987b601461019057806328fd3198146101a65780632d48e896146101c6575b600080fd5b34801561015157600080fd5b5061015b600c5481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5061018e610189366004610e81565b61042f565b005b34801561019c57600080fd5b5061015b600f5481565b3480156101b257600080fd5b5061015b6101c1366004610ead565b6105a7565b3480156101d257600080fd5b5061018e6101e1366004610ed1565b610630565b3480156101f257600080fd5b5061015b60085481565b34801561020857600080fd5b5061015b600e5481565b34801561021e57600080fd5b5061015b61022d366004610ead565b60066020526000908152604090205481565b34801561024b57600080fd5b5061018e610652565b34801561026057600080fd5b5061027461026f366004610ead565b6106bd565b6040519015158152602001610165565b34801561029057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b3480156102c257600080fd5b5061015b60095481565b3480156102d857600080fd5b506103086102e7366004610ead565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610165565b61018e610703565b34801561033757600080fd5b5061015b610346366004610ead565b60056020526000908152604090205481565b34801561036457600080fd5b5061015b600b5481565b34801561037a57600080fd5b5061015b600a5481565b34801561039057600080fd5b5061018e6109aa565b3480156103a557600080fd5b5060035461029e906001600160a01b031681565b3480156103c557600080fd5b5061018e6103d4366004610ead565b610a08565b3480156103e557600080fd5b5060025461029e906001600160a01b031681565b34801561040557600080fd5b5061018e610414366004610ef3565b610ad3565b34801561042557600080fd5b5061015b600d5481565b6001546001600160a01b0316331461044657600080fd5b6001600160a01b0382166000908152600760205260409020541561046d5761046d82610bbc565b60008111801561049357506001600160a01b038216600090815260076020526040902054155b156104f957600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561052c565b8015801561051e57506001600160a01b03821660009081526007602052604090205415155b1561052c5761052c82610cea565b6001600160a01b038216600090815260076020526040902054600854829161055391610f22565b61055d9190610f39565b6008556001600160a01b038216600090815260076020526040902081905561058481610dff565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546105cc57506000919050565b6001600160a01b0382166000908152600760205260408120546105ee90610dff565b6001600160a01b03841660009081526007602052604090206001015490915080821161061e575060009392505050565b6106288183610f22565b949350505050565b6001546001600160a01b0316331461064757600080fd5b600d91909155600e55565b6000546001600160a01b031633146106b15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6106bb6000610e1c565b565b600d546001600160a01b038216600090815260066020526040812054909142916106e79190610f39565b1080156106fd5750600e546106fb836105a7565b115b92915050565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561074757600080fd5b505afa15801561075b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077f9190610f51565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156107e957600080fd5b505afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190610f6a565b8160008151811061083457610834610f87565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061086557610865610f87565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906108ab90600090869030904290600401610f9d565b6000604051808303818588803b1580156108c457600080fd5b505af11580156108d8573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094508693506001600160a01b0390911691506370a082319060240160206040518083038186803b15801561092557600080fd5b505afa158015610939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095d9190610f51565b6109679190610f22565b9050806009546109779190610f39565b600955600854600c5461098b908390611007565b6109959190611026565b600b546109a29190610f39565b600b55505050565b6109b3336106bd565b6109ff5760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000060448201526064016106a8565b6106bb33610bbc565b6000546001600160a01b03163314610a625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a8565b6001600160a01b038116610ac75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a8565b610ad081610e1c565b50565b60045480610adf575050565b60008060005a90505b8482108015610af657508383105b15610bb55783600f5410610b0a576000600f555b610b3c6004600f5481548110610b2257610b22610f87565b6000918252602090912001546001600160a01b03166106bd565b15610b7357610b736004600f5481548110610b5957610b59610f87565b6000918252602090912001546001600160a01b0316610bbc565b5a610b7e9082610f22565b610b889083610f39565b91505a600f80549192506000610b9d83611048565b91905055508280610bad90611048565b935050610ae8565b5050505050565b6001600160a01b038116600090815260076020526040902054610bdc5750565b6000610be7826105a7565b90508015610ce65780600a54610bfd9190610f39565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015610c4e57600080fd5b505af1158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190611063565b506001600160a01b0382166000908152600660209081526040808320429055600790915281206002018054839290610cbf908490610f39565b90915550506001600160a01b03821660009081526007602052604090205461058490610dff565b5050565b60048054610cfa90600190610f22565b81548110610d0a57610d0a610f87565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610d4857610d48610f87565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610d9490600190610f22565b81548110610da457610da4610f87565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610dda57610dda611085565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000600c54600b5483610e129190611007565b6106fd9190611026565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610ad057600080fd5b60008060408385031215610e9457600080fd5b8235610e9f81610e6c565b946020939093013593505050565b600060208284031215610ebf57600080fd5b8135610eca81610e6c565b9392505050565b60008060408385031215610ee457600080fd5b50508035926020909101359150565b600060208284031215610f0557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610f3457610f34610f0c565b500390565b60008219821115610f4c57610f4c610f0c565b500190565b600060208284031215610f6357600080fd5b5051919050565b600060208284031215610f7c57600080fd5b8151610eca81610e6c565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610fe75784516001600160a01b031683529383019391830191600101610fc2565b50506001600160a01b039690961660408501525050506060015292915050565b600081600019048311821515161561102157611021610f0c565b500290565b60008261104357634e487b7160e01b600052601260045260246000fd5b500490565b600060001982141561105c5761105c610f0c565b5060010190565b60006020828403121561107557600080fd5b81518015158114610eca57600080fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d3cb1dac07c486224d9793feff178d4d36ecfeaa6b94862ee8f3f4c49f2c77fe64736f6c634300080900330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000c4a49567cf002a99941cb19c973e794c04b8c30000000000000000000000000361641f29df1f79a0f664b2bef03c4b5b15ba423
Deployed Bytecode
0x6080604052600436106101405760003560e01c8063997664d7116100b6578063f0fc6bca1161006f578063f0fc6bca14610384578063f1e9f1e514610399578063f2fde38b146103b9578063f887ea40146103d9578063ffb2c479146103f9578063ffd49c841461041957600080fd5b8063997664d7146102b6578063ce7c2ac2146102cc578063d0e30db014610323578063d4fda1f21461032b578063e2d2e21914610358578063efca2eed1461036e57600080fd5b80633a98ef39116101085780633a98ef39146101e65780634fab0ae8146101fc57806366817df514610212578063715018a61461023f5780638c21cd52146102545780638da5cb5b1461028457600080fd5b806311ce023d1461014557806314b6ca961461016e57806326987b601461019057806328fd3198146101a65780632d48e896146101c6575b600080fd5b34801561015157600080fd5b5061015b600c5481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5061018e610189366004610e81565b61042f565b005b34801561019c57600080fd5b5061015b600f5481565b3480156101b257600080fd5b5061015b6101c1366004610ead565b6105a7565b3480156101d257600080fd5b5061018e6101e1366004610ed1565b610630565b3480156101f257600080fd5b5061015b60085481565b34801561020857600080fd5b5061015b600e5481565b34801561021e57600080fd5b5061015b61022d366004610ead565b60066020526000908152604090205481565b34801561024b57600080fd5b5061018e610652565b34801561026057600080fd5b5061027461026f366004610ead565b6106bd565b6040519015158152602001610165565b34801561029057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b3480156102c257600080fd5b5061015b60095481565b3480156102d857600080fd5b506103086102e7366004610ead565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610165565b61018e610703565b34801561033757600080fd5b5061015b610346366004610ead565b60056020526000908152604090205481565b34801561036457600080fd5b5061015b600b5481565b34801561037a57600080fd5b5061015b600a5481565b34801561039057600080fd5b5061018e6109aa565b3480156103a557600080fd5b5060035461029e906001600160a01b031681565b3480156103c557600080fd5b5061018e6103d4366004610ead565b610a08565b3480156103e557600080fd5b5060025461029e906001600160a01b031681565b34801561040557600080fd5b5061018e610414366004610ef3565b610ad3565b34801561042557600080fd5b5061015b600d5481565b6001546001600160a01b0316331461044657600080fd5b6001600160a01b0382166000908152600760205260409020541561046d5761046d82610bbc565b60008111801561049357506001600160a01b038216600090815260076020526040902054155b156104f957600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561052c565b8015801561051e57506001600160a01b03821660009081526007602052604090205415155b1561052c5761052c82610cea565b6001600160a01b038216600090815260076020526040902054600854829161055391610f22565b61055d9190610f39565b6008556001600160a01b038216600090815260076020526040902081905561058481610dff565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b0381166000908152600760205260408120546105cc57506000919050565b6001600160a01b0382166000908152600760205260408120546105ee90610dff565b6001600160a01b03841660009081526007602052604090206001015490915080821161061e575060009392505050565b6106288183610f22565b949350505050565b6001546001600160a01b0316331461064757600080fd5b600d91909155600e55565b6000546001600160a01b031633146106b15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6106bb6000610e1c565b565b600d546001600160a01b038216600090815260066020526040812054909142916106e79190610f39565b1080156106fd5750600e546106fb836105a7565b115b92915050565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561074757600080fd5b505afa15801561075b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077f9190610f51565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156107e957600080fd5b505afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190610f6a565b8160008151811061083457610834610f87565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061086557610865610f87565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906108ab90600090869030904290600401610f9d565b6000604051808303818588803b1580156108c457600080fd5b505af11580156108d8573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094508693506001600160a01b0390911691506370a082319060240160206040518083038186803b15801561092557600080fd5b505afa158015610939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095d9190610f51565b6109679190610f22565b9050806009546109779190610f39565b600955600854600c5461098b908390611007565b6109959190611026565b600b546109a29190610f39565b600b55505050565b6109b3336106bd565b6109ff5760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000060448201526064016106a8565b6106bb33610bbc565b6000546001600160a01b03163314610a625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a8565b6001600160a01b038116610ac75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a8565b610ad081610e1c565b50565b60045480610adf575050565b60008060005a90505b8482108015610af657508383105b15610bb55783600f5410610b0a576000600f555b610b3c6004600f5481548110610b2257610b22610f87565b6000918252602090912001546001600160a01b03166106bd565b15610b7357610b736004600f5481548110610b5957610b59610f87565b6000918252602090912001546001600160a01b0316610bbc565b5a610b7e9082610f22565b610b889083610f39565b91505a600f80549192506000610b9d83611048565b91905055508280610bad90611048565b935050610ae8565b5050505050565b6001600160a01b038116600090815260076020526040902054610bdc5750565b6000610be7826105a7565b90508015610ce65780600a54610bfd9190610f39565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015610c4e57600080fd5b505af1158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190611063565b506001600160a01b0382166000908152600660209081526040808320429055600790915281206002018054839290610cbf908490610f39565b90915550506001600160a01b03821660009081526007602052604090205461058490610dff565b5050565b60048054610cfa90600190610f22565b81548110610d0a57610d0a610f87565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610d4857610d48610f87565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610d9490600190610f22565b81548110610da457610da4610f87565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610dda57610dda611085565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000600c54600b5483610e129190611007565b6106fd9190611026565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610ad057600080fd5b60008060408385031215610e9457600080fd5b8235610e9f81610e6c565b946020939093013593505050565b600060208284031215610ebf57600080fd5b8135610eca81610e6c565b9392505050565b60008060408385031215610ee457600080fd5b50508035926020909101359150565b600060208284031215610f0557600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610f3457610f34610f0c565b500390565b60008219821115610f4c57610f4c610f0c565b500190565b600060208284031215610f6357600080fd5b5051919050565b600060208284031215610f7c57600080fd5b8151610eca81610e6c565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610fe75784516001600160a01b031683529383019391830191600101610fc2565b50506001600160a01b039690961660408501525050506060015292915050565b600081600019048311821515161561102157611021610f0c565b500290565b60008261104357634e487b7160e01b600052601260045260246000fd5b500490565b600060001982141561105c5761105c610f0c565b5060010190565b60006020828403121561107557600080fd5b81518015158114610eca57600080fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d3cb1dac07c486224d9793feff178d4d36ecfeaa6b94862ee8f3f4c49f2c77fe64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000c4a49567cf002a99941cb19c973e794c04b8c30000000000000000000000000361641f29df1f79a0f664b2bef03c4b5b15ba423
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _reflectionToken (address): 0x0c4A49567Cf002A99941cb19C973E794c04B8c30
Arg [2] : token (address): 0x361641f29dF1F79A0F664B2Bef03c4b5b15BA423
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000000c4a49567cf002a99941cb19c973e794c04b8c30
Arg [2] : 000000000000000000000000361641f29df1f79a0f664b2bef03c4b5b15ba423
Deployed Bytecode Sourcemap
11835:6189:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12460:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;12460:55:0;;;;;;;;13514:701;;;;;;;;;;-1:-1:-1;13514:701:0;;;;;:::i;:::-;;:::i;:::-;;12622:27;;;;;;;;;;;;;;;;16710:582;;;;;;;;;;-1:-1:-1;16710:582:0;;;;;:::i;:::-;;:::i;13280:226::-;;;;;;;;;;-1:-1:-1;13280:226:0;;;;;:::i;:::-;;:::i;12314:26::-;;;;;;;;;;;;;;;;12568:45;;;;;;;;;;;;;;;;12207:52;;;;;;;;;;-1:-1:-1;12207:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;10848:94;;;;;;;;;;;;;:::i;15677:238::-;;;;;;;;;;-1:-1:-1;15677:238:0;;;;;:::i;:::-;;:::i;:::-;;;1322:14:1;;1315:22;1297:41;;1285:2;1270:18;15677:238:0;1157:187:1;10197:87:0;;;;;;;;;;-1:-1:-1;10243:7:0;10270:6;-1:-1:-1;;;;;10270:6:0;10197:87;;;-1:-1:-1;;;;;1513:32:1;;;1495:51;;1483:2;1468:18;10197:87:0;1349:203:1;12347:29:0;;;;;;;;;;;;;;;;12266:39;;;;;;;;;;-1:-1:-1;12266:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1759:25:1;;;1815:2;1800:18;;1793:34;;;;1843:18;;;1836:34;1747:2;1732:18;12266:39:0;1557:319:1;14223:673:0;;;:::i;12147:53::-;;;;;;;;;;-1:-1:-1;12147:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;12421:32;;;;;;;;;;;;;;;;12383:31;;;;;;;;;;;;;;;;16544:158;;;;;;;;;;;;;:::i;12084:25::-;;;;;;;;;;-1:-1:-1;12084:25:0;;;;-1:-1:-1;;;;;12084:25:0;;;11097:229;;;;;;;;;;-1:-1:-1;11097:229:0;;;;;:::i;:::-;;:::i;12045:32::-;;;;;;;;;;-1:-1:-1;12045:32:0;;;;-1:-1:-1;;;;;12045:32:0;;;14904:765;;;;;;;;;;-1:-1:-1;14904:765:0;;;;;:::i;:::-;;:::i;12524:37::-;;;;;;;;;;;;;;;;13514:701;12850:6;;-1:-1:-1;;;;;12850:6:0;12836:10;:20;12828:29;;;;;;-1:-1:-1;;;;;13644:19:0;::::1;13673:1;13644:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;13640:94:::1;;13691:31;13710:11;13691:18;:31::i;:::-;13759:1;13750:6;:10;:45;;;;-1:-1:-1::0;;;;;;13764:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;:31;13750:45:::1;13746:219;;;17605:12:::0;:19;;-1:-1:-1;;;;;17571:31:0;;;;;;:18;:31;;;;;:53;;;17635:30;;;;;;;;;;;;;-1:-1:-1;;;;;;17635:30:0;;;;;;13746:219:::1;;;13861:11:::0;;:45;::::1;;;-1:-1:-1::0;;;;;;13876:19:0;::::1;13905:1;13876:19:::0;;;:6:::1;:19;::::0;;;;:26;:30;;13861:45:::1;13857:108;;;13923:30;13941:11;13923:17;:30::i;:::-;-1:-1:-1::0;;;;;14005:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:26;13991:11:::1;::::0;14034:6;;13991:40:::1;::::0;::::1;:::i;:::-;:49;;;;:::i;:::-;13977:11;:63:::0;-1:-1:-1;;;;;14051:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;:35;;;14133:74:::1;14080:6:::0;14133:22:::1;:74::i;:::-;-1:-1:-1::0;;;;;14097:19:0;;::::1;;::::0;;;:6:::1;:19;::::0;;;;:33:::1;;:110:::0;;;;-1:-1:-1;13514:701:0:o;16710:582::-;-1:-1:-1;;;;;16835:19:0;;16806:7;16835:19;;;:6;:19;;;;;:26;16831:72;;-1:-1:-1;16890:1:0;;16710:582;-1:-1:-1;16710:582:0:o;16831:72::-;-1:-1:-1;;;;;16988:19:0;;16915:33;16988:19;;;:6;:19;;;;;:26;16951:74;;:22;:74::i;:::-;-1:-1:-1;;;;;17071:19:0;;17036:32;17071:19;;;:6;:19;;;;;:33;;;16915:110;;-1:-1:-1;17121:53:0;;;17117:94;;-1:-1:-1;17198:1:0;;16710:582;-1:-1:-1;;;16710:582:0:o;17117:94::-;17231:52;17259:24;17231:25;:52;:::i;:::-;17223:61;16710:582;-1:-1:-1;;;;16710:582:0:o;13280:226::-;12850:6;;-1:-1:-1;;;;;12850:6:0;12836:10;:20;12828:29;;;;;;13427:9:::1;:24:::0;;;;13462:15:::1;:36:::0;13280:226::o;10848:94::-;10243:7;10270:6;-1:-1:-1;;;;;10270:6:0;9128:10;10417:23;10409:68;;;;-1:-1:-1;;;10409:68:0;;3118:2:1;10409:68:0;;;3100:21:1;;;3137:18;;;3130:30;3196:34;3176:18;;;3169:62;3248:18;;10409:68:0;;;;;;;;;10913:21:::1;10931:1;10913:9;:21::i;:::-;10848:94::o:0;15677:238::-;15815:9;;-1:-1:-1;;;;;15782:30:0;;15745:4;15782:30;;;:17;:30;;;;;;15745:4;;15827:15;;15782:42;;15815:9;15782:42;:::i;:::-;:60;:125;;;;;15892:15;;15859:30;15877:11;15859:17;:30::i;:::-;:48;15782:125;15762:145;15677:238;-1:-1:-1;;15677:238:0:o;14223:673::-;14303:11;;:36;;-1:-1:-1;;;14303:36:0;;14333:4;14303:36;;;1495:51:1;14279:21:0;;-1:-1:-1;;;;;14303:11:0;;:21;;1468:18:1;;14303:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14376:16;;;14390:1;14376:16;;;;;;;;14279:60;;-1:-1:-1;14352:21:0;;14376:16;;;;;;;;;;-1:-1:-1;;14413:6:0;;:13;;;-1:-1:-1;;;14413:13:0;;;;14352:40;;-1:-1:-1;;;;;;14413:6:0;;;;:11;;-1:-1:-1;14413:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14403:4;14408:1;14403:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14403:23:0;;;:7;;;;;;;;;:23;14455:11;;14437:7;;14455:11;;;14437:4;;14455:11;;14437:7;;;;;;:::i;:::-;-1:-1:-1;;;;;14437:30:0;;;:7;;;;;;;;;:30;14480:6;;:140;;-1:-1:-1;;;14480:140:0;;:6;;;:57;;14559:9;;14480:140;;:6;;14583:4;;14597;;14604:15;;14480:140;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14650:11:0;;:36;;-1:-1:-1;;;14650:36:0;;14680:4;14650:36;;;1495:51:1;14633:14:0;;-1:-1:-1;14689:13:0;;-1:-1:-1;;;;;;14650:11:0;;;;-1:-1:-1;14650:21:0;;1468:18:1;;14650:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;;;:::i;:::-;14633:69;;14747:6;14730:14;;:23;;;;:::i;:::-;14713:14;:40;14876:11;;14832:31;;:40;;14866:6;;14832:40;:::i;:::-;14831:56;;;;:::i;:::-;14797:17;;:91;;;;:::i;:::-;14764:17;:124;-1:-1:-1;;;14223:673:0:o;16544:158::-;16597:28;16614:10;16597:16;:28::i;:::-;16589:64;;;;-1:-1:-1;;;16589:64:0;;5496:2:1;16589:64:0;;;5478:21:1;5535:2;5515:18;;;5508:30;5574:25;5554:18;;;5547:53;5617:18;;16589:64:0;5294:347:1;16589:64:0;16664:30;16683:10;16664:18;:30::i;11097:229::-;10243:7;10270:6;-1:-1:-1;;;;;10270:6:0;9128:10;10417:23;10409:68;;;;-1:-1:-1;;;10409:68:0;;3118:2:1;10409:68:0;;;3100:21:1;;;3137:18;;;3130:30;3196:34;3176:18;;;3169:62;3248:18;;10409:68:0;2916:356:1;10409:68:0;-1:-1:-1;;;;;11200:22:0;::::1;11178:110;;;::::0;-1:-1:-1;;;11178:110:0;;5848:2:1;11178:110:0::1;::::0;::::1;5830:21:1::0;5887:2;5867:18;;;5860:30;5926:34;5906:18;;;5899:62;-1:-1:-1;;;5977:18:1;;;5970:36;6023:19;;11178:110:0::1;5646:402:1::0;11178:110:0::1;11299:19;11309:8;11299:9;:19::i;:::-;11097:229:::0;:::o;14904:765::-;14990:12;:19;15026:21;15022:60;;15064:7;14904:765;:::o;15022:60::-;15094:18;15127:15;15157;15175:9;15157:27;;15197:465;15214:3;15204:7;:13;:46;;;;;15234:16;15221:10;:29;15204:46;15197:465;;;15287:16;15271:12;;:32;15267:89;;15339:1;15324:12;:16;15267:89;15376:44;15393:12;15406;;15393:26;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;15393:26:0;15376:16;:44::i;:::-;15372:131;;;15441:46;15460:12;15473;;15460:26;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;15460:26:0;15441:18;:46::i;:::-;15550:9;15540:19;;:7;:19;:::i;:::-;15529:31;;:7;:31;:::i;:::-;15519:41;;15585:9;15609:12;:14;;15575:19;;-1:-1:-1;15609:12:0;:14;;;:::i;:::-;;;;;;15638:12;;;;;:::i;:::-;;;;15197:465;;;14952:717;;;;14904:765;:::o;15923:613::-;-1:-1:-1;;;;;15996:19:0;;;;;;:6;:19;;;;;:26;15992:70;;15923:613;:::o;15992:70::-;16074:14;16091:30;16109:11;16091:17;:30::i;:::-;16074:47;-1:-1:-1;16136:10:0;;16132:397;;16201:6;16182:16;;:25;;;;:::i;:::-;16163:16;:44;16222:11;;:41;;-1:-1:-1;;;16222:41:0;;-1:-1:-1;;;;;6385:32:1;;;16222:41:0;;;6367:51:1;6434:18;;;6427:34;;;16222:11:0;;;;:20;;6340:18:1;;16222:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;16278:30:0;;;;;;:17;:30;;;;;;;;16311:15;16278:48;;16341:6;:19;;;;;:33;;:43;;16378:6;;16278:30;16341:43;;16378:6;;16341:43;:::i;:::-;;;;-1:-1:-1;;;;;;;16476:19:0;;;;;;:6;:19;;;;;:26;16435:82;;:22;:82::i;16132:397::-;15981:555;15923:613;:::o;17681:340::-;17797:12;17824:19;;:23;;17846:1;;17824:23;:::i;:::-;17797:61;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17762:31:0;;;;;:18;:31;;;;;;;;17749:12;:45;;17797:61;;;;;17749:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:109;;-1:-1:-1;;;;;;17749:109:0;-1:-1:-1;;;;;17749:109:0;;;;;;17953:31;;;;;:18;:31;;;;;;;;17902:12;17915:19;;17953:31;;:18;17749:45;17915:23;;-1:-1:-1;;17915:23:0;:::i;:::-;17902:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17902:37:0;17869:81;;;;;;;;;;;;:115;17995:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;17995:18:0;;;;;-1:-1:-1;;;;;;17995:18:0;;;;;;-1:-1:-1;17681:340:0:o;17300:198::-;17397:7;17459:31;;17438:17;;17430:5;:25;;;;:::i;:::-;17429:61;;;;:::i;11334:173::-;11390:16;11409:6;;-1:-1:-1;;;;;11426:17:0;;;-1:-1:-1;;;;;;11426:17:0;;;;;;11459:40;;11409:6;;;;;;;11459:40;;11390:16;11459:40;11379:128;11334:173;:::o;196:131:1:-;-1:-1:-1;;;;;271:31:1;;261:42;;251:70;;317:1;314;307:12;332:315;400:6;408;461:2;449:9;440:7;436:23;432:32;429:52;;;477:1;474;467:12;429:52;516:9;503:23;535:31;560:5;535:31;:::i;:::-;585:5;637:2;622:18;;;;609:32;;-1:-1:-1;;;332:315:1:o;652:247::-;711:6;764:2;752:9;743:7;739:23;735:32;732:52;;;780:1;777;770:12;732:52;819:9;806:23;838:31;863:5;838:31;:::i;:::-;888:5;652:247;-1:-1:-1;;;652:247:1:o;904:248::-;972:6;980;1033:2;1021:9;1012:7;1008:23;1004:32;1001:52;;;1049:1;1046;1039:12;1001:52;-1:-1:-1;;1072:23:1;;;1142:2;1127:18;;;1114:32;;-1:-1:-1;904:248:1:o;2336:180::-;2395:6;2448:2;2436:9;2427:7;2423:23;2419:32;2416:52;;;2464:1;2461;2454:12;2416:52;-1:-1:-1;2487:23:1;;2336:180;-1:-1:-1;2336:180:1:o;2521:127::-;2582:10;2577:3;2573:20;2570:1;2563:31;2613:4;2610:1;2603:15;2637:4;2634:1;2627:15;2653:125;2693:4;2721:1;2718;2715:8;2712:34;;;2726:18;;:::i;:::-;-1:-1:-1;2763:9:1;;2653:125::o;2783:128::-;2823:3;2854:1;2850:6;2847:1;2844:13;2841:39;;;2860:18;;:::i;:::-;-1:-1:-1;2896:9:1;;2783:128::o;3277:184::-;3347:6;3400:2;3388:9;3379:7;3375:23;3371:32;3368:52;;;3416:1;3413;3406:12;3368:52;-1:-1:-1;3439:16:1;;3277:184;-1:-1:-1;3277:184:1:o;3598:251::-;3668:6;3721:2;3709:9;3700:7;3696:23;3692:32;3689:52;;;3737:1;3734;3727:12;3689:52;3769:9;3763:16;3788:31;3813:5;3788:31;:::i;3854:127::-;3915:10;3910:3;3906:20;3903:1;3896:31;3946:4;3943:1;3936:15;3970:4;3967:1;3960:15;3986:908;4220:4;4268:3;4257:9;4253:19;4299:6;4288:9;4281:25;4325:2;4363:3;4358:2;4347:9;4343:18;4336:31;4387:6;4422;4416:13;4453:6;4445;4438:22;4491:3;4480:9;4476:19;4469:26;;4530:2;4522:6;4518:15;4504:29;;4551:1;4561:195;4575:6;4572:1;4569:13;4561:195;;;4640:13;;-1:-1:-1;;;;;4636:39:1;4624:52;;4731:15;;;;4696:12;;;;4672:1;4590:9;4561:195;;;-1:-1:-1;;;;;;;4812:32:1;;;;4807:2;4792:18;;4785:60;-1:-1:-1;;;4876:2:1;4861:18;4854:34;4773:3;3986:908;-1:-1:-1;;3986:908:1:o;4899:168::-;4939:7;5005:1;5001;4997:6;4993:14;4990:1;4987:21;4982:1;4975:9;4968:17;4964:45;4961:71;;;5012:18;;:::i;:::-;-1:-1:-1;5052:9:1;;4899:168::o;5072:217::-;5112:1;5138;5128:132;;5182:10;5177:3;5173:20;5170:1;5163:31;5217:4;5214:1;5207:15;5245:4;5242:1;5235:15;5128:132;-1:-1:-1;5274:9:1;;5072:217::o;6053:135::-;6092:3;-1:-1:-1;;6113:17:1;;6110:43;;;6133:18;;:::i;:::-;-1:-1:-1;6180:1:1;6169:13;;6053:135::o;6472:277::-;6539:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:52;;;6608:1;6605;6598:12;6560:52;6640:9;6634:16;6693:5;6686:13;6679:21;6672:5;6669:32;6659:60;;6715:1;6712;6705:12;6754:127;6815:10;6810:3;6806:20;6803:1;6796:31;6846:4;6843:1;6836:15;6870:4;6867:1;6860:15
Swarm Source
ipfs://d3cb1dac07c486224d9793feff178d4d36ecfeaa6b94862ee8f3f4c49f2c77fe
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.