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 読解ガイド
以上