最近のweb3.js事情 / bc.tokyo-19

最近のweb3.js事情 / bc.tokyo-19

00766b8e1f9c2665cf7fd29f9cf558df?s=128

odanado

May 24, 2019
Tweet

Transcript

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


  2. 自己紹介
 • Twitter: @odan3240
 • ソフトウェアエンジニア
 ◦ フロントエンド
 ◦ AWS


    ◦ ブロックチェーン
 
 • 会社: モバイルファクトリー
 ◦ チーム: ブロックチェーンチーム
 ◦ DApssを身近にするUniqys Projectをやっている
 
 2

  3. web3.jsとは
 • Ethereum JavaScript API
 • Ethereumのノードと通信する君
 ◦ JSON-RPCで会話
 ▪

    https://github.com/ethereum/wiki/wiki/JSON-RPC
 3
 トランザクションを送信する例

  4. web3.jsの仕組み
 • 大きく分けて2つ
 ◦ JSON RPCの呼び出し
 ▪ provider という
 ▪

    dapp ブラウザはこの機能を提供
 ◦ JSON RPCの機能をJSの関数として提供
 4

  5. web3.js v1.0.0-beta.x
 • 2017年の7月頃から開発されている(?)
 • 最新は v1.0.0-beta.55
 • beta版でバグがあることも...
 ◦

    blockchain.tokyo#15のecouffes_さんのスライド
 5

  6. callback -> promise
 • JSON RPCの実行結果を受け取るのに
 callback関数を渡していた
 ◦ JavaScriptの昔のやり方
 ◦

    0.20.xまで現役
 • v1.0.0-beta.xでは結果を
 promiseとして返すようになった
 6

  7. EIP 1193
 • EIP 1193: Ethereum Provider API
 • provider.sendの


    新しいinterfaceの提案を含んでいる
 • 旧
 
 • 新
 7

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


    • またに間違っている...
 8

  9. 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