Ανάληψη Πλεονάζοντων Lamports

Τι Κάνει η Ανάληψη Πλεονάζοντων Lamports;

WithdrawExcessLamports μεταφέρει SOL που διατηρείται από έναν λογαριασμό του Token Program πάνω από το ελάχιστο όριο απαλλαγής ενοικίου σε έναν λογαριασμό προορισμού. Τα υπόλοιπα token και η προσφορά του mint παραμένουν αναλλοίωτα — μόνο τα πλεονάζοντα lamport μεταφέρονται.

Αυτό ανακτά SOL που ήταν προηγουμένως δεσμευμένο: lamports που στάλθηκαν σε ένα token account, mint ή multisig (όλα ανήκουν στο Token Program) δεν μπορούσαν διαφορετικά να μεταφερθούν.

Αναφορά Πηγής

ΣτοιχείοΠεριγραφήΠηγή
WithdrawExcessLamportsΗ εντολή (discriminator 38).Πηγή
process_withdraw_excess_lamportsΛογική επεξεργαστή και έλεγχοι εξουσιοδότησης.Πηγή

Λογαριασμοί

ΛογαριασμόςΠεριγραφή
sourceΕγγράψιμος. Το token account, mint ή multisig από το οποίο γίνεται η ανάληψη.
destinationΕγγράψιμος. Λαμβάνει τα πλεονάζοντα lamports.
authorityΥπογράφει βάσει του τύπου του λογαριασμού πηγής (βλ. παρακάτω).

Ποιος Μπορεί να Υπογράψει

Ο απαιτούμενος υπογράφων εξαρτάται από τον τύπο του λογαριασμού source:

Λογαριασμός πηγήςΥπογράφων
Token accountΟ κάτοχος του token account (ή οι multisig υπογράφοντες του).
Mint με mint authorityΗ mint authority.
Mint χωρίς mint authorityΟ ίδιος ο mint account πρέπει να υπογράψει (βλ. την παρακάτω σημείωση).
MultisigΟι διαμορφωμένοι M-of-N υπογράφοντες.

Η περίπτωση "mint χωρίς mint authority" είναι ασυνήθιστη. Όταν εφαρμόζεται, ο λογαριασμός mint είναι ο υπογράφων: ένα mint που ανήκει σε πρόγραμμα (off-curve) υπογράφει μέσω CPI από το πρόγραμμα που το κατέχει, και ένα keypair (on-curve) mint υπογράφει με το κλειδί του.

Τα Native (wrapped SOL) token accounts δεν υποστηρίζονται και επιστρέφουν NativeNotSupported. Η ανάληψη δεν μπορεί να μειώσει τον λογαριασμό προέλευσης κάτω από το ελάχιστο απαιτούμενο για την εξαίρεση από ενοίκιο.

Πώς να Αποσύρετε Πλεονάζοντα lamport

Το παράδειγμα χρησιμοποιεί έναν διαμορφωμένο @solana/kit client — δείτε Μεταφορά Tokens για τη ρύθμιση του client.

Withdraw excess lamports (Kit)
import { getWithdrawExcessLamportsInstruction } from "@solana-program/token";
// source/destination: addresses of the account to drain and the lamport recipient.
// authority: a TransactionSigner that signs per the source account type.
const instruction = getWithdrawExcessLamportsInstruction({
source,
destination,
authority
});
await client.sendTransaction([instruction]);

Για μια multisig authority, περάστε τους συν-υπογράφοντες με multiSigners.

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.