创建会话
要创建会话,请调用sessionWallet 上的 createSession 方法。该方法接收三个参数:
targetProgramPublicKey: 一个PublicKey实例,表示你想交互的目标程序。topUp: 一个布尔值。如果你希望一开始为 session keypair 充值0.01 SOL,则设为true;如果不想充值,则设为false。expiryInMinutes: 可选参数,表示会话的过期时间,单位为分钟。默认值为 60 分钟。
createSession 后,会在客户端生成并存储一个新的临时 keypair。随后会创建会话令牌,并与该 keypair 一起保存。这样一来,用户就可以使用这个生成的 keypair 安全地签署交易,而无需暴露真实钱包的私钥。
签名并发送交易
要签名并发送交易,请使用signAndSendTransaction 方法。该方法会先用会话期间创建的临时 keypair 对交易签名,然后将签名后的交易发送到 Solana 网络。
signAndSendTransaction 方法通过确保真实钱包私钥不会暴露,提供了额外的安全层。交易会由保存在客户端的临时 keypair 来签名,从而保护用户的主钱包安全。
撤销会话
要撤销会话,请调用sessionWallet 上的 revokeSession 方法。该方法会执行三项操作:
- 从客户端存储中移除临时 keypair 和会话令牌。
- 从合约中撤销该会话。
- 将 lamports 返还给 authority,并关闭 session token PDA。

