Retirar Fondos

Quema el saldo de tokens del lado del canal de un usuario en el Withdraw Program para señalar un retiro pendiente; un operador debe llamar posteriormente a ReleaseFunds en el Escrow Program para completar la liquidación.

Cuentas

CuentaModificableFirmanteDescripción
user✓Propietario del token que inicia el retiro
mint✓Mint del token SPL (contra el que se quema)
token_account✓token account del canal del usuario (origen)
token_programToken Program SPL
associated_token_programAssociated Token Program

Parámetros

ParámetroTipoDescripción
amountu64Cantidad de tokens a retirar, en la unidad más pequeña del token
destinationOption<Pubkey>Billetera destino en Mainnet; si es None, se usa por defecto la billetera del firmante

Retorna

Retorna un TransactionBuilder que puede utilizarse para construir y enviar la transacción.

Ejemplo

import { getWithdrawFundsInstruction } from "../private-channel-withdraw-program/clients/typescript/src/generated";
const withdrawIx = getWithdrawFundsInstruction({
user: userSigner,
mint: mintAddress,
tokenAccount: channelTokenAccount,
tokenProgram: TOKEN_PROGRAM_ID,
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
amount: 1_000_000n,
destination: null // null = release to signer's Mainnet wallet
});

Notas Importantes

  • Esta instrucción se encuentra en el Withdraw Program (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), no en el Escrow Program
  • Quemar tokens en el lado del canal no libera fondos automáticamente en Mainnet; un operador debe llamar posteriormente a ReleaseFunds en el Escrow Program con una prueba de exclusión SMT válida
  • Se lanza el error ZeroAmount si amount es 0
  • Si destination es None, la llamada a ReleaseFunds del operador liberará los fondos a la billetera del firmante

Para la referencia completa de códigos de error de ambos programas, consulte Instructions -> Error Codes.

Is this page helpful?

Tabla de Contenidos

Editar Página