MetaMask のアカウント(アドレス)切り替えを検知


  • MetaMask は複数アカウント(アドレス)を管理できる
  • web3 に MetaMask が inject しているとき、ユーザがアカウントを切り替えたことを検知したいことがある
  • いろいろ方法しらべてみたけど、次のような原始的な方法を使う感じになりそう。

サンプルコード

var web3 = new Web3(web3.currentProvider);
var account = '';
var accountInterval = setInterval(function() {
  if (web3.eth.accounts[0] !== account) {
    // MetaMask のアカウント(アドレス)が切り替わった
    account = web3.eth.accounts[0];
  }
}, 300);

デモ

Note