Thanh toánĐăng ký

Thu Hồi Các Ủy Quyền Và Đăng Ký Bị Bỏ Rơi

Các ủy quyền và đăng ký giữ rent thường được hoàn trả cho người thanh toán đã ghi lại khi thu hồi. Nếu một nhà tài trợ đã cấp vốn cho tài khoản và người dùng sau đó đóng hoặc thay thế Subscription Authority của họ, tài khoản sẽ bị mắc kẹt và rent của nó cũng vậy. RevokeAbandonedDelegationRevokeAbandonedSubscription cho phép người thanh toán đã ghi lại lấy lại rent đó.

Khi Nào Áp Dụng

Chỉ được phép khi Subscription Authority của tài khoản có thể chứng minh là đã chấm dứt — đã đóng, hoặc đã đóng và tạo lại (nên init_id không còn khớp nữa). Một ủy quyền hoặc đăng ký đang hoạt động không bao giờ có thể bị đóng theo cách này.

RevokeAbandonedDelegationRevokeAbandonedSubscription
ĐóngPDA ủy quyền cố định hoặc định kỳPDA đăng ký
Người kýNgười thanh toán đã ghi lạiNgười thanh toán đã ghi lại
Tài khoảnỦy quyền + authority đã ghi lạiĐăng ký + authority đã ghi lại + plan
Đủ điều kiện khiAuthority đã đóng, hoặc đã tạo lại (init_id không khớp)Tương tự, đối với mint của plan — mint được đọc từ plan đã liên kết, vì vậy không thể thay thế một authority không liên quan để ép buộc đóng
Thay vào đó hãy dùng thu hồi thông thường khiỦy quyền đã hết hạn hoặc đã chi tiêu hếtĐăng ký đã bị hủy và hết hạn

RevokeAbandonedDelegation cũng là con đường khôi phục duy nhất của người thanh toán đã ghi lại đối với một ủy quyền không bao giờ hết hạn (expiry_ts == 0) chưa được chi tiêu hết: lệnh thu hồi thông thường chỉ kích hoạt cho người thanh toán khi hết hạn hoặc, đối với ủy quyền cố định, khi chi tiêu hết.

Thu Hồi Một Ủy Quyền Bị Bỏ Rơi

Người thanh toán đã ghi lại ký. Truyền vào PDA ủy quyền đã chết và Subscription Authority đã ghi lại của nó (có thể đã bị đóng). Rent được hoàn trả cho người thanh toán.

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,
});

Thu Hồi Gói Đăng Ký Đã Bị Bỏ Rơi

Người thanh toán đã được ghi lại ký. Truyền vào PDA của gói đăng ký bị bỏ rơi, Subscription Authority đã được ghi lại của nó (có thể đã bị đóng), và gói mà gói đăng ký thuộc về. rent sẽ được hoàn trả cho người thanh toán.

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,
});

Lưu Ý

  • Người thanh toán đã được ghi lại ký, không phải người ủy quyền, người được ủy quyền, hay người đăng ký.
  • Cả hai lệnh đều thất bại nếu Subscription Authority vẫn còn hoạt động cho tài khoản — hãy sử dụng revoke thông thường thay thế.
  • RevokeAbandonedDelegation hoạt động cho cả ủy quyền cố định lẫn định kỳ.

Is this page helpful?

Mục lục

Chỉnh sửa trang