インストール
まず、Cargo.toml に session-keys crate を追加します。
使い方
session-keysをインポートする:
session-keys crate から必要なコンポーネントをインポートしています。
Sessiontrait を derive する:
Increment 構造体に Session trait を derive することで、session 機能が有効になります。
- session token アカウントを定義する:
SessionToken アカウントを定義し、session の signer と authority を指定しています。
session_token.authority: session token を作成したアカウントcounter.authority.key(): counter を作成したアカウント authority 条件は、session token が counter と同じユーザーによって作成されたかどうかを確認します。
session_auth_orマクロを使う:
increment 関数に適用されています。
有効な session token があるかを確認し、存在しない場合は signer が counter の authority であることを検証します。
完全な例
以下は session keys を使った counter プログラムの完全な例です。 各ユーザーが自分専用の counter アカウントを持つため、session keys による認証の流れを確認できます。テスト
以下は session keys を使って counter プログラムをテストする例です。ローカルでテストする
solana-test-validator を使ってローカルでテストするには、session keys program とアカウントを含めて起動する必要があります。
- Solana CLI が DEVNET を指していることを確認します:
- Session Keys program をローカルファイルに dump します:
- session keys program とアカウントを指定して
solana-test-validatorを起動します:
-r- ledger を genesis にリセット-ud- Solana JSON RPC の URL または moniker(-ud = DEVNET)--clone- cluster からアカウントをコピー--bpf-program- genesis 設定に SBF program を追加

