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?

Содержание

Редактировать страницу