Skip to Content

Ethereum / EVM

Verwenden Sie den injizierten EIP-1193-Provider, um EVM-dApps mit OneKey zu erstellen. Alle EVM-kompatiblen Chains (Ethereum, Polygon, BSC, Arbitrum, Optimism, Base usw.) verwenden denselben Provider.


Provider erkennen

Moderne Erkennung mehrerer Wallets ohne Konflikte:

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)

Direkter Zugriff (Ausweichlösung)

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

Ereignisse

// 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) })

Fehlercodes

CodeBeschreibungLösung
4001Vom Nutzer abgelehntAblehnung angemessen behandeln
4902Unbekannte ChainChain hinzufügen mit wallet_addEthereumChain
-32602Ungültige ParameterVerwenden Sie 0x-präfixierte Hex-Zeichenfolgen
-32603Interner FehlerAnfrageformat prüfen

Chain-IDs

NetzwerkChain-IDHex
Ethereum Mainnet10x1
Polygon1370x89
BSC560x38
Arbitrum One421610xa4b1
Optimism100xa
Base84530x2105

Siehe chainlist.org  für weitere Chains.

Für eine schnelle Integration mit UI-Komponenten verwenden Sie RainbowKit oder Web3Modal.

Zuletzt aktualisiert am