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
| Conta | Gravável | Signatário | Descrição |
|---|---|---|---|
payer | ✓ | ✓ | Pagador de taxas da transação |
user | ✓ | Proprietário do token que efetua o depósito | |
instance | PDA da instância de escrow | ||
mint | Mint de token SPL | ||
allowed_mint | PDA 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_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA de autoridade de evento para CPI EmitEvent | ||
private_channel_escrow_program | Programa de Escrow (auto-referência para CPI) |
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
amount | u64 | Quantidade de tokens a depositar, na menor unidade do token |
recipient | Option<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 instanceconst 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_ADDRESSexplicitamente, pois o padrão é o SPL Token Program standard - O PDA
allowed_mintdeve existir (criado porAllowMint); depositar um mint não listado lançaInvalidAllowedMint - 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
payercomouserdevem assinar a transação - O
instance_atajá deve existir (criado porAllowMintpara este mint)
Is this page helpful?