证明

证明代表 Solana 证明系统中的已验证声明或陈述。证明由凭证下的授权签名者创建,并遵循特定的模式。每个证明都包含声明的实际数据以及有关其创建和有效性的元数据。

结构

Attestation 结构体代表 Solana 证明系统中的一个证明。每个证明都链接到一个凭证和模式,并包含已证明的数据以及有关其创建和有效期的元数据。

类型定义

Attestation

export type Attestation = {
discriminator: number; // Internal discriminator
nonce: Address; // Unique identifier for the attestation
credential: Address; // Associated credential address
schema: Address; // Associated schema address
data: ReadonlyUint8Array; // Attestation data
signer: Address; // Address of the signer who created the attestation
expiry: bigint; // Expiration timestamp
tokenAccount: 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 bigint
tokenAccount: Address;
};

方法

获取证明

方法描述参数返回值
fetchAttestation通过地址获取单个证明rpc: RPC 上下文, address: 证明地址, config?: 获取配置Promise<Account<Attestation>>
fetchMaybeAttestation安全获取证明,如果未找到则返回 nullrpc: 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 为每个证明提供唯一标识符
  • credentialschema 字段将证明链接到其关联的凭证和模式
  • data 字段包含实际的证明数据,应根据模式正确编码/解码
  • signer 必须是关联凭证的授权签名者之一
  • expiry 确定证明何时失效
  • tokenAccount 将证明链接到特定的 token account
  • 证明只能由关联凭证的授权签名者创建
  • 证明数据必须符合关联模式定义的结构

Is this page helpful?

Table of Contents

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