EthereumはBitcoinと同様にTransactionHashをTransactionのrawデータから求めることができます。
今回はEthereumのTransactionHashの求め方について調べたことをまとめました。
truffle consoleで終了処理を追加する方法
truffle consoleを終了するときに追加で何らかの処理を実行したいときはconsole(=REPL)起動中でも次のようにして追加できます。
> repl.repl.on("exit", () => {~~なんか自前の終了処理~~})
これで.exitしたときに追加の終了処理を走らせてREPLを正常に終了させることができます。
replServerをいじれるってことなので多分コマンドの追加とかとかいろいろできそう。
ganache-cli@beta+web3.eth.subscribeを試してみた
y-nakajo.hatenablog.com
前回の記事の続きになります。
タイトルの通りweb3.eth.subscribeを試してみました。
が、テストのためだけにGethのノードを準備するのはめんどくさいのでtestRPCあらため、ganache-cliでWebSocketサーバ起動できないのかなぁ?と思い調べてみました。
そしたらこんなIssueを発見!
github.com
ということでganache-cli@betaを使ってweb3.eth.subscribe(= event filter)を利用してみます。
続きを読むweb3.eth.filterとweb3.eth.subscribe
web3.jsは現状2つのバージョンが開発されています。1つはweb3@0.x.x(現行は0.20.5)とweb3@1.0.0です。truffleが利用しているのが0.x.x系で、npm install web3 するとインストールされるのがweb3@1.0.0系です。
0.x.xがstableバージョンであり、1.0.0はまだβバージョンです。
両者の大きな違いは、0.x.x系はcontractのfunction呼び出し等にcallbackが必須となっていますが、1.0.0系ではpromisefyされているのでコールバックは必要なく、Promiseを返してくれるため簡単に同期/非同期処理が書けます。
また、もう一つ大きな違いが、タイトルにあるようにイベントフィルタの仕組みです。1.0.0ではイベントの監視処理がリニューアルされています。
今回はこのイベントフィルタの仕組みについて調べたことをまとめます。
続きを読むERC-712 ヒューマンリーダブルな型付署名の提案
今回はEthereumに新しく機能を追加する提案であるERC-712を紹介します。
この提案はRPCにすでにあるeth_signをさらに拡張した新しい機能を追加する提案です。μRaidenでも疑似的に実装して利用しています。
github.com
Geth 1.8.1でとりあえず動くTruffleを公開しました
追記
Geth1.8.1に対応したtruffle 4.0.8がすでにリリースされていますのでtruffleを最新版にアップデートしてください。
最新のgo-ethereum 1.8.1でgetTransactionReceiptの挙動が変わっており、それが原因で現状truffle migrate などが正常に動かなくなっています。
web3.jsやtruffleなどでもissueが上がっており、とりあえずの修正版PRがmergeされたりしてるのですが、暫定版でとりあえず動くようにしました的なtruffleが出てきてないので作りました。
github.com
インストール方法は次の通り
npm uninstall truffle npm install https://github.com/nakajo2011/truffle#fix-geth-1-8-receipt-err
この問題ちょっと根が深いので本当にとりあえず動かせるようにしただけです。正式にTruffle等から対応完了のアナウンスがあったらすぐに乗り換えてください。
ERC-20拡張提案でありOpenZeppelinにいち早く導入されたERC-827
今回は番号からわかる通り2018/02現在一番新しい(よね?)ERC-20の拡張提案であるERC-827を紹介します。
github.com