MaksutTilaukset
Subscription Authority on PDA, jota ohjelma käyttää SPL Token -delegaattina yhdelle käyttäjän token accountille ja yhdelle token mintille. Luo se ennen kiinteiden delegointien, toistuvien delegointien tai tilaussuunnitelmien tilausten luomista kyseiselle mintille.
Käyttäjän token account on oltava jo olemassa. Alustus luo Subscription Authority PDA:n ja hyväksyy sen token-delegaatiksi käyttäjän token accountilla.
Valtuutuksen luominen
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();}
Huomautukset
- Käyttäjä allekirjoittaa alustustransaktion.
- Luo yksi Subscription Authority jokaista käyttäjä–token mint -paria kohden.
- Käytä olemassa olevaa Subscription Authoritya uudelleen myöhemmissä delegoinneissa samalla mintillä.
- Sulje Subscription Authority vasta sen jälkeen, kun jokainen siitä riippuva delegointi on peruutettu tai suljettu.
Is this page helpful?