見出し画像

【完全保存版】Anchorを使わずにSolanaのプログラムを作ろう(Hello Solana)

この記事では、Solana Playground「Hello Solana」を用いて、簡単なプログラムを作っています。

Solana Playground最初の立ち上げテストトークンについて不明な場合は、こちらもご確認ください。


1 プログラムの作成

1 Hello Solanaを開こう

まずは、こちらのSolana Playgroundのチュートリアルから、「Hello Solana」を選択します。

「START」から進めていきます。

すると、このような画面になりました。

2 use キーワード

まずこちらで、「use」キーワードを使うことで、インポートを行っていることがわかります。

次に、下のように貼り付けます。

3 関数の作成

ここでは「process_instruction」という関数を宣言しています。

引数として、「プログラムID」「アカウント」「指示のためのデータ」を指定しています。(結局、後者2つはこの関数では使わないですが。)

そして、下のようにして、「msg」マクロを貼り付けます。

これで、この関数で、「Hello World」の表示が行われるようになります。

4 エントリーポイントの設定

次に、下のようにして、「エントリーポイント」を設定します。

一番最初に実行する関数を設定しており、このプログラムでは、唯一の関数である「process_instruction」を設定しています。

5 デプロイの実行

これで準備ができましたので、「Build」を行います。

できましたら、「デプロイ」を行います。

これで完了です。

2 clientからの実行

1 clientを開こう

次に、「client」を作り、このプログラムの関数を実行してみましょう。

「client」に移動します。

2 プログラムIDの表示

まずは、下のように貼り付けました。

これによって、プログラムIDを表示することができます。

3 最新のブロックハッシュの取得

次はこちらです。

「getLatestBlockhash」関数を用いて、最新のブロックハッシュを取得しています。

これはトランザクションの作成に必要です。

4 トランザクションの作成

次は、こちらでトランザクションを作成しています。

スプレッド構文(…)を使って、「blockhashInfo」の中身を設定しています。

なお、スプレッド構文を使っているのは、このように、「blockhash」「lastValidBlockHeight」という2つの情報があるためです。

5 Instruction(命令)の追加

そして、下のようにして、今回実行する、Instruction(命令)を設定しています。

とはいえ、今回はアカウントも使わず、追加データも必要ないので、「keys」と「data」は空白になっています。

6 署名の作成

そして、下のようにして、署名を行なっています。

このプレイグラウンドのウォレットによって署名しています。

7 トランザクションの実行

最後に、トランザクションを実行しています。

ちなみに、「serialize」関数バイナリ形式に変換しているので、「sendRawTransaction」を実行しています。

8 clientの実行

こちらの「Run」で実行することができます。

9 トランザクションの確認

最後に、下のようにして、トランザクションを確認することができます。(エクスプローラによる確認でも大丈夫です。)

solana confirm -v <transactionのシグネチャ>

























いいなと思ったら応援しよう!

ユウキ
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