{"address":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","latest":5116843,"price":{"usd":0.6441692302091765,"btc":0,"change24h":9.556647967296007,"marketCap":191132351.55561012,"volume24h":0,"source":"onchain","venue":"On-chain pool WDAN/USDT on dannyswap"},"balance":"0","nonce":1,"codeSize":14982,"isContract":true,"contract":{"verified":true,"name":"LoveDanMining","compiler":"v0.8.28+commit.7893614a","optimization":true,"runs":200,"license":"none","proxy":false,"implementation":null,"sourceCode":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.28;\n\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n\ninterface IERC20 {\n    function transfer(address to, uint256 amount) external returns (bool);\n    function balanceOf(address account) external view returns (uint256);\n    function transferFrom(\n        address from,\n        address to,\n        uint256 value\n    ) external returns (bool);\n}\n\nabstract contract Ownable is Context {\n    address private _owner;\n\n    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(\n        address indexed previousOwner,\n        address indexed newOwner\n    );\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    constructor(address initialOwner) {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n\nabstract contract ReentrancyGuard {\n    uint256 private constant _NOT_ENTERED = 1;\n    uint256 private constant _ENTERED = 2;\n\n    uint256 private _status;\n\n    constructor() {\n        _status = _NOT_ENTERED;\n    }\n\n    modifier nonReentrant() {\n        _nonReentrantBefore();\n        _;\n        _nonReentrantAfter();\n    }\n\n    function _nonReentrantBefore() private {\n        // On the first call to nonReentrant, _notEntered will be true\n        require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n        // Any calls to nonReentrant after this point will fail\n        _status = _ENTERED;\n    }\n\n    function _nonReentrantAfter() private {\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = _NOT_ENTERED;\n    }\n}\n\ninterface IUniswapV2Pair {\n    function token0() external view returns (address);\n    function token1() external view returns (address);\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\n}\n\ncontract LoveDanMining is ReentrancyGuard, Ownable {\n    IERC20 public token;\n    IUniswapV2Pair public lpaddress;\n    uint256 private SIGN_UP_BONUS; // $0.5\n    uint256 private BONUS_DURATION;\n    uint256 private REFERRAL_DURATION;\n    uint256 private bonusPercentages;\n    uint256 private transactionIdCounter;\n    uint256 private boosterPlanCount;\n    uint256 private claimperiod;\n    \n    uint256 public totalusers;\n    uint256 public totaldeposit;\n    uint256 public totalclaimed;\n\n    struct BoosterPlan {\n        string name;\n        uint256 usdAmount; // token tokens\n        uint256 duration; // in seconds\n        uint256 returnPercentage; // 200 for 200%\n        bool active;\n    }\n\n    struct UserMining {\n        uint256 hashrate;\n        uint256 signUpTime;\n        uint256 totalMined;\n        uint256 totalClaimed;\n        bool hasSignedUp;\n        uint256[] activeTransactionIds;\n        uint256[] referralIds;\n        uint256[] boosterIds;\n        uint256 lastclaimed;\n        uint256 endTime;\n        uint256 pendingreward;\n        uint256 totalpower;\n        uint256 lastclaimtime;\n    }\n\n    struct Transaction {\n        address useraddress;\n        uint256 transactionId;\n        uint256 transactionType; // 1=joining bonus, 2=referral, 3=buy booster\n        uint256 purchaseAmount;\n        uint256 usdamount;\n        uint256 totalAmount; \n        uint256 startTime;\n        uint256 duration;\n        string sourceType;\n        uint256 level; // For referrals: 1, 2, or 3\n        address referrer; // For referrals: the referred user\n        uint256 hashrate; // totalAmount * HASHRATE_PER_TOKEN / 10**18\n    }\n\n    mapping(address => UserMining) public users;\n    mapping(address => address) public referrers; // user => referrer\n    mapping(uint256 => Transaction) public transactions;\n    mapping(address => mapping(uint256 => uint256)) public userTransactionIndex; // user => page => transactionId\n    mapping(address => uint256) public userTransactionCount;\n    mapping(uint256 => BoosterPlan) public boosterPlans;\n    mapping(address => bool) public isuserpurchasebooster;\n\n    event UserSignedUp(\n        address indexed user,\n        uint256 transactionId,\n        uint256 totalReward\n    );\n    event BoosterPurchased(\n        address indexed user,\n        uint256 transactionId,\n        uint256 planId,\n        uint256 totalReward,\n        uint256 totalpaid\n    );\n    event ReferralReward(\n        address indexed referrer,\n        uint256 transactionId,\n        address indexed referee,\n        uint256 level,\n        uint256 totalReward\n    );\n    event RewardClaimed(address indexed user, uint256 amount);\n    event BoosterPlanAdded(uint256 indexed planId, string name);\n    event BoosterPlanUpdated(uint256 indexed planId);\n    event BoosterPlanRemoved(uint256 indexed planId);\n\n    constructor() Ownable(0x3435d20738487C21F24063A4851ff2c6Ba20218b) {\n        token = IERC20(0x6F22D0eaB6DdAC3d36B9F3043c3524FD4B7936a7);\n        lpaddress = IUniswapV2Pair(0xF3dD879ACCC37451aeF844360a6AA7Efb03d24fc);\n        // Initialize default booster plans\n        _addBoosterPlan(\"Starter\", 50 * 10 ** 18, 180 days, 12000);\n        _addBoosterPlan(\"Basic\", 100 * 10 ** 18, 180 days, 14000);\n        _addBoosterPlan(\"Advanced\", 500 * 10 ** 18, 180 days, 16000);\n        _addBoosterPlan(\"Premium\", 1000 * 10 ** 18, 180 days, 18000);\n\n        SIGN_UP_BONUS = 30e18;\n        BONUS_DURATION = 180 days;\n        REFERRAL_DURATION = 180 days;\n        bonusPercentages = 500;\n        claimperiod = 1 days;\n    }\n\n    function _updateRewards(address _account,uint256 _totalReward, uint256 _duration) internal {\n        UserMining storage user = users[_account];\n\n        // 1. Calculate reward earned up to now (or until endTime)\n        uint256 rewardTime = block.timestamp > user.endTime ? user.endTime : block.timestamp;\n        uint256 elapsed = (user.lastclaimed == 0 || user.lastclaimed >= rewardTime) ? 0 : rewardTime - user.lastclaimed;\n        uint256 pendingReward = elapsed * user.hashrate;\n\n        // 2. Store earned rewards\n        user.pendingreward += pendingReward;\n        // 3. Update last claimed timestamp\n        user.lastclaimed = block.timestamp;\n        // 4. Calculate remaining unearned rewards from current investment\n        uint256 remainingReward = 0;\n        if (user.endTime > block.timestamp) {\n            uint256 remainingTime = user.endTime - block.timestamp;\n            remainingReward = remainingTime * user.hashrate;\n        }\n\n        // 5. Add new investment reward\n        uint256 newTotalReward = remainingReward + _totalReward;\n        // 6. Calculate end time of the new investment\n        uint256 newInvestmentEndTime = block.timestamp + _duration;\n        // 7. Use whichever end time is later\n        uint256 finalEndTime = user.endTime > newInvestmentEndTime ? user.endTime : newInvestmentEndTime;\n        // 8. Remaining duration from now\n        uint256 finalDuration = finalEndTime - block.timestamp;\n        // 9. Calculate new reward rate\n        uint256 newHashrate = finalDuration > 0 ? newTotalReward / finalDuration : 0;\n\n        // 10. Update user state\n        user.hashrate = newHashrate;\n        user.endTime = finalEndTime;\n    } \n\n    \n\n    function signUp(address _referrer) external {\n        require(!users[msg.sender].hasSignedUp, \"Already signed up\");\n        require(_referrer != msg.sender, \"Cannot refer yourself\");\n\n        users[msg.sender].hasSignedUp = true;\n        users[msg.sender].signUpTime = block.timestamp;\n\n        // Create transaction for sign-up bonus\n        uint256 txId = transactionIdCounter++;\n        uint256 usdamount = getOutputAmount(SIGN_UP_BONUS , false);\n        uint256 hashrate = SIGN_UP_BONUS / BONUS_DURATION;\n\n        transactions[txId] = Transaction({\n            useraddress : msg.sender,\n            transactionId: txId,\n            transactionType: 1, // Joining bonus\n            purchaseAmount : 0,\n            usdamount : usdamount,\n            totalAmount: SIGN_UP_BONUS,\n            startTime: block.timestamp,\n            duration: BONUS_DURATION,\n            sourceType: \"Bonus\",\n            level: 0,\n            referrer: address(0),\n            hashrate: hashrate\n            \n        });\n\n        users[msg.sender].activeTransactionIds.push(txId);\n        userTransactionIndex[msg.sender][userTransactionCount[msg.sender]] = txId;\n        userTransactionCount[msg.sender]++;\n        users[msg.sender].totalpower += hashrate;\n        users[msg.sender].lastclaimtime = block.timestamp;\n\n        _updateRewards(msg.sender ,SIGN_UP_BONUS , BONUS_DURATION);\n        \n        if (_referrer != address(0) && users[_referrer].hasSignedUp) {\n            referrers[msg.sender] = _referrer;\n        }\n        totalusers++;\n\n        emit UserSignedUp(msg.sender, txId, SIGN_UP_BONUS);\n    }\n\n    function purchaseBooster(uint256 _planId) external {\n        require(users[msg.sender].hasSignedUp, \"Must register first\");\n        require(_planId < boosterPlanCount, \"Invalid plan\");\n        require(boosterPlans[_planId].active, \"Plan not active\");\n        BoosterPlan memory plan = boosterPlans[_planId];\n        uint256 usdAmount = getOutputAmount(plan.usdAmount , false);\n        require(\n            token.transferFrom(\n                msg.sender,\n                address(this),\n                plan.usdAmount \n            )\n        );\n        \n        uint256 totalReward = plan.usdAmount  + ((plan.usdAmount  * plan.returnPercentage) / 10000);\n        uint256 hashrate = totalReward / plan.duration;\n\n        _processReferralRewards(referrers[msg.sender], msg.sender , plan.usdAmount  , usdAmount);\n\n        uint256 txId = transactionIdCounter++;\n\n        transactions[txId] = Transaction({\n            useraddress : msg.sender,\n            transactionId: txId,\n            purchaseAmount : plan.usdAmount,\n            usdamount : usdAmount,\n            transactionType: 3, // Buy booster\n            totalAmount: totalReward,\n            startTime: block.timestamp,\n            duration: plan.duration,\n            sourceType: string(abi.encodePacked(\"Booster: \", plan.name)),\n            level: 0,\n            referrer: address(0),\n            hashrate: hashrate\n        });\n\n        users[msg.sender].activeTransactionIds.push(txId);\n        users[msg.sender].boosterIds.push(txId);\n        userTransactionIndex[msg.sender][userTransactionCount[msg.sender]] = txId;\n        userTransactionCount[msg.sender]++;\n        users[msg.sender].totalpower += hashrate;\n        isuserpurchasebooster[msg.sender] = true;\n        \n        _updateRewards(msg.sender ,totalReward , plan.duration);\n\n        totaldeposit += boosterPlans[_planId].usdAmount;\n        emit BoosterPurchased(msg.sender, txId, _planId, totalReward , plan.usdAmount);\n    }\n\n    function _processReferralRewards(\n        address _referrer,\n        address _referee,\n        uint256 _amount,\n        uint256 _usdamount\n    ) internal {\n        address current = _referrer;\n        uint256 level = 1;\n        if (users[current].hasSignedUp && isuserpurchasebooster[current]) {\n            uint256 totalReward = _amount * bonusPercentages / 10000;\n            uint256 usdamount = _usdamount * bonusPercentages / 10000;\n            uint256 hashrate = totalReward / REFERRAL_DURATION;\n\n            uint256 txId = transactionIdCounter++;\n            \n            transactions[txId] = Transaction({\n                useraddress : current,\n                transactionId: txId,\n                purchaseAmount : 0,\n                usdamount : usdamount,\n                transactionType: 2, // Referral\n                totalAmount: totalReward,\n                startTime: block.timestamp,\n                duration: REFERRAL_DURATION,\n                sourceType: string(\n                    abi.encodePacked(\n                        \"Referral Level \",\n                        _uintToString(level)\n                    )\n                ),\n                level: level,\n                referrer: _referee,\n                hashrate: hashrate\n            });\n\n            users[current].activeTransactionIds.push(txId);\n            users[current].referralIds.push(txId);\n            userTransactionIndex[current][userTransactionCount[current]] = txId;\n            userTransactionCount[current]++;\n            users[current].totalpower += hashrate;\n\n            _updateRewards(current, totalReward , REFERRAL_DURATION);\n\n            emit ReferralReward(\n                current,\n                txId,\n                _referee,\n                level,\n                totalReward\n            );\n        }  \n    }\n\n\n    function calculatePendingRewards(address _user) public view returns (uint256, uint256) {\n        if (!users[_user].hasSignedUp) return (0, 0);\n        UserMining storage user = users[_user];\n        uint256 totalPending = user.pendingreward;\n        uint256 rewardTime = block.timestamp > user.endTime ? user.endTime : block.timestamp;\n\n        uint256 elapsed = user.lastclaimed >= rewardTime ? 0 : rewardTime - user.lastclaimed;\n\n        uint256 pendingReward = elapsed * user.hashrate;\n        uint256 finalreward = pendingReward + totalPending;\n\n        return (finalreward, user.totalpower);\n    }\n    \n\n    function claimRewards() external nonReentrant {\n        require(users[msg.sender].hasSignedUp, \"Must sign up first\");\n        require(block.timestamp >= users[msg.sender].lastclaimtime + claimperiod , \"Please wait till next claim cycle!\");\n        UserMining storage user = users[msg.sender];\n        uint256 totalPending = user.pendingreward;\n        uint256 pendingReward = 0;\n        \n        uint256 rewardTime = block.timestamp > user.endTime ? user.endTime : block.timestamp;\n        uint256 elapsed = user.lastclaimed >= rewardTime ? 0 : rewardTime - user.lastclaimed;\n        pendingReward = elapsed * user.hashrate;\n        \n        \n        uint256 totalClaim = pendingReward + totalPending;\n\n        require(totalClaim > 0, \"No rewards to claim\");\n        require(token.balanceOf(address(this)) >= totalClaim, \"Insufficient contract balance\");\n\n        user.totalMined += totalClaim;\n        user.totalClaimed += totalClaim;\n        user.lastclaimtime = block.timestamp;\n        user.lastclaimed = block.timestamp;\n        user.pendingreward = 0;\n        totalclaimed += totalClaim;\n        if(block.timestamp >= user.endTime) user.totalpower = 0;\n        // Transfer  tokens to user\n        require(token.transfer(msg.sender, totalClaim), \"Transfer failed\");\n\n        emit RewardClaimed(msg.sender, totalClaim);\n    }\n\n    function getAllTransactionsPaginated(uint256 _page, uint256 _limit) external view returns (Transaction[] memory, uint256 totalPages) {\n        require(_limit > 0, \"Limit must be > 0\");\n\n        uint256 total = transactionIdCounter;\n        if (total == 0) {\n            return (new Transaction[](0), 0);\n        }\n\n        totalPages = (total + _limit - 1) / _limit;\n\n        if (_page >= totalPages) {\n            return (new Transaction[](0), totalPages);\n        }\n\n        uint256 startIndex = total - 1 - (_page * _limit);\n\n        uint256 endIndex = (startIndex >= _limit - 1)\n            ? startIndex - (_limit - 1)\n            : 0;\n\n        // result size\n        uint256 resultSize = startIndex - endIndex + 1;\n\n        Transaction[] memory result = new Transaction[](resultSize);\n\n        uint256 counter = 0;\n        for (uint256 i = startIndex; i >= endIndex; i--) {\n            result[counter] = transactions[i];\n            counter++;\n\n            // break when we hit index 0 to prevent uint underflow\n            if (i == 0) break;\n        }\n\n        return (result, totalPages);\n    }\n\n\n\n    // Pagination functions\n    function getUserTransactionsPaginated(\n        address _user,\n        uint256 _page,\n        uint256 _limit\n    ) external view returns (Transaction[] memory, uint256 totalPages) {\n        uint256 total = userTransactionCount[_user];\n        totalPages = (total + _limit - 1) / _limit;\n\n        if (_page >= totalPages || total == 0) {\n            return (new Transaction[](0), totalPages);\n        }\n\n        uint256 start = _page * _limit;\n        uint256 end = start + _limit;\n        if (end > total) end = total;\n\n        uint256 resultSize = end - start;\n        Transaction[] memory result = new Transaction[](resultSize);\n\n        for (uint256 i = 0; i < resultSize; i++) {\n            uint256 txId = userTransactionIndex[_user][start + i];\n            result[i] = transactions[txId];\n        }\n\n        return (result, totalPages);\n    }\n\n    function getUserReferralTransactionsPaginated(\n        address _user,\n        uint256 _page,\n        uint256 _limit\n    ) external view returns (Transaction[] memory, uint256 totalPages) {\n        uint256 total = users[_user].referralIds.length;\n\n        // Calculate totalPages (same formula you use already)\n        totalPages = (total + _limit - 1) / _limit;\n\n        // If page is out of range or no items -> return empty array\n        if (_page >= totalPages || total == 0) {\n            return (new Transaction[](0), totalPages);\n        }\n\n        // Calculate indexes\n        uint256 start = _page * _limit;\n        uint256 end = start + _limit;\n        if (end > total) end = total;\n\n        uint256 resultSize = end - start;\n\n        // Create output array\n        Transaction[] memory result = new Transaction[](resultSize);\n\n        // Fill with paginated referral transactions\n        for (uint256 i = 0; i < resultSize; i++) {\n            uint256 refTxId = users[_user].referralIds[start + i];\n            result[i] = transactions[refTxId];\n        }\n\n        return (result, totalPages);\n    }\n\n    function getUserBoosterTransactionsPaginated(\n        address _user,\n        uint256 _page,\n        uint256 _limit\n    ) external view returns (Transaction[] memory, uint256 totalPages) {\n        uint256 total = users[_user].boosterIds.length;\n\n        // Total pages calculation\n        totalPages = (total + _limit - 1) / _limit;\n\n        // No data or out-of-range page → return empty array\n        if (_page >= totalPages || total == 0) {\n            return (new Transaction[](0), totalPages);\n        }\n\n        // Calculate slice range\n        uint256 start = _page * _limit;\n        uint256 end = start + _limit;\n        if (end > total) end = total;\n\n        uint256 size = end - start;\n\n        Transaction[] memory result = new Transaction[](size);\n\n        // Fill response with booster transactions\n        for (uint256 i = 0; i < size; i++) {\n            uint256 txId = users[_user].boosterIds[start + i];\n            result[i] = transactions[txId];\n        }\n\n        return (result, totalPages);\n    }\n\n\n    // Helper function\n    function _uintToString(uint256 _i) internal pure returns (string memory) {\n        if (_i == 0) return \"0\";\n        uint256 j = _i;\n        uint256 length;\n        while (j != 0) {\n            length++;\n            j /= 10;\n        }\n        bytes memory bstr = new bytes(length);\n        uint256 k = length;\n        j = _i;\n        while (j != 0) {\n            bstr[--k] = bytes1(uint8(48 + (j % 10)));\n            j /= 10;\n        }\n        return string(bstr);\n    }\n\n    // View functions\n\n    function getTransaction(\n        uint256 _txId\n    ) external view returns (Transaction memory) {\n        return transactions[_txId];\n    }\n\n    // Admin functions\n    function addBoosterPlan(\n        string memory _name,\n        uint256 _tokenAmount,\n        uint256 _duration,\n        uint256 _returnPercentage\n    ) external onlyOwner {\n        _addBoosterPlan(_name, _tokenAmount, _duration, _returnPercentage);\n    }\n\n    function _addBoosterPlan(\n        string memory _name,\n        uint256 _tokenAmount,\n        uint256 _duration,\n        uint256 _returnPercentage\n    ) internal {\n        boosterPlans[boosterPlanCount] = BoosterPlan({\n            name: _name,\n            usdAmount: _tokenAmount,\n            duration: _duration,\n            returnPercentage: _returnPercentage,\n            active: true\n        });\n\n        emit BoosterPlanAdded(boosterPlanCount, _name);\n        boosterPlanCount++;\n    }\n\n    function updateBoosterPlan(\n        uint256 _planId,\n        string memory _name,\n        uint256 _tokenAmount,\n        uint256 _duration,\n        uint256 _returnPercentage\n    ) external onlyOwner {\n        require(_planId < boosterPlanCount, \"Invalid plan\");\n\n        boosterPlans[_planId].name = _name;\n        boosterPlans[_planId].usdAmount = _tokenAmount;\n        boosterPlans[_planId].duration = _duration;\n        boosterPlans[_planId].returnPercentage = _returnPercentage;\n\n        emit BoosterPlanUpdated(_planId);\n    }\n\n    function toggleBoosterPlan(uint256 _planId) external onlyOwner {\n        require(_planId < boosterPlanCount, \"Invalid plan\");\n        boosterPlans[_planId].active = !boosterPlans[_planId].active;\n\n        if (!boosterPlans[_planId].active) {\n            emit BoosterPlanRemoved(_planId);\n        }\n    }\n\n    function getActiveBoosterPlans()\n        external\n        view\n        returns (BoosterPlan[] memory)\n    {\n        uint256 activeCount = 0;\n        for (uint256 i = 0; i < boosterPlanCount; i++) {\n            if (boosterPlans[i].active) activeCount++;\n        }\n\n        BoosterPlan[] memory activePlans = new BoosterPlan[](activeCount);\n        uint256 index = 0;\n        for (uint256 i = 0; i < boosterPlanCount; i++) {\n            if (boosterPlans[i].active) {\n                activePlans[index] = boosterPlans[i];\n                index++;\n            }\n        }\n        return activePlans;\n    }\n\n    function updateToken(address _newToken) external onlyOwner {\n        require(_newToken != address(0), \"Invalid token address\");\n        token = IERC20(_newToken);\n    }\n\n    function withdrawBNB() external onlyOwner {\n        payable(owner()).transfer(address(this).balance);\n    }\n\n    function withdrawTokens(\n        address _token,\n        uint256 _amount\n    ) external onlyOwner {\n        IERC20(_token).transfer(owner(), _amount);\n    }\n\n    function setToken(address _token) external onlyOwner {\n        require(_token != address(0), \"Invalid token address\");\n        token = IERC20(_token);\n    }\n\n    function setSignUpBonus(uint256 _bonus) external onlyOwner {\n        SIGN_UP_BONUS = _bonus;\n    }\n\n    function setBonusDuration(uint256 _duration) external onlyOwner {\n        require(_duration > 0, \"Duration must be > 0\");\n        BONUS_DURATION = _duration;\n    }\n\n    function setReferralDuration(uint256 _duration) external onlyOwner {\n        require(_duration > 0, \"Duration must be > 0\");\n        REFERRAL_DURATION = _duration;\n    }\n\n    // Update a single bonus percentage (index 0–2)\n    function setBonusPercentage(\n        uint256 value\n    ) external onlyOwner {\n        bonusPercentages = value;\n    }\n\n\n    function getContractInfo()\n        external\n        view\n        returns (\n            address,\n            uint256,\n            uint256,\n            uint256,\n            uint256,\n            uint256,\n            uint256,\n            uint256\n        )\n    {\n        return (\n            address(token),\n            SIGN_UP_BONUS,\n            BONUS_DURATION,\n            REFERRAL_DURATION,\n            bonusPercentages,\n            transactionIdCounter,\n            boosterPlanCount,\n            claimperiod\n        );\n    }\n\n    function getContractStats()\n        external\n        view\n        returns (\n            uint256 _totalUsers,\n            uint256 _totalDeposit,\n            uint256 _totalClaimed\n        )\n    {\n        return (totalusers, totaldeposit, totalclaimed);\n    }\n\n    function setClaimPeriod(uint256 _period) external onlyOwner{\n        claimperiod = _period;\n    }\n\n    function setPair(address _pair) external onlyOwner{\n        lpaddress = IUniswapV2Pair(_pair);\n    }\n\n    function getTokenPrice() public view returns (uint256) {\n        (uint256 reserve0, uint256 reserve1, ) = lpaddress.getReserves();\n        uint256 tokenprice = (reserve1 * (10**28)) / reserve0;\n        return tokenprice;\n    }\n\n    function getOutputAmount(uint256 amount, bool isUsd) public view returns (uint256) {\n        uint256 price = getTokenPrice(); // price in USD (scaled 1e18)\n\n        if (isUsd) {\n            // USD → TOKEN\n            // tokenAmount = usdAmount / price\n            return (amount * 1e18) / price;\n        } else {\n            // TOKEN → USD\n            // usdAmount = tokenAmount * price\n            return (amount * price) / 1e18;\n        }\n    }\n}","abi":"[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"planId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"BoosterPlanAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"planId\",\"type\":\"uint256\"}],\"name\":\"BoosterPlanRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"planId\",\"type\":\"uint256\"}],\"name\":\"BoosterPlanUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"planId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalpaid\",\"type\":\"uint256\"}],\"name\":\"BoosterPurchased\",\"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\":\"referrer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"referee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalReward\",\"type\":\"uint256\"}],\"name\":\"ReferralReward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalReward\",\"type\":\"uint256\"}],\"name\":\"UserSignedUp\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_returnPercentage\",\"type\":\"uint256\"}],\"name\":\"addBoosterPlan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"boosterPlans\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"returnPercentage\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"calculatePendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveBoosterPlans\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"returnPercentage\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct LoveDanMining.BoosterPlan[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_page\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"getAllTransactionsPaginated\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"useraddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transactionType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdamount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sourceType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"}],\"internalType\":\"struct LoveDanMining.Transaction[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalPages\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContractInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContractStats\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalUsers\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_totalDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_totalClaimed\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isUsd\",\"type\":\"bool\"}],\"name\":\"getOutputAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txId\",\"type\":\"uint256\"}],\"name\":\"getTransaction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"useraddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transactionType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdamount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sourceType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"}],\"internalType\":\"struct LoveDanMining.Transaction\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_page\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"getUserBoosterTransactionsPaginated\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"useraddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transactionType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdamount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sourceType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"}],\"internalType\":\"struct LoveDanMining.Transaction[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalPages\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_page\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"getUserReferralTransactionsPaginated\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"useraddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transactionType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdamount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sourceType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"}],\"internalType\":\"struct LoveDanMining.Transaction[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalPages\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_page\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"getUserTransactionsPaginated\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"useraddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transactionType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdamount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sourceType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"}],\"internalType\":\"struct LoveDanMining.Transaction[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalPages\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isuserpurchasebooster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lpaddress\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Pair\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_planId\",\"type\":\"uint256\"}],\"name\":\"purchaseBooster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"referrers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"setBonusDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setBonusPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"setClaimPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pair\",\"type\":\"address\"}],\"name\":\"setPair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"setReferralDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_bonus\",\"type\":\"uint256\"}],\"name\":\"setSignUpBonus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"setToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_referrer\",\"type\":\"address\"}],\"name\":\"signUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_planId\",\"type\":\"uint256\"}],\"name\":\"toggleBoosterPlan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalclaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totaldeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalusers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transactions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"useraddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transactionType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purchaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdamount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sourceType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_planId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_returnPercentage\",\"type\":\"uint256\"}],\"name\":\"updateBoosterPlan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newToken\",\"type\":\"address\"}],\"name\":\"updateToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userTransactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userTransactionIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"users\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"hashrate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signUpTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalMined\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalClaimed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"hasSignedUp\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"lastclaimed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pendingreward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalpower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastclaimtime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawBNB\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"},"tokens":[{"address":"0x6f22d0eab6ddac3d36b9f3043c3524fd4b7936a7","name":"LOVEDAN","symbol":"LD","decimals":18,"type":"ERC-20","value":"4541645703009063092991654","tokenId":null,"price":0.02729550111226536,"logo":"/uploads/token-6f22d0eab6ddac3d36b9f3043c3524fd4b7936a7-7ff3ddf8b313f1c1.png"},{"address":"0x210f2a3709ba0ac935daf6566ecbff08c675a420","name":"JSCOIN","symbol":"JS","decimals":18,"type":"ERC-20","value":"7000000000000000000000","tokenId":null,"price":0.05723899609431738,"logo":"/uploads/token-210f2a3709ba0ac935daf6566ecbff08c675a420-abda9461789f7417.png"}],"summary":{"isContract":true,"isVerified":true,"name":null,"ensName":null,"creator":"0xbb576f8a4283c9cba153f9c79f2ac4fe50fde526","creationTx":null,"publicTags":[],"hasTokens":true,"hasLogs":true,"validatedBlocks":false},"firstLast":{"last":{"hash":"0xec8e0439ca169a7ff82c8bd3ba755b3ff38f0647d2724ea5d230614e617cdd87","timestamp":1788459499,"blockNumber":5112065},"first":null,"fundedBy":null,"complete":false},"tab":"txs","page":1,"offset":25,"scan":{"available":true,"source":"blockscout","ok":true,"message":"OK"},"rows":[{"hash":"0xec8e0439ca169a7ff82c8bd3ba755b3ff38f0647d2724ea5d230614e617cdd87","blockNumber":"5112065","timeStamp":"1788459499","from":"0x774797569bfa06594208ca061c37efc60794bd1e","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4792906660661","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x06ece666c2a9ed5a261b997a37755dab5206d668478bb7e71a464da713a3e3a9","blockNumber":"5112050","timeStamp":"1788459469","from":"0x774797569bfa06594208ca061c37efc60794bd1e","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"855246","gasUsed":"847354","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x8ef975322fbcbaa869cf192420477e8e8c7109faba66ea98a621b0dec10e7dee","blockNumber":"5112012","timeStamp":"1788459393","from":"0x774797569bfa06594208ca061c37efc60794bd1e","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"531463","gasUsed":"526120","gasPrice":"4792906660661","isError":"0","txreceipt_status":"1","input":"0xcb9429b5000000000000000000000000a064c47c7760981e68ae625bfc37403a549d989e","methodId":"0xcb9429b5","functionName":"signUp"},{"hash":"0xac8f6442e5ccc4d3faa0f971ccff3fe24eed791ed4dc907f7edaf9b7734504f4","blockNumber":"5110649","timeStamp":"1788456667","from":"0x8424189d7e81db256fb238ff649a1e0b65a20be2","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5400000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xe943090b5c7604bf61fdd5efbdf25e7b2ead9441e9c2ece76674a2c8377062d9","blockNumber":"5110622","timeStamp":"1788456613","from":"0xb83f939d08f037fc857717353eebb2ef249972c1","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"103676","gasUsed":"97925","gasPrice":"5400000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x0f841ceab522b88c69c3f6173184541bd8b349b5769f2a3ecfcc4b79032c597a","blockNumber":"5108928","timeStamp":"1788453225","from":"0x74e5e55150558d16e204b403dcd98b9d98d45184","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"531463","gasUsed":"526120","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0xcb9429b5000000000000000000000000647b523d4c9a4b882abd18379da827398ff7c837","methodId":"0xcb9429b5","functionName":"signUp"},{"hash":"0xda08dc8ad799bd89965a1221ae5824f05f985270eb1297b29daf93f8bdfc3ef0","blockNumber":"5108730","timeStamp":"1788452829","from":"0x647b523d4c9a4b882abd18379da827398ff7c837","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"531463","gasUsed":"526120","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0xcb9429b500000000000000000000000063c5a00992b16a694decf34ccdc8c5a359b59a5a","methodId":"0xcb9429b5","functionName":"signUp"},{"hash":"0x363986a9a32bfa206503bf1541289c6bd254e7cafbc686685283b7ba8031e71c","blockNumber":"5108312","timeStamp":"1788451993","from":"0x5ee9fe546cbcc83583a8f0e2924d43c9b1affa17","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4543275220288","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000001","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x15a5e8fd6bce376ad54b890c546be770af13b6784cd023fee55135778f144a4e","blockNumber":"5108273","timeStamp":"1788451915","from":"0x96782610d3d65ca65b44a1611c051db55e415716","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800720","gasUsed":"793257","gasPrice":"5400000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000002","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xd26c163768e0ee285879d8afa432269c7645645b71b826b78dfaa821bb91fd89","blockNumber":"5107283","timeStamp":"1788449935","from":"0xfdbc7b26cbf8bb4b8e81fcbecf2271367ae43a22","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"647237","gasUsed":"426935","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000002","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x4b3713fc7c193631876b6e6cad02ca7e53f0df9c27da7ae6e9fbf05f07c447a3","blockNumber":"5107012","timeStamp":"1788449393","from":"0xfdbc7b26cbf8bb4b8e81fcbecf2271367ae43a22","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"647237","gasUsed":"426935","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000001","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x16664bc7006bb473be2c1d9094f1d929e496b173381f09d2e3a018080357349c","blockNumber":"5106977","timeStamp":"1788449323","from":"0xfdbc7b26cbf8bb4b8e81fcbecf2271367ae43a22","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"673089","gasUsed":"444035","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xaca8b4ae4195fe6e67a9ae1490306dcc53ba335d5e3cfc7aaa17d8bd53199f17","blockNumber":"5106962","timeStamp":"1788449293","from":"0xfdbc7b26cbf8bb4b8e81fcbecf2271367ae43a22","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"133808","gasUsed":"78825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xebe87cca39bbff1067e41ce070f2fa23b44ad36cefe2a0a57ee6b23392d7d82a","blockNumber":"5106939","timeStamp":"1788449247","from":"0x64d40c77a08f63dd32fee1b908155ccd156c53e6","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4539886445092","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000001","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xc9e90bbe9dc5c56582873ca856bd291f0afbaf86618f028a41f3edde98e3c8d6","blockNumber":"5104441","timeStamp":"1788444250","from":"0xf1304e343c721e0a4df4bca841a580a1e7ac8bcd","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"4679749785616","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xd1b815870bb799a1cef9d7f0d347342f04c28c0573a25ea6c926299e37106a56","blockNumber":"5104248","timeStamp":"1788443864","from":"0x43191db8dfbfdf9eea829c20e401234367cd042b","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"4875740144003","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x88790eab80055dc20bcacdec9a8ad29db850eac2cea46295174fb4a66d858773","blockNumber":"5103543","timeStamp":"1788442454","from":"0x74575175be2d3f885ce922bb9e9815a2f8cc5446","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"4671798585194","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xf5ba48e77f077344ae3c5556b77566fd352e977c31bbd388e1c2e38823286892","blockNumber":"5103075","timeStamp":"1788441518","from":"0xdb809917a3e076d92b47f21a7e16e040eb827295","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4820941092218","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xe3e9b1bae634d9e40564a226869f621d9c91561813f9f917226c9a91c8807c76","blockNumber":"5103070","timeStamp":"1788441508","from":"0xdb809917a3e076d92b47f21a7e16e040eb827295","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4837117935023","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xcb00649d547cc6785df7305e9435fd6714b1b31d6bbd84031946b9edc54d8416","blockNumber":"5103059","timeStamp":"1788441486","from":"0xdb809917a3e076d92b47f21a7e16e040eb827295","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"835188","gasUsed":"827454","gasPrice":"4660342381864","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xc9909e41072d22e4eea4e550326bc814939c95e08183069cf637787b1b6df135","blockNumber":"5102898","timeStamp":"1788441164","from":"0x1641a850d59466df9d12af3359071ea6090b192c","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"89205","gasUsed":"78825","gasPrice":"4769214224091","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x4d8d634d65040cf57c3c625cb5af89649008a4d5f52311bc3f5da192c206ecb2","blockNumber":"5102878","timeStamp":"1788441124","from":"0xdb809917a3e076d92b47f21a7e16e040eb827295","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"89205","gasUsed":"78825","gasPrice":"4770321299668","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xd2ae9353a80022722369c0f90c10d149de810d14aa7f5d0a0eb951a0ca5c7646","blockNumber":"5102839","timeStamp":"1788441046","from":"0xe167c49d9652057aeaf1cae511e7a5869b8f3fcc","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"89205","gasUsed":"78825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x4a9f9b45830a1db414f44183f84c6f77304d7f657f5e8af363c1234c4f34ebd1","blockNumber":"5102436","timeStamp":"1788440240","from":"0x4749c02fd8c640c8db935a46f05829e2ce1dd162","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"89205","gasUsed":"78825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x13eda9144034cda0c5d35cfb61c689266cd13f2381f904ff423508bb0d17185c","blockNumber":"5101524","timeStamp":"1788438416","from":"0x709f05edbf2d0f1b741bee20ae8588e22ee05760","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5342877924093","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x5b2c82b15c0427757bef82b52c263837564d3abeadc3ed1de413b62b1bcd2ca2","blockNumber":"5100629","timeStamp":"1788436626","from":"0x9c3fae9e30d7f278ff3c3a8b8440ae97d9af22f3","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"103676","gasUsed":"97925","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x585b858dc1ae92cd4af1a75af25d82449cbf754340c43ad5c4200899e901d6c4","blockNumber":"5100145","timeStamp":"1788435658","from":"0x96cc7f35661b6e573c91e38d4dd576ec71e2e838","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"835188","gasUsed":"827454","gasPrice":"4500644650825","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x988171978cdf2bd29d37b5a744fc3a326abf3a38c0872516028773aeffaeaf96","blockNumber":"5100126","timeStamp":"1788435620","from":"0x96cc7f35661b6e573c91e38d4dd576ec71e2e838","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"103676","gasUsed":"97925","gasPrice":"4500464628759","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x951a12409dae62a44104c3da6d80914fcbdc9406421a875fc7aad348a61bcfd0","blockNumber":"5099999","timeStamp":"1788435366","from":"0x2884ad981980c29d4f2d8e727d181acda5373d4c","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"817953","gasUsed":"810354","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000001","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x6e2d3297813e9b19b913ad0a93998708452124f2eb190fb083e385ed08001f2c","blockNumber":"5099988","timeStamp":"1788435344","from":"0x2884ad981980c29d4f2d8e727d181acda5373d4c","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x79490c01c89a181a02fc3ee1a054f962202d6f35c470c744b42b5f5bd257e96a","blockNumber":"5099956","timeStamp":"1788435280","from":"0x3334f0bebbaa443fb615bec1662f3bf7b82e261d","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"129558","gasUsed":"80825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x13897f252328aa261317979996789f351e5d23879e3a8415a536eb03640b33f8","blockNumber":"5099837","timeStamp":"1788435042","from":"0x455aef7b6676950d71c4a4bde5d4e162b948aadb","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x164d6873ae3719fba063a475b5ad78e27f64032aecb4d8408ec6f8bd31184771","blockNumber":"5099814","timeStamp":"1788434996","from":"0x99634544cec4f71997ace60025418436e1733266","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xfc332fc741b9cc83ded631fa12640ac2df4d408175a0875c6568bd8e346601cf","blockNumber":"5099786","timeStamp":"1788434940","from":"0x652d74b5d7faf6038ef95a9f9795b33d7b8ce36c","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"4954993862336","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x29fa7f9596131aea30c4a70ea25219db3aa79d114760fd3c20c8636db88c0c0f","blockNumber":"5099767","timeStamp":"1788434902","from":"0xcf7ab6f3b63aab92cc66bb040672f6cb2789eea3","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"89205","gasUsed":"78825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x9ad35ce08f632e5dde42ad6ab304610bcc25094e0c6f20709aaab6bc2bbb5adf","blockNumber":"5099760","timeStamp":"1788434888","from":"0xd487fe481c4bcb2a34626c11c66e05e8cea3ce32","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xaaddbbc13fe9564be871d9275b67ef6beafd3f1b6f14bee66600e7ac5cbc05fa","blockNumber":"5099732","timeStamp":"1788434832","from":"0x56f81577a446587e60a3be860d41c1d62553f151","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x2a6ac1aa08f6e16256fbb7a5a13e72c85535e04b5d7b8d333dc2a939ab039498","blockNumber":"5099702","timeStamp":"1788434772","from":"0x75e9540eb8d7c43020a7491c6ab345a0018e144c","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xa8c8927b4b54fa939a6df26ec5252da11458b91cd66bb7042c2bdbe1abdaaaef","blockNumber":"5099665","timeStamp":"1788434698","from":"0xbecb467db25f79f9b04e0b20fdec3ef38b4544a9","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5185109069691","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xfe88dd953310ecdc84de36fc311251e4af3c11d0bc9019e02d4d3b3330f166df","blockNumber":"5099645","timeStamp":"1788434658","from":"0x7f78b559d0d85b9e4aaaa0663ce1685560847607","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5205133005264","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x3fa96b4a14aa83b31f249b13f61dfd04f24e1eed9e92150d10ac07b4899ade71","blockNumber":"5099620","timeStamp":"1788434608","from":"0xfa27a4a0b2b2e50207359300af128af16ba2d549","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5271431733162","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x241d1263d7398b933c8f09d9ed57573965c23585f3d7cb8e47e25c353b488fdc","blockNumber":"5099594","timeStamp":"1788434556","from":"0xb575e3d7087ef0b18f769c53e0d17e4e92f35da9","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"5356495313098","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x0b7ee53803a5a97d4d14c31271e162d3e3b366e3efa52b99ba14db310e1b5d56","blockNumber":"5099134","timeStamp":"1788433636","from":"0xf22939bf7ccc8331bc16219622536012ca1d6218","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"817956","gasUsed":"810357","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000002","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x2b34965f3d5e205ff80a9811bcbb15700c122df5f0642c454523f79d2db3fde8","blockNumber":"5099123","timeStamp":"1788433614","from":"0xf22939bf7ccc8331bc16219622536012ca1d6218","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x16bc5877acb7b583831b246678f1e32c385199e334e2e8f2c3e8a19a8f5527fc","blockNumber":"5099042","timeStamp":"1788433452","from":"0x0636bc9a3f6018280a0895c5246514448d11a034","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"817956","gasUsed":"810357","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000002","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x6d5b7c1e42768c6d98579f41809c35047665c898344270aabeeba9290aa8eee3","blockNumber":"5099025","timeStamp":"1788433418","from":"0x0636bc9a3f6018280a0895c5246514448d11a034","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"86372","gasUsed":"80825","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xc6c1f0a37cf9e6b6d917d2b66874ce5e1a535c8b00f8aee0d1feaed02ef9fa3b","blockNumber":"5098723","timeStamp":"1788432813","from":"0xb1e6970bf7160db79f52dc8db790a7100aac22e8","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4538835377241","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xba1e8df7ccb095ee2dfeabd41217f2695680a11408c6250601e25f42c356ce1f","blockNumber":"5098715","timeStamp":"1788432797","from":"0xb1e6970bf7160db79f52dc8db790a7100aac22e8","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4529162758694","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0xd2d7069d23082a44c6a9afea50bcd5078e8a77860e3f53e54f45a44fa48fb119","blockNumber":"5098707","timeStamp":"1788432781","from":"0xb1e6970bf7160db79f52dc8db790a7100aac22e8","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4529162758694","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"},{"hash":"0x1770b37b8a3134c064ffd165a02fae4179a68bcdd35b55d9f5733915712ae94b","blockNumber":"5098699","timeStamp":"1788432765","from":"0xb1e6970bf7160db79f52dc8db790a7100aac22e8","to":"0xf9c71d018afcd4d6fa80abcf8a52fb2b292f2272","contractAddress":"","value":"0","gas":"800717","gasUsed":"793254","gasPrice":"4531805450737","isError":"0","txreceipt_status":"1","input":"0x6f4a3ad70000000000000000000000000000000000000000000000000000000000000003","methodId":"0x6f4a3ad7","functionName":"purchaseBooster"}],"nextCursor":{"block_number":5098699,"fee":"3594872801018928198","hash":"0x1770b37b8a3134c064ffd165a02fae4179a68bcdd35b55d9f5733915712ae94b","index":0,"inserted_at":"2026-09-03T10:52:44.989000Z","items_count":50,"value":"0"}}