最近のweb3.js事情 1 blockchain.tokyo#19 @odan3240
View Slide
自己紹介 ● Twitter: @odan3240 ● ソフトウェアエンジニア ○ フロントエンド ○ AWS ○ ブロックチェーン ● 会社: モバイルファクトリー ○ チーム: ブロックチェーンチーム ○ DApssを身近にするUniqys Projectをやっている 2
web3.jsとは ● Ethereum JavaScript API ● Ethereumのノードと通信する君 ○ JSON-RPCで会話 ■ https://github.com/ethereum/wiki/wiki/JSON-RPC 3 トランザクションを送信する例
web3.jsの仕組み ● 大きく分けて2つ ○ JSON RPCの呼び出し ■ provider という ■ dapp ブラウザはこの機能を提供 ○ JSON RPCの機能をJSの関数として提供 4
web3.js v1.0.0-beta.x ● 2017年の7月頃から開発されている(?) ● 最新は v1.0.0-beta.55 ● beta版でバグがあることも... ○ blockchain.tokyo#15のecouffes_さんのスライド 5
callback -> promise ● JSON RPCの実行結果を受け取るのに callback関数を渡していた ○ JavaScriptの昔のやり方 ○ 0.20.xまで現役 ● v1.0.0-beta.xでは結果を promiseとして返すようになった 6
EIP 1193 ● EIP 1193: Ethereum Provider API ● provider.sendの 新しいinterfaceの提案を含んでいる ● 旧 ● 新 7
TypeScript対応 ● v1.0.0-beta.38辺りから 型定義ファイルが提供され始めた ○ 嬉しい ● 単にJavaScriptを書いている時でもVS Codeで 関数や引数がサジェストされる ● またに間違っている... 8
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