Transfiere tokens SPL desde el associated token account del usuario al associated token account del depósito en garantía, acreditando el saldo del canal del usuario que realiza el depósito (o el saldo de un destinatario opcional).
Cuentas
| Cuenta | Escribible | Firmante | Descripción |
|---|---|---|---|
payer | ✓ | ✓ | Pagador de comisiones de la transacción |
user | ✓ | Propietario del token que realiza el depósito | |
instance | PDA de la instancia de depósito en garantía | ||
mint | Mint del token SPL | ||
allowed_mint | PDA que verifica que el mint está permitido en esta instancia | ||
user_ata | ✓ | Associated token account del usuario (origen) | |
instance_ata | ✓ | Associated token account del depósito en garantía (destino) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA de autoridad de eventos para CPI de EmitEvent | ||
private_channel_escrow_program | Programa de depósito en garantía (autoreferencia para CPI) |
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
amount | u64 | Cantidad de tokens a depositar, en la unidad mínima del token |
recipient | Option<Pubkey> | Destinatario on-chain opcional; si es None, acredita el saldo del canal del usuario que realiza el depósito |
Retorno
Retorna un TransactionBuilder que puede utilizarse para construir y enviar la
transacción.
Ejemplo
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});
Notas importantes
- ID del programa:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Para mints Token-2022, pasa
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSde forma explícita, ya que por defecto utiliza el SPL Token Program estándar - El PDA
allowed_mintdebe existir (creado porAllowMint); depositar un mint no registrado lanzaInvalidAllowedMint - Cuando
recipientesNone, se acredita el saldo del canal del usuario que realiza el depósito; cuando se proporciona, se acredita el saldo de la billetera especificada - Tanto
payercomouserdeben firmar la transacción - El
instance_atadebe existir previamente (creado porAllowMintpara este mint)
Is this page helpful?