跳转到主要内容
现在你已经设置好了 hooks 和 provider,接下来我们来看一些使用这些方法的示例。

创建会话

要创建会话,请调用 sessionWallet 上的 createSession 方法。该方法接收三个参数:
  1. targetProgramPublicKey: 一个 PublicKey 实例,表示你想交互的目标程序。
  2. topUp: 一个布尔值。如果你希望一开始为 session keypair 充值 0.01 SOL,则设为 true;如果不想充值,则设为 false
  3. expiryInMinutes: 可选参数,表示会话的过期时间,单位为分钟。默认值为 60 分钟。
调用 createSession 后,会在客户端生成并存储一个新的临时 keypair。随后会创建会话令牌,并与该 keypair 一起保存。这样一来,用户就可以使用这个生成的 keypair 安全地签署交易,而无需暴露真实钱包的私钥。

签名并发送交易

要签名并发送交易,请使用 signAndSendTransaction 方法。该方法会先用会话期间创建的临时 keypair 对交易签名,然后将签名后的交易发送到 Solana 网络。
signAndSendTransaction 方法通过确保真实钱包私钥不会暴露,提供了额外的安全层。交易会由保存在客户端的临时 keypair 来签名,从而保护用户的主钱包安全。

撤销会话

要撤销会话,请调用 sessionWallet 上的 revokeSession 方法。该方法会执行三项操作:
  1. 从客户端存储中移除临时 keypair 和会话令牌。
  2. 从合约中撤销该会话。
  3. 将 lamports 返还给 authority,并关闭 session token PDA。
撤销会话可以确保临时 keypair 不再有效,也不能继续被使用。 这些示例可以帮助你开始在应用中实现会话管理和钱包功能。 请参考 Example App 中的 “Create Post” 部分,以查看 Session Token 的实现方式。