ethereumjs-tx version 2 を利用する [Tx is not a constructor][invalid sender]

2019年8月15日

ethereumjs-tx のバージョン2以上で、若干仕様が変わっているようなので、その部分をメモ程度に記述しておきます。

 

ethereumjs-tx 自体の説明は旧記事である下記ページをご覧下さい。

 

ethereumjs-txでトランザクションを生成する[Infula][sendSignedTransaction]

 

本記事では、コントラクトをINFURA のROPSTEN Testnetにデプロイしているのを前提としています。ethereumjs-txの仕様変更と直接関係ありませんが、Truffle v5でのデプロイ方法等に関しては下記ページご覧下さい。

 

Truffle v5でINFURAのROPSTEN Testnetにコントラクトをデプロイする

 

 

下記コードが、INFURA のROPSTEN Testnetにデプロイしたコントラクトです。これからchangeWord関数の実行、すなわちコントラクトのwordステータスを変更します。

 

ethereumjstxをインストールします。

 

package.json でethereumjstxのバージョンを確認します。

 

 

changeWord関数に引数を指定し、実行するコードです。ハイライト部分が ethereumjstx のバージョン2で変更となった部分です。INFURA KEYS(5行目)やアカウントおよびその秘密鍵(9、10行目)は各自設定して下さい。

 

sample.js

ハイライト部分をバージョン1のコードで実行しようすると、

TypeError: Tx is not a constructor

Error: Returned error: invalid sender

のようなエラーが表示されます。

 

実行し、下記のように表示されたら成功です。

 

 

本記事ではnpm install によってインストールしたweb3を利用しましたが、MetaMaskを直接利用すると、MetaMaskによってブラウザにインジェクトされたweb3を利用できます。その場合は、ethereumjs-txは必要ありません。詳細は下記ページをご覧下さい。

 

MetaMaskによってsendTransactionを実行する [getData]

 

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー