Retirer des fonds

Brûle le solde de jetons côté canal d'un utilisateur sur le Withdraw Program pour signaler un retrait en attente ; un opérateur doit ensuite appeler ReleaseFunds sur le Escrow Program pour finaliser le règlement.

Comptes

CompteModifiableSignataireDescription
user✓Propriétaire du jeton initiant le retrait
mint✓Mint de jeton SPL (brûlé en contrepartie)
token_account✓token account côté canal de l'utilisateur (source)
token_programToken Program SPL
associated_token_programAssociated Token Program

Paramètres

ParamètreTypeDescription
amountu64Montant de jetons à retirer, dans la plus petite unité du jeton
destinationOption<Pubkey>Portefeuille cible sur le Mainnet ; si None, utilise par défaut le portefeuille du signataire

Retours

Retourne un TransactionBuilder qui peut être utilisé pour construire et envoyer la transaction.

Exemple

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

Notes importantes

  • Cette instruction se trouve sur le Withdraw Program (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), et non sur le Escrow Program
  • Brûler des jetons côté canal ne libère pas automatiquement les fonds sur le Mainnet ; un opérateur doit ensuite appeler ReleaseFunds sur le Escrow Program avec une preuve d'exclusion SMT valide
  • L'erreur ZeroAmount est levée si amount vaut 0
  • Si destination est None, l'appel ReleaseFunds de l'opérateur libérera les fonds vers le portefeuille du signataire

Pour la référence complète des codes d'erreur des deux programmes, consultez Instructions -> Error Codes.

Is this page helpful?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.