セッションを作成する
セッションを作成するには、sessionWallet の createSession メソッドを呼び出します。このメソッドは 3 つのパラメータを受け取ります。
targetProgramPublicKey: やり取りしたい対象プログラムを表すPublicKeyインスタンスtopUp: セッション keypair に最初に0.01 SOLを入金したい場合はtrue、入金したくない場合はfalseexpiryInMinutes: セッションの有効期限を分単位で表す任意パラメータ。デフォルト値は 60 分です。
createSession を呼び出すと、新しい一時的な keypair が生成され、クライアント側に保存されます。続いて、その keypair と一緒にセッショントークンも作成・保存されます。これにより、ユーザーは実際のウォレット秘密鍵を公開することなく、生成された keypair を使って安全にトランザクションへ署名できます。
トランザクションを署名して送信する
トランザクションを署名して送信するには、signAndSendTransaction メソッドを使います。このメソッドはまず、セッション中に作成された一時 keypair でトランザクションに署名し、その後署名済みトランザクションを Solana ネットワークへ送信します。
signAndSendTransaction メソッドは、実際のウォレット秘密鍵を露出させないことで、追加のセキュリティレイヤーを提供します。クライアント側に保存された一時 keypair を使って署名するため、ユーザーのメインウォレットを安全に保てます。
セッションを取り消す
セッションを取り消すには、sessionWallet の revokeSession メソッドを呼び出します。このメソッドは次の 3 つの処理を行います。
- クライアント側ストレージから一時 keypair とセッショントークンを削除する
- コントラクト上のセッションを revoke する
- lamports を authority に返し、session token PDA を閉じる

