证明代表 Solana 证明系统中的已验证声明或陈述。证明由凭证下的授权签名者创建,并遵循特定的模式。每个证明都包含声明的实际数据以及有关其创建和有效性的元数据。
结构
Attestation 结构体代表 Solana 证明系统中的一个证明。每个证明都链接到一个凭证和模式,并包含已证明的数据以及有关其创建和有效期的元数据。
类型定义
Attestation
export type Attestation = {discriminator: number; // Internal discriminatornonce: Address; // Unique identifier for the attestationcredential: Address; // Associated credential addressschema: Address; // Associated schema addressdata: ReadonlyUint8Array; // Attestation datasigner: Address; // Address of the signer who created the attestationexpiry: bigint; // Expiration timestamptokenAccount: Address; // Associated token account};
AttestationArgs
export type AttestationArgs = {discriminator: number;nonce: Address;credential: Address;schema: Address;data: ReadonlyUint8Array;signer: Address;expiry: number | bigint; // Can be either number or biginttokenAccount: Address;};
方法
获取证明
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
fetchAttestation | 通过地址获取单个证明 | rpc: RPC 上下文, address: 证明地址, config?: 获取配置 | Promise<Account<Attestation>> |
fetchMaybeAttestation | 安全获取证明,如果未找到则返回 null | rpc: RPC 上下文, address: 证明地址, config?: 获取配置 | Promise<MaybeAccount<Attestation>> |
fetchAllAttestation | 通过地址获取多个证明 | rpc: RPC 上下文, addresses: 证明地址数组, config?: 获取配置 | Promise<Account<Attestation>[]> |
fetchAllMaybeAttestation | 安全获取多个证明,跳过未找到的项 | rpc: RPC 上下文, addresses: 证明地址数组, config?: 获取配置 | Promise<MaybeAccount<Attestation>[]> |
序列化
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
getAttestationEncoder | 获取证明数据的编码器 | 无 | Encoder<AttestationArgs> |
getAttestationDecoder | 获取证明数据的解码器 | 无 | Decoder<Attestation> |
getAttestationCodec | 获取证明数据的编解码器 | 无 | Codec<AttestationArgs, Attestation> |
使用示例
获取单个证明
const attestation = await fetchAttestation(rpc, attestationAddress);console.log("Attestation nonce:", attestation.nonce);
获取多个证明
const attestations = await fetchAllAttestation(rpc, [attestation1Address,attestation2Address]);attestations.forEach((attestation) =>console.log("Attestation:", attestation.nonce));
安全获取
const attestation = await fetchMaybeAttestation(rpc, attestationAddress);if (attestation) {console.log("Attestation found:", attestation.nonce);} else {console.log("Attestation not found");}
重要说明
discriminator字段供内部使用,不应修改nonce为每个证明提供唯一标识符credential和schema字段将证明链接到其关联的凭证和模式data字段包含实际的证明数据,应根据模式正确编码/解码signer必须是关联凭证的授权签名者之一expiry确定证明何时失效tokenAccount将证明链接到特定的 token account- 证明只能由关联凭证的授权签名者创建
- 证明数据必须符合关联模式定义的结构
Is this page helpful?