凭证代表 Solana 证明系统中的证明颁发机构。凭证定义了谁可以颁发证明以及可以颁发哪些类型的证明。每个凭证都有一组授权签名者,他们可以在其权限下创建证明。
结构
Credential 结构体代表 Solana 证明系统中的凭证。每个凭证定义了一个可以颁发证明的权限机构以及被授权执行此操作的签名者。
类型定义
Credential
export type Credential = {discriminator: number; // Internal discriminatorauthority: Address; // Authority public keyname: ReadonlyUint8Array; // Credential nameauthorizedSigners: Array<Address>; // List of authorized signers};
方法
获取凭证
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
fetchCredential | 通过地址获取单个凭证 | rpc: RPC 上下文, address: 凭证地址, config?: 获取配置 | Promise<Account<Credential>> |
fetchMaybeCredential | 安全地获取凭证,如果未找到则返回 null | rpc: 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?