2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Webアプリからブロックチェーンの内容を読み込む(ブロックチェーン入門2)

Last updated at Posted at 2019-01-16

概要

ブロックチェーン(Ethereum testnet (Ropsten))に、textを書き込むコントラクトから
Webアプリ(Node.js + TypeScript + vue.js)で、書き込んだ内容を表示するまでを
書きます。

なお、私もブロックチェーン初学者なので、内容に誤り等ありましたらご指摘いただけると幸いです。

コントラクトの実装は下記を参照ください。
https://qiita.com/wadanobuya/items/e4ac53ba78a6bf4d38d6

webアプリのgithub クローンしてお試しください。
https://github.com/wadanobuya/set-message-dapps

1.デプロイしたコントラクトの接続情報を取得

1-1.デプロイしたコントラクトの接続情報(ABI)を取得

ABIとは、、、
Contractの取り扱い説明書のようなもの

スクリーンショット 2018-11-21 23.14.56.png

タブをcompileにもどしてABIを取得
(コピーしたABIを適当なテキストに貼り付けておいてください。あとで使います)

スクリーンショット 2018-11-21 23.16.14.png

1-2.デプロイしたコントラクトのアドレスをコピー

デプロイ時のログからropstenのTransactionからアドレスを取得します。

RopstenのTransactionを参照する。

スクリーンショット 2019-01-16 22.54.29.png

RopstenのTransaction

スクリーンショット 2019-01-16 22.53.56.png

下記、コントラクトのアドレスをコピー
(コピーしたアドレスを適当なテキストに貼り付けておいてください。あとで使います)

スクリーンショット 2019-01-16 22.54.35.png

2.Webアプリケーションとの接続設定

2-1.ABIを設定

※SetMessageのコントラクトを使用する場合このままでもOK

web_app/src/contractInfo.tsを編集して
ABIを設定します。

コピーしたABIをabi: に貼りつけ
すでに書き込んである[]に


export default {
  Token: {
    // Every time you deploy a contract, you have to update address.
    address: '0xa4ac37f7c15d12d9c57768bad57781ee974d4cbf',
    // Every time you change the contract interface, you have to update abi.
    abi: 
〜省略〜
  },
};

2-2.ABIを設定

address:にコピーしたコントラクトのアドレスを設定
ここがデプロイしたコントラクトのアドレスになるのでここは
自身で実装したコントラクトを設定ください。

※変更しないと、私がデプロイしたコントラクトのアドレスになっています。


export default {
  Token: {
    // Every time you deploy a contract, you have to update address.
    address: '0xa4ac37f7c15d12d9c57768bad57781ee974d4cbf',

3.Webアプリケーションの接続確認

3-1. npm インストール

下記の位置でnpm インストールを実行
web_app/


npm install

3-2. web アプリケーションを実行


npm run serve

※ エラーが出ますが気にせずに、、、
ゆくゆく修正いたします、、、



  App running at:
  - Local:   http://localhost:8080/
  - Network: http://192.168.54.118:8080/

  Note that the development build is not optimized.
  To create a production build, run npm run build.

3-3 chromeブラウザからアクセス


http://localhost:8080/

web画面が表示され「getMessage」のしたに、コントラクトでsetしたtextが表示されていれば
接続完了です。

コントラクトのsetMessageで違うtextを書き込み表示が変わるのを確認してもらえたらと思います。

スクリーンショット 2019-01-16 23.30.47.png

※画面デザインはなんとかしたいです。

まとめ

これで
コントラクトを実装しwebアプリでのアクセスまで
できました!

今後はwebアプリからのsetMessageを実行を
できたらと思います、、、

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?