BetalingenAbonnementen
Een Subscription Authority is een PDA die het programma gebruikt als SPL Token-gemachtigde voor het token account van één gebruiker en één tokenmunt. Maak deze aan voordat u vaste delegaties, terugkerende delegaties of abonnementsplanabonnementen voor die munt aanmaakt.
Het token account van de gebruiker moet al bestaan. Initialisatie creëert de Subscription Authority PDA en keurt deze goed als de tokengemachtigde op het token account van de gebruiker.
De bevoegdheid aanmaken
import { address, createClient } from '@solana/kit';import { solanaLocalRpc } from '@solana/kit-plugin-rpc';import { signer } from '@solana/kit-plugin-signer';import { findAssociatedTokenPda, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';import {fetchMaybeSubscriptionAuthority,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 [userAta] = await findAssociatedTokenPda({mint: tokenMint,owner: userSigner.address,tokenProgram: TOKEN_PROGRAM_ADDRESS,});const [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({user: userSigner.address,tokenMint,});const subscriptionAuthority = await fetchMaybeSubscriptionAuthority(client.rpc,subscriptionAuthorityPda,);if (!subscriptionAuthority.exists) {await client.subscriptions.instructions.initSubscriptionAuthority({tokenMint,tokenProgram: TOKEN_PROGRAM_ADDRESS,userAta,}).sendTransaction();}
Opmerkingen
- De gebruiker ondertekent de initialisatietransactie.
- Maak één Subscription Authority aan per gebruiker en tokenmunt-combinatie.
- Hergebruik de bestaande Subscription Authority voor latere delegaties op dezelfde munt.
- Sluit de Subscription Authority pas nadat elke delegatie die ervan afhankelijk is, is ingetrokken of gesloten.
Is this page helpful?