-
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%
Comment gérer les changements de chaîne dans mon DAPP avec Metamask?
"Handle MetaMask chain changes in dApps by listening for the `chainChanged` event and updating your provider and contracts accordingly."
Jul 02, 2025 at 09:01 pm
Comprendre les changements de chaîne dans les DAPP
Lors du développement ou de l'interaction avec des applications décentralisées (DAPP), l'un des défis les plus courants auxquels les utilisateurs et les développeurs sont confrontés est de gérer les changements de chaîne . Metamask, étant l'un des portefeuilles de crypto-monnaie les plus utilisés, permet aux utilisateurs de basculer entre différents réseaux de blockchain. Cependant, cela peut entraîner des perturbations si un DAPP n'est pas correctement configuré pour détecter et répondre à ces changements de chaîne . Cela comprend des scénarios comme le passage de Ethereum MainNet à Binance Smart Chain ou dans tout environnement TestNet.
Le problème de base tourne autour de la garantie que votre DAPP réagit correctement lorsque le réseau sélectionné dans Metamask change. Cela est essentiel pour maintenir l'expérience utilisateur et prévenir les erreurs de transaction en raison d'identifices de chaîne incorrectes ou de points de terminaison RPC.
Détection des changements de réseau dans Metamask
Metamask fournit un écouteur d'événements appelé chainChanged , qui est déclenché chaque fois que l'utilisateur passe à un autre réseau. Pour gérer cela, vous devez implémenter un écouteur d'événements ChainChanged dans le code JavaScript de votre DAPP.
Voici comment vous pouvez le configurer:
- Importez Web3 ou utilisez le fournisseur injecté à partir de Window.ethereum.
- Ajoutez un écouteur d'événements pour
chainChanged:window.ethereum.on('chainChanged', handleChainChanged); - Définissez la fonction
handleChainChangedpour recharger ou reconfigurer le DAPP en fonction du nouvel ID de chaîne.
Cela garantit que votre DAPP sait toujours à quel réseau l'utilisateur est actuellement connecté et peut s'adapter en conséquence.
Gestion des identifiants de chaîne et des identifiants de réseau
Chaque réseau de blockchain possède un identifiant unique connu sous le nom de chaîne ID . Par exemple, Ethereum MainNet utilise la chaîne ID 1 , tandis que Rinkeby utilise 4 . Lorsqu'un utilisateur change de chaîne, l'événement chainChanged renvoie le nouvel ID de chaîne au format hexadécimal.
Pour assurer la compatibilité, votre DAPP devrait:
- Convertissez l'ID de chaîne retournée de l'hexadécimal en décimal en utilisant
parseInt(chainId, 16). - Comparez la valeur résultante avec une liste des ID de chaîne pris en charge.
- Affichez les commentaires de l'interface utilisateur appropriés ou redirigez l'utilisateur si la chaîne sélectionnée n'est pas prise en charge.
Si la chaîne n'est pas prise en charge, votre DAPP doit inciter l'utilisateur à revenir en arrière ou à fournir des instructions sur la façon d'ajouter des réseaux personnalisés via Metamask.
Mise à jour du fournisseur et reconnexion des contrats
Après avoir détecté un changement de chaîne, il est essentiel de mettre à jour votre fournisseur et de reconnecter toute instance de contrat intelligent. Le non-fait de le faire peut entraîner une récupération de données incorrecte ou des transactions échouées.
Étapes à suivre:
- Créez une nouvelle instance de web3 à l'aide de
window.ethereumaprès le changement de chaîne. - Reconnectez toutes les instances de contrat à l'aide du fournisseur mis à jour.
- Re-Fetch Les soldes du compte et les états contractuels pour refléter le réseau actuel.
Ce processus garantit que toutes les interactions se produisent sur la chaîne correcte et que votre DAPP reste réactif et précis indépendamment des commutateurs de réseau.
Inciter les utilisateurs à ajouter des chaînes personnalisées
Parfois, votre DAPP peut exiger que les utilisateurs se connectent à un réseau qui n'est pas disponible par défaut dans Metamask. Dans de tels cas, vous pouvez les inciter à ajouter un réseau personnalisé à l'aide de la méthode wallet_addEthereumChain .
Voici comment vous pouvez déclencher cette action:
- Préparez l'URL RPC, l'ID de chaîne, le symbole de devise et l'URL de l'Explorateur de blocs pour le réseau cible.
- Appelez la méthode suivante:
await window.ethereum.request({ method: 'wallet_addEthereumChain', params: [{chainId: '0x...', rpcUrls: ['https://...'], chainName: 'Custom Network', nativeCurrency: { name: 'Token', symbol: 'TKN', decimals: 18 }, blockExplorerUrls: ['https://...']}] });
Cela ouvrira une boîte de dialogue de confirmation Metamask permettant à l'utilisateur d'ajouter le réseau en toute sécurité.
Questions fréquemment posées
À quelle fréquence l'événement Chainchange tire-t-il?
L' événement ChainChanged se déclenche chaque fois que l'utilisateur change manuellement les réseaux dans Metamask ou lorsqu'un autre DAPP déclenche un changement de réseau. Il ne se déclenche pas pendant le chargement de la page initial, mais uniquement lorsque le réseau change après-initialisation.
Puis-je changer par programme dans les chaînes dans Metamask?
Oui, vous pouvez demander un interrupteur de chaîne à l'aide de la méthode wallet_switchEthereumChain . Vous devez passer l' ID de chaîne souhaité au format hexadécimal . Si la chaîne n'est pas déjà ajoutée, Metamask incitera l'utilisateur à l'ajouter en premier.
Pourquoi ma chaîne de détection DAPP ne change-t-elle pas immédiatement?
Votre DAPP doit écouter activement l'événement chainChanged à l'aide de window.ethereum.on('chainChanged', callback) . Si cet écouteur n'est pas enregistré au moment de l'exécution ou est supprimé pendant l'exécution, le DAPP ne détectera pas les modifications de la chaîne.
Que se passe-t-il si un utilisateur sélectionne une chaîne non prise en charge?
Si votre DAPP ne prend pas en charge la chaîne sélectionnée, elle devrait afficher un message d'avertissement indiquant que le réseau actuel n'est pas pris en charge. Vous pouvez également fournir un bouton pour guider l'utilisateur en ajoutant le réseau correct ou en revenant à un réseau pris en charge.
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
RAY Échangez maintenant$2.01
9.86%
-
STABLE Échangez maintenant$0.02637
6.90%
-
ZRO Échangez maintenant$1.50
5.90%
-
BSV Échangez maintenant$22.09
5.68%
-
LIT Échangez maintenant$5.34
5.35%
-
FF Échangez maintenant$0.1307
1.86%
- Pepeto contre les géants : dévoilement de la prochaine crypto 100x au milieu de la montée constante de l'ADA et du CRO
- 2026-09-24 08:35:01
- Les prévisions de prix de Bittensor grimpent de 20 % alors que la prévente de Pepeto attire l'attention des premiers investisseurs
- 2026-09-24 08:45:02
- Pepeto, XRP et SHIB : naviguer sur la prochaine vague dans le paysage dynamique de la cryptographie
- 2026-09-24 04:55:01
- MoonPay acquiert North Capital, renforçant ainsi l'infrastructure des marchés privés pour les actifs tokenisés
- 2026-09-24 04:55:01
- Blockchain.com et NYSE avancent dans le domaine des titres tokenisés avec une vision mondiale du trading 24h/24 et 7j/7
- 2026-09-24 05:00:01
- Chaîne Stablecoin de Circle, USDC et dynamique de la chaîne Stablecoin : une nouvelle ère se lève
- 2026-09-24 05:00:01
Connaissances connexes
Comment protéger un Phantom Wallet des arnaques ?
Sep 21,2026 at 10:00am
Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...
Comment importer une clé privée dans MetaMask ?
Sep 21,2026 at 06:00pm
Modèles de volatilité du marché 1. Des fluctuations de prix supérieures à 15 % sur une fenêtre de 24 heures se sont produites dans plus de 68 % des jo...
Comment réparer un échec de transaction dans Phantom Wallet ?
Sep 21,2026 at 04:39am
Comprendre les échecs de transaction dans Phantom Wallet 1. Phantom Wallet s'appuie sur l'infrastructure RPC de Solana pour diffuser et confir...
Comment trouver un identifiant de transaction dans Phantom Wallet ?
Sep 23,2026 at 10:20am
Recherche de l'ID de transaction dans l'interface du portefeuille fantôme 1. Ouvrez l'extension Phantom Wallet ou l'application mobile...
Comment trouver le hachage de transaction dans Trust Wallet ?
Sep 23,2026 at 10:00pm
Recherche du hachage de transaction dans le portefeuille de confiance 1. Ouvrez l'application Trust Wallet sur votre appareil mobile et assurez-vo...
Comment passer d’Ethereum à Arbitrum dans MetaMask ?
Sep 23,2026 at 07:39am
Ajout d'un réseau Arbitrum à MetaMask 1. Ouvrez l'extension MetaMask dans votre navigateur et cliquez sur le sélecteur de réseau situé en haut...
Comment protéger un Phantom Wallet des arnaques ?
Sep 21,2026 at 10:00am
Bitcoin Réduire de moitié les mécanismes 1. Le protocole de Bitcoin applique un calendrier d'émission fixe dans lequel les récompenses de bloc son...
Comment importer une clé privée dans MetaMask ?
Sep 21,2026 at 06:00pm
Modèles de volatilité du marché 1. Des fluctuations de prix supérieures à 15 % sur une fenêtre de 24 heures se sont produites dans plus de 68 % des jo...
Comment réparer un échec de transaction dans Phantom Wallet ?
Sep 21,2026 at 04:39am
Comprendre les échecs de transaction dans Phantom Wallet 1. Phantom Wallet s'appuie sur l'infrastructure RPC de Solana pour diffuser et confir...
Comment trouver un identifiant de transaction dans Phantom Wallet ?
Sep 23,2026 at 10:20am
Recherche de l'ID de transaction dans l'interface du portefeuille fantôme 1. Ouvrez l'extension Phantom Wallet ou l'application mobile...
Comment trouver le hachage de transaction dans Trust Wallet ?
Sep 23,2026 at 10:00pm
Recherche du hachage de transaction dans le portefeuille de confiance 1. Ouvrez l'application Trust Wallet sur votre appareil mobile et assurez-vo...
Comment passer d’Ethereum à Arbitrum dans MetaMask ?
Sep 23,2026 at 07:39am
Ajout d'un réseau Arbitrum à MetaMask 1. Ouvrez l'extension MetaMask dans votre navigateur et cliquez sur le sélecteur de réseau situé en haut...
Voir tous les articles














