支付订阅
订阅授权是程序用作用户代币账户的 SPL Token 委托的 PDA。当用户不再拥有针对该铸币的活跃固定委托、循环委托或订阅委托时,请关闭它。
关闭账户会将其租金返还给账户的 lamport 资助者,并撤销程序拥有的代币委托批准。资助者通常是用户,但也可以是资助订阅授权账户的任何支付方。如果仍有活跃委托依赖于该授权,请先关闭这些委托。
关闭授权
import { address, createClient } from '@solana/kit';import { solanaLocalRpc } from '@solana/kit-plugin-rpc';import { signer } from '@solana/kit-plugin-signer';import {findSubscriptionAuthorityPda,subscriptionsProgram,} from '@solana/subscriptions';const client = createClient().use(signer(userSigner)).use(solanaLocalRpc({ rpcUrl: 'http://127.0.0.1:8899' })).use(subscriptionsProgram());const tokenMint = address('TOKEN_MINT_ADDRESS_HERE');const [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({user: userSigner.address,tokenMint,});await client.subscriptions.instructions.closeSubscriptionAuthority({user: userSigner,tokenMint,// Include this only when a sponsor funded the Subscription Authority.receiver: sponsorSigner.address,}).sendTransaction();
注意事项
- 用户签署关闭交易。
- 如果赞助商资助了订阅授权,请将该赞助商账户作为
receiver传递,以便租金返还给记录的支付方。 - 在关闭订阅授权之前,先关闭固定、循环和订阅委托 PDA。
- 如果用户稍后创建新的委托,请为同一铸币初始化新的订阅授权。
Is this page helpful?