More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 26,322 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 52232530 | 51 days ago | IN | 0 AVAX | 0.00318796 | ||||
Withdraw | 50275708 | 98 days ago | IN | 0 AVAX | 0.00292252 | ||||
Withdraw | 50275689 | 98 days ago | IN | 0 AVAX | 0.00277126 | ||||
Withdraw | 45691818 | 209 days ago | IN | 0 AVAX | 0.00364742 | ||||
Withdraw | 43789373 | 255 days ago | IN | 0 AVAX | 0.00298253 | ||||
Withdraw | 43723006 | 256 days ago | IN | 0 AVAX | 0.00286738 | ||||
Withdraw | 43722995 | 256 days ago | IN | 0 AVAX | 0.00227437 | ||||
Withdraw | 43080450 | 272 days ago | IN | 0 AVAX | 0.00334709 | ||||
Withdraw | 42506271 | 285 days ago | IN | 0 AVAX | 0.00352375 | ||||
Withdraw | 42364592 | 289 days ago | IN | 0 AVAX | 0.00363741 | ||||
Withdraw | 41011104 | 321 days ago | IN | 0 AVAX | 0.00209551 | ||||
Withdraw | 41011095 | 321 days ago | IN | 0 AVAX | 0.00231811 | ||||
Withdraw | 39937413 | 346 days ago | IN | 0 AVAX | 0.00069742 | ||||
Withdraw | 39937405 | 346 days ago | IN | 0 AVAX | 0.00352344 | ||||
Withdraw | 39811890 | 349 days ago | IN | 0 AVAX | 0.00299771 | ||||
Withdraw | 39811499 | 349 days ago | IN | 0 AVAX | 0.0027775 | ||||
Withdraw | 39317047 | 361 days ago | IN | 0 AVAX | 0.10127855 | ||||
Withdraw | 38280904 | 385 days ago | IN | 0 AVAX | 0.00352407 | ||||
Withdraw | 38268455 | 385 days ago | IN | 0 AVAX | 0.00352407 | ||||
Withdraw | 36193716 | 434 days ago | IN | 0 AVAX | 0.0049869 | ||||
Withdraw | 36153853 | 435 days ago | IN | 0 AVAX | 0.00317811 | ||||
Withdraw | 34539820 | 474 days ago | IN | 0 AVAX | 0.0029126 | ||||
Withdraw | 34539801 | 474 days ago | IN | 0 AVAX | 0.00229588 | ||||
Withdraw | 32597253 | 520 days ago | IN | 0 AVAX | 0.00347437 | ||||
Withdraw | 31948273 | 535 days ago | IN | 0 AVAX | 0.00352407 |
Loading...
Loading
Contract Name:
Sorbettiere
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at snowscan.xyz on 2021-11-14 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Collection of functions related to the address type */ 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 on 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); } /** * @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.4._ */ 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.4._ */ 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); } } } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract OwnableData { address public owner; address public pendingOwner; } abstract contract Ownable is OwnableData { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner { if (direct) { require(newOwner != address(0) || renounce, "Ownable: zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } else { pendingOwner = newOwner; } } function claimOwnership() public { address _pendingOwner = pendingOwner; require(msg.sender == _pendingOwner, "Ownable: caller != pending owner"); emit OwnershipTransferred(owner, _pendingOwner); owner = _pendingOwner; pendingOwner = address(0); } modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { 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) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _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"); } } } // Sorbettiere is a "semifredo of popsicle stand" this contract is created to provide single side farm for IFO of Popsicle Finance. // The contract is based on famous Masterchef contract (Ty guys for that) // It intakes one token and allows the user to farm another token. Due to the crosschain nature of Popsicle Stand we've swapped reward per block // to reward per second. Moreover, we've implemented safe transfer of reward instead of mint in Masterchef. // Future is crosschain... // The contract is ownable untill the DAO will be able to take over. Popsicle community shows that DAO is coming soon. // And the contract ownership will be transferred to other contract contract Sorbettiere is Ownable { using SafeERC20 for IERC20; // Info of each user. struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. uint256 remainingIceTokenReward; // ICE Tokens that weren't distributed for user per pool. // // We do some fancy math here. Basically, any point in time, the amount of ICE // entitled to a user but is pending to be distributed is: // // pending reward = (user.amount * pool.accICEPerShare) - user.rewardDebt // // Whenever a user deposits or withdraws Staked tokens to a pool. Here's what happens: // 1. The pool's `accICEPerShare` (and `lastRewardTime`) gets updated. // 2. User receives the pending reward sent to his/her address. // 3. User's `amount` gets updated. // 4. User's `rewardDebt` gets updated. } // Info of each pool. struct PoolInfo { IERC20 stakingToken; // Contract address of staked token uint256 stakingTokenTotalAmount; //Total amount of deposited tokens uint256 accIcePerShare; // Accumulated ICE per share, times 1e12. See below. uint32 lastRewardTime; // Last timestamp number that ICE distribution occurs. uint16 allocPoint; // How many allocation points assigned to this pool. ICE to distribute per second. } IERC20 immutable public ice; // The ICE TOKEN!! uint256 public icePerSecond; // Ice tokens vested per second. PoolInfo[] public poolInfo; // Info of each pool. mapping(uint256 => mapping(address => UserInfo)) public userInfo; // Info of each user that stakes tokens. uint256 public totalAllocPoint = 0; // Total allocation poitns. Must be the sum of all allocation points in all pools. uint32 immutable public startTime; // The timestamp when ICE farming starts. uint32 public endTime; // Time on which the reward calculation should end event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount); constructor( IERC20 _ice, uint256 _icePerSecond, uint32 _startTime ) { ice = _ice; icePerSecond = _icePerSecond; startTime = _startTime; endTime = _startTime + 7 days; } function changeEndTime(uint32 addSeconds) external onlyOwner { endTime += addSeconds; } // Changes Ice token reward per second. Use this function to moderate the `lockup amount`. Essentially this function changes the amount of the reward // which is entitled to the user for his token staking by the time the `endTime` is passed. //Good practice to update pools without messing up the contract function setIcePerSecond(uint256 _icePerSecond, bool _withUpdate) external onlyOwner { if (_withUpdate) { massUpdatePools(); } icePerSecond= _icePerSecond; } // How many pools are in the contract function poolLength() external view returns (uint256) { return poolInfo.length; } // Add a new staking token to the pool. Can only be called by the owner. // VERY IMPORTANT NOTICE // ----------- DO NOT add the same staking token more than once. Rewards will be messed up if you do. ------------- // Good practice to update pools without messing up the contract function add( uint16 _allocPoint, IERC20 _stakingToken, bool _withUpdate ) external onlyOwner { if (_withUpdate) { massUpdatePools(); } uint256 lastRewardTime = block.timestamp > startTime ? block.timestamp : startTime; totalAllocPoint +=_allocPoint; poolInfo.push( PoolInfo({ stakingToken: _stakingToken, stakingTokenTotalAmount: 0, allocPoint: _allocPoint, lastRewardTime: uint32(lastRewardTime), accIcePerShare: 0 }) ); } // Update the given pool's ICE allocation point. Can only be called by the owner. // Good practice to update pools without messing up the contract function set( uint256 _pid, uint16 _allocPoint, bool _withUpdate ) external onlyOwner { if (_withUpdate) { massUpdatePools(); } totalAllocPoint = totalAllocPoint - poolInfo[_pid].allocPoint + _allocPoint; poolInfo[_pid].allocPoint = _allocPoint; } // Return reward multiplier over the given _from to _to time. function getMultiplier(uint256 _from, uint256 _to) public view returns (uint256) { _from = _from > startTime ? _from : startTime; if (_from > endTime || _to < startTime) { return 0; } if (_to > endTime) { return endTime - _from; } return _to - _from; } // View function to see pending ICE on frontend. function pendingIce(uint256 _pid, address _user) external view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accIcePerShare = pool.accIcePerShare; if (block.timestamp > pool.lastRewardTime && pool.stakingTokenTotalAmount != 0) { uint256 multiplier = getMultiplier(pool.lastRewardTime, block.timestamp); uint256 iceReward = multiplier * icePerSecond * pool.allocPoint / totalAllocPoint; accIcePerShare += iceReward * 1e12 / pool.stakingTokenTotalAmount; } return user.amount * accIcePerShare / 1e12 - user.rewardDebt + user.remainingIceTokenReward; } // Update reward vairables for all pools. Be careful of gas spending! function massUpdatePools() public { uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { updatePool(pid); } } // Update reward variables of the given pool to be up-to-date. function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; if (block.timestamp <= pool.lastRewardTime) { return; } if (pool.stakingTokenTotalAmount == 0) { pool.lastRewardTime = uint32(block.timestamp); return; } uint256 multiplier = getMultiplier(pool.lastRewardTime, block.timestamp); uint256 iceReward = multiplier * icePerSecond * pool.allocPoint / totalAllocPoint; pool.accIcePerShare += iceReward * 1e12 / pool.stakingTokenTotalAmount; pool.lastRewardTime = uint32(block.timestamp); } // Deposit staking tokens to Sorbettiere for ICE allocation. function deposit(uint256 _pid, uint256 _amount) public { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; updatePool(_pid); if (user.amount > 0) { uint256 pending = user.amount * pool.accIcePerShare / 1e12 - user.rewardDebt + user.remainingIceTokenReward; user.remainingIceTokenReward = safeRewardTransfer(msg.sender, pending); } pool.stakingToken.safeTransferFrom( address(msg.sender), address(this), _amount ); user.amount += _amount; pool.stakingTokenTotalAmount += _amount; user.rewardDebt = user.amount * pool.accIcePerShare / 1e12; emit Deposit(msg.sender, _pid, _amount); } // Withdraw staked tokens from Sorbettiere. function withdraw(uint256 _pid, uint256 _amount) public { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; require(user.amount >= _amount, "Sorbettiere: you cant eat that much popsicles"); updatePool(_pid); uint256 pending = user.amount * pool.accIcePerShare / 1e12 - user.rewardDebt + user.remainingIceTokenReward; user.remainingIceTokenReward = safeRewardTransfer(msg.sender, pending); user.amount -= _amount; pool.stakingTokenTotalAmount -= _amount; user.rewardDebt = user.amount * pool.accIcePerShare / 1e12; pool.stakingToken.safeTransfer(address(msg.sender), _amount); emit Withdraw(msg.sender, _pid, _amount); } // Withdraw without caring about rewards. EMERGENCY ONLY. function emergencyWithdraw(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; uint256 userAmount = user.amount; pool.stakingTokenTotalAmount -= userAmount; delete userInfo[_pid][msg.sender]; pool.stakingToken.safeTransfer(address(msg.sender), userAmount); emit EmergencyWithdraw(msg.sender, _pid, userAmount); } // Safe ice transfer function. Just in case if the pool does not have enough ICE token, // The function returns the amount which is owed to the user function safeRewardTransfer(address _to, uint256 _amount) internal returns(uint256) { uint256 iceTokenBalance = ice.balanceOf(address(this)); if (iceTokenBalance == 0) { //save some gas fee return _amount; } if (_amount > iceTokenBalance) { //save some gas fee ice.safeTransfer(_to, iceTokenBalance); return _amount - iceTokenBalance; } ice.safeTransfer(_to, _amount); return 0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"_ice","type":"address"},{"internalType":"uint256","name":"_icePerSecond","type":"uint256"},{"internalType":"uint32","name":"_startTime","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","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":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint16","name":"_allocPoint","type":"uint16"},{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"addSeconds","type":"uint32"}],"name":"changeEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"}],"name":"getMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ice","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"icePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingIce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"stakingToken","type":"address"},{"internalType":"uint256","name":"stakingTokenTotalAmount","type":"uint256"},{"internalType":"uint256","name":"accIcePerShare","type":"uint256"},{"internalType":"uint32","name":"lastRewardTime","type":"uint32"},{"internalType":"uint16","name":"allocPoint","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint16","name":"_allocPoint","type":"uint16"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_icePerSecond","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"setIcePerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"remainingIceTokenReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405260006005553480156200001657600080fd5b5060405162001faf38038062001faf8339810160408190526200003991620000d4565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160601b0319606084901b1660805260028290556001600160e01b031960e082901b1660a052620000b08162093a806200012f565b6006805463ffffffff191663ffffffff929092169190911790555062000166915050565b600080600060608486031215620000ea57600080fd5b83516001600160a01b03811681146200010257600080fd5b60208501516040860151919450925063ffffffff811681146200012457600080fd5b809150509250925092565b600063ffffffff8083168185168083038211156200015d57634e487b7160e01b600052601160045260246000fd5b01949350505050565b60805160601c60a05160e01c611de5620001ca600039600081816102eb01528181610bc801528181610bf501528181610c3701528181610d3d0152610d6a0152600081816102690152818161147c01528181611528015261157b0152611de56000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063630b5ba1116100e3578063cf42947b1161008c578063e30c397811610066578063e30c3978146103e1578063eaa6ef0414610401578063f4cd1b021461041457600080fd5b8063cf42947b146103a8578063d1c1b4a8146103bb578063e2bbb158146103ce57600080fd5b80638dbb1e3a116100bd5780638dbb1e3a1461032d57806393f1a40b1461034057806398ec8da61461039557600080fd5b8063630b5ba1146102de57806378e97925146102e65780638da5cb5b1461030d57600080fd5b80633197cbb6116101455780634e71e0c81161011f5780634e71e0c8146102b057806351eb05a6146102b85780635312ea8e146102cb57600080fd5b80633197cbb61461022c578063441a3e70146102515780634c2a860d1461026457600080fd5b80631526fe27116101765780631526fe27146101be57806317caf6f11461021a5780631b2e7d551461022357600080fd5b8063078dfbe714610192578063081e3eda146101a7575b600080fd5b6101a56101a03660046119f3565b610427565b005b6003545b6040519081526020015b60405180910390f35b6101d16101cc366004611a89565b61060d565b6040805173ffffffffffffffffffffffffffffffffffffffff909616865260208601949094529284019190915263ffffffff16606083015261ffff16608082015260a0016101b5565b6101ab60055481565b6101ab60025481565b60065461023c9063ffffffff1681565b60405163ffffffff90911681526020016101b5565b6101a561025f366004611b35565b610672565b61028b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b5565b6101a561085b565b6101a56102c6366004611a89565b610971565b6101a56102d9366004611a89565b610ab2565b6101a5610b99565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60005461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b6101ab61033b366004611b35565b610bc4565b61037a61034e366004611abb565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101b5565b6101a56103a3366004611a5b565b610caa565b6101a56103b6366004611b57565b610f1a565b6101a56103c9366004611b10565b610fd7565b6101a56103dc366004611b35565b6110ff565b60015461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b6101a561040f366004611aeb565b611255565b6101ab610422366004611abb565b6112ea565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b81156105c75773ffffffffffffffffffffffffffffffffffffffff83161515806104d45750805b61053a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f2061646472657373000000000000000000000060448201526064016104a4565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff85167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b6003818154811061061d57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919063ffffffff811690640100000000900461ffff1685565b60006003838154811061068757610687611d4d565b6000918252602080832086845260048083526040808620338752909352919093208054929091029092019250831115610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f536f7262657474696572653a20796f752063616e74206561742074686174206d60448201527f75636820706f707369636c65730000000000000000000000000000000000000060648201526084016104a4565b61074b84610971565b60008160020154826001015464e8d4a51000856002015485600001546107719190611c65565b61077b9190611c2a565b6107859190611ca2565b61078f9190611bea565b905061079b3382611434565b60028301558154849083906000906107b4908490611ca2565b92505081905550838360010160008282546107cf9190611ca2565b90915550506002830154825464e8d4a51000916107eb91611c65565b6107f59190611c2a565b6001830155825461081d9073ffffffffffffffffffffffffffffffffffffffff1633866115ac565b604051848152859033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689060200160405180910390a35050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163381146108dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016104a4565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b60006003828154811061098657610986611d4d565b60009182526020909120600490910201600381015490915063ffffffff1642116109ae575050565b60018101546109eb5760030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000164263ffffffff1617905550565b6003810154600090610a039063ffffffff1642610bc4565b905060006005548360030160049054906101000a900461ffff1661ffff1660025484610a2f9190611c65565b610a399190611c65565b610a439190611c2a565b6001840154909150610a5a8264e8d4a51000611c65565b610a649190611c2a565b836002016000828254610a779190611bea565b9091555050505060030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000164263ffffffff1617905550565b600060038281548110610ac757610ac7611d4d565b6000918252602080832085845260048083526040808620338752909352918420805493909202016001810180549195509193839291610b07908490611ca2565b90915550506000848152600460209081526040808320338085529252822082815560018101839055600201919091558354610b5b9173ffffffffffffffffffffffffffffffffffffffff90911690836115ac565b604051818152849033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595906020015b60405180910390a350505050565b60035460005b81811015610bc057610bb081610971565b610bb981611ce5565b9050610b9f565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168311610c1f577f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610c21565b825b60065490935063ffffffff16831180610c5f57507f000000000000000000000000000000000000000000000000000000000000000063ffffffff1682105b15610c6c57506000610ca4565b60065463ffffffff16821115610c9757600654610c9090849063ffffffff16611ca2565b9050610ca4565b610ca18383611ca2565b90505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b8015610d3957610d39610b99565b60007f000000000000000000000000000000000000000000000000000000000000000063ffffffff164211610d94577f000000000000000000000000000000000000000000000000000000000000000063ffffffff16610d96565b425b90508361ffff1660056000828254610dae9190611bea565b90915550506040805160a08101825273ffffffffffffffffffffffffffffffffffffffff948516815260006020820181815292820181815263ffffffff9485166060840190815261ffff98891660808501908152600380546001810182559452935160049093027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b81018054949099167fffffffffffffffffffffffff00000000000000000000000000000000000000009094169390931790975592517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82015591517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d83015593517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e90910180549451909516640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000009094169116179190911790915550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b60068054829190600090610fb690849063ffffffff16611c02565b92506101000a81548163ffffffff021916908363ffffffff16021790555050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b801561106657611066610b99565b8161ffff166003848154811061107e5761107e611d4d565b60009182526020909120600490910201600301546005546110ab91640100000000900461ffff1690611ca2565b6110b59190611bea565b60058190555081600384815481106110cf576110cf611d4d565b906000526020600020906004020160030160046101000a81548161ffff021916908361ffff160217905550505050565b60006003838154811061111457611114611d4d565b6000918252602080832086845260048083526040808620338752909352919093209102909101915061114584610971565b8054156111a35760008160020154826001015464e8d4a51000856002015485600001546111729190611c65565b61117c9190611c2a565b6111869190611ca2565b6111909190611bea565b905061119c3382611434565b6002830155505b81546111c79073ffffffffffffffffffffffffffffffffffffffff16333086611680565b828160000160008282546111db9190611bea565b92505081905550828260010160008282546111f69190611bea565b90915550506002820154815464e8d4a510009161121291611c65565b61121c9190611c2a565b6001820155604051838152849033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590602001610b8b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b80156112e4576112e4610b99565b50600255565b6000806003848154811061130057611300611d4d565b600091825260208083208784526004808352604080862073ffffffffffffffffffffffffffffffffffffffff8a168752909352919093209102909101600281015460038201549193509063ffffffff16421180156113615750600183015415155b156113ee57600383015460009061137e9063ffffffff1642610bc4565b905060006005548560030160049054906101000a900461ffff1661ffff16600254846113aa9190611c65565b6113b49190611c65565b6113be9190611c2a565b60018601549091506113d58264e8d4a51000611c65565b6113df9190611c2a565b6113e99084611bea565b925050505b60028201546001830154835464e8d4a510009061140c908590611c65565b6114169190611c2a565b6114209190611ca2565b61142a9190611bea565b9695505050505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190611aa2565b9050806115065782915050610ca4565b808311156115615761154f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685836115ac565b6115598184611ca2565b915050610ca4565b6115a273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685856115ac565b5060009392505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526106089084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526116e4565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526116de9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016115fe565b50505050565b6000611746826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117f09092919063ffffffff16565b80519091501561060857808060200190518101906117649190611a3e565b610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104a4565b60606117ff8484600085611809565b90505b9392505050565b60608247101561189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a4565b843b611903576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a4565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161192c9190611b7d565b60006040518083038185875af1925050503d8060008114611969576040519150601f19603f3d011682016040523d82523d6000602084013e61196e565b606091505b509150915061197e828286611989565b979650505050505050565b60608315611998575081611802565b8251156119a85782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a49190611b99565b803561ffff811681146119ee57600080fd5b919050565b600080600060608486031215611a0857600080fd5b8335611a1381611d7c565b92506020840135611a2381611da1565b91506040840135611a3381611da1565b809150509250925092565b600060208284031215611a5057600080fd5b815161180281611da1565b600080600060608486031215611a7057600080fd5b611a79846119dc565b92506020840135611a2381611d7c565b600060208284031215611a9b57600080fd5b5035919050565b600060208284031215611ab457600080fd5b5051919050565b60008060408385031215611ace57600080fd5b823591506020830135611ae081611d7c565b809150509250929050565b60008060408385031215611afe57600080fd5b823591506020830135611ae081611da1565b600080600060608486031215611b2557600080fd5b83359250611a23602085016119dc565b60008060408385031215611b4857600080fd5b50508035926020909101359150565b600060208284031215611b6957600080fd5b813563ffffffff8116811461180257600080fd5b60008251611b8f818460208701611cb9565b9190910192915050565b6020815260008251806020840152611bb8816040850160208701611cb9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008219821115611bfd57611bfd611d1e565b500190565b600063ffffffff808316818516808303821115611c2157611c21611d1e565b01949350505050565b600082611c60577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c9d57611c9d611d1e565b500290565b600082821015611cb457611cb4611d1e565b500390565b60005b83811015611cd4578181015183820152602001611cbc565b838111156116de5750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d1757611d17611d1e565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611d9e57600080fd5b50565b8015158114611d9e57600080fdfea2646970667358221220ac16c2e38d425f2783be506ca0921495716504dcf384c32318824282d22f328c64736f6c63430008070033000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f7814000000000000000000000000000000000000000000000004a9322fc99017ea53000000000000000000000000000000000000000000000000000000006192bc40
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018d5760003560e01c8063630b5ba1116100e3578063cf42947b1161008c578063e30c397811610066578063e30c3978146103e1578063eaa6ef0414610401578063f4cd1b021461041457600080fd5b8063cf42947b146103a8578063d1c1b4a8146103bb578063e2bbb158146103ce57600080fd5b80638dbb1e3a116100bd5780638dbb1e3a1461032d57806393f1a40b1461034057806398ec8da61461039557600080fd5b8063630b5ba1146102de57806378e97925146102e65780638da5cb5b1461030d57600080fd5b80633197cbb6116101455780634e71e0c81161011f5780634e71e0c8146102b057806351eb05a6146102b85780635312ea8e146102cb57600080fd5b80633197cbb61461022c578063441a3e70146102515780634c2a860d1461026457600080fd5b80631526fe27116101765780631526fe27146101be57806317caf6f11461021a5780631b2e7d551461022357600080fd5b8063078dfbe714610192578063081e3eda146101a7575b600080fd5b6101a56101a03660046119f3565b610427565b005b6003545b6040519081526020015b60405180910390f35b6101d16101cc366004611a89565b61060d565b6040805173ffffffffffffffffffffffffffffffffffffffff909616865260208601949094529284019190915263ffffffff16606083015261ffff16608082015260a0016101b5565b6101ab60055481565b6101ab60025481565b60065461023c9063ffffffff1681565b60405163ffffffff90911681526020016101b5565b6101a561025f366004611b35565b610672565b61028b7f000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f781481565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b5565b6101a561085b565b6101a56102c6366004611a89565b610971565b6101a56102d9366004611a89565b610ab2565b6101a5610b99565b61023c7f000000000000000000000000000000000000000000000000000000006192bc4081565b60005461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b6101ab61033b366004611b35565b610bc4565b61037a61034e366004611abb565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101b5565b6101a56103a3366004611a5b565b610caa565b6101a56103b6366004611b57565b610f1a565b6101a56103c9366004611b10565b610fd7565b6101a56103dc366004611b35565b6110ff565b60015461028b9073ffffffffffffffffffffffffffffffffffffffff1681565b6101a561040f366004611aeb565b611255565b6101ab610422366004611abb565b6112ea565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b81156105c75773ffffffffffffffffffffffffffffffffffffffff83161515806104d45750805b61053a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f2061646472657373000000000000000000000060448201526064016104a4565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff85167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b6003818154811061061d57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919063ffffffff811690640100000000900461ffff1685565b60006003838154811061068757610687611d4d565b6000918252602080832086845260048083526040808620338752909352919093208054929091029092019250831115610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f536f7262657474696572653a20796f752063616e74206561742074686174206d60448201527f75636820706f707369636c65730000000000000000000000000000000000000060648201526084016104a4565b61074b84610971565b60008160020154826001015464e8d4a51000856002015485600001546107719190611c65565b61077b9190611c2a565b6107859190611ca2565b61078f9190611bea565b905061079b3382611434565b60028301558154849083906000906107b4908490611ca2565b92505081905550838360010160008282546107cf9190611ca2565b90915550506002830154825464e8d4a51000916107eb91611c65565b6107f59190611c2a565b6001830155825461081d9073ffffffffffffffffffffffffffffffffffffffff1633866115ac565b604051848152859033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689060200160405180910390a35050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163381146108dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657260448201526064016104a4565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b60006003828154811061098657610986611d4d565b60009182526020909120600490910201600381015490915063ffffffff1642116109ae575050565b60018101546109eb5760030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000164263ffffffff1617905550565b6003810154600090610a039063ffffffff1642610bc4565b905060006005548360030160049054906101000a900461ffff1661ffff1660025484610a2f9190611c65565b610a399190611c65565b610a439190611c2a565b6001840154909150610a5a8264e8d4a51000611c65565b610a649190611c2a565b836002016000828254610a779190611bea565b9091555050505060030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000164263ffffffff1617905550565b600060038281548110610ac757610ac7611d4d565b6000918252602080832085845260048083526040808620338752909352918420805493909202016001810180549195509193839291610b07908490611ca2565b90915550506000848152600460209081526040808320338085529252822082815560018101839055600201919091558354610b5b9173ffffffffffffffffffffffffffffffffffffffff90911690836115ac565b604051818152849033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595906020015b60405180910390a350505050565b60035460005b81811015610bc057610bb081610971565b610bb981611ce5565b9050610b9f565b5050565b60007f000000000000000000000000000000000000000000000000000000006192bc4063ffffffff168311610c1f577f000000000000000000000000000000000000000000000000000000006192bc4063ffffffff16610c21565b825b60065490935063ffffffff16831180610c5f57507f000000000000000000000000000000000000000000000000000000006192bc4063ffffffff1682105b15610c6c57506000610ca4565b60065463ffffffff16821115610c9757600654610c9090849063ffffffff16611ca2565b9050610ca4565b610ca18383611ca2565b90505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b8015610d3957610d39610b99565b60007f000000000000000000000000000000000000000000000000000000006192bc4063ffffffff164211610d94577f000000000000000000000000000000000000000000000000000000006192bc4063ffffffff16610d96565b425b90508361ffff1660056000828254610dae9190611bea565b90915550506040805160a08101825273ffffffffffffffffffffffffffffffffffffffff948516815260006020820181815292820181815263ffffffff9485166060840190815261ffff98891660808501908152600380546001810182559452935160049093027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b81018054949099167fffffffffffffffffffffffff00000000000000000000000000000000000000009094169390931790975592517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82015591517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d83015593517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e90910180549451909516640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000009094169116179190911790915550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b60068054829190600090610fb690849063ffffffff16611c02565b92506101000a81548163ffffffff021916908363ffffffff16021790555050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b801561106657611066610b99565b8161ffff166003848154811061107e5761107e611d4d565b60009182526020909120600490910201600301546005546110ab91640100000000900461ffff1690611ca2565b6110b59190611bea565b60058190555081600384815481106110cf576110cf611d4d565b906000526020600020906004020160030160046101000a81548161ffff021916908361ffff160217905550505050565b60006003838154811061111457611114611d4d565b6000918252602080832086845260048083526040808620338752909352919093209102909101915061114584610971565b8054156111a35760008160020154826001015464e8d4a51000856002015485600001546111729190611c65565b61117c9190611c2a565b6111869190611ca2565b6111909190611bea565b905061119c3382611434565b6002830155505b81546111c79073ffffffffffffffffffffffffffffffffffffffff16333086611680565b828160000160008282546111db9190611bea565b92505081905550828260010160008282546111f69190611bea565b90915550506002820154815464e8d4a510009161121291611c65565b61121c9190611c2a565b6001820155604051838152849033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590602001610b8b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a4565b80156112e4576112e4610b99565b50600255565b6000806003848154811061130057611300611d4d565b600091825260208083208784526004808352604080862073ffffffffffffffffffffffffffffffffffffffff8a168752909352919093209102909101600281015460038201549193509063ffffffff16421180156113615750600183015415155b156113ee57600383015460009061137e9063ffffffff1642610bc4565b905060006005548560030160049054906101000a900461ffff1661ffff16600254846113aa9190611c65565b6113b49190611c65565b6113be9190611c2a565b60018601549091506113d58264e8d4a51000611c65565b6113df9190611c2a565b6113e99084611bea565b925050505b60028201546001830154835464e8d4a510009061140c908590611c65565b6114169190611c2a565b6114209190611ca2565b61142a9190611bea565b9695505050505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f781416906370a082319060240160206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190611aa2565b9050806115065782915050610ca4565b808311156115615761154f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f78141685836115ac565b6115598184611ca2565b915050610ca4565b6115a273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f78141685856115ac565b5060009392505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526106089084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526116e4565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526116de9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016115fe565b50505050565b6000611746826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117f09092919063ffffffff16565b80519091501561060857808060200190518101906117649190611a3e565b610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104a4565b60606117ff8484600085611809565b90505b9392505050565b60608247101561189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a4565b843b611903576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a4565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161192c9190611b7d565b60006040518083038185875af1925050503d8060008114611969576040519150601f19603f3d011682016040523d82523d6000602084013e61196e565b606091505b509150915061197e828286611989565b979650505050505050565b60608315611998575081611802565b8251156119a85782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a49190611b99565b803561ffff811681146119ee57600080fd5b919050565b600080600060608486031215611a0857600080fd5b8335611a1381611d7c565b92506020840135611a2381611da1565b91506040840135611a3381611da1565b809150509250925092565b600060208284031215611a5057600080fd5b815161180281611da1565b600080600060608486031215611a7057600080fd5b611a79846119dc565b92506020840135611a2381611d7c565b600060208284031215611a9b57600080fd5b5035919050565b600060208284031215611ab457600080fd5b5051919050565b60008060408385031215611ace57600080fd5b823591506020830135611ae081611d7c565b809150509250929050565b60008060408385031215611afe57600080fd5b823591506020830135611ae081611da1565b600080600060608486031215611b2557600080fd5b83359250611a23602085016119dc565b60008060408385031215611b4857600080fd5b50508035926020909101359150565b600060208284031215611b6957600080fd5b813563ffffffff8116811461180257600080fd5b60008251611b8f818460208701611cb9565b9190910192915050565b6020815260008251806020840152611bb8816040850160208701611cb9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008219821115611bfd57611bfd611d1e565b500190565b600063ffffffff808316818516808303821115611c2157611c21611d1e565b01949350505050565b600082611c60577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c9d57611c9d611d1e565b500290565b600082821015611cb457611cb4611d1e565b500390565b60005b83811015611cd4578181015183820152602001611cbc565b838111156116de5750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d1757611d17611d1e565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611d9e57600080fd5b50565b8015158114611d9e57600080fdfea2646970667358221220ac16c2e38d425f2783be506ca0921495716504dcf384c32318824282d22f328c64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f7814000000000000000000000000000000000000000000000004a9322fc99017ea53000000000000000000000000000000000000000000000000000000006192bc40
-----Decoded View---------------
Arg [0] : _ice (address): 0xCE1bFFBD5374Dac86a2893119683F4911a2F7814
Arg [1] : _icePerSecond (uint256): 85978835978835978835
Arg [2] : _startTime (uint32): 1637006400
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f7814
Arg [1] : 000000000000000000000000000000000000000000000004a9322fc99017ea53
Arg [2] : 000000000000000000000000000000000000000000000000000000006192bc40
Deployed Bytecode Sourcemap
16783:10048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11572:363;;;;;;:::i;:::-;;:::i;:::-;;20095:95;20167:8;:15;20095:95;;;8623:25:1;;;8611:2;8596:18;20095:95:0;;;;;;;;18421:26;;;;;;:::i;:::-;;:::i;:::-;;;;5110:42:1;5098:55;;;5080:74;;5185:2;5170:18;;5163:34;;;;5213:18;;;5206:34;;;;5288:10;5276:23;5271:2;5256:18;;5249:51;5349:6;5337:19;5331:3;5316:19;;5309:48;5067:3;5052:19;18421:26:0;4811:552:1;18600:34:0;;;;;;18348:27;;;;;;18818:21;;;;;;;;;;;;9157:10:1;9145:23;;;9127:42;;9115:2;9100:18;18818:21:0;8983:192:1;24878:778:0;;;;;;:::i;:::-;;:::i;18289:27::-;;;;;;;;3806:42:1;3794:55;;;3776:74;;3764:2;3749:18;18289:27:0;3630:226:1;11943:301:0;;;:::i;23284:654::-;;;;;;:::i;:::-;;:::i;25731:443::-;;;;;;:::i;:::-;;:::i;23028:180::-;;;:::i;18730:33::-;;;;;11250:20;;;;;;;;;21723:369;;;;;;:::i;:::-;;:::i;18482:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8861:25:1;;;8917:2;8902:18;;8895:34;;;;8945:18;;;8938:34;8849:2;8834:18;18482:64:0;8659:319:1;20498:652:0;;;;;;:::i;:::-;;:::i;19413:101::-;;;;;;:::i;:::-;;:::i;21315:333::-;;;;;;:::i;:::-;;:::i;24012:809::-;;;;;;:::i;:::-;;:::i;11277:27::-;;;;;;;;;19847:203;;;;;;:::i;:::-;;:::i;22154:791::-;;;;;;:::i;:::-;;:::i;11572:363::-;12306:5;;;;12292:10;:19;12284:64;;;;;;;7188:2:1;12284:64:0;;;7170:21:1;;;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;7318:18;;12284:64:0;;;;;;;;;11677:6:::1;11673:255;;;11710:22;::::0;::::1;::::0;::::1;::::0;:34:::1;;;11736:8;11710:34;11702:68;;;::::0;::::1;::::0;;6017:2:1;11702:68:0::1;::::0;::::1;5999:21:1::0;6056:2;6036:18;;;6029:30;6095:23;6075:18;;;6068:51;6136:18;;11702:68:0::1;5815:345:1::0;11702:68:0::1;11813:5;::::0;;11792:37:::1;::::0;::::1;::::0;;::::1;::::0;11813:5;::::1;::::0;11792:37:::1;::::0;::::1;11844:5;:16:::0;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;11572:363;;;:::o;11673:255::-:1;11893:12;:23:::0;;;::::1;;::::0;::::1;;::::0;;11673:255:::1;11572:363:::0;;;:::o;18421:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18421:26:0;;;;;;;;;;;;:::o;24878:778::-;24945:21;24969:8;24978:4;24969:14;;;;;;;;:::i;:::-;;;;;;;;;25018;;;24969;25018;;;;;;;25033:10;25018:26;;;;;;;;;25063:11;;24969:14;;;;;;;;-1:-1:-1;;;25063:22:0;25055:80;;;;;;;6774:2:1;25055:80:0;;;6756:21:1;6813:2;6793:18;;;6786:30;6852:34;6832:18;;;6825:62;6923:15;6903:18;;;6896:43;6956:19;;25055:80:0;6572:409:1;25055:80:0;25146:16;25157:4;25146:10;:16::i;:::-;25173:15;25265:4;:28;;;25247:4;:15;;;25240:4;25218;:19;;;25204:4;:11;;;:33;;;;:::i;:::-;:40;;;;:::i;:::-;:58;;;;:::i;:::-;:89;;;;:::i;:::-;25173:120;;25335:39;25354:10;25366:7;25335:18;:39::i;:::-;25304:28;;;:70;25385:22;;25400:7;;25304:4;;25385:11;;:22;;25400:7;;25385:22;:::i;:::-;;;;;;;;25450:7;25418:4;:28;;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;;25500:19:0;;;;25486:11;;25522:4;;25486:33;;;:::i;:::-;:40;;;;:::i;:::-;25468:15;;;:58;25537:17;;:60;;:17;;25576:10;25589:7;25537:30;:60::i;:::-;25613:35;;8623:25:1;;;25634:4:0;;25622:10;;25613:35;;8611:2:1;8596:18;25613:35:0;;;;;;;24934:722;;;24878:778;;:::o;11943:301::-;12011:12;;;;12044:10;:27;;12036:72;;;;;;;7549:2:1;12036:72:0;;;7531:21:1;;;7568:18;;;7561:30;7627:34;7607:18;;;7600:62;7679:18;;12036:72:0;7347:356:1;12036:72:0;12147:5;;;12126:42;;;;;;;12147:5;;;12126:42;;;12179:5;:21;;;;;;;;;;;;;;12211:25;;;;;;;11943:301::o;23284:654::-;23336:21;23360:8;23369:4;23360:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;23408:19;;;;23360:14;;-1:-1:-1;23408:19:0;;23389:15;:38;23385:77;;23444:7;23284:654;:::o;23385:77::-;23478:28;;;;23474:132;;23528:19;;:45;;;;23557:15;23528:45;;;;;-1:-1:-1;23284:654:0:o;23474:132::-;23651:19;;;;23616:18;;23637:51;;23651:19;;23672:15;23637:13;:51::i;:::-;23616:72;;23699:17;23778:15;;23760:4;:15;;;;;;;;;;;;23732:43;;23745:12;;23732:10;:25;;;;:::i;:::-;:43;;;;:::i;:::-;:61;;;;:::i;:::-;23846:28;;;;23699:94;;-1:-1:-1;23827:16:0;23699:94;23839:4;23827:16;:::i;:::-;:47;;;;:::i;:::-;23804:4;:19;;;:70;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;23885:19:0;;:45;;;;23914:15;23885:45;;;;;-1:-1:-1;23284:654:0:o;25731:443::-;25790:21;25814:8;25823:4;25814:14;;;;;;;;:::i;:::-;;;;;;;;;25863;;;25814;25863;;;;;;;25878:10;25863:26;;;;;;;;25921:11;;25814:14;;;;;25943:28;;;:42;;25814:14;;-1:-1:-1;25863:26:0;;25921:11;;25943:28;:42;;25921:11;;25943:42;:::i;:::-;;;;-1:-1:-1;;26003:14:0;;;;:8;:14;;;;;;;;26018:10;26003:26;;;;;;;25996:33;;;;;;;;;;;;;;;26040:17;;:63;;26003:26;26040:17;;;;26092:10;26040:30;:63::i;:::-;26119:47;;8623:25:1;;;26149:4:0;;26137:10;;26119:47;;8611:2:1;8596:18;26119:47:0;;;;;;;;25779:395;;;25731:443;:::o;23028:180::-;23090:8;:15;23073:14;23116:85;23144:6;23138:3;:12;23116:85;;;23174:15;23185:3;23174:10;:15::i;:::-;23152:5;;;:::i;:::-;;;23116:85;;;;23062:146;23028:180::o;21723:369::-;21822:7;21863:9;21855:17;;:5;:17;:37;;21883:9;21855:37;;;;;21875:5;21855:37;21915:7;;21847:45;;-1:-1:-1;21915:7:0;;21907:15;;;:34;;;21932:9;21926:15;;:3;:15;21907:34;21903:75;;;-1:-1:-1;21965:1:0;21958:8;;21903:75;21998:7;;;;21992:13;;21988:68;;;22029:7;;:15;;22039:5;;22029:7;;:15;:::i;:::-;22022:22;;;;21988:68;22073:11;22079:5;22073:3;:11;:::i;:::-;22066:18;;21723:369;;;;;:::o;20498:652::-;12306:5;;;;12292:10;:19;12284:64;;;;;;;7188:2:1;12284:64:0;;;7170:21:1;;;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;7318:18;;12284:64:0;6986:356:1;12284:64:0;20639:11:::1;20635:61;;;20667:17;:15;:17::i;:::-;20706:22;20762:9;20744:27;;:15;:27;:57;;20792:9;20744:57;;;;;20774:15;20744:57;20706:95;;20830:11;20812:29;;:15;;:29;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;20880:251:0::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;20880:251:0::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;20852:8:::1;:290:::0;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;-1:-1:-1;20498:652:0:o;19413:101::-;12306:5;;;;12292:10;:19;12284:64;;;;;;;7188:2:1;12284:64:0;;;7170:21:1;;;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;7318:18;;12284:64:0;6986:356:1;12284:64:0;19485:7:::1;:21:::0;;19496:10;;19485:7;::::1;::::0;:21:::1;::::0;19496:10;;19485:21:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19413:101:::0;:::o;21315:333::-;12306:5;;;;12292:10;:19;12284:64;;;;;;;7188:2:1;12284:64:0;;;7170:21:1;;;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;7318:18;;12284:64:0;6986:356:1;12284:64:0;21448:11:::1;21444:61;;;21476:17;:15;:17::i;:::-;21579:11;21533:57;;21551:8;21560:4;21551:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:25;;::::0;21533:15:::1;::::0;:43:::1;::::0;21551:25;;::::1;;;::::0;21533:43:::1;:::i;:::-;:57;;;;:::i;:::-;21515:15;:75;;;;21629:11;21601:8;21610:4;21601:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;;:39;;;;;;;;;;;;;;;;;;21315:333:::0;;;:::o;24012:809::-;24078:21;24102:8;24111:4;24102:14;;;;;;;;:::i;:::-;;;;;;;;;24151;;;24102;24151;;;;;;;24166:10;24151:26;;;;;;;;;24102:14;;;;;;-1:-1:-1;24188:16:0;24160:4;24188:10;:16::i;:::-;24219:11;;:15;24215:257;;24251:15;24347:4;:28;;;24329:4;:15;;;24322:4;24300;:19;;;24286:4;:11;;;:33;;;;:::i;:::-;:40;;;;:::i;:::-;:58;;;;:::i;:::-;:89;;;;:::i;:::-;24251:124;;24421:39;24440:10;24452:7;24421:18;:39::i;:::-;24390:28;;;:70;-1:-1:-1;24215:257:0;24482:17;;:129;;:17;;24539:10;24573:4;24593:7;24482:34;:129::i;:::-;24637:7;24622:4;:11;;;:22;;;;;;;:::i;:::-;;;;;;;;24687:7;24655:4;:28;;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;;24737:19:0;;;;24723:11;;24759:4;;24723:33;;;:::i;:::-;:40;;;;:::i;:::-;24705:15;;;:58;24779:34;;8623:25:1;;;24799:4:0;;24787:10;;24779:34;;8611:2:1;8596:18;24779:34:0;8477:177:1;19847:203:0;12306:5;;;;12292:10;:19;12284:64;;;;;;;7188:2:1;12284:64:0;;;7170:21:1;;;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;7318:18;;12284:64:0;6986:356:1;12284:64:0;19948:11:::1;19944:61;;;19976:17;:15;:17::i;:::-;-1:-1:-1::0;20015:12:0::1;:27:::0;19847:203::o;22154:791::-;22253:7;22278:21;22302:8;22311:4;22302:14;;;;;;;;:::i;:::-;;;;;;;;;22351;;;22302;22351;;;;;;;:21;;;;;;;;;;;;22302:14;;;;;22408:19;;;;22469;;;;22302:14;;-1:-1:-1;22408:19:0;22469;;22451:15;:37;:74;;;;-1:-1:-1;22492:28:0;;;;:33;;22451:74;22447:389;;;22594:19;;;;22542:18;;22580:51;;22594:19;;22615:15;22580:13;:51::i;:::-;22542:89;;22646:17;22729:15;;22711:4;:15;;;;;;;;;;;;22683:43;;22696:12;;22683:10;:25;;;;:::i;:::-;:43;;;;:::i;:::-;:61;;;;:::i;:::-;22796:28;;;;22646:98;;-1:-1:-1;22777:16:0;22646:98;22789:4;22777:16;:::i;:::-;:47;;;;:::i;:::-;22759:65;;;;:::i;:::-;;;22527:309;;22447:389;22909:28;;;;22891:15;;;;22853:11;;22884:4;;22853:28;;22867:14;;22853:28;:::i;:::-;:35;;;;:::i;:::-;:53;;;;:::i;:::-;:84;;;;:::i;:::-;22846:91;22154:791;-1:-1:-1;;;;;;22154:791:0:o;26341:487::-;26462:28;;;;;26484:4;26462:28;;;3776:74:1;26416:7:0;;;;26462:13;:3;:13;;;;3749:18:1;;26462:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26436:54;-1:-1:-1;26505:20:0;26501:87;;26569:7;26562:14;;;;;26501:87;26612:15;26602:7;:25;26598:163;;;26664:38;:16;:3;:16;26681:3;26686:15;26664:16;:38::i;:::-;26724:25;26734:15;26724:7;:25;:::i;:::-;26717:32;;;;;26598:163;26771:30;:16;:3;:16;26788:3;26793:7;26771:16;:30::i;:::-;-1:-1:-1;26819:1:0;;26341:487;-1:-1:-1;;;26341:487:0:o;12901:177::-;13011:58;;4468:42:1;4456:55;;13011:58:0;;;4438:74:1;4528:18;;;4521:34;;;12984:86:0;;13004:5;;13034:23;;4411:18:1;;13011:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12984:19;:86::i;13086:205::-;13214:68;;4073:42:1;4142:15;;;13214:68:0;;;4124:34:1;4194:15;;4174:18;;;4167:43;4226:18;;;4219:34;;;13187:96:0;;13207:5;;13237:27;;4036:18:1;;13214:68:0;3861:398:1;13187:96:0;13086:205;;;;:::o;15335:761::-;15759:23;15785:69;15813:4;15785:69;;;;;;;;;;;;;;;;;15793:5;15785:27;;;;:69;;;;;:::i;:::-;15869:17;;15759:95;;-1:-1:-1;15869:21:0;15865:224;;16011:10;16000:30;;;;;;;;;;;;:::i;:::-;15992:85;;;;;;;8268:2:1;15992:85:0;;;8250:21:1;8307:2;8287:18;;;8280:30;8346:34;8326:18;;;8319:62;8417:12;8397:18;;;8390:40;8447:19;;15992:85:0;8066:406:1;3661:195:0;3764:12;3796:52;3818:6;3826:4;3832:1;3835:12;3796:21;:52::i;:::-;3789:59;;3661:195;;;;;;:::o;4713:530::-;4840:12;4898:5;4873:21;:30;;4865:81;;;;;;;6367:2:1;4865:81:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:34;6425:18;;;6418:62;6516:8;6496:18;;;6489:36;6542:19;;4865:81:0;6165:402:1;4865:81:0;1110:20;;4957:60;;;;;;;7910:2:1;4957:60:0;;;7892:21:1;7949:2;7929:18;;;7922:30;7988:31;7968:18;;;7961:59;8037:18;;4957:60:0;7708:353:1;4957:60:0;5091:12;5105:23;5132:6;:11;;5152:5;5160:4;5132:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5090:75;;;;5183:52;5201:7;5210:10;5222:12;5183:17;:52::i;:::-;5176:59;4713:530;-1:-1:-1;;;;;;;4713:530:0:o;7253:742::-;7368:12;7397:7;7393:595;;;-1:-1:-1;7428:10:0;7421:17;;7393:595;7542:17;;:21;7538:439;;7805:10;7799:17;7866:15;7853:10;7849:2;7845:19;7838:44;7538:439;7948:12;7941:20;;;;;;;;;;;:::i;14:159:1:-;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:517::-;249:6;257;265;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;373:9;360:23;392:31;417:5;392:31;:::i;:::-;442:5;-1:-1:-1;499:2:1;484:18;;471:32;512:30;471:32;512:30;:::i;:::-;561:7;-1:-1:-1;620:2:1;605:18;;592:32;633:30;592:32;633:30;:::i;:::-;682:7;672:17;;;178:517;;;;;:::o;700:245::-;767:6;820:2;808:9;799:7;795:23;791:32;788:52;;;836:1;833;826:12;788:52;868:9;862:16;887:28;909:5;887:28;:::i;950:468::-;1037:6;1045;1053;1106:2;1094:9;1085:7;1081:23;1077:32;1074:52;;;1122:1;1119;1112:12;1074:52;1145:28;1163:9;1145:28;:::i;:::-;1135:38;;1223:2;1212:9;1208:18;1195:32;1236:31;1261:5;1236:31;:::i;1423:180::-;1482:6;1535:2;1523:9;1514:7;1510:23;1506:32;1503:52;;;1551:1;1548;1541:12;1503:52;-1:-1:-1;1574:23:1;;1423:180;-1:-1:-1;1423:180:1:o;1608:184::-;1678:6;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;-1:-1:-1;1770:16:1;;1608:184;-1:-1:-1;1608:184:1:o;1797:315::-;1865:6;1873;1926:2;1914:9;1905:7;1901:23;1897:32;1894:52;;;1942:1;1939;1932:12;1894:52;1978:9;1965:23;1955:33;;2038:2;2027:9;2023:18;2010:32;2051:31;2076:5;2051:31;:::i;:::-;2101:5;2091:15;;;1797:315;;;;;:::o;2117:309::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2295:9;2282:23;2272:33;;2355:2;2344:9;2340:18;2327:32;2368:28;2390:5;2368:28;:::i;2431:381::-;2504:6;2512;2520;2573:2;2561:9;2552:7;2548:23;2544:32;2541:52;;;2589:1;2586;2579:12;2541:52;2625:9;2612:23;2602:33;;2654:37;2687:2;2676:9;2672:18;2654:37;:::i;2817:248::-;2885:6;2893;2946:2;2934:9;2925:7;2921:23;2917:32;2914:52;;;2962:1;2959;2952:12;2914:52;-1:-1:-1;;2985:23:1;;;3055:2;3040:18;;;3027:32;;-1:-1:-1;2817:248:1:o;3070:276::-;3128:6;3181:2;3169:9;3160:7;3156:23;3152:32;3149:52;;;3197:1;3194;3187:12;3149:52;3236:9;3223:23;3286:10;3279:5;3275:22;3268:5;3265:33;3255:61;;3312:1;3309;3302:12;3351:274;3480:3;3518:6;3512:13;3534:53;3580:6;3575:3;3568:4;3560:6;3556:17;3534:53;:::i;:::-;3603:16;;;;;3351:274;-1:-1:-1;;3351:274:1:o;5368:442::-;5517:2;5506:9;5499:21;5480:4;5549:6;5543:13;5592:6;5587:2;5576:9;5572:18;5565:34;5608:66;5667:6;5662:2;5651:9;5647:18;5642:2;5634:6;5630:15;5608:66;:::i;:::-;5726:2;5714:15;5731:66;5710:88;5695:104;;;;5801:2;5691:113;;5368:442;-1:-1:-1;;5368:442:1:o;9180:128::-;9220:3;9251:1;9247:6;9244:1;9241:13;9238:39;;;9257:18;;:::i;:::-;-1:-1:-1;9293:9:1;;9180:128::o;9313:228::-;9352:3;9380:10;9417:2;9414:1;9410:10;9447:2;9444:1;9440:10;9478:3;9474:2;9470:12;9465:3;9462:21;9459:47;;;9486:18;;:::i;:::-;9522:13;;9313:228;-1:-1:-1;;;;9313:228:1:o;9546:274::-;9586:1;9612;9602:189;;9647:77;9644:1;9637:88;9748:4;9745:1;9738:15;9776:4;9773:1;9766:15;9602:189;-1:-1:-1;9805:9:1;;9546:274::o;9825:228::-;9865:7;9991:1;9923:66;9919:74;9916:1;9913:81;9908:1;9901:9;9894:17;9890:105;9887:131;;;9998:18;;:::i;:::-;-1:-1:-1;10038:9:1;;9825:228::o;10058:125::-;10098:4;10126:1;10123;10120:8;10117:34;;;10131:18;;:::i;:::-;-1:-1:-1;10168:9:1;;10058:125::o;10188:258::-;10260:1;10270:113;10284:6;10281:1;10278:13;10270:113;;;10360:11;;;10354:18;10341:11;;;10334:39;10306:2;10299:10;10270:113;;;10401:6;10398:1;10395:13;10392:48;;;-1:-1:-1;;10436:1:1;10418:16;;10411:27;10188:258::o;10451:195::-;10490:3;10521:66;10514:5;10511:77;10508:103;;;10591:18;;:::i;:::-;-1:-1:-1;10638:1:1;10627:13;;10451:195::o;10651:184::-;10703:77;10700:1;10693:88;10800:4;10797:1;10790:15;10824:4;10821:1;10814:15;10840:184;10892:77;10889:1;10882:88;10989:4;10986:1;10979:15;11013:4;11010:1;11003:15;11029:154;11115:42;11108:5;11104:54;11097:5;11094:65;11084:93;;11173:1;11170;11163:12;11084:93;11029:154;:::o;11188:118::-;11274:5;11267:13;11260:21;11253:5;11250:32;11240:60;;11296:1;11293;11286:12
Swarm Source
ipfs://ac16c2e38d425f2783be506ca0921495716504dcf384c32318824282d22f328c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
AVAX | 100.00% | $0.00095 | 26,193,324.6767 | $24,885.75 |
[ 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.