Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

odanado

May 24, 2019
Tweet

More Decks by odanado

Other Decks in Programming

Transcript

  1. 最近のweb3.js事情

    1

    blockchain.tokyo#19

    @odan3240


    View full-size slide

  2. 自己紹介

    ● Twitter: @odan3240

    ● ソフトウェアエンジニア

    ○ フロントエンド

    ○ AWS

    ○ ブロックチェーン


    ● 会社: モバイルファクトリー

    ○ チーム: ブロックチェーンチーム

    ○ DApssを身近にするUniqys Projectをやっている


    2


    View full-size slide

  3. web3.jsとは

    ● Ethereum JavaScript API

    ● Ethereumのノードと通信する君

    ○ JSON-RPCで会話

    ■ https://github.com/ethereum/wiki/wiki/JSON-RPC

    3

    トランザクションを送信する例


    View full-size slide

  4. web3.jsの仕組み

    ● 大きく分けて2つ

    ○ JSON RPCの呼び出し

    ■ provider という

    ■ dapp ブラウザはこの機能を提供

    ○ JSON RPCの機能をJSの関数として提供

    4


    View full-size slide

  5. web3.js v1.0.0-beta.x

    ● 2017年の7月頃から開発されている(?)

    ● 最新は v1.0.0-beta.55

    ● beta版でバグがあることも...

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

    5


    View full-size slide

  6. callback -> promise

    ● JSON RPCの実行結果を受け取るのに

    callback関数を渡していた

    ○ JavaScriptの昔のやり方

    ○ 0.20.xまで現役

    ● v1.0.0-beta.xでは結果を

    promiseとして返すようになった

    6


    View full-size slide

  7. EIP 1193

    ● EIP 1193: Ethereum Provider API

    ● provider.sendの

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

    ● 旧


    ● 新

    7


    View full-size slide

  8. TypeScript対応

    ● v1.0.0-beta.38辺りから

    型定義ファイルが提供され始めた

    ○ 嬉しい

    ● 単にJavaScriptを書いている時でもVS Codeで

    関数や引数がサジェストされる

    ● またに間違っている...

    8


    View full-size slide

  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


    View full-size slide