More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 41 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake End | 14435765 | 929 days ago | IN | 0 ETH | 0.00480053 | ||||
Stake End | 13307322 | 1105 days ago | IN | 0 ETH | 0.00715113 | ||||
Stake Start | 13278133 | 1109 days ago | IN | 0 ETH | 0.01139134 | ||||
Stake End | 12605266 | 1214 days ago | IN | 0 ETH | 0.00083901 | ||||
Stake Start | 12593160 | 1216 days ago | IN | 0 ETH | 0.00305174 | ||||
Stake Start | 12592635 | 1216 days ago | IN | 0 ETH | 0.00326541 | ||||
Stake End | 12546928 | 1223 days ago | IN | 0 ETH | 0.00131462 | ||||
Stake End | 12496606 | 1231 days ago | IN | 0 ETH | 0.00216727 | ||||
Stake Start | 12476121 | 1234 days ago | IN | 0 ETH | 0.00977205 | ||||
Stake Start | 12354982 | 1252 days ago | IN | 0 ETH | 0.00558432 | ||||
Stake End | 12354389 | 1253 days ago | IN | 0 ETH | 0.0020227 | ||||
Stake End | 12316365 | 1258 days ago | IN | 0 ETH | 0.00447425 | ||||
Stake End | 12131809 | 1287 days ago | IN | 0 ETH | 0.00772378 | ||||
Stake End | 12107437 | 1291 days ago | IN | 0 ETH | 0.01426627 | ||||
Stake End | 12102014 | 1291 days ago | IN | 0 ETH | 0.01392245 | ||||
Stake Start | 11848829 | 1330 days ago | IN | 0 ETH | 0.0176329 | ||||
Stake Start | 11738157 | 1347 days ago | IN | 0 ETH | 0.02040687 | ||||
Stake End | 11681936 | 1356 days ago | IN | 0 ETH | 0.00606829 | ||||
Stake Start | 11680820 | 1356 days ago | IN | 0 ETH | 0.02086146 | ||||
Stake Start | 11595203 | 1369 days ago | IN | 0 ETH | 0.02646173 | ||||
Stake End | 11595020 | 1369 days ago | IN | 0 ETH | 0.00682364 | ||||
Stake Start | 11594867 | 1369 days ago | IN | 0 ETH | 0.01788809 | ||||
Stake Start | 11568625 | 1373 days ago | IN | 0 ETH | 0.00999936 | ||||
Stake Start | 11555142 | 1376 days ago | IN | 0 ETH | 0.01600461 | ||||
Stake Start | 11551812 | 1376 days ago | IN | 0 ETH | 0.00884297 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
StakingBitgear
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-21 */ // File: openzeppelin-solidity/contracts/GSN/Context.sol // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: openzeppelin-solidity/contracts/access/Ownable.sol pragma solidity ^0.6.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: openzeppelin-solidity/contracts/math/SafeMath.sol 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; } } // File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol 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); } // File: contracts/uniswap/interface/IUniswapV2Pair.sol pragma solidity ^0.6.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // File: contracts/StakingBitgear.sol pragma solidity ^0.6.0; contract StakingBitgear is Ownable { using SafeMath for uint256; IUniswapV2Pair public pair; bool private ifGearZeroTokenInPair; IERC20 public gearAddress; uint256 public zeroDayStartTime; uint256 public dayDurationSec; uint256 constant public numDaysInMonth = 30; uint256 constant public monthsInYear = 12; modifier onlyWhenOpen { require( now >= zeroDayStartTime, "StakingBitgear: Contract is not open yet" ); _; } uint256 public allLpTokensStaked; uint256 public allGearTokens; uint256 public unfreezedGearTokens; uint256 public freezedGearTokens; event LpTokensIncome(address who, uint256 amount, uint256 day); event LpTokensOutcome(address who, uint256 amount, uint256 day); event GearTokenIncome(address who, uint256 amount, uint256 day); event GearTokenOutcome(address who, uint256 amount, uint256 day); event TokenFreezed(address who, uint256 amount, uint256 day); event TokenUnfreezed(address who, uint256 amount, uint256 day); uint256 public stakeIdLast; uint256 constant public maxNumMonths = 3; uint256[] public MonthsApyPercentsNumerator = [15, 20, 30]; uint256[] public MonthsApyPercentsDenominator = [100, 100, 100]; struct StakeInfo { uint256 stakeId; uint256 startDay; uint256 numMonthsStake; uint256 stakedLP; uint256 stakedGear; uint256 freezedRewardGearTokens; } mapping(address => StakeInfo[]) public stakeList; event StakeStart( address who, uint256 LpIncome, uint256 gearEquivalent, uint256 gearEarnings, uint256 numMonths, uint256 day, uint256 stakeId ); event StakeEnd( address who, uint256 stakeId, uint256 LpOutcome, uint256 gearEarnings, uint256 servedNumMonths, uint256 day ); constructor( IUniswapV2Pair _pair, IERC20 _gearAddress, uint256 _zeroDayStartTime, uint256 _dayDurationSec ) public { pair = _pair; gearAddress = _gearAddress; address token0 = pair.token0(); address token1 = pair.token1(); require( token0 == address(gearAddress) || token1 == address(gearAddress), "StakingBitgear: Invalid LP address" ); zeroDayStartTime = _zeroDayStartTime; dayDurationSec = _dayDurationSec; ifGearZeroTokenInPair = (token0 == address(gearAddress)); _testMonthsApyPercents(); } function gearTokenDonation(uint256 amount) external { address sender = _msgSender(); require( gearAddress.transferFrom(sender, address(this), amount), "StakingBitgear: Could not get gear tokens" ); allGearTokens = allGearTokens.add(amount); unfreezedGearTokens = unfreezedGearTokens.add(amount); emit GearTokenIncome(sender, amount, _currentDay()); } function gearOwnerWithdraw(uint256 amount) external onlyOwner { address sender = _msgSender(); require( sender == owner(), "StakingBitgear: Sender is not owner" ); require( allGearTokens > amount, "StakingBitgear: Not enough value on this contract" ); require( unfreezedGearTokens > amount, "StakingBitgear: Not enough unfreezed value on this contract" ); require( gearAddress.transfer(sender, amount), "StakingBitgear: Could not send gear tokens" ); allGearTokens = allGearTokens.sub(amount); unfreezedGearTokens = unfreezedGearTokens.sub(amount); emit GearTokenOutcome(sender, amount, _currentDay()); } function stakeStart(uint256 amount, uint256 numMonthsStake) external onlyWhenOpen { require( numMonthsStake > 0 && numMonthsStake <= maxNumMonths, "StakingBitgear: Wrong number of months" ); address sender = _msgSender(); // Get LP tokens require( pair.transferFrom(sender, address(this), amount), "StakingBitgear: LP token transfer failed" ); allLpTokensStaked = allLpTokensStaked.add(amount); uint256 currDay = _currentDay(); emit LpTokensIncome(sender, amount, currDay); // Calculate equivalent of LP tokens in Gear tokens uint256 LpPairTotalSupply = pair.totalSupply(); uint256 gearPairTotalReserves; //uint256 ethPairTotalReserves; if (ifGearZeroTokenInPair) (gearPairTotalReserves, /* ethPairTotalReserves */,) = pair.getReserves(); else (/* ethPairTotalReserves */, gearPairTotalReserves,) = pair.getReserves(); uint256 gearEquivalent = gearPairTotalReserves.mul(amount).div(LpPairTotalSupply); // Calculate earnings in Gear tokens that user will get uint256 gearEarnings = _getGearEarnings(gearEquivalent, numMonthsStake); // Freeze Gear tokens on contract require( unfreezedGearTokens >= gearEarnings, "StakingBitgear: Insufficient funds of Gear tokens to this stake" ); unfreezedGearTokens = unfreezedGearTokens.sub(gearEarnings); freezedGearTokens = freezedGearTokens.add(gearEarnings); emit TokenFreezed(sender, gearEarnings, currDay); // Add stake into stakeList StakeInfo memory st = StakeInfo( ++stakeIdLast, currDay, numMonthsStake, amount, gearEquivalent, gearEarnings ); stakeList[sender].push(st); emit StakeStart( sender, amount, gearEquivalent, gearEarnings, numMonthsStake, currDay, stakeIdLast ); } function stakeEnd(uint256 stakeIndex, uint256 stakeId) external onlyWhenOpen { address sender = _msgSender(); require( stakeIndex >= 0 && stakeIndex < stakeList[sender].length, "StakingBitgear: Wrong stakeIndex" ); StakeInfo storage st = stakeList[sender][stakeIndex]; require( st.stakeId == stakeId, "StakingBitgear: Wrong stakeId" ); uint256 currDay = _currentDay(); uint256 servedNumOfMonths = _getServedMonths(currDay, st.startDay, st.numMonthsStake); uint256 gearTokensToReturn = _getGearEarnings(st.stakedGear, servedNumOfMonths); require( st.freezedRewardGearTokens >= gearTokensToReturn, "StakingBitgear: Internal error!" ); pair.transfer(sender, st.stakedLP); allLpTokensStaked = allLpTokensStaked.sub(st.stakedLP); emit LpTokensOutcome(sender, st.stakedLP, currDay); uint256 remainingGearTokens = st.freezedRewardGearTokens.sub(gearTokensToReturn); unfreezedGearTokens = unfreezedGearTokens.add(remainingGearTokens); freezedGearTokens = freezedGearTokens.sub(st.freezedRewardGearTokens); emit TokenUnfreezed(sender, st.freezedRewardGearTokens, currDay); allGearTokens = allGearTokens.sub(gearTokensToReturn); gearAddress.transfer(sender, gearTokensToReturn); emit GearTokenOutcome(sender, gearTokensToReturn, currDay); emit StakeEnd( sender, st.stakeId, st.stakedLP, gearTokensToReturn, servedNumOfMonths, currDay ); _removeStake(stakeIndex, stakeId); } function stakeListCount(address who) external view returns(uint256) { return stakeList[who].length; } function currentDay() external view onlyWhenOpen returns(uint256) { return _currentDay(); } function getDayUnixTime(uint256 day) public view returns(uint256) { return zeroDayStartTime.add(day.mul(dayDurationSec)); } function changeMonthsApyPercents( uint256 month, uint256 numerator, uint256 denominator ) external onlyOwner { require( month > 0 && month <= maxNumMonths, "StakingBitgear: Wrong month" ); MonthsApyPercentsNumerator[month.sub(1)] = numerator; MonthsApyPercentsDenominator[month.sub(1)] = denominator; _testMonthsApyPercents(); } function getEndDayOfStakeInUnixTime( address who, uint256 stakeIndex, uint256 stakeId ) external view returns(uint256) { require( stakeIndex < stakeList[who].length, "StakingBitgear: Wrong stakeIndex" ); require( stakeId == stakeList[who][stakeIndex].stakeId, "StakingBitgear: Wrong stakeId" ); return getDayUnixTime( stakeList[who][stakeIndex].startDay.add( stakeList[who][stakeIndex].numMonthsStake.mul( numDaysInMonth ) ) ); } function getStakeDivsNow( address who, uint256 stakeIndex, uint256 stakeId ) external view returns(uint256) { require( stakeIndex < stakeList[who].length, "StakingBitgear: Wrong stakeIndex" ); require( stakeId == stakeList[who][stakeIndex].stakeId, "StakingBitgear: Wrong stakeId" ); uint256 currDay = _currentDay(); uint256 servedMonths = _getServedMonths( currDay, stakeList[who][stakeIndex].startDay, stakeList[who][stakeIndex].numMonthsStake ); return _getGearEarnings(stakeList[who][stakeIndex].stakedGear, servedMonths); } function _getServedMonths( uint256 currDay, uint256 startDay, uint256 numMonthsStake ) private pure returns(uint256 servedMonths) { servedMonths = currDay.sub(startDay).div(numDaysInMonth); if (servedMonths > numMonthsStake) servedMonths = numMonthsStake; } function _getGearEarnings( uint256 gearAmount, uint256 numOfMonths ) private view returns (uint256 reward) { require( numOfMonths >= 0 && numOfMonths <= maxNumMonths, "StakingBitgear: Wrong numOfMonths" ); for (uint256 month = 1; month <= numOfMonths; ++month) { reward += gearAmount.add(reward) .mul(MonthsApyPercentsNumerator[month - 1]) .div(monthsInYear) .div(MonthsApyPercentsDenominator[month - 1]); } return reward; } function _currentDay() private view returns(uint256) { return now.sub(zeroDayStartTime).div(dayDurationSec); } function _removeStake(uint256 stakeIndex, uint256 stakeId) private { address sender = _msgSender(); uint256 stakeListLength = stakeList[sender].length; require( stakeIndex >= 0 && stakeIndex < stakeListLength, "StakingBitgear: Wrong stakeIndex" ); StakeInfo storage st = stakeList[sender][stakeIndex]; require( st.stakeId == stakeId, "StakingBitgear: Wrong stakeId" ); if (stakeIndex < stakeListLength - 1) stakeList[sender][stakeIndex] = stakeList[sender][stakeListLength - 1]; stakeList[sender].pop(); } function _testMonthsApyPercents() private view { uint256 amount = 100000; require( maxNumMonths == 3, "StakingBitgear: Wrong MonthsApyPercents parameters" ); require( amount .mul(MonthsApyPercentsNumerator[0]) .div(MonthsApyPercentsDenominator[0]) >= amount.mul(5).div(100), "StakingBitgear: Wrong MonthsApyPercents parameters" ); require( amount .mul(MonthsApyPercentsNumerator[1]) .div(MonthsApyPercentsDenominator[1]) >= amount.mul(7).div(100), "StakingBitgear: Wrong MonthsApyPercents parameters" ); require( amount .mul(MonthsApyPercentsNumerator[2]) .div(MonthsApyPercentsDenominator[2]) >= amount.mul(10).div(100), "StakingBitgear: Wrong MonthsApyPercents parameters" ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IUniswapV2Pair","name":"_pair","type":"address"},{"internalType":"contract IERC20","name":"_gearAddress","type":"address"},{"internalType":"uint256","name":"_zeroDayStartTime","type":"uint256"},{"internalType":"uint256","name":"_dayDurationSec","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"GearTokenIncome","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"GearTokenOutcome","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"LpTokensIncome","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"LpTokensOutcome","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"stakeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"LpOutcome","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gearEarnings","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"servedNumMonths","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"StakeEnd","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"LpIncome","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gearEquivalent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gearEarnings","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numMonths","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeId","type":"uint256"}],"name":"StakeStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"TokenFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"TokenUnfreezed","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"MonthsApyPercentsDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"MonthsApyPercentsNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allGearTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allLpTokensStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"month","type":"uint256"},{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMonthsApyPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dayDurationSec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freezedGearTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gearAddress","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"gearOwnerWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"gearTokenDonation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"name":"getDayUnixTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"stakeIndex","type":"uint256"},{"internalType":"uint256","name":"stakeId","type":"uint256"}],"name":"getEndDayOfStakeInUnixTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"stakeIndex","type":"uint256"},{"internalType":"uint256","name":"stakeId","type":"uint256"}],"name":"getStakeDivsNow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxNumMonths","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"monthsInYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numDaysInMonth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"stakeIndex","type":"uint256"},{"internalType":"uint256","name":"stakeId","type":"uint256"}],"name":"stakeEnd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeIdLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeList","outputs":[{"internalType":"uint256","name":"stakeId","type":"uint256"},{"internalType":"uint256","name":"startDay","type":"uint256"},{"internalType":"uint256","name":"numMonthsStake","type":"uint256"},{"internalType":"uint256","name":"stakedLP","type":"uint256"},{"internalType":"uint256","name":"stakedGear","type":"uint256"},{"internalType":"uint256","name":"freezedRewardGearTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"stakeListCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"numMonthsStake","type":"uint256"}],"name":"stakeStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unfreezedGearTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroDayStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e0604052600f6080908152601460a052601e60c0526200002590600a9060036200060a565b5060408051606081018252606480825260208201819052918101919091526200005390600b9060036200060a565b503480156200006157600080fd5b506040516200321c3803806200321c833981810160405260808110156200008757600080fd5b50805160208201516040830151606090930151919290916000620000aa620002c0565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b038087166001600160a01b031992831617928390556002805487831693169290921790915560408051630dfe168160e01b8152905160009390921691630dfe168191600480820192602092909190829003018186803b1580156200016257600080fd5b505afa15801562000177573d6000803e3d6000fd5b505050506040513d60208110156200018e57600080fd5b50516001546040805163d21220a760e01b815290519293506000926001600160a01b039092169163d21220a791600480820192602092909190829003018186803b158015620001dc57600080fd5b505afa158015620001f1573d6000803e3d6000fd5b505050506040513d60208110156200020857600080fd5b50516002549091506001600160a01b03838116911614806200023757506002546001600160a01b038281169116145b620002745760405162461bcd60e51b8152600401808060200182810382526022815260200180620031a76022913960400191505060405180910390fd5b600384905560048390556002546001805460ff60a01b19166001600160a01b0392831692851692909214600160a01b02919091179055620002b4620002c4565b50505050505062000676565b3390565b620186a0620002fd6064620002e9600584620004b260201b620020191790919060201c565b6200051960201b6200208c1790919060201c565b6200034e600b6000815481106200031057fe5b9060005260206000200154620002e9600a6000815481106200032e57fe5b906000526020600020015485620004b260201b620020191790919060201c565b10156200038d5760405162461bcd60e51b8152600401808060200182810382526032815260200180620031c96032913960400191505060405180910390fd5b620003ae6064620002e9600784620004b260201b620020191790919060201c565b620003df600b600181548110620003c157fe5b9060005260206000200154620002e9600a6001815481106200032e57fe5b10156200041e5760405162461bcd60e51b8152600401808060200182810382526032815260200180620031c96032913960400191505060405180910390fd5b6200043f6064620002e9600a84620004b260201b620020191790919060201c565b62000470600b6002815481106200045257fe5b9060005260206000200154620002e9600a6002815481106200032e57fe5b1015620004af5760405162461bcd60e51b8152600401808060200182810382526032815260200180620031c96032913960400191505060405180910390fd5b50565b600082620004c35750600062000513565b82820282848281620004d157fe5b0414620005105760405162461bcd60e51b8152600401808060200182810382526021815260200180620031fb6021913960400191505060405180910390fd5b90505b92915050565b60006200051083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056360201b60201c565b60008183620005f35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620005b75781810151838201526020016200059d565b50505050905090810190601f168015620005e55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200060057fe5b0495945050505050565b8280548282559060005260206000209081019282156200064d579160200282015b828111156200064d578251829060ff169055916020019190600101906200062b565b506200065b9291506200065f565b5090565b5b808211156200065b576000815560010162000660565b612b2180620006866000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063d47650f111610097578063f2fde38b11610071578063f2fde38b14610483578063f49b8320146104b6578063f61137c7146104be578063f65b7ef9146104c6576101c4565b8063d47650f114610456578063ebd892e914610473578063efc84d051461047b576101c4565b8063a8aa1b31116100d3578063a8aa1b3114610421578063b620d3c014610429578063c1f970de14610431578063c75934eb1461044e576101c4565b80638da5cb5b146103b657806396ef8531146103e75780639f3210a414610404576101c4565b8063550a12f51161016657806365c074f61161014057806365c074f61461035a57806367dcb88114610362578063715018a61461038557806380ce492b1461038d576101c4565b8063550a12f51461030b5780635c9302c91461034a5780635d085b5714610352576101c4565b80632c63fb18116101a25780632c63fb181461025557806330fe4a8f1461027257806352a438b81461027a578063538b5c981461029f576101c4565b80630d7ff1b6146101c957806318e8039c1461021a5780631b978df11461024d575b600080fd5b610208600480360360608110156101df57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602081013590604001356104ce565b60408051918252519081900360200190f35b6102086004803603602081101561023057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106e6565b61020861070e565b6102086004803603602081101561026b57600080fd5b5035610714565b610208610732565b61029d6004803603604081101561029057600080fd5b5080359060200135610738565b005b6102d8600480360360408110156102b557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dfe565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b6102086004803603606081101561032157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135610e4f565b6102086110bb565b610208611125565b61020861112a565b61029d6004803603604081101561037857600080fd5b5080359060200135611130565b61029d6116cb565b61029d600480360360608110156103a357600080fd5b50803590602081013590604001356117cb565b6103be61192d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61029d600480360360208110156103fd57600080fd5b5035611949565b61029d6004803603602081101561041a57600080fd5b5035611ca5565b6103be611dff565b610208611e1b565b6102086004803603602081101561044757600080fd5b5035611e21565b610208611e2e565b6102086004803603602081101561046c57600080fd5b5035611e33565b610208611e5c565b610208611e61565b61029d6004803603602081101561049957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e67565b610208611ff1565b610208611ff7565b6103be611ffd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040812054831061056157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c6020526040902080548490811061059257fe5b906000526020600020906006020160000154821461061157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b6106dc6106d7610686601e600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020878154811061066657fe5b90600052602060002090600602016002015461201990919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600c602052604090208054879081106106b757fe5b9060005260206000209060060201600101546120ce90919063ffffffff16565b611e33565b90505b9392505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b60055481565b600a818154811061072157fe5b600091825260209091200154905081565b60065481565b600354421015610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061297c6028913960400191505060405180910390fd5b6000811180156107a4575060038111155b6107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806129566026913960400191505060405180910390fd5b6000610803612142565b600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80851660048301523060248301526044820188905291519394509116916323b872dd916064808201926020929091908290030181600087803b15801561088757600080fd5b505af115801561089b573d6000803e3d6000fd5b505050506040513d60208110156108b157600080fd5b5051610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806128e16028913960400191505060405180910390fd5b60055461091590846120ce565b6005556000610922612146565b6040805173ffffffffffffffffffffffffffffffffffffffff851681526020810187905280820183905290519192507f0a35779babe6a2a9348e183540244887627a55b78261b7529b1cb2baca5ad279919081900360600190a1600154604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd916004808301926020929190829003018186803b1580156109e757600080fd5b505afa1580156109fb573d6000803e3d6000fd5b505050506040513d6020811015610a1157600080fd5b505160015490915060009074010000000000000000000000000000000000000000900460ff1615610ae757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6060811015610ace57600080fd5b50516dffffffffffffffffffffffffffff169050610b91565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d6060811015610b7957600080fd5b50602001516dffffffffffffffffffffffffffff1690505b6000610ba783610ba1848a612019565b9061208c565b90506000610bb58288612163565b9050806007541015610c12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612a72603f913960400191505060405180910390fd5b600754610c1f908261222e565b600755600854610c2f90826120ce565b6008556040805173ffffffffffffffffffffffffffffffffffffffff881681526020810183905280820187905290517f3b68d0424721b9c95570324a42a9a35483e8dd5e4f4b45b98f8129047ef0da5c9181900360600190a1610c90612884565b6040518060c0016040528060096000815460010191905081905581526020018781526020018981526020018a8152602001848152602001838152509050600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060060201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550507fb16987e0474d681b4befe35bdd3f0495cb16c343297ffd14c112be65893afcf3878a85858c8b600954604051808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a1505050505050505050565b600c6020528160005260406000208181548110610e1757fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493965091945092909186565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60205260408120548310610ee257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260409020805484908110610f1357fe5b9060005260206000209060060201600001548214610f9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b6000610f9c612146565b9050600061106182600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110610fee57fe5b906000526020600020906006020160010154600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811061104a57fe5b906000526020600020906006020160020154612270565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600c6020526040902080549192506110b1918790811061109957fe5b90600052602060002090600602016004015482612163565b9695505050505050565b6000600354421015611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061297c6028913960400191505060405180910390fd5b611120612146565b905090565b600381565b60085481565b60035442101561118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061297c6028913960400191505060405180910390fd5b6000611195612142565b905073ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020526040902054831061122a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020526040812080548590811061125b57fe5b90600052602060002090600602019050828160000154146112dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b60006112e7612146565b905060006112fe8284600101548560020154612270565b90506000611310846004015483612163565b9050808460050154101561138557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5374616b696e67426974676561723a20496e7465726e616c206572726f722100604482015290519081900360640190fd5b6001546003850154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff898116600483015260248201939093529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b505050506040513d602081101561143157600080fd5b505060038401546005546114449161222e565b60055560038401546040805173ffffffffffffffffffffffffffffffffffffffff881681526020810192909252818101859052517ff81a82726d53b2de2120aa52bf810bed07488794381f6abb85f2cf7752705e2b9181900360600190a160058401546000906114b4908361222e565b6007549091506114c490826120ce565b60075560058501546008546114d89161222e565b60085560058501546040805173ffffffffffffffffffffffffffffffffffffffff891681526020810192909252818101869052517f2b54c9cfefdf777a518cc5849facb222d3eff2948f4c7cb8f519f01f9fcaf06e9181900360600190a1600654611543908361222e565b600655600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156115c257600080fd5b505af11580156115d6573d6000803e3d6000fd5b505050506040513d60208110156115ec57600080fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff881681526020810184905280820186905290517f4b0b4ef333461d94cc8245fca1c1b8dacc6137cd2d530b63542f425f768d0d139181900360600190a1845460038601546040805173ffffffffffffffffffffffffffffffffffffffff8a168152602081019390935282810191909152606082018490526080820185905260a08201869052517fc59003b284656b1d93e37a3b20e93a562e877c08db3ebef0dbac6bbef7e049419181900360c00190a16116c18888612292565b5050505050505050565b6116d3612142565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461175c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6117d3612142565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461185c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008311801561186d575060038311155b6118d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b696e67426974676561723a2057726f6e67206d6f6e74680000000000604482015290519081900360640190fd5b81600a6118e685600161222e565b815481106118f057fe5b60009182526020909120015580600b61190a85600161222e565b8154811061191457fe5b600091825260209091200155611928612577565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b611951612142565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146119da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006119e4612142565b90506119ee61192d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129096023913960400191505060405180910390fd5b8160065411611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180612a416031913960400191505060405180910390fd5b8160075411611b25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180612ab1603b913960400191505060405180910390fd5b600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611ba157600080fd5b505af1158015611bb5573d6000803e3d6000fd5b505050506040513d6020811015611bcb57600080fd5b5051611c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061292c602a913960400191505060405180910390fd5b600654611c2f908361222e565b600655600754611c3f908361222e565b6007557f4b0b4ef333461d94cc8245fca1c1b8dacc6137cd2d530b63542f425f768d0d138183611c6d612146565b6040805173ffffffffffffffffffffffffffffffffffffffff9094168452602084019290925282820152519081900360600190a15050565b6000611caf612142565b600254604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80851660048301523060248301526044820187905291519394509116916323b872dd916064808201926020929091908290030181600087803b158015611d3357600080fd5b505af1158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b5051611db4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806129f76029913960400191505060405180910390fd5b600654611dc190836120ce565b600655600754611dd190836120ce565b6007557f3b01a99646d3c6f4a8e02adcf665a752daf7b24277cd0c466ff86275d57338698183611c6d612146565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b818154811061072157fe5b601e81565b6000611e56611e4d6004548461201990919063ffffffff16565b600354906120ce565b92915050565b600c81565b60035481565b611e6f612142565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614611ef857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128bb6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60075481565b60045481565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60008261202857506000611e56565b8282028284828161203557fe5b04146106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129d66021913960400191505060405180910390fd5b60006106df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612754565b6000828201838110156106df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6000611120600454610ba16003544261222e90919063ffffffff16565b600060038211156121bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a206021913960400191505060405180910390fd5b60015b8281116122275761221b600b60018303815481106121dc57fe5b9060005260206000200154610ba1600c610ba1600a60018703815481106121ff57fe5b6000918252602090912001546122158a896120ce565b90612019565b909101906001016121c2565b5092915050565b60006106df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612810565b6000612281601e610ba1868661222e565b9050818111156106df575092915050565b600061229c612142565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602052604090205490915080841061233357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040812080548690811061236457fe5b90600052602060002090600602019050838160000154146123e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b600182038510156124ea5773ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840190811061244457fe5b9060005260206000209060060201600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020868154811061249c57fe5b90600052602060002090600602016000820154816000015560018201548160010155600282015481600201556003820154816003015560048201548160040155600582015481600501559050505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040902080548061251857fe5b60008281526020812060067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90930192830201818155600181018290556002810182905560038101829055600481018290556005015590555050505050565b620186a061258b6064610ba1836005612019565b6125d2600b60008154811061259c57fe5b9060005260206000200154610ba1600a6000815481106125b857fe5b90600052602060002001548561201990919063ffffffff16565b1015612629576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806129a46032913960400191505060405180910390fd5b6126396064610ba1836007612019565b612666600b60018154811061264a57fe5b9060005260206000200154610ba1600a6001815481106125b857fe5b10156126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806129a46032913960400191505060405180910390fd5b6126cd6064610ba183600a612019565b6126fa600b6002815481106126de57fe5b9060005260206000200154610ba1600a6002815481106125b857fe5b1015612751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806129a46032913960400191505060405180910390fd5b50565b600081836127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127bf5781810151838201526020016127a7565b50505050905090810190601f1680156127ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161280657fe5b0495945050505050565b6000818484111561287c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156127bf5781810151838201526020016127a7565b505050900390565b6040518060c00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735374616b696e67426974676561723a204c5020746f6b656e207472616e73666572206661696c65645374616b696e67426974676561723a2053656e646572206973206e6f74206f776e65725374616b696e67426974676561723a20436f756c64206e6f742073656e64206765617220746f6b656e735374616b696e67426974676561723a2057726f6e67206e756d626572206f66206d6f6e7468735374616b696e67426974676561723a20436f6e7472616374206973206e6f74206f70656e207965745374616b696e67426974676561723a2057726f6e67204d6f6e74687341707950657263656e747320706172616d6574657273536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775374616b696e67426974676561723a20436f756c64206e6f7420676574206765617220746f6b656e735374616b696e67426974676561723a2057726f6e67206e756d4f664d6f6e7468735374616b696e67426974676561723a204e6f7420656e6f7567682076616c7565206f6e207468697320636f6e74726163745374616b696e67426974676561723a20496e73756666696369656e742066756e6473206f66204765617220746f6b656e7320746f2074686973207374616b655374616b696e67426974676561723a204e6f7420656e6f75676820756e667265657a65642076616c7565206f6e207468697320636f6e7472616374a2646970667358221220a2bc1917a8e664409a256b99dd89d282d446a93b9bea2164c6765df0ea31090664736f6c634300060c00335374616b696e67426974676561723a20496e76616c6964204c5020616464726573735374616b696e67426974676561723a2057726f6e67204d6f6e74687341707950657263656e747320706172616d6574657273536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000dd5d1a256b25e1087fc3b098b443e96cfa73237d0000000000000000000000001b980e05943de3db3a459c72325338d327b6f5a9000000000000000000000000000000000000000000000000000000005fdfe5800000000000000000000000000000000000000000000000000000000000015180
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063d47650f111610097578063f2fde38b11610071578063f2fde38b14610483578063f49b8320146104b6578063f61137c7146104be578063f65b7ef9146104c6576101c4565b8063d47650f114610456578063ebd892e914610473578063efc84d051461047b576101c4565b8063a8aa1b31116100d3578063a8aa1b3114610421578063b620d3c014610429578063c1f970de14610431578063c75934eb1461044e576101c4565b80638da5cb5b146103b657806396ef8531146103e75780639f3210a414610404576101c4565b8063550a12f51161016657806365c074f61161014057806365c074f61461035a57806367dcb88114610362578063715018a61461038557806380ce492b1461038d576101c4565b8063550a12f51461030b5780635c9302c91461034a5780635d085b5714610352576101c4565b80632c63fb18116101a25780632c63fb181461025557806330fe4a8f1461027257806352a438b81461027a578063538b5c981461029f576101c4565b80630d7ff1b6146101c957806318e8039c1461021a5780631b978df11461024d575b600080fd5b610208600480360360608110156101df57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602081013590604001356104ce565b60408051918252519081900360200190f35b6102086004803603602081101561023057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106e6565b61020861070e565b6102086004803603602081101561026b57600080fd5b5035610714565b610208610732565b61029d6004803603604081101561029057600080fd5b5080359060200135610738565b005b6102d8600480360360408110156102b557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dfe565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b6102086004803603606081101561032157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135610e4f565b6102086110bb565b610208611125565b61020861112a565b61029d6004803603604081101561037857600080fd5b5080359060200135611130565b61029d6116cb565b61029d600480360360608110156103a357600080fd5b50803590602081013590604001356117cb565b6103be61192d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61029d600480360360208110156103fd57600080fd5b5035611949565b61029d6004803603602081101561041a57600080fd5b5035611ca5565b6103be611dff565b610208611e1b565b6102086004803603602081101561044757600080fd5b5035611e21565b610208611e2e565b6102086004803603602081101561046c57600080fd5b5035611e33565b610208611e5c565b610208611e61565b61029d6004803603602081101561049957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e67565b610208611ff1565b610208611ff7565b6103be611ffd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040812054831061056157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c6020526040902080548490811061059257fe5b906000526020600020906006020160000154821461061157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b6106dc6106d7610686601e600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020878154811061066657fe5b90600052602060002090600602016002015461201990919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600c602052604090208054879081106106b757fe5b9060005260206000209060060201600101546120ce90919063ffffffff16565b611e33565b90505b9392505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b60055481565b600a818154811061072157fe5b600091825260209091200154905081565b60065481565b600354421015610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061297c6028913960400191505060405180910390fd5b6000811180156107a4575060038111155b6107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806129566026913960400191505060405180910390fd5b6000610803612142565b600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80851660048301523060248301526044820188905291519394509116916323b872dd916064808201926020929091908290030181600087803b15801561088757600080fd5b505af115801561089b573d6000803e3d6000fd5b505050506040513d60208110156108b157600080fd5b5051610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806128e16028913960400191505060405180910390fd5b60055461091590846120ce565b6005556000610922612146565b6040805173ffffffffffffffffffffffffffffffffffffffff851681526020810187905280820183905290519192507f0a35779babe6a2a9348e183540244887627a55b78261b7529b1cb2baca5ad279919081900360600190a1600154604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd916004808301926020929190829003018186803b1580156109e757600080fd5b505afa1580156109fb573d6000803e3d6000fd5b505050506040513d6020811015610a1157600080fd5b505160015490915060009074010000000000000000000000000000000000000000900460ff1615610ae757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6060811015610ace57600080fd5b50516dffffffffffffffffffffffffffff169050610b91565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d6060811015610b7957600080fd5b50602001516dffffffffffffffffffffffffffff1690505b6000610ba783610ba1848a612019565b9061208c565b90506000610bb58288612163565b9050806007541015610c12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612a72603f913960400191505060405180910390fd5b600754610c1f908261222e565b600755600854610c2f90826120ce565b6008556040805173ffffffffffffffffffffffffffffffffffffffff881681526020810183905280820187905290517f3b68d0424721b9c95570324a42a9a35483e8dd5e4f4b45b98f8129047ef0da5c9181900360600190a1610c90612884565b6040518060c0016040528060096000815460010191905081905581526020018781526020018981526020018a8152602001848152602001838152509050600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060060201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550507fb16987e0474d681b4befe35bdd3f0495cb16c343297ffd14c112be65893afcf3878a85858c8b600954604051808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a1505050505050505050565b600c6020528160005260406000208181548110610e1757fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493965091945092909186565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60205260408120548310610ee257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260409020805484908110610f1357fe5b9060005260206000209060060201600001548214610f9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b6000610f9c612146565b9050600061106182600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110610fee57fe5b906000526020600020906006020160010154600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811061104a57fe5b906000526020600020906006020160020154612270565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600c6020526040902080549192506110b1918790811061109957fe5b90600052602060002090600602016004015482612163565b9695505050505050565b6000600354421015611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061297c6028913960400191505060405180910390fd5b611120612146565b905090565b600381565b60085481565b60035442101561118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061297c6028913960400191505060405180910390fd5b6000611195612142565b905073ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020526040902054831061122a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020526040812080548590811061125b57fe5b90600052602060002090600602019050828160000154146112dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b60006112e7612146565b905060006112fe8284600101548560020154612270565b90506000611310846004015483612163565b9050808460050154101561138557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5374616b696e67426974676561723a20496e7465726e616c206572726f722100604482015290519081900360640190fd5b6001546003850154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff898116600483015260248201939093529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b505050506040513d602081101561143157600080fd5b505060038401546005546114449161222e565b60055560038401546040805173ffffffffffffffffffffffffffffffffffffffff881681526020810192909252818101859052517ff81a82726d53b2de2120aa52bf810bed07488794381f6abb85f2cf7752705e2b9181900360600190a160058401546000906114b4908361222e565b6007549091506114c490826120ce565b60075560058501546008546114d89161222e565b60085560058501546040805173ffffffffffffffffffffffffffffffffffffffff891681526020810192909252818101869052517f2b54c9cfefdf777a518cc5849facb222d3eff2948f4c7cb8f519f01f9fcaf06e9181900360600190a1600654611543908361222e565b600655600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156115c257600080fd5b505af11580156115d6573d6000803e3d6000fd5b505050506040513d60208110156115ec57600080fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff881681526020810184905280820186905290517f4b0b4ef333461d94cc8245fca1c1b8dacc6137cd2d530b63542f425f768d0d139181900360600190a1845460038601546040805173ffffffffffffffffffffffffffffffffffffffff8a168152602081019390935282810191909152606082018490526080820185905260a08201869052517fc59003b284656b1d93e37a3b20e93a562e877c08db3ebef0dbac6bbef7e049419181900360c00190a16116c18888612292565b5050505050505050565b6116d3612142565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461175c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6117d3612142565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461185c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008311801561186d575060038311155b6118d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b696e67426974676561723a2057726f6e67206d6f6e74680000000000604482015290519081900360640190fd5b81600a6118e685600161222e565b815481106118f057fe5b60009182526020909120015580600b61190a85600161222e565b8154811061191457fe5b600091825260209091200155611928612577565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b611951612142565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146119da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006119e4612142565b90506119ee61192d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129096023913960400191505060405180910390fd5b8160065411611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180612a416031913960400191505060405180910390fd5b8160075411611b25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180612ab1603b913960400191505060405180910390fd5b600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611ba157600080fd5b505af1158015611bb5573d6000803e3d6000fd5b505050506040513d6020811015611bcb57600080fd5b5051611c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061292c602a913960400191505060405180910390fd5b600654611c2f908361222e565b600655600754611c3f908361222e565b6007557f4b0b4ef333461d94cc8245fca1c1b8dacc6137cd2d530b63542f425f768d0d138183611c6d612146565b6040805173ffffffffffffffffffffffffffffffffffffffff9094168452602084019290925282820152519081900360600190a15050565b6000611caf612142565b600254604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80851660048301523060248301526044820187905291519394509116916323b872dd916064808201926020929091908290030181600087803b158015611d3357600080fd5b505af1158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b5051611db4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806129f76029913960400191505060405180910390fd5b600654611dc190836120ce565b600655600754611dd190836120ce565b6007557f3b01a99646d3c6f4a8e02adcf665a752daf7b24277cd0c466ff86275d57338698183611c6d612146565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b818154811061072157fe5b601e81565b6000611e56611e4d6004548461201990919063ffffffff16565b600354906120ce565b92915050565b600c81565b60035481565b611e6f612142565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614611ef857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128bb6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60075481565b60045481565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60008261202857506000611e56565b8282028284828161203557fe5b04146106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129d66021913960400191505060405180910390fd5b60006106df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612754565b6000828201838110156106df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6000611120600454610ba16003544261222e90919063ffffffff16565b600060038211156121bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a206021913960400191505060405180910390fd5b60015b8281116122275761221b600b60018303815481106121dc57fe5b9060005260206000200154610ba1600c610ba1600a60018703815481106121ff57fe5b6000918252602090912001546122158a896120ce565b90612019565b909101906001016121c2565b5092915050565b60006106df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612810565b6000612281601e610ba1868661222e565b9050818111156106df575092915050565b600061229c612142565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602052604090205490915080841061233357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5374616b696e67426974676561723a2057726f6e67207374616b65496e646578604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040812080548690811061236457fe5b90600052602060002090600602019050838160000154146123e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5374616b696e67426974676561723a2057726f6e67207374616b654964000000604482015290519081900360640190fd5b600182038510156124ea5773ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840190811061244457fe5b9060005260206000209060060201600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020868154811061249c57fe5b90600052602060002090600602016000820154816000015560018201548160010155600282015481600201556003820154816003015560048201548160040155600582015481600501559050505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040902080548061251857fe5b60008281526020812060067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90930192830201818155600181018290556002810182905560038101829055600481018290556005015590555050505050565b620186a061258b6064610ba1836005612019565b6125d2600b60008154811061259c57fe5b9060005260206000200154610ba1600a6000815481106125b857fe5b90600052602060002001548561201990919063ffffffff16565b1015612629576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806129a46032913960400191505060405180910390fd5b6126396064610ba1836007612019565b612666600b60018154811061264a57fe5b9060005260206000200154610ba1600a6001815481106125b857fe5b10156126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806129a46032913960400191505060405180910390fd5b6126cd6064610ba183600a612019565b6126fa600b6002815481106126de57fe5b9060005260206000200154610ba1600a6002815481106125b857fe5b1015612751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806129a46032913960400191505060405180910390fd5b50565b600081836127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127bf5781810151838201526020016127a7565b50505050905090810190601f1680156127ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161280657fe5b0495945050505050565b6000818484111561287c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156127bf5781810151838201526020016127a7565b505050900390565b6040518060c00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735374616b696e67426974676561723a204c5020746f6b656e207472616e73666572206661696c65645374616b696e67426974676561723a2053656e646572206973206e6f74206f776e65725374616b696e67426974676561723a20436f756c64206e6f742073656e64206765617220746f6b656e735374616b696e67426974676561723a2057726f6e67206e756d626572206f66206d6f6e7468735374616b696e67426974676561723a20436f6e7472616374206973206e6f74206f70656e207965745374616b696e67426974676561723a2057726f6e67204d6f6e74687341707950657263656e747320706172616d6574657273536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775374616b696e67426974676561723a20436f756c64206e6f7420676574206765617220746f6b656e735374616b696e67426974676561723a2057726f6e67206e756d4f664d6f6e7468735374616b696e67426974676561723a204e6f7420656e6f7567682076616c7565206f6e207468697320636f6e74726163745374616b696e67426974676561723a20496e73756666696369656e742066756e6473206f66204765617220746f6b656e7320746f2074686973207374616b655374616b696e67426974676561723a204e6f7420656e6f75676820756e667265657a65642076616c7565206f6e207468697320636f6e7472616374a2646970667358221220a2bc1917a8e664409a256b99dd89d282d446a93b9bea2164c6765df0ea31090664736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dd5d1a256b25e1087fc3b098b443e96cfa73237d0000000000000000000000001b980e05943de3db3a459c72325338d327b6f5a9000000000000000000000000000000000000000000000000000000005fdfe5800000000000000000000000000000000000000000000000000000000000015180
-----Decoded View---------------
Arg [0] : _pair (address): 0xdD5d1A256b25e1087Fc3B098b443e96Cfa73237d
Arg [1] : _gearAddress (address): 0x1b980e05943dE3dB3a459C72325338d327B6F5a9
Arg [2] : _zeroDayStartTime (uint256): 1608508800
Arg [3] : _dayDurationSec (uint256): 86400
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000dd5d1a256b25e1087fc3b098b443e96cfa73237d
Arg [1] : 0000000000000000000000001b980e05943de3db3a459c72325338d327b6f5a9
Arg [2] : 000000000000000000000000000000000000000000000000000000005fdfe580
Arg [3] : 0000000000000000000000000000000000000000000000000000000000015180
Deployed Bytecode Sourcemap
14121:13147:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22898:687;;;;;;;;;;;;;;;;-1:-1:-1;22898:687:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;22035:120;;;;;;;;;;;;;;;;-1:-1:-1;22035:120:0;;;;:::i;14658:32::-;;;:::i;15310:58::-;;;;;;;;;;;;;;;;-1:-1:-1;15310:58:0;;:::i;14697:28::-;;;:::i;18094:2174::-;;;;;;;;;;;;;;;;-1:-1:-1;18094:2174:0;;;;;;;:::i;:::-;;15665:48;;;;;;;;;;;;;;;;-1:-1:-1;15665:48:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23593:762;;;;;;;;;;;;;;;;-1:-1:-1;23593:762:0;;;;;;;;;;;;;;:::i;22163:110::-;;;:::i;15263:40::-;;;:::i;14773:32::-;;;:::i;20276:1751::-;;;;;;;;;;;;;;;;-1:-1:-1;20276:1751:0;;;;;;;:::i;2759:148::-;;;:::i;22431:459::-;;;;;;;;;;;;;;;;-1:-1:-1;22431:459:0;;;;;;;;;;;;:::i;2117:79::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17260:826;;;;;;;;;;;;;;;;-1:-1:-1;17260:826:0;;:::i;16812:440::-;;;;;;;;;;;;;;;;-1:-1:-1;16812:440:0;;:::i;14199:26::-;;;:::i;15230:::-;;;:::i;15375:63::-;;;;;;;;;;;;;;;;-1:-1:-1;15375:63:0;;:::i;14381:43::-;;;:::i;22281:142::-;;;;;;;;;;;;;;;;-1:-1:-1;22281:142:0;;:::i;14431:41::-;;;:::i;14307:31::-;;;:::i;3062:244::-;;;;;;;;;;;;;;;;-1:-1:-1;3062:244:0;;;;:::i;14732:34::-;;;:::i;14345:29::-;;;:::i;14273:25::-;;;:::i;22898:687::-;23127:14;;;23067:7;23127:14;;;:9;:14;;;;;:21;23114:34;;23092:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23252:14;;;;;;;:9;:14;;;;;:26;;23267:10;;23252:26;;;;;;;;;;;;;;;;:34;;;23241:7;:45;23219:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23363:214;23392:174;23450:101;14422:2;23450:9;:14;23460:3;23450:14;;;;;;;;;;;;;;;23465:10;23450:26;;;;;;;;;;;;;;;;;;:41;;;:45;;:101;;;;:::i;:::-;23392:14;;;;;;;:9;:14;;;;;:26;;23407:10;;23392:26;;;;;;;;;;;;;;;;:35;;;:39;;:174;;;;:::i;:::-;23363:14;:214::i;:::-;23356:221;;22898:687;;;;;;:::o;22035:120::-;22126:14;;22094:7;22126:14;;;:9;:14;;;;;:21;;22035:120::o;14658:32::-;;;;:::o;15310:58::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15310:58:0;:::o;14697:28::-;;;;:::o;18094:2174::-;14546:16;;14539:3;:23;;14517:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18231:1:::1;18214:14;:18;:52;;;;;15302:1;18236:14;:30;;18214:52;18192:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18343:14;18360:12;:10;:12::i;:::-;18431:4;::::0;:48:::1;::::0;;;;;:4:::1;:48:::0;;::::1;;::::0;::::1;::::0;18465:4:::1;18431:48:::0;;;;;;;;;;;;18343:29;;-1:-1:-1;18431:4:0;::::1;::::0;:17:::1;::::0;:48;;;;;::::1;::::0;;;;;;;;;:4:::1;::::0;:48;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18431:48:0;18409:138:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18578:17;::::0;:29:::1;::::0;18600:6;18578:21:::1;:29::i;:::-;18558:17;:49:::0;18618:15:::1;18636:13;:11;:13::i;:::-;18665:39;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;18618:31;;-1:-1:-1;18665:39:0::1;::::0;;;;;;;;::::1;18804:4;::::0;:18:::1;::::0;;;;;;;18776:25:::1;::::0;18804:4:::1;;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:4;:18;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18804:18:0;18918:21:::1;::::0;18804:18;;-1:-1:-1;18833:29:0::1;::::0;18918:21;;::::1;;;18914:215;;;19009:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19009:18:0;18954:73:::1;;::::0;-1:-1:-1;18914:215:0::1;;;19111:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19111:18:0::1;;::::0;19056:73:::1;;::::0;-1:-1:-1;18914:215:0::1;19140:22;19165:56;19203:17:::0;19165:33:::1;:21:::0;19191:6;19165:25:::1;:33::i;:::-;:37:::0;::::1;:56::i;:::-;19140:81;;19297:20;19320:48;19337:14;19353;19320:16;:48::i;:::-;19297:71;;19467:12;19444:19;;:35;;19422:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19603:19;::::0;:37:::1;::::0;19627:12;19603:23:::1;:37::i;:::-;19581:19;:59:::0;19671:17:::1;::::0;:35:::1;::::0;19693:12;19671:21:::1;:35::i;:::-;19651:17;:55:::0;19722:43:::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;19813:19;;:::i;:::-;19835:176;;;;;;;;19861:11;;19859:13;;;;;;;;;;19835:176;;;;19887:7;19835:176;;;;19909:14;19835:176;;;;19938:6;19835:176;;;;19959:14;19835:176;;;;19988:12;19835:176;;::::0;19813:198:::1;;20022:9;:17;20032:6;20022:17;;;;;;;;;;;;;;;20045:2;20022:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20064:196;20089:6;20110;20131:14;20160:12;20187:14;20216:7;20238:11;;20064:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14641:1;;;;;;;18094:2174:::0;;:::o;15665:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15665:48:0;;-1:-1:-1;15665:48:0;;;;:::o;23593:762::-;23811:14;;;23751:7;23811:14;;;:9;:14;;;;;:21;23798:34;;23776:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23936:14;;;;;;;:9;:14;;;;;:26;;23951:10;;23936:26;;;;;;;;;;;;;;;;:34;;;23925:7;:45;23903:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24040:15;24058:13;:11;:13::i;:::-;24040:31;;24082:20;24105:155;24136:7;24158:9;:14;24168:3;24158:14;;;;;;;;;;;;;;;24173:10;24158:26;;;;;;;;;;;;;;;;;;:35;;;24208:9;:14;24218:3;24208:14;;;;;;;;;;;;;;;24223:10;24208:26;;;;;;;;;;;;;;;;;;:41;;;24105:16;:155::i;:::-;24295:14;;;;;;;:9;:14;;;;;:26;;24082:178;;-1:-1:-1;24278:69:0;;24310:10;;24295:26;;;;;;;;;;;;;;;;:37;;;24334:12;24278:16;:69::i;:::-;24271:76;23593:762;-1:-1:-1;;;;;;23593:762:0:o;22163:110::-;22220:7;14546:16;;14539:3;:23;;14517:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22252:13:::1;:11;:13::i;:::-;22245:20;;22163:110:::0;:::o;15263:40::-;15302:1;15263:40;:::o;14773:32::-;;;;:::o;20276:1751::-;14546:16;;14539:3;:23;;14517:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20369:14:::1;20386:12;:10;:12::i;:::-;20369:29:::0;-1:-1:-1;20463:17:0::1;::::0;::::1;;::::0;;;:9:::1;:17;::::0;;;;:24;20450:37;::::1;20409:138;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20581:17;::::0;::::1;20558:20;20581:17:::0;;;:9:::1;:17;::::0;;;;:29;;20599:10;;20581:29;::::1;;;;;;;;;;;;;;;20558:52;;20657:7;20643:2;:10;;;:21;20621:100;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20732:15;20750:13;:11;:13::i;:::-;20732:31;;20774:25;20802:57;20819:7;20828:2;:11;;;20841:2;:17;;;20802:16;:57::i;:::-;20774:85;;20870:26;20899:50;20916:2;:13;;;20931:17;20899:16;:50::i;:::-;20870:79;;21012:18;20982:2;:26;;;:48;;20960:129;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;21102:4;::::0;21124:11:::1;::::0;::::1;::::0;21102:34:::1;::::0;;;;;:4:::1;:34:::0;;::::1;;::::0;::::1;::::0;;;;;;;;;;:4;;;::::1;::::0;:13:::1;::::0;:34;;;;;::::1;::::0;;;;;;;;:4:::1;::::0;:34;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;21189:11:0::1;::::0;::::1;::::0;21167:17:::1;::::0;:34:::1;::::0;:21:::1;:34::i;:::-;21147:17;:54:::0;21241:11:::1;::::0;::::1;::::0;21217:45:::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;21305:26;::::0;::::1;::::0;21275:27:::1;::::0;21305:50:::1;::::0;21336:18;21305:30:::1;:50::i;:::-;21388:19;::::0;21275:80;;-1:-1:-1;21388:44:0::1;::::0;21275:80;21388:23:::1;:44::i;:::-;21366:19;:66:::0;21485:26:::1;::::0;::::1;::::0;21463:17:::1;::::0;:49:::1;::::0;:21:::1;:49::i;:::-;21443:17;:69:::0;21551:26:::1;::::0;::::1;::::0;21528:59:::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;21614:13;::::0;:37:::1;::::0;21632:18;21614:17:::1;:37::i;:::-;21598:13;:53:::0;21662:11:::1;::::0;:48:::1;::::0;;;;;:11:::1;:48:::0;;::::1;;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:48;;;;;::::1;::::0;;;;;;;;:11:::1;::::0;:48;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;21726:53:0::1;::::0;;::::1;::::0;::::1;::::0;;21662:48:::1;21726:53:::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;21841:10:::0;;21866:11:::1;::::0;::::1;::::0;21797:178:::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;21986:33;21999:10;22011:7;21986:12;:33::i;:::-;14641:1;;;;;;20276:1751:::0;;:::o;2759:148::-;2339:12;:10;:12::i;:::-;2329:6;;:22;:6;;;:22;;;2321:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:1:::1;2850:6:::0;;2829:40:::1;::::0;::::1;2850:6:::0;;::::1;::::0;2829:40:::1;::::0;2866:1;;2829:40:::1;2897:1;2880:19:::0;;;::::1;::::0;;2759:148::o;22431:459::-;2339:12;:10;:12::i;:::-;2329:6;;:22;:6;;;:22;;;2321:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22636:1:::1;22628:5;:9;:34;;;;;15302:1;22641:5;:21;;22628:34;22606:111;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;22771:9:::0;22728:26:::1;22755:12;:5:::0;22765:1:::1;22755:9;:12::i;:::-;22728:40;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:52:::0;22836:11;22791:28:::1;22820:12;:5:::0;22830:1:::1;22820:9;:12::i;:::-;22791:42;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:56:::0;22858:24:::1;:22;:24::i;:::-;22431:459:::0;;;:::o;2117:79::-;2155:7;2182:6;;;2117:79;:::o;17260:826::-;2339:12;:10;:12::i;:::-;2329:6;;:22;:6;;;:22;;;2321:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17338:14:::1;17355:12;:10;:12::i;:::-;17338:29;;17410:7;:5;:7::i;:::-;17400:17;;:6;:17;;;17378:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17529:6;17513:13;;:22;17491:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17667:6;17645:19;;:28;17623:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17793:11;::::0;:36:::1;::::0;;;;;:11:::1;:36:::0;;::::1;;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:36;;;;;::::1;::::0;;;;;;;;:11:::1;::::0;:36;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17793:36:0;17771:128:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17926:13;::::0;:25:::1;::::0;17944:6;17926:17:::1;:25::i;:::-;17910:13;:41:::0;17984:19:::1;::::0;:31:::1;::::0;18008:6;17984:23:::1;:31::i;:::-;17962:19;:53:::0;18031:47:::1;18048:6:::0;18056;18064:13:::1;:11;:13::i;:::-;18031:47;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;::::1;2399:1;17260:826:::0;:::o;16812:440::-;16880:14;16897:12;:10;:12::i;:::-;16942:11;;:55;;;;;;:11;:55;;;;;;;16983:4;16942:55;;;;;;;;;;;;16880:29;;-1:-1:-1;16942:11:0;;;:24;;:55;;;;;;;;;;;;;;;:11;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16942:55:0;16920:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17093:13;;:25;;17111:6;17093:17;:25::i;:::-;17077:13;:41;17151:19;;:31;;17175:6;17151:23;:31::i;:::-;17129:19;:53;17198:46;17214:6;17222;17230:13;:11;:13::i;14199:26::-;;;;;;:::o;15230:::-;;;;:::o;15375:63::-;;;;;;;;;;14381:43;14422:2;14381:43;:::o;22281:142::-;22338:7;22370:45;22391:23;22399:14;;22391:3;:7;;:23;;;;:::i;:::-;22370:16;;;:20;:45::i;:::-;22363:52;22281:142;-1:-1:-1;;22281:142:0:o;14431:41::-;14470:2;14431:41;:::o;14307:31::-;;;;:::o;3062:244::-;2339:12;:10;:12::i;:::-;2329:6;;:22;:6;;;:22;;;2321:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3151:22:::1;::::0;::::1;3143:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3253:6;::::0;;3232:38:::1;::::0;::::1;::::0;;::::1;::::0;3253:6;::::1;::::0;3232:38:::1;::::0;::::1;3281:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3062:244::o;14732:34::-;;;;:::o;14345:29::-;;;;:::o;14273:25::-;;;;;;:::o;5596:471::-;5654:7;5899:6;5895:47;;-1:-1:-1;5929:1:0;5922:8;;5895:47;5966:5;;;5970:1;5966;:5;:1;5990:5;;;;;:10;5982:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6543:132;6601:7;6628:39;6632:1;6635;6628:39;;;;;;;;;;;;;;;;;:3;:39::i;4242:181::-;4300:7;4332:5;;;4356:6;;;;4348:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;665:106;753:10;665:106;:::o;25393:129::-;25437:7;25469:45;25499:14;;25469:25;25477:16;;25469:3;:7;;:25;;;;:::i;24728:657::-;24869:14;15302:1;24943:11;:27;;24901:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25063:1;25042:312;25075:11;25066:5;:20;25042:312;;25148:194;25302:28;25339:1;25331:5;:9;25302:39;;;;;;;;;;;;;;;;25148:127;14470:2;25148:87;25197:26;25232:1;25224:5;:9;25197:37;;;;;;;;;;;;;;;;;;25148:22;:10;25163:6;25148:14;:22::i;:::-;:48;;:87::i;:194::-;25121:221;;;;25088:7;;25042:312;;;;24728:657;;;;:::o;4706:136::-;4764:7;4791:43;4795:1;4798;4791:43;;;;;;;;;;;;;;;;;:3;:43::i;24363:357::-;24530:20;24583:41;14422:2;24583:21;:7;24595:8;24583:11;:21::i;:41::-;24568:56;;24654:14;24639:12;:29;24635:77;;;-1:-1:-1;24698:14:0;24363:357;-1:-1:-1;;24363:357:0:o;25530:661::-;25613:14;25630:12;:10;:12::i;:::-;25679:17;;;25653:23;25679:17;;;:9;:17;;;;;:24;25613:29;;-1:-1:-1;25768:15:0;25755:10;:28;25714:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25877:17;;;25854:20;25877:17;;;:9;:17;;;;;:29;;25895:10;;25877:29;;;;;;;;;;;;;;;;25854:52;;25953:7;25939:2;:10;;;:21;25917:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26063:1;26045:15;:19;26032:10;:32;26028:121;;;26111:17;;;;;;;:9;:17;;;;;:38;;26129:19;;;;26111:38;;;;;;;;;;;;;;;;26079:9;:17;26089:6;26079:17;;;;;;;;;;;;;;;26097:10;26079:29;;;;;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26028:121;26160:17;;;;;;;:9;:17;;;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25530:661:0:o;26199:1066::-;26279:6;26594:22;26612:3;26594:13;:6;26605:1;26594:10;:13::i;:22::-;26446:114;26528:28;26557:1;26528:31;;;;;;;;;;;;;;;;26446:59;26475:26;26502:1;26475:29;;;;;;;;;;;;;;;;26446:6;:28;;:59;;;;:::i;:114::-;:170;;26424:270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26875:22;26893:3;26875:13;:6;26886:1;26875:10;:13::i;:22::-;26727:114;26809:28;26838:1;26809:31;;;;;;;;;;;;;;;;26727:59;26756:26;26783:1;26756:29;;;;;;;26727:114;:170;;26705:270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27156:23;27175:3;27156:14;:6;27167:2;27156:10;:14::i;:23::-;27008:114;27090:28;27119:1;27090:31;;;;;;;;;;;;;;;;27008:59;27037:26;27064:1;27037:29;;;;;;;27008:114;:171;;26986:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26199:1066;:::o;7171:278::-;7257:7;7292:12;7285:5;7277:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7316:9;7332:1;7328;:5;;;;;;;7171:278;-1:-1:-1;;;;;7171:278:0:o;5145:192::-;5231:7;5267:12;5259:6;;;;5251:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5303:5:0;;;5145:192::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://a2bc1917a8e664409a256b99dd89d282d446a93b9bea2164c6765df0ea310906
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.