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
| Cuenta | Modificable | Firmante | Descripció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_program | Token Program SPL | ||
associated_token_program | Associated Token Program |
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
amount | u64 | Cantidad de tokens a retirar, en la unidad más pequeña del token |
destination | Option<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
(
J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVidevnet), 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
ReleaseFundsen el Escrow Program con una prueba de exclusión SMT válida - Se lanza el error
ZeroAmountsiamountes 0 - Si
destinationesNone, la llamada aReleaseFundsdel 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?