Contract Overview
Balance:
0 FTM
FTM Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x8f36c4c738502419669b70fc7159b98943a3284d0daa307452438c10531c7705 | 57866280 | 5 days 2 hrs ago | 0xc43815bdc7effeb98765ed6574bfb0f8beafef9c | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
FarmBooster
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at FtmScan.com on 2023-03-18 */ // SPDX-License-Identifier: MIT // File: VaultBoost/libs/IterateMapping.sol pragma solidity ^0.8.0; struct ItMap { // pid => boost mapping(uint256 => uint256) data; // pid => index mapping(uint256 => uint256) indexs; // array of pid uint256[] keys; // never use it, just for keep compile success. uint256 size; } library IterableMapping { function insert( ItMap storage self, uint256 key, uint256 value ) internal { uint256 keyIndex = self.indexs[key]; self.data[key] = value; if (keyIndex > 0) return; else { self.indexs[key] = self.keys.length + 1; self.keys.push(key); return; } } function remove(ItMap storage self, uint256 key) internal { uint256 index = self.indexs[key]; if (index == 0) return; uint256 lastKey = self.keys[self.keys.length - 1]; if (key != lastKey) { self.keys[index - 1] = lastKey; self.indexs[lastKey] = index; } delete self.data[key]; delete self.indexs[key]; self.keys.pop(); } function contains(ItMap storage self, uint256 key) internal view returns (bool) { return self.indexs[key] > 0; } } // File: VaultBoost/interfaces/IMasterChef.sol pragma solidity ^0.8.0; interface IMasterChef { function deposit( uint256 _pid, uint256 _amount, address _referrer ) external; function withdraw(uint256 _pid, uint256 _amount) external; function pendingBar(uint256 _pid, address _user) external view returns (uint256); function userInfo(uint256 _pid, address _user) external view returns ( uint256, uint256, uint256 ); function emergencyWithdraw(uint256 _pid) external; function lpToken(uint256 _pid) external view returns (address); function poolLength() external view returns (uint256 pools); function getBoostMultiplier(address _user, uint256 _pid) external view returns (uint256); function updateBoostMultiplier( address _user, uint256 _pid, uint256 _newMultiplier ) external; } // File: VaultBoost/interfaces/IBarPool.sol pragma solidity ^0.8.0; interface IBarPool { function userInfo(address _user) external view returns ( uint256, uint256, uint256, uint256, uint256, uint256, uint256, bool, uint256 ); function getPricePerFullShare() external view returns (uint256); function deposit(uint256 _amount, uint256 _lockDuration) external; function withdrawByAmount(uint256 _amount) external; function withdraw(uint256 _shares) external; function withdrawAll() external; function totalLockedAmount() external view returns (uint256); function totalShares() external view returns (uint256); function BOOST_WEIGHT() external view returns (uint256); function MAX_LOCK_DURATION() external view returns (uint256); } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: VaultBoost/FarmBooster.sol pragma solidity ^0.8.0; contract FarmBooster is Ownable { using IterableMapping for ItMap; /// @notice bar token. address public immutable BAR_TOKEN; /// @notice bar pool. address public immutable BAR_POOL; /// @notice Masterchef contract. address public immutable MASTER_CHEF; /// @notice boost proxy factory. address public BOOSTER_FACTORY; /// @notice NFT vault contract address public NFT_VAULT; /// @notice Maximum allowed boosted pool numbers uint256 public MAX_BOOST_POOL; /// @notice limit max boost uint256 public cA; /// @notice include 1e4 uint256 public constant MIN_CA = 1e4; /// @notice include 1e5 uint256 public constant MAX_CA = 1e5; /// @notice cA precision uint256 public constant CA_PRECISION = 1e5; /// @notice controls difficulties uint256 public cB; /// @notice not include 0 uint256 public constant MIN_CB = 0; /// @notice include 50 uint256 public constant MAX_CB = 50; /// @notice Masterchef basic boost factor, none boosted user's boost factor uint256 public constant BOOST_PRECISION = 100 * 1e10; /// @notice Masterchef Hard limit for maxmium boost factor uint256 public constant MAX_BOOST_PRECISION = 200 * 1e10; /// @notice Average boost ratio precion uint256 public constant BOOST_RATIO_PRECISION = 1e5; /// @notice bar pool BOOST_WEIGHT precision uint256 public constant BOOST_WEIGHT_PRECISION = 100 * 1e10; // 100% /// @notice The whitelist of pools allowed for farm boosting. mapping(uint256 => bool) public whiteList; /// @notice The boost proxy contract mapping(user => proxy). mapping(address => address) public proxyContract; /// @notice Info of each pool user. mapping(address => ItMap) public userInfo; /// @notice Boosted value by nft staking (user address => farm pid => nft boosted value) mapping(address => mapping(uint256 => uint256)) public userNftBoosts; event UpdateMaxBoostPool(uint256 factory); event UpdateBoostFactory(address factory); event UpdateNftVault(address booster); event UpdateCA(uint256 oldCA, uint256 newCA); event UpdateCB(uint256 oldCB, uint256 newCB); event Refresh(address indexed user, address proxy, uint256 pid); event UpdateBoostFarms(uint256 pid, bool status); event ActiveFarmPool(address indexed user, address proxy, uint256 pid); event DeactiveFarmPool(address indexed user, address proxy, uint256 pid); event UpdateBoostProxy(address indexed user, address proxy); event UpdateNftBoost(address indexed user, uint256 pid, uint256 boost); event UpdatePoolBoostMultiplier( address indexed user, uint256 pid, uint256 oldMultiplier, uint256 newMultiplier ); event UpdateBarPool( address indexed user, uint256 lockedAmount, uint256 lockedDuration, uint256 totalLockedAmount, uint256 maxLockDuration ); /// @param _bar BAR token contract address. /// @param _barPool Bar Pool contract address. /// @param _masterchef MasterChef contract address. /// @param _max Maximum allowed boosted farm quantity /// @param _cA Limit max boost /// @param _cB Controls difficulties constructor( address _bar, address _barPool, address _masterchef, uint256 _max, uint256 _cA, uint256 _cB ) { require( _max > 0 && _cA >= MIN_CA && _cA <= MAX_CA && _cB > MIN_CB && _cB <= MAX_CB, "constructor: Invalid parameter" ); BAR_TOKEN = _bar; BAR_POOL = _barPool; MASTER_CHEF = _masterchef; MAX_BOOST_POOL = _max; cA = _cA; cB = _cB; } /// @notice Checks if the msg.sender is a contract or a proxy modifier notContract() { require(!_isContract(msg.sender), "contract not allowed"); require(msg.sender == tx.origin, "proxy contract not allowed"); _; } /// @notice Checks if the msg.sender is the FarmBooster Factory. modifier onlyFactory() { require(msg.sender == BOOSTER_FACTORY, "onlyFactory: Not factory"); _; } /// @notice Checks if the msg.sender is the NFT booster. modifier onlyNftVault() { require(msg.sender == NFT_VAULT, "onlyNftVault: Not NftBooster"); _; } /// @notice Checks if the msg.sender is the FarmBooster Proxy. modifier onlyProxy(address _user) { require(msg.sender == proxyContract[_user], "onlyProxy: Not proxy"); _; } /// @notice Checks if the msg.sender is the bar pool. modifier onlyBarPool() { require(msg.sender == BAR_POOL, "onlyBarPool: Not bar pool"); _; } /// @notice set maximum allowed boosted pool numbers. function setMaxBoostPool(uint256 _max) external onlyOwner { require( _max > 0, "setMaxBoostPool: Maximum boost pool should greater than 0" ); MAX_BOOST_POOL = _max; emit UpdateMaxBoostPool(_max); } /// @notice set boost factory contract. function setBoostFactory(address _factory) external onlyOwner { require(_factory != address(0), "setBoostFactory: Invalid factory"); BOOSTER_FACTORY = _factory; emit UpdateBoostFactory(_factory); } /// @notice set nft boost contract. function setNftVault(address _vault) external onlyOwner { require(_vault != address(0), "setNftVault: Invalid vault"); NFT_VAULT = _vault; emit UpdateNftVault(_vault); } /// @notice Set user boost proxy contract, can only invoked by boost contract. /// @param _user boost user address. /// @param _proxy boost proxy contract. function setProxy(address _user, address _proxy) external onlyFactory { require(_proxy != address(0), "setProxy: Invalid proxy address"); require( proxyContract[_user] == address(0), "setProxy: User has already set proxy" ); proxyContract[_user] = _proxy; emit UpdateBoostProxy(_user, _proxy); } /// @notice Only allow whitelisted pids for farm boosting /// @param _pid pool id(Masterchef pool). /// @param _status farm pool allowed boosted or not function setBoosterFarms(uint256 _pid, bool _status) external onlyOwner { whiteList[_pid] = _status; emit UpdateBoostFarms(_pid, _status); } /// @notice limit max boost /// @param _cA max boost function setCA(uint256 _cA) external onlyOwner { require(_cA >= MIN_CA && _cA <= MAX_CA, "setCA: Invalid cA"); uint256 temp = cA; cA = _cA; emit UpdateCA(temp, cA); } /// @notice controls difficulties /// @param _cB difficulties function setCB(uint256 _cB) external onlyOwner { require(_cB > MIN_CB && _cB <= MAX_CB, "setCB: Invalid cB"); uint256 temp = cB; cB = _cB; emit UpdateCB(temp, cB); } /// @notice Bar pool operation(deposit/withdraw) automatically call this function. /// @param _user user address. /// @param _lockedAmount user locked amount in bar pool. /// @param _lockedDuration user locked duration in bar pool. /// @param _totalLockedAmount Total locked bar amount in bar pool. /// @param _maxLockDuration maximum locked duration in bar pool. function onBarPoolUpdate( address _user, uint256 _lockedAmount, uint256 _lockedDuration, uint256 _totalLockedAmount, uint256 _maxLockDuration ) external onlyBarPool { address proxy = proxyContract[_user]; ItMap storage itmap = userInfo[proxy]; uint256 avgDuration; bool flag; for (uint256 i = 0; i < itmap.keys.length; i++) { uint256 pid = itmap.keys[i]; if (!flag) { avgDuration = avgLockDuration(); flag = true; } _updateBoostMultiplier(_user, proxy, pid, avgDuration); } emit UpdateBarPool( _user, _lockedAmount, _lockedDuration, _totalLockedAmount, _maxLockDuration ); } /// @notice Nft vault operation(deposit/withdraw) automatically call this function. /// @param _user user address. /// @param _pid pool id in Masterchef pool /// @param _boost updated boost value. function onNftBoostUpdate( address _user, uint256 _pid, uint256 _boost ) external onlyNftVault { address proxy = proxyContract[_user]; userNftBoosts[_user][_pid] = _boost; _updateBoostMultiplier(_user, proxy, _pid, avgLockDuration()); emit UpdateNftBoost(_user, _pid, _boost); } /// @notice Update user boost multiplier in Masterchef pool,only for proxy. /// @param _user user address. /// @param _pid pool id in Masterchef pool. function updatePoolBoostMultiplier(address _user, uint256 _pid) public onlyProxy(_user) { // if user not actived this farm, just return. if (!userInfo[msg.sender].contains(_pid)) return; _updateBoostMultiplier(_user, msg.sender, _pid, avgLockDuration()); } /// @notice Active user farm pool. /// @param _pid pool id(Masterchef pool). function activate(uint256 _pid) external { address proxy = proxyContract[msg.sender]; require( whiteList[_pid] && proxy != address(0), "activate: Not boosted farm pool" ); ItMap storage itmap = userInfo[proxy]; require( itmap.keys.length < MAX_BOOST_POOL, "activate: Boosted farms reach to MAX" ); _updateBoostMultiplier(msg.sender, proxy, _pid, avgLockDuration()); emit ActiveFarmPool(msg.sender, proxy, _pid); } /// @notice Deactive user farm pool. /// @param _pid pool id(Masterchef pool). function deactive(uint256 _pid) external { address proxy = proxyContract[msg.sender]; ItMap storage itmap = userInfo[proxy]; require(itmap.contains(_pid), "deactive: None boost user"); if (itmap.data[_pid] > BOOST_PRECISION) { IMasterChef(MASTER_CHEF).updateBoostMultiplier( proxy, _pid, BOOST_PRECISION ); } itmap.remove(_pid); emit DeactiveFarmPool(msg.sender, proxy, _pid); } /// @notice Anyone can refesh sepecific user boost multiplier /// @param _user user address. /// @param _pid pool id(Masterchef pool). function refresh(address _user, uint256 _pid) external notContract { address proxy = proxyContract[_user]; ItMap storage itmap = userInfo[proxy]; require(itmap.contains(_pid), "refresh: None boost user"); _updateBoostMultiplier(_user, proxy, _pid, avgLockDuration()); emit Refresh(_user, proxy, _pid); } /// @notice Whether user boosted specific farm pool. /// @param _user user address. /// @param _pid pool id(Masterchef pool). function isBoostedPool(address _user, uint256 _pid) external view returns (bool) { return userInfo[proxyContract[_user]].contains(_pid); } /// @notice Actived farm pool list. /// @param _user user address. function activedPools(address _user) external view returns (uint256[] memory pools) { ItMap storage itmap = userInfo[proxyContract[_user]]; if (itmap.keys.length == 0) return pools; pools = new uint256[](itmap.keys.length); // solidity for-loop not support multiple variables initializae by ',' separate. uint256 i; for (uint256 index = 0; index < itmap.keys.length; index++) { uint256 pid = itmap.keys[index]; pools[i] = pid; i++; } } /// @notice Anyone can call this function, if you find some guys effectived multiplier is not fair /// for other users, just call 'refresh' function. /// @param _user user address. /// @param _pid pool id(Masterchef pool). /// @dev If return value not in range [BOOST_PRECISION, MAX_BOOST_PRECISION] /// the actual effectived multiplier will be the close to side boundry value. function getUserMultiplier(address _user, uint256 _pid) external view returns (uint256) { return userNftBoosts[_user][_pid] + _vaultBoostCalculate( _user, proxyContract[_user], _pid, avgLockDuration() ); } /// @notice bar pool average locked duration calculator. function avgLockDuration() public view returns (uint256) { uint256 totalStakedAmount = IERC20(BAR_TOKEN).balanceOf(BAR_POOL); uint256 totalLockedAmount = IBarPool(BAR_POOL).totalLockedAmount(); uint256 pricePerFullShare = IBarPool(BAR_POOL) .getPricePerFullShare(); uint256 flexibleShares = ((totalStakedAmount - totalLockedAmount) * 1e18) / pricePerFullShare; if (flexibleShares == 0) return 0; uint256 originalShares = (totalLockedAmount * 1e18) / pricePerFullShare; if (originalShares == 0) return 0; uint256 boostedRatio = ((IBarPool(BAR_POOL).totalShares() - flexibleShares) * BOOST_RATIO_PRECISION) / originalShares; if (boostedRatio <= BOOST_RATIO_PRECISION) return 0; uint256 boostWeight = IBarPool(BAR_POOL).BOOST_WEIGHT(); uint256 maxLockDuration = IBarPool(BAR_POOL).MAX_LOCK_DURATION() * BOOST_RATIO_PRECISION; uint256 duration = ((boostedRatio - BOOST_RATIO_PRECISION) * 365 * BOOST_WEIGHT_PRECISION) / boostWeight; return duration <= maxLockDuration ? duration : maxLockDuration; } /// @param _user user address. /// @param _proxy proxy address corresponding to the user. /// @param _pid pool id. /// @param _duration bar pool average locked duration. function _updateBoostMultiplier( address _user, address _proxy, uint256 _pid, uint256 _duration ) internal { ItMap storage itmap = userInfo[_proxy]; // Used to be boost farm pool and current is not, remove from mapping if (!whiteList[_pid]) { if (itmap.data[_pid] > BOOST_PRECISION) { // reset to BOOST_PRECISION IMasterChef(MASTER_CHEF).updateBoostMultiplier( _proxy, _pid, BOOST_PRECISION ); } itmap.remove(_pid); return; } uint256 prevMultiplier = IMasterChef(MASTER_CHEF).getBoostMultiplier( _proxy, _pid ); uint256 multiplier = userNftBoosts[_user][_pid] + _vaultBoostCalculate(_user, _proxy, _pid, _duration); if (multiplier < BOOST_PRECISION) { multiplier = BOOST_PRECISION; } else if (multiplier > MAX_BOOST_PRECISION) { multiplier = MAX_BOOST_PRECISION; } // Update multiplier to masterchef if (multiplier != prevMultiplier) { IMasterChef(MASTER_CHEF).updateBoostMultiplier( _proxy, _pid, multiplier ); } itmap.insert(_pid, multiplier); emit UpdatePoolBoostMultiplier(_user, _pid, prevMultiplier, multiplier); } /// @param _user user address. /// @param _proxy proxy address corresponding to the user. /// @param _pid pool id(Masterchef pool). /// @param _duration bar pool average locked duration. function _vaultBoostCalculate( address _user, address _proxy, uint256 _pid, uint256 _duration ) internal view returns (uint256) { if (_duration == 0) return BOOST_PRECISION; (uint256 lpBalance, , ) = IMasterChef(MASTER_CHEF).userInfo( _pid, _proxy ); uint256 dB = (cA * lpBalance) / CA_PRECISION; // dB == 0 means lpBalance close to 0 if (lpBalance == 0 || dB == 0) return BOOST_PRECISION; ( , , , , uint256 lockStartTime, uint256 lockEndTime, , , uint256 userLockedAmount ) = IBarPool(BAR_POOL).userInfo(_user); if (userLockedAmount == 0 || block.timestamp >= lockEndTime) return BOOST_PRECISION; // userLockedAmount > 0 means totalLockedAmount > 0 uint256 totalLockedAmount = IBarPool(BAR_POOL).totalLockedAmount(); IERC20 lp = IERC20(IMasterChef(MASTER_CHEF).lpToken(_pid)); uint256 userLockedDuration = (lockEndTime - lockStartTime) / (3600 * 24); // days uint256 aB = (((lp.balanceOf(MASTER_CHEF) * userLockedAmount * userLockedDuration) * BOOST_RATIO_PRECISION) / cB) / (totalLockedAmount * _duration); // should '*' BOOST_PRECISION return ((lpBalance < (dB + aB) ? lpBalance : (dB + aB)) * BOOST_PRECISION) / dB; } /// @notice Checks if address is a contract /// @dev It prevents contract from being targetted function _isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_bar","type":"address"},{"internalType":"address","name":"_barPool","type":"address"},{"internalType":"address","name":"_masterchef","type":"address"},{"internalType":"uint256","name":"_max","type":"uint256"},{"internalType":"uint256","name":"_cA","type":"uint256"},{"internalType":"uint256","name":"_cB","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"}],"name":"ActiveFarmPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"}],"name":"DeactiveFarmPool","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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"}],"name":"Refresh","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"lockedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockedDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalLockedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxLockDuration","type":"uint256"}],"name":"UpdateBarPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"factory","type":"address"}],"name":"UpdateBoostFactory","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"UpdateBoostFarms","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"proxy","type":"address"}],"name":"UpdateBoostProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldCA","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCA","type":"uint256"}],"name":"UpdateCA","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldCB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCB","type":"uint256"}],"name":"UpdateCB","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"factory","type":"uint256"}],"name":"UpdateMaxBoostPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"boost","type":"uint256"}],"name":"UpdateNftBoost","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"booster","type":"address"}],"name":"UpdateNftVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldMultiplier","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMultiplier","type":"uint256"}],"name":"UpdatePoolBoostMultiplier","type":"event"},{"inputs":[],"name":"BAR_POOL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BAR_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOOSTER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOOST_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOOST_RATIO_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOOST_WEIGHT_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CA_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MASTER_CHEF","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BOOST_POOL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BOOST_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_CA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_CB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_CA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_CB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFT_VAULT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"activate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"activedPools","outputs":[{"internalType":"uint256[]","name":"pools","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"avgLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"deactive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"getUserMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"isBoostedPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_lockedAmount","type":"uint256"},{"internalType":"uint256","name":"_lockedDuration","type":"uint256"},{"internalType":"uint256","name":"_totalLockedAmount","type":"uint256"},{"internalType":"uint256","name":"_maxLockDuration","type":"uint256"}],"name":"onBarPoolUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_boost","type":"uint256"}],"name":"onNftBoostUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"proxyContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"refresh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"name":"setBoostFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBoosterFarms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cA","type":"uint256"}],"name":"setCA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cB","type":"uint256"}],"name":"setCB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"name":"setMaxBoostPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setNftVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_proxy","type":"address"}],"name":"setProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePoolBoostMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"size","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userNftBoosts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"whiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e06040523480156200001157600080fd5b506040516200283938038062002839833981016040819052620000349162000175565b6200003f3362000108565b6000831180156200005257506127108210155b8015620000625750620186a08211155b80156200006f5750600081115b80156200007d575060328111155b620000ce5760405162461bcd60e51b815260206004820152601e60248201527f636f6e7374727563746f723a20496e76616c696420706172616d657465720000604482015260640160405180910390fd5b6001600160601b0319606096871b811660805294861b851660a0529290941b90921660c052600391909155600491909155600555620001da565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200017057600080fd5b919050565b60008060008060008060c087890312156200018e578182fd5b620001998762000158565b9550620001a96020880162000158565b9450620001b96040880162000158565b9350606087015192506080870151915060a087015190509295509295509295565b60805160601c60a05160601c60c05160601c6125af6200028a6000396000818161055d0152818161071501528181611aea01528181611b7f01528181611c9f01528181611de90152818161203401526120f20152600081816103290152818161095c01528181610a0901528181610a9e01528181610ba601528181610c7001528181610d09015281816112d701528181611ece0152611f8101526000818161041d015261098901526125af6000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063715018a6116101465780639c1ebe63116100c3578063b7d6ee5a11610087578063b7d6ee5a14610529578063c61a66e01461053c578063cc6db2da1461050a578063daa81f3014610545578063edd8b17014610558578063f2fde38b1461057f57600080fd5b80639c1ebe63146104e65780639cc1d7be146104ef578063a9d4630c146104f7578063ae69d1981461050a578063b260c42a1461051657600080fd5b8063810577141161010a578063810577141461048e5780638a8a6ee0146104975780638abe3003146103075780638da5cb5b146104aa57806396001fb2146104bb57600080fd5b8063715018a61461041057806375ce5577146104185780637644d70c1461043f5780637793617c14610452578063803f18dc1461046557600080fd5b80633a1d1e8c116101d45780635c5aaa49116101985780635c5aaa49146103075780635d1554d9146103d457806366406944146103e757806369b02128146103f05780636cbb37dd146103fd57600080fd5b80633a1d1e8c1461036357806349b61ce0146103765780634ffcbb3914610396578063521429b31461039e5780635c475d42146103b157600080fd5b806325f148731161021b57806325f14873146102ec5780632707a811146102ff5780632d015aff146103075780632d80451b1461031157806337a987761461032457600080fd5b8063040fb1f3146102585780630dcebf651461026d57806317adb6ee146102805780631959a002146102935780631a13b41e146102c9575b600080fd5b61026b61026636600461226d565b610592565b005b61026b61027b36600461237f565b61064a565b61026b61028e3660046122dd565b6107c6565b6102b66102a136600461226d565b60086020526000908152604090206003015481565b6040519081526020015b60405180910390f35b6102dc6102d73660046122dd565b610867565b60405190151581526020016102c0565b61026b6102fa36600461237f565b6108a6565b6102b6610945565b6102b6620186a081565b61026b61031f366004612308565b610dfa565b61034b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c0565b61026b61037136600461226d565b610ede565b61038961038436600461226d565b610f8a565b6040516102c09190612473565b6102b6603281565b60025461034b906001600160a01b031681565b6102dc6103bf36600461237f565b60066020526000908152604090205460ff1681565b60015461034b906001600160a01b031681565b6102b660035481565b6102b66501d1a94a200081565b61026b61040b36600461237f565b6110b2565b61026b61114d565b61034b7f000000000000000000000000000000000000000000000000000000000000000081565b61026b61044d3660046122dd565b611161565b61026b61046036600461233c565b6112cc565b61034b61047336600461226d565b6007602052600090815260409020546001600160a01b031681565b6102b660055481565b61026b6104a53660046123af565b611443565b6000546001600160a01b031661034b565b6102b66104c93660046122dd565b600960209081526000928352604080842090915290825290205481565b6102b660045481565b6102b6600081565b61026b6105053660046122a5565b61149d565b6102b664e8d4a5100081565b61026b61052436600461237f565b611628565b6102b66105373660046122dd565b61177e565b6102b661271081565b61026b61055336600461237f565b6117dd565b61034b7f000000000000000000000000000000000000000000000000000000000000000081565b61026b61058d36600461226d565b611890565b61059a611909565b6001600160a01b0381166105f55760405162461bcd60e51b815260206004820152601a60248201527f7365744e66745661756c743a20496e76616c6964207661756c7400000000000060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f26320a257bb9f478d4868cad7c93813c9e8ec31144cef458b2ab3cfe573caa96906020015b60405180910390a150565b336000908152600760209081526040808320546001600160a01b031680845260088352818420858552600181019093529220546106c95760405162461bcd60e51b815260206004820152601960248201527f64656163746976653a204e6f6e6520626f6f737420757365720000000000000060448201526064016105ec565b60008381526020829052604090205464e8d4a5100010156107725760405163041a84c960e01b81526001600160a01b0383811660048301526024820185905264e8d4a5100060448301527f0000000000000000000000000000000000000000000000000000000000000000169063041a84c990606401600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505b61077c8184611963565b604080516001600160a01b03841681526020810185905233917f95012b3ffd890212456f6da3513cee9eba8326003c39fcaaa1d2b5e0babe6eba91015b60405180910390a2505050565b6001600160a01b0382811660009081526007602052604090205483911633146108285760405162461bcd60e51b81526020600482015260146024820152736f6e6c7950726f78793a204e6f742070726f787960601b60448201526064016105ec565b33600090815260086020908152604080832085845260010190915290205461084f57505050565b61086283338461085d610945565b611a70565b505050565b6001600160a01b0382811660009081526007602090815260408083205490931682526008815282822084835260010190529081205415155b9392505050565b6108ae611909565b6000811180156108bf575060328111155b6108ff5760405162461bcd60e51b815260206004820152601160248201527039b2ba21a11d1024b73b30b634b21031a160791b60448201526064016105ec565b600580549082905560408051828152602081018490527fff6a4b972407d470846bd3a5979c60d68807653244cc8d096c4174a76486e71c91015b60405180910390a15050565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a039190612397565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166305a9f2746040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6057600080fd5b505afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a989190612397565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166377c7b8fc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610af557600080fd5b505afa158015610b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2d9190612397565b9050600081610b3c848661250e565b610b4e90670de0b6b3a76400006124ef565b610b5891906124cf565b905080610b6a57600094505050505090565b600082610b7f85670de0b6b3a76400006124ef565b610b8991906124cf565b905080610b9c5760009550505050505090565b600081620186a0847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633a98ef396040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c359190612397565b610c3f919061250e565b610c4991906124ef565b610c5391906124cf565b9050620186a08111610c6c576000965050505050505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc75f4b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610cc757600080fd5b505afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff9190612397565b90506000620186a07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f1bfc9e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6057600080fd5b505afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190612397565b610da291906124ef565b905060008264e8d4a51000610dba620186a08761250e565b610dc69061016d6124ef565b610dd091906124ef565b610dda91906124cf565b905081811115610dea5781610dec565b805b995050505050505050505090565b6002546001600160a01b03163314610e545760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c794e66745661756c743a204e6f74204e6674426f6f737465720000000060448201526064016105ec565b6001600160a01b038084166000908152600760209081526040808320546009835281842087855290925290912083905516610e9384828561085d610945565b60408051848152602081018490526001600160a01b038616917f45eea05a2437e890466ee52ce2400c524564d3bc5a051e6e7371c1d205db0c4791015b60405180910390a250505050565b610ee6611909565b6001600160a01b038116610f3c5760405162461bcd60e51b815260206004820181905260248201527f736574426f6f7374466163746f72793a20496e76616c696420666163746f727960448201526064016105ec565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fb9ce93c498aebed04d07c95e5f16a67e9b872b65650386f6f5df4982166a00339060200161063f565b6001600160a01b0380821660009081526007602090815260408083205490931682526008905220600281015460609190610fc45750919050565b600281015467ffffffffffffffff811115610fef57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611018578160200160208202803683370190505b5091506000805b60028301548110156110aa57600083600201828154811061105057634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508085848151811061107e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528261109381612525565b9350505080806110a290612525565b91505061101f565b505050919050565b6110ba611909565b61271081101580156110cf5750620186a08111155b61110f5760405162461bcd60e51b815260206004820152601160248201527073657443413a20496e76616c696420634160781b60448201526064016105ec565b600480549082905560408051828152602081018490527f948053d58d4dfed61c0843c01f010e1a4446c65f03d475567102cc64dfe0ecd49101610939565b611155611909565b61115f6000611d5d565b565b333b156111a75760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b60448201526064016105ec565b3332146111f65760405162461bcd60e51b815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f77656400000000000060448201526064016105ec565b6001600160a01b038281166000908152600760209081526040808320549093168083526008825283832085845260018101909252929091205461127b5760405162461bcd60e51b815260206004820152601860248201527f726566726573683a204e6f6e6520626f6f73742075736572000000000000000060448201526064016105ec565b61128984838561085d610945565b604080516001600160a01b038481168252602082018690528616917f6388bc5bf9da0fef8880f20ca5355e721c80037d6449b03917900238ffcca24f9101610ed0565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113445760405162461bcd60e51b815260206004820152601960248201527f6f6e6c79426172506f6f6c3a204e6f742062617220706f6f6c0000000000000060448201526064016105ec565b6001600160a01b0380861660009081526007602090815260408083205490931680835260089091529181209080805b60028401548110156113e45760008460020182815481106113a457634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050826113c5576113be610945565b9350600192505b6113d18b878387611a70565b50806113dc81612525565b915050611373565b506040805189815260208101899052908101879052606081018690526001600160a01b038a16907f512d1eab8539cb8fab88c8aae0e4b44239ba7e6006d8dbdb028d94e94bc808909060800160405180910390a2505050505050505050565b61144b611909565b600082815260066020908152604091829020805460ff19168415159081179091558251858152918201527fbeef892af000af61e107ef5e9c764acbccd54157fd6c219d241750fb3eca31029101610939565b6001546001600160a01b031633146114f75760405162461bcd60e51b815260206004820152601860248201527f6f6e6c79466163746f72793a204e6f7420666163746f7279000000000000000060448201526064016105ec565b6001600160a01b03811661154d5760405162461bcd60e51b815260206004820152601f60248201527f73657450726f78793a20496e76616c69642070726f787920616464726573730060448201526064016105ec565b6001600160a01b0382811660009081526007602052604090205416156115c15760405162461bcd60e51b8152602060048201526024808201527f73657450726f78793a20557365722068617320616c7265616479207365742070604482015263726f787960e01b60648201526084016105ec565b6001600160a01b0382811660008181526007602090815260409182902080546001600160a01b0319169486169485179055905192835290917fdebc5d6c541ae1ed122237a2c4adfe2d109e37c5848c54fb74477c7a6d95fcf3910160405180910390a25050565b336000908152600760209081526040808320548484526006909252909120546001600160a01b039091169060ff16801561166a57506001600160a01b03811615155b6116b65760405162461bcd60e51b815260206004820152601f60248201527f61637469766174653a204e6f7420626f6f73746564206661726d20706f6f6c0060448201526064016105ec565b6001600160a01b038116600090815260086020526040902060035460028201541061172f5760405162461bcd60e51b8152602060048201526024808201527f61637469766174653a20426f6f73746564206661726d7320726561636820746f6044820152630409a82b60e31b60648201526084016105ec565b61173d33838561085d610945565b604080516001600160a01b03841681526020810185905233917f9fde6fe213b149e24765c2e8365b56107f5ccaa4cf5bf0ab8e8a51c111c4f68c91016107b9565b6001600160a01b0380831660009081526007602052604081205490916117af91859116846117aa610945565b611dad565b6001600160a01b038416600090815260096020908152604080832086845290915290205461089f91906124b7565b6117e5611909565b6000811161185b5760405162461bcd60e51b815260206004820152603960248201527f7365744d6178426f6f7374506f6f6c3a204d6178696d756d20626f6f7374207060448201527f6f6f6c2073686f756c642067726561746572207468616e20300000000000000060648201526084016105ec565b60038190556040518181527f6c83390e748eac13e3531723e6b8cd596128bcf5e7828be22cb2e7f979b5b7df9060200161063f565b611898611909565b6001600160a01b0381166118fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ec565b61190681611d5d565b50565b6000546001600160a01b0316331461115f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ec565b60008181526001830160205260409020548061197e57505050565b600283018054600091906119949060019061250e565b815481106119b257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808314611a175780600285016119d660018561250e565b815481106119f457634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260018601909152604090208290555b6000838152602085815260408083208390556001870190915281205560028401805480611a5457634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6001600160a01b038316600090815260086020908152604080832085845260069092529091205460ff16611b575760008381526020829052604090205464e8d4a510001015611b475760405163041a84c960e01b81526001600160a01b0385811660048301526024820185905264e8d4a5100060448301527f0000000000000000000000000000000000000000000000000000000000000000169063041a84c990606401600060405180830381600087803b158015611b2e57600080fd5b505af1158015611b42573d6000803e3d6000fd5b505050505b611b518184611963565b50611d57565b604051626630dd60e31b81526001600160a01b038581166004830152602482018590526000917f00000000000000000000000000000000000000000000000000000000000000009091169063033186e89060440160206040518083038186803b158015611bc357600080fd5b505afa158015611bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfb9190612397565b90506000611c0b87878787611dad565b6001600160a01b0388166000908152600960209081526040808320898452909152902054611c3991906124b7565b905064e8d4a51000811015611c54575064e8d4a51000611c6b565b6501d1a94a2000811115611c6b57506501d1a94a20005b818114611cfc5760405163041a84c960e01b81526001600160a01b03878116600483015260248201879052604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063041a84c990606401600060405180830381600087803b158015611ce357600080fd5b505af1158015611cf7573d6000803e3d6000fd5b505050505b611d07838683612202565b60408051868152602081018490529081018290526001600160a01b038816907fe50f0d49657b1a6caa28100eec500f3aab7c4cc39633ebf432f02c2dec2e0e019060600160405180910390a25050505b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081611dc0575064e8d4a510006121fa565b6040516393f1a40b60e01b8152600481018490526001600160a01b0385811660248301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906393f1a40b9060440160606040518083038186803b158015611e2d57600080fd5b505afa158015611e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6591906123d3565b505090506000620186a082600454611e7d91906124ef565b611e8791906124cf565b9050811580611e94575080155b15611ea85764e8d4a51000925050506121fa565b604051630cacd00160e11b81526001600160a01b038881166004830152600091829182917f000000000000000000000000000000000000000000000000000000000000000090911690631959a002906024016101206040518083038186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4b9190612400565b9850505096509650505050508060001480611f665750814210155b15611f7d5764e8d4a51000955050505050506121fa565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166305a9f2746040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd857600080fd5b505afa158015611fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120109190612397565b6040516378ed5d1f60e01b8152600481018b90529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f9060240160206040518083038186803b15801561207657600080fd5b505afa15801561208a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ae9190612289565b90506000620151806120c0878761250e565b6120ca91906124cf565b905060006120d88b856124ef565b6005546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152620186a09186918a91908916906370a082319060240160206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217e9190612397565b61218891906124ef565b61219291906124ef565b61219c91906124ef565b6121a691906124cf565b6121b091906124cf565b90508764e8d4a510006121c383836124b7565b8b106121d8576121d3838b6124b7565b6121da565b8a5b6121e491906124ef565b6121ee91906124cf565b99505050505050505050505b949350505050565b600082815260018401602090815260408083205491869052909120829055801561222c5750505050565b600284015461223c9060016124b7565b6000848152600180870160209081526040832093909355600290960180549687018155815220909301919091555050565b60006020828403121561227e578081fd5b813561089f81612556565b60006020828403121561229a578081fd5b815161089f81612556565b600080604083850312156122b7578081fd5b82356122c281612556565b915060208301356122d281612556565b809150509250929050565b600080604083850312156122ef578182fd5b82356122fa81612556565b946020939093013593505050565b60008060006060848603121561231c578081fd5b833561232781612556565b95602085013595506040909401359392505050565b600080600080600060a08688031215612353578081fd5b853561235e81612556565b97602087013597506040870135966060810135965060800135945092505050565b600060208284031215612390578081fd5b5035919050565b6000602082840312156123a8578081fd5b5051919050565b600080604083850312156123c1578182fd5b8235915060208301356122d28161256b565b6000806000606084860312156123e7578283fd5b8351925060208401519150604084015190509250925092565b60008060008060008060008060006101208a8c03121561241e578384fd5b8951985060208a0151975060408a0151965060608a0151955060808a0151945060a08a0151935060c08a0151925060e08a015161245a8161256b565b809250506101008a015190509295985092959850929598565b6020808252825182820181905260009190848201906040850190845b818110156124ab5783518352928401929184019160010161248f565b50909695505050505050565b600082198211156124ca576124ca612540565b500190565b6000826124ea57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561250957612509612540565b500290565b60008282101561252057612520612540565b500390565b600060001982141561253957612539612540565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461190657600080fd5b801515811461190657600080fdfea26469706673582212204fb177b77f867d34fe713e675896ca2da3d472cb1a9dfb7bc367c057ed96429664736f6c634300080400330000000000000000000000006adea0efc8df952ac683680d860a1f4db69a942500000000000000000000000044d73993f4d38d7cfe856eb172fbd0d6f3c56d3c00000000000000000000000053948b7d375739e746a17c35d5883d51c649603c00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000007530000000000000000000000000000000000000000000000000000000000000000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006adea0efc8df952ac683680d860a1f4db69a942500000000000000000000000044d73993f4d38d7cfe856eb172fbd0d6f3c56d3c00000000000000000000000053948b7d375739e746a17c35d5883d51c649603c00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000007530000000000000000000000000000000000000000000000000000000000000000a
-----Decoded View---------------
Arg [0] : _bar (address): 0x6adea0efc8df952ac683680d860a1f4db69a9425
Arg [1] : _barPool (address): 0x44d73993f4d38d7cfe856eb172fbd0d6f3c56d3c
Arg [2] : _masterchef (address): 0x53948b7d375739e746a17c35d5883d51c649603c
Arg [3] : _max (uint256): 5
Arg [4] : _cA (uint256): 30000
Arg [5] : _cB (uint256): 10
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000006adea0efc8df952ac683680d860a1f4db69a9425
Arg [1] : 00000000000000000000000044d73993f4d38d7cfe856eb172fbd0d6f3c56d3c
Arg [2] : 00000000000000000000000053948b7d375739e746a17c35d5883d51c649603c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 0000000000000000000000000000000000000000000000000000000000007530
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Deployed ByteCode Sourcemap
9915:18204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15514:203;;;;;;:::i;:::-;;:::i;:::-;;20230:527;;;;;;:::i;:::-;;:::i;19179:311::-;;;;;;:::i;:::-;;:::i;11702:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12773:25:1;;;12761:2;12746:18;11702:41:0;;;;;;;;21421:184;;;;;;:::i;:::-;;:::i;:::-;;;5644:14:1;;5637:22;5619:41;;5607:2;5592:18;21421:184:0;5574:92:1;16967:206:0;;;;;;:::i;:::-;;:::i;23110:1209::-;;;:::i;11242:51::-;;11290:3;11242:51;;18654:351;;;;;;:::i;:::-;;:::i;10090:33::-;;;;;;;;-1:-1:-1;;;;;4166:32:1;;;4148:51;;4136:2;4121:18;10090:33:0;4103:102:1;15234:231:0;;;;;;:::i;:::-;;:::i;21690:576::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10888:35::-;;10921:2;10888:35;;10322:24;;;;;-1:-1:-1;;;;;10322:24:0;;;11492:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10249:30;;;;;-1:-1:-1;;;;;10249:30:0;;;10409:29;;;;;;11134:56;;11180:10;11134:56;;16680:207;;;;;;:::i;:::-;;:::i;9020:103::-;;;:::i;10022:34::-;;;;;20915:357;;;;;;:::i;:::-;;:::i;17575:854::-;;;;;;:::i;:::-;;:::i;11606:48::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;11606:48:0;;;10764:17;;;;;;16446:163;;;;;;:::i;:::-;;:::i;8372:87::-;8418:7;8445:6;-1:-1:-1;;;;;8445:6:0;8372:87;;11844:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10478:17;;;;;;10819:34;;10852:1;10819:34;;15896:375;;;;;;:::i;:::-;;:::i;11349:59::-;;11398:10;11349:59;;19585:548;;;;;;:::i;:::-;;:::i;22682:358::-;;;;;;:::i;:::-;;:::i;10531:36::-;;10564:3;10531:36;;14917:264;;;;;;:::i;:::-;;:::i;10168:36::-;;;;;9278:201;;;;;;:::i;:::-;;:::i;15514:203::-;8258:13;:11;:13::i;:::-;-1:-1:-1;;;;;15589:20:0;::::1;15581:59;;;::::0;-1:-1:-1;;;15581:59:0;;8927:2:1;15581:59:0::1;::::0;::::1;8909:21:1::0;8966:2;8946:18;;;8939:30;9005:28;8985:18;;;8978:56;9051:18;;15581:59:0::1;;;;;;;;;15651:9;:18:::0;;-1:-1:-1;;;;;;15651:18:0::1;-1:-1:-1::0;;;;;15651:18:0;::::1;::::0;;::::1;::::0;;;15687:22:::1;::::0;4148:51:1;;;15687:22:0::1;::::0;4136:2:1;4121:18;15687:22:0::1;;;;;;;;15514:203:::0;:::o;20230:527::-;20312:10;20282:13;20298:25;;;:13;:25;;;;;;;;;-1:-1:-1;;;;;20298:25:0;20356:15;;;:8;:15;;;;;1330:16;;;:11;;;:16;;;;;;20382:58;;;;-1:-1:-1;;;20382:58:0;;9991:2:1;20382:58:0;;;9973:21:1;10030:2;10010:18;;;10003:30;10069:27;10049:18;;;10042:55;10114:18;;20382:58:0;9963:175:1;20382:58:0;20457:10;:16;;;;;;;;;;;11053:10;-1:-1:-1;20453:209:0;;;20508:142;;-1:-1:-1;;;20508:142:0;;-1:-1:-1;;;;;4709:32:1;;;20508:142:0;;;4691:51:1;4758:18;;;4751:34;;;11053:10:0;4801:18:1;;;4794:34;20520:11:0;20508:46;;;;4664:18:1;;20508:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20453:209;20672:18;:5;20685:4;20672:12;:18::i;:::-;20708:41;;;-1:-1:-1;;;;;4402:32:1;;4384:51;;4466:2;4451:18;;4444:34;;;20725:10:0;;20708:41;;4357:18:1;20708:41:0;;;;;;;;20230:527;;;:::o;19179:311::-;-1:-1:-1;;;;;14604:20:0;;;;;;;:13;:20;;;;;;;;;14590:10;:34;14582:67;;;;-1:-1:-1;;;14582:67:0;;9282:2:1;14582:67:0;;;9264:21:1;9321:2;9301:18;;;9294:30;-1:-1:-1;;;9340:18:1;;;9333:50;9400:18;;14582:67:0;9254:170:1;14582:67:0;19371:10:::1;19362:20;::::0;;;:8:::1;:20;::::0;;;;;;;1330:16;;;:11;;:16;;;;;;19357:49:::1;;19179:311:::0;;;:::o;19357:49::-:1;19416:66;19439:5;19446:10;19458:4;19464:17;:15;:17::i;:::-;19416:22;:66::i;:::-;19179:311:::0;;;:::o;21421:184::-;-1:-1:-1;;;;;21561:20:0;;;21523:4;21561:20;;;:13;:20;;;;;;;;;;;;21552:30;;:8;:30;;;;;1330:16;;;:11;;:16;;;;;;:20;;21552:45;21545:52;21421:184;-1:-1:-1;;;21421:184:0:o;16967:206::-;8258:13;:11;:13::i;:::-;10852:1:::1;17033:3;:12;:29;;;;;10921:2;17049:3;:13;;17033:29;17025:59;;;::::0;-1:-1:-1;;;17025:59:0;;10698:2:1;17025:59:0::1;::::0;::::1;10680:21:1::0;10737:2;10717:18;;;10710:30;-1:-1:-1;;;10756:18:1;;;10749:47;10813:18;;17025:59:0::1;10670:167:1::0;17025:59:0::1;17110:2;::::0;;17123:8;;;;17147:18:::1;::::0;;13525:25:1;;;13581:2;13566:18;;13559:34;;;17147:18:0::1;::::0;13498::1;17147::0::1;;;;;;;;8282:1;16967:206:::0;:::o;23110:1209::-;23206:37;;-1:-1:-1;;;23206:37:0;;-1:-1:-1;;;;;23234:8:0;4166:32:1;;23206:37:0;;;4148:51:1;-1:-1:-1;;;;23213:9:0;23206:27;;;;4121:18:1;;23206:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23178:65;;23256:25;23293:8;-1:-1:-1;;;;;23284:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23256:66;;23335:25;23372:8;-1:-1:-1;;;;;23363:53:0;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23335:83;-1:-1:-1;23431:22:0;23335:83;23458:37;23478:17;23458;:37;:::i;:::-;23457:59;;23512:4;23457:59;:::i;:::-;23456:81;;;;:::i;:::-;23431:106;-1:-1:-1;23552:19:0;23548:33;;23580:1;23573:8;;;;;;23110:1209;:::o;23548:33::-;23594:22;23648:17;23620:24;:17;23640:4;23620:24;:::i;:::-;23619:46;;;;:::i;:::-;23594:71;-1:-1:-1;23680:19:0;23676:33;;23708:1;23701:8;;;;;;;23110:1209;:::o;23676:33::-;23722:20;23838:14;11290:3;23795:14;23756:8;-1:-1:-1;;;;;23747:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;;:::i;:::-;23746:88;;;;:::i;:::-;23745:107;;;;:::i;:::-;23722:130;;11290:3;23867:12;:37;23863:51;;23913:1;23906:8;;;;;;;;23110:1209;:::o;23863:51::-;23927:19;23958:8;-1:-1:-1;;;;;23949:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23927:55;;23993:23;11290:3;24028:8;-1:-1:-1;;;;;24019:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;;;:::i;:::-;23993:101;-1:-1:-1;24107:16:0;24226:11;11398:10;24128:36;11290:3;24128:12;:36;:::i;:::-;24127:57;;24181:3;24127:57;:::i;:::-;:95;;;;:::i;:::-;24126:111;;;;:::i;:::-;24107:130;;24267:15;24255:8;:27;;:56;;24296:15;24255:56;;;24285:8;24255:56;24248:63;;;;;;;;;;;23110:1209;:::o;18654:351::-;14399:9;;-1:-1:-1;;;;;14399:9:0;14385:10;:23;14377:64;;;;-1:-1:-1;;;14377:64:0;;6228:2:1;14377:64:0;;;6210:21:1;6267:2;6247:18;;;6240:30;6306;6286:18;;;6279:58;6354:18;;14377:64:0;6200:178:1;14377:64:0;-1:-1:-1;;;;;18808:20:0;;::::1;18792:13;18808:20:::0;;;:13:::1;:20;::::0;;;;;;;;18839:13:::1;:20:::0;;;;;:26;;;;;;;;;:35;;;18808:20:::1;18885:61;18822:5:::0;18808:20;18860:4;18928:17:::1;:15;:17::i;18885:61::-;18962:35;::::0;;13525:25:1;;;13581:2;13566:18;;13559:34;;;-1:-1:-1;;;;;18962:35:0;::::1;::::0;::::1;::::0;13498:18:1;18962:35:0::1;;;;;;;;14452:1;18654:351:::0;;;:::o;15234:231::-;8258:13;:11;:13::i;:::-;-1:-1:-1;;;;;15315:22:0;::::1;15307:67;;;::::0;-1:-1:-1;;;15307:67:0;;12108:2:1;15307:67:0::1;::::0;::::1;12090:21:1::0;;;12127:18;;;12120:30;12186:34;12166:18;;;12159:62;12238:18;;15307:67:0::1;12080:182:1::0;15307:67:0::1;15385:15;:26:::0;;-1:-1:-1;;;;;;15385:26:0::1;-1:-1:-1::0;;;;;15385:26:0;::::1;::::0;;::::1;::::0;;;15429:28:::1;::::0;4148:51:1;;;15429:28:0::1;::::0;4136:2:1;4121:18;15429:28:0::1;4103:102:1::0;21690:576:0;-1:-1:-1;;;;;21848:20:0;;;21817:19;21848:20;;;:13;:20;;;;;;;;;;;;21839:30;;:8;:30;;;21884:10;;;:17;21777:22;;21839:30;21880:40;;21908:12;21690:576;;;:::o;21880:40::-;21955:10;;;:17;21941:32;;;;;;-1:-1:-1;;;21941:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21941:32:0;-1:-1:-1;21933:40:0;-1:-1:-1;22074:9:0;;22094:165;22126:10;;;:17;22118:25;;22094:165;;;22169:11;22183:5;:10;;22194:5;22183:17;;;;;;-1:-1:-1;;;22183:17:0;;;;;;;;;;;;;;;;;22169:31;;22226:3;22215:5;22221:1;22215:8;;;;;;-1:-1:-1;;;22215:8:0;;;;;;;;;;;;;;;;;;:14;22244:3;;;;:::i;:::-;;;;22094:165;22145:7;;;;;:::i;:::-;;;;22094:165;;;;21690:576;;;;;:::o;16680:207::-;8258:13;:11;:13::i;:::-;10564:3:::1;16746;:13;;:30;;;;;10636:3;16763;:13;;16746:30;16738:60;;;::::0;-1:-1:-1;;;16738:60:0;;6585:2:1;16738:60:0::1;::::0;::::1;6567:21:1::0;6624:2;6604:18;;;6597:30;-1:-1:-1;;;6643:18:1;;;6636:47;6700:18;;16738:60:0::1;6557:167:1::0;16738:60:0::1;16824:2;::::0;;16837:8;;;;16861:18:::1;::::0;;13525:25:1;;;13581:2;13566:18;;13559:34;;;16861:18:0::1;::::0;13498::1;16861::0::1;13480:119:1::0;9020:103:0;8258:13;:11;:13::i;:::-;9085:30:::1;9112:1;9085:18;:30::i;:::-;9020:103::o:0;20915:357::-;13945:10;28055:17;28100:8;13924:57;;;;-1:-1:-1;;;13924:57:0;;11405:2:1;13924:57:0;;;11387:21:1;11444:2;11424:18;;;11417:30;-1:-1:-1;;;11463:18:1;;;11456:50;11523:18;;13924:57:0;11377:170:1;13924:57:0;14000:10;14014:9;14000:23;13992:62;;;;-1:-1:-1;;;13992:62:0;;5873:2:1;13992:62:0;;;5855:21:1;5912:2;5892:18;;;5885:30;5951:28;5931:18;;;5924:56;5997:18;;13992:62:0;5845:176:1;13992:62:0;-1:-1:-1;;;;;21009:20:0;;::::1;20993:13;21009:20:::0;;;:13:::1;:20;::::0;;;;;;;;;;::::1;21062:15:::0;;;:8:::1;:15:::0;;;;;1330:16;;;:11;;;:16;;;;;;;;21088:57:::1;;;::::0;-1:-1:-1;;;21088:57:0;;10345:2:1;21088:57:0::1;::::0;::::1;10327:21:1::0;10384:2;10364:18;;;10357:30;10423:26;10403:18;;;10396:54;10467:18;;21088:57:0::1;10317:174:1::0;21088:57:0::1;21158:61;21181:5;21188;21195:4;21201:17;:15;:17::i;21158:61::-;21237:27;::::0;;-1:-1:-1;;;;;4402:32:1;;;4384:51;;4466:2;4451:18;;4444:34;;;21237:27:0;::::1;::::0;::::1;::::0;4357:18:1;21237:27:0::1;4339:145:1::0;17575:854:0;14778:10;-1:-1:-1;;;;;14792:8:0;14778:22;;14770:60;;;;-1:-1:-1;;;14770:60:0;;11754:2:1;14770:60:0;;;11736:21:1;11793:2;11773:18;;;11766:30;11832:27;11812:18;;;11805:55;11877:18;;14770:60:0;11726:175:1;14770:60:0;-1:-1:-1;;;;;17817:20:0;;::::1;17801:13;17817:20:::0;;;:13:::1;:20;::::0;;;;;;;;;;::::1;17870:15:::0;;;:8:::1;:15:::0;;;;;;;17801:13;;17946:292:::1;17970:10;::::0;::::1;:17:::0;17966:21;::::1;17946:292;;;18009:11;18023:5;:10;;18034:1;18023:13;;;;;;-1:-1:-1::0;;;18023:13:0::1;;;;;;;;;;;;;;;;;18009:27;;18056:4;18051:107;;18095:17;:15;:17::i;:::-;18081:31;;18138:4;18131:11;;18051:107;18172:54;18195:5;18202;18209:3;18214:11;18172:22;:54::i;:::-;-1:-1:-1::0;17989:3:0;::::1;::::0;::::1;:::i;:::-;;;;17946:292;;;-1:-1:-1::0;18255:166:0::1;::::0;;14159:25:1;;;14215:2;14200:18;;14193:34;;;14243:18;;;14236:34;;;14301:2;14286:18;;14279:34;;;-1:-1:-1;;;;;18255:166:0;::::1;::::0;::::1;::::0;14146:3:1;14131:19;18255:166:0::1;;;;;;;14841:1;;;;17575:854:::0;;;;;:::o;16446:163::-;8258:13;:11;:13::i;:::-;16529:15:::1;::::0;;;:9:::1;:15;::::0;;;;;;;;:25;;-1:-1:-1;;16529:25:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16570:31;;13256:25:1;;;13297:18;;;13290:50;16570:31:0::1;::::0;13229:18:1;16570:31:0::1;13211:135:1::0;15896:375:0;14208:15;;-1:-1:-1;;;;;14208:15:0;14194:10;:29;14186:66;;;;-1:-1:-1;;;14186:66:0;;7743:2:1;14186:66:0;;;7725:21:1;7782:2;7762:18;;;7755:30;7821:26;7801:18;;;7794:54;7865:18;;14186:66:0;7715:174:1;14186:66:0;-1:-1:-1;;;;;15985:20:0;::::1;15977:64;;;::::0;-1:-1:-1;;;15977:64:0;;12469:2:1;15977:64:0::1;::::0;::::1;12451:21:1::0;12508:2;12488:18;;;12481:30;12547:33;12527:18;;;12520:61;12598:18;;15977:64:0::1;12441:181:1::0;15977:64:0::1;-1:-1:-1::0;;;;;16074:20:0;;::::1;16106:1;16074:20:::0;;;:13:::1;:20;::::0;;;;;::::1;:34:::0;16052:120:::1;;;::::0;-1:-1:-1;;;16052:120:0;;7338:2:1;16052:120:0::1;::::0;::::1;7320:21:1::0;7377:2;7357:18;;;7350:30;7416:34;7396:18;;;7389:62;-1:-1:-1;;;7467:18:1;;;7460:34;7511:19;;16052:120:0::1;7310:226:1::0;16052:120:0::1;-1:-1:-1::0;;;;;16185:20:0;;::::1;;::::0;;;:13:::1;:20;::::0;;;;;;;;:29;;-1:-1:-1;;;;;;16185:29:0::1;::::0;;::::1;::::0;;::::1;::::0;;16232:31;;4148:51:1;;;16185:20:0;;16232:31:::1;::::0;4121:18:1;16232:31:0::1;;;;;;;15896:375:::0;;:::o;19585:548::-;19667:10;19637:13;19653:25;;;:13;:25;;;;;;;;;19711:15;;;:9;:15;;;;;;;-1:-1:-1;;;;;19653:25:0;;;;19711:15;;:38;;;;-1:-1:-1;;;;;;19730:19:0;;;;19711:38;19689:119;;;;-1:-1:-1;;;19689:119:0;;9631:2:1;19689:119:0;;;9613:21:1;9670:2;9650:18;;;9643:30;9709:33;9689:18;;;9682:61;9760:18;;19689:119:0;9603:181:1;19689:119:0;-1:-1:-1;;;;;19843:15:0;;19821:19;19843:15;;;:8;:15;;;;;19911:14;;19891:10;;;:17;:34;19869:120;;;;-1:-1:-1;;;19869:120:0;;8096:2:1;19869:120:0;;;8078:21:1;8135:2;8115:18;;;8108:30;8174:34;8154:18;;;8147:62;-1:-1:-1;;;8225:18:1;;;8218:34;8269:19;;19869:120:0;8068:226:1;19869:120:0;20002:66;20025:10;20037:5;20044:4;20050:17;:15;:17::i;20002:66::-;20086:39;;;-1:-1:-1;;;;;4402:32:1;;4384:51;;4466:2;4451:18;;4444:34;;;20101:10:0;;20086:39;;4357:18:1;20086:39:0;4339:145:1;22682:358:0;-1:-1:-1;;;;;22938:20:0;;;22788:7;22938:20;;;:13;:20;;;;;;22788:7;;22875:157;;22914:5;;22938:20;22977:4;23000:17;:15;:17::i;:::-;22875:20;:157::i;:::-;-1:-1:-1;;;;;22833:20:0;;;;;;:13;:20;;;;;;;;:26;;;;;;;;;:199;;;;:::i;14917:264::-;8258:13;:11;:13::i;:::-;15015:1:::1;15008:4;:8;14986:115;;;::::0;-1:-1:-1;;;14986:115:0;;8501:2:1;14986:115:0::1;::::0;::::1;8483:21:1::0;8540:2;8520:18;;;8513:30;8579:34;8559:18;;;8552:62;8650:27;8630:18;;;8623:55;8695:19;;14986:115:0::1;8473:247:1::0;14986:115:0::1;15112:14;:21:::0;;;15149:24:::1;::::0;12773:25:1;;;15149:24:0::1;::::0;12761:2:1;12746:18;15149:24:0::1;12728:76:1::0;9278:201:0;8258:13;:11;:13::i;:::-;-1:-1:-1;;;;;9367:22:0;::::1;9359:73;;;::::0;-1:-1:-1;;;9359:73:0;;6931:2:1;9359:73:0::1;::::0;::::1;6913:21:1::0;6970:2;6950:18;;;6943:30;7009:34;6989:18;;;6982:62;-1:-1:-1;;;7060:18:1;;;7053:36;7106:19;;9359:73:0::1;6903:228:1::0;9359:73:0::1;9443:28;9462:8;9443:18;:28::i;:::-;9278:201:::0;:::o;8537:132::-;8418:7;8445:6;-1:-1:-1;;;;;8445:6:0;7003:10;8601:23;8593:68;;;;-1:-1:-1;;;8593:68:0;;11044:2:1;8593:68:0;;;11026:21:1;;;11063:18;;;11056:30;11122:34;11102:18;;;11095:62;11174:18;;8593:68:0;11016:182:1;768:424:0;837:13;853:16;;;:11;;;:16;;;;;;884:10;880:23;;896:7;768:424;;:::o;880:23::-;931:9;;;941:16;;913:15;;931:9;941:20;;960:1;;941:20;:::i;:::-;931:31;;;;;;-1:-1:-1;;;931:31:0;;;;;;;;;;;;;;;;;913:49;;984:7;977:3;:14;973:120;;1031:7;1008:9;;;1018;1026:1;1018:5;:9;:::i;:::-;1008:20;;;;;;-1:-1:-1;;;1008:20:0;;;;;;;;;;;;;;;;;;;;:30;;;;1053:20;;;:11;;;:20;;;;;;:28;;;973:120;1110:9;:14;;;;;;;;;;;1103:21;;;1142:11;;;:16;;;;;1135:23;1169:9;;;:15;;;;;-1:-1:-1;;;1169:15:0;;;;;;;;;;;;;;;;;;;;;;;;;;768:424;;;;:::o;24517:1519::-;-1:-1:-1;;;;;24698:16:0;;24676:19;24698:16;;;:8;:16;;;;;;;;24811:15;;;:9;:15;;;;;;;;;24806:381;;24847:10;:16;;;;;;;;;;;11053:10;-1:-1:-1;24843:279:0;;;24947:159;;-1:-1:-1;;;24947:159:0;;-1:-1:-1;;;;;4709:32:1;;;24947:159:0;;;4691:51:1;4758:18;;;4751:34;;;11053:10:0;4801:18:1;;;4794:34;24959:11:0;24947:46;;;;4664:18:1;;24947:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24843:279;25136:18;:5;25149:4;25136:12;:18::i;:::-;25169:7;;;24806:381;25224:94;;-1:-1:-1;;;25224:94:0;;-1:-1:-1;;;;;4402:32:1;;;25224:94:0;;;4384:51:1;4451:18;;;4444:34;;;25199:22:0;;25236:11;25224:43;;;;;;4357:18:1;;25224:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25199:119;;25329:18;25392:52;25413:5;25420:6;25428:4;25434:9;25392:20;:52::i;:::-;-1:-1:-1;;;;;25350:20:0;;;;;;:13;:20;;;;;;;;:26;;;;;;;;;:94;;;;:::i;:::-;25329:115;;11053:10;25461;:28;25457:192;;;-1:-1:-1;11053:10:0;25457:192;;;11180:10;25556;:32;25552:97;;;-1:-1:-1;11180:10:0;25552:97;25723:14;25709:10;:28;25705:199;;25754:138;;-1:-1:-1;;;25754:138:0;;-1:-1:-1;;;;;4709:32:1;;;25754:138:0;;;4691:51:1;4758:18;;;4751:34;;;4801:18;;;4794:34;;;25766:11:0;25754:46;;;;4664:18:1;;25754:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25705:199;25914:30;:5;25927:4;25933:10;25914:12;:30::i;:::-;25962:66;;;13806:25:1;;;13862:2;13847:18;;13840:34;;;13890:18;;;13883:34;;;-1:-1:-1;;;;;25962:66:0;;;;;13794:2:1;13779:18;25962:66:0;;;;;;;24517:1519;;;;;;;;:::o;9639:191::-;9713:16;9732:6;;-1:-1:-1;;;;;9749:17:0;;;-1:-1:-1;;;;;;9749:17:0;;;;;;9782:40;;9732:6;;;;;;;9782:40;;9713:16;9782:40;9639:191;;:::o;26251:1561::-;26411:7;26435:14;26431:42;;-1:-1:-1;11053:10:0;26451:22;;26431:42;26512:84;;-1:-1:-1;;;26512:84:0;;;;;12983:25:1;;;-1:-1:-1;;;;;13044:32:1;;;13024:18;;;13017:60;26487:17:0;;26524:11;26512:33;;;;;;12956:18:1;;26512:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26486:110;;;;26607:10;10715:3;26626:9;26621:2;;:14;;;;:::i;:::-;26620:31;;;;:::i;:::-;26607:44;-1:-1:-1;26713:14:0;;;:25;;-1:-1:-1;26731:7:0;;26713:25;26709:53;;;11053:10;26740:22;;;;;;26709:53;26988:34;;-1:-1:-1;;;26988:34:0;;-1:-1:-1;;;;;4166:32:1;;;26988:34:0;;;4148:51:1;-1:-1:-1;;;;;;26997:8:0;26988:27;;;;;;4121:18:1;;26988:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26775:247;;;;;;;;;;;;27037:16;27057:1;27037:21;:55;;;;27081:11;27062:15;:30;;27037:55;27033:96;;;11053:10;27107:22;;;;;;;;;27033:96;27203:25;27240:8;-1:-1:-1;;;;;27231:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27301;;-1:-1:-1;;;27301:38:0;;;;;12773:25:1;;;27203:66:0;;-1:-1:-1;27282:9:0;;-1:-1:-1;;;;;27313:11:0;27301:32;;;;12746:18:1;;27301:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27282:58;-1:-1:-1;27351:26:0;27426:9;27381:27;27395:13;27381:11;:27;:::i;:::-;27380:56;;;;:::i;:::-;27351:85;-1:-1:-1;27457:10:0;27613:29;27633:9;27613:17;:29;:::i;:::-;27593:2;;27473:25;;-1:-1:-1;;;27473:25:0;;-1:-1:-1;;;;;27486:11:0;4166:32:1;;27473:25:0;;;4148:51:1;11290:3:0;;27546:18;;27514:16;;27473:12;;;;;;4121:18:1;;27473:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;:::i;:::-;:91;;;;:::i;:::-;27472:117;;;;:::i;:::-;27471:124;;;;:::i;:::-;27470:173;;;;:::i;:::-;27457:186;-1:-1:-1;27802:2:0;11053:10;27730:7;27457:186;27802:2;27730:7;:::i;:::-;27717:9;:21;:45;;27754:7;27759:2;27754;:7;:::i;:::-;27717:45;;;27741:9;27717:45;27716:82;;;;:::i;:::-;27715:89;;;;:::i;:::-;27695:109;;;;;;;;;;;26251:1561;;;;;;;:::o;395:365::-;513:16;532;;;:11;;;:16;;;;;;;;;559:14;;;;;;;:22;;;596:12;;592:161;;610:7;395:365;;;:::o;592:161::-;666:9;;;:16;:20;;685:1;666:20;:::i;:::-;647:16;;;;:11;;;;:16;;;;;;;:39;;;;701:9;;;;:19;;;;;;;;;;;;;;;;;-1:-1:-1;;395:365:0:o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:325::-;1013:6;1021;1074:2;1062:9;1053:7;1049:23;1045:32;1042:2;;;1095:6;1087;1080:22;1042:2;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;1032:238:1:o;1275:393::-;1352:6;1360;1368;1421:2;1409:9;1400:7;1396:23;1392:32;1389:2;;;1442:6;1434;1427:22;1389:2;1486:9;1473:23;1505:31;1530:5;1505:31;:::i;:::-;1555:5;1607:2;1592:18;;1579:32;;-1:-1:-1;1658:2:1;1643:18;;;1630:32;;1379:289;-1:-1:-1;;;1379:289:1:o;1673:531::-;1768:6;1776;1784;1792;1800;1853:3;1841:9;1832:7;1828:23;1824:33;1821:2;;;1875:6;1867;1860:22;1821:2;1919:9;1906:23;1938:31;1963:5;1938:31;:::i;:::-;1988:5;2040:2;2025:18;;2012:32;;-1:-1:-1;2091:2:1;2076:18;;2063:32;;2142:2;2127:18;;2114:32;;-1:-1:-1;2193:3:1;2178:19;2165:33;;-1:-1:-1;1811:393:1;-1:-1:-1;;;1811:393:1:o;2209:190::-;2268:6;2321:2;2309:9;2300:7;2296:23;2292:32;2289:2;;;2342:6;2334;2327:22;2289:2;-1:-1:-1;2370:23:1;;2279:120;-1:-1:-1;2279:120:1:o;2404:194::-;2474:6;2527:2;2515:9;2506:7;2502:23;2498:32;2495:2;;;2548:6;2540;2533:22;2495:2;-1:-1:-1;2576:16:1;;2485:113;-1:-1:-1;2485:113:1:o;2603:319::-;2668:6;2676;2729:2;2717:9;2708:7;2704:23;2700:32;2697:2;;;2750:6;2742;2735:22;2697:2;2791:9;2778:23;2768:33;;2851:2;2840:9;2836:18;2823:32;2864:28;2886:5;2864:28;:::i;2927:316::-;3015:6;3023;3031;3084:2;3072:9;3063:7;3059:23;3055:32;3052:2;;;3105:6;3097;3090:22;3052:2;3139:9;3133:16;3123:26;;3189:2;3178:9;3174:18;3168:25;3158:35;;3233:2;3222:9;3218:18;3212:25;3202:35;;3042:201;;;;;:::o;3248:749::-;3387:6;3395;3403;3411;3419;3427;3435;3443;3451;3504:3;3492:9;3483:7;3479:23;3475:33;3472:2;;;3526:6;3518;3511:22;3472:2;3560:9;3554:16;3544:26;;3610:2;3599:9;3595:18;3589:25;3579:35;;3654:2;3643:9;3639:18;3633:25;3623:35;;3698:2;3687:9;3683:18;3677:25;3667:35;;3742:3;3731:9;3727:19;3721:26;3711:36;;3787:3;3776:9;3772:19;3766:26;3756:36;;3832:3;3821:9;3817:19;3811:26;3801:36;;3880:3;3869:9;3865:19;3859:26;3894:28;3916:5;3894:28;:::i;:::-;3941:5;3931:15;;;3986:3;3975:9;3971:19;3965:26;3955:36;;3462:535;;;;;;;;;;;:::o;4839:635::-;5010:2;5062:21;;;5132:13;;5035:18;;;5154:22;;;4981:4;;5010:2;5233:15;;;;5207:2;5192:18;;;4981:4;5279:169;5293:6;5290:1;5287:13;5279:169;;;5354:13;;5342:26;;5423:15;;;;5388:12;;;;5315:1;5308:9;5279:169;;;-1:-1:-1;5465:3:1;;4990:484;-1:-1:-1;;;;;;4990:484:1:o;14324:128::-;14364:3;14395:1;14391:6;14388:1;14385:13;14382:2;;;14401:18;;:::i;:::-;-1:-1:-1;14437:9:1;;14372:80::o;14457:217::-;14497:1;14523;14513:2;;-1:-1:-1;;;14548:31:1;;14602:4;14599:1;14592:15;14630:4;14555:1;14620:15;14513:2;-1:-1:-1;14659:9:1;;14503:171::o;14679:168::-;14719:7;14785:1;14781;14777:6;14773:14;14770:1;14767:21;14762:1;14755:9;14748:17;14744:45;14741:2;;;14792:18;;:::i;:::-;-1:-1:-1;14832:9:1;;14731:116::o;14852:125::-;14892:4;14920:1;14917;14914:8;14911:2;;;14925:18;;:::i;:::-;-1:-1:-1;14962:9:1;;14901:76::o;14982:135::-;15021:3;-1:-1:-1;;15042:17:1;;15039:2;;;15062:18;;:::i;:::-;-1:-1:-1;15109:1:1;15098:13;;15029:88::o;15122:127::-;15183:10;15178:3;15174:20;15171:1;15164:31;15214:4;15211:1;15204:15;15238:4;15235:1;15228:15;15254:131;-1:-1:-1;;;;;15329:31:1;;15319:42;;15309:2;;15375:1;15372;15365:12;15390:118;15476:5;15469:13;15462:21;15455:5;15452:32;15442:2;;15498:1;15495;15488:12
Swarm Source
ipfs://4fb177b77f867d34fe713e675896ca2da3d472cb1a9dfb7bc367c057ed964296
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.