Skip to Content
dApps
このページの内容

トランザクションの送信

eth_sendTransaction で接続済みアカウントからのトランザクションを要求します。ウォレットはユーザーに内容の確認と承認を求めます。リクエストに成功するとトランザクションハッシュが返されますが、トランザクションの確定や実行の成功を意味するわけではありません。

例

const provider = window.$onekey?.ethereum; if (!provider) throw new Error('OneKey Ethereum provider is unavailable.'); const [from] = await provider.request({ method: 'eth_requestAccounts' }); const chainId = await provider.request({ method: 'eth_chainId' }); // Check chainId against your application's intended network before continuing. const to = '<RECIPIENT_EVM_ADDRESS>'; // Replace with a valid address. try { const txHash = await provider.request({ method: 'eth_sendTransaction', params: [{ from, to, value: '0x0', }], }); console.log('Submitted transaction:', txHash); } catch (error) { console.error(error.code, error.message); }

このフローはユーザー操作から呼び出してください。送信前に受取人と金額を置き換えます。同じチェーンで eth_getTransactionReceipt を照会し、取り込みと実行の状態を確認します。保留中のトランザクションにはまだレシートがありません。

トランザクションのパラメーター

パラメーター意味
fromトランザクションの送信を許可された接続済みアカウント
to受取人アドレス。コントラクト作成時のみ省略
value最小単位 (Ethereum では wei) のネイティブ通貨額を 16 進数で表した数量
data16 進数エンコードされたコントラクト呼び出しデータまたはコントラクト作成のバイトコード
gas任意のガスリミット。ガス価格ではなくガス量
gasPriceレガシートランザクション用の任意のガス単位あたり手数料
maxFeePerGas, maxPriorityFeePerGasEIP-1559 トランザクションの手数料フィールド。次と併用しないでください: gasPrice
nonceアカウントのトランザクション連番。通常はウォレットに管理させます

金額には整数精度を安全に扱える演算を使用し、wei への変換で浮動小数点演算を避けてください。アプリケーションに手数料を指定する特別な理由がなければ、ウォレットに見積もりを任せてください。ユーザーはウォレット内でトランザクションの詳細を確認・調整できます。

ネットワークとアカウントの変更

トランザクションの準備前に eth_chainId を読み取り、プロバイダー API の説明に従って chainChanged と accountsChanged を処理してください。変更後はアカウントやネットワークに依存するトランザクションデータを再構築してください。

デモ

例を開く 

最終更新日