创建锚定托管的 Instance PDA。必须在任何其他操作之前调用。
PDA Seeds
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 | ✓ | 仅用于 PDA 派生的一次性 keypair;其 pubkey 将作为 seed | |
instance | ✓ | Instance PDA(由 ["instance", instance_seed.pubkey] 派生) | |
system_program | System Program | ||
event_authority | 事件授权 PDA | ||
private_channel_escrow_program | 托管程序 |
参数
| 参数 | 类型 | 描述 |
|---|---|---|
bump | u8 | 实例 PDA 的 bump seed。可选:若未提供,Async 客户端将自动派生 |
IDL 包含一个
discriminator: u8参数(值为0),由生成的客户端自动设置, 无需手动传入。
重要说明
instance_seed是一个一次性 keypair,仅用于派生InstancePDA。其 pubkey 将作为 seed;keypair 本身不会被存储或重复使用。- 请使用
getCreateInstanceInstructionAsync;当未提供bump和instance时,它将自动从instance_seed派生。仅当您已通过Pubkey::find_program_address(&[b"instance", instance_seed_pubkey.as_ref()], &PROGRAM_ID)自行计算时,才需手动传入bump。 - 通过
EmitEventCPI 触发事件
Is this page helpful?