Развёртывание Lamport

Что делает развёртывание lamport?

UnwrapLamports перемещает SOL из нативного (wrapped SOL) token account в целевой аккаунт в виде lamport. Можно развернуть весь баланс или указать конкретную сумму — token account при этом остаётся открытым.

Это более гибкий подход по сравнению с закрытием wrapped SOL аккаунта: частичное развёртывание позволяет вывести часть SOL, сохранив аккаунт пополненным для дальнейшего использования.

Исходные материалы

ItemDescriptionSource
UnwrapLamportsИнструкция (дискриминатор 45).Source
process_unwrap_lamportsЛогика процессора.Source

Аккаунты

AccountDescription
sourceДоступен для записи. Нативный (wrapped SOL) token account для развёртывания.
destinationДоступен для записи. Получает развёрнутые lamport.
authorityВладелец аккаунта или делегат (либо подписанты мультисига).

Источником должен быть нативный token account; для других token account возвращается NonNativeNotSupported. Делегат может развернуть сумму не более делегированной ему.

Как развернуть lamport

Не указывайте amount, чтобы развернуть весь баланс, или задайте конкретное количество lamport. В примере используется настроенный клиент @solana/kit — см. раздел Перевод токенов для настройки клиента.

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]);

Для мультисиг-авторитета передайте со-подписантов через multiSigners.

Is this page helpful?

Содержание

Редактировать страницу