More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,562 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 20398541 | 182 days ago | IN | 0 ETH | 0.00059396 | ||||
Withdraw | 20075280 | 228 days ago | IN | 0 ETH | 0.00198628 | ||||
Withdraw | 19663777 | 285 days ago | IN | 0 ETH | 0.00136336 | ||||
Withdraw | 19638685 | 289 days ago | IN | 0 ETH | 0.00159079 | ||||
Withdraw | 19587555 | 296 days ago | IN | 0 ETH | 0.00101233 | ||||
Withdraw | 19587551 | 296 days ago | IN | 0 ETH | 0.00112054 | ||||
Withdraw | 19566544 | 299 days ago | IN | 0 ETH | 0.0014712 | ||||
Withdraw | 19414418 | 320 days ago | IN | 0 ETH | 0.00510517 | ||||
Withdraw | 19414413 | 320 days ago | IN | 0 ETH | 0.00504397 | ||||
Withdraw | 19406512 | 321 days ago | IN | 0 ETH | 0.00446379 | ||||
Withdraw | 19406510 | 321 days ago | IN | 0 ETH | 0.00467712 | ||||
Withdraw | 19324331 | 333 days ago | IN | 0 ETH | 0.00358026 | ||||
Withdraw | 19323113 | 333 days ago | IN | 0 ETH | 0.0033511 | ||||
Withdraw | 19304058 | 336 days ago | IN | 0 ETH | 0.0016011 | ||||
Withdraw | 19304055 | 336 days ago | IN | 0 ETH | 0.00168694 | ||||
Withdraw | 19284432 | 338 days ago | IN | 0 ETH | 0.00580152 | ||||
Withdraw | 19271844 | 340 days ago | IN | 0 ETH | 0.00484424 | ||||
Withdraw | 19216942 | 348 days ago | IN | 0 ETH | 0.00195653 | ||||
Withdraw | 19158106 | 356 days ago | IN | 0 ETH | 0.00103145 | ||||
Withdraw | 19158062 | 356 days ago | IN | 0 ETH | 0.00119213 | ||||
Withdraw | 19153757 | 357 days ago | IN | 0 ETH | 0.0009084 | ||||
Withdraw | 19153750 | 357 days ago | IN | 0 ETH | 0.00111912 | ||||
Withdraw | 19091671 | 365 days ago | IN | 0 ETH | 0.00164681 | ||||
Withdraw | 19091666 | 365 days ago | IN | 0 ETH | 0.00171726 | ||||
Withdraw | 19070746 | 368 days ago | IN | 0 ETH | 0.00158862 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakingPool
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-09-24 */ // SPDX-License-Identifier: MIT // File: SafeMath.sol pragma solidity >=0.4.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, 'SafeMath: addition overflow'); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, 'SafeMath: subtraction overflow'); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, 'SafeMath: multiplication overflow'); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, 'SafeMath: division by zero'); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, 'SafeMath: modulo by zero'); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function min(uint256 x, uint256 y) internal pure returns (uint256 z) { z = x < y ? x : y; } // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) function sqrt(uint256 y) internal pure returns (uint256 z) { if (y > 3) { z = y; uint256 x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } } } // File: IBEP20.sol pragma solidity >=0.4.0; interface IBEP20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the token decimals. */ function decimals() external view returns (uint8); /** * @dev Returns the token symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the token name. */ function name() external view returns (string memory); /** * @dev Returns the bep token owner. */ function getOwner() external view returns (address); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address _owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: Address.sol pragma solidity ^0.6.2; /** * @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) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @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'); return _functionCallWithValue(target, data, value, 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); } } } } // File: SafeBEP20.sol pragma solidity ^0.6.0; /** * @title SafeBEP20 * @dev Wrappers around BEP20 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 SafeBEP20 for IBEP20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeBEP20 { using SafeMath for uint256; using Address for address; function safeTransfer( IBEP20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IBEP20 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 * {IBEP20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IBEP20 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), 'SafeBEP20: approve from non-zero to non-zero allowance' ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IBEP20 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( IBEP20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender).sub( value, 'SafeBEP20: 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(IBEP20 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, 'SafeBEP20: low-level call failed'); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), 'SafeBEP20: BEP20 operation did not succeed'); } } } // File: Context.sol pragma solidity >=0.4.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor() internal {} function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: Ownable.sol pragma solidity >=0.4.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), 'Ownable: caller is not the owner'); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), 'Ownable: new owner is the zero address'); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts/StakingPool.sol pragma solidity 0.6.12; // import "@nomiclabs/buidler/console.sol"; contract StakingPool is Ownable { using SafeMath for uint256; using SafeBEP20 for IBEP20; // Info of each user. struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. } // Info of each pool. struct PoolInfo { IBEP20 lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. CAKEs to distribute per block. uint256 lastRewardBlock; // Last block number that CAKEs distribution occurs. uint256 accCakePerShare; // Accumulated CAKEs per share, times 1e12. See below. } // The CAKE TOKEN! IBEP20 public syrup; IBEP20 public rewardToken; // uint256 public maxStaking; // CAKE tokens created per block. uint256 public rewardPerBlock; // Info of each pool. PoolInfo[] public poolInfo; // Info of each user that stakes LP tokens. mapping (address => UserInfo) public userInfo; // Total allocation poitns. Must be the sum of all allocation points in all pools. uint256 private totalAllocPoint = 0; // The block number when CAKE mining starts. uint256 public startBlock; // The block number when CAKE mining ends. uint256 public bonusEndBlock; //Total lpTokens staked uint256 public totalStaked = 0; event Deposit(address indexed user, uint256 amount); event Withdraw(address indexed user, uint256 amount); event EmergencyWithdraw(address indexed user, uint256 amount); constructor( IBEP20 _syrup, IBEP20 _rewardToken, uint256 _rewardPerBlock, uint256 _startBlock, uint256 _bonusEndBlock ) public { syrup = _syrup; rewardToken = _rewardToken; rewardPerBlock = _rewardPerBlock; startBlock = _startBlock; bonusEndBlock = _bonusEndBlock; // staking pool poolInfo.push(PoolInfo({ lpToken: _syrup, allocPoint: 1000, lastRewardBlock: startBlock, accCakePerShare: 0 })); totalAllocPoint = 1000; // maxStaking = 50000000000000000000; } function stopReward() public onlyOwner { bonusEndBlock = block.number; } function changeStartBlock(uint256 _startBlock) public onlyOwner { startBlock = _startBlock; } function changeEndBlock(uint256 _bonusEndBlock) public onlyOwner { bonusEndBlock = _bonusEndBlock; } function changeRewardPerBlock(uint256 _rewardPerBlock) public onlyOwner { rewardPerBlock = _rewardPerBlock; } // Return reward multiplier over the given _from to _to block. function getMultiplier(uint256 _from, uint256 _to) public view returns (uint256) { if (_to <= bonusEndBlock) { return _to.sub(_from); } else if (_from >= bonusEndBlock) { return 0; } else { return bonusEndBlock.sub(_from); } } // View function to see pending Reward on frontend. function pendingReward(address _user) external view returns (uint256) { PoolInfo storage pool = poolInfo[0]; UserInfo storage user = userInfo[_user]; uint256 accCakePerShare = pool.accCakePerShare; uint256 lpSupply = totalStaked; if (block.number > pool.lastRewardBlock && lpSupply != 0) { uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number); uint256 cakeReward = multiplier.mul(rewardPerBlock).mul(pool.allocPoint).div(totalAllocPoint); accCakePerShare = accCakePerShare.add(cakeReward.mul(1e12).div(lpSupply)); } return user.amount.mul(accCakePerShare).div(1e12).sub(user.rewardDebt); } // Update reward variables of the given pool to be up-to-date. function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; if (block.number <= pool.lastRewardBlock) { return; } uint256 lpSupply = totalStaked; if (lpSupply == 0) { pool.lastRewardBlock = block.number; return; } uint256 multiplier = getMultiplier(pool.lastRewardBlock, block.number); uint256 cakeReward = multiplier.mul(rewardPerBlock).mul(pool.allocPoint).div(totalAllocPoint); pool.accCakePerShare = pool.accCakePerShare.add(cakeReward.mul(1e12).div(lpSupply)); pool.lastRewardBlock = block.number; } // Update reward variables for all pools. Be careful of gas spending! function massUpdatePools() public { uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { updatePool(pid); } } // Stake SYRUP tokens to StakingPool function deposit(uint256 _amount) public { PoolInfo storage pool = poolInfo[0]; UserInfo storage user = userInfo[msg.sender]; // require (_amount.add(user.amount) <= maxStaking, 'exceed max stake'); updatePool(0); if (user.amount > 0) { uint256 pending = user.amount.mul(pool.accCakePerShare).div(1e12).sub(user.rewardDebt); if(pending > 0) { rewardToken.safeTransfer(address(msg.sender), pending); } } if(_amount > 0) { pool.lpToken.safeTransferFrom(address(msg.sender), address(this), _amount); user.amount = user.amount.add(_amount); totalStaked = totalStaked.add(_amount); } user.rewardDebt = user.amount.mul(pool.accCakePerShare).div(1e12); emit Deposit(msg.sender, _amount); } // Withdraw SYRUP tokens from STAKING. function withdraw(uint256 _amount) public { PoolInfo storage pool = poolInfo[0]; UserInfo storage user = userInfo[msg.sender]; require(user.amount >= _amount, "withdraw: not good"); updatePool(0); uint256 pending = user.amount.mul(pool.accCakePerShare).div(1e12).sub(user.rewardDebt); if(pending > 0) { rewardToken.safeTransfer(address(msg.sender), pending); } if(_amount > 0) { user.amount = user.amount.sub(_amount); pool.lpToken.safeTransfer(address(msg.sender), _amount); totalStaked = totalStaked.sub(_amount); } user.rewardDebt = user.amount.mul(pool.accCakePerShare).div(1e12); emit Withdraw(msg.sender, _amount); } // Withdraw without caring about rewards. EMERGENCY ONLY. function emergencyWithdraw() public { PoolInfo storage pool = poolInfo[0]; UserInfo storage user = userInfo[msg.sender]; pool.lpToken.safeTransfer(address(msg.sender), user.amount); totalStaked = totalStaked.sub(user.amount); user.amount = 0; user.rewardDebt = 0; emit EmergencyWithdraw(msg.sender, user.amount); } // Withdraw reward. EMERGENCY ONLY. function emergencyRewardWithdraw(uint256 _amount) public onlyOwner { uint256 totalBalance = rewardToken.balanceOf(address(this)); uint256 availableRewards = totalBalance.sub(totalStaked); require(_amount < availableRewards, 'not enough rewards'); rewardToken.safeTransfer(address(msg.sender), _amount); } function saveMe(address tokenAddress) public onlyOwner { IBEP20 token = IBEP20(tokenAddress); token.transfer(address(msg.sender), token.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IBEP20","name":"_syrup","type":"address"},{"internalType":"contract IBEP20","name":"_rewardToken","type":"address"},{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"},{"internalType":"uint256","name":"_startBlock","type":"uint256"},{"internalType":"uint256","name":"_bonusEndBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"bonusEndBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bonusEndBlock","type":"uint256"}],"name":"changeEndBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"}],"name":"changeRewardPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"name":"changeStartBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"emergencyRewardWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","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":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IBEP20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accCakePerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"saveMe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"syrup","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600655600060095534801561001a57600080fd5b506040516126b63803806126b6833981810160405260a081101561003d57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050600061008661029c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35084600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003819055508160078190555080600881905550600460405180608001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020016103e8815260200160075481526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015550506103e860068190555050505050506102a4565b600033905090565b612403806102b36000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063817b1cd2116100c3578063b6b55f251161007c578063b6b55f251461049d578063db2e21bc146104cb578063db315ef3146104d5578063f2fde38b14610503578063f40f0f5214610547578063f7c618c11461059f57610158565b8063817b1cd21461037f578063822226741461039d57806386a952c4146103cb5780638ae39cac146103ff5780638da5cb5b1461041d5780638dbb1e3a1461045157610158565b806348cd4cb11161011557806348cd4cb1146102e757806351eb05a6146103055780635437f09814610333578063630b5ba114610361578063715018a61461036b57806380dc06721461037557610158565b80631526fe271461015d5780631959a002146101ca5780631aed6553146102295780632e1a7d4d146102475780633279beab14610275578063439b8155146102a3575b600080fd5b6101896004803603602081101561017357600080fd5b81019080803590602001909291905050506105d3565b604051808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b61020c600480360360208110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610630565b604051808381526020018281526020019250505060405180910390f35b610231610654565b6040518082815260200191505060405180910390f35b6102736004803603602081101561025d57600080fd5b810190808035906020019092919050505061065a565b005b6102a16004803603602081101561028b57600080fd5b8101908080359060200190929190505050610905565b005b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b75565b005b6102ef610d94565b6040518082815260200191505060405180910390f35b6103316004803603602081101561031b57600080fd5b8101908080359060200190929190505050610d9a565b005b61035f6004803603602081101561034957600080fd5b8101908080359060200190929190505050610e98565b005b610369610f6a565b005b610373610f97565b005b61037d61111d565b005b6103876111ee565b6040518082815260200191505060405180910390f35b6103c9600480360360208110156103b357600080fd5b81019080803590602001909291905050506111f4565b005b6103d36112c6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104076112ec565b6040518082815260200191505060405180910390f35b6104256112f2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104876004803603604081101561046757600080fd5b81019080803590602001909291908035906020019092919050505061131b565b6040518082815260200191505060405180910390f35b6104c9600480360360208110156104b357600080fd5b8101908080359060200190929190505050611370565b005b6104d36115b1565b005b610501600480360360208110156104eb57600080fd5b81019080803590602001909291905050506116f0565b005b6105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c2565b005b6105896004803603602081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611896565b6040518082815260200191505060405180910390f35b6105a7611a08565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600481815481106105e057fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b60056020528060005260406000206000915090508060000154908060010154905082565b60085481565b6000600460008154811061066a57fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015610737576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b6107416000610d9a565b600061078b826001015461077d64e8d4a5100061076f87600301548760000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b611afe90919063ffffffff16565b905060008111156107e4576107e33382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b5b600084111561087757610804848360000154611afe90919063ffffffff16565b826000018190555061085b33858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b61087084600954611afe90919063ffffffff16565b6009819055505b6108a964e8d4a5100061089b85600301548560000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040518082815260200191505060405180910390a250505050565b61090d611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a5857600080fd5b505afa158015610a6c573d6000803e3d6000fd5b505050506040513d6020811015610a8257600080fd5b810190808051906020019092919050505090506000610aac60095483611afe90919063ffffffff16565b9050808310610b23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682072657761726473000000000000000000000000000081525060200191505060405180910390fd5b610b703384600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b505050565b610b7d611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610cc657600080fd5b505afa158015610cda573d6000803e3d6000fd5b505050506040513d6020811015610cf057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d5457600080fd5b505af1158015610d68573d6000803e3d6000fd5b505050506040513d6020811015610d7e57600080fd5b8101908080519060200190929190505050505050565b60075481565b600060048281548110610da957fe5b9060005260206000209060040201905080600201544311610dca5750610e95565b600060095490506000811415610dea574382600201819055505050610e95565b6000610dfa83600201544361131b565b90506000610e3d600654610e2f8660010154610e2160035487611a2e90919063ffffffff16565b611a2e90919063ffffffff16565b611ab490919063ffffffff16565b9050610e7f610e6c84610e5e64e8d4a5100085611a2e90919063ffffffff16565b611ab490919063ffffffff16565b8560030154611bf290919063ffffffff16565b8460030181905550438460020181905550505050505b50565b610ea0611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060078190555050565b6000600480549050905060005b81811015610f9357610f8881610d9a565b806001019050610f77565b5050565b610f9f611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611125611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b43600881905550565b60095481565b6111fc611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060088190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006008548211611340576113398383611afe90919063ffffffff16565b905061136a565b6008548310611352576000905061136a565b61136783600854611afe90919063ffffffff16565b90505b92915050565b6000600460008154811061138057fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506113dd6000610d9a565b60008160000154111561148f576000611434826001015461142664e8d4a5100061141887600301548760000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b611afe90919063ffffffff16565b9050600081111561148d5761148c3382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b5b505b6000831115611524576114e93330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c7a909392919063ffffffff16565b611500838260000154611bf290919063ffffffff16565b816000018190555061151d83600954611bf290919063ffffffff16565b6009819055505b61155664e8d4a5100061154884600301548460000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040518082815260200191505060405180910390a2505050565b600060046000815481106115c157fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506116673382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b6116808160000154600954611afe90919063ffffffff16565b60098190555060008160000181905550600081600101819055503373ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd969582600001546040518082815260200191505060405180910390a25050565b6116f8611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060038190555050565b6117ca611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461188a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61189381611d3b565b50565b60008060046000815481106118a757fe5b906000526020600020906004020190506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000826003015490506000600954905083600201544311801561191e575060008114155b156119b957600061193385600201544361131b565b90506000611976600654611968886001015461195a60035487611a2e90919063ffffffff16565b611a2e90919063ffffffff16565b611ab490919063ffffffff16565b90506119b46119a58461199764e8d4a5100085611a2e90919063ffffffff16565b611ab490919063ffffffff16565b85611bf290919063ffffffff16565b935050505b6119fd83600101546119ef64e8d4a510006119e1868860000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b611afe90919063ffffffff16565b945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611a415760009050611aae565b6000828402905082848281611a5257fe5b0414611aa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806123ad6021913960400191505060405180910390fd5b809150505b92915050565b6000611af683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7e565b905092915050565b6000611b4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f44565b905092915050565b611be58363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612004565b505050565b600033905090565b600080828401905083811015611c70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b611d35846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612004565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123876026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083118290611f2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611eef578082015181840152602081019050611ed4565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611f3657fe5b049050809150509392505050565b6000838311158290611ff1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fb6578082015181840152602081019050611f9b565b50505050905090810190601f168015611fe35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6060612066826040518060400160405280602081526020017f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120f39092919063ffffffff16565b90506000815111156120ee5780806020019051602081101561208757600080fd5b81019080805190602001909291905050506120ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061235d602a913960400191505060405180910390fd5b5b505050565b6060612102848460008561210b565b90509392505050565b606061211685612311565b612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106121d857805182526020820191506020810190506020830392506121b5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461223a576040519150601f19603f3d011682016040523d82523d6000602084013e61223f565b606091505b50915091508115612254578092505050612309565b6000815111156122675780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122ce5780820151818401526020810190506122b3565b50505050905090810190601f1680156122fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561235357506000801b8214155b9250505091905056fe5361666542455032303a204245503230206f7065726174696f6e20646964206e6f7420737563636565644f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c165ea6333ca9e416aa0e5e75357e6586d89630e78e512cbd68bbbe395f1752764736f6c634300060c0033000000000000000000000000001a8ffcb0f03e99141652ebcdecdb0384e3bd6c000000000000000000000000001a8ffcb0f03e99141652ebcdecdb0384e3bd6c00000000000000000000000000000000000000000000000019f1741acf9b94700000000000000000000000000000000000000000000000000000000000cac6dc0000000000000000000000000000000000000000000000000000000000d3e765
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063817b1cd2116100c3578063b6b55f251161007c578063b6b55f251461049d578063db2e21bc146104cb578063db315ef3146104d5578063f2fde38b14610503578063f40f0f5214610547578063f7c618c11461059f57610158565b8063817b1cd21461037f578063822226741461039d57806386a952c4146103cb5780638ae39cac146103ff5780638da5cb5b1461041d5780638dbb1e3a1461045157610158565b806348cd4cb11161011557806348cd4cb1146102e757806351eb05a6146103055780635437f09814610333578063630b5ba114610361578063715018a61461036b57806380dc06721461037557610158565b80631526fe271461015d5780631959a002146101ca5780631aed6553146102295780632e1a7d4d146102475780633279beab14610275578063439b8155146102a3575b600080fd5b6101896004803603602081101561017357600080fd5b81019080803590602001909291905050506105d3565b604051808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b61020c600480360360208110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610630565b604051808381526020018281526020019250505060405180910390f35b610231610654565b6040518082815260200191505060405180910390f35b6102736004803603602081101561025d57600080fd5b810190808035906020019092919050505061065a565b005b6102a16004803603602081101561028b57600080fd5b8101908080359060200190929190505050610905565b005b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b75565b005b6102ef610d94565b6040518082815260200191505060405180910390f35b6103316004803603602081101561031b57600080fd5b8101908080359060200190929190505050610d9a565b005b61035f6004803603602081101561034957600080fd5b8101908080359060200190929190505050610e98565b005b610369610f6a565b005b610373610f97565b005b61037d61111d565b005b6103876111ee565b6040518082815260200191505060405180910390f35b6103c9600480360360208110156103b357600080fd5b81019080803590602001909291905050506111f4565b005b6103d36112c6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104076112ec565b6040518082815260200191505060405180910390f35b6104256112f2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104876004803603604081101561046757600080fd5b81019080803590602001909291908035906020019092919050505061131b565b6040518082815260200191505060405180910390f35b6104c9600480360360208110156104b357600080fd5b8101908080359060200190929190505050611370565b005b6104d36115b1565b005b610501600480360360208110156104eb57600080fd5b81019080803590602001909291905050506116f0565b005b6105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c2565b005b6105896004803603602081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611896565b6040518082815260200191505060405180910390f35b6105a7611a08565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600481815481106105e057fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b60056020528060005260406000206000915090508060000154908060010154905082565b60085481565b6000600460008154811061066a57fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015610737576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b6107416000610d9a565b600061078b826001015461077d64e8d4a5100061076f87600301548760000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b611afe90919063ffffffff16565b905060008111156107e4576107e33382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b5b600084111561087757610804848360000154611afe90919063ffffffff16565b826000018190555061085b33858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b61087084600954611afe90919063ffffffff16565b6009819055505b6108a964e8d4a5100061089b85600301548560000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040518082815260200191505060405180910390a250505050565b61090d611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a5857600080fd5b505afa158015610a6c573d6000803e3d6000fd5b505050506040513d6020811015610a8257600080fd5b810190808051906020019092919050505090506000610aac60095483611afe90919063ffffffff16565b9050808310610b23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682072657761726473000000000000000000000000000081525060200191505060405180910390fd5b610b703384600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b505050565b610b7d611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610cc657600080fd5b505afa158015610cda573d6000803e3d6000fd5b505050506040513d6020811015610cf057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d5457600080fd5b505af1158015610d68573d6000803e3d6000fd5b505050506040513d6020811015610d7e57600080fd5b8101908080519060200190929190505050505050565b60075481565b600060048281548110610da957fe5b9060005260206000209060040201905080600201544311610dca5750610e95565b600060095490506000811415610dea574382600201819055505050610e95565b6000610dfa83600201544361131b565b90506000610e3d600654610e2f8660010154610e2160035487611a2e90919063ffffffff16565b611a2e90919063ffffffff16565b611ab490919063ffffffff16565b9050610e7f610e6c84610e5e64e8d4a5100085611a2e90919063ffffffff16565b611ab490919063ffffffff16565b8560030154611bf290919063ffffffff16565b8460030181905550438460020181905550505050505b50565b610ea0611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060078190555050565b6000600480549050905060005b81811015610f9357610f8881610d9a565b806001019050610f77565b5050565b610f9f611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611125611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b43600881905550565b60095481565b6111fc611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060088190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006008548211611340576113398383611afe90919063ffffffff16565b905061136a565b6008548310611352576000905061136a565b61136783600854611afe90919063ffffffff16565b90505b92915050565b6000600460008154811061138057fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506113dd6000610d9a565b60008160000154111561148f576000611434826001015461142664e8d4a5100061141887600301548760000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b611afe90919063ffffffff16565b9050600081111561148d5761148c3382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b5b505b6000831115611524576114e93330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c7a909392919063ffffffff16565b611500838260000154611bf290919063ffffffff16565b816000018190555061151d83600954611bf290919063ffffffff16565b6009819055505b61155664e8d4a5100061154884600301548460000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040518082815260200191505060405180910390a2505050565b600060046000815481106115c157fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506116673382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b489092919063ffffffff16565b6116808160000154600954611afe90919063ffffffff16565b60098190555060008160000181905550600081600101819055503373ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd969582600001546040518082815260200191505060405180910390a25050565b6116f8611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060038190555050565b6117ca611bea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461188a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61189381611d3b565b50565b60008060046000815481106118a757fe5b906000526020600020906004020190506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000826003015490506000600954905083600201544311801561191e575060008114155b156119b957600061193385600201544361131b565b90506000611976600654611968886001015461195a60035487611a2e90919063ffffffff16565b611a2e90919063ffffffff16565b611ab490919063ffffffff16565b90506119b46119a58461199764e8d4a5100085611a2e90919063ffffffff16565b611ab490919063ffffffff16565b85611bf290919063ffffffff16565b935050505b6119fd83600101546119ef64e8d4a510006119e1868860000154611a2e90919063ffffffff16565b611ab490919063ffffffff16565b611afe90919063ffffffff16565b945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611a415760009050611aae565b6000828402905082848281611a5257fe5b0414611aa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806123ad6021913960400191505060405180910390fd5b809150505b92915050565b6000611af683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7e565b905092915050565b6000611b4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f44565b905092915050565b611be58363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612004565b505050565b600033905090565b600080828401905083811015611c70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b611d35846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612004565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123876026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083118290611f2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611eef578082015181840152602081019050611ed4565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611f3657fe5b049050809150509392505050565b6000838311158290611ff1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fb6578082015181840152602081019050611f9b565b50505050905090810190601f168015611fe35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6060612066826040518060400160405280602081526020017f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120f39092919063ffffffff16565b90506000815111156120ee5780806020019051602081101561208757600080fd5b81019080805190602001909291905050506120ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061235d602a913960400191505060405180910390fd5b5b505050565b6060612102848460008561210b565b90509392505050565b606061211685612311565b612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106121d857805182526020820191506020810190506020830392506121b5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461223a576040519150601f19603f3d011682016040523d82523d6000602084013e61223f565b606091505b50915091508115612254578092505050612309565b6000815111156122675780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122ce5780820151818401526020810190506122b3565b50505050905090810190601f1680156122fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561235357506000801b8214155b9250505091905056fe5361666542455032303a204245503230206f7065726174696f6e20646964206e6f7420737563636565644f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c165ea6333ca9e416aa0e5e75357e6586d89630e78e512cbd68bbbe395f1752764736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000001a8ffcb0f03e99141652ebcdecdb0384e3bd6c000000000000000000000000001a8ffcb0f03e99141652ebcdecdb0384e3bd6c00000000000000000000000000000000000000000000000019f1741acf9b94700000000000000000000000000000000000000000000000000000000000cac6dc0000000000000000000000000000000000000000000000000000000000d3e765
-----Decoded View---------------
Arg [0] : _syrup (address): 0x001A8Ffcb0f03e99141652eBCdecDb0384E3bd6c
Arg [1] : _rewardToken (address): 0x001A8Ffcb0f03e99141652eBCdecDb0384E3bd6c
Arg [2] : _rewardPerBlock (uint256): 1869402978836518000
Arg [3] : _startBlock (uint256): 13289180
Arg [4] : _bonusEndBlock (uint256): 13887333
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000001a8ffcb0f03e99141652ebcdecdb0384e3bd6c
Arg [1] : 000000000000000000000000001a8ffcb0f03e99141652ebcdecdb0384e3bd6c
Arg [2] : 00000000000000000000000000000000000000000000000019f1741acf9b9470
Arg [3] : 0000000000000000000000000000000000000000000000000000000000cac6dc
Arg [4] : 0000000000000000000000000000000000000000000000000000000000d3e765
Deployed Bytecode Sourcemap
23245:7763:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24283:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;24595:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29166:780;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30448:356;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30816:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24515:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27260:661;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25653:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28004:180;;;:::i;:::-;;22377:140;;;:::i;:::-;;25555:86;;;:::i;:::-;;24661:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25772:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24000:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24136:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21735:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26099:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28236:878;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30017:382;;;:::i;:::-;;25898:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22672:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26470:714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24026:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24201:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24283:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24595:28::-;;;;:::o;29166:780::-;29219:21;29243:8;29252:1;29243:11;;;;;;;;;;;;;;;;;;29219:35;;29265:21;29289:8;:20;29298:10;29289:20;;;;;;;;;;;;;;;29265:44;;29343:7;29328:4;:11;;;:22;;29320:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29384:13;29395:1;29384:10;:13::i;:::-;29408:15;29426:68;29478:4;:15;;;29426:47;29468:4;29426:37;29442:4;:20;;;29426:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;29408:86;;29518:1;29508:7;:11;29505:97;;;29536:54;29569:10;29582:7;29536:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;29505:97;29625:1;29615:7;:11;29612:204;;;29657:24;29673:7;29657:4;:11;;;:15;;:24;;;;:::i;:::-;29643:4;:11;;:38;;;;29696:55;29730:10;29743:7;29696:4;:12;;;;;;;;;;;;:25;;;;:55;;;;;:::i;:::-;29780:24;29796:7;29780:11;;:15;;:24;;;;:::i;:::-;29766:11;:38;;;;29612:204;29844:47;29886:4;29844:37;29860:4;:20;;;29844:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;29826:4;:15;;:65;;;;29918:10;29909:29;;;29930:7;29909:29;;;;;;;;;;;;;;;;;;29166:780;;;;:::o;30448:356::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30526:20:::1;30549:11;;;;;;;;;;;:21;;;30579:4;30549:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;30526:59;;30596:24;30623:29;30640:11;;30623:12;:16;;:29;;;;:::i;:::-;30596:56;;30692:16;30682:7;:26;30674:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;30742:54;30775:10;30788:7;30742:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;22017:1;;30448:356:::0;:::o;30816:187::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30882:12:::1;30904;30882:35;;30928:5;:14;;;30951:10;30964:5;:15;;;30988:4;30964:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;30928:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;22017:1;30816:187:::0;:::o;24515:25::-;;;;:::o;27260:661::-;27312:21;27336:8;27345:4;27336:14;;;;;;;;;;;;;;;;;;27312:38;;27381:4;:20;;;27365:12;:36;27361:75;;27418:7;;;27361:75;27446:16;27465:11;;27446:30;;27503:1;27491:8;:13;27487:102;;;27544:12;27521:4;:20;;:35;;;;27571:7;;;;27487:102;27599:18;27620:49;27634:4;:20;;;27656:12;27620:13;:49::i;:::-;27599:70;;27680:18;27701:72;27757:15;;27701:51;27736:4;:15;;;27701:30;27716:14;;27701:10;:14;;:30;;;;:::i;:::-;:34;;:51;;;;:::i;:::-;:55;;:72;;;;:::i;:::-;27680:93;;27807:60;27832:34;27857:8;27832:20;27847:4;27832:10;:14;;:20;;;;:::i;:::-;:24;;:34;;;;:::i;:::-;27807:4;:20;;;:24;;:60;;;;:::i;:::-;27784:4;:20;;:83;;;;27901:12;27878:4;:20;;:35;;;;27260:661;;;;;;:::o;25653:107::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25741:11:::1;25728:10;:24;;;;25653:107:::0;:::o;28004:180::-;28049:14;28066:8;:15;;;;28049:32;;28097:11;28092:85;28120:6;28114:3;:12;28092:85;;;28150:15;28161:3;28150:10;:15::i;:::-;28128:5;;;;;28092:85;;;;28004:180;:::o;22377:140::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22476:1:::1;22439:40;;22460:6;::::0;::::1;;;;;;;;22439:40;;;;;;;;;;;;22507:1;22490:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;22377:140::o:0;25555:86::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25621:12:::1;25605:13;:28;;;;25555:86::o:0;24661:30::-;;;;:::o;25772:114::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25864:14:::1;25848:13;:30;;;;25772:114:::0;:::o;24000:19::-;;;;;;;;;;;;;:::o;24136:29::-;;;;:::o;21735:79::-;21773:7;21800:6;;;;;;;;;;;21793:13;;21735:79;:::o;26099:306::-;26171:7;26202:13;;26195:3;:20;26191:207;;26239:14;26247:5;26239:3;:7;;:14;;;;:::i;:::-;26232:21;;;;26191:207;26284:13;;26275:5;:22;26271:127;;26321:1;26314:8;;;;26271:127;26362:24;26380:5;26362:13;;:17;;:24;;;;:::i;:::-;26355:31;;26099:306;;;;;:::o;28236:878::-;28288:21;28312:8;28321:1;28312:11;;;;;;;;;;;;;;;;;;28288:35;;28334:21;28358:8;:20;28367:10;28358:20;;;;;;;;;;;;;;;28334:44;;28475:13;28486:1;28475:10;:13::i;:::-;28517:1;28503:4;:11;;;:15;28499:253;;;28535:15;28553:68;28605:4;:15;;;28553:47;28595:4;28553:37;28569:4;:20;;;28553:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;28535:86;;28649:1;28639:7;:11;28636:105;;;28671:54;28704:10;28717:7;28671:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;28636:105;28499:253;;28775:1;28765:7;:11;28762:223;;;28793:74;28831:10;28852:4;28859:7;28793:4;:12;;;;;;;;;;;;:29;;;;:74;;;;;;:::i;:::-;28896:24;28912:7;28896:4;:11;;;:15;;:24;;;;:::i;:::-;28882:4;:11;;:38;;;;28949:24;28965:7;28949:11;;:15;;:24;;;;:::i;:::-;28935:11;:38;;;;28762:223;29013:47;29055:4;29013:37;29029:4;:20;;;29013:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;28995:4;:15;;:65;;;;29086:10;29078:28;;;29098:7;29078:28;;;;;;;;;;;;;;;;;;28236:878;;;:::o;30017:382::-;30064:21;30088:8;30097:1;30088:11;;;;;;;;;;;;;;;;;;30064:35;;30110:21;30134:8;:20;30143:10;30134:20;;;;;;;;;;;;;;;30110:44;;30165:59;30199:10;30212:4;:11;;;30165:4;:12;;;;;;;;;;;;:25;;;;:59;;;;;:::i;:::-;30249:28;30265:4;:11;;;30249;;:15;;:28;;;;:::i;:::-;30235:11;:42;;;;30302:1;30288:4;:11;;:15;;;;30332:1;30314:4;:15;;:19;;;;30367:10;30349:42;;;30379:4;:11;;;30349:42;;;;;;;;;;;;;;;;;;30017:382;;:::o;25898:123::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25998:15:::1;25981:14;:32;;;;25898:123:::0;:::o;22672:109::-;21957:12;:10;:12::i;:::-;21947:22;;:6;;;;;;;;;;:22;;;21939:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22745:28:::1;22764:8;22745:18;:28::i;:::-;22672:109:::0;:::o;26470:714::-;26531:7;26551:21;26575:8;26584:1;26575:11;;;;;;;;;;;;;;;;;;26551:35;;26597:21;26621:8;:15;26630:5;26621:15;;;;;;;;;;;;;;;26597:39;;26647:23;26673:4;:20;;;26647:46;;26704:16;26723:11;;26704:30;;26764:4;:20;;;26749:12;:35;:52;;;;;26800:1;26788:8;:13;;26749:52;26745:351;;;26818:18;26839:49;26853:4;:20;;;26875:12;26839:13;:49::i;:::-;26818:70;;26903:18;26924:72;26980:15;;26924:51;26959:4;:15;;;26924:30;26939:14;;26924:10;:14;;:30;;;;:::i;:::-;:34;;:51;;;;:::i;:::-;:55;;:72;;;;:::i;:::-;26903:93;;27029:55;27049:34;27074:8;27049:20;27064:4;27049:10;:14;;:20;;;;:::i;:::-;:24;;:34;;;;:::i;:::-;27029:15;:19;;:55;;;;:::i;:::-;27011:73;;26745:351;;;27113:63;27160:4;:15;;;27113:42;27150:4;27113:32;27129:15;27113:4;:11;;;:15;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;:46;;:63;;;;:::i;:::-;27106:70;;;;;;26470:714;;;:::o;24026:25::-;;;;;;;;;;;;;:::o;2316:471::-;2374:7;2624:1;2619;:6;2615:47;;;2649:1;2642:8;;;;2615:47;2674:9;2690:1;2686;:5;2674:17;;2719:1;2714;2710;:5;;;;;;:10;2702:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2778:1;2771:8;;;2316:471;;;;;:::o;3263:132::-;3321:7;3348:39;3352:1;3355;3348:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3341:46;;3263:132;;;;:::o;1392:136::-;1450:7;1477:43;1481:1;1484;1477:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1470:50;;1392:136;;;;:::o;16241:211::-;16358:86;16378:5;16408:23;;;16433:2;16437:5;16385:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16358:19;:86::i;:::-;16241:211;;;:::o;20334:98::-;20379:15;20414:10;20407:17;;20334:98;:::o;928:181::-;986:7;1006:9;1022:1;1018;:5;1006:17;;1047:1;1042;:6;;1034:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:1;1093:8;;;928:181;;;;:::o;16460:248::-;16604:96;16624:5;16654:27;;;16683:4;16689:2;16693:5;16631:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16604:19;:96::i;:::-;16460:248;;;;:::o;22887:229::-;22981:1;22961:22;;:8;:22;;;;22953:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23071:8;23042:38;;23063:6;;;;;;;;;;23042:38;;;;;;;;;;;;23100:8;23091:6;;:17;;;;;;;;;;;;;;;;;;22887:229;:::o;3891:312::-;4011:7;4043:1;4039;:5;4046:12;4031:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4070:9;4086:1;4082;:5;;;;;;4070:17;;4194:1;4187:8;;;3891:312;;;;;:::o;1831:226::-;1951:7;1984:1;1979;:6;;1987:12;1971:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2011:9;2027:1;2023;:5;2011:17;;2048:1;2041:8;;;1831:226;;;;;:::o;18776:774::-;19200:23;19226:69;19254:4;19226:69;;;;;;;;;;;;;;;;;19234:5;19226:27;;;;:69;;;;;:::i;:::-;19200:95;;19330:1;19310:10;:17;:21;19306:237;;;19465:10;19454:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19446:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19306:237;18776:774;;;:::o;13106:230::-;13243:12;13275:53;13298:6;13306:4;13312:1;13315:12;13275:22;:53::i;:::-;13268:60;;13106:230;;;;;:::o;14594:1020::-;14767:12;14800:18;14811:6;14800:10;:18::i;:::-;14792:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14926:12;14940:23;14967:6;:11;;14986:8;14996:4;14967:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14925:76;;;;15016:7;15012:595;;;15047:10;15040:17;;;;;;15012:595;15181:1;15161:10;:17;:21;15157:439;;;15424:10;15418:17;15485:15;15472:10;15468:2;15464:19;15457:44;15372:148;15567:12;15560:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14594:1020;;;;;;;:::o;9969:641::-;10029:4;10291:16;10318:19;10340:66;10318:88;;;;10522:7;10510:20;10498:32;;10571:11;10559:8;:23;;:42;;;;;10598:3;10586:15;;:8;:15;;10559:42;10551:51;;;;9969:641;;;:::o
Swarm Source
ipfs://c165ea6333ca9e416aa0e5e75357e6586d89630e78e512cbd68bbbe395f17527
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.003068 | 13,162,445.9755 | $40,377.91 |
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.