thebrumby / HotWalletClaimer

Looking to optimize HOT earnings on Near Protocol, Wave on SUI, Vertus on TON, or other supported apps like Hamster Kombat? This Python script monitors and claims rewards for your favorite Telegram crypto games. It avoids API injections by simulating mouse movements in a real browser.
MIT License
159 stars 47 forks source link

Bug: HOT claim switch to other account when it come to step 109 move to near balance #250

Open ChocoPie02 opened 17 hours ago

ChocoPie02 commented 17 hours ago

Describe the Bug (required): when its going step 108, perfecly normal and its correct account, but when going to next step its switch to other account that have difference fireplace volume and Hot balance

Have you followed the troubleshooting guide (required): yes, i already doing all of troubleshooting

Steps to Reproduce (required): i have 14 account with the setting like this {"forceClaim": true, "debugIsOn": true, "hideSensitiveInput": false, "screenshotQRCode": false, "maxSessions": 1, "verboseLevel": 3, "telegramVerboseLevel": 1, "lowestClaimOffset": -10, "highestClaimOffset": 24, "forceNewSession": false, "useProxy": false, "proxyAddress": "http://127.0.0.1:8080", "requestUserAgent": false, "telegramBotToken": "78088838", "telegramBotChatId": -4810972, "enableCache": true}

Expected Behavior (required): its prob recovering previous claim account but, when first open its expected account to be claim

Screenshots or Logs: If applicable, add screenshots or logs to help explain your problem.

108_Timeout-during-click-the-pop-up-banner

109_Moved-to-move-to-the-'Near'-balance -without-clicking 109_MonElem-obtain-your-'Near'-Balance 109_move-to-the-'Near'-balance -was-out-of-bounds-and-scrolled-into-view

thebrumby commented 12 hours ago

Hi,

Please can you clarify what the bug is? Are you saying the script is not claiming correctly for you? Or do the screenshots not match what you expected, but does the script works correctly?

You mentioned that it could be residual from the previously claimed account, this is highly unlikely as each game session is segregated into three unique folders: selenium (the browser session), backups in case your session gets corrupted, and screenshots. Each game only accesses its unique folder.

If the screenshots you showed all came from the same sub-folder of screenshots, it would be worthwhile checking the dates the images were created. In older versions of the code, the screenshot folder was not cleaned between each claim - ensuring your claimer.py is up-to-date and restarting the session using PM2 should ensure the folder is cleaned correctly before each claim.

Thanks

ChocoPie02 commented 11 hours ago

thanks for the answer, yes, i pretty sure its from same claim session, when i compare the screenshot with logs, its error when find massage input box, and try to restore

but, since you mention it, i try to restart one by one, its slowly make through

This is from the logs

CHROME DRIVER INITIALISED: Try not to exit the script before it detaches. Step 100 - Attempting to verify if we are logged in (hopefully QR code is not present). Step 100 - nothing found to action. The QR code test passed.

Step 101 - Attempting to check for the start button (should not be present)... Step 101 - Timeout while attempting to check for the start button (should not be present). Step 102 - Attempting to open a link for the app: //a[@href='https://t.me/herewalletbot/app'] | //div[@class='new-message-bot-commands-view'][contains(text(),'Open Wallet')]... Step 102 - Failed to find the 'Open Wallet' button within the expected timeframe.

Step 102 - Attempting to find the chat window message input box... Step 102 - Timeout while attempting to find the chat window message input box. Step 102 - Failed to find the message input box.

Step 102 - Attempting to restore from backup and retry.

CHROME DRIVER DETACHED: It is now safe to exit the script. Session released: ./selenium/HOT: Session started: ./selenium/HOT: in status.txt No user agent found, using default. Detected iOS platform from user agent. tgWebAppPlatform will be changed to 'ios' later.

CHROME DRIVER INITIALISED: Try not to exit the script before it detaches. Step 102 - Backup restored successfully. Step 102 - Attempting to find the chat window message input box... Step 102 - Timeout while attempting to find the chat window message input box. Step 102 - Failed to find the message input box.

Step 102 - Retried after restoring backup, but still failed to send the '/start' command.

Step 103 - Attempting to open a link for the app: //a[@href='https://t.me/herewalletbot/app'] | //div[@class='new-message-bot-commands-view'][contains(text(),'Open Wallet')]... Step 103 - Failed to find the 'Open Wallet' button within the expected timeframe.

Step 104 - Attempting to click the 'Launch' button (probably not present)... Step 104 - Timeout while attempting to click the 'Launch' button (probably not present). Step 105 - Attempting to replace platform in iframe URL if necessary... Step 105 - Failed to locate the iframe within 'web-app-body' container. Step 106 - Attempting to switch to the app's iFrame within 'web-app-body'... Step 106 - Failed to find or switch to the iframe within 'web-app-body' within the timeout period.

