Создаёт 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_program | System Program | ||
event_authority | PDA авторизации событий | ||
private_channel_escrow_program | Программа эскроу |
Параметры
| Параметр | Тип | Описание |
|---|---|---|
bump | u8 | bump seed для Instance PDA. Необязательный: клиент Async автоматически вычисляет его, если не указан |
IDL содержит аргумент
discriminator: u8(значение0), который автоматически устанавливается сгенерированным клиентом и не должен передаваться вручную.
Важные замечания
instance_seed— одноразовый keypair, используемый только для деривацииInstancePDA. Его pubkey становится seed; сам keypair не сохраняется и не используется повторно.- Используйте
getCreateInstanceInstructionAsync; он автоматически выводитbumpиinstanceизinstance_seed, если они не указаны. Передавайте собственныйbumpтолько в том случае, если вы уже вычислили его черезPubkey::find_program_address(&[b"instance", instance_seed_pubkey.as_ref()], &PROGRAM_ID) - Генерирует событие через
EmitEventCPI
Is this page helpful?