Обнаружение выхода из системы MetaMask (Ethereum)

Я просмотрел документацию здесь https://metamask.github.io/metamask-docs/Main_Concepts/Getting_Started

Но я не уверен, как определить выход пользователя из MetaMask?


person Peter Prographo    schedule 06.12.2019    source источник


Ответы (3)


    window.ethereum.on('accountsChanged', function (accounts) {
      let acc = accounts[0]

acc будет неопределенным, если они вышли из системы.

person Peter Prographo    schedule 06.12.2019

window.ethereum.on('accountsChanged', (accounts) => {
    // If user has locked/logout from MetaMask, this resets the accounts array to empty
    if (!accounts.length) {
      // logic to handle what happens once MetaMask is locked
    }
});

Таким образом, используя вышеизложенное, вы можете обнаружить блокировку / выход из MetaMask.

person balajipachai    schedule 24.12.2020

Из Ethereum Provider API MetaMask:

ethereum.on('accountsChanged', handler: (accounts: Array<string>) => void);

Провайдер MetaMask генерирует это событие всякий раз, когда изменяется возвращаемое значение RPC-метода eth_accounts. eth_accounts возвращает массив, который либо пуст, либо содержит единственный адрес учетной записи. Возвращенный адрес, если таковой имеется, является адресом последней использованной учетной записи, к которой вызывающему абоненту разрешен доступ. Вызывающие абоненты идентифицируются по их источнику URL, что означает, что все сайты с одинаковым происхождением имеют одинаковые разрешения.

person Miguel Mota    schedule 26.12.2020