¿Qué hace Desenvolver Lamports?
UnwrapLamports mueve SOL fuera de un token account nativo (SOL envuelto)
hacia una cuenta de destino en forma de lamports. Puedes desenvolver el saldo
completo o una cantidad específica, y el token account permanece abierto.
Esto es más flexible que cerrar un token account de SOL envuelto: un desenvolvimiento parcial te permite retirar algo de SOL mientras mantienes la cuenta financiada para un uso posterior.
Referencia del código fuente
| Elemento | Descripción | Fuente |
|---|---|---|
UnwrapLamports | La instrucción (discriminador 45). | Fuente |
process_unwrap_lamports | Lógica del procesador. | Fuente |
Cuentas
| Cuenta | Descripción |
|---|---|
source | Modificable. El token account nativo (SOL envuelto) a desenvolver. |
destination | Modificable. Recibe los lamports desenvueltos. |
authority | El propietario de la cuenta o un delegado (o firmantes multisig). |
La fuente debe ser un token account nativo; otros token accounts devuelven
NonNativeNotSupported. Un delegado puede desenvolver hasta su cantidad
delegada.
Cómo Desenvolver Lamports
Omite amount para desenvolver el saldo completo, o establécelo para
desenvolver una cantidad específica de lamports. El ejemplo utiliza un cliente
@solana/kit configurado —
consulta Transferir Tokens para la
configuración del cliente.
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]);
Para una autoridad multisig, pasa los co-firmantes con multiSigners.
Is this page helpful?