AllowMint

允许在实例上使用某个 SPL 代币铸造账户,并为该铸造账户创建托管的 associated token account。完成此调用后,即可对该铸造账户进行存款操作。

账户

账户可写签名者描述
payer✓✓手续费支付方
admin✓实例管理员
instance实例 PDA
mint待允许的 SPL 代币铸造账户
allowed_mint✓AllowedMint PDA(由本指令创建)
instance_ata✓该铸造账户对应的托管 associated token account(由本指令创建)
system_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authority事件权限 PDA
private_channel_escrow_program托管程序

参数

参数类型描述
bumpu8allowed_mint PDA 的 bump seed。可选:若未传入,Async 客户端将自动推导

IDL 中包含一个 discriminator: u8 参数(值为 1),由生成的客户端自动设置, 请勿手动传入。

重要说明

  • 请使用 getAllowMintInstructionAsync;当未提供 bump、allowed_mint 和 instance_ata 时,该函数会自动推导这些值。仅在已通过 Pubkey::find_program_address(&[b"allowed_mint", instance_pda, mint], &PROGRAM_ID) 自行计算的情况下,才需手动传入 bump
  • 同时创建 instance_ata,即该铸造账户对应的托管 ATA
  • 带有 transfer hook 扩展的铸造账户将被明确阻止:尝试允许此类铸造账户将抛出 TransferHookNotAllowed 错误
  • 通过 EmitEvent CPI 触发事件

Is this page helpful?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有