Depósito

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

CuentaEscribibleFirmanteDescripción
payer✓✓Pagador de comisiones de la transacción
user✓Propietario del token que realiza el depósito
instancePDA de la instancia de depósito en garantía
mintMint del token SPL
allowed_mintPDA 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_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authorityPDA de autoridad de eventos para CPI de EmitEvent
private_channel_escrow_programPrograma de depósito en garantía (autoreferencia para CPI)

Parámetros

ParámetroTipoDescripción
amountu64Cantidad de tokens a depositar, en la unidad mínima del token
recipientOption<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 instance
const 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_ADDRESS de forma explícita, ya que por defecto utiliza el SPL Token Program estándar
  • El PDA allowed_mint debe existir (creado por AllowMint); depositar un mint no registrado lanza InvalidAllowedMint
  • Cuando recipient es None, 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 payer como user deben firmar la transacción
  • El instance_ata debe existir previamente (creado por AllowMint para este mint)

Is this page helpful?

Tabla de Contenidos

Editar Página