CreateInstance

ينشئ Instance PDA الذي يربط الضمان. يجب استدعاؤه قبل أي عملية أخرى.

بذور PDA

instance -> ["instance", instance_seed: Pubkey]
allowed_mint -> ["allowed_mint", instance_pda: Pubkey, mint: Pubkey]
operator -> ["operator", instance_pda: Pubkey, operator: Pubkey]
event_authority -> ["event_authority"]

الحسابات

الحسابقابل للكتابةموقِّعالوصف
payer✓✓دافع الرسوم ودافع rent
admin✓المشرف الأولي للـ instance
instance_seed✓keypair مؤقت يُستخدم فقط لاشتقاق PDA؛ يصبح pubkey الخاص به هو seed
instance✓Instance PDA (مشتق من ["instance", instance_seed.pubkey])
system_programSystem Program
event_authorityPDA صلاحية الأحداث
private_channel_escrow_programبرنامج الضمان

المعاملات

المعاملالنوعالوصف
bumpu8bump seed الخاص بـ instance PDA. اختياري: يشتقه العميل Async تلقائيًا إذا لم يُحدَّد

يحتوي IDL على وسيطة discriminator: u8 (القيمة 0) يتم ضبطها تلقائيًا بواسطة العميل المُولَّد ولا ينبغي تمريرها يدويًا.

ملاحظات مهمة

  • instance_seed هو keypair مؤقت، يُستخدم فقط لاشتقاق Instance PDA. يصبح pubkey الخاص به هو seed؛ ولا يتم تخزين keypair نفسه أو إعادة استخدامه.
  • استخدم getCreateInstanceInstructionAsync؛ فهو يشتق bump وinstance تلقائيًا من instance_seed عندما لا يتم توفيرهما. مرِّر bump الخاص بك فقط إذا حسبته مسبقًا عبر Pubkey::find_program_address(&[b"instance", instance_seed_pubkey.as_ref()], &PROGRAM_ID)
  • يُصدر حدثًا عبر EmitEvent CPI

Is this page helpful?

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

تعديل الصفحة