- ローカルで Ethereum のトランザクションに署名する際には、nonce を指定する必要があります。
- このときに必要な nonce を取得する方法をメモしておきます。
nonce とは
- Ethereum のトランザクションにおける nonce は、ある Ethereum のアドレス(アカウント)から実行されたトランザクションの総数です。
- nonce は各トランザクションがそれぞれ一度のみ実行されることを保証するために必要な値です。
- 0 から 1 つずつインクリメントされていきます。
Ethereum アドレスの現在の nonce を取得する
- Ethereum のトランザクションを作成するためには、トランザクションを作成したいアカウントが過去に何回トランザクションを実行していたか(トランザクションの総数==現在の nonce)を知る必要があります。
- Ethereum アドレスの現在の nonce は、web3.js を使用する場合は
web3.eth.getTransactionCount
で取得することができます。 -
web3.eth.getTransactionCount
では、過去のトランザクション数が0回であれば0を、3回であれば3を返します。
サンプルコード
code:getTransaction.js
web3.eth.getTransactionCount(address, (error, count) => {
console.log(count);
});
デモ
参考
- https://github.com/ethereum/wiki/wiki/White-Paper
- https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethgettransactioncount
関連
Note
- Ethereum 関連の情報は https://scrapbox.io/sushiether/ に集約することにしました。
- この記事の内容に変更・更新がある場合は、以下の URL を更新します。
- https://scrapbox.io/sushiether/Ethereum_のトランザクション作成時に必要な_nonce_を得る