Oyun Kitabı

Mainnet Web3Modal et renforcement du portefeuille (Mainnet Web3modal Et Renforcement Du Portefeuille)

Migration de MetaMask uniquement vers Web3Modal + WalletConnect + Coinbase WalletLink ; chainId, gaz et durcissement des adresses.

Collection NFT Mint et durcissement du réseau principal

Partie 4 de 4

Surfaces menthe CBD All-Stars et Confident Gorillas : entonnoir de liste blanche WIP, métadonnées IPFS, espace réservé → pipeline de révélation et renforcement du portefeuille du réseau principal avec Web3Modal.

NFT mint and mainnet architecture diagram

Mainnet brise l'hypothèse du portefeuille unique

Le réseau principal Gorillas 1.8 supprime le chemin window.ethereum.enable() de l'ère All-Stars/1.4. S'ouvre avec Web3Modal cacheProvider ; WalletConnect (Infura id) et Coinbase WalletLink personnalisé (chainId : 1) sont ajoutés à supplierOptions. ConnectWeb3 → ethers Web3Provider → adresse ; les instances contractuelles communiquent désormais via le fournisseur modal.```text Before (All-Stars / early) window.ethereum only → Web3

After (mainnet 1.8) Web3Modal ├─ WalletConnect (Infura) ├─ WalletLink / Coinbase (chainId 1) └─ injected (MetaMask) ↓ provider → ethers Web3Provider ↓ getNftContract(Web3(provider))


## Concepts à la première mention```text
📦 Web3Modal
Çoklu cüzdan bağlantı UI'si; providerOptions ile WalletConnect/WalletLink enjekte edilir.

📦 WalletConnect
QR / mobil cüzdan köprüsü; Infura (veya RPC) id ister.

📦 WalletLink
Coinbase Wallet connector; appName, networkUrl, chainId ile kurulur.

📦 cacheProvider
Son başarılı provider'ı hatırlama; reconnect UX'i, stale session riski.
```L’ID du projet RPC/Infura est la configuration ; Aucun secret n’est gardé dans le playbook. Les clés sont dans l'environnement, pas dans le dépôt.

## Pourquoi MetaMask ne suffit-il pas ?

La FAQ d'atterrissage peut toujours indiquer MetaMask ; les utilisateurs du réseau principal veulent Coinbase Wallet et Mobile WalletConnect. Le chemin d’injection unique coupe l’entonnoir. Décision 1.8 : multi-connecteur avec modal, réseau : 'mainnet'.```text
User segments
  Desktop MetaMask
  Mobile WC
  Coinbase WalletLink
       ↓
  one ConnectWeb3() API
```## Cycle de vie de la connexion

ConnectWeb3 : web3Modal.connect() → Web3Provider → getAddress. DisconnectWeb3 : clearCachedProvider + supplier.disconnect + recharger. lit netId via le fournisseur getNetwork. Les getters de contrat établissent Web3.eth.Contract avec initialState.provider — l'ancien appWeb3() Le repli d'Infura ne doit pas être le chemin de signature du réseau principal.```text
connect → address
getNetwork → chainId check
mint/reveal only if chainId OK
disconnect → clear cache → reload
```## ADR : Web3Modal comme façade de portefeuille

Décision : ne connectez pas les utilitaires mint/reveal directement à window.ethereum ; Donnez l'adresse et le fournisseur de la façade modale. Le plus : l’ajout d’un connecteur serait une décision de produit. Moins : ethers + web3 double pile et état obsolète de cacheProvider. Atténuation : affirmation de chainId avant la création, effacement du cache à la déconnexion.```text
ADR-04 Web3Modal facade
  UI → ConnectWeb3 / DisconnectWeb3
  Utils → provider from modal state
  Guard → chainId === 1 before send
  Reject → wrong net / no provider
```## Playbook sur les échecs du réseau principal

1) Adresses de contrat de talon en production – tx apparaît comme « réussi », l'état est faux. 2) Mauvais réseau — Signature, l'alimentation du réseau principal ne change pas à Rinkeby/Goerli. 3) gasPrice : 0 — sous-évalué sur mempool. 4) Incompatibilité ABI — erreur d'encodage multipleMint/reveal. 5) Intégration des clés Pinata/Infura dans le bundle client – ​​fuite secrète (ne jamais commettre).```text
Hardening checklist
  ✓ real mainnet addresses
  ✓ chainId === 1 gate
  ✓ dynamic gas / tip
  ✓ ABI ↔ deployment lock
  ✓ secrets in env only

Les confrontations les plus déroutantes de cet épisode```text

❌ window.ethereum yeter, modal lüks ✓ Mainnet dönüşümü için çoklu connector ürün gereksinimidir

❌ cacheProvider = her zaman bağlı kal ✓ Stale provider'ı disconnect + clearCachedProvider ile temizle

❌ Infura/Pinata anahtarlarını constants'a yaz ✓ Anahtarlar env/secret store'da; client'a minimum scope


## Liste de contrôle de votre propre système

1. ChainId === 1 est-il affirmé après la connexion ?
2. Le fournisseur n'est-il pas nul avant l'envoi à la menthe ?
3. GasPrice : 0 est-il bloqué dans la version de production ?
4. Les adresses nft/réserve/enchères sont-elles différentes les unes des autres et du réseau principal ?
5. Les connecteurs WalletConnect / WalletLink ont-ils réellement été testés sur l'appareil de test ?

## Choses à retenir de cette section

Migration 1. 1.8 : MetaMask uniquement → façade multi-portefeuille Web3Modal.
2. Le renforcement du réseau principal concerne l'adresse, le réseau, le gaz, l'ABI et la discipline secrète.
3. La déconnexion et la suppression du cache font partie de la reconnexion UX.

> Connecter un portefeuille n'est pas une fonctionnalité ; Se connecter sur le mauvais réseau est un événement de production silencieux.

FAQ

Frequently asked questions

Qu’est-ce que Web3Modal ?

Interface utilisateur de connexion multi-portefeuille ; WalletConnect/WalletLink est injecté avec supplierOptions.

Qu’est-ce que WalletConnect ?

Pont QR/portefeuille mobile ; Infura (ou RPC) demande une pièce d'identité.

"window.ethereum suffit, luxe modal" est-il correct ?

Le multi-connecteur est une exigence du produit pour la conversion du réseau principal

Que corrige cette section ?

Cette section clôt la série avec une liste de contrôle de préparation au réseau principal : diversité des portefeuilles, validation du réseau, gaz et discipline d'adresse/ABI. Le réseau principal Gorillas 1.8 supprime le chemin window.ethereum.enable() de l'ère All-Stars/1.4. S'ouvre avec Web3Modal cacheProvider ; WalletConnect (Infura id) et Coinbase WalletLink personnalisé (chainId : 1) sont ajoutés à supplierOptions. ConnectWeb3 → ethers Web3Provider → adresse ; les instances contractuelles communiquent désormais via le fournisseur modal.

Principes d'ingénierie appris

  • Obtenez les utilitaires Mint derrière une seule façade de portefeuille.
  • Vérifiez le chainId, l’adresse et le gaz avant chaque envoi.
  • Supprimez les secrets du bundle ; Prouvez les connecteurs sur des appareils réels.

Continuer la lecture

Continuer la lecture

Suivant en série

Même série

Même série

Paylaş