Nosta ylimääräiset lamport-yksiköt

Mitä ylimääräisten lamport-yksiköiden nostaminen tekee?

WithdrawExcessLamports siirtää Token Program -tilin hallussa pitämän SOL:n, joka ylittää vuokravapautusminimin, kohdepankkitilille. Token-saldot ja mint-tarjonta pysyvät koskemattomina — vain ylimääräiset lamport-yksiköt siirtyvät.

Tämä palauttaa aiemmin jumiin jääneen SOL:n: lamport-yksiköitä, jotka oli lähetetty token account-, mint- tai multisig-tilille (kaikki Token Program -ohjelman omistamia), ei muutoin voinut siirtää.

Lähdeviite

KohdeKuvausLähde
WithdrawExcessLamportsKäsky (erottelija 38).Lähde
process_withdraw_excess_lamportsProsessorin logiikka ja valtuustarkistukset.Lähde

Tilit

TiliKuvaus
sourceKirjoitettava. token account, mint tai multisig, jolta nostetaan.
destinationKirjoitettava. Vastaanottaa ylimääräiset lamport-yksiköt.
authorityAllekirjoittaa lähdepankkitilin tyypin perusteella (katso alta).

Kuka voi allekirjoittaa

Vaadittu allekirjoittaja riippuu source-tilin tyypistä:

LähdetiliAllekirjoittaja
Token accounttoken account -tilin omistaja (tai sen multisig-allekirjoittajat).
Mint, jolla on mint-valtuutusMint-valtuutus.
Mint, jolla ei ole mint-valtuutustamint account -tilin on itse allekirjoitettava (katso alla oleva huomio).
MultisigMääritetyt M-of-N-allekirjoittajat.

"Mint ilman mint-auktoriteettia" -tapaus on harvinainen. Kun se on voimassa, mint-tili on allekirjoittaja: ohjelman omistama (off-curve) mint allekirjoittaa CPI:n kautta omistavasta ohjelmastaan, ja keypair (on-curve) mint allekirjoittaa avaimellaan.

Natiiveja (wrapped SOL) token account -tilejä ei tueta, ja ne palauttavat NativeNotSupported. Nosto ei voi pudottaa lähdetilin saldoa alle sen vuokravapautusminimin.

Ylimääräisten lamport-yksiköiden nostaminen

Esimerkki käyttää konfiguroitua @solana/kit -asiakasta — katso Siirrä tokeneita asiakkaan asetuksista.

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-auktoriteettia varten välitä allekirjoittajat multiSigners:llä.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.