Аттестации

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