Skip to Content

Ethereum / EVM

注入された EIP-1193 プロバイダーを使って、OneKey 対応の EVM dApp を構築します。EVM 互換チェーン (Ethereum、Polygon、BSC、Arbitrum、Optimism、Base など) はすべて同じプロバイダーを使用します。


プロバイダーの検出

競合を避ける最新のマルチウォレット検出:

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)

直接アクセス (フォールバック)

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

イベント

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

エラーコード

コード説明対処方法
4001ユーザーが拒否拒否を適切に処理
4902不明なチェーン次でチェーンを追加: wallet_addEthereumChain
-32602無効なパラメーター0x プレフィックス付きの 16 進数文字列を使用
-32603内部エラーリクエストの形式を確認

チェーン ID

ネットワークチェーン ID16 進数
Ethereum メインネット10x1
Polygon1370x89
BSC560x38
Arbitrum One421610xa4b1
Optimism100xa
Base84530x2105

参照: chainlist.org  で他のチェーンを確認できます。

UI コンポーネントで素早く統合するには、RainbowKit または Web3Modal を使用してください。

最終更新日