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