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
| Konto | Zapisywalne | Podpisujący | Opis |
|---|---|---|---|
payer | ✓ | ✓ | Płatnik opłat za transakcję |
user | ✓ | Właściciel tokena dokonujący wpłaty | |
instance | PDA instancji escrow | ||
mint | Mint tokena SPL | ||
allowed_mint | PDA 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_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA autorytetu zdarzeń dla CPI EmitEvent | ||
private_channel_escrow_program | Program escrow (autoreferencja dla CPI) |
Parametry
| Parametr | Typ | Opis |
|---|---|---|
amount | u64 | Kwota tokenów do wpłaty, w najmniejszej jednostce tokena |
recipient | Option<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 instanceconst 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_mintmusi istnieć (utworzony przezAllowMint); wpłata nieobsługiwanego minta zgłasza błądInvalidAllowedMint - Gdy
recipientwynosiNone, 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 iusermuszą podpisać transakcję instance_atamusi już istnieć (utworzony przezAllowMintdla tego minta)
Is this page helpful?