1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Symbolの仕様をAIに読ませて、M5StickC Plusから1 XYM送信してみた

1
Posted at

1.概要

M5StickC Plusから、SymbolブロックチェーンのTransferTransactionを実行できるようにしました。
Aボタンを押すと、Symbol TestnetのアカウントAからアカウントBへ1 XYMを送信します。
ポイントは、Symbol SDKを使わず、Symbolの仕様をAIに読ませて実装させたことです。

2.実現した内容

1. M5StickC PlusのAボタンを押す
   ↓
2. アカウントAからアカウントBへ1XYM送信するトランザクションを生成
   ↓
3. トランザクションをアカウントAで署名
   ↓
4. トランザクションを発行
   ↓
5. トランザクション承認を確認する
   ↓
6. M5StickC Plusの画面に成功を表示

3.実装方法

実装はAIに行わせました。
Symbol SDKは使用せず、SymbolのTransactionをバイナリレベルで実装するため、
Symbolのcatbuffer仕様をAIに読みに行かせました。
その際に利用したのが、
CAT Skill: Symbol catbuffer 読解ガイド
です。
これをAIに与えた上で、M5StickC Plusで動作するコードを作成させました。

AIにCAT Skillを読ませた効果
最初にCAT Skillを指定せずにコードを生成させ、その後でCAT Skillを読み込ませたところ、以下の改善が行われました。

  • ネットワークに依存する情報をコードに固定しないように改善
  • トランザクション承認を確認するように改善
  • catbufferのフィールド配置を仕様と照合し、実装が正しいことを確認(AI談)

4.ソースコード

秘密鍵はソースコードに直接記述せず、ESP32のPreferences(NVS)に保存する方式としました。
初回のみ設定用プログラムを実行して、Wi-Fi情報とSymbol Testnet用の秘密鍵をNVSに保存します。
通常のTransactionプログラムは、NVSから秘密鍵を読み出して署名に使用します。

初回:

setup用 main.cpp
    ↓
NVSへWi-Fi情報・秘密鍵を保存

通常実行:

Transaction用 main.cpp
    ↓
Aボタン
    ↓
1 XYM送信

5.参考

参考書籍

CAT Skill: Symbol catbuffer 読解ガイド

以上

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?