Step 107 - Attempting to click the pop-up banner... Step 107 - Timeout while attempting to click the pop-up banner. Step 108 - Attempting to move to the 'Near' balance.... Step 108 - Timeout while attempting to move to the 'Near' balance.. Step 108 - Found 0 elements with XPath: (//div[div/img[contains(@src, '/ft/near.png')]])//div[last()]/p[last()] for obtain your 'Near' Balance Step 108 - Unable to pull your near balance. Step 109 - Attempting to click the 'storage' link... Step 109 - Timeout while attempting to click the 'storage' link. Step 110 - Found 0 elements with XPath: //p[contains(text(), 'HOT')]/following-sibling::img/following-sibling::p for get balance Step 111 - Found 0 elements with XPath: //div[div[p[text()='Storage']]]//p[last()] for get profit per hour Step 111 - An error occurred: expected string or bytes-like object Step 112 - Found 0 elements with XPath: //div[contains(., 'Storage')]//p[contains(., 'Filled') or contains(., 'to fill')] for get the wait time Error encountered: expected string or bytes-like object Session released: ./selenium/HOT:

Hi,

Please can you clarify what the bug is? Are you saying the script is not claiming correctly for you? Or do the screenshots not match what you expected, but does the script works correctly?

You mentioned that it could be residual from the previously claimed account, this is highly unlikely as each game session is segregated into three unique folders: selenium (the browser session), backups in case your session gets corrupted, and screenshots. Each game only accesses its unique folder.

If the screenshots you showed all came from the same sub-folder of screenshots, it would be worthwhile checking the dates the images were created. In older versions of the code, the screenshot folder was not cleaned between each claim - ensuring your claimer.py is up-to-date and restarting the session using PM2 should ensure the folder is cleaned correctly before each claim.

Thanks

thebrumby commented 11 hours ago

thanks for the answer, yes, i pretty sure its from same claim session

I've just checked a random selection of about 6 of my accounts, and can't see any mismatch. At the start of each claim, the script resumes the browser session that was created when you entered your seed phrase and it works solely within that same browser session. For it to switch to another browser session mid-claim, it would need to close the existing browser session and open a different one, you'd see something like this when it changed session.

7|HOT:Phil | CHROME DRIVER DETACHED: It is now safe to exit the script.
7|HOT:Phil | CHROME DRIVER INITIALISED: Try not to exit the script before it detaches.

But, we never call self.quit.driver() in the hot.py script, so I can be 99.99% sure that it's not changing browser sessions part way through the session.

This is from the logs

It looks like the script can't access the chat box. As described in the troubleshooting guide:

  1. Ensure your codebase is up-to-date with git pull or pull scripts.
  2. Check your in-game screenshots again, if you do a search on another device, it can be present on all devices and block the script from working.
  3. If this fails, use the status script to delete the affected account, and set it up again.
  4. In the worse case, you can also use status to delete the Telegram account and set that up again too.
phamvanhanh6720 commented 11 hours ago

Hi @thebrumby Today, I cannot claim Hot automatically because a video mission pops up after clicking the claim button. Below are my logs and a screenshot that shows the mission

Step 101 - Attempting to check for the start button (should not be present)... Step 102 - Attempting to open a link for the app: //a[@href='https://t.me/herewalletbot/app'] | //div[@class='new-message-bot-commands-view'][contains(text(),'Open Wallet')]... Step 103 - Attempting to click the 'Launch' button (probably not present)... Step 104 - Attempting to replace platform in iframe URL if necessary... Step 104 - Platform 'web' found in iframe URL and replaced with 'ios'. Step 105 - Attempting to switch to the app's iFrame within 'web-app-body'... Step 106 - Attempting to click the pop-up banner... Step 107 - Attempting to move to the 'Near' balance.... Step 108 - Attempting to click the 'storage' link... Step 111 - The pre-claim wait time is : Filled and random offset is 4 minutes. Step 112 - Attempting to check for NEWS.... Step 113 - Attempting to switch to the app's iFrame within 'web-app-body'... Step 114 - Attempting to click the claim button (1st button)... Step 115 - Attempting to click the claim button (2nd button - may not be present)... Step 116 - Let's wait for the pending Claim spinner to stop spinning... Step 118 - After BALANCE: 37.809545 Step 119 - After PROFIT/HOUR: 0.0225 STATUS: The wait timer is still showing: Filled - claim failed. Step 120 - This means either the claim failed, or there is >4 minutes lag in the game. Step 120 - We'll check back in 1 hour to see if the claim processed and if not, try again. CHROME DRIVER DETACHED: It is now safe to exit the script. 30 September - 07:48 | Need to wait until 30 September - 08:48 before the next claim attempt. Approximately 60 minutes.

image

thebrumby commented 10 hours ago

Hi @thebrumby Today, I cannot claim Hot automatically because a video mission pops up after clicking the claim button. Below are my logs and a screenshot that shows the mission

Hi,

What is your NEAR balance?

phamvanhanh6720 commented 9 hours ago

Hi @thebrumby Today, I cannot claim Hot automatically because a video mission pops up after clicking the claim button. Below are my logs and a screenshot that shows the mission

Hi,

What is your NEAR balance?

My account has 0.15 NEAR

thebrumby commented 7 hours ago

My account has 0.15 NEAR

As far as I know, that video is only for people getting the free gas fee transactions. Originally the script was set to flag if people had balances below 0.2 Near which was the original low balance threshold mentioned by the HOT devs, but then there was uproar and the community here wanted the warning changed to 0.1.

In any case, I would recommend topping up your near and hopefully, the issue will disappear.