Wpłata

Przesyła tokeny SPL z associated token account użytkownika do associated token account escrow, zapisując saldo kanału użytkownika dokonującego wpłaty (lub opcjonalnego odbiorcy) na jego koncie.

Konta

KontoZapisywalnePodpisującyOpis
payer✓✓Płatnik opłat za transakcję
user✓Właściciel tokena dokonujący wpłaty
instancePDA instancji escrow
mintMint tokena SPL
allowed_mintPDA weryfikujący, że mint jest dozwolony w tej instancji
user_ata✓Associated token account użytkownika (źródło)
instance_ata✓Associated token account escrow (cel)
system_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authorityPDA autorytetu zdarzeń dla CPI EmitEvent
private_channel_escrow_programProgram escrow (autoreferencja dla CPI)

Parametry

ParametrTypOpis
amountu64Kwota tokenów do wpłaty, w najmniejszej jednostce tokena
recipientOption<Pubkey>Opcjonalny odbiorca on-chain; jeśli None, saldo kanału użytkownika dokonującego wpłaty jest zasilane

Zwraca

Zwraca TransactionBuilder, którego można użyć do zbudowania i wysłania transakcji.

Przykład

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
});

Ważne uwagi

  • ID programu: 9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU
  • W przypadku mintów Token-2022 należy jawnie podać tokenProgram: TOKEN_2022_PROGRAM_ADDRESS, ponieważ domyślnie używany jest standardowy SPL Token Program
  • PDA allowed_mint musi istnieć (utworzony przez AllowMint); wpłata nieobsługiwanego minta zgłasza błąd InvalidAllowedMint
  • Gdy recipient wynosi None, saldo kanału użytkownika dokonującego wpłaty jest zasilane; gdy jest podany, saldo wskazanego portfela jest zasilane zamiast tego
  • Zarówno payer, jak i user muszą podpisać transakcję
  • instance_ata musi już istnieć (utworzony przez AllowMint dla tego minta)

Is this page helpful?

Spis treści

Edytuj stronę