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 | 11069957 | 1500 days ago | IN | 0 ETH | 0.06143228 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
sbControllerV3
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 sbControllerV3 { 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 removeTokens(address account, uint256 amount) public { require(msg.sender == superAdmin, "not superAdmin"); strongToken.transfer(account, amount); } 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; } 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 pure returns (bool) { return true; // 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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingSuperAdmin","type":"address"}],"name":"setPendingSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upToDate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","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
608060405234801561001057600080fd5b50611021806100206000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80637825360411610104578063b9e5d551116100a2578063d39ca7de11610071578063d39ca7de1461037c578063e5f97f371461038f578063e7f9cefd146103a2578063ff4dfa51146103aa576101d9565b8063b9e5d55114610339578063ba232ecb1461034c578063c251b5651461035f578063ce41607a14610374576101d9565b8063a4bc4d7f116100de578063a4bc4d7f14610303578063b0ff52631461030b578063b43861b114610313578063b80a999514610326576101d9565b806378253604146102d557806382730b38146102dd57806390a39a9e146102f0576101d9565b80632a8c09691161017c5780635a306be01161014b5780635a306be0146102aa5780635a5256ef146102b25780636232db75146102ba578063733fb91f146102cd576101d9565b80632a8c096914610274578063335479a2146102875780633e6968b61461028f5780634eac382f14610297576101d9565b80631727a98c116101b85780631727a98c1461022f5780631da20d5e1461024f5780631e10eeaf146102575780632025dbb71461026c576101d9565b806248fc20146101de57806302f8cd5e1461020757806304a3379f1461021a575b600080fd5b6101f16101ec366004610d65565b6103b2565b6040516101fe9190610fe2565b60405180910390f35b6101f1610215366004610d65565b610425565b61022261048d565b6040516101fe9190610d7d565b61024261023d366004610d00565b61049c565b6040516101fe9190610df7565b6101f16104ad565b61026a610265366004610d1b565b6104b3565b005b610222610566565b6101f1610282366004610d1b565b610575565b6102226105c5565b6101f16105d4565b6101f16102a5366004610d00565b6105e3565b610222610626565b610222610635565b61026a6102c8366004610d00565b610644565b610222610759565b610242610768565b61026a6102eb366004610d65565b61076d565b6101f16102fe366004610d1b565b6107e9565b610222610839565b6101f161084d565b61026a610321366004610d65565b610853565b6101f1610334366004610d65565b6108ca565b6101f1610347366004610d65565b610932565b6101f161035a366004610d65565b61095f565b610367610971565b6040516101fe9190610daa565b6101f16109d3565b61026a61038a366004610d00565b610a09565b61026a61039d366004610d65565b610a60565b61026a610ad7565b6101f1610b33565b60006005548210156103df5760405162461bcd60e51b81526004016103d690610e55565b60405180910390fd5b60006103ea83610b39565b905060095481111561040e5760405162461bcd60e51b81526004016103d690610f17565b60009081526006602052604090205490505b919050565b60006005548210156104495760405162461bcd60e51b81526004016103d690610e55565b600061045483610b39565b90506009548111156104785760405162461bcd60e51b81526004016103d690610f17565b60009081526007602052604090205492915050565b6001546001600160a01b031690565b60006104a782610b67565b92915050565b600f5490565b6010546001600160a01b031633146104dd5760405162461bcd60e51b81526004016103d690610f68565b60015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061050f9085908590600401610d91565b602060405180830381600087803b15801561052957600080fd5b505af115801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190610d45565b505050565b6010546001600160a01b031690565b600061058083610b67565b61059c5760405162461bcd60e51b81526004016103d690610f3d565b506001600160a01b03919091166000908152600c60209081526040808320938352929052205490565b6011546001600160a01b031690565b60006105de610bc2565b905090565b60006105ee82610b67565b61060a5760405162461bcd60e51b81526004016103d690610f3d565b506001600160a01b03166000908152600e602052604090205490565b6002546001600160a01b031690565b6004546001600160a01b031690565b60005461010090046001600160a01b031633146106735760405162461bcd60e51b81526004016103d690610fba565b6001600160a01b0381166106995760405162461bcd60e51b81526004016103d690610eb1565b6106a281610b67565b156106bf5760405162461bcd60e51b81526004016103d690610f90565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038316179055610712610bc2565b6001600160a01b0382166000818152600e602052604080822093909355915190917f3df6de6f7acbd50ccf5d3352eaf45f9eaf44b2b259e62a4c04351fdea533287391a250565b6003546001600160a01b031690565b600190565b6010546001600160a01b03163314801561078657503315155b6107a25760405162461bcd60e51b81526004016103d690610f68565b60006107b46107af610bc2565b610b39565b90506009548111156107d85760405162461bcd60e51b81526004016103d690610f17565b600090815260066020526040902055565b60006107f483610b67565b6108105760405162461bcd60e51b81526004016103d690610f3d565b506001600160a01b03919091166000908152600d60209081526040808320938352929052205490565b60005461010090046001600160a01b031690565b60095490565b6010546001600160a01b03163314801561086c57503315155b6108885760405162461bcd60e51b81526004016103d690610f68565b60006108956107af610bc2565b90506009548111156108b95760405162461bcd60e51b81526004016103d690610f17565b600090815260076020526040902055565b60006005548210156108ee5760405162461bcd60e51b81526004016103d690610e55565b60006108f983610b39565b905060095481111561091d5760405162461bcd60e51b81526004016103d690610f17565b60009081526008602052604090205492915050565b60006005548210156109565760405162461bcd60e51b81526004016103d690610e55565b6104a782610b39565b6000908152600b602052604090205490565b6060600a8054806020026020016040519081016040528092919081815260200182805480156109c957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109ab575b5050505050905090565b6000806109ea6005546109e4610bc2565b90610bd6565b9050610a0381156109fb57816107af565b600554610b39565b91505090565b6010546001600160a01b031633148015610a2257503315155b610a3e5760405162461bcd60e51b81526004016103d690610f68565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031633148015610a7957503315155b610a955760405162461bcd60e51b81526004016103d690610f68565b6000610aa26107af610bc2565b9050600954811115610ac65760405162461bcd60e51b81526004016103d690610f17565b600090815260086020526040902055565b6011546001600160a01b031633148015610af057503315155b610b0c5760405162461bcd60e51b81526004016103d690610ee8565b60118054601080546001600160a01b03199081166001600160a01b03841617909155169055565b60055490565b60006104a76001610b6161016e610b5b60055487610bd690919063ffffffff16565b90610c1f565b90610c61565b6000805b600a54811015610bb957826001600160a01b0316600a8281548110610b8c57fe5b6000918252602090912001546001600160a01b03161415610bb1576001915050610420565b600101610b6b565b50600092915050565b60006105de6001610b614262015180610c1f565b6000610c1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c86565b9392505050565b6000610c1883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cb2565b600082820183811015610c185760405162461bcd60e51b81526004016103d690610e7a565b60008184841115610caa5760405162461bcd60e51b81526004016103d69190610e02565b505050900390565b60008183610cd35760405162461bcd60e51b81526004016103d69190610e02565b506000838581610cdf57fe5b0495945050505050565b80356001600160a01b03811681146104a757600080fd5b600060208284031215610d11578081fd5b610c188383610ce9565b60008060408385031215610d2d578081fd5b610d378484610ce9565b946020939093013593505050565b600060208284031215610d56578081fd5b81518015158114610c18578182fd5b600060208284031215610d76578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015610deb5783516001600160a01b031683529284019291840191600101610dc6565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015610e2e57858101830151858201604001528201610e12565b81811115610e3f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a696e76616c69642064617960a81b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601a908201527f636f6d6d756e697479206e6f74207a65726f2061646472657373000000000000604082015260600190565b6020808252601590820152743737ba103832b73234b733a9bab832b920b236b4b760591b604082015260600190565b6020808252600c908201526b34b73b30b634b2103cb2b0b960a11b604082015260600190565b602080825260119082015270696e76616c696420636f6d6d756e69747960781b604082015260600190565b6020808252600e908201526d3737ba1039bab832b920b236b4b760911b604082015260600190565b60208082526010908201526f636f6d6d756e6974792065786973747360801b604082015260600190565b6020808252600e908201526d6e6f7420736254696d656c6f636b60901b604082015260600190565b9081526020019056fea264697066735822122010a0a4a1748af3bfcf450bc9867e242e80e615af9e09b93d18ec238ed2ab3f2f64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101d95760003560e01c80637825360411610104578063b9e5d551116100a2578063d39ca7de11610071578063d39ca7de1461037c578063e5f97f371461038f578063e7f9cefd146103a2578063ff4dfa51146103aa576101d9565b8063b9e5d55114610339578063ba232ecb1461034c578063c251b5651461035f578063ce41607a14610374576101d9565b8063a4bc4d7f116100de578063a4bc4d7f14610303578063b0ff52631461030b578063b43861b114610313578063b80a999514610326576101d9565b806378253604146102d557806382730b38146102dd57806390a39a9e146102f0576101d9565b80632a8c09691161017c5780635a306be01161014b5780635a306be0146102aa5780635a5256ef146102b25780636232db75146102ba578063733fb91f146102cd576101d9565b80632a8c096914610274578063335479a2146102875780633e6968b61461028f5780634eac382f14610297576101d9565b80631727a98c116101b85780631727a98c1461022f5780631da20d5e1461024f5780631e10eeaf146102575780632025dbb71461026c576101d9565b806248fc20146101de57806302f8cd5e1461020757806304a3379f1461021a575b600080fd5b6101f16101ec366004610d65565b6103b2565b6040516101fe9190610fe2565b60405180910390f35b6101f1610215366004610d65565b610425565b61022261048d565b6040516101fe9190610d7d565b61024261023d366004610d00565b61049c565b6040516101fe9190610df7565b6101f16104ad565b61026a610265366004610d1b565b6104b3565b005b610222610566565b6101f1610282366004610d1b565b610575565b6102226105c5565b6101f16105d4565b6101f16102a5366004610d00565b6105e3565b610222610626565b610222610635565b61026a6102c8366004610d00565b610644565b610222610759565b610242610768565b61026a6102eb366004610d65565b61076d565b6101f16102fe366004610d1b565b6107e9565b610222610839565b6101f161084d565b61026a610321366004610d65565b610853565b6101f1610334366004610d65565b6108ca565b6101f1610347366004610d65565b610932565b6101f161035a366004610d65565b61095f565b610367610971565b6040516101fe9190610daa565b6101f16109d3565b61026a61038a366004610d00565b610a09565b61026a61039d366004610d65565b610a60565b61026a610ad7565b6101f1610b33565b60006005548210156103df5760405162461bcd60e51b81526004016103d690610e55565b60405180910390fd5b60006103ea83610b39565b905060095481111561040e5760405162461bcd60e51b81526004016103d690610f17565b60009081526006602052604090205490505b919050565b60006005548210156104495760405162461bcd60e51b81526004016103d690610e55565b600061045483610b39565b90506009548111156104785760405162461bcd60e51b81526004016103d690610f17565b60009081526007602052604090205492915050565b6001546001600160a01b031690565b60006104a782610b67565b92915050565b600f5490565b6010546001600160a01b031633146104dd5760405162461bcd60e51b81526004016103d690610f68565b60015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061050f9085908590600401610d91565b602060405180830381600087803b15801561052957600080fd5b505af115801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190610d45565b505050565b6010546001600160a01b031690565b600061058083610b67565b61059c5760405162461bcd60e51b81526004016103d690610f3d565b506001600160a01b03919091166000908152600c60209081526040808320938352929052205490565b6011546001600160a01b031690565b60006105de610bc2565b905090565b60006105ee82610b67565b61060a5760405162461bcd60e51b81526004016103d690610f3d565b506001600160a01b03166000908152600e602052604090205490565b6002546001600160a01b031690565b6004546001600160a01b031690565b60005461010090046001600160a01b031633146106735760405162461bcd60e51b81526004016103d690610fba565b6001600160a01b0381166106995760405162461bcd60e51b81526004016103d690610eb1565b6106a281610b67565b156106bf5760405162461bcd60e51b81526004016103d690610f90565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038316179055610712610bc2565b6001600160a01b0382166000818152600e602052604080822093909355915190917f3df6de6f7acbd50ccf5d3352eaf45f9eaf44b2b259e62a4c04351fdea533287391a250565b6003546001600160a01b031690565b600190565b6010546001600160a01b03163314801561078657503315155b6107a25760405162461bcd60e51b81526004016103d690610f68565b60006107b46107af610bc2565b610b39565b90506009548111156107d85760405162461bcd60e51b81526004016103d690610f17565b600090815260066020526040902055565b60006107f483610b67565b6108105760405162461bcd60e51b81526004016103d690610f3d565b506001600160a01b03919091166000908152600d60209081526040808320938352929052205490565b60005461010090046001600160a01b031690565b60095490565b6010546001600160a01b03163314801561086c57503315155b6108885760405162461bcd60e51b81526004016103d690610f68565b60006108956107af610bc2565b90506009548111156108b95760405162461bcd60e51b81526004016103d690610f17565b600090815260076020526040902055565b60006005548210156108ee5760405162461bcd60e51b81526004016103d690610e55565b60006108f983610b39565b905060095481111561091d5760405162461bcd60e51b81526004016103d690610f17565b60009081526008602052604090205492915050565b60006005548210156109565760405162461bcd60e51b81526004016103d690610e55565b6104a782610b39565b6000908152600b602052604090205490565b6060600a8054806020026020016040519081016040528092919081815260200182805480156109c957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109ab575b5050505050905090565b6000806109ea6005546109e4610bc2565b90610bd6565b9050610a0381156109fb57816107af565b600554610b39565b91505090565b6010546001600160a01b031633148015610a2257503315155b610a3e5760405162461bcd60e51b81526004016103d690610f68565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031633148015610a7957503315155b610a955760405162461bcd60e51b81526004016103d690610f68565b6000610aa26107af610bc2565b9050600954811115610ac65760405162461bcd60e51b81526004016103d690610f17565b600090815260086020526040902055565b6011546001600160a01b031633148015610af057503315155b610b0c5760405162461bcd60e51b81526004016103d690610ee8565b60118054601080546001600160a01b03199081166001600160a01b03841617909155169055565b60055490565b60006104a76001610b6161016e610b5b60055487610bd690919063ffffffff16565b90610c1f565b90610c61565b6000805b600a54811015610bb957826001600160a01b0316600a8281548110610b8c57fe5b6000918252602090912001546001600160a01b03161415610bb1576001915050610420565b600101610b6b565b50600092915050565b60006105de6001610b614262015180610c1f565b6000610c1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c86565b9392505050565b6000610c1883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cb2565b600082820183811015610c185760405162461bcd60e51b81526004016103d690610e7a565b60008184841115610caa5760405162461bcd60e51b81526004016103d69190610e02565b505050900390565b60008183610cd35760405162461bcd60e51b81526004016103d69190610e02565b506000838581610cdf57fe5b0495945050505050565b80356001600160a01b03811681146104a757600080fd5b600060208284031215610d11578081fd5b610c188383610ce9565b60008060408385031215610d2d578081fd5b610d378484610ce9565b946020939093013593505050565b600060208284031215610d56578081fd5b81518015158114610c18578182fd5b600060208284031215610d76578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015610deb5783516001600160a01b031683529284019291840191600101610dc6565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015610e2e57858101830151858201604001528201610e12565b81811115610e3f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a696e76616c69642064617960a81b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601a908201527f636f6d6d756e697479206e6f74207a65726f2061646472657373000000000000604082015260600190565b6020808252601590820152743737ba103832b73234b733a9bab832b920b236b4b760591b604082015260600190565b6020808252600c908201526b34b73b30b634b2103cb2b0b960a11b604082015260600190565b602080825260119082015270696e76616c696420636f6d6d756e69747960781b604082015260600190565b6020808252600e908201526d3737ba1039bab832b920b236b4b760911b604082015260600190565b60208082526010908201526f636f6d6d756e6974792065786973747360801b604082015260600190565b6020808252600e908201526d6e6f7420736254696d656c6f636b60901b604082015260600190565b9081526020019056fea264697066735822122010a0a4a1748af3bfcf450bc9867e242e80e615af9e09b93d18ec238ed2ab3f2f64736f6c634300060c0033
Deployed Bytecode Sourcemap
283:11406:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5297:314;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5617:316;;;;;;:::i;:::-;;:::i;6878:106::-;;;:::i;:::-;;;;;;;:::i;6316:126::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7778:119::-;;;:::i;1500:177::-;;;;;;:::i;:::-;;:::i;:::-;;2201:100;;;:::i;4477:411::-;;;;;;:::i;:::-;;:::i;2307:114::-;;;:::i;7677:95::-;;;:::i;6540:226::-;;;;;;:::i;:::-;;:::i;6990:105::-;;;:::i;7220:103::-;;;:::i;3680:391::-;;;;;;:::i;:::-;;:::i;7101:113::-;;;:::i;3525:149::-;;;:::i;2427:362::-;;;;;;:::i;:::-;;:::i;4894:397::-;;;;;;:::i;:::-;;:::i;6772:100::-;;;:::i;6448:86::-;;;:::i;2795:364::-;;;;;;:::i;:::-;;:::i;5939:278::-;;;;;;:::i;:::-;;:::i;7511:160::-;;;;;;:::i;:::-;;:::i;4185:286::-;;;;;;:::i;:::-;;:::i;4077:102::-;;;:::i;:::-;;;;;;;:::i;7329:176::-;;;:::i;1683:247::-;;;;;;:::i;:::-;;:::i;3165:354::-;;;;;;:::i;:::-;;:::i;1936:259::-;;;:::i;6223:87::-;;;:::i;5297:314::-;5391:7;5429:8;;5422:3;:15;;5414:39;;;;-1:-1:-1;;;5414:39:3;;;;;;;:::i;:::-;;;;;;;;;5463:12;5478:20;5494:3;5478:15;:20::i;:::-;5463:35;;5524:9;;5516:4;:17;;5508:42;;;;-1:-1:-1;;;5508:42:3;;;;;;;:::i;:::-;5567:37;;;;:31;:37;;;;;;;-1:-1:-1;5297:314:3;;;;:::o;5617:316::-;5712:7;5750:8;;5743:3;:15;;5735:39;;;;-1:-1:-1;;;5735:39:3;;;;;;;:::i;:::-;5784:12;5799:20;5815:3;5799:15;:20::i;:::-;5784:35;;5845:9;;5837:4;:17;;5829:42;;;;-1:-1:-1;;;5829:42:3;;;;;;;:::i;:::-;5888:38;;;;:32;:38;;;;;;;5617:316;-1:-1:-1;;5617:316:3:o;6878:106::-;6965:11;;-1:-1:-1;;;;;6965:11:3;6878:106;:::o;6316:126::-;6385:4;6408:27;6425:9;6408:16;:27::i;:::-;6401:34;6316:126;-1:-1:-1;;6316:126:3:o;7778:119::-;7865:25;;7778:119;:::o;1500:177::-;1594:10;;-1:-1:-1;;;;;1594:10:3;1580;:24;1572:51;;;;-1:-1:-1;;;1572:51:3;;;;;;;:::i;:::-;1633:11;;:37;;-1:-1:-1;;;1633:37:3;;-1:-1:-1;;;;;1633:11:3;;;;:20;;:37;;1654:7;;1663:6;;1633:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1500:177;;:::o;2201:100::-;2284:10;;-1:-1:-1;;;;;2284:10:3;2201:100;:::o;4477:411::-;4595:7;4626:27;4643:9;4626:16;:27::i;:::-;4618:57;;;;-1:-1:-1;;;4618:57:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4839:37:3;;;;;;;;:26;:37;;;;;;;;:42;;;;;;;;;4477:411::o;2307:114::-;2397:17;;-1:-1:-1;;;;;2397:17:3;2307:114;:::o;7677:95::-;7723:7;7749:16;:14;:16::i;:::-;7742:23;;7677:95;:::o;6540:226::-;6634:7;6665:27;6682:9;6665:16;:27::i;:::-;6657:57;;;;-1:-1:-1;;;6657:57:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6731:28:3;;;;;:17;:28;;;;;;;6540:226::o;6990:105::-;7079:8;;-1:-1:-1;;;;;7079:8:3;6990:105;:::o;7220:103::-;7308:7;;-1:-1:-1;;;;;7308:7:3;7220:103;:::o;3680:391::-;3762:10;;;;;-1:-1:-1;;;;;3762:10:3;3748;:24;3740:51;;;;-1:-1:-1;;;3740:51:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;3809:23:3;;3801:62;;;;-1:-1:-1;;;3801:62:3;;;;;;;:::i;:::-;3882:27;3899:9;3882:16;:27::i;:::-;3881:28;3873:57;;;;-1:-1:-1;;;3873:57:3;;;;;;;:::i;:::-;3940:11;:27;;;;;;;-1:-1:-1;3940:27:3;;;;;;;;-1:-1:-1;;;;;;3940:27:3;-1:-1:-1;;;;;3940:27:3;;;;;4008:16;:14;:16::i;:::-;-1:-1:-1;;;;;3977:28:3;;;;;;:17;:28;;;;;;:47;;;;4039:25;;3977:28;;4039:25;;;3680:391;:::o;7101:113::-;7194:12;;-1:-1:-1;;;;;7194:12:3;7101:113;:::o;3525:149::-;3591:4;3525:149;:::o;2427:362::-;2538:10;;-1:-1:-1;;;;;2538:10:3;2524;:24;:52;;;;-1:-1:-1;2552:10:3;:24;;2524:52;2503:113;;;;-1:-1:-1;;;2503:113:3;;;;;;;:::i;:::-;2626:12;2641:33;2657:16;:14;:16::i;:::-;2641:15;:33::i;:::-;2626:48;;2700:9;;2692:4;:17;;2684:42;;;;-1:-1:-1;;;2684:42:3;;;;;;;:::i;:::-;2736:37;;;;:31;:37;;;;;:46;2427:362::o;4894:397::-;5005:7;5036:27;5053:9;5036:16;:27::i;:::-;5028:57;;;;-1:-1:-1;;;5028:57:3;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5249:30:3;;;;;;;;:19;:30;;;;;;;;:35;;;;;;;;;4894:397::o;6772:100::-;6829:7;6855:10;;;;-1:-1:-1;;;;;6855:10:3;;6772:100::o;6448:86::-;6518:9;;6448:86;:::o;2795:364::-;2907:10;;-1:-1:-1;;;;;2907:10:3;2893;:24;:52;;;;-1:-1:-1;2921:10:3;:24;;2893:52;2872:113;;;;-1:-1:-1;;;2872:113:3;;;;;;;:::i;:::-;2995:12;3010:33;3026:16;:14;:16::i;3010:33::-;2995:48;;3069:9;;3061:4;:17;;3053:42;;;;-1:-1:-1;;;3053:42:3;;;;;;;:::i;:::-;3105:38;;;;:32;:38;;;;;:47;2795:364::o;5939:278::-;6005:7;6039:8;;6032:3;:15;;6024:39;;;;-1:-1:-1;;;6024:39:3;;;;;;;:::i;:::-;6073:12;6088:20;6104:3;6088:15;:20::i;:::-;6073:35;;6134:9;;6126:4;:17;;6118:42;;;;-1:-1:-1;;;6118:42:3;;;;;;;:::i;:::-;6177:33;;;;:27;:33;;;;;;;5939:278;-1:-1:-1;;5939:278:3:o;7511:160::-;7569:7;7603:8;;7596:3;:15;;7588:39;;;;-1:-1:-1;;;7588:39:3;;;;;;;:::i;:::-;7644:20;7660:3;7644:15;:20::i;4185:286::-;4280:7;4437:27;;;:22;:27;;;;;;;4185:286::o;4077:102::-;4126:16;4161:11;4154:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4154:18:3;;;;;;;;;;;;;;;;;;;;;;;4077:102;:::o;7329:176::-;7376:7;7395:11;7409:30;7430:8;;7409:16;:14;:16::i;:::-;:20;;:30::i;:::-;7395:44;-1:-1:-1;7456:42:3;7472:8;;:25;;7494:3;7472:25;;;7483:8;;7456:15;:42::i;:::-;7449:49;;;7329:176;:::o;1683:247::-;1795:10;;-1:-1:-1;;;;;1795:10:3;1781;:24;:52;;;;-1:-1:-1;1809:10:3;:24;;1781:52;1760:113;;;;-1:-1:-1;;;1760:113:3;;;;;;;:::i;:::-;1883:17;:40;;-1:-1:-1;;;;;;1883:40:3;-1:-1:-1;;;;;1883:40:3;;;;;;;;;;1683:247::o;3165:354::-;3272:10;;-1:-1:-1;;;;;3272:10:3;3258;:24;:52;;;;-1:-1:-1;3286:10:3;:24;;3258:52;3237:113;;;;-1:-1:-1;;;3237:113:3;;;;;;;:::i;:::-;3360:12;3375:33;3391:16;:14;:16::i;3375:33::-;3360:48;;3434:9;;3426:4;:17;;3418:42;;;;-1:-1:-1;;;3418:42:3;;;;;;;:::i;:::-;3470:33;;;;:27;:33;;;;;:42;3165:354::o;1936:259::-;2016:17;;-1:-1:-1;;;;;2016:17:3;2002:10;:31;:59;;;;-1:-1:-1;2037:10:3;:24;;2002:59;1981:127;;;;-1:-1:-1;;;1981:127:3;;;;;;;:::i;:::-;2131:17;;;2118:10;:30;;-1:-1:-1;;;;;;2118:30:3;;;-1:-1:-1;;;;;2131:17:3;;2118:30;;;;2158;;;1936:259::o;6223:87::-;6295:8;;6223:87;:::o;11508:179::-;11569:7;11595:33;11626:1;11595:26;11617:3;11595:17;11603:8;;11595:3;:7;;:17;;;;:::i;:::-;:21;;:26::i;:::-;:30;;:33::i;11240:262::-;11308:4;;11324:150;11348:11;:18;11344:22;;11324:150;;;11409:9;-1:-1:-1;;;;;11391:27:3;:11;11403:1;11391:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11391:14:3;:27;11387:77;;;11445:4;11438:11;;;;;11387:77;11368:3;;11324:150;;;-1:-1:-1;11490:5:3;;11240:262;-1:-1:-1;;11240:262:3:o;11118:116::-;11167:7;11193:34;11225:1;11193:27;:15;11213:6;11193: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;3101:130::-;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;874:176::-;932:7;963:5;;;986:6;;;;978:46;;;;-1:-1:-1;;;978:46:1;;;;;;;:::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;5:130:-1:-;72:20;;-1:-1;;;;;12885:54;;13471:35;;13461:2;;13520:1;;13510:12;414:241;;518:2;506:9;497:7;493:23;489:32;486:2;;;-1:-1;;524:12;486:2;586:53;631:7;607:22;586:53;:::i;662:366::-;;;783:2;771:9;762:7;758:23;754:32;751:2;;;-1:-1;;789:12;751:2;851:53;896:7;872:22;851:53;:::i;:::-;841:63;941:2;980:22;;;;344:20;;-1:-1;;;745:283::o;1035:257::-;;1147:2;1135:9;1126:7;1122:23;1118:32;1115:2;;;-1:-1;;1153:12;1115:2;223:6;217:13;13617:5;12797:13;12790:21;13595:5;13592:32;13582:2;;-1:-1;;13628:12;1299:241;;1403:2;1391:9;1382:7;1378:23;1374:32;1371:2;;;-1:-1;;1409:12;1371:2;-1:-1;344:20;;1365:175;-1:-1;1365:175::o;6212:222::-;-1:-1;;;;;12885:54;;;;1790:37;;6339:2;6324:18;;6310:124::o;6441:333::-;-1:-1;;;;;12885:54;;;;1790:37;;6760:2;6745:18;;6163:37;6596:2;6581:18;;6567:207::o;6781:370::-;6958:2;6972:47;;;11989:12;;6943:18;;;12393:19;;;6781:370;;6958:2;11843:14;;;;12433;;;;6781:370;2398:260;2423:6;2420:1;2417:13;2398:260;;;2484:13;;-1:-1;;;;;12885:54;1790:37;;12248:14;;;;1701;;;;12896:42;2438:9;2398:260;;;-1:-1;7025:116;;6929:222;-1:-1;;;;;;6929:222::o;7158:210::-;12797:13;;12790:21;2753:34;;7279:2;7264:18;;7250:118::o;7375:310::-;;7522:2;;7543:17;7536:47;2944:5;11989:12;12405:6;7522:2;7511:9;7507:18;12393:19;-1:-1;13103:101;13117:6;13114:1;13111:13;13103:101;;;13184:11;;;;;13178:18;13165:11;;;12433:14;13165:11;13158:39;13132:10;;13103:101;;;13219:6;13216:1;13213:13;13210:2;;;-1:-1;12433:14;13275:6;7511:9;13266:16;;13259:27;13210:2;-1:-1;13391:7;13375:14;-1:-1;;13371:28;3102:39;;;;12433:14;3102:39;;7493:192;-1:-1;;;7493:192::o;7692:416::-;7892:2;7906:47;;;3378:2;7877:18;;;12393:19;-1:-1;;;12433:14;;;3394:34;3447:12;;;7863:245::o;8115:416::-;8315:2;8329:47;;;3698:2;8300:18;;;12393:19;3734:29;12433:14;;;3714:50;3783:12;;;8286:245::o;8538:416::-;8738:2;8752:47;;;4034:2;8723:18;;;12393:19;4070:28;12433:14;;;4050:49;4118:12;;;8709:245::o;8961:416::-;9161:2;9175:47;;;4369:2;9146:18;;;12393:19;-1:-1;;;12433:14;;;4385:44;4448:12;;;9132:245::o;9384:416::-;9584:2;9598:47;;;4699:2;9569:18;;;12393:19;-1:-1;;;12433:14;;;4715:35;4769:12;;;9555:245::o;9807:416::-;10007:2;10021:47;;;5020:2;9992:18;;;12393:19;-1:-1;;;12433:14;;;5036:40;5095:12;;;9978:245::o;10230:416::-;10430:2;10444:47;;;5346:2;10415:18;;;12393:19;-1:-1;;;12433:14;;;5362:37;5418:12;;;10401:245::o;10653:416::-;10853:2;10867:47;;;5669:2;10838:18;;;12393:19;-1:-1;;;12433:14;;;5685:39;5743:12;;;10824:245::o;11076:416::-;11276:2;11290:47;;;5994:2;11261:18;;;12393:19;-1:-1;;;12433:14;;;6010:37;6066:12;;;11247:245::o;11499:222::-;6163:37;;;11626:2;11611:18;;11597:124::o
Swarm Source
ipfs://10a0a4a1748af3bfcf450bc9867e242e80e615af9e09b93d18ec238ed2ab3f2f
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.