CreateInstance

エスクローを固定する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_programSystem Program
event_authorityイベントオーソリティPDA
private_channel_escrow_programエスクロープログラム

パラメータ

パラメータ型説明
bumpu8インスタンスPDAのbump seed。省略可能:Asyncクライアントは省略時に自動導出します

IDLにはdiscriminator: u8引数(値0)が含まれており、生成されたクライアントによって自動設定されます。手動で渡さないでください。

重要な注意事項

  • instance_seedは使い捨てのkeypairであり、Instance PDAの導出のみに使用されます。そのpubkeyがseedになりますが、keypair自体は保存も再利用もされません。
  • getCreateInstanceInstructionAsyncを使用してください。instance_seedからbumpとinstanceが未指定の場合に自動導出されます。bumpを独自に渡すのは、Pubkey::find_program_address(&[b"instance", instance_seed_pubkey.as_ref()], &PROGRAM_ID)で事前に計算済みの場合のみにしてください
  • EmitEvent CPIを通じてイベントを発行します

Is this page helpful?

目次

ページを編集
© 2026 Solana Foundation. 無断転載を禁じます。