エスクローを固定する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を使用してください。instance_seedからbumpとinstanceが未指定の場合に自動導出されます。bumpを独自に渡すのは、Pubkey::find_program_address(&[b"instance", instance_seed_pubkey.as_ref()], &PROGRAM_ID)で事前に計算済みの場合のみにしてくださいEmitEventCPIを通じてイベントを発行します
Is this page helpful?