Проблемы с Метамаском

Maxxxxxx

Client
Joined
Nov 12, 2024
Messages
3
Reaction score
0
Points
1
Подскажите как исправить шаблон, при подписании транзакции в Метамаске кнопка "Confirm" часто бывает не активная но скрипт нажимает на кнопку и идет дальше, при етом транзакция конечно не подписываеться(
Как можно правильно прописать подпись транзакции?
 

Attachments

Alex91

Известная личность
Read only
Joined
Aug 15, 2024
Messages
880
Reaction score
251
Points
63
Составь правильный xpath что бы не кликал по неактивной кнопке.
 
  • Thank you
Reactions: Maxxxxxx

severiniv

Client
Joined
Sep 17, 2019
Messages
14
Reaction score
1
Points
3
Как вариант - через костыль, создать два кубика нажатия и при успешном - перескакивать на второй. И далее, пока "нажимается". А при неуспешном нажатии, значит, кнопка недоступна, скорее всего, транзакция была отправлена, тогда уже делаем переход к нужному дальнейшему действию.
 

Hanger

Client
Joined
Nov 27, 2023
Messages
26
Reaction score
13
Points
3
Подскажите как исправить шаблон, при подписании транзакции в Метамаске кнопка "Confirm" часто бывает не активная но скрипт нажимает на кнопку и идет дальше, при етом транзакция конечно не подписываеться(
Как можно правильно прописать подпись транзакции?
C#:
int timeoutSeconds = 5; // Время ожидания изменений домена
int maxAttempts = 3; // Максимальное количество попыток нажать кнопку
int sleepMilliseconds = 3; // Задержка между проверками
DateTime domainChangeTime = DateTime.MinValue;
int attempts = 3; // Счетчик попыток

while (true)
{
    // Проверяем домен
    if (instance.ActiveTab.Domain != "mcohilncbfahbmgdjkbpemcciiolgcge")
    {
        if (domainChangeTime == DateTime.MinValue)
        {
            domainChangeTime = DateTime.Now;
        }
        else if ((DateTime.Now - domainChangeTime).TotalSeconds >= timeoutSeconds)
        {
            // Домен отличался в течение timeoutSeconds секунд, задача выполнена
            break; // Выходим из цикла
        }
    }
    else
    {
        domainChangeTime = DateTime.MinValue; // Сбрасываем время изменения домена
    }

    // Ищем кнопку
    HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0")
        .FindElementByXPath("//span[contains([USER=46442]@class[/USER], 'btn-content')]//div[text()='Confirm']", 0);

    if (!he.IsVoid)
    {
        // Кнопка найдена, нажимаем
        instance.WaitFieldEmulationDelay();
        he.RiseEvent("click", instance.EmulationLevel);

        // Ждем 5 секунд
        System.Threading.Thread.Sleep(5000);

        // Проверяем кнопку после нажатия
        he = instance.ActiveTab.GetDocumentByAddress("0")

            .FindElementByXPath("//span[contains([USER=46442]@class[/USER], 'btn-content')]//div[text()='Confirm']", 0);

        if (he.IsVoid)
        {
            // Кнопки нет, проверяем домен
            if (instance.ActiveTab.Domain != "mcohilncbfahbmgdjkbpemcciiolgcge")
            {
                // Домен изменился, задача выполнена
                break;
            }
        }
        else
        {
            // Кнопка осталась, увеличиваем счетчик попыток
            attempts++;
            if (attempts >= maxAttempts)
            {
                // Превышено максимальное количество попыток
                break;
            }
        }
    }

    // Небольшая задержка перед повторной проверкой
    System.Threading.Thread.Sleep(sleepMilliseconds);
}

Сделано для окекс, переделай под метамаск
 
Last edited by a moderator:
  • Thank you
Reactions: Maxxxxxx

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
21,028
Reaction score
9,358
Points
113
Спасибо вам за помощь.
Большая просьба, на будущее, размещать код в специальных тегах.

129426

Ваш код выше я уже поправил - добавил теги кода.
 
Last edited:
  • Thank you
Reactions: Maxxxxxx and Hanger

Maxxxxxx

Client
Joined
Nov 12, 2024
Messages
3
Reaction score
0
Points
1

olegbez007

Client
Joined
Nov 2, 2022
Messages
230
Reaction score
40
Points
28

Alex91

Известная личность
Read only
Joined
Aug 15, 2024
Messages
880
Reaction score
251
Points
63

olegbez007

Client
Joined
Nov 2, 2022
Messages
230
Reaction score
40
Points
28

Alex91

Известная личность
Read only
Joined
Aug 15, 2024
Messages
880
Reaction score
251
Points
63
Обязательный, не обязательный, проверка УРЛа.
Бесконечный цикл... Это прекрасно ;-)
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)