【完全保存版】Solana でNonce Accountを作ってみよう!
本日は、こちらの公式ドキュメントを元に、Nonce accountを作ってみます。
通常のアカウントは「BlockHash」をトランザクションに取り込むところ、こちらは「Nonce」を取り込みます。
やってみましょう。
まず今回は、Nonce accountの実行用とNonce account用のキーペアを作ります。
1 現在のキーペアの確認
まずは、次のコマンドで、現在のキーペアがどこに格納されているか確認しましょう。
solana config get
私の場合は
の中に格納されているようです。
2 新しいキーペアの作成
では、それに基づいて、同じ階層に下のようにして、新しいキーペアを作成します。
solana-keygen new -o <格納場所>/nonce-authorigy.json
ファイル名は別の名前でも良いです。
これで、durable nonce用の作成用のキーペアのファイルを作成しました。
3 新しいキーペアのパスの設定
次に、上で作ったキーペアをパスとして設定します。
solana config set -k <格納場所>/<格納ファイル名>
下のようにセットできました。
4 テストトークンの取得
では、そちらのアドレスの確認や、テストトークンの取得を下のようにしてみましょう。
// アドレスの確認
solana address
// バランスの確認
solana balance
// テストトークンの取得
solana airdrop 5
5 durable nonceのキーペアの作成
次に、durable nonce用のキーペアを作成します。
先ほどは実行権限のキーペアで、今回は実際に使う用のキーペアです。
solana-keygen new -o <格納場所>/nonce-account.json
6 nonce accountの作成
では、今作ったアカウントをnonce accountにしましょう。
ヘルプを確認すると、このようになります。
下のように、引数にキーペアとamountが必要のようですね。
solana create-nonce-account <キーペア> <amount>
下のようにして実行しました。
シグネチャを確認すると、下のように、「System Program」の「Initialize Nonce」が実行されていました。
7 nonce accountの確認
次に、今作成したnonce accountのnonceを取得してみましょう。
ヘルプを見ると、次のようになっています。
では、下のようにして実行してみましょう。
solana nonce <アドレス>
もしくは、nonce accountの情報を次のようにしても確認できます。
solana nonce-account <アドレス>
8 nonceの更新
では、nonceを変更してみましょう。
ヘルプを見ると、次のようになります。
solana new-nonce <アドレス>
下のようになりました。
シグネチャを確認すると、下のように、「System Program」の「Advance Nonce」が実行されていることが確認できました。
では、nonceが変わったかを確認してみましょう。
solana nonce-account <アドレス>
下のように、変更されたことが確認できました。
9 nonce accountからの引き出し
次に、nonce accountからSOLを引き出しましょう。
ヘルプは下の通りです。
solana withdraw-from-nonce-account <引き出し元> <引き出し先> <amount>
シグネチャを確認してみると、下のように、「Unknown Instruction」となっております。
ただ、確認すると、Balanceが減っていることが確認できました。
今回は以上です。