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 tilausvaltuutus (Subscription Authority) käyttäjää ja token mint -paria kohden.
- Käytä olemassa olevaa tilausvaltuutusta myöhemmissä delegoinneissa samalle mintille.
- Sponsori voi rahoittaa tilin: välitä valinnainen
payerinitSubscriptionAuthority-funktiolle (tuetaan myöscreateFixedDelegation-,createRecurringDelegation- jasubscribe-funktioissa), tai määritä se.use(payer(sponsorSigner))-funktiolla. rent palautuu kyseiselle sponsorille, kun suljet tilin vastaavallareceiver-funktiolla. Jätä pois itse rahoitetun oletuksen käyttämiseksi. - Sulje tilausvaltuutus vasta, kun kaikki siitä riippuvat delegoinnit on peruutettu tai suljettu.
Is this page helpful?