SPL tokenlarını kullanıcının associated token account'undan emanet hesabının associated token account'una aktarır ve yatırım yapan kullanıcının kanal bakiyesini (veya isteğe bağlı bir alıcının bakiyesini) günceller.
Hesaplar
| Hesap | Yazılabilir | İmzacı | Açıklama |
|---|---|---|---|
payer | ✓ | ✓ | İşlem için ücret ödeyen |
user | ✓ | Yatırımı yapan token sahibi | |
instance | Emanet örneği PDA | ||
mint | SPL token mint | ||
allowed_mint | Mint'in bu örnek üzerinde izinli olduğunu doğrulayan PDA | ||
user_ata | ✓ | Kullanıcının associated token account'u (kaynak) | |
instance_ata | ✓ | Emanet hesabının associated token account'u (hedef) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | EmitEvent CPI için olay yetkisi PDA | ||
private_channel_escrow_program | Emanet Programı (CPI için öz-referans) |
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
amount | u64 | Yatırılacak token miktarı, tokenın en küçük birimi cinsinden |
recipient | Option<Pubkey> | İsteğe bağlı zincir üstü alıcı; None ise yatırım yapan kullanıcının kanal bakiyesi güncellenir |
Dönüş Değeri
İşlemi oluşturmak ve göndermek için kullanılabilecek bir TransactionBuilder döndürür.
Örnek
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});
Önemli Notlar
- Program ID:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Token-2022 mint'leri için, varsayılan olarak standart SPL Token Program kullanıldığından
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSparametresini açıkça belirtin allowed_mintPDA'sının mevcut olması gerekir (AllowMinttarafından oluşturulur); listelenmeyen bir mint yatırılmaya çalışıldığındaInvalidAllowedMinthatası fırlatılırrecipientNoneolduğunda yatırım yapan kullanıcının kanal bakiyesi güncellenir; belirtildiğinde ise ilgili cüzdanın bakiyesi güncellenir- Hem
payerhem deuserişlemi imzalamalıdır instance_ata'nın önceden mevcut olması gerekir (bu mint içinAllowMinttarafından oluşturulur)
Is this page helpful?