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.
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
URI d'espace réservé et ligne de révélation du propriétaire
Dans Mint, les métadonnées d'espace réservé, la carte uridata, la révélation (tokenId, uriHash) et la surface de révélation que seul le propriétaire peut…
Même série
Métadonnées IPFS (InterPlanetary File System), Mint et Multiple Mint
Infura IPFS + Pinata Pinata, métadonnées JSON, mint (tokenId, uri) et multipleMint : 0,1 ETH × n, 750 approvisionnement.
Même série
Atterrissage de collection et entonnoir de liste blanche WIP
Atterrissage à la menthe CBD All-Stars : comment #GETINTHEWIP, 750 emplacements, un entonnoir de remise et une surface à la menthe uniquement MetaMask ?