凭证

凭证代表 Solana 证明系统中的证明颁发机构。凭证定义了谁可以颁发证明以及可以颁发哪些类型的证明。每个凭证都有一组授权签名者,他们可以在其权限下创建证明。

结构

Credential 结构体代表 Solana 证明系统中的凭证。每个凭证定义了一个可以颁发证明的权限机构以及被授权执行此操作的签名者。

类型定义

Credential

export type Credential = {
discriminator: number; // Internal discriminator
authority: Address; // Authority public key
name: ReadonlyUint8Array; // Credential name
authorizedSigners: Array<Address>; // List of authorized signers
};

方法

获取凭证

方法描述参数返回值
fetchCredential通过地址获取单个凭证rpc: RPC 上下文, address: 凭证地址, config?: 获取配置Promise<Account<Credential>>
fetchMaybeCredential安全地获取凭证,如果未找到则返回 nullrpc: RPC 上下文, address: 凭证地址, config?: 获取配置Promise<MaybeAccount<Credential>>
fetchAllCredential通过地址获取多个凭证rpc: RPC 上下文, addresses: 凭证地址数组, config?: 获取配置Promise<Account<Credential>[]>
fetchAllMaybeCredential安全地获取多个凭证,跳过未找到的凭证rpc: RPC 上下文, addresses: 凭证地址数组, config?: 获取配置Promise<MaybeAccount<Credential>[]>

序列化

方法描述参数返回值
getCredentialEncoder获取凭证数据的编码器Encoder<CredentialArgs>
getCredentialDecoder获取凭证数据的解码器Decoder<Credential>
getCredentialCodec获取凭证数据的编解码器Codec<CredentialArgs, Credential>

使用示例

获取单个凭证

const credential = await fetchCredential(rpc, credentialAddress);
console.log("Credential name:", credential.name);

获取多个凭证

const credentials = await fetchAllCredential(rpc, [
credential1Address,
credential2Address
]);
credentials.forEach((credential) =>
console.log("Credential:", credential.name)
);

安全获取

const credential = await fetchMaybeCredential(rpc, credentialAddress);
if (credential) {
console.log("Credential found:", credential.name);
} else {
console.log("Credential not found");
}

重要说明

  • discriminator 字段供内部使用,不应修改
  • authority 字段决定谁对凭证拥有控制权
  • authorizedSigners 是一个地址数组,包含被允许在此凭证下创建证明的地址
  • name 字段以字节数组形式存储,应根据您应用程序的需求进行正确的编码/解码
  • 只有授权签名者可以在凭证下创建证明
  • 权限拥有者可以修改授权签名者列表

Is this page helpful?

Table of Contents

Edit Page

管理者

©️ 2026 Solana 基金会版权所有
取得联系