More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,877 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 18865610 | 396 days ago | IN | 0 ETH | 0.00170138 | ||||
Unstake | 18865569 | 396 days ago | IN | 0 ETH | 0.00164275 | ||||
Unstake | 18865564 | 396 days ago | IN | 0 ETH | 0.00129149 | ||||
Unstake | 18865563 | 396 days ago | IN | 0 ETH | 0.00153037 | ||||
Unstake | 18865508 | 396 days ago | IN | 0 ETH | 0.00179771 | ||||
Unstake | 18444180 | 455 days ago | IN | 0 ETH | 0.00277255 | ||||
Unstake | 18201769 | 489 days ago | IN | 0 ETH | 0.00089507 | ||||
Claim | 18201677 | 489 days ago | IN | 0 ETH | 0.00024483 | ||||
Unstake | 18136708 | 498 days ago | IN | 0 ETH | 0.00117 | ||||
Unstake | 17027197 | 654 days ago | IN | 0 ETH | 0.00343985 | ||||
Claim | 17027168 | 654 days ago | IN | 0 ETH | 0.00095121 | ||||
Unstake | 17019329 | 655 days ago | IN | 0 ETH | 0.00412828 | ||||
Unstake | 16950405 | 665 days ago | IN | 0 ETH | 0.00061269 | ||||
Unstake | 16693725 | 701 days ago | IN | 0 ETH | 0.0027711 | ||||
Unstake | 16547231 | 722 days ago | IN | 0 ETH | 0.00193531 | ||||
Unstake | 16461801 | 734 days ago | IN | 0 ETH | 0.00182403 | ||||
Unstake | 16461740 | 734 days ago | IN | 0 ETH | 0.0011909 | ||||
Unstake | 16305574 | 756 days ago | IN | 0 ETH | 0.00176918 | ||||
Unstake | 16303058 | 756 days ago | IN | 0 ETH | 0.00175049 | ||||
Unstake | 16303048 | 756 days ago | IN | 0 ETH | 0.00172696 | ||||
Unstake | 16303028 | 756 days ago | IN | 0 ETH | 0.00245328 | ||||
Claim | 16273998 | 760 days ago | IN | 0 ETH | 0.00049975 | ||||
Unstake | 16273981 | 760 days ago | IN | 0 ETH | 0.00201723 | ||||
Unstake | 16175976 | 774 days ago | IN | 0 ETH | 0.00246132 | ||||
Unstake | 16175876 | 774 days ago | IN | 0 ETH | 0.00139019 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
LobisStaking
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-23 */ // SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity 0.7.5; 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; } } interface IERC20 { function decimals() external view returns (uint8); /** * @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); } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.3._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.3._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } function addressToString(address _address) internal pure returns (string memory) { bytes32 _bytes = bytes32(uint256(_address)); bytes memory HEX = "0123456789abcdef"; bytes memory _addr = new bytes(42); _addr[0] = "0"; _addr[1] = "x"; for (uint256 i = 0; i < 20; i++) { _addr[2 + i * 2] = HEX[uint8(_bytes[i + 12] >> 4)]; _addr[3 + i * 2] = HEX[uint8(_bytes[i + 12] & 0x0f)]; } return string(_addr); } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, value) ); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance) ); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender).sub( value, "SafeERC20: decreased allowance below zero" ); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance) ); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall( data, "SafeERC20: low-level call failed" ); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require( abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } } } interface IOwnable { function manager() external view returns (address); function renounceManagement() external; function pushManagement(address newOwner_) external; function pullManagement() external; } contract Ownable is IOwnable { address internal _owner; address internal _newOwner; event OwnershipPushed( address indexed previousOwner, address indexed newOwner ); event OwnershipPulled( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = msg.sender; emit OwnershipPushed(address(0), _owner); } function manager() public view override returns (address) { return _owner; } modifier onlyManager() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } function renounceManagement() public virtual override onlyManager { emit OwnershipPushed(_owner, address(0)); _owner = address(0); } function pushManagement(address newOwner_) public virtual override onlyManager { require(newOwner_ != address(0), "Ownable: new owner is the zero address"); emit OwnershipPushed(_owner, newOwner_); _newOwner = newOwner_; } function pullManagement() public virtual override { require(msg.sender == _newOwner, "Ownable: must be new owner to pull"); emit OwnershipPulled(_owner, _newOwner); _owner = _newOwner; } } interface IsLOBI { function rebase(uint256 lobiProfit_, uint256 epoch_) external returns (uint256); function circulatingSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function gonsForBalance(uint256 amount) external view returns (uint256); function balanceForGons(uint256 gons) external view returns (uint256); function index() external view returns (uint256); } interface IWarmup { function retrieve(address staker_, uint256 amount_) external; } interface IDistributor { function distribute() external returns (bool); } contract LobisStaking is Ownable { using SafeMath for uint256; using SafeERC20 for IERC20; address public immutable LOBI; address public immutable sLOBI; struct Epoch { uint256 length; uint256 number; uint256 endBlock; uint256 distribute; } Epoch public epoch; address public distributor; address public locker; uint256 public totalBonus; address public warmupContract; uint256 public warmupPeriod; constructor( address _LOBI, address _sLOBI, uint256 _epochLength, uint256 _firstEpochNumber, uint256 _firstEpochBlock ) { require(_LOBI != address(0)); LOBI = _LOBI; require(_sLOBI != address(0)); sLOBI = _sLOBI; epoch = Epoch({ length: _epochLength, number: _firstEpochNumber, endBlock: _firstEpochBlock, distribute: 0 }); } struct Claim { uint256 deposit; uint256 gons; uint256 expiry; bool lock; // prevents malicious delays } mapping(address => Claim) public warmupInfo; /** @notice stake LOBI to enter warmup @param _amount uint @return bool */ function stake(uint256 _amount, address _recipient) external returns (bool) { rebase(); IERC20(LOBI).safeTransferFrom(msg.sender, address(this), _amount); Claim memory info = warmupInfo[_recipient]; require(!info.lock, "Deposits for account are locked"); warmupInfo[_recipient] = Claim({ deposit: info.deposit.add(_amount), gons: info.gons.add(IsLOBI(sLOBI).gonsForBalance(_amount)), expiry: epoch.number.add(warmupPeriod), lock: false }); IERC20(sLOBI).safeTransfer(warmupContract, _amount); return true; } /** @notice retrieve sLOBI from warmup @param _recipient address */ function claim(address _recipient) public { Claim memory info = warmupInfo[_recipient]; if (epoch.number >= info.expiry && info.expiry != 0) { delete warmupInfo[_recipient]; IWarmup(warmupContract).retrieve( _recipient, IsLOBI(sLOBI).balanceForGons(info.gons) ); } } /** @notice forfeit sLOBI in warmup and retrieve LOBI */ function forfeit() external { Claim memory info = warmupInfo[msg.sender]; delete warmupInfo[msg.sender]; IWarmup(warmupContract).retrieve( address(this), IsLOBI(sLOBI).balanceForGons(info.gons) ); IERC20(LOBI).safeTransfer(msg.sender, info.deposit); } /** @notice prevent new deposits to address (protection from malicious activity) */ function toggleDepositLock() external { warmupInfo[msg.sender].lock = !warmupInfo[msg.sender].lock; } /** @notice redeem sLOBI for LOBI @param _amount uint @param _trigger bool */ function unstake(uint256 _amount, bool _trigger) external { if (_trigger) { rebase(); } IERC20(sLOBI).safeTransferFrom(msg.sender, address(this), _amount); IERC20(LOBI).safeTransfer(msg.sender, _amount); } /** @notice returns the sLOBI index, which tracks rebase growth @return uint */ function index() public view returns (uint256) { return IsLOBI(sLOBI).index(); } /** @notice trigger rebase if epoch over */ function rebase() public { if (epoch.endBlock <= block.number) { IsLOBI(sLOBI).rebase(epoch.distribute, epoch.number); epoch.endBlock = epoch.endBlock.add(epoch.length); epoch.number++; if (distributor != address(0)) { IDistributor(distributor).distribute(); } uint256 balance = contractBalance(); uint256 staked = IsLOBI(sLOBI).circulatingSupply(); if (balance <= staked) { epoch.distribute = 0; } else { epoch.distribute = balance.sub(staked); } } } /** @notice returns contract LOBI holdings, including bonuses provided @return uint */ function contractBalance() public view returns (uint256) { return IERC20(LOBI).balanceOf(address(this)).add(totalBonus); } /** @notice provide bonus to locked staking contract @param _amount uint */ function giveLockBonus(uint256 _amount) external { require(msg.sender == locker); totalBonus = totalBonus.add(_amount); IERC20(sLOBI).safeTransfer(locker, _amount); } /** @notice reclaim bonus from locked staking contract @param _amount uint */ function returnLockBonus(uint256 _amount) external { require(msg.sender == locker); totalBonus = totalBonus.sub(_amount); IERC20(sLOBI).safeTransferFrom(locker, address(this), _amount); } enum CONTRACTS { DISTRIBUTOR, WARMUP, LOCKER } /** @notice sets the contract address for LP staking @param _contract address */ function setContract(CONTRACTS _contract, address _address) external onlyManager { if (_contract == CONTRACTS.DISTRIBUTOR) { // 0 distributor = _address; } else if (_contract == CONTRACTS.WARMUP) { // 1 require( warmupContract == address(0), "Warmup cannot be set more than once" ); warmupContract = _address; } else if (_contract == CONTRACTS.LOCKER) { // 2 require(locker == address(0), "Locker cannot be set more than once"); locker = _address; } } /** * @notice set warmup period for new stakers * @param _warmupPeriod uint */ function setWarmup(uint256 _warmupPeriod) external onlyManager { warmupPeriod = _warmupPeriod; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_LOBI","type":"address"},{"internalType":"address","name":"_sLOBI","type":"address"},{"internalType":"uint256","name":"_epochLength","type":"uint256"},{"internalType":"uint256","name":"_firstEpochNumber","type":"uint256"},{"internalType":"uint256","name":"_firstEpochBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipPulled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipPushed","type":"event"},{"inputs":[],"name":"LOBI","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"distribute","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forfeit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"giveLockBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pullManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"pushManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"returnLockBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sLOBI","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum LobisStaking.CONTRACTS","name":"_contract","type":"uint8"},{"internalType":"address","name":"_address","type":"address"}],"name":"setContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_warmupPeriod","type":"uint256"}],"name":"setWarmup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleDepositLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_trigger","type":"bool"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"warmupContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"warmupInfo","outputs":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"gons","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"lock","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"warmupPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b506040516119d13803806119d1833981810160405260a081101561003357600080fd5b50805160208201516040808401516060850151608090950151600080546001600160a01b031916331780825593519596949592949391926001600160a01b0392909216917fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba908290a36001600160a01b0385166100af57600080fd5b6001600160601b0319606086901b166080526001600160a01b0384166100d457600080fd5b6001600160601b0319606094851b1660a0526040805160808101825284815260208101849052908101829052600094018490526002929092556003556004556005555060805160601c60a05160601c61184b6101866000398061040b52806105a55280610686528061080c5280610a0f5280610b1b5280610dc25280610e535280610fae528061117552806112bd5250806109195280610cd25280610df75280610e20528061125c525061184b6000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638f077b83116100de578063bfe1092811610097578063deac361a11610071578063deac361a1461039e578063ed4acaa8146103a6578063f3d86e4a146103ae578063f62ae76a146103b657610173565b8063bfe1092814610371578063c9f464ff14610379578063d7b96d4e1461039657610173565b80638f077b83146102fe578063900cf0cf146103065780639ebea88c14610334578063a5ffd19714610359578063a8dd07dc14610361578063af14052c1461036957610173565b80634cf731dc116101305780634cf731dc146102295780635a96ac0a146102315780636746f4c2146102395780637acb775714610287578063865e6fd3146102c75780638b7afe2e146102f657610173565b806303c2367014610178578063089208d8146101975780631e83409a1461019f5780632986c0e5146101c557806346f68ee9146101df578063481c6a7514610205575b600080fd5b6101956004803603602081101561018e57600080fd5b50356103d3565b005b610195610437565b610195600480360360208110156101b557600080fd5b50356001600160a01b03166104ce565b6101cd610682565b60408051918252519081900360200190f35b610195600480360360208110156101f557600080fd5b50356001600160a01b031661070e565b61020d6107fb565b604080516001600160a01b039092168252519081900360200190f35b61020d61080a565b61019561082e565b61025f6004803603602081101561024f57600080fd5b50356001600160a01b03166108d8565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b6102b36004803603604081101561029d57600080fd5b50803590602001356001600160a01b0316610902565b604080519115158252519081900360200190f35b610195600480360360408110156102dd57600080fd5b50803560ff1690602001356001600160a01b0316610b4e565b6101cd610cc8565b610195610d74565b61030e610d98565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6101956004803603604081101561034a57600080fd5b50803590602001351515610da7565b61020d610e1e565b6101cd610e42565b610195610e48565b61020d611056565b6101956004803603602081101561038f57600080fd5b5035611065565b61020d6110b7565b6101cd6110c6565b61020d6110cc565b6101956110db565b610195600480360360208110156103cc57600080fd5b5035611285565b6007546001600160a01b031633146103ea57600080fd5b6008546103f790826112e7565b600855600754610434906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683611348565b50565b6000546001600160a01b03163314610484576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba908390a3600080546001600160a01b0319169055565b6104d6611713565b506001600160a01b0381166000908152600b6020908152604091829020825160808101845281548152600182015492810192909252600281015492820183905260039081015460ff16151560608301525490911180159061053a5750604081015115155b1561067e576001600160a01b038083166000908152600b602090815260408083208381556001810184905560028101939093556003909201805460ff19169055600954848201518351637965d56d60e01b8152600481019190915292519084169363c3a2a6659387937f000000000000000000000000000000000000000000000000000000000000000090921692637965d56d92602480840193919291829003018186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d602081101561061557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561066557600080fd5b505af1158015610679573d6000803e3d6000fd5b505050505b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632986c0e56040518163ffffffff1660e01b815260040160206040518083038186803b1580156106dd57600080fd5b505afa1580156106f1573d6000803e3d6000fd5b505050506040513d602081101561070757600080fd5b5051905090565b6000546001600160a01b0316331461075b576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b6001600160a01b0381166107a05760405162461bcd60e51b81526004018080602001828103825260268152602001806117616026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba91a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031633146108775760405162461bcd60e51b81526004018080602001828103825260228152602001806117aa6022913960400191505060405180910390fd5b600154600080546040516001600160a01b0393841693909116917faa151555690c956fc3ea32f106bb9f119b5237a061eaa8557cff3e51e3792c8d91a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600b6020526000908152604090208054600182015460028301546003909301549192909160ff1684565b600061090c610e48565b6109416001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661139f565b610949611713565b506001600160a01b0382166000908152600b602090815260409182902082516080810184528154815260018201549281019290925260028101549282019290925260039091015460ff1615801560608301526109ec576040805162461bcd60e51b815260206004820152601f60248201527f4465706f7369747320666f72206163636f756e7420617265206c6f636b656400604482015290519081900360640190fd5b604080516080810190915281518190610a0590876112e7565b8152602001610aa87f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631bd39674886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b50516020850151906112e7565b8152600a54600354602090920191610abf916112e7565b8152600060209182018190526001600160a01b038681168252600b8352604091829020845181559284015160018401559083015160028301556060909201516003909101805460ff1916911515919091179055600954610b44917f00000000000000000000000000000000000000000000000000000000000000008116911686611348565b5060019392505050565b6000546001600160a01b03163314610b9b576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b6000826002811115610ba957fe5b1415610bcf57600680546001600160a01b0319166001600160a01b03831617905561067e565b6001826002811115610bdd57fe5b1415610c4b576009546001600160a01b031615610c2b5760405162461bcd60e51b81526004018080602001828103825260238152602001806117876023913960400191505060405180910390fd5b600980546001600160a01b0319166001600160a01b03831617905561067e565b6002826002811115610c5957fe5b141561067e576007546001600160a01b031615610ca75760405162461bcd60e51b815260040180806020018281038252602381526020018061173e6023913960400191505060405180910390fd5b600780546001600160a01b0383166001600160a01b03199091161790555050565b6000610d6f6008547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d3d57600080fd5b505afa158015610d51573d6000803e3d6000fd5b505050506040513d6020811015610d6757600080fd5b5051906112e7565b905090565b336000908152600b60205260409020600301805460ff19811660ff90911615179055565b60025460035460045460055484565b8015610db557610db5610e48565b610dea6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561139f565b61067e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611348565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085481565b6004544310611054577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663058ecdb46002600301546002600101546040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b158015610ec957600080fd5b505af1158015610edd573d6000803e3d6000fd5b505050506040513d6020811015610ef357600080fd5b5050600254600454610f04916112e7565b6004556003805460010190556006546001600160a01b031615610f9e57600660009054906101000a90046001600160a01b03166001600160a01b031663e4fc6b6d6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b505050506040513d6020811015610f9b57600080fd5b50505b6000610fa8610cc8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639358928b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561100557600080fd5b505afa158015611019573d6000803e3d6000fd5b505050506040513d602081101561102f57600080fd5b5051905080821161104457600060055561067e565b61104e82826113ff565b60055550505b565b6006546001600160a01b031681565b6000546001600160a01b031633146110b2576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b600a55565b6007546001600160a01b031681565b600a5481565b6009546001600160a01b031681565b6110e3611713565b50336000818152600b602081815260408084208151608081018352815481526001820180548286019081526002840180548487015260038501805460ff8116151560608701529a8a5297875293889055908790559590915560ff1990951690925560095492518251637965d56d60e01b8152600481019190915291516001600160a01b039384169363c3a2a6659330937f000000000000000000000000000000000000000000000000000000000000000090921692637965d56d92602480840193919291829003018186803b1580156111bb57600080fd5b505afa1580156111cf573d6000803e3d6000fd5b505050506040513d60208110156111e557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561123557600080fd5b505af1158015611249573d6000803e3d6000fd5b5050825161043492506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691503390611348565b6007546001600160a01b0316331461129c57600080fd5b6008546112a990826113ff565b600855600754610434906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116308461139f565b600082820183811015611341576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261139a908490611441565b505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526113f9908590611441565b50505050565b600061134183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f2565b6060611496826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115899092919063ffffffff16565b80519091501561139a578080602001905160208110156114b557600080fd5b505161139a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806117ec602a913960400191505060405180910390fd5b600081848411156115815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561154657818101518382015260200161152e565b50505050905090810190601f1680156115735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b606061159884846000856115a0565b949350505050565b60606115ab8561170d565b6115fc576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061163b5780518252601f19909201916020918201910161161c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461169d576040519150601f19603f3d011682016040523d82523d6000602084013e6116a2565b606091505b509150915081156116b65791506115989050565b8051156116c65780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561154657818101518382015260200161152e565b3b151590565b6040518060800160405280600081526020016000815260200160008152602001600015158152509056fe4c6f636b65722063616e6e6f7420626520736574206d6f7265207468616e206f6e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735761726d75702063616e6e6f7420626520736574206d6f7265207468616e206f6e63654f776e61626c653a206d757374206265206e6577206f776e657220746f2070756c6c4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212209cdeb100190a603198e2197ab0606a7216911f617e86d6572407d7e83bcc8e2f64736f6c63430007050033000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e000000000000000000000000000000000000000000000000000000000000089800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000d0a06c
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80638f077b83116100de578063bfe1092811610097578063deac361a11610071578063deac361a1461039e578063ed4acaa8146103a6578063f3d86e4a146103ae578063f62ae76a146103b657610173565b8063bfe1092814610371578063c9f464ff14610379578063d7b96d4e1461039657610173565b80638f077b83146102fe578063900cf0cf146103065780639ebea88c14610334578063a5ffd19714610359578063a8dd07dc14610361578063af14052c1461036957610173565b80634cf731dc116101305780634cf731dc146102295780635a96ac0a146102315780636746f4c2146102395780637acb775714610287578063865e6fd3146102c75780638b7afe2e146102f657610173565b806303c2367014610178578063089208d8146101975780631e83409a1461019f5780632986c0e5146101c557806346f68ee9146101df578063481c6a7514610205575b600080fd5b6101956004803603602081101561018e57600080fd5b50356103d3565b005b610195610437565b610195600480360360208110156101b557600080fd5b50356001600160a01b03166104ce565b6101cd610682565b60408051918252519081900360200190f35b610195600480360360208110156101f557600080fd5b50356001600160a01b031661070e565b61020d6107fb565b604080516001600160a01b039092168252519081900360200190f35b61020d61080a565b61019561082e565b61025f6004803603602081101561024f57600080fd5b50356001600160a01b03166108d8565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b6102b36004803603604081101561029d57600080fd5b50803590602001356001600160a01b0316610902565b604080519115158252519081900360200190f35b610195600480360360408110156102dd57600080fd5b50803560ff1690602001356001600160a01b0316610b4e565b6101cd610cc8565b610195610d74565b61030e610d98565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6101956004803603604081101561034a57600080fd5b50803590602001351515610da7565b61020d610e1e565b6101cd610e42565b610195610e48565b61020d611056565b6101956004803603602081101561038f57600080fd5b5035611065565b61020d6110b7565b6101cd6110c6565b61020d6110cc565b6101956110db565b610195600480360360208110156103cc57600080fd5b5035611285565b6007546001600160a01b031633146103ea57600080fd5b6008546103f790826112e7565b600855600754610434906001600160a01b037f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e8116911683611348565b50565b6000546001600160a01b03163314610484576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba908390a3600080546001600160a01b0319169055565b6104d6611713565b506001600160a01b0381166000908152600b6020908152604091829020825160808101845281548152600182015492810192909252600281015492820183905260039081015460ff16151560608301525490911180159061053a5750604081015115155b1561067e576001600160a01b038083166000908152600b602090815260408083208381556001810184905560028101939093556003909201805460ff19169055600954848201518351637965d56d60e01b8152600481019190915292519084169363c3a2a6659387937f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e90921692637965d56d92602480840193919291829003018186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d602081101561061557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561066557600080fd5b505af1158015610679573d6000803e3d6000fd5b505050505b5050565b60007f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e6001600160a01b0316632986c0e56040518163ffffffff1660e01b815260040160206040518083038186803b1580156106dd57600080fd5b505afa1580156106f1573d6000803e3d6000fd5b505050506040513d602081101561070757600080fd5b5051905090565b6000546001600160a01b0316331461075b576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b6001600160a01b0381166107a05760405162461bcd60e51b81526004018080602001828103825260268152602001806117616026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917fea8258f2d9ddb679928cf34b78cf645b7feda9acc828e4dd82d014eaae270eba91a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b7f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e81565b6001546001600160a01b031633146108775760405162461bcd60e51b81526004018080602001828103825260228152602001806117aa6022913960400191505060405180910390fd5b600154600080546040516001600160a01b0393841693909116917faa151555690c956fc3ea32f106bb9f119b5237a061eaa8557cff3e51e3792c8d91a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600b6020526000908152604090208054600182015460028301546003909301549192909160ff1684565b600061090c610e48565b6109416001600160a01b037f000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d1633308661139f565b610949611713565b506001600160a01b0382166000908152600b602090815260409182902082516080810184528154815260018201549281019290925260028101549282019290925260039091015460ff1615801560608301526109ec576040805162461bcd60e51b815260206004820152601f60248201527f4465706f7369747320666f72206163636f756e7420617265206c6f636b656400604482015290519081900360640190fd5b604080516080810190915281518190610a0590876112e7565b8152602001610aa87f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e6001600160a01b0316631bd39674886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b50516020850151906112e7565b8152600a54600354602090920191610abf916112e7565b8152600060209182018190526001600160a01b038681168252600b8352604091829020845181559284015160018401559083015160028301556060909201516003909101805460ff1916911515919091179055600954610b44917f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e8116911686611348565b5060019392505050565b6000546001600160a01b03163314610b9b576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b6000826002811115610ba957fe5b1415610bcf57600680546001600160a01b0319166001600160a01b03831617905561067e565b6001826002811115610bdd57fe5b1415610c4b576009546001600160a01b031615610c2b5760405162461bcd60e51b81526004018080602001828103825260238152602001806117876023913960400191505060405180910390fd5b600980546001600160a01b0319166001600160a01b03831617905561067e565b6002826002811115610c5957fe5b141561067e576007546001600160a01b031615610ca75760405162461bcd60e51b815260040180806020018281038252602381526020018061173e6023913960400191505060405180910390fd5b600780546001600160a01b0383166001600160a01b03199091161790555050565b6000610d6f6008547f000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d3d57600080fd5b505afa158015610d51573d6000803e3d6000fd5b505050506040513d6020811015610d6757600080fd5b5051906112e7565b905090565b336000908152600b60205260409020600301805460ff19811660ff90911615179055565b60025460035460045460055484565b8015610db557610db5610e48565b610dea6001600160a01b037f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e1633308561139f565b61067e6001600160a01b037f000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d163384611348565b7f000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d81565b60085481565b6004544310611054577f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e6001600160a01b031663058ecdb46002600301546002600101546040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b158015610ec957600080fd5b505af1158015610edd573d6000803e3d6000fd5b505050506040513d6020811015610ef357600080fd5b5050600254600454610f04916112e7565b6004556003805460010190556006546001600160a01b031615610f9e57600660009054906101000a90046001600160a01b03166001600160a01b031663e4fc6b6d6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b505050506040513d6020811015610f9b57600080fd5b50505b6000610fa8610cc8565b905060007f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e6001600160a01b0316639358928b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561100557600080fd5b505afa158015611019573d6000803e3d6000fd5b505050506040513d602081101561102f57600080fd5b5051905080821161104457600060055561067e565b61104e82826113ff565b60055550505b565b6006546001600160a01b031681565b6000546001600160a01b031633146110b2576040805162461bcd60e51b815260206004820181905260248201526000805160206117cc833981519152604482015290519081900360640190fd5b600a55565b6007546001600160a01b031681565b600a5481565b6009546001600160a01b031681565b6110e3611713565b50336000818152600b602081815260408084208151608081018352815481526001820180548286019081526002840180548487015260038501805460ff8116151560608701529a8a5297875293889055908790559590915560ff1990951690925560095492518251637965d56d60e01b8152600481019190915291516001600160a01b039384169363c3a2a6659330937f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e90921692637965d56d92602480840193919291829003018186803b1580156111bb57600080fd5b505afa1580156111cf573d6000803e3d6000fd5b505050506040513d60208110156111e557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561123557600080fd5b505af1158015611249573d6000803e3d6000fd5b5050825161043492506001600160a01b037f000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d1691503390611348565b6007546001600160a01b0316331461129c57600080fd5b6008546112a990826113ff565b600855600754610434906001600160a01b037f0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e81169116308461139f565b600082820183811015611341576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261139a908490611441565b505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526113f9908590611441565b50505050565b600061134183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f2565b6060611496826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115899092919063ffffffff16565b80519091501561139a578080602001905160208110156114b557600080fd5b505161139a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806117ec602a913960400191505060405180910390fd5b600081848411156115815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561154657818101518382015260200161152e565b50505050905090810190601f1680156115735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b606061159884846000856115a0565b949350505050565b60606115ab8561170d565b6115fc576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061163b5780518252601f19909201916020918201910161161c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461169d576040519150601f19603f3d011682016040523d82523d6000602084013e6116a2565b606091505b509150915081156116b65791506115989050565b8051156116c65780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561154657818101518382015260200161152e565b3b151590565b6040518060800160405280600081526020016000815260200160008152602001600015158152509056fe4c6f636b65722063616e6e6f7420626520736574206d6f7265207468616e206f6e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735761726d75702063616e6e6f7420626520736574206d6f7265207468616e206f6e63654f776e61626c653a206d757374206265206e6577206f776e657220746f2070756c6c4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212209cdeb100190a603198e2197ab0606a7216911f617e86d6572407d7e83bcc8e2f64736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e000000000000000000000000000000000000000000000000000000000000089800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000d0a06c
-----Decoded View---------------
Arg [0] : _LOBI (address): 0xDEc41Db0c33F3F6f3cb615449C311ba22D418A8d
Arg [1] : _sLOBI (address): 0x8Ab17e2cd4F894F8641A31f99F673a5762F53c8e
Arg [2] : _epochLength (uint256): 2200
Arg [3] : _firstEpochNumber (uint256): 1
Arg [4] : _firstEpochBlock (uint256): 13672556
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000dec41db0c33f3f6f3cb615449c311ba22d418a8d
Arg [1] : 0000000000000000000000008ab17e2cd4f894f8641a31f99f673a5762f53c8e
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000898
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 0000000000000000000000000000000000000000000000000000000000d0a06c
Deployed Bytecode Sourcemap
20491:5797:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24829:184;;;;;;;;;;;;;;;;-1:-1:-1;24829:184:0;;:::i;:::-;;19223:145;;;:::i;22361:323::-;;;;;;;;;;;;;;;;-1:-1:-1;22361:323:0;-1:-1:-1;;;;;22361:323:0;;:::i;23745:88::-;;;:::i;:::-;;;;;;;;;;;;;;;;19374:263;;;;;;;;;;;;;;;;-1:-1:-1;19374:263:0;-1:-1:-1;;;;;19374:263:0;;:::i;19018:84::-;;;:::i;:::-;;;;-1:-1:-1;;;;;19018:84:0;;;;;;;;;;;;;;20627:30;;;:::i;19643:204::-;;;:::i;21513:43::-;;;;;;;;;;;;;;;;-1:-1:-1;21513:43:0;-1:-1:-1;;;;;21513:43:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21674:586;;;;;;;;;;;;;;;;-1:-1:-1;21674:586:0;;;;;;-1:-1:-1;;;;;21674:586:0;;:::i;:::-;;;;;;;;;;;;;;;;;;25513:568;;;;;;;;;;;;;;;;-1:-1:-1;25513:568:0;;;;;;;;-1:-1:-1;;;;;25513:568:0;;:::i;24590:130::-;;;:::i;23168:109::-;;;:::i;20777:18::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23397:235;;;;;;;;;;;;;;;;-1:-1:-1;23397:235:0;;;;;;;;;:::i;20593:29::-;;;:::i;20861:25::-;;;:::i;23901:569::-;;;:::i;20802:26::-;;;:::i;26181:104::-;;;;;;;;;;;;;;;;-1:-1:-1;26181:104:0;;:::i;20835:21::-;;;:::i;20927:27::-;;;:::i;20893:29::-;;;:::i;22765:295::-;;;:::i;25124:205::-;;;;;;;;;;;;;;;;-1:-1:-1;25124:205:0;;:::i;24829:184::-;24907:6;;-1:-1:-1;;;;;24907:6:0;24893:10;:20;24885:29;;;;;;24934:10;;:23;;24949:7;24934:14;:23::i;:::-;24921:10;:36;24991:6;;24964:43;;-1:-1:-1;;;;;24971:5:0;24964:26;;;24991:6;24999:7;24964:26;:43::i;:::-;24829:184;:::o;19223:145::-;19146:6;;-1:-1:-1;;;;;19146:6:0;19156:10;19146:20;19138:65;;;;;-1:-1:-1;;;19138:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19138:65:0;;;;;;;;;;;;;;;19333:1:::1;19317:6:::0;;19301:35:::1;::::0;-1:-1:-1;;;;;19317:6:0;;::::1;::::0;19301:35:::1;::::0;19333:1;;19301:35:::1;19360:1;19343:19:::0;;-1:-1:-1;;;;;;19343:19:0::1;::::0;;19223:145::o;22361:323::-;22410:17;;:::i;:::-;-1:-1:-1;;;;;;22430:22:0;;;;;;:10;:22;;;;;;;;;22410:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22463:12;22410:42;;-1:-1:-1;22463:27:0;;;:47;;-1:-1:-1;22494:11:0;;;;:16;;22463:47;22459:220;;;-1:-1:-1;;;;;22528:22:0;;;;;;;:10;:22;;;;;;;;22521:29;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22521:29:0;;;22567:14;;22652:9;;;;22623:39;;-1:-1:-1;;;22623:39:0;;;;;;;;;;;22567:14;;;;22559:32;;22539:10;;22630:5;22623:28;;;;;;:39;;;;;22528:22;;22623:39;;;;;;:28;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22623:39:0;22559:112;;;-1:-1:-1;;;;;;22559:112:0;;;;;;;-1:-1:-1;;;;;22559:112:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22559:112:0;;;;;;;-1:-1:-1;22559:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22459:220;22361:323;;:::o;23745:88::-;23783:7;23813:5;-1:-1:-1;;;;;23806:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23806:21:0;;-1:-1:-1;23745:88:0;:::o;19374:263::-;19146:6;;-1:-1:-1;;;;;19146:6:0;19156:10;19146:20;19138:65;;;;;-1:-1:-1;;;19138:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19138:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;19491:23:0;::::1;19483:74;;;;-1:-1:-1::0;;;19483:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19585:6;::::0;;19569:34:::1;::::0;-1:-1:-1;;;;;19569:34:0;;::::1;::::0;19585:6;::::1;::::0;19569:34:::1;::::0;::::1;19610:9;:21:::0;;-1:-1:-1;;;;;;19610:21:0::1;-1:-1:-1::0;;;;;19610:21:0;;;::::1;::::0;;;::::1;::::0;;19374:263::o;19018:84::-;19067:7;19090:6;-1:-1:-1;;;;;19090:6:0;19018:84;:::o;20627:30::-;;;:::o;19643:204::-;19722:9;;-1:-1:-1;;;;;19722:9:0;19708:10;:23;19700:70;;;;-1:-1:-1;;;19700:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19806:9;;;19798:6;;19782:34;;-1:-1:-1;;;;;19806:9:0;;;;19798:6;;;;19782:34;;;19832:9;;;19823:18;;-1:-1:-1;;;;;;19823:18:0;-1:-1:-1;;;;;19832:9:0;;;19823:18;;;;;;19643:204::o;21513:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21674:586::-;21744:4;21757:8;:6;:8::i;:::-;21774:65;-1:-1:-1;;;;;21781:4:0;21774:29;21804:10;21824:4;21831:7;21774:29;:65::i;:::-;21848:17;;:::i;:::-;-1:-1:-1;;;;;;21868:22:0;;;;;;:10;:22;;;;;;;;;21848:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21897:54;;;;;-1:-1:-1;;;21897:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21985:191;;;;;;;;;22009:12;;21985:191;;22009:25;;22026:7;22009:16;:25::i;:::-;21985:191;;;;22049:52;22070:5;-1:-1:-1;;;;;22063:28:0;;22092:7;22063:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22063:37:0;;22049:9;;;;:13;:52::i;:::-;21985:191;;22135:12;;22118;;21985:191;;;;;22118:30;;:16;:30::i;:::-;21985:191;;22163:5;21985:191;;;;;;;-1:-1:-1;;;;;21960:22:0;;;;;:10;:22;;;;;;;:216;;;;;;;;21985:191;21960:216;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21960:216:0;;;;;;;;;;22212:14;;22185:51;;22192:5;22185:26;;;22212:14;22228:7;22185:26;:51::i;:::-;-1:-1:-1;22250:4:0;;21674:586;-1:-1:-1;;;21674:586:0:o;25513:568::-;19146:6;;-1:-1:-1;;;;;19146:6:0;19156:10;19146:20;19138:65;;;;;-1:-1:-1;;;19138:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19138:65:0;;;;;;;;;;;;;;;25631:21:::1;25618:9;:34;;;;;;;;;25614:462;;;25675:11;:22:::0;;-1:-1:-1;;;;;;25675:22:0::1;-1:-1:-1::0;;;;;25675:22:0;::::1;;::::0;;25614:462:::1;;;25728:16;25715:9;:29;;;;;;;;;25711:365;;;25785:14;::::0;-1:-1:-1;;;;;25785:14:0::1;:28:::0;25767:103:::1;;;;-1:-1:-1::0;;;25767:103:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25879:14;:25:::0;;-1:-1:-1;;;;;;25879:25:0::1;-1:-1:-1::0;;;;;25879:25:0;::::1;;::::0;;25711:365:::1;;;25935:16;25922:9;:29;;;;;;;;;25918:158;;;25982:6;::::0;-1:-1:-1;;;;;25982:6:0::1;:20:::0;25974:68:::1;;;;-1:-1:-1::0;;;25974:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26051:6;:17:::0;;-1:-1:-1;;;;;26051:17:0;::::1;-1:-1:-1::0;;;;;;26051:17:0;;::::1;;::::0;;25513:568;;:::o;24590:130::-;24638:7;24661:53;24703:10;;24668:4;-1:-1:-1;;;;;24661:22:0;;24692:4;24661:37;;;;;;;;;;;;;-1:-1:-1;;;;;24661:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24661:37:0;;:41;:53::i;:::-;24654:60;;24590:130;:::o;23168:109::-;23255:10;23244:22;;;;:10;:22;;;;;:27;;;;-1:-1:-1;;23213:58:0;;23244:27;;;;23243:28;23213:58;;;23168:109::o;20777:18::-;;;;;;;;;;:::o;23397:235::-;23466:8;23462:39;;;23485:8;:6;:8::i;:::-;23507:66;-1:-1:-1;;;;;23514:5:0;23507:30;23538:10;23558:4;23565:7;23507:30;:66::i;:::-;23580:46;-1:-1:-1;;;;;23587:4:0;23580:25;23606:10;23618:7;23580:25;:46::i;20593:29::-;;;:::o;20861:25::-;;;;:::o;23901:569::-;23937:14;;23955:12;-1:-1:-1;23933:532:0;;23985:5;-1:-1:-1;;;;;23978:20:0;;23999:5;:16;;;24017:5;:12;;;23978:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24077:5:0;:12;24058:14;;:32;;:18;:32::i;:::-;24041:14;:49;24099:12;:14;;:12;:14;;;24128:11;;-1:-1:-1;;;;;24128:11:0;:25;24124:90;;24179:11;;;;;;;;;-1:-1:-1;;;;;24179:11:0;-1:-1:-1;;;;;24166:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24124:90:0;24224:15;24242:17;:15;:17::i;:::-;24224:35;;24268:14;24292:5;-1:-1:-1;;;;;24285:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24285:33:0;;-1:-1:-1;24333:17:0;;;24329:129;;24382:1;24363:16;:20;24329:129;;;24429:19;:7;24441:6;24429:11;:19::i;:::-;24410:16;:38;23933:532;;;23901:569::o;20802:26::-;;;-1:-1:-1;;;;;20802:26:0;;:::o;26181:104::-;19146:6;;-1:-1:-1;;;;;19146:6:0;19156:10;19146:20;19138:65;;;;;-1:-1:-1;;;19138:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19138:65:0;;;;;;;;;;;;;;;26251:12:::1;:28:::0;26181:104::o;20835:21::-;;;-1:-1:-1;;;;;20835:21:0;;:::o;20927:27::-;;;;:::o;20893:29::-;;;-1:-1:-1;;;;;20893:29:0;;:::o;22765:295::-;22800:17;;:::i;:::-;-1:-1:-1;22831:10:0;22820:22;;;;:10;:22;;;;;;;;22800:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22856:22;;;;;;22849:29;;;;;;;;;;;;-1:-1:-1;;22849:29:0;;;;;;22895:14;;22979:9;;22950:39;;-1:-1:-1;;;22950:39:0;;;;;;;;;;;-1:-1:-1;;;;;22895:14:0;;;;22887:32;;22936:4;;22957:5;22950:28;;;;;;:39;;;;;22820:22;;22950:39;;;;;;:28;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22950:39:0;22887:109;;;-1:-1:-1;;;;;;22887:109:0;;;;;;;-1:-1:-1;;;;;22887:109:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22887:109:0;;;;;;;-1:-1:-1;22887:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23041:12:0;;23003:51;;-1:-1:-1;;;;;;23010:4:0;23003:25;;-1:-1:-1;23029:10:0;;23003:25;:51::i;25124:205::-;25204:6;;-1:-1:-1;;;;;25204:6:0;25190:10;:20;25182:29;;;;;;25231:10;;:23;;25246:7;25231:14;:23::i;:::-;25218:10;:36;25292:6;;25261:62;;-1:-1:-1;;;;;25268:5:0;25261:30;;;25292:6;25308:4;25315:7;25261:30;:62::i;314:167::-;372:7;400:5;;;420:6;;;;412:46;;;;;-1:-1:-1;;;412:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;474:1;314:167;-1:-1:-1;;;314:167:0:o;15175:212::-;15316:58;;;-1:-1:-1;;;;;15316:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15316:58:0;-1:-1:-1;;;15316:58:0;;;15274:107;;15302:5;;15274:19;:107::i;:::-;15175:212;;;:::o;15393:245::-;15557:68;;;-1:-1:-1;;;;;15557:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15557:68:0;-1:-1:-1;;;15557:68:0;;;15515:117;;15543:5;;15515:19;:117::i;:::-;15393:245;;;;:::o;742:130::-;800:7;823:43;827:1;830;823:43;;;;;;;;;;;;;;;;;:3;:43::i;17615:778::-;18023:23;18049:90;18085:4;18049:90;;;;;;;;;;;;;;;;;18057:5;-1:-1:-1;;;;;18049:27:0;;;:90;;;;;:::i;:::-;18150:17;;18023:116;;-1:-1:-1;18150:21:0;18146:242;;18297:10;18286:30;;;;;;;;;;;;;;;-1:-1:-1;18286:30:0;18268:112;;;;-1:-1:-1;;;18268:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1153:198;1259:7;1291:12;1283:6;;;;1275:29;;;;-1:-1:-1;;;1275:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1323:5:0;;;1153:198::o;9357:210::-;9480:12;9508:53;9531:6;9539:4;9545:1;9548:12;9508:22;:53::i;:::-;9501:60;9357:210;-1:-1:-1;;;;9357:210:0:o;11010:900::-;11165:12;11194:18;11205:6;11194:10;:18::i;:::-;11186:60;;;;;-1:-1:-1;;;11186:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11312:12;11326:23;11353:6;-1:-1:-1;;;;;11353:11:0;11372:8;11390:4;11353:48;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11353:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11311:90;;;;11412:7;11408:497;;;11437:10;-1:-1:-1;11430:17:0;;-1:-1:-1;11430:17:0;11408:497;11535:17;;:21;11531:367;;11764:10;11758:17;11815:15;11802:10;11798:2;11794:19;11787:44;11722:120;11868:20;;-1:-1:-1;;;11868:20:0;;;;;;;;;;;;;;;;;11875:12;;11868:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6533:404;6883:20;6923:8;;;6533:404::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://9cdeb100190a603198e2197ab0606a7216911f617e86d6572407d7e83bcc8e2f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.