Skip to Content

Ethereum / EVM

Utilisez le fournisseur EIP-1193 injecté pour créer des dApps EVM avec OneKey. Toutes les chaînes compatibles EVM (Ethereum, Polygon, BSC, Arbitrum, Optimism, Base, etc.) partagent le même fournisseur.


Détection du fournisseur

Détection moderne de plusieurs portefeuilles, sans conflits :

let onekeyProvider = null const onAnnounce = (event) => { if (event.detail.info.rdns === 'so.onekey.app.wallet') { onekeyProvider = event.detail.provider } } window.addEventListener('eip6963:announceProvider', onAnnounce) window.dispatchEvent(new Event('eip6963:requestProvider')) // Call from your Connect button after the user selects OneKey. async function connectOneKey() { if (!onekeyProvider) throw new Error('OneKey has not announced a provider yet') return onekeyProvider.request({ method: 'eth_requestAccounts' }) } // On component cleanup: // window.removeEventListener('eip6963:announceProvider', onAnnounce)

Accès direct (solution de repli)

const provider = window.$onekey?.ethereum if (!provider) throw new Error('OneKey not detected') const accounts = await provider.request({ method: 'eth_requestAccounts' })

Événements

// Account changed provider.on('accountsChanged', (accounts) => { console.log('Account:', accounts[0]) }) // Network changed provider.on('chainChanged', (chainId) => { console.log('Chain:', chainId) window.location.reload() // Recommended }) // Connected provider.on('connect', (info) => { console.log('Connected to chain:', info.chainId) })

Codes d’erreur

CodeDescriptionSolution
4001Refus de l’utilisateurGérer correctement le refus
4902Chaîne inconnueAjouter la chaîne avec wallet_addEthereumChain
-32602Paramètres non validesUtilisez 0x comme préfixe des chaînes hexadécimales
-32603Erreur interneVérifier le format de la requête

ID de chaînes

RéseauID de chaîneHex
Ethereum Mainnet10x1
Polygon1370x89
BSC560x38
Arbitrum One421610xa4b1
Optimism100xa
Base84530x2105

Voir chainlist.org  pour d’autres chaînes.

Pour une intégration rapide avec des composants d’interface, utilisez RainbowKit ou Web3Modal.

Dernière mise à jour le