程序 IDL 文件
了解 Anchor 中的接口描述语言 (IDL) 文件,它的 目的、优点,以及如何简化程序与客户端的交互。
Anchor 程序的接口描述语言 (IDL) 文件提供了一个 标准化的 JSON 文件,用于描述程序的指令和账户。此 文件简化了将您的链上程序与客户端应用程序集成的过程。
IDL 的主要优点:
- 标准化:提供了一致的格式来描述程序的 指令和账户
- 客户端生成:用于生成与程序交互的客户端代码
anchor build
命令生成位于
/target/idl/<program-name>.json
的 IDL 文件。
以下部分的代码片段突出了程序、IDL 和客户端之间的关系。
程序指令
IDL 中的 instructions
数组直接对应于您程序中定义的指令。它指定了每个指令所需的账户和参数。
下面的程序包含一个 initialize
指令,指定了其所需的账户
和参数。
程序账户
IDL 中的 accounts
数组对应于程序中用 #[account]
属性标注的结构体。这些结构体定义了程序创建的账户中存储的数据。
下面的程序定义了一个 NewAccount
结构体,其中包含一个类型为 u64
的 data
字段。
标识符
Anchor 为程序中的每个指令和账户类型分配一个唯一的 8 字节标识符。这些标识符作为标识符,帮助区分不同的指令或账户类型。
标识符是通过将指令或账户名称与前缀结合后,计算其 Sha256 哈希的前 8 个字节生成的。从 Anchor v0.30 开始,这些标识符被包含在 IDL 文件中。
请注意,在使用 Anchor 时,您通常不需要直接处理 这些标识符。本节主要提供关于标识符如何生成和使用的背景信息。