Slide 1

Slide 1 text

最近のweb3.js事情
 1
 blockchain.tokyo#19
 @odan3240


Slide 2

Slide 2 text

自己紹介
 ● Twitter: @odan3240
 ● ソフトウェアエンジニア
 ○ フロントエンド
 ○ AWS
 ○ ブロックチェーン
 
 ● 会社: モバイルファクトリー
 ○ チーム: ブロックチェーンチーム
 ○ DApssを身近にするUniqys Projectをやっている
 
 2


Slide 3

Slide 3 text

web3.jsとは
 ● Ethereum JavaScript API
 ● Ethereumのノードと通信する君
 ○ JSON-RPCで会話
 ■ https://github.com/ethereum/wiki/wiki/JSON-RPC
 3
 トランザクションを送信する例


Slide 4

Slide 4 text

web3.jsの仕組み
 ● 大きく分けて2つ
 ○ JSON RPCの呼び出し
 ■ provider という
 ■ dapp ブラウザはこの機能を提供
 ○ JSON RPCの機能をJSの関数として提供
 4


Slide 5

Slide 5 text

web3.js v1.0.0-beta.x
 ● 2017年の7月頃から開発されている(?)
 ● 最新は v1.0.0-beta.55
 ● beta版でバグがあることも...
 ○ blockchain.tokyo#15のecouffes_さんのスライド
 5


Slide 6

Slide 6 text

callback -> promise
 ● JSON RPCの実行結果を受け取るのに
 callback関数を渡していた
 ○ JavaScriptの昔のやり方
 ○ 0.20.xまで現役
 ● v1.0.0-beta.xでは結果を
 promiseとして返すようになった
 6


Slide 7

Slide 7 text

EIP 1193
 ● EIP 1193: Ethereum Provider API
 ● provider.sendの
 新しいinterfaceの提案を含んでいる
 ● 旧
 
 ● 新
 7


Slide 8

Slide 8 text

TypeScript対応
 ● v1.0.0-beta.38辺りから
 型定義ファイルが提供され始めた
 ○ 嬉しい
 ● 単にJavaScriptを書いている時でもVS Codeで
 関数や引数がサジェストされる
 ● またに間違っている...
 8


Slide 9

Slide 9 text

Module API
 ● v1.0.0-beta.54から入った
 ○ https://web3js.readthedocs.io/en/1.0/web3-module.html
 ● 独自のWeb3 モジュールを実装するためのAPI
 ● web3.ethなどの内部モジュールは
 すべてこのModule APIを使って書き直された
 ● 使ってみた
 ○ odanado/js-eth-personal-sign-examples-clone
 9