Что делает развёртывание lamport?
UnwrapLamports перемещает SOL из нативного (wrapped SOL) token account в
целевой аккаунт в виде lamport. Можно развернуть весь баланс или указать
конкретную сумму — token account при этом остаётся открытым.
Это более гибкий подход по сравнению с закрытием wrapped SOL аккаунта: частичное развёртывание позволяет вывести часть SOL, сохранив аккаунт пополненным для дальнейшего использования.
Исходные материалы
| Item | Description | Source |
|---|---|---|
UnwrapLamports | Инструкция (дискриминатор 45). | Source |
process_unwrap_lamports | Логика процессора. | Source |
Аккаунты
| Account | Description |
|---|---|
source | Доступен для записи. Нативный (wrapped SOL) token account для развёртывания. |
destination | Доступен для записи. Получает развёрнутые lamport. |
authority | Владелец аккаунта или делегат (либо подписанты мультисига). |
Источником должен быть нативный token account; для других token account
возвращается NonNativeNotSupported. Делегат может развернуть сумму не
более делегированной ему.
Как развернуть lamport
Не указывайте amount, чтобы развернуть весь баланс, или задайте конкретное
количество lamport. В примере используется настроенный клиент
@solana/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?