Trasferisce token SPL dall'associated token account dell'utente nell'associated token account dell'escrow, accreditando il saldo del canale dell'utente che effettua il deposito (o il saldo di un destinatario opzionale).
Account
| Account | Scrivibile | Firmatario | Descrizione |
|---|---|---|---|
payer | ✓ | ✓ | Pagante delle commissioni per la transazione |
user | ✓ | Proprietario del token che effettua il deposito | |
instance | PDA dell'istanza escrow | ||
mint | Mint del token SPL | ||
allowed_mint | PDA che verifica che il mint sia autorizzato su questa istanza | ||
user_ata | ✓ | Associated token account dell'utente (sorgente) | |
instance_ata | ✓ | Associated token account dell'escrow (destinazione) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA dell'autorità eventi per il CPI EmitEvent | ||
private_channel_escrow_program | Programma Escrow (auto-riferimento per CPI) |
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
amount | u64 | Quantità di token da depositare, nell'unità più piccola del token |
recipient | Option<Pubkey> | Destinatario on-chain opzionale; se None, accredita il saldo del canale dell'utente che effettua il deposito |
Valori restituiti
Restituisce un TransactionBuilder che può essere utilizzato per costruire e inviare la transazione.
Esempio
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});
Note importanti
- Program ID:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Per i mint Token-2022, passare esplicitamente
tokenProgram: TOKEN_2022_PROGRAM_ADDRESS, poiché il valore predefinito è il Token Program SPL standard - Il PDA
allowed_mintdeve esistere (creato daAllowMint); depositare un mint non elencato genera l'erroreInvalidAllowedMint - Quando
recipientèNone, viene accreditato il saldo del canale dell'utente che effettua il deposito; se fornito, viene accreditato il saldo del portafoglio specificato - Sia
payercheuserdevono firmare la transazione - L'
instance_atadeve già esistere (creato daAllowMintper questo mint)
Is this page helpful?