Odpakowanie lamportów

Co robi odpakowanie lamportów?

UnwrapLamports przenosi SOL z natywnego (opakowanego SOL) token account do konta docelowego w postaci lamportów. Możesz odpakować pełne saldo lub określoną kwotę, a token account pozostaje otwarty.

Jest to bardziej elastyczne niż zamknięcie opakowanego konta SOL: częściowe odpakowanie pozwala wypłacić część SOL, zachowując konto zasilone do późniejszego użycia.

Źródło referencyjne

ElementOpisŹródło
UnwrapLamportsInstrukcja (dyskryminator 45).Źródło
process_unwrap_lamportsLogika procesora.Źródło

Konta

KontoOpis
sourceZapisywalne. Natywny (opakowany SOL) token account do odpakowania.
destinationZapisywalne. Odbiera odpakowane lamporty.
authorityWłaściciel konta lub delegat (lub sygnatariusze multisig).

Źródłem musi być natywny token account; inne token accounts zwracają NonNativeNotSupported. Delegat może odpakować do wysokości swojej delegowanej kwoty.

Jak odpakować lamporty

Pomiń amount, aby odpakować pełne saldo, lub ustaw tę wartość, aby odpakować określoną liczbę lamportów. Przykład używa skonfigurowanego klienta @solana/kit — zobacz Transfer tokenów, aby zapoznać się z konfiguracją klienta.

Unwrap wrapped SOL (Kit)
import { getUnwrapLamportsInstruction } from "@solana-program/token";
// source: the native (wrapped SOL) token account to unwrap.
// destination: address that receives the unwrapped lamports.
// authority: a TransactionSigner (the account owner or a delegate).
// Unwrap a specific number of lamports.
const unwrapSome = getUnwrapLamportsInstruction({
source,
destination,
authority,
amount: 500_000_000n
});
// Or omit `amount` to unwrap the entire balance.
const unwrapAll = getUnwrapLamportsInstruction({
source,
destination,
authority
});
// Send whichever instruction you need.
await client.sendTransaction([unwrapSome]);

W przypadku autorytetu multisig przekaż współsygnatariuszy za pomocą multiSigners.

Is this page helpful?

Spis treści

Edytuj stronę