Astar にデプロイしたスマートコントラクト(EVM)用DAppをflutter で作る


今回説明するコードは以下のリポジトリにぶち込んでいる。(solidity 含む)

https://github.com/Polonity/dapp_astar_evm_example

以下のライブラリをありがたく使用する。

https://pub.dev/packages/flutter_web3

やること

flutter の初期カウンターApp に metamask 認証とスマートコントラクトcall&read機能を追加する。

処理の流れ

  1. metamask で認証
  2. smart contract 上の increment値 を get して画面に反映
  3. add ボタンを押下 するとスマートコントラクトが発動
  4. metamask wallet で sign してスマートコントラクトを実行
  5. increment値 を更新
  6. provider 経由で increment 値を取得して画面に表示
graph TB

    subgraph EVM[EVM]
    incremet[[increment]]
    value[(value)]
    end
    dapps(dapps) -->|sign| metamask[metamask]
    metamask --> incremet
    incremet -->|++| value
    metamask --> |get|value
    value -->|1| metamask

デモ

https://github.com/Polonity/dapp_astar_evm_example/blob/master/images/incrementer.gif

できてないこと

  • wallet connect による sign (スマホ対応)
  • event listen(スマートコントラクト実行時の戻り値の取得)
  • native wallet 対応(polkadot.js 対応)