ÖdemelerAbonelikler

Terk Edilmiş Delegasyonları ve Abonelikleri İptal Et

Delegasyonlar ve abonelikler, iptal edildiğinde normalde kayıtlı ödeyiciye geri dönen rent tutar. Bir sponsor hesabı finanse ettiyse ve kullanıcı daha sonra Abonelik Yetkisini kapatır veya değiştirirse, hesap askıda kalır ve rent'i sıkışır. RevokeAbandonedDelegation ve RevokeAbandonedSubscription, kayıtlı ödeyicinin bunu geri almasına olanak tanır.

Ne Zaman Geçerlidir

Yalnızca hesabın Abonelik Yetkisinin kanıtlanabilir şekilde sonlandığı durumlarda izin verilir — kapatılmış veya kapatılıp yeniden oluşturulmuş (dolayısıyla init_id artık eşleşmiyor). Aktif bir delegasyon veya abonelik bu yolla hiçbir zaman kapatılamaz.

RevokeAbandonedDelegationRevokeAbandonedSubscription
KapatırSabit veya yinelenen delegasyon PDA'sıAbonelik PDA'sı
İmzalayanKayıtlı ödeyiciKayıtlı ödeyici
HesaplarDelegasyon + kayıtlı yetkiAbonelik + kayıtlı yetki + plan
Uygun olduğu durumYetki kapatıldığında veya yeniden oluşturulduğunda (init_id uyuşmazlığı)Aynı durum, planın mint'i için — mint bağlı plandan okunur, bu nedenle zorla kapatmak amacıyla ilgisiz bir yetki ikame edilemez
Bunun yerine olağan iptal kullanınDelegasyon süresi dolmuş veya tamamen harcanmışsaAbonelik iptal edilmiş ve süresi dolmuşsa

RevokeAbandonedDelegation, tamamen harcanmamış, hiç süresi dolmayan bir delegasyon (expiry_ts == 0) için kayıtlı ödeyicinin tek kurtarma yoludur: olağan iptal, ödeyici için yalnızca süre dolumunda veya sabit bir delegasyon söz konusuysa tam harcama gerçekleştiğinde tetiklenir.

Terk Edilmiş Bir Delegasyonu İptal Et

Kayıtlı ödeyici imzalar. Kullanılmayan delegasyon PDA'sını ve kayıtlı Abonelik Yetkisini (zaten kapatılmış olabilir) iletin. Rent, ödeyiciye geri döner.

import { getRevokeAbandonedDelegationInstruction } from '@solana/subscriptions';
// Build the instruction and send it in a transaction like any other.
const revokeAbandonedIx = getRevokeAbandonedDelegationInstruction({
payer: payerSigner,
delegationAccount: delegationPda,
subscriptionAuthority: subscriptionAuthorityPda,
});

Terk Edilmiş Bir Aboneliği İptal Etme

Kayıtlı ödeyici imzalar. Terk edilmiş abonelik PDA'sını, kayıtlı Abonelik Yetkilisini (zaten kapatılmış olabilir) ve aboneliğin ait olduğu planı iletin. Rent, ödeyiciye iade edilir.

import { getRevokeAbandonedSubscriptionInstruction } from '@solana/subscriptions';
// Build the instruction and send it in a transaction like any other.
const revokeAbandonedIx = getRevokeAbandonedSubscriptionInstruction({
payer: payerSigner,
subscriptionAccount: subscriptionPda,
subscriptionAuthority: subscriptionAuthorityPda,
planPda,
});

Notlar

  • İmzalayan, delege eden, delege edilen veya abone değil, kayıtlı ödeyicidir.
  • Hesap için Abonelik Yetkilisi hâlâ aktifse her iki talimat da başarısız olur — bunun yerine normal iptal işlemini kullanın.
  • RevokeAbandonedDelegation hem sabit hem de yinelenen delegasyonlar için çalışır.

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.