Yatırma

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

HesapYazılabilirİmzacıAçıklama
payer✓✓İşlem için ücret ödeyen
user✓Yatırımı yapan token sahibi
instanceEmanet örneği PDA
mintSPL token mint
allowed_mintMint'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_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authorityEmitEvent CPI için olay yetkisi PDA
private_channel_escrow_programEmanet Programı (CPI için öz-referans)

Parametreler

ParametreTürAçıklama
amountu64Yatırılacak token miktarı, tokenın en küçük birimi cinsinden
recipientOption<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 instance
const 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_ADDRESS parametresini açıkça belirtin
  • allowed_mint PDA'sının mevcut olması gerekir (AllowMint tarafından oluşturulur); listelenmeyen bir mint yatırılmaya çalışıldığında InvalidAllowedMint hatası fırlatılır
  • recipient None olduğunda yatırım yapan kullanıcının kanal bakiyesi güncellenir; belirtildiğinde ise ilgili cüzdanın bakiyesi güncellenir
  • Hem payer hem de user işlemi imzalamalıdır
  • instance_ata'nın önceden mevcut olması gerekir (bu mint için AllowMint tarafından oluşturulur)

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.