Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 10974493 | 1515 days ago | IN | 0 ETH | 0.11041316 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
sbControllerV2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; import './SafeMath.sol'; import './IERC20.sol'; import './sbTokensInterface.sol'; import './sbCommunityInterface.sol'; import './sbStrongPoolInterface.sol'; import './sbVotesInterface.sol'; contract sbControllerV2 { event CommunityAdded(address indexed community); event RewardsReleased(address indexed receiver, uint256 amount, uint256 indexed day); using SafeMath for uint256; bool internal initDone; address internal sbTimelock; IERC20 internal strongToken; sbTokensInterface internal sbTokens; sbStrongPoolInterface internal sbStrongPool; sbVotesInterface internal sbVotes; uint256 internal startDay; mapping(uint256 => uint256) internal COMMUNITY_DAILY_REWARDS_BY_YEAR; mapping(uint256 => uint256) internal STRONGPOOL_DAILY_REWARDS_BY_YEAR; mapping(uint256 => uint256) internal VOTER_DAILY_REWARDS_BY_YEAR; uint256 internal MAX_YEARS; address[] internal communities; mapping(uint256 => uint256) internal dayMineSecondsUSDTotal; mapping(address => mapping(uint256 => uint256)) internal communityDayMineSecondsUSD; mapping(address => mapping(uint256 => uint256)) internal communityDayRewards; mapping(address => uint256) internal communityDayStart; uint256 internal dayLastReleasedRewardsFor; address internal superAdmin; address internal pendingSuperAdmin; function setSuperAdmin() public { require(superAdmin == address(0), 'superAdmin already set'); superAdmin = address(0x4B5057B2c87Ec9e7C047fb00c0E406dfF2FDaCad); } function setPendingSuperAdmin(address newPendingSuperAdmin) public { require(msg.sender == superAdmin && msg.sender != address(0), 'not superAdmin'); pendingSuperAdmin = newPendingSuperAdmin; } function acceptSuperAdmin() public { require(msg.sender == pendingSuperAdmin && msg.sender != address(0), 'not pendingSuperAdmin'); superAdmin = pendingSuperAdmin; pendingSuperAdmin = address(0); } function getSuperAdminAddressUsed() public view returns (address) { return superAdmin; } function getPendingSuperAdminAddressUsed() public view returns (address) { return pendingSuperAdmin; } function updateCommunityDailyRewardsByYear(uint256 amount) public { require(msg.sender == superAdmin && msg.sender != address(0), 'not superAdmin'); uint256 year = _getYearDayIsIn(_getCurrentDay()); require(year <= MAX_YEARS, 'invalid year'); COMMUNITY_DAILY_REWARDS_BY_YEAR[year] = amount; } function updateStrongPoolDailyRewardsByYear(uint256 amount) public { require(msg.sender == superAdmin && msg.sender != address(0), 'not superAdmin'); uint256 year = _getYearDayIsIn(_getCurrentDay()); require(year <= MAX_YEARS, 'invalid year'); STRONGPOOL_DAILY_REWARDS_BY_YEAR[year] = amount; } // TODO: Double check me function updateVoterDailyRewardsByYear(uint256 amount) public { require(msg.sender == superAdmin && msg.sender != address(0), 'not superAdmin'); uint256 year = _getYearDayIsIn(_getCurrentDay()); require(year <= MAX_YEARS, 'invalid year'); VOTER_DAILY_REWARDS_BY_YEAR[year] = amount; } function upToDate() external view returns (bool) { return dayLastReleasedRewardsFor == _getCurrentDay().sub(1); } function addCommunity(address community) external { require(msg.sender == sbTimelock, 'not sbTimelock'); require(community != address(0), 'community not zero address'); require(!_communityExists(community), 'community exists'); communities.push(community); communityDayStart[community] = _getCurrentDay(); emit CommunityAdded(community); } function getCommunities() external view returns (address[] memory) { return communities; } function getDayMineSecondsUSDTotal(uint256 day) external view returns (uint256) { require(day >= startDay, '1: invalid day'); require(day <= dayLastReleasedRewardsFor, '2: invalid day'); return dayMineSecondsUSDTotal[day]; } function getCommunityDayMineSecondsUSD(address community, uint256 day) external view returns (uint256) { require(_communityExists(community), 'invalid community'); require(day >= communityDayStart[community], '1: invalid day'); require(day <= dayLastReleasedRewardsFor, '2: invalid day'); return communityDayMineSecondsUSD[community][day]; } function getCommunityDayRewards(address community, uint256 day) external view returns (uint256) { require(_communityExists(community), 'invalid community'); require(day >= communityDayStart[community], '1: invalid day'); require(day <= dayLastReleasedRewardsFor, '2: invalid day'); return communityDayRewards[community][day]; } function getCommunityDailyRewards(uint256 day) external view returns (uint256) { require(day >= startDay, 'invalid day'); uint256 year = _getYearDayIsIn(day); require(year <= MAX_YEARS, 'invalid year'); return COMMUNITY_DAILY_REWARDS_BY_YEAR[year]; } function getStrongPoolDailyRewards(uint256 day) external view returns (uint256) { require(day >= startDay, 'invalid day'); uint256 year = _getYearDayIsIn(day); require(year <= MAX_YEARS, 'invalid year'); return STRONGPOOL_DAILY_REWARDS_BY_YEAR[year]; } function getVoterDailyRewards(uint256 day) external view returns (uint256) { require(day >= startDay, 'invalid day'); uint256 year = _getYearDayIsIn(day); require(year <= MAX_YEARS, 'invalid year'); return VOTER_DAILY_REWARDS_BY_YEAR[year]; } function getStartDay() external view returns (uint256) { return startDay; } function communityAccepted(address community) external view returns (bool) { return _communityExists(community); } function getMaxYears() public view returns (uint256) { return MAX_YEARS; } function getCommunityDayStart(address community) public view returns (uint256) { require(_communityExists(community), 'invalid community'); return communityDayStart[community]; } function getSbTimelockAddressUsed() public view returns (address) { return sbTimelock; } function getStrongAddressUsed() public view returns (address) { return address(strongToken); } function getSbTokensAddressUsed() public view returns (address) { return address(sbTokens); } function getSbStrongPoolAddressUsed() public view returns (address) { return address(sbStrongPool); } function getSbVotesAddressUsed() public view returns (address) { return address(sbVotes); } function getCurrentYear() public view returns (uint256) { uint256 day = _getCurrentDay().sub(startDay); return _getYearDayIsIn(day == 0 ? startDay : day); } function getYearDayIsIn(uint256 day) public view returns (uint256) { require(day >= startDay, 'invalid day'); return _getYearDayIsIn(day); } function getCurrentDay() public view returns (uint256) { return _getCurrentDay(); } function getDayLastReleasedRewardsFor() public view returns (uint256) { return dayLastReleasedRewardsFor; } function releaseRewards() public { uint256 currentDay = _getCurrentDay(); require(currentDay > dayLastReleasedRewardsFor.add(1), 'already released'); require(sbTokens.upToDate(), 'need token prices'); dayLastReleasedRewardsFor = dayLastReleasedRewardsFor.add(1); uint256 year = _getYearDayIsIn(dayLastReleasedRewardsFor); require(year <= MAX_YEARS, 'invalid year'); address[] memory tokenAddresses = sbTokens.getTokens(); uint256[] memory tokenPrices = sbTokens.getTokenPrices(dayLastReleasedRewardsFor); for (uint256 i = 0; i < communities.length; i++) { address community = communities[i]; uint256 sum = 0; for (uint256 j = 0; j < tokenAddresses.length; j++) { address token = tokenAddresses[j]; (, , uint256 minedSeconds) = sbCommunityInterface(community).getTokenData(token, dayLastReleasedRewardsFor); uint256 tokenPrice = tokenPrices[j]; uint256 minedSecondsUSD = tokenPrice.mul(minedSeconds).div(1e18); sum = sum.add(minedSecondsUSD); } communityDayMineSecondsUSD[community][dayLastReleasedRewardsFor] = sum; dayMineSecondsUSDTotal[dayLastReleasedRewardsFor] = dayMineSecondsUSDTotal[dayLastReleasedRewardsFor].add(sum); } for (uint256 i = 0; i < communities.length; i++) { address community = communities[i]; if (communityDayMineSecondsUSD[community][dayLastReleasedRewardsFor] == 0) { continue; } communityDayRewards[community][dayLastReleasedRewardsFor] = communityDayMineSecondsUSD[community][dayLastReleasedRewardsFor] .mul(COMMUNITY_DAILY_REWARDS_BY_YEAR[year]) .div(dayMineSecondsUSDTotal[dayLastReleasedRewardsFor]); uint256 amount = communityDayRewards[community][dayLastReleasedRewardsFor]; strongToken.approve(community, amount); sbCommunityInterface(community).receiveRewards(dayLastReleasedRewardsFor, amount); emit RewardsReleased(community, amount, currentDay); } (, , uint256 strongPoolMineSeconds) = sbStrongPool.getMineData(dayLastReleasedRewardsFor); if (strongPoolMineSeconds != 0) { strongToken.approve(address(sbStrongPool), STRONGPOOL_DAILY_REWARDS_BY_YEAR[year]); sbStrongPool.receiveRewards(dayLastReleasedRewardsFor, STRONGPOOL_DAILY_REWARDS_BY_YEAR[year]); emit RewardsReleased(address(sbStrongPool), STRONGPOOL_DAILY_REWARDS_BY_YEAR[year], currentDay); } bool hasVoteSeconds = false; for (uint256 i = 0; i < communities.length; i++) { address community = communities[i]; (, , uint256 voteSeconds) = sbVotes.getCommunityData(community, dayLastReleasedRewardsFor); if (voteSeconds > 0) { hasVoteSeconds = true; break; } } if (hasVoteSeconds) { strongToken.approve(address(sbVotes), VOTER_DAILY_REWARDS_BY_YEAR[year]); sbVotes.receiveVoterRewards(dayLastReleasedRewardsFor, VOTER_DAILY_REWARDS_BY_YEAR[year]); emit RewardsReleased(address(sbVotes), VOTER_DAILY_REWARDS_BY_YEAR[year], currentDay); } } function _getCurrentDay() internal view returns (uint256) { return block.timestamp.div(1 days).add(1); } function _communityExists(address community) internal view returns (bool) { for (uint256 i = 0; i < communities.length; i++) { if (communities[i] == community) { return true; } } return false; } function _getYearDayIsIn(uint256 day) internal view returns (uint256) { return day.sub(startDay).div(366).add(1); // dividing by 366 makes day 1 and 365 be in year 1 } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @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) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @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 sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @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) { // 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 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts 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) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts 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 mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; interface sbCommunityInterface { function getTokenData(address token, uint256 day) external view returns ( uint256, uint256, uint256 ); function receiveRewards(uint256 day, uint256 amount) external; function serviceAccepted(address service) external view returns (bool); function getMinerRewardPercentage() external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; interface sbStrongPoolInterface { function serviceMinMined(address miner) external view returns (bool); function minerMinMined(address miner) external view returns (bool); function mineFor(address miner, uint256 amount) external; function getMineData(uint256 day) external view returns ( uint256, uint256, uint256 ); function receiveRewards(uint256 day, uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; interface sbTokensInterface { function getTokens() external view returns (address[] memory); function getTokenPrices(uint256 day) external view returns (uint256[] memory); function tokenAccepted(address token) external view returns (bool); function upToDate() external view returns (bool); function getTokenPrice(address token, uint256 day) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; interface sbVotesInterface { function getCommunityData(address community, uint256 day) external view returns ( uint256, uint256, uint256 ); function getPriorProposalVotes(address account, uint256 blockNumber) external view returns (uint96); function receiveServiceRewards(uint256 day, uint256 amount) external; function receiveVoterRewards(uint256 day, uint256 amount) external; function updateVotes( address staker, uint256 rawAmount, bool adding ) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"community","type":"address"}],"name":"CommunityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"day","type":"uint256"}],"name":"RewardsReleased","type":"event"},{"inputs":[],"name":"acceptSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"community","type":"address"}],"name":"addCommunity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"community","type":"address"}],"name":"communityAccepted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCommunities","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getCommunityDailyRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"community","type":"address"},{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getCommunityDayMineSecondsUSD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"community","type":"address"},{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getCommunityDayRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"community","type":"address"}],"name":"getCommunityDayStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDayLastReleasedRewardsFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getDayMineSecondsUSDTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxYears","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingSuperAdminAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSbStrongPoolAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSbTimelockAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSbTokensAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSbVotesAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStartDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStrongAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getStrongPoolDailyRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSuperAdminAddressUsed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getVoterDailyRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getYearDayIsIn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingSuperAdmin","type":"address"}],"name":"setPendingSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upToDate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateCommunityDailyRewardsByYear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateStrongPoolDailyRewardsByYear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateVoterDailyRewardsByYear","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50611dc3806100206000396000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c806382730b381161010f578063ba232ecb116100a2578063d39ca7de11610071578063d39ca7de14610384578063e5f97f3714610397578063e7f9cefd146103aa578063ff4dfa51146103b2576101e4565b8063ba232ecb1461034c578063c251b5651461035f578063ce41607a14610374578063d0fab3ca1461037c576101e4565b8063b0ff5263116100de578063b0ff52631461030b578063b43861b114610313578063b80a999514610326578063b9e5d55114610339576101e4565b806382730b38146102d557806390a39a9e146102e8578063957314e2146102fb578063a4bc4d7f14610303576101e4565b8063335479a2116101875780635a5256ef116101565780635a5256ef146102a85780636232db75146102b0578063733fb91f146102c557806378253604146102cd576101e4565b8063335479a21461027d5780633e6968b6146102855780634eac382f1461028d5780635a306be0146102a0576101e4565b80631727a98c116101c35780631727a98c1461023a5780631da20d5e1461025a5780632025dbb7146102625780632a8c09691461026a576101e4565b806248fc20146101e957806302f8cd5e1461021257806304a3379f14610225575b600080fd5b6101fc6101f7366004611957565b6103ba565b6040516102099190611d17565b60405180910390f35b6101fc610220366004611957565b61042d565b61022d610495565b604051610209919061199c565b61024d6102483660046117ce565b6104a4565b6040516102099190611a16565b6101fc6104b5565b61022d6104bb565b6101fc6102783660046117ea565b6104ca565b61022d610574565b6101fc610583565b6101fc61029b3660046117ce565b610592565b61022d6105d5565b61022d6105e4565b6102c36102be3660046117ce565b6105f3565b005b61022d610708565b61024d610717565b6102c36102e3366004611957565b610735565b6101fc6102f63660046117ea565b6107b1565b6102c361085b565b61022d6108ac565b6101fc6108c0565b6102c3610321366004611957565b6108c6565b6101fc610334366004611957565b61093d565b6101fc610347366004611957565b6109a5565b6101fc61035a366004611957565b6109d2565b610367610a2b565b60405161020991906119c9565b6101fc610a8d565b6102c3610abd565b6102c36103923660046117ce565b6114ba565b6102c36103a5366004611957565b611511565b6102c3611588565b6101fc6115e4565b60006005548210156103e75760405162461bcd60e51b81526004016103de90611a74565b60405180910390fd5b60006103f2836115ea565b90506009548111156104165760405162461bcd60e51b81526004016103de90611b5e565b60009081526006602052604090205490505b919050565b60006005548210156104515760405162461bcd60e51b81526004016103de90611a74565b600061045c836115ea565b90506009548111156104805760405162461bcd60e51b81526004016103de90611b5e565b60009081526007602052604090205492915050565b6001546001600160a01b031690565b60006104af82611612565b92915050565b600f5490565b6010546001600160a01b031690565b60006104d583611612565b6104f15760405162461bcd60e51b81526004016103de90611c09565b6001600160a01b0383166000908152600e60205260409020548210156105295760405162461bcd60e51b81526004016103de90611c75565b600f5482111561054b5760405162461bcd60e51b81526004016103de90611b07565b506001600160a01b03919091166000908152600c60209081526040808320938352929052205490565b6011546001600160a01b031690565b600061058d61166d565b905090565b600061059d82611612565b6105b95760405162461bcd60e51b81526004016103de90611c09565b506001600160a01b03166000908152600e602052604090205490565b6002546001600160a01b031690565b6004546001600160a01b031690565b60005461010090046001600160a01b031633146106225760405162461bcd60e51b81526004016103de90611cef565b6001600160a01b0381166106485760405162461bcd60e51b81526004016103de90611ad0565b61065181611612565b1561066e5760405162461bcd60e51b81526004016103de90611cc5565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0383161790556106c161166d565b6001600160a01b0382166000818152600e602052604080822093909355915190917f3df6de6f7acbd50ccf5d3352eaf45f9eaf44b2b259e62a4c04351fdea533287391a250565b6003546001600160a01b031690565b600061072c600161072661166d565b90611681565b600f5414905090565b6010546001600160a01b03163314801561074e57503315155b61076a5760405162461bcd60e51b81526004016103de90611c9d565b600061077c61077761166d565b6115ea565b90506009548111156107a05760405162461bcd60e51b81526004016103de90611b5e565b600090815260066020526040902055565b60006107bc83611612565b6107d85760405162461bcd60e51b81526004016103de90611c09565b6001600160a01b0383166000908152600e60205260409020548210156108105760405162461bcd60e51b81526004016103de90611c75565b600f548211156108325760405162461bcd60e51b81526004016103de90611b07565b506001600160a01b03919091166000908152600d60209081526040808320938352929052205490565b6010546001600160a01b0316156108845760405162461bcd60e51b81526004016103de90611b84565b601080546001600160a01b031916734b5057b2c87ec9e7c047fb00c0e406dff2fdacad179055565b60005461010090046001600160a01b031690565b60095490565b6010546001600160a01b0316331480156108df57503315155b6108fb5760405162461bcd60e51b81526004016103de90611c9d565b600061090861077761166d565b905060095481111561092c5760405162461bcd60e51b81526004016103de90611b5e565b600090815260076020526040902055565b60006005548210156109615760405162461bcd60e51b81526004016103de90611a74565b600061096c836115ea565b90506009548111156109905760405162461bcd60e51b81526004016103de90611b5e565b60009081526008602052604090205492915050565b60006005548210156109c95760405162461bcd60e51b81526004016103de90611a74565b6104af826115ea565b60006005548210156109f65760405162461bcd60e51b81526004016103de90611c75565b600f54821115610a185760405162461bcd60e51b81526004016103de90611b07565b506000908152600b602052604090205490565b6060600a805480602002602001604051908101604052809291908181526020018280548015610a8357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a65575b5050505050905090565b600080610a9e60055461072661166d565b9050610ab78115610aaf5781610777565b6005546115ea565b91505090565b6000610ac761166d565b600f54909150610ad89060016116ca565b8111610af65760405162461bcd60e51b81526004016103de90611bdf565b600260009054906101000a90046001600160a01b03166001600160a01b031663782536046040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4457600080fd5b505afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611937565b610b985760405162461bcd60e51b81526004016103de90611bb4565b600f54610ba69060016116ca565b600f819055600090610bb7906115ea565b9050600954811115610bdb5760405162461bcd60e51b81526004016103de90611b5e565b6002546040805163154d950160e31b815290516060926001600160a01b03169163aa6ca808916004808301926000929190829003018186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c5c9190810190611815565b600254600f546040516329baa97760e01b81529293506060926001600160a01b03909216916329baa97791610c9391600401611d17565b60006040518083038186803b158015610cab57600080fd5b505afa158015610cbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce791908101906118b3565b905060005b600a54811015610e7d576000600a8281548110610d0557fe5b60009182526020822001546001600160a01b03169150805b8551811015610e21576000868281518110610d3457fe5b602002602001015190506000846001600160a01b0316639f292d7683600f546040518363ffffffff1660e01b8152600401610d709291906119b0565b60606040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc0919061196f565b925050506000878481518110610dd257fe5b602002602001015190506000610e03670de0b6b3a7640000610dfd85856116ef90919063ffffffff16565b90611729565b9050610e0f86826116ca565b95505060019093019250610d1d915050565b506001600160a01b0382166000908152600c60209081526040808320600f80548552908352818420859055548352600b909152902054610e6190826116ca565b600f546000908152600b60205260409020555050600101610cec565b5060005b600a54811015611080576000600a8281548110610e9a57fe5b60009182526020808320909101546001600160a01b0316808352600c82526040808420600f548552909252912054909150610ed55750611078565b600f546000818152600b602090815260408083205489845260068352818420546001600160a01b0387168552600c84528285209585529490925290912054610f2192610dfd91906116ef565b6001600160a01b038281166000908152600d60209081526040808320600f8054855292528083209490945554815282902054600154925163095ea7b360e01b815290929091169063095ea7b390610f7e90859085906004016119b0565b602060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd09190611937565b50600f546040516379b6a96d60e11b81526001600160a01b0384169163f36d52da9161100191908590600401611d20565b600060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b5050505086826001600160a01b03167fb10f7181725e149ac50c5c122d6ea02644213c2e7f30f74a44b3fce1fb158ca98360405161106d9190611d17565b60405180910390a350505b600101610e81565b50600354600f5460405163eb87e89b60e01b81526000926001600160a01b03169163eb87e89b916110b49190600401611d17565b60606040518083038186803b1580156110cc57600080fd5b505afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611104919061196f565b9250505080600014611275576001546003546000868152600760205260409081902054905163095ea7b360e01b81526001600160a01b039384169363095ea7b393611154939116916004016119b0565b602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190611937565b50600354600f54600086815260076020526040908190205490516379b6a96d60e11b81526001600160a01b039093169263f36d52da926111ea929091600401611d20565b600060405180830381600087803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b5050600354600087815260076020526040908190205490518994506001600160a01b0390921692507fb10f7181725e149ac50c5c122d6ea02644213c2e7f30f74a44b3fce1fb158ca99161126c9190611d17565b60405180910390a35b6000805b600a54811015611346576000600a828154811061129257fe5b600091825260208220015460048054600f546040516303b5c12760e31b81526001600160a01b0394851696509190931692631dae0938926112d692879291016119b0565b60606040518083038186803b1580156112ee57600080fd5b505afa158015611302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611326919061196f565b9250508115905061133c57600193505050611346565b5050600101611279565b5080156114b257600154600480546000888152600860205260409081902054905163095ea7b360e01b81526001600160a01b039485169463095ea7b394611392949091169291016119b0565b602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e49190611937565b5060048054600f546000888152600860205260409081902054905163242be82160e01b81526001600160a01b039093169363242be8219361142793929101611d20565b600060405180830381600087803b15801561144157600080fd5b505af1158015611455573d6000803e3d6000fd5b5050600454600088815260086020526040908190205490518a94506001600160a01b0390921692507fb10f7181725e149ac50c5c122d6ea02644213c2e7f30f74a44b3fce1fb158ca9916114a99190611d17565b60405180910390a35b505050505050565b6010546001600160a01b0316331480156114d357503315155b6114ef5760405162461bcd60e51b81526004016103de90611c9d565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b03163314801561152a57503315155b6115465760405162461bcd60e51b81526004016103de90611c9d565b600061155361077761166d565b90506009548111156115775760405162461bcd60e51b81526004016103de90611b5e565b600090815260086020526040902055565b6011546001600160a01b0316331480156115a157503315155b6115bd5760405162461bcd60e51b81526004016103de90611b2f565b60118054601080546001600160a01b03199081166001600160a01b03841617909155169055565b60055490565b60006104af600161160c61016e610dfd6005548761168190919063ffffffff16565b906116ca565b6000805b600a5481101561166457826001600160a01b0316600a828154811061163757fe5b6000918252602090912001546001600160a01b0316141561165c576001915050610428565b600101611616565b50600092915050565b600061058d600161160c4262015180611729565b60006116c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061176b565b9392505050565b6000828201838110156116c35760405162461bcd60e51b81526004016103de90611a99565b6000826116fe575060006104af565b8282028284828161170b57fe5b04146116c35760405162461bcd60e51b81526004016103de90611c34565b60006116c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611797565b6000818484111561178f5760405162461bcd60e51b81526004016103de9190611a21565b505050900390565b600081836117b85760405162461bcd60e51b81526004016103de9190611a21565b5060008385816117c457fe5b0495945050505050565b6000602082840312156117df578081fd5b81356116c381611d75565b600080604083850312156117fc578081fd5b823561180781611d75565b946020939093013593505050565b60006020808385031215611827578182fd5b825167ffffffffffffffff81111561183d578283fd5b8301601f8101851361184d578283fd5b805161186061185b82611d55565b611d2e565b818152838101908385018584028501860189101561187c578687fd5b8694505b838510156118a757805161189381611d75565b835260019490940193918501918501611880565b50979650505050505050565b600060208083850312156118c5578182fd5b825167ffffffffffffffff8111156118db578283fd5b8301601f810185136118eb578283fd5b80516118f961185b82611d55565b8181528381019083850185840285018601891015611915578687fd5b8694505b838510156118a7578051835260019490940193918501918501611919565b600060208284031215611948578081fd5b815180151581146116c3578182fd5b600060208284031215611968578081fd5b5035919050565b600080600060608486031215611983578081fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611a0a5783516001600160a01b0316835292840192918401916001016119e5565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611a4d57858101830151858201604001528201611a31565b81811115611a5e5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a696e76616c69642064617960a81b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601a908201527f636f6d6d756e697479206e6f74207a65726f2061646472657373000000000000604082015260600190565b6020808252600e908201526d323a20696e76616c69642064617960901b604082015260600190565b6020808252601590820152743737ba103832b73234b733a9bab832b920b236b4b760591b604082015260600190565b6020808252600c908201526b34b73b30b634b2103cb2b0b960a11b604082015260600190565b6020808252601690820152751cdd5c195c90591b5a5b88185b1c9958591e481cd95d60521b604082015260600190565b6020808252601190820152706e65656420746f6b656e2070726963657360781b604082015260600190565b60208082526010908201526f185b1c9958591e481c995b19585cd95960821b604082015260600190565b602080825260119082015270696e76616c696420636f6d6d756e69747960781b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600e908201526d313a20696e76616c69642064617960901b604082015260600190565b6020808252600e908201526d3737ba1039bab832b920b236b4b760911b604082015260600190565b60208082526010908201526f636f6d6d756e6974792065786973747360801b604082015260600190565b6020808252600e908201526d6e6f7420736254696d656c6f636b60901b604082015260600190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611d4d57600080fd5b604052919050565b600067ffffffffffffffff821115611d6b578081fd5b5060209081020190565b6001600160a01b0381168114611d8a57600080fd5b5056fea2646970667358221220aa1540733ed08e70a5e540c20d3e942b9764c64c9d9a14ebe2cc9f76deb35c9664736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101e45760003560e01c806382730b381161010f578063ba232ecb116100a2578063d39ca7de11610071578063d39ca7de14610384578063e5f97f3714610397578063e7f9cefd146103aa578063ff4dfa51146103b2576101e4565b8063ba232ecb1461034c578063c251b5651461035f578063ce41607a14610374578063d0fab3ca1461037c576101e4565b8063b0ff5263116100de578063b0ff52631461030b578063b43861b114610313578063b80a999514610326578063b9e5d55114610339576101e4565b806382730b38146102d557806390a39a9e146102e8578063957314e2146102fb578063a4bc4d7f14610303576101e4565b8063335479a2116101875780635a5256ef116101565780635a5256ef146102a85780636232db75146102b0578063733fb91f146102c557806378253604146102cd576101e4565b8063335479a21461027d5780633e6968b6146102855780634eac382f1461028d5780635a306be0146102a0576101e4565b80631727a98c116101c35780631727a98c1461023a5780631da20d5e1461025a5780632025dbb7146102625780632a8c09691461026a576101e4565b806248fc20146101e957806302f8cd5e1461021257806304a3379f14610225575b600080fd5b6101fc6101f7366004611957565b6103ba565b6040516102099190611d17565b60405180910390f35b6101fc610220366004611957565b61042d565b61022d610495565b604051610209919061199c565b61024d6102483660046117ce565b6104a4565b6040516102099190611a16565b6101fc6104b5565b61022d6104bb565b6101fc6102783660046117ea565b6104ca565b61022d610574565b6101fc610583565b6101fc61029b3660046117ce565b610592565b61022d6105d5565b61022d6105e4565b6102c36102be3660046117ce565b6105f3565b005b61022d610708565b61024d610717565b6102c36102e3366004611957565b610735565b6101fc6102f63660046117ea565b6107b1565b6102c361085b565b61022d6108ac565b6101fc6108c0565b6102c3610321366004611957565b6108c6565b6101fc610334366004611957565b61093d565b6101fc610347366004611957565b6109a5565b6101fc61035a366004611957565b6109d2565b610367610a2b565b60405161020991906119c9565b6101fc610a8d565b6102c3610abd565b6102c36103923660046117ce565b6114ba565b6102c36103a5366004611957565b611511565b6102c3611588565b6101fc6115e4565b60006005548210156103e75760405162461bcd60e51b81526004016103de90611a74565b60405180910390fd5b60006103f2836115ea565b90506009548111156104165760405162461bcd60e51b81526004016103de90611b5e565b60009081526006602052604090205490505b919050565b60006005548210156104515760405162461bcd60e51b81526004016103de90611a74565b600061045c836115ea565b90506009548111156104805760405162461bcd60e51b81526004016103de90611b5e565b60009081526007602052604090205492915050565b6001546001600160a01b031690565b60006104af82611612565b92915050565b600f5490565b6010546001600160a01b031690565b60006104d583611612565b6104f15760405162461bcd60e51b81526004016103de90611c09565b6001600160a01b0383166000908152600e60205260409020548210156105295760405162461bcd60e51b81526004016103de90611c75565b600f5482111561054b5760405162461bcd60e51b81526004016103de90611b07565b506001600160a01b03919091166000908152600c60209081526040808320938352929052205490565b6011546001600160a01b031690565b600061058d61166d565b905090565b600061059d82611612565b6105b95760405162461bcd60e51b81526004016103de90611c09565b506001600160a01b03166000908152600e602052604090205490565b6002546001600160a01b031690565b6004546001600160a01b031690565b60005461010090046001600160a01b031633146106225760405162461bcd60e51b81526004016103de90611cef565b6001600160a01b0381166106485760405162461bcd60e51b81526004016103de90611ad0565b61065181611612565b1561066e5760405162461bcd60e51b81526004016103de90611cc5565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0383161790556106c161166d565b6001600160a01b0382166000818152600e602052604080822093909355915190917f3df6de6f7acbd50ccf5d3352eaf45f9eaf44b2b259e62a4c04351fdea533287391a250565b6003546001600160a01b031690565b600061072c600161072661166d565b90611681565b600f5414905090565b6010546001600160a01b03163314801561074e57503315155b61076a5760405162461bcd60e51b81526004016103de90611c9d565b600061077c61077761166d565b6115ea565b90506009548111156107a05760405162461bcd60e51b81526004016103de90611b5e565b600090815260066020526040902055565b60006107bc83611612565b6107d85760405162461bcd60e51b81526004016103de90611c09565b6001600160a01b0383166000908152600e60205260409020548210156108105760405162461bcd60e51b81526004016103de90611c75565b600f548211156108325760405162461bcd60e51b81526004016103de90611b07565b506001600160a01b03919091166000908152600d60209081526040808320938352929052205490565b6010546001600160a01b0316156108845760405162461bcd60e51b81526004016103de90611b84565b601080546001600160a01b031916734b5057b2c87ec9e7c047fb00c0e406dff2fdacad179055565b60005461010090046001600160a01b031690565b60095490565b6010546001600160a01b0316331480156108df57503315155b6108fb5760405162461bcd60e51b81526004016103de90611c9d565b600061090861077761166d565b905060095481111561092c5760405162461bcd60e51b81526004016103de90611b5e565b600090815260076020526040902055565b60006005548210156109615760405162461bcd60e51b81526004016103de90611a74565b600061096c836115ea565b90506009548111156109905760405162461bcd60e51b81526004016103de90611b5e565b60009081526008602052604090205492915050565b60006005548210156109c95760405162461bcd60e51b81526004016103de90611a74565b6104af826115ea565b60006005548210156109f65760405162461bcd60e51b81526004016103de90611c75565b600f54821115610a185760405162461bcd60e51b81526004016103de90611b07565b506000908152600b602052604090205490565b6060600a805480602002602001604051908101604052809291908181526020018280548015610a8357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a65575b5050505050905090565b600080610a9e60055461072661166d565b9050610ab78115610aaf5781610777565b6005546115ea565b91505090565b6000610ac761166d565b600f54909150610ad89060016116ca565b8111610af65760405162461bcd60e51b81526004016103de90611bdf565b600260009054906101000a90046001600160a01b03166001600160a01b031663782536046040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4457600080fd5b505afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611937565b610b985760405162461bcd60e51b81526004016103de90611bb4565b600f54610ba69060016116ca565b600f819055600090610bb7906115ea565b9050600954811115610bdb5760405162461bcd60e51b81526004016103de90611b5e565b6002546040805163154d950160e31b815290516060926001600160a01b03169163aa6ca808916004808301926000929190829003018186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c5c9190810190611815565b600254600f546040516329baa97760e01b81529293506060926001600160a01b03909216916329baa97791610c9391600401611d17565b60006040518083038186803b158015610cab57600080fd5b505afa158015610cbf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce791908101906118b3565b905060005b600a54811015610e7d576000600a8281548110610d0557fe5b60009182526020822001546001600160a01b03169150805b8551811015610e21576000868281518110610d3457fe5b602002602001015190506000846001600160a01b0316639f292d7683600f546040518363ffffffff1660e01b8152600401610d709291906119b0565b60606040518083038186803b158015610d8857600080fd5b505afa158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc0919061196f565b925050506000878481518110610dd257fe5b602002602001015190506000610e03670de0b6b3a7640000610dfd85856116ef90919063ffffffff16565b90611729565b9050610e0f86826116ca565b95505060019093019250610d1d915050565b506001600160a01b0382166000908152600c60209081526040808320600f80548552908352818420859055548352600b909152902054610e6190826116ca565b600f546000908152600b60205260409020555050600101610cec565b5060005b600a54811015611080576000600a8281548110610e9a57fe5b60009182526020808320909101546001600160a01b0316808352600c82526040808420600f548552909252912054909150610ed55750611078565b600f546000818152600b602090815260408083205489845260068352818420546001600160a01b0387168552600c84528285209585529490925290912054610f2192610dfd91906116ef565b6001600160a01b038281166000908152600d60209081526040808320600f8054855292528083209490945554815282902054600154925163095ea7b360e01b815290929091169063095ea7b390610f7e90859085906004016119b0565b602060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd09190611937565b50600f546040516379b6a96d60e11b81526001600160a01b0384169163f36d52da9161100191908590600401611d20565b600060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b5050505086826001600160a01b03167fb10f7181725e149ac50c5c122d6ea02644213c2e7f30f74a44b3fce1fb158ca98360405161106d9190611d17565b60405180910390a350505b600101610e81565b50600354600f5460405163eb87e89b60e01b81526000926001600160a01b03169163eb87e89b916110b49190600401611d17565b60606040518083038186803b1580156110cc57600080fd5b505afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611104919061196f565b9250505080600014611275576001546003546000868152600760205260409081902054905163095ea7b360e01b81526001600160a01b039384169363095ea7b393611154939116916004016119b0565b602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190611937565b50600354600f54600086815260076020526040908190205490516379b6a96d60e11b81526001600160a01b039093169263f36d52da926111ea929091600401611d20565b600060405180830381600087803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b5050600354600087815260076020526040908190205490518994506001600160a01b0390921692507fb10f7181725e149ac50c5c122d6ea02644213c2e7f30f74a44b3fce1fb158ca99161126c9190611d17565b60405180910390a35b6000805b600a54811015611346576000600a828154811061129257fe5b600091825260208220015460048054600f546040516303b5c12760e31b81526001600160a01b0394851696509190931692631dae0938926112d692879291016119b0565b60606040518083038186803b1580156112ee57600080fd5b505afa158015611302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611326919061196f565b9250508115905061133c57600193505050611346565b5050600101611279565b5080156114b257600154600480546000888152600860205260409081902054905163095ea7b360e01b81526001600160a01b039485169463095ea7b394611392949091169291016119b0565b602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e49190611937565b5060048054600f546000888152600860205260409081902054905163242be82160e01b81526001600160a01b039093169363242be8219361142793929101611d20565b600060405180830381600087803b15801561144157600080fd5b505af1158015611455573d6000803e3d6000fd5b5050600454600088815260086020526040908190205490518a94506001600160a01b0390921692507fb10f7181725e149ac50c5c122d6ea02644213c2e7f30f74a44b3fce1fb158ca9916114a99190611d17565b60405180910390a35b505050505050565b6010546001600160a01b0316331480156114d357503315155b6114ef5760405162461bcd60e51b81526004016103de90611c9d565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b03163314801561152a57503315155b6115465760405162461bcd60e51b81526004016103de90611c9d565b600061155361077761166d565b90506009548111156115775760405162461bcd60e51b81526004016103de90611b5e565b600090815260086020526040902055565b6011546001600160a01b0316331480156115a157503315155b6115bd5760405162461bcd60e51b81526004016103de90611b2f565b60118054601080546001600160a01b03199081166001600160a01b03841617909155169055565b60055490565b60006104af600161160c61016e610dfd6005548761168190919063ffffffff16565b906116ca565b6000805b600a5481101561166457826001600160a01b0316600a828154811061163757fe5b6000918252602090912001546001600160a01b0316141561165c576001915050610428565b600101611616565b50600092915050565b600061058d600161160c4262015180611729565b60006116c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061176b565b9392505050565b6000828201838110156116c35760405162461bcd60e51b81526004016103de90611a99565b6000826116fe575060006104af565b8282028284828161170b57fe5b04146116c35760405162461bcd60e51b81526004016103de90611c34565b60006116c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611797565b6000818484111561178f5760405162461bcd60e51b81526004016103de9190611a21565b505050900390565b600081836117b85760405162461bcd60e51b81526004016103de9190611a21565b5060008385816117c457fe5b0495945050505050565b6000602082840312156117df578081fd5b81356116c381611d75565b600080604083850312156117fc578081fd5b823561180781611d75565b946020939093013593505050565b60006020808385031215611827578182fd5b825167ffffffffffffffff81111561183d578283fd5b8301601f8101851361184d578283fd5b805161186061185b82611d55565b611d2e565b818152838101908385018584028501860189101561187c578687fd5b8694505b838510156118a757805161189381611d75565b835260019490940193918501918501611880565b50979650505050505050565b600060208083850312156118c5578182fd5b825167ffffffffffffffff8111156118db578283fd5b8301601f810185136118eb578283fd5b80516118f961185b82611d55565b8181528381019083850185840285018601891015611915578687fd5b8694505b838510156118a7578051835260019490940193918501918501611919565b600060208284031215611948578081fd5b815180151581146116c3578182fd5b600060208284031215611968578081fd5b5035919050565b600080600060608486031215611983578081fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611a0a5783516001600160a01b0316835292840192918401916001016119e5565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611a4d57858101830151858201604001528201611a31565b81811115611a5e5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a696e76616c69642064617960a81b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601a908201527f636f6d6d756e697479206e6f74207a65726f2061646472657373000000000000604082015260600190565b6020808252600e908201526d323a20696e76616c69642064617960901b604082015260600190565b6020808252601590820152743737ba103832b73234b733a9bab832b920b236b4b760591b604082015260600190565b6020808252600c908201526b34b73b30b634b2103cb2b0b960a11b604082015260600190565b6020808252601690820152751cdd5c195c90591b5a5b88185b1c9958591e481cd95d60521b604082015260600190565b6020808252601190820152706e65656420746f6b656e2070726963657360781b604082015260600190565b60208082526010908201526f185b1c9958591e481c995b19585cd95960821b604082015260600190565b602080825260119082015270696e76616c696420636f6d6d756e69747960781b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600e908201526d313a20696e76616c69642064617960901b604082015260600190565b6020808252600e908201526d3737ba1039bab832b920b236b4b760911b604082015260600190565b60208082526010908201526f636f6d6d756e6974792065786973747360801b604082015260600190565b6020808252600e908201526d6e6f7420736254696d656c6f636b60901b604082015260600190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611d4d57600080fd5b604052919050565b600067ffffffffffffffff821115611d6b578081fd5b5060209081020190565b6001600160a01b0381168114611d8a57600080fd5b5056fea2646970667358221220aa1540733ed08e70a5e540c20d3e942b9764c64c9d9a14ebe2cc9f76deb35c9664736f6c634300060c0033
Deployed Bytecode Sourcemap
283:10352:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4725:268;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4997:270;;;;;;:::i;:::-;;:::i;6118:100::-;;;:::i;:::-;;;;;;;:::i;5620:120::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6954:113::-;;;:::i;2006:94::-;;;:::i;4013:359::-;;;;;;:::i;:::-;;:::i;2104:108::-;;;:::i;6861:89::-;;;:::i;5828:188::-;;;;;;:::i;:::-;;:::i;6222:99::-;;;:::i;6436:97::-;;;:::i;3302:365::-;;;;;;:::i;:::-;;:::i;:::-;;6325:107;;;:::i;3179:119::-;;;:::i;2216:310::-;;;;;;:::i;:::-;;:::i;4376:345::-;;;;;;:::i;:::-;;:::i;1408:172::-;;;:::i;6020:94::-;;;:::i;5744:80::-;;;:::i;2530:312::-;;;;;;:::i;:::-;;:::i;5271:260::-;;;;;;:::i;:::-;;:::i;6707:150::-;;;;;;:::i;:::-;;:::i;3771:238::-;;;;;;:::i;:::-;;:::i;3671:96::-;;;:::i;:::-;;;;;;;:::i;6537:166::-;;;:::i;7071:3039::-;;;:::i;1584:203::-;;;;;;:::i;:::-;;:::i;2873:302::-;;;;;;:::i;:::-;;:::i;1791:211::-;;;:::i;5535:81::-;;;:::i;4725:268::-;4795:7;4825:8;;4818:3;:15;;4810:39;;;;-1:-1:-1;;;4810:39:3;;;;;;;:::i;:::-;;;;;;;;;4855:12;4870:20;4886:3;4870:15;:20::i;:::-;4855:35;;4912:9;;4904:4;:17;;4896:42;;;;-1:-1:-1;;;4896:42:3;;;;;;;:::i;:::-;4951:37;;;;:31;:37;;;;;;;-1:-1:-1;4725:268:3;;;;:::o;4997:270::-;5068:7;5098:8;;5091:3;:15;;5083:39;;;;-1:-1:-1;;;5083:39:3;;;;;;;:::i;:::-;5128:12;5143:20;5159:3;5143:15;:20::i;:::-;5128:35;;5185:9;;5177:4;:17;;5169:42;;;;-1:-1:-1;;;5169:42:3;;;;;;;:::i;:::-;5224:38;;;;:32;:38;;;;;;;4997:270;-1:-1:-1;;4997:270:3:o;6118:100::-;6201:11;;-1:-1:-1;;;;;6201:11:3;6118:100;:::o;5620:120::-;5689:4;5708:27;5725:9;5708:16;:27::i;:::-;5701:34;5620:120;-1:-1:-1;;5620:120:3:o;6954:113::-;7037:25;;6954:113;:::o;2006:94::-;2085:10;;-1:-1:-1;;;;;2085:10:3;2006:94;:::o;4013:359::-;4107:7;4130:27;4147:9;4130:16;:27::i;:::-;4122:57;;;;-1:-1:-1;;;4122:57:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;4200:28:3;;;;;;:17;:28;;;;;;4193:35;;;4185:62;;;;-1:-1:-1;;;4185:62:3;;;;;;;:::i;:::-;4268:25;;4261:3;:32;;4253:59;;;;-1:-1:-1;;;4253:59:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4325:37:3;;;;;;;;:26;:37;;;;;;;;:42;;;;;;;;;4013:359::o;2104:108::-;2190:17;;-1:-1:-1;;;;;2190:17:3;2104:108;:::o;6861:89::-;6907:7;6929:16;:14;:16::i;:::-;6922:23;;6861:89;:::o;5828:188::-;5898:7;5921:27;5938:9;5921:16;:27::i;:::-;5913:57;;;;-1:-1:-1;;;5913:57:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5983:28:3;;;;;:17;:28;;;;;;;5828:188::o;6222:99::-;6307:8;;-1:-1:-1;;;;;6307:8:3;6222:99;:::o;6436:97::-;6520:7;;-1:-1:-1;;;;;6520:7:3;6436:97;:::o;3302:365::-;3380:10;;;;;-1:-1:-1;;;;;3380:10:3;3366;:24;3358:51;;;;-1:-1:-1;;;3358:51:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;3423:23:3;;3415:62;;;;-1:-1:-1;;;3415:62:3;;;;;;;:::i;:::-;3492:27;3509:9;3492:16;:27::i;:::-;3491:28;3483:57;;;;-1:-1:-1;;;3483:57:3;;;;;;;:::i;:::-;3546:11;:27;;;;;;;-1:-1:-1;3546:27:3;;;;;;;;-1:-1:-1;;;;;;3546:27:3;-1:-1:-1;;;;;3546:27:3;;;;;3610:16;:14;:16::i;:::-;-1:-1:-1;;;;;3579:28:3;;;;;;:17;:28;;;;;;:47;;;;3637:25;;3579:28;;3637:25;;;3302:365;:::o;6325:107::-;6414:12;;-1:-1:-1;;;;;6414:12:3;6325:107;:::o;3179:119::-;3222:4;3270:23;3291:1;3270:16;:14;:16::i;:::-;:20;;:23::i;:::-;3241:25;;:52;3234:59;;3179:119;:::o;2216:310::-;2310:10;;-1:-1:-1;;;;;2310:10:3;2296;:24;:52;;;;-1:-1:-1;2324:10:3;:24;;2296:52;2288:79;;;;-1:-1:-1;;;2288:79:3;;;;;;;:::i;:::-;2373:12;2388:33;2404:16;:14;:16::i;:::-;2388:15;:33::i;:::-;2373:48;;2443:9;;2435:4;:17;;2427:42;;;;-1:-1:-1;;;2427:42:3;;;;;;;:::i;:::-;2475:37;;;;:31;:37;;;;;:46;2216:310::o;4376:345::-;4463:7;4486:27;4503:9;4486:16;:27::i;:::-;4478:57;;;;-1:-1:-1;;;4478:57:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;4556:28:3;;;;;;:17;:28;;;;;;4549:35;;;4541:62;;;;-1:-1:-1;;;4541:62:3;;;;;;;:::i;:::-;4624:25;;4617:3;:32;;4609:59;;;;-1:-1:-1;;;4609:59:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4681:30:3;;;;;;;;:19;:30;;;;;;;;:35;;;;;;;;;4376:345::o;1408:172::-;1454:10;;-1:-1:-1;;;;;1454:10:3;:24;1446:59;;;;-1:-1:-1;;;1446:59:3;;;;;;;:::i;:::-;1511:10;:64;;-1:-1:-1;;;;;;1511:64:3;1532:42;1511:64;;;1408:172::o;6020:94::-;6077:7;6099:10;;;;-1:-1:-1;;;;;6099:10:3;;6020:94::o;5744:80::-;5810:9;;5744:80;:::o;2530:312::-;2625:10;;-1:-1:-1;;;;;2625:10:3;2611;:24;:52;;;;-1:-1:-1;2639:10:3;:24;;2611:52;2603:79;;;;-1:-1:-1;;;2603:79:3;;;;;;;:::i;:::-;2688:12;2703:33;2719:16;:14;:16::i;2703:33::-;2688:48;;2758:9;;2750:4;:17;;2742:42;;;;-1:-1:-1;;;2742:42:3;;;;;;;:::i;:::-;2790:38;;;;:32;:38;;;;;:47;2530:312::o;5271:260::-;5337:7;5367:8;;5360:3;:15;;5352:39;;;;-1:-1:-1;;;5352:39:3;;;;;;;:::i;:::-;5397:12;5412:20;5428:3;5412:15;:20::i;:::-;5397:35;;5454:9;;5446:4;:17;;5438:42;;;;-1:-1:-1;;;5438:42:3;;;;;;;:::i;:::-;5493:33;;;;:27;:33;;;;;;;5271:260;-1:-1:-1;;5271:260:3:o;6707:150::-;6765:7;6795:8;;6788:3;:15;;6780:39;;;;-1:-1:-1;;;6780:39:3;;;;;;;:::i;:::-;6832:20;6848:3;6832:15;:20::i;3771:238::-;3842:7;3872:8;;3865:3;:15;;3857:42;;;;-1:-1:-1;;;3857:42:3;;;;;;;:::i;:::-;3920:25;;3913:3;:32;;3905:59;;;;-1:-1:-1;;;3905:59:3;;;;;;;:::i;:::-;-1:-1:-1;3977:27:3;;;;:22;:27;;;;;;;3771:238::o;3671:96::-;3720:16;3751:11;3744:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3744:18:3;;;;;;;;;;;;;;;;;;;;;;;3671:96;:::o;6537:166::-;6584:7;6599:11;6613:30;6634:8;;6613:16;:14;:16::i;:30::-;6599:44;-1:-1:-1;6656:42:3;6672:8;;:25;;6694:3;6672:25;;;6683:8;;6656:15;:42::i;:::-;6649:49;;;6537:166;:::o;7071:3039::-;7110:18;7131:16;:14;:16::i;:::-;7174:25;;7110:37;;-1:-1:-1;7174:32:3;;7204:1;7174:29;:32::i;:::-;7161:10;:45;7153:74;;;;-1:-1:-1;;;7153:74:3;;;;;;;:::i;:::-;7241:8;;;;;;;;;-1:-1:-1;;;;;7241:8:3;-1:-1:-1;;;;;7241:17:3;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7233:49;;;;-1:-1:-1;;;7233:49:3;;;;;;;:::i;:::-;7316:25;;:32;;7346:1;7316:29;:32::i;:::-;7288:25;:60;;;7354:12;;7369:42;;:15;:42::i;:::-;7354:57;;7433:9;;7425:4;:17;;7417:42;;;;-1:-1:-1;;;7417:42:3;;;;;;;:::i;:::-;7499:8;;:20;;;-1:-1:-1;;;7499:20:3;;;;7465:31;;-1:-1:-1;;;;;7499:8:3;;:18;;:20;;;;;:8;;:20;;;;;;;:8;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7499:20:3;;;;;;;;;;;;:::i;:::-;7556:8;;7580:25;;7556:50;;-1:-1:-1;;;7556:50:3;;7465:54;;-1:-1:-1;7525:28:3;;-1:-1:-1;;;;;7556:8:3;;;;:23;;:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7556:50:3;;;;;;;;;;;;:::i;:::-;7525:81;;7617:9;7612:704;7636:11;:18;7632:22;;7612:704;;;7669:17;7689:11;7701:1;7689:14;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7689:14:3;;-1:-1:-1;7689:14:3;7734:380;7758:14;:21;7754:1;:25;7734:380;;;7796:13;7812:14;7827:1;7812:17;;;;;;;;;;;;;;7796:33;;7844:20;7889:9;-1:-1:-1;;;;;7868:44:3;;7913:5;7920:25;;7868:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7839:107;;;;7956:18;7977:11;7989:1;7977:14;;;;;;;;;;;;;;7956:35;;8001:23;8027:38;8060:4;8027:28;8042:12;8027:10;:14;;:28;;;;:::i;:::-;:32;;:38::i;:::-;8001:64;-1:-1:-1;8081:24:3;:3;8001:64;8081:7;:24::i;:::-;8075:30;-1:-1:-1;;7781:3:3;;;;;-1:-1:-1;7734:380:3;;-1:-1:-1;;7734:380:3;;-1:-1:-1;;;;;;8121:37:3;;;;;;:26;:37;;;;;;;;8159:25;;;8121:64;;;;;;;;:70;;;8274:25;8251:49;;:22;:49;;;;;;:58;;8188:3;8251:53;:58::i;:::-;8222:25;;8199:49;;;;:22;:49;;;;;:110;-1:-1:-1;;7656:3:3;;7612:704;;;;8326:9;8321:732;8345:11;:18;8341:22;;8321:732;;;8378:17;8398:11;8410:1;8398:14;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8398:14:3;8424:37;;;:26;:37;;;;;;8462:25;;8424:64;;;;;;;;8398:14;;-1:-1:-1;8420:102:3;;8505:8;;;8420:102;8742:25;;8719:49;;;;:22;:49;;;;;;;;;8667:37;;;:31;:37;;;;;;-1:-1:-1;;;;;8589:37:3;;;;:26;:37;;;;;:64;;;;;;;;;;;:180;;:116;;:64;:77;:116::i;:180::-;-1:-1:-1;;;;;8529:30:3;;;;;;;:19;:30;;;;;;;;8560:25;;;8529:57;;;;;;;:240;;;;8826:25;8795:57;;;;;;8860:11;;:38;;-1:-1:-1;;;8860:38:3;;8795:57;;8860:11;;;;:19;;:38;;8529:30;;8795:57;;8860:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8953:25:3;;8906:81;;-1:-1:-1;;;8906:81:3;;-1:-1:-1;;;;;8906:46:3;;;;;:81;;8953:25;8980:6;;8906:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9035:10;9016:9;-1:-1:-1;;;;;9000:46:3;;9027:6;9000:46;;;;;;:::i;:::-;;;;;;;;8321:732;;;8365:3;;8321:732;;;-1:-1:-1;9096:12:3;;9121:25;;9096:51;;-1:-1:-1;;;9096:51:3;;9063:29;;-1:-1:-1;;;;;9096:12:3;;:24;;:51;;9121:25;9096:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9058:89;;;;9157:21;9182:1;9157:26;9153:334;;9193:11;;9221:12;;9193:11;9236:38;;;:32;:38;;;;;;;;9193:82;;-1:-1:-1;;;9193:82:3;;-1:-1:-1;;;;;9193:11:3;;;;:19;;:82;;9221:12;;;9193:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9283:12:3;;9311:25;;9283:12;9338:38;;;:32;:38;;;;;;;;9283:94;;-1:-1:-1;;;9283:94:3;;-1:-1:-1;;;;;9283:12:3;;;;:27;;:94;;9311:25;;9283:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9414:12:3;;;9429:38;;;:32;:38;;;;;;;;9390:90;;9469:10;;-1:-1:-1;;;;;;9414:12:3;;;;-1:-1:-1;9390:90:3;;;;9429:38;9390:90;:::i;:::-;;;;;;;;9153:334;9492:19;9530:9;9525:279;9549:11;:18;9545:22;;9525:279;;;9582:17;9602:11;9614:1;9602:14;;;;;;;;;;;;;;;;;9652:7;;;9688:25;;9652:62;;-1:-1:-1;;;9652:62:3;;-1:-1:-1;;;;;9602:14:3;;;;-1:-1:-1;9652:7:3;;;;;:24;;:62;;9602:14;;9688:25;9652:62;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9624:90;-1:-1:-1;;9726:15:3;;;-1:-1:-1;9722:76:3;;9770:4;9753:21;;9784:5;;;;9722:76;-1:-1:-1;;9569:3:3;;9525:279;;;;9813:14;9809:297;;;9837:11;;9865:7;;;9837:11;9875:33;;;:27;:33;;;;;;;;9837:72;;-1:-1:-1;;;9837:72:3;;-1:-1:-1;;;;;9837:11:3;;;;:19;;:72;;9865:7;;;;9875:33;9837:72;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9917:7:3;;;9945:25;;9917:7;9972:33;;;:27;:33;;;;;;;;9917:89;;-1:-1:-1;;;9917:89:3;;-1:-1:-1;;;;;9917:7:3;;;;:27;;:89;;9945:25;9972:33;9917:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10043:7:3;;;10053:33;;;:27;:33;;;;;;;;10019:80;;10088:10;;-1:-1:-1;;;;;;10043:7:3;;;;-1:-1:-1;10019:80:3;;;;10053:33;10019:80;:::i;:::-;;;;;;;;9809:297;7071:3039;;;;;;:::o;1584:203::-;1679:10;;-1:-1:-1;;;;;1679:10:3;1665;:24;:52;;;;-1:-1:-1;1693:10:3;:24;;1665:52;1657:79;;;;-1:-1:-1;;;1657:79:3;;;;;;;:::i;:::-;1742:17;:40;;-1:-1:-1;;;;;;1742:40:3;-1:-1:-1;;;;;1742:40:3;;;;;;;;;;1584:203::o;2873:302::-;2963:10;;-1:-1:-1;;;;;2963:10:3;2949;:24;:52;;;;-1:-1:-1;2977:10:3;:24;;2949:52;2941:79;;;;-1:-1:-1;;;2941:79:3;;;;;;;:::i;:::-;3026:12;3041:33;3057:16;:14;:16::i;3041:33::-;3026:48;;3096:9;;3088:4;:17;;3080:42;;;;-1:-1:-1;;;3080:42:3;;;;;;;:::i;:::-;3128:33;;;;:27;:33;;;;;:42;2873:302::o;1791:211::-;1854:17;;-1:-1:-1;;;;;1854:17:3;1840:10;:31;:59;;;;-1:-1:-1;1875:10:3;:24;;1840:59;1832:93;;;;-1:-1:-1;;;1832:93:3;;;;;;;:::i;:::-;1944:17;;;1931:10;:30;;-1:-1:-1;;;;;;1931:30:3;;;-1:-1:-1;;;;;1944:17:3;;1931:30;;;;1967;;;1791:211::o;5535:81::-;5603:8;;5535:81;:::o;10460:173::-;10521:7;10543:33;10574:1;10543:26;10565:3;10543:17;10551:8;;10543:3;:7;;:17;;;;:::i;:26::-;:30;;:33::i;10228:228::-;10296:4;;10308:126;10332:11;:18;10328:22;;10308:126;;;10387:9;-1:-1:-1;;;;;10369:27:3;:11;10381:1;10369:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10369:14:3;:27;10365:63;;;10415:4;10408:11;;;;;10365:63;10352:3;;10308:126;;;-1:-1:-1;10446:5:3;;10228:228;-1:-1:-1;;10228:228:3:o;10114:110::-;10163:7;10185:34;10217:1;10185:27;:15;10205:6;10185:19;:27::i;1321:134:1:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;1321:134;-1:-1:-1;;;1321:134:1:o;874:176::-;932:7;963:5;;;986:6;;;;978:46;;;;-1:-1:-1;;;978:46:1;;;;;;;:::i;2180:459::-;2238:7;2479:6;2475:45;;-1:-1:-1;2508:1:1;2501:8;;2475:45;2542:5;;;2546:1;2542;:5;:1;2565:5;;;;;:10;2557:56;;;;-1:-1:-1;;;2557:56:1;;;;;;;:::i;3101:130::-;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;1746:187::-;1832:7;1867:12;1859:6;;;;1851:29;;;;-1:-1:-1;;;1851:29:1;;;;;;;;:::i;:::-;-1:-1:-1;;;1902:5:1;;;1746:187::o;3713:272::-;3799:7;3833:12;3826:5;3818:28;;;;-1:-1:-1;;;3818:28:1;;;;;;;;:::i;:::-;;3856:9;3872:1;3868;:5;;;;;;;3713:272;-1:-1:-1;;;;;3713:272:1:o;2192:241:-1:-;;2296:2;2284:9;2275:7;2271:23;2267:32;2264:2;;;-1:-1;;2302:12;2264:2;85:6;72:20;97:33;124:5;97:33;:::i;2440:366::-;;;2561:2;2549:9;2540:7;2536:23;2532:32;2529:2;;;-1:-1;;2567:12;2529:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2619:63;2719:2;2758:22;;;;1981:20;;-1:-1;;;2523:283::o;2813:392::-;;2953:2;;2941:9;2932:7;2928:23;2924:32;2921:2;;;-1:-1;;2959:12;2921:2;3010:17;3004:24;3048:18;3040:6;3037:30;3034:2;;;-1:-1;;3070:12;3034:2;3157:22;;422:4;410:17;;406:27;-1:-1;396:2;;-1:-1;;437:12;396:2;477:6;471:13;499:80;514:64;571:6;514:64;:::i;:::-;499:80;:::i;:::-;607:21;;;664:14;;;;639:17;;;753;;;744:27;;;;741:36;-1:-1;738:2;;;-1:-1;;780:12;738:2;-1:-1;806:10;;800:217;825:6;822:1;819:13;800:217;;;226:6;220:13;238:33;265:5;238:33;:::i;:::-;893:61;;847:1;840:9;;;;;968:14;;;;996;;800:217;;;-1:-1;3090:99;2915:290;-1:-1;;;;;;;2915:290::o;3212:392::-;;3352:2;;3340:9;3331:7;3327:23;3323:32;3320:2;;;-1:-1;;3358:12;3320:2;3409:17;3403:24;3447:18;3439:6;3436:30;3433:2;;;-1:-1;;3469:12;3433:2;3556:22;;1170:4;1158:17;;1154:27;-1:-1;1144:2;;-1:-1;;1185:12;1144:2;1225:6;1219:13;1247:80;1262:64;1319:6;1262:64;:::i;1247:80::-;1355:21;;;1412:14;;;;1387:17;;;1501;;;1492:27;;;;1489:36;-1:-1;1486:2;;;-1:-1;;1528:12;1486:2;-1:-1;1554:10;;1548:217;1573:6;1570:1;1567:13;1548:217;;;2129:13;;1641:61;;1595:1;1588:9;;;;;1716:14;;;;1744;;1548:217;;3611:257;;3723:2;3711:9;3702:7;3698:23;3694:32;3691:2;;;-1:-1;;3729:12;3691:2;1860:6;1854:13;22505:5;21685:13;21678:21;22483:5;22480:32;22470:2;;-1:-1;;22516:12;3875:241;;3979:2;3967:9;3958:7;3954:23;3950:32;3947:2;;;-1:-1;;3985:12;3947:2;-1:-1;1981:20;;3941:175;-1:-1;3941:175::o;4123:535::-;;;;4272:2;4260:9;4251:7;4247:23;4243:32;4240:2;;;-1:-1;;4278:12;4240:2;2135:6;2129:13;4330:74;;4441:2;4495:9;4491:22;2129:13;4449:74;;4560:2;4614:9;4610:22;2129:13;4568:74;;4234:424;;;;;:::o;11337:222::-;-1:-1;;;;;21773:54;;;;4908:37;;11464:2;11449:18;;11435:124::o;11566:333::-;-1:-1;;;;;21773:54;;;;4908:37;;11885:2;11870:18;;11288:37;11721:2;11706:18;;11692:207::o;11906:370::-;12083:2;12097:47;;;20877:12;;12068:18;;;21281:19;;;11906:370;;12083:2;20731:14;;;;21321;;;;11906:370;5516:260;5541:6;5538:1;5535:13;5516:260;;;5602:13;;-1:-1;;;;;21773:54;4908:37;;21136:14;;;;4819;;;;3048:18;5556:9;5516:260;;;-1:-1;12150:116;;12054:222;-1:-1;;;;;;12054:222::o;12283:210::-;21685:13;;21678:21;5871:34;;12404:2;12389:18;;12375:118::o;12500:310::-;;12647:2;;12668:17;12661:47;6062:5;20877:12;21293:6;12647:2;12636:9;12632:18;21281:19;-1:-1;21991:101;22005:6;22002:1;21999:13;21991:101;;;22072:11;;;;;22066:18;22053:11;;;21321:14;22053:11;22046:39;22020:10;;21991:101;;;22107:6;22104:1;22101:13;22098:2;;;-1:-1;21321:14;22163:6;12636:9;22154:16;;22147:27;22098:2;-1:-1;22279:7;22263:14;-1:-1;;22259:28;6220:39;;;;21321:14;6220:39;;12618:192;-1:-1;;;12618:192::o;12817:416::-;13017:2;13031:47;;;6496:2;13002:18;;;21281:19;-1:-1;;;21321:14;;;6512:34;6565:12;;;12988:245::o;13240:416::-;13440:2;13454:47;;;6816:2;13425:18;;;21281:19;6852:29;21321:14;;;6832:50;6901:12;;;13411:245::o;13663:416::-;13863:2;13877:47;;;7152:2;13848:18;;;21281:19;7188:28;21321:14;;;7168:49;7236:12;;;13834:245::o;14086:416::-;14286:2;14300:47;;;7487:2;14271:18;;;21281:19;-1:-1;;;21321:14;;;7503:37;7559:12;;;14257:245::o;14509:416::-;14709:2;14723:47;;;7810:2;14694:18;;;21281:19;-1:-1;;;21321:14;;;7826:44;7889:12;;;14680:245::o;14932:416::-;15132:2;15146:47;;;8140:2;15117:18;;;21281:19;-1:-1;;;21321:14;;;8156:35;8210:12;;;15103:245::o;15355:416::-;15555:2;15569:47;;;8461:2;15540:18;;;21281:19;-1:-1;;;21321:14;;;8477:45;8541:12;;;15526:245::o;15778:416::-;15978:2;15992:47;;;8792:2;15963:18;;;21281:19;-1:-1;;;21321:14;;;8808:40;8867:12;;;15949:245::o;16201:416::-;16401:2;16415:47;;;9118:2;16386:18;;;21281:19;-1:-1;;;21321:14;;;9134:39;9192:12;;;16372:245::o;16624:416::-;16824:2;16838:47;;;9443:2;16809:18;;;21281:19;-1:-1;;;21321:14;;;9459:40;9518:12;;;16795:245::o;17047:416::-;17247:2;17261:47;;;9769:2;17232:18;;;21281:19;9805:34;21321:14;;;9785:55;-1:-1;;;9860:12;;;9853:25;9897:12;;;17218:245::o;17470:416::-;17670:2;17684:47;;;10148:2;17655:18;;;21281:19;-1:-1;;;21321:14;;;10164:37;10220:12;;;17641:245::o;17893:416::-;18093:2;18107:47;;;10471:2;18078:18;;;21281:19;-1:-1;;;21321:14;;;10487:37;10543:12;;;18064:245::o;18316:416::-;18516:2;18530:47;;;10794:2;18501:18;;;21281:19;-1:-1;;;21321:14;;;10810:39;10868:12;;;18487:245::o;18739:416::-;18939:2;18953:47;;;11119:2;18924:18;;;21281:19;-1:-1;;;21321:14;;;11135:37;11191:12;;;18910:245::o;19162:222::-;11288:37;;;19289:2;19274:18;;19260:124::o;19391:333::-;11288:37;;;19710:2;19695:18;;11288:37;19546:2;19531:18;;19517:207::o;19731:256::-;19793:2;19787:9;19819:17;;;19894:18;19879:34;;19915:22;;;19876:62;19873:2;;;19951:1;;19941:12;19873:2;19793;19960:22;19771:216;;-1:-1;19771:216::o;19994:304::-;;20153:18;20145:6;20142:30;20139:2;;;-1:-1;;20175:12;20139:2;-1:-1;20220:4;20208:17;;;20273:15;;20076:222::o;22300:117::-;-1:-1;;;;;21773:54;;22359:35;;22349:2;;22408:1;;22398:12;22349:2;22343:74;:::o
Swarm Source
ipfs://aa1540733ed08e70a5e540c20d3e942b9764c64c9d9a14ebe2cc9f76deb35c96
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.