Атестації

Атестація представляє верифіковану заяву або твердження в системі атестації 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Безпечно отримує атестацію, повертає 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?