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
| Compte | Modifiable | Signataire | Description |
|---|---|---|---|
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_program | Token Program SPL | ||
associated_token_program | Associated Token Program |
Paramètres
| Paramètre | Type | Description |
|---|---|---|
amount | u64 | Montant de jetons à retirer, dans la plus petite unité du jeton |
destination | Option<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
(
J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVidevnet), 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
ReleaseFundssur le Escrow Program avec une preuve d'exclusion SMT valide - L'erreur
ZeroAmountest levée siamountvaut 0 - Si
destinationestNone, l'appelReleaseFundsde 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?