Contract 0x71c58c58e55a8be049c696737bccd9cf1ca253e7

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x81903d10afeadbd1885cbcfabdd68fa74a59f48e5f885ac940abd8094c68dd42Withdraw111174032021-09-21 20:36:323 hrs 29 mins ago0x38802be083aefc2ef0aaa860a0ac5dc27a6ab967 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.00049677
0x397f1b4fe384382175bce810201defd207e7f94f2a604e1655d9ff3558310b00Deposit110965682021-09-21 3:11:4420 hrs 53 mins ago0xd39be3ce7bf95d29b10cfde81018837a2eec4266 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
0xec7fe2bdcb12ad807acee04f5e5e57444ee48e90017e0e25063efe1741c4c1d1Deposit110818032021-09-20 14:50:471 day 9 hrs ago0x22668bc75dec80ce8ca07d1dd58eb796a3a5f72d IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000613805
0x73d784af33313a8e665aff05be0b39b02a7209269febfd7377da2b034cbd0542Deposit110816292021-09-20 14:42:051 day 9 hrs ago0x22668bc75dec80ce8ca07d1dd58eb796a3a5f72d IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000374565
0x05771767c11468f28a3ce9cee7f1b06a7938e99fe178f94f5e61d2ece4174788Deposit110787922021-09-20 12:18:381 day 11 hrs ago0x0e7dff6c716fea935e3508eb06a2e44a4cdb4fe0 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
0x85d1d3beb70ce798d7e7b012c9901998017f3743dfdc0165927bf20cb73343d3Deposit110584582021-09-19 19:21:052 days 4 hrs ago0x44c61776db84831465cc96fd1655eed8bcf4dbf6 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000374565
0xb56cf58a6808304fb6f1e4c22b23bbe01b64c59d1af761aa00b14adc3c7d3ce2Deposit110495282021-09-19 11:54:292 days 12 hrs ago0x7d2bdd1f49b7f85e7c11e3a3d7b462d6e7f6eaec IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000538805
0x4c09424588dd786b67a8fbf6688bbb50e4e3b98be0db2d7e7f3c30d990d1c70bDeposit110489012021-09-19 11:23:082 days 12 hrs ago0x0e7dff6c716fea935e3508eb06a2e44a4cdb4fe0 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
0x5d8af29003c401606306bd1b3370a8e9549a9c23ea7f10e557c87cbc92b2ffd8Withdraw110440872021-09-19 7:08:502 days 16 hrs ago0x38802be083aefc2ef0aaa860a0ac5dc27a6ab967 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.00057183
0xcc65a8d58a230b9ee2d9b8064e827faa3929694b90639d457651a44bf4143e33Deposit110372692021-09-19 1:27:192 days 22 hrs ago0xbb60f9f245505f3d132974169be1c01aa68f66f7 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000374565
0xafda04f692ec1814aa7207c5122dbddb4f91b95652588ecd284c2e2d835cca71Withdraw110362002021-09-19 0:33:282 days 23 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000346475
0xc74ee317ddc5e863c9aa1ba14b57010d05a1466a356452a192393cc01a8c491dDeposit110359852021-09-19 0:22:432 days 23 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
0xddc725705fe37a921de5a264502583cfd9fa5a96dcfa767998ea04cbfe74f5fbDeposit110327072021-09-18 21:38:493 days 2 hrs ago0xbd22e0731ad169f66463b86a45857dd99d548e69 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000538745
0x7d3e76709ad25f98f5a3b3d04b52bf915fbb8322c3eb4f0e89394ca395134e0aDeposit110288922021-09-18 18:28:033 days 5 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000582125
0xcfae05457666a9354589b526d55dd6d861c3ae0b26d59dce53fbe3df28db5578Deposit110282772021-09-18 17:56:543 days 6 hrs ago0x248da12de275e6cf0b0476ce05bee7bc04061e64 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000374565
0xe3269c2fad4374b077fcc1df67bf4fa314ee0234144b0808b83fd218bf3a8365Deposit110282732021-09-18 17:56:423 days 6 hrs ago0x248da12de275e6cf0b0476ce05bee7bc04061e64 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
0x3da6e6a7d0de3f6c55bf42406433b063b3a56aa35e649eb23b66839ef7491c59Withdraw110213002021-09-18 12:05:463 days 11 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000346595
0x8595a60e8eec69b447de18310220ff1447e9b5cce8d1f3497aa5d1d64e892ad0Deposit110212912021-09-18 12:05:193 days 12 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.00039022
0x4abface6b24fc5fcca6d989c4f967deb2cad9fc2d57cd118da65c9e484f00c24Deposit110211812021-09-18 11:59:493 days 12 hrs ago0x0e7dff6c716fea935e3508eb06a2e44a4cdb4fe0 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
0x5f58a4237658a33913bf3a7b769c626acddd22090fbd6ec14182ed635b1b79f4Deposit110206792021-09-18 11:34:433 days 12 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000582245
0xc4e57ae769e0806a16a635161dc32b11d1a0478cbbbb0b49c019018462f9d250Withdraw110193152021-09-18 10:26:313 days 13 hrs ago0xbae89b39c5b4b8950bb62f05bc83ec088815d17d IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000346475
0x495fcdfe3acea6bb202ddb305e9fe8400c9781a2443b939d1ed282675443fd9aWithdraw110149922021-09-18 6:50:013 days 17 hrs ago0x38802be083aefc2ef0aaa860a0ac5dc27a6ab967 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.00057183
0xbfc635a3abd7d139101be058fc9951839c1399214e4939a9dc96f39a73bab469Deposit110122912021-09-18 4:33:583 days 19 hrs ago0x58d0f3da9c97de3c39f481e146f3568081d328a2 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000374565
0x045807946fb4f5ef293a1c325a057c91a6b35f1b9996724754c9d70f6638bbbcWithdraw110121252021-09-18 4:25:403 days 19 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000346595
0x802e2198f624a4ee9db43edaacdd149ddbe71c90806d2ddf4c73402a841071d6Deposit110118632021-09-18 4:12:333 days 19 hrs ago0x4372c40d311bb444a967824dda1ec414625fbc36 IN  0x71c58c58e55a8be049c696737bccd9cf1ca253e70 BNB0.000449565
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xB11cFeD2a4D325b6FB46307645D174E9B081f808

