Створює 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?