إيداع

ينقل رموز SPL من associated token account الخاص بالمستخدم إلى associated token account الخاص بالضمان، مع إضافة قيمة الإيداع إلى رصيد قناة المستخدم المودِع (أو رصيد المستلم الاختياري).

الحسابات

الحسابقابل للكتابةموقِّعالوصف
payer✓✓دافع رسوم المعاملة
user✓مالك الرمز الذي يجري الإيداع
instancePDA نسخة الضمان
mintعنوان إصدار رمز SPL
allowed_mintPDA للتحقق من أن عنوان الإصدار مسموح به في هذه النسخة
user_ata✓associated token account الخاص بالمستخدم (المصدر)
instance_ata✓associated token account الخاص بالضمان (الوجهة)
system_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authorityPDA سلطة الأحداث لـ EmitEvent CPI
private_channel_escrow_programبرنامج الضمان (مرجع ذاتي لـ CPI)

المعاملات

المعاملالنوعالوصف
amountu64كمية الرموز المراد إيداعها، بأصغر وحدة للرمز
recipientOption<Pubkey>مستلم اختياري على السلسلة؛ في حال كانت القيمة None، يُضاف الرصيد إلى قناة المستخدم المودِع

القيمة المُعادة

تُعيد TransactionBuilder يمكن استخدامه لبناء المعاملة وإرسالها.

مثال

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

ملاحظات مهمة

  • معرّف البرنامج: 9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU
  • بالنسبة لعناوين إصدار Token-2022، يجب تمرير tokenProgram: TOKEN_2022_PROGRAM_ADDRESS صراحةً، نظرًا لأن القيمة الافتراضية هي SPL Token Program القياسي
  • يجب أن يكون allowed_mint PDA موجودًا (تم إنشاؤه بواسطة AllowMint)؛ إيداع عنوان إصدار غير مدرج يُطلق الخطأ InvalidAllowedMint
  • عند تعيين recipient على None، يُضاف الرصيد إلى قناة المستخدم المودِع؛ وعند تحديده، يُضاف الرصيد إلى المحفظة المحددة بدلاً من ذلك
  • يجب على كلٍّ من payer وuser توقيع المعاملة
  • يجب أن يكون instance_ata موجودًا مسبقًا (تم إنشاؤه بواسطة AllowMint لعنوان الإصدار هذا)

Is this page helpful?

جدول المحتويات

تعديل الصفحة