{"address":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","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":14942,"isContract":true,"contract":{"verified":true,"name":"GmxMining","compiler":"v0.8.28+commit.7893614a","optimization":true,"runs":200,"license":"mit","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 GmxMining 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    }\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(0xbB576f8A4283c9cbA153F9C79f2AC4fe50fdE526) {\n        token = IERC20(0x0Df1e0A50f78B38D4D34931982eD793Af72a0055);\n        lpaddress = IUniswapV2Pair(0x0C929Fb8C119D6E3FE985B63b851959D4bFc1F0d);\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\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].lastclaimed + claimperiod , \"Please wait till next claim cycle!\");\n        UserMining storage user = users[msg.sender];\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 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.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 GmxMining.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 GmxMining.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 GmxMining.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 GmxMining.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 GmxMining.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 GmxMining.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\"}],\"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":"0x0df1e0a50f78b38d4d34931982ed793af72a0055","name":"GMX COIN","symbol":"GMX","decimals":18,"type":"ERC-20","value":"7264857265982342495055455","tokenId":null,"price":0.029372088105989784,"logo":"/uploads/token-0df1e0a50f78b38d4d34931982ed793af72a0055-fd16a558ca74f520.png"}],"summary":{"isContract":true,"isVerified":true,"name":null,"ensName":null,"creator":"0xbb576f8a4283c9cba153f9c79f2ac4fe50fde526","creationTx":null,"publicTags":[],"hasTokens":true,"hasLogs":true,"validatedBlocks":false},"firstLast":{"last":{"hash":"0x416337a64344dacf5fc50a3a6d4c48c1fe3eb88ddfd5c198aafcb8decfa21cd4","timestamp":1788454213,"blockNumber":5109422},"first":null,"fundedBy":null,"complete":false},"tab":"txs","page":1,"offset":25,"scan":{"available":true,"source":"blockscout","ok":true,"message":"OK"},"rows":[{"hash":"0x416337a64344dacf5fc50a3a6d4c48c1fe3eb88ddfd5c198aafcb8decfa21cd4","blockNumber":"5109422","timeStamp":"1788454213","from":"0x19a7b75f352974f9eeb6635159b68b5bb1c9cf18","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x0cc757538afa1b5fdc3759106efa07a3b8ee318eb72976d2763cf9ba6fdce740","blockNumber":"5107274","timeStamp":"1788449917","from":"0x3f3ed6df342f5870cee8217e87b064bc62c36144","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4535220415022","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xfc1a76187bf505e073e11770df29987452edb564b15ba5d8c8dc3248dab6b840","blockNumber":"5107093","timeStamp":"1788449555","from":"0xcc5d55b6354c80e6b9668e9b5f0c41f870c85ef6","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4634396538608","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xbfe8376d126da4e595d0a0bff7a9c54803f092e31ca6a3ca58b32a13774a9400","blockNumber":"5106844","timeStamp":"1788449057","from":"0xfdbc7b26cbf8bb4b8e81fcbecf2271367ae43a22","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"123995","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xff7cfeaf6bccbe5dbadc0c587c70711300280e7e2409396796ba46f0e50d05da","blockNumber":"5105409","timeStamp":"1788446186","from":"0x25c280481e21ab671617a47224a5fb3aee712b33","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5274709946305","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x183c2c6a69035c0fc0a1e260465282f3fbc333237093f6dabcc54b918e0baa86","blockNumber":"5105384","timeStamp":"1788446136","from":"0x25c280481e21ab671617a47224a5fb3aee712b33","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5400000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x8033f07f70a009d85ae2fb23f7a57d62822294d975ca5ea7beeb1e49681b6d39","blockNumber":"5104570","timeStamp":"1788444508","from":"0xf1304e343c721e0a4df4bca841a580a1e7ac8bcd","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5284836623008","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x75495c279c27c42f17fc3220cf7392b474031684a995f8c268a883284adfc98f","blockNumber":"5104550","timeStamp":"1788444468","from":"0xf1304e343c721e0a4df4bca841a580a1e7ac8bcd","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5219743196688","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xbefc95d52cb5089c373a604d7e27655f9bd7cb5b7ab66fb4b9b047a0e35635e1","blockNumber":"5104296","timeStamp":"1788443960","from":"0xf6c66cc98314760ee811c10698ba14b07e09adef","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"99967","gasUsed":"94260","gasPrice":"4844691871616","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xfbe2c5102f05c9bb7175f8d08f0271129a945a80454f05a5701785451c8fef86","blockNumber":"5104282","timeStamp":"1788443932","from":"0x551ea2f54e1a7686a4390edfb0468e1eef8bc7fa","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4844691871616","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x86e9f0832c047d9b234698a5fcab697fc2d780b51929d4b02588eeaf017a9e25","blockNumber":"5104257","timeStamp":"1788443882","from":"0xe321eccd0f4875b80c774afb2702ee1127ed9e6b","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4876061310720","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xc8ee55d08aeaf777f0a2324e50bc70e354e16bbf759031a3c752cd204b707b94","blockNumber":"5104235","timeStamp":"1788443838","from":"0x2f4849514d6c28d9b0fa7b8d6ef33ba013515ab5","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4797913889721","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x71856a012784e92cb38e5ecee485d195618bf8203f2bafdf1d733914745c3be4","blockNumber":"5104213","timeStamp":"1788443794","from":"0xdb809917a3e076d92b47f21a7e16e040eb827295","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5395797872704","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x5307e17257568b6a47dd2f75cea2ab09a4a5b8222352fd7ccac05cb94a4d318f","blockNumber":"5104189","timeStamp":"1788443746","from":"0x37689a2c834a53d1b1ad3ab7caf1e4079e791e7c","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4981741416182","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xf842c684429d700185eea768d063c82457e04a259e1d02852982b915ac10593e","blockNumber":"5104168","timeStamp":"1788443704","from":"0xad77875e3a0fee082da7fefe0e05a64305b3c0ef","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4566095553706","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x758ffbe811b50536451cd9a40166ef2407c7d5d466346f2538ad83f3bdbd9179","blockNumber":"5104133","timeStamp":"1788443634","from":"0x43191db8dfbfdf9eea829c20e401234367cd042b","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5278823225275","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xe4dc528cd6159d0cd88c2209ff882ebff92618dba666d22de465dda43a64ae7c","blockNumber":"5103647","timeStamp":"1788442662","from":"0x6e1f7885fc820ad07a5e6322123a00e43be279fa","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"99967","gasUsed":"94260","gasPrice":"4772507907817","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x1047029f0ece4a541881ec2bf2f699d94156dd0635c447ad8a86d1d945c59ee3","blockNumber":"5103575","timeStamp":"1788442518","from":"0x74575175be2d3f885ce922bb9e9815a2f8cc5446","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5115519086973","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xa97a76598b7fb6de353628de41750ff1a6b18a041f3e4a9a02c8c2d5b8052f82","blockNumber":"5103532","timeStamp":"1788442432","from":"0xae538cac722a5edefbf70b1ba2d5bca0b630f2af","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4525519243065","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xbfbce781b5e64020d7ec5680c78b936c2889a16f1926659e777485adbd9c70b3","blockNumber":"5103272","timeStamp":"1788441912","from":"0xc482d865b66dfdbf4fd3525bf4be87301618d73b","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"149951","gasUsed":"94260","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xe9cf33ac1c97693552a957065dc4232ebd4d0c2ec226c3916232576c299bc21d","blockNumber":"5103172","timeStamp":"1788441712","from":"0xada7bd97d6aff2f6e23012f1ced594ad54b5bc33","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5389730935356","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x0350df5645ee0870818250cc21b52752109b7b2ca48faf449fb90dcd99f84a6e","blockNumber":"5103106","timeStamp":"1788441580","from":"0x3d420c6d91c0f1c5f075862fb3002fa0fafb2f87","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4567947798249","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x2436dbf13c0b78bf32f95a9e64fa1837470cad74b55ee602f88b1e70356fd42a","blockNumber":"5103082","timeStamp":"1788441532","from":"0xa1d5f4545e259d787e6da37296b10cf4a732426d","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"123995","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xc5f305a8c54f2adfc46e9a28dd525f5dd3af5977d8d5406fba615f1e2bc9ef33","blockNumber":"5103080","timeStamp":"1788441528","from":"0x527b12a114d62c69bbc907366430d5a137bb26a1","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4820941092218","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x6d5a3912ebd42732e60e4a9b49669e9f16be12f896e26d277da2d940e75a01b3","blockNumber":"5103061","timeStamp":"1788441490","from":"0x3d420c6d91c0f1c5f075862fb3002fa0fafb2f87","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5311047557120","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x3a6d60621e662b117443e4c43d9680aae46e442aa6fb0db44c8a2f39cb57a6dd","blockNumber":"5102948","timeStamp":"1788441264","from":"0x2e4ee3a373a1592b71888e8c6bac56856b6c21cd","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"123995","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x9185c028de1647a919012e1a3eff85d9ca0a852c92fa22d618031e28755f7b04","blockNumber":"5102861","timeStamp":"1788441090","from":"0xe6d93b8a404c1723b2af961aa2592b18b39c19eb","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"99967","gasUsed":"94260","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x35c63af232dbc4b7ec02f1ba7e1898f4e6d8ee7ab98be244a071663bcb0436cd","blockNumber":"5102821","timeStamp":"1788441010","from":"0xe8b0b8d7217281cfbef5f701fa934f25bdcc762a","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"123995","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x1bc345e28274eb6c4b784eeba8fa50be877af535c35e831375f325690fdeef6b","blockNumber":"5102605","timeStamp":"1788440578","from":"0x094f1231ba3d78ab03c45fa1a95a2286cb0dee0e","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5019242089611","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x8d0157635bfceda17705ec0efed501d09394c9a2af7d4f815d3d6b39ae2ca078","blockNumber":"5102392","timeStamp":"1788440152","from":"0x4ed85326fdc5e2a3a8e0997a02cf83862c15de32","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"99967","gasUsed":"94260","gasPrice":"4608228977421","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x3b64c4366d09eb938c7b302a263fd0d8aaae7f8f49e0e9c06fe761de1a4012c3","blockNumber":"5102331","timeStamp":"1788440030","from":"0x979f1030d3a9f7a0aa14356264c839cec047955f","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"99967","gasUsed":"94260","gasPrice":"4770418416154","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x7fc05d678c95973819c90d2910921b4fbc9790cd71e2529882f3f4e3eddd5a17","blockNumber":"5102318","timeStamp":"1788440004","from":"0xaca3b09447bb9e665666ea8db1eb1a2c5ac7eaf6","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4766891524861","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x3d0ce318a6ae14bd4adb3971df7365d79cd8f7ecd7901fb7188d62761eabc968","blockNumber":"5102283","timeStamp":"1788439934","from":"0xb4ad6a35943937826f4abeb363528f98a787c4fe","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4966228793270","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xc78eda725ebd5cd9f200e36c4bb6c0004404e5060156a3bf593c9dcf3b4152e8","blockNumber":"5102237","timeStamp":"1788439842","from":"0xd2a696512b3940d2f489351acd72ffc07a60a557","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5366618883906","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xd4fb87319ee1f18dbd1d4fbb075f93df0832a234c23265753bd35173f3a882c6","blockNumber":"5102218","timeStamp":"1788439804","from":"0xca052be34d50c7eb68b2bf76d8105459ed2b1bfb","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"99967","gasUsed":"94260","gasPrice":"4956709476549","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x732d9d0b1235550d5d7c3e0c5af19c6b306098ec74492b339c260693f452ac60","blockNumber":"5102203","timeStamp":"1788439774","from":"0xcc51c02c1c626bb12ccb34c01df3523ec1dd57c6","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5312158314805","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x2993b8032530b0242b499cae094760c17e0939fbba6a7857a9435ea5a6766881","blockNumber":"5102187","timeStamp":"1788439742","from":"0x3fca4551b82b0c9e81f7fc13e3f950947b231c30","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"5379999208376","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xeb275dbce1ec70751af621a62d783a26471892bfb5a3433f805bccf0ae45471e","blockNumber":"5102056","timeStamp":"1788439480","from":"0xc4018da369923face726880f25a85f710cf10b44","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4730937585726","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xe8471073d7e3b3706de7d11773b913420490354307c1eba67e32f776359f678b","blockNumber":"5101465","timeStamp":"1788438298","from":"0x709f05edbf2d0f1b741bee20ae8588e22ee05760","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4516465160616","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x08040c07bfa088f31288afb0a427d80f45349bf06ef9b35b3e0cdd63d64fbc74","blockNumber":"5100568","timeStamp":"1788436504","from":"0x9c3fae9e30d7f278ff3c3a8b8440ae97d9af22f3","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x2e54084434e145bf4b4f3190bb29fdd9c9303f50b9e2788f59081fb83e12f4a1","blockNumber":"5100416","timeStamp":"1788436200","from":"0x7abb4ad2e74b358ff5565e58dba6b6081e0bfc35","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x6a97693bd6fb42dd28dbe8e5d78d92bddbdd90d002260c4c0e0d37a60fb25997","blockNumber":"5100031","timeStamp":"1788435430","from":"0x3334f0bebbaa443fb615bec1662f3bf7b82e261d","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"123995","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xbdc04cabe596855dee8c9bbfda3ce092fe3aaf7bd4cbd39149f06de487242421","blockNumber":"5099549","timeStamp":"1788434466","from":"0xb575e3d7087ef0b18f769c53e0d17e4e92f35da9","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4560897069127","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x9c13abd982c6e05754b7a081df05775185c5ff60d4439cde9924fd8efc85a15a","blockNumber":"5099512","timeStamp":"1788434392","from":"0xfa27a4a0b2b2e50207359300af128af16ba2d549","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4561251330611","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0xd6d4fdd885e0c254bb7e967bdfcbfa1563c21c532be21add604b14e5bf1f0914","blockNumber":"5099482","timeStamp":"1788434332","from":"0x7f78b559d0d85b9e4aaaa0663ce1685560847607","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4553865418098","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x608cb8d175cbf424c96b5ced83f9141093e2555a3bb00d4ac89ae9ef0542d8cd","blockNumber":"5099456","timeStamp":"1788434280","from":"0xbecb467db25f79f9b04e0b20fdec3ef38b4544a9","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4877769575435","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x7b6832cc179be0dc4450bcad87112e6f7d040764dc637a6fe53a65e0a3684b7f","blockNumber":"5099429","timeStamp":"1788434226","from":"0x75e9540eb8d7c43020a7491c6ab345a0018e144c","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4909329049831","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x891e7167c9da459c3378dba8ae6379dd9d75b85266b6dcaaa0cf1190bb0fe628","blockNumber":"5097523","timeStamp":"1788430413","from":"0xe1526d4350e139a0578e8d37bedadbd795ecbf99","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x2054c18db1dad280034d53ef75c947c01c1a37dd6ee8fce9cd41fa84050c9d1f","blockNumber":"5097270","timeStamp":"1788429907","from":"0xec15fcb901e4772e67075e57568c93cab9fefcc4","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4500000000000","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"},{"hash":"0x9dc530ff9ef68bb3a959a18b74f73b4c9f160e7d331010560414ab72fd2bfa3b","blockNumber":"5097034","timeStamp":"1788429435","from":"0x8e9363dbebe568213d8ebaf02d93bc0bdd144a1c","to":"0x6190bb2ebca7ce7d2a079fd68b0ee14d4bdf1204","contractAddress":"","value":"0","gas":"82663","gasUsed":"77160","gasPrice":"4776329464506","isError":"0","txreceipt_status":"1","input":"0x372500ab","methodId":"0x372500ab","functionName":"claimRewards"}],"nextCursor":{"block_number":5097034,"fee":"368541581481282960","hash":"0x9dc530ff9ef68bb3a959a18b74f73b4c9f160e7d331010560414ab72fd2bfa3b","index":0,"inserted_at":"2026-09-03T09:57:15.217345Z","items_count":50,"value":"0"}}