MetaMask - Ошибка RPC: запрос разрешений уже ожидает, в Angular 10

Я интегрировал MetaMask с Angular, и при открытии расширения MetaMask из кода я получаю эту ошибку.

Ниже приведен мой код для открытия расширения. Я вызываю эту функцию одним щелчком мыши, чтобы открыть MetaMask, где она выдает эту ошибку

MetaMask - Ошибка RPC: запрос разрешений уже отложен; пожалуйста, подождите. {код: -32002, сообщение: запрос разрешений уже отложен; пожалуйста, подождите.}

ethEnabled(template?): any
  {
    if ((window as any).web3)
    {
      (window as any).web3 = new Web3((window as any).web3.currentProvider);
      (window as any).ethereum.enable();
      console.log((window as any).ethereum.enable());

    }
    else
    {
      this.modalRef = this.modalService.show(template);
    }
  }


person Ahmer Khan    schedule 24.11.2020    source источник


Ответы (2)


Эта ошибка действительно ожидаема; это происходит, когда вы уже отправили запрос на разрешения, но пользователь либо не вошел в MetaMask, либо не предоставил разрешения вашему приложению.

Если пользователь входит в MetaMask и принимает запрос разрешений, эта ошибка больше не возникает.

Это объясняется в документах, где говорится You should always disable the "connect" button while the connection request is pending (в противном случае возникает эта ошибка).

Вот один из способов справиться с этим:

  • Отключить кнопку, пока запрос находится на рассмотрении
  • Если пользователь не подключается после определенного периода ожидания (10-20 секунд, возможно?), Покажите сообщение под кнопкой с просьбой к пользователю завершить подключение к MetaMask.

Дополнительную информацию и хороший пример можно найти в их документации здесь .

person Alacritas    schedule 16.01.2021

Очистите интернет-кеш, временные файлы и т. Д.

person UpTheLev    schedule 21.04.2021
comment
В качестве части ответа вы должны предоставить пример того, как выполнить Очистить интернет-кеш, временные файлы и т. Д.. - person Dov Benyomin Sohacheski; 21.04.2021