Contract Name:
SmartChef

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-06
*/

/**
 *Submitted for verification at BscScan.com on 2021-02-01
*/

// SPDX-License-Identifier: GPL-v3.0



pragma solidity >=0.4.0;


library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, 'SafeMath: addition overflow');

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, 'SafeMath: subtraction overflow');
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, 'SafeMath: multiplication overflow');

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, 'SafeMath: division by 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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, 'SafeMath: modulo by 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;
        }
    }
}




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);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address _owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}




pragma solidity ^0.6.2;


library Address {
   
    function isContract(address account) internal view returns (bool) {

        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    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');
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, 'Address: low-level call failed');
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    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');
    }

    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);
            }
        }
    }
}




pragma solidity ^0.6.0;


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));
    }

    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));
    }

    function _callOptionalReturn(IBEP20 token, bytes memory data) private {
      
        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');
        }
    }
}




pragma solidity >=0.4.0;

contract Context {

    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;
    }
}




pragma solidity >=0.4.0;


contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), 'Ownable: caller is not the owner');
        _;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    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/SmartChef.sol

pragma solidity 0.6.12;





contract SmartChef 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;

    // 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;

    event Deposit(address indexed user, uint256 amount);
    event Withdraw(address indexed user, uint256 amount);
    event EmergencyWithdraw(address indexed user, uint256 amount);
    event StopReward(address indexed user, uint256 _bonusEndBlock);
    
    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;

    }

    function stopReward() public onlyOwner {
        bonusEndBlock = block.number;
        emit StopReward(msg.sender, bonusEndBlock);
    }


    // 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 = pool.lpToken.balanceOf(address(this));
        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 = pool.lpToken.balanceOf(address(this));
        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 SmartChef
    function deposit(uint256 _amount) public {
        PoolInfo storage pool = poolInfo[0];
        UserInfo storage user = userInfo[msg.sender];

        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) {
            user.amount = user.amount.add(_amount);
            pool.lpToken.safeTransferFrom(address(msg.sender), address(this), _amount);
        }
        user.rewardDebt = user.amount.mul(pool.accCakePerShare).div(1e12);

        emit Deposit(msg.sender, _amount);
    }

    // Withdraw SYRUP tokens from STAKING.
    function withdraw(uint256 _amount) external {
        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);
        }
        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];
        user.amount = 0;
        user.rewardDebt = 0;
        pool.lpToken.safeTransfer(address(msg.sender), user.amount);
        emit EmergencyWithdraw(msg.sender, user.amount);
    }

    // Withdraw reward. EMERGENCY ONLY.
    function emergencyRewardWithdraw(uint256 _amount) public onlyOwner {
        require(_amount < rewardToken.balanceOf(address(this)), 'not enough token');
        rewardToken.safeTransfer(address(msg.sender), _amount);
    }
    
    function updateReward(uint256 _update) public onlyOwner {
        rewardPerBlock = _update;
    }

}

