Transfère des tokens SPL depuis l'associated token account d'un utilisateur vers l'associated token account de l'entiercement, en créditant le solde du canal de l'utilisateur déposant (ou le solde d'un destinataire optionnel).
Comptes
| Compte | Modifiable | Signataire | Description |
|---|---|---|---|
payer | ✓ | ✓ | Payeur des frais de transaction |
user | ✓ | Propriétaire du token effectuant le dépôt | |
instance | PDA de l'instance d'entiercement | ||
mint | Mint de token SPL | ||
allowed_mint | PDA vérifiant que le mint est autorisé sur cette instance | ||
user_ata | ✓ | associated token account de l'utilisateur (source) | |
instance_ata | ✓ | associated token account de l'entiercement (destination) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA d'autorité d'événement pour le CPI EmitEvent | ||
private_channel_escrow_program | Programme d'entiercement (auto-référence pour CPI) |
Paramètres
| Paramètre | Type | Description |
|---|---|---|
amount | u64 | Montant de tokens à déposer, dans la plus petite unité du token |
recipient | Option<Pubkey> | Destinataire on-chain optionnel ; si None, crédite le solde du canal de l'utilisateur déposant |
Retours
Retourne un TransactionBuilder pouvant être utilisé pour construire et envoyer la transaction.
Exemple
import { getDepositInstructionAsync } from "../private-channel-escrow-program/clients/typescript/src/generated";// allowedMint and instanceAta are auto-derived from mint and instanceconst depositIx = await getDepositInstructionAsync({payer: payerSigner,user: userSigner,instance: instancePda,mint: mintAddress,userAta: userAtaAddress,amount: 1_000_000n,recipient: null});
Remarques importantes
- ID du programme :
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Pour les mints Token-2022, passez
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSexplicitement, car la valeur par défaut est le SPL Token Program standard - Le PDA
allowed_mintdoit exister (créé parAllowMint) ; déposer un mint non répertorié déclenche l'erreurInvalidAllowedMint - Lorsque
recipientestNone, le solde du canal de l'utilisateur déposant est crédité ; lorsqu'il est fourni, le solde du portefeuille spécifié est crédité à la place payeretuserdoivent tous deux signer la transaction- L'
instance_atadoit déjà exister (créée parAllowMintpour ce mint)
Is this page helpful?