Depósito

Transfere tokens SPL do associated token account do utilizador para o associated token account do escrow, creditando o saldo do canal do utilizador que efetuou o depósito (ou o saldo de um destinatário opcional).

Contas

ContaGravávelSignatárioDescrição
payer✓✓Pagador de taxas da transação
user✓Proprietário do token que efetua o depósito
instancePDA da instância de escrow
mintMint de token SPL
allowed_mintPDA que verifica se o mint é permitido nesta instância
user_ata✓associated token account do utilizador (origem)
instance_ata✓associated token account do escrow (destino)
system_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authorityPDA de autoridade de evento para CPI EmitEvent
private_channel_escrow_programPrograma de Escrow (auto-referência para CPI)

Parâmetros

ParâmetroTipoDescrição
amountu64Quantidade de tokens a depositar, na menor unidade do token
recipientOption<Pubkey>Destinatário on-chain opcional; se None, credita o saldo do canal do utilizador que efetuou o depósito

Retorno

Retorna um TransactionBuilder que pode ser utilizado para construir e enviar a transação.

Exemplo

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 do Programa: 9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU
  • Para mints Token-2022, passe tokenProgram: TOKEN_2022_PROGRAM_ADDRESS explicitamente, pois o padrão é o SPL Token Program standard
  • O PDA allowed_mint deve existir (criado por AllowMint); depositar um mint não listado lança InvalidAllowedMint
  • Quando recipient é None, o saldo do canal do utilizador que efetuou o depósito é creditado; quando fornecido, o saldo da carteira especificada é creditado em seu lugar
  • Tanto payer como user devem assinar a transação
  • O instance_ata já deve existir (criado por AllowMint para este mint)

Is this page helpful?

Índice

Editar Página
© 2026 Fundação Solana. Todos os direitos reservados.