Contract Security Audit

Contract ABI

[{"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":"_bonusEndBlock","type":"uint256"}],"name":"StopReward","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":"_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":[],"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":[{"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":"uint256","name":"_update","type":"uint256"}],"name":"updateReward","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"}]

6080604052600060065534801561001557600080fd5b5060405161235f38038061235f833981810160405260a081101561003857600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050600061008161029760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35084600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003819055508160078190555080600881905550600460405180608001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020016103e8815260200160075481526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015550506103e8600681905550505050505061029f565b600033905090565b6120b1806102ae6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806380dc0672116100ad578063b6b55f2511610071578063b6b55f25146103e1578063db2e21bc1461040f578063f2fde38b14610419578063f40f0f521461045d578063f7c618c1146104b55761012c565b806380dc06721461030557806386a952c41461030f5780638ae39cac146103435780638da5cb5b146103615780638dbb1e3a146103955761012c565b8063425c8abd116100f4578063425c8abd1461027757806348cd4cb1146102a557806351eb05a6146102c3578063630b5ba1146102f1578063715018a6146102fb5761012c565b80631526fe27146101315780631959a0021461019e5780631aed6553146101fd5780632e1a7d4d1461021b5780633279beab14610249575b600080fd5b61015d6004803603602081101561014757600080fd5b81019080803590602001909291905050506104e9565b604051808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b6101e0600480360360208110156101b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610546565b604051808381526020018281526020019250505060405180910390f35b61020561056a565b6040518082815260200191505060405180910390f35b6102476004803603602081101561023157600080fd5b8101908080359060200190929190505050610570565b005b6102756004803603602081101561025f57600080fd5b8101908080359060200190929190505050610800565b005b6102a36004803603602081101561028d57600080fd5b8101908080359060200190929190505050610a50565b005b6102ad610b22565b6040518082815260200191505060405180910390f35b6102ef600480360360208110156102d957600080fd5b8101908080359060200190929190505050610b28565b005b6102f9610ce9565b005b610303610d16565b005b61030d610e9c565b005b610317610fbd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61034b610fe3565b6040518082815260200191505060405180910390f35b610369610fe9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103cb600480360360408110156103ab57600080fd5b810190808035906020019092919080359060200190929190505050611012565b6040518082815260200191505060405180910390f35b61040d600480360360208110156103f757600080fd5b8101908080359060200190929190505050611067565b005b61041761128d565b005b61045b6004803603602081101561042f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ad565b005b61049f6004803603602081101561047357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611481565b6040518082815260200191505060405180910390f35b6104bd6116b6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600481815481106104f657fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b60056020528060005260406000206000915090508060000154908060010154905082565b60085481565b6000600460008154811061058057fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050828160000154101561064d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b6106576000610b28565b60006106a1826001015461069364e8d4a51000610685876003015487600001546116dc90919063ffffffff16565b61176290919063ffffffff16565b6117ac90919063ffffffff16565b905060008111156106fa576106f93382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117f69092919063ffffffff16565b5b60008411156107725761071a8483600001546117ac90919063ffffffff16565b826000018190555061077133858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117f69092919063ffffffff16565b5b6107a464e8d4a51000610796856003015485600001546116dc90919063ffffffff16565b61176290919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040518082815260200191505060405180910390a250505050565b610808611898565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561095157600080fd5b505afa158015610965573d6000803e3d6000fd5b505050506040513d602081101561097b57600080fd5b81019080805190602001909291905050508110610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b610a4d3382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117f69092919063ffffffff16565b50565b610a58611898565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060038190555050565b60075481565b600060048281548110610b3757fe5b9060005260206000209060040201905080600201544311610b585750610ce6565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610be557600080fd5b505afa158015610bf9573d6000803e3d6000fd5b505050506040513d6020811015610c0f57600080fd5b810190808051906020019092919050505090506000811415610c3b574382600201819055505050610ce6565b6000610c4b836002015443611012565b90506000610c8e600654610c808660010154610c72600354876116dc90919063ffffffff16565b6116dc90919063ffffffff16565b61176290919063ffffffff16565b9050610cd0610cbd84610caf64e8d4a51000856116dc90919063ffffffff16565b61176290919063ffffffff16565b85600301546118a090919063ffffffff16565b8460030181905550438460020181905550505050505b50565b6000600480549050905060005b81811015610d1257610d0781610b28565b806001019050610cf6565b5050565b610d1e611898565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ea4611898565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b436008819055503373ffffffffffffffffffffffffffffffffffffffff167f73ddfae8b47357649d8600703291f5eff23c1d1ec49636b96b8f173b7d5dd4356008546040518082815260200191505060405180910390a2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060085482116110375761103083836117ac90919063ffffffff16565b9050611061565b60085483106110495760009050611061565b61105e836008546117ac90919063ffffffff16565b90505b92915050565b6000600460008154811061107757fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506110d46000610b28565b60008160000154111561118657600061112b826001015461111d64e8d4a5100061110f876003015487600001546116dc90919063ffffffff16565b61176290919063ffffffff16565b6117ac90919063ffffffff16565b90506000811115611184576111833382600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117f69092919063ffffffff16565b5b505b6000831115611200576111a68382600001546118a090919063ffffffff16565b81600001819055506111ff3330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611928909392919063ffffffff16565b5b61123264e8d4a51000611224846003015484600001546116dc90919063ffffffff16565b61176290919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c846040518082815260200191505060405180910390a2505050565b6000600460008154811061129d57fe5b906000526020600020906004020190506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000181905550600081600101819055506113573382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117f69092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd969582600001546040518082815260200191505060405180910390a25050565b6113b5611898565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61147e816119e9565b50565b600080600460008154811061149257fe5b906000526020600020906004020190506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008260030154905060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561157b57600080fd5b505afa15801561158f573d6000803e3d6000fd5b505050506040513d60208110156115a557600080fd5b810190808051906020019092919050505090508360020154431180156115cc575060008114155b156116675760006115e1856002015443611012565b905060006116246006546116168860010154611608600354876116dc90919063ffffffff16565b6116dc90919063ffffffff16565b61176290919063ffffffff16565b90506116626116538461164564e8d4a51000856116dc90919063ffffffff16565b61176290919063ffffffff16565b856118a090919063ffffffff16565b935050505b6116ab836001015461169d64e8d4a5100061168f8688600001546116dc90919063ffffffff16565b61176290919063ffffffff16565b6117ac90919063ffffffff16565b945050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156116ef576000905061175c565b600082840290508284828161170057fe5b0414611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061205b6021913960400191505060405180910390fd5b809150505b92915050565b60006117a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b2c565b905092915050565b60006117ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bf2565b905092915050565b6118938363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611cb2565b505050565b600033905090565b60008082840190508381101561191e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6119e3846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611cb2565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120356026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083118290611bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b9d578082015181840152602081019050611b82565b50505050905090810190601f168015611bca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611be457fe5b049050809150509392505050565b6000838311158290611c9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c64578082015181840152602081019050611c49565b50505050905090810190601f168015611c915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6060611d14826040518060400160405280602081526020017f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611da19092919063ffffffff16565b9050600081511115611d9c57808060200190516020811015611d3557600080fd5b8101908080519060200190929190505050611d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061200b602a913960400191505060405180910390fd5b5b505050565b6060611db08484600085611db9565b90509392505050565b6060611dc485611fbf565b611e36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310611e865780518252602082019150602081019050602083039250611e63565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611ee8576040519150601f19603f3d011682016040523d82523d6000602084013e611eed565b606091505b50915091508115611f02578092505050611fb7565b600081511115611f155780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f7c578082015181840152602081019050611f61565b50505050905090810190601f168015611fa95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561200157506000801b8214155b9250505091905056fe5361666542455032303a204245503230206f7065726174696f6e20646964206e6f7420737563636565644f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220ab2be64d22b0b175978ed9315fcc3425da585eda0fa22453feb4d21346d6581064736f6c634300060c003300000000000000000000000031d6b166ee2096e9e8e95879e13489b8ac4031990000000000000000000000009349a76bc62a6e94c44848699ecc0d06daf151070000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000078e082000000000000000000000000000000000000000000000000000000e8d4a51000

Deployed ByteCode Sourcemap

10832:6946:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11749:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11831:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;12143:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16258:729;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17436:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17674:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12063:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14465:687;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15235:180;;;:::i;:::-;;10162:140;;;:::i;:::-;;13061:139;;;:::i;:::-;;11585:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11684:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9948:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13278:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15465:741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17058:329;;;:::i;:::-;;10310:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13649:740;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11611:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11749:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11831:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12143:28::-;;;;:::o;16258:729::-;16313:21;16337:8;16346:1;16337:11;;;;;;;;;;;;;;;;;;16313:35;;16359:21;16383:8;:20;16392:10;16383:20;;;;;;;;;;;;;;;16359:44;;16437:7;16422:4;:11;;;:22;;16414:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16478:13;16489:1;16478:10;:13::i;:::-;16502:15;16520:68;16572:4;:15;;;16520:47;16562:4;16520:37;16536:4;:20;;;16520:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;16502:86;;16612:1;16602:7;:11;16599:97;;;16630:54;16663:10;16676:7;16630:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;16599:97;16719:1;16709:7;:11;16706:151;;;16751:24;16767:7;16751:4;:11;;;:15;;:24;;;;:::i;:::-;16737:4;:11;;:38;;;;16790:55;16824:10;16837:7;16790:4;:12;;;;;;;;;;;;:25;;;;:55;;;;;:::i;:::-;16706:151;16885:47;16927:4;16885:37;16901:4;:20;;;16885:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;16867:4;:15;;:65;;;;16959:10;16950:29;;;16971:7;16950:29;;;;;;;;;;;;;;;;;;16258:729;;;;:::o;17436:226::-;10085:12;:10;:12::i;:::-;10075:22;;:6;;;;;;;;;;:22;;;10067:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17532:11:::1;;;;;;;;;;;:21;;;17562:4;17532:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;17522:7;:46;17514:75;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17600:54;17633:10;17646:7;17600:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;17436:226:::0;:::o;17674:99::-;10085:12;:10;:12::i;:::-;10075:22;;:6;;;;;;;;;;:22;;;10067:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17758:7:::1;17741:14;:24;;;;17674:99:::0;:::o;12063:25::-;;;;:::o;14465:687::-;14517:21;14541:8;14550:4;14541:14;;;;;;;;;;;;;;;;;;14517:38;;14586:4;:20;;;14570:12;:36;14566:75;;14623:7;;;14566:75;14651:16;14670:4;:12;;;;;;;;;;;;:22;;;14701:4;14670:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14651:56;;14734:1;14722:8;:13;14718:102;;;14775:12;14752:4;:20;;:35;;;;14802:7;;;;14718:102;14830:18;14851:49;14865:4;:20;;;14887:12;14851:13;:49::i;:::-;14830:70;;14911:18;14932:72;14988:15;;14932:51;14967:4;:15;;;14932:30;14947:14;;14932:10;:14;;:30;;;;:::i;:::-;:34;;:51;;;;:::i;:::-;:55;;:72;;;;:::i;:::-;14911:93;;15038:60;15063:34;15088:8;15063:20;15078:4;15063:10;:14;;:20;;;;:::i;:::-;:24;;:34;;;;:::i;:::-;15038:4;:20;;;:24;;:60;;;;:::i;:::-;15015:4;:20;;:83;;;;15132:12;15109:4;:20;;:35;;;;14465:687;;;;;;:::o;15235:180::-;15280:14;15297:8;:15;;;;15280:32;;15328:11;15323:85;15351:6;15345:3;:12;15323:85;;;15381:15;15392:3;15381:10;:15::i;:::-;15359:5;;;;;15323:85;;;;15235:180;:::o;10162:140::-;10085:12;:10;:12::i;:::-;10075:22;;:6;;;;;;;;;;:22;;;10067:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10261:1:::1;10224:40;;10245:6;::::0;::::1;;;;;;;;10224:40;;;;;;;;;;;;10292:1;10275:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10162:140::o:0;13061:139::-;10085:12;:10;:12::i;:::-;10075:22;;:6;;;;;;;;;;:22;;;10067:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13127:12:::1;13111:13;:28;;;;13166:10;13155:37;;;13178:13;;13155:37;;;;;;;;;;;;;;;;;;13061:139::o:0;11585:19::-;;;;;;;;;;;;;:::o;11684:29::-;;;;:::o;9948:79::-;9986:7;10013:6;;;;;;;;;;;10006:13;;9948:79;:::o;13278:306::-;13350:7;13381:13;;13374:3;:20;13370:207;;13418:14;13426:5;13418:3;:7;;:14;;;;:::i;:::-;13411:21;;;;13370:207;13463:13;;13454:5;:22;13450:127;;13500:1;13493:8;;;;13450:127;13541:24;13559:5;13541:13;;:17;;:24;;;;:::i;:::-;13534:31;;13278:306;;;;;:::o;15465:741::-;15517:21;15541:8;15550:1;15541:11;;;;;;;;;;;;;;;;;;15517:35;;15563:21;15587:8;:20;15596:10;15587:20;;;;;;;;;;;;;;;15563:44;;15620:13;15631:1;15620:10;:13::i;:::-;15662:1;15648:4;:11;;;:15;15644:253;;;15680:15;15698:68;15750:4;:15;;;15698:47;15740:4;15698:37;15714:4;:20;;;15698:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;15680:86;;15794:1;15784:7;:11;15781:105;;;15816:54;15849:10;15862:7;15816:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;15781:105;15644:253;;15920:1;15910:7;:11;15907:170;;;15952:24;15968:7;15952:4;:11;;;:15;;:24;;;;:::i;:::-;15938:4;:11;;:38;;;;15991:74;16029:10;16050:4;16057:7;15991:4;:12;;;;;;;;;;;;:29;;;;:74;;;;;;:::i;:::-;15907:170;16105:47;16147:4;16105:37;16121:4;:20;;;16105:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;16087:4;:15;;:65;;;;16178:10;16170:28;;;16190:7;16170:28;;;;;;;;;;;;;;;;;;15465:741;;;:::o;17058:329::-;17105:21;17129:8;17138:1;17129:11;;;;;;;;;;;;;;;;;;17105:35;;17151:21;17175:8;:20;17184:10;17175:20;;;;;;;;;;;;;;;17151:44;;17220:1;17206:4;:11;;:15;;;;17250:1;17232:4;:15;;:19;;;;17262:59;17296:10;17309:4;:11;;;17262:4;:12;;;;;;;;;;;;:25;;;;:59;;;;;:::i;:::-;17355:10;17337:42;;;17367:4;:11;;;17337:42;;;;;;;;;;;;;;;;;;17058:329;;:::o;10310:109::-;10085:12;:10;:12::i;:::-;10075:22;;:6;;;;;;;;;;:22;;;10067:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10383:28:::1;10402:8;10383:18;:28::i;:::-;10310:109:::0;:::o;13649:740::-;13710:7;13730:21;13754:8;13763:1;13754:11;;;;;;;;;;;;;;;;;;13730:35;;13776:21;13800:8;:15;13809:5;13800:15;;;;;;;;;;;;;;;13776:39;;13826:23;13852:4;:20;;;13826:46;;13883:16;13902:4;:12;;;;;;;;;;;;:22;;;13933:4;13902:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13883:56;;13969:4;:20;;;13954:12;:35;:52;;;;;14005:1;13993:8;:13;;13954:52;13950:351;;;14023:18;14044:49;14058:4;:20;;;14080:12;14044:13;:49::i;:::-;14023:70;;14108:18;14129:72;14185:15;;14129:51;14164:4;:15;;;14129:30;14144:14;;14129:10;:14;;:30;;;;:::i;:::-;:34;;:51;;;;:::i;:::-;:55;;:72;;;;:::i;:::-;14108:93;;14234:55;14254:34;14279:8;14254:20;14269:4;14254:10;:14;;:20;;;;:::i;:::-;:24;;:34;;;;:::i;:::-;14234:15;:19;;:55;;;;:::i;:::-;14216:73;;13950:351;;;14318:63;14365:4;:15;;;14318:42;14355:4;14318:32;14334:15;14318:4;:11;;;:15;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;:46;;:63;;;;:::i;:::-;14311:70;;;;;;13649:740;;;:::o;11611:25::-;;;;;;;;;;;;;:::o;737:252::-;795:7;826:1;821;:6;817:47;;;851:1;844:8;;;;817:47;876:9;892:1;888;:5;876:17;;921:1;916;912;:5;;;;;;:10;904:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;980:1;973:8;;;737:252;;;;;:::o;997:132::-;1055:7;1082:39;1086:1;1089;1082:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1075:46;;997:132;;;;:::o;359:136::-;417:7;444:43;448:1;451;444:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;437:50;;359:136;;;;:::o;6816:211::-;6933:86;6953:5;6983:23;;;7008:2;7012:5;6960:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6933:19;:86::i;:::-;6816:211;;;:::o;9246:98::-;9291:15;9326:10;9319:17;;9246:98;:::o;170:181::-;228:7;248:9;264:1;260;:5;248:17;;289:1;284;:6;;276:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;342:1;335:8;;;170:181;;;;:::o;7035:248::-;7179:96;7199:5;7229:27;;;7258:4;7264:2;7268:5;7206:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7179:19;:96::i;:::-;7035:248;;;;:::o;10525:229::-;10619:1;10599:22;;:8;:22;;;;10591:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10709:8;10680:38;;10701:6;;;;;;;;;;10680:38;;;;;;;;;;;;10738:8;10729:6;;:17;;;;;;;;;;;;;;;;;;10525:229;:::o;1137:312::-;1257:7;1289:1;1285;:5;1292:12;1277:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1316:9;1332:1;1328;:5;;;;;;1316:17;;1440:1;1433:8;;;1137:312;;;;;:::o;503:226::-;623:7;656:1;651;:6;;659:12;643:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;683:9;699:1;695;:5;683:17;;720:1;713:8;;;503:226;;;;;:::o;8707:439::-;8796:23;8822:69;8850:4;8822:69;;;;;;;;;;;;;;;;;8830:5;8822:27;;;;:69;;;;;:::i;:::-;8796:95;;8926:1;8906:10;:17;:21;8902:237;;;9061:10;9050:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9042:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8902:237;8707:439;;;:::o;4789:230::-;4926:12;4958:53;4981:6;4989:4;4995:1;4998:12;4958:22;:53::i;:::-;4951:60;;4789:230;;;;;:::o;5662:1020::-;5835:12;5868:18;5879:6;5868:10;:18::i;:::-;5860:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5994:12;6008:23;6035:6;:11;;6054:8;6064:4;6035:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5993:76;;;;6084:7;6080:595;;;6115:10;6108:17;;;;;;6080:595;6249:1;6229:10;:17;:21;6225:439;;;6492:10;6486:17;6553:15;6540:10;6536:2;6532:19;6525:44;6440:148;6635:12;6628:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5662:1020;;;;;;;:::o;3797:398::-;3857:4;3876:16;3903:19;3925:66;3903:88;;;;4107:7;4095:20;4083:32;;4156:11;4144:8;:23;;:42;;;;;4183:3;4171:15;;:8;:15;;4144:42;4136:51;;;;3797:398;;;:::o

Swarm Source

ipfs://ab2be64d22b0b175978ed9315fcc3425da585eda0fa22453feb4d21346d65810
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.