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