CreateInstance

Створює Instance PDA, що є основою ескроу. Має бути викликано перед будь-якою іншою операцією.

Seeds для 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_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?

Зміст

Редагувати сторінку