-
bitcoin $86353.520310 USD
1.06% -
ethereum $2748.504094 USD
0.61% -
tether $0.999805 USD
0.00% -
bnb $789.713139 USD
0.35% -
xrp $1.621177 USD
6.50% -
usd-coin $0.999968 USD
-0.01% -
solana $118.732892 USD
1.75% -
tron $0.343839 USD
-1.32% -
zcash $1622.688363 USD
8.33% -
hyperliquid $97.151941 USD
2.83% -
dogecoin $0.101886 USD
2.10% -
monero $571.352536 USD
-0.93% -
chainlink $13.016236 USD
0.75% -
cardano $0.257732 USD
5.00% -
unus-sed-leo $8.985389 USD
0.15%
メタマスクを使用して私のDAPPのチェーンの変更を処理する方法は?
"Handle MetaMask chain changes in dApps by listening for the `chainChanged` event and updating your provider and contracts accordingly."
2025/07/02 21:01
ダップのチェーンの変化を理解する
分散型アプリケーション(DAPP)を開発または相互作用する場合、ユーザーと開発者が直面する最も一般的な課題の1つは、チェーンの変更を処理することです。最も広く使用されている暗号通貨ウォレットの1つであるメタマスクは、ユーザーが異なるブロックチェーンネットワークを切り替えることができます。ただし、このようなチェーンの変更を検出および応答するようにDAPPが適切に構成されていない場合、これは混乱を引き起こす可能性があります。これには、Ethereum MainnetからBinance Smartチェーンまたはテストネット環境への切り替えなどのシナリオが含まれます。
コアの問題は、メタマスクで選択されたネットワークが変更されたときにDAPPが正しく反応するようにすることを中心に展開します。これは、チェーンIDまたはRPCエンドポイントが誤っていないため、ユーザーエクスペリエンスを維持し、トランザクションエラーを防ぐために重要です。
メタマスクのネットワークの変更を検出します
Metamaskは、 chainChangedと呼ばれるイベントリスナーを提供します。これは、ユーザーが別のネットワークに切り替えるたびにトリガーされます。これを処理するには、DappのJavaScriptコード内にチェーン変更されたイベントリスナーを実装する必要があります。
これがあなたがそれをセットアップする方法です:
- Web3をインポートするか、window.ethereumから注入プロバイダーを使用します。
-
chainChangedのイベントリスナーを追加します:window.ethereum.on('chainChanged', handleChainChanged); -
handleChainChanged関数を定義して、新しいチェーンIDに基づいてDAPPをリロードまたは再構成します。
これにより、DAPPは常にユーザーが現在接続しているネットワークを認識し、それに応じて適応できるようになります。
チェーンIDとネットワーク識別子の取り扱い
各ブロックチェーンネットワークには、チェーンIDとして知られる一意の識別子があります。たとえば、Ethereum MainnetはチェーンID 1を使用し、Rinkebyは4使用します。ユーザーがチェーンを切り替えると、 chainChangedイベントは新しいチェーンIDを16進形式で返します。
互換性を確保するために、あなたのdappは次のようにする必要があります
parseInt(chainId, 16)を使用して、返されたチェーンIDを16進数から小数点に変換します。- サポートされているチェーンIDのリストに対して、結果の値を比較します。
- 適切なUIフィードバックを表示するか、選択したチェーンがサポートされていない場合にユーザーをリダイレクトします。
チェーンがサポートされていない場合、DAPPはユーザーにバックバックを切り替えるか、メタマスクを介してカスタムネットワークを追加する方法の指示を提供するように促す必要があります。
プロバイダーの更新と契約の再接続
チェーンの変更を検出した後、プロバイダーを更新し、スマートコントラクトインスタンスを再接続することが不可欠です。そうしないと、データの取得が誤っていないか、トランザクションが失敗する可能性があります。
従うべきステップ:
- チェーンが変更された後、
window.ethereumを使用してWeb3の新しいインスタンスを作成します。 - 更新されたプロバイダーを使用して、すべての契約インスタンスを再接続します。
- アカウントのバランスと契約状態を再評価して、現在のネットワークを反映します。
このプロセスにより、すべての相互作用が正しいチェーンで発生し、ネットワークスイッチに関係なくDAPPが応答性があり正確なままであることが保証されます。
ユーザーにカスタムチェーンを追加するように促します
場合によっては、DAPPがユーザーがMetamaskでデフォルトで利用できないネットワークに接続する必要がある場合があります。そのような場合、 wallet_addEthereumChainメソッドを使用してカスタムネットワークを追加するように求めることができます。
このアクションをトリガーする方法は次のとおりです。
- ターゲットネットワークのRPC URL、チェーンID、通貨シンボル、およびブロックエクスプローラーURLを準備します。
- 次の方法を呼び出します。
await window.ethereum.request({ method: 'wallet_addEthereumChain', params: [{chainId: '0x...', rpcUrls: ['https://...'], chainName: 'Custom Network', nativeCurrency: { name: 'Token', symbol: 'TKN', decimals: 18 }, blockExplorerUrls: ['https://...']}] });
これにより、メタマスク確認ダイアログが開き、ユーザーがネットワークを安全に追加できます。
よくある質問
チェーンチェンジされたイベントはどのくらいの頻度で発火しますか?
チェーンチェンジされたイベントは、ユーザーがメタマスクで手動でネットワークを切り替えるたびに、または別のDAPPがネットワークの変更をトリガーするたびに発射されます。初期ページのロード中に発生するのではなく、ネットワークが開始後に変更された場合にのみ発生します。
メタマスクでプログラムでチェーンを切り替えることはできますか?
はい、 wallet_switchEthereumChainメソッドを使用してチェーンスイッチをリクエストできます。目的のチェーンIDを16進形式で渡す必要があります。チェーンがまだ追加されていない場合、メタマスクはユーザーに最初に追加するように促します。
なぜ私のDAPPはチェーンをすぐに検出しないのですか?
window.ethereum.on('chainChanged', callback)を使用して、 chainChangedイベントを積極的に聞く必要があります。このリスナーが実行時に登録されていない場合、または実行中に削除された場合、DAPPはチェーンの変更を検出しません。
ユーザーがサポートされていないチェーンを選択するとどうなりますか?
DAPPが選択したチェーンをサポートしていない場合、現在のネットワークがサポートされていないことを示す警告メッセージを表示する必要があります。また、正しいネットワークを追加するか、サポートされているネットワークに切り替えることにより、ユーザーをガイドするボタンを提供することもできます。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- ペペト vs. ジャイアンツ: ADA と CRO の着実な上昇の中で次の 100 倍の仮想通貨を発表
- 2026-09-24 08:35:01
- Pepeto のプレセールが初期の投資家の注目を集めたため、Bittensor の価格予測は 20% 急上昇
- 2026-09-24 08:45:02
- Pepeto、XRP、SHIB: 暗号通貨のダイナミックな状況における次の波をナビゲートする
- 2026-09-24 04:55:01
- MoonPayがNorth Capitalを買収、トークン化資産のプライベートマーケットインフラを強化
- 2026-09-24 04:55:01
- Blockchain.com と NYSE がグローバルな 24 時間 365 日の取引ビジョンでトークン化証券の分野で前進
- 2026-09-24 05:00:01
- Circle のステーブルコイン チェーン、USDC、およびステーブルコイン チェーンのダイナミクス: 新しい時代の幕開け
- 2026-09-24 05:00:01
関連知識
Phantom Wallet を詐欺から守るにはどうすればよいですか?
2026-09-21 10:00:22
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2024 年の半減期の時点で...
秘密キーを MetaMask にインポートするにはどうすればよいですか?
2026-09-21 18:00:17
市場のボラティリティパターン1. 2021 年以降、Bitcoin の取引日の 68% 以上で、24 時間枠内で 15% を超える価格変動が発生しました。 2. イーサリアムは、流動性が低い期間、特に UTC の 02:00 から 06:00 の間で、Bitcoin よりも高い日中ボラティリティを示...
Phantom Wallet で失敗したトランザクションを修正するにはどうすればよいですか?
2026-09-21 04:39:50
ファントムウォレットでのトランザクションの失敗について1. Phantom Wallet は、Solana の RPC インフラストラクチャを利用してトランザクションをブロードキャストおよび確認します。障害は、多くの場合、ネットワークの輻輳、誤った料金見積もり、または無効な命令パラメータが原因で発生...
Phantom Wallet でトランザクション ID を見つけるにはどうすればよいですか?
2026-09-23 10:20:16
ファントムウォレットインターフェイスでのトランザクションIDの検索1. Phantom Wallet 拡張機能またはモバイル アプリケーションを開き、正しいウォレット アカウントにログインしていることを確認します。 2. モバイル アプリの下部またはデスクトップの左側のサイドバーにある[アクティビテ...
Trust Wallet でトランザクション ハッシュを見つけるにはどうすればよいですか?
2026-09-23 22:00:02
Trust Wallet でのトランザクション ハッシュの検索1. モバイルデバイスで Trust Wallet アプリケーションを開き、正しいウォレット アカウントにログインしていることを確認します。 2. 下部のナビゲーション バーにある[ウォレット]タブをタップして、資産リストと取引履歴にアク...
MetaMask で Ethereum から Arbitrum に切り替えるにはどうすればよいですか?
2026-09-23 07:39:53
MetaMask への Arbitrum ネットワークの追加1. ブラウザで MetaMask 拡張機能を開き、インターフェイスの上部にあるネットワーク セレクターをクリックします。 2. ネットワークリストを下にスクロールし、Arbitrum がプリロードされていない場合は「ネットワークの追加」ま...
Phantom Wallet を詐欺から守るにはどうすればよいですか?
2026-09-21 10:00:22
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2024 年の半減期の時点で...
秘密キーを MetaMask にインポートするにはどうすればよいですか?
2026-09-21 18:00:17
市場のボラティリティパターン1. 2021 年以降、Bitcoin の取引日の 68% 以上で、24 時間枠内で 15% を超える価格変動が発生しました。 2. イーサリアムは、流動性が低い期間、特に UTC の 02:00 から 06:00 の間で、Bitcoin よりも高い日中ボラティリティを示...
Phantom Wallet で失敗したトランザクションを修正するにはどうすればよいですか?
2026-09-21 04:39:50
ファントムウォレットでのトランザクションの失敗について1. Phantom Wallet は、Solana の RPC インフラストラクチャを利用してトランザクションをブロードキャストおよび確認します。障害は、多くの場合、ネットワークの輻輳、誤った料金見積もり、または無効な命令パラメータが原因で発生...
Phantom Wallet でトランザクション ID を見つけるにはどうすればよいですか?
2026-09-23 10:20:16
ファントムウォレットインターフェイスでのトランザクションIDの検索1. Phantom Wallet 拡張機能またはモバイル アプリケーションを開き、正しいウォレット アカウントにログインしていることを確認します。 2. モバイル アプリの下部またはデスクトップの左側のサイドバーにある[アクティビテ...
Trust Wallet でトランザクション ハッシュを見つけるにはどうすればよいですか?
2026-09-23 22:00:02
Trust Wallet でのトランザクション ハッシュの検索1. モバイルデバイスで Trust Wallet アプリケーションを開き、正しいウォレット アカウントにログインしていることを確認します。 2. 下部のナビゲーション バーにある[ウォレット]タブをタップして、資産リストと取引履歴にアク...
MetaMask で Ethereum から Arbitrum に切り替えるにはどうすればよいですか?
2026-09-23 07:39:53
MetaMask への Arbitrum ネットワークの追加1. ブラウザで MetaMask 拡張機能を開き、インターフェイスの上部にあるネットワーク セレクターをクリックします。 2. ネットワークリストを下にスクロールし、Arbitrum がプリロードされていない場合は「ネットワークの追加」ま...
すべての記事を見る














