Atestacja reprezentuje zweryfikowane oświadczenie lub stwierdzenie w systemie atestacji Solana. Atestacje są tworzone przez autoryzowanych podpisujących w ramach uwierzytelnienia i podlegają określonemu schematowi. Każda atestacja zawiera rzeczywiste dane oświadczenia oraz metadane dotyczące jej utworzenia i ważności.
Struktura
Struktura Attestation reprezentuje atestację w systemie atestacji Solana. Każda atestacja jest powiązana z uwierzytelnieniem, schematem i zawiera atestowane dane wraz z metadanymi dotyczącymi jej utworzenia oraz okresu ważności.
Definicje typów
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;};
Metody
Pobieranie atestacji
| Metoda | Opis | Parametry | Zwraca |
|---|---|---|---|
fetchAttestation | Pobiera pojedynczą atestację według jej adresu | rpc: kontekst RPC, address: adres atestacji, config?: konfiguracja pobierania | Promise<Account<Attestation>> |
fetchMaybeAttestation | Bezpiecznie pobiera atestację, zwraca null jeśli nie znaleziono | rpc: kontekst RPC, address: adres atestacji, config?: konfiguracja pobierania | Promise<MaybeAccount<Attestation>> |
fetchAllAttestation | Pobiera wiele atestacji według ich adresów | rpc: kontekst RPC, addresses: tablica adresów atestacji, config?: konfiguracja pobierania | Promise<Account<Attestation>[]> |
fetchAllMaybeAttestation | Bezpiecznie pobiera wiele atestacji, pomija nieznalezione | rpc: kontekst RPC, addresses: tablica adresów atestacji, config?: konfiguracja pobierania | Promise<MaybeAccount<Attestation>[]> |
Serializacja
| Metoda | Opis | Parametry | Zwraca |
|---|---|---|---|
getAttestationEncoder | Pobiera koder dla danych atestacji | Brak | Encoder<AttestationArgs> |
getAttestationDecoder | Pobiera dekoder dla danych atestacji | Brak | Decoder<Attestation> |
getAttestationCodec | Pobiera kodek dla danych atestacji | Brak | Codec<AttestationArgs, Attestation> |
Przykłady użycia
Pobieranie pojedynczego poświadczenia
const attestation = await fetchAttestation(rpc, attestationAddress);console.log("Attestation nonce:", attestation.nonce);
Pobieranie wielu poświadczeń
const attestations = await fetchAllAttestation(rpc, [attestation1Address,attestation2Address]);attestations.forEach((attestation) =>console.log("Attestation:", attestation.nonce));
Bezpieczne pobieranie
const attestation = await fetchMaybeAttestation(rpc, attestationAddress);if (attestation) {console.log("Attestation found:", attestation.nonce);} else {console.log("Attestation not found");}
Ważne uwagi
- Pole
discriminatorjest używane wewnętrznie i nie powinno być modyfikowane - Pole
noncezapewnia unikalny identyfikator dla każdego poświadczenia - Pola
credentialischemałączą poświadczenie z powiązanymi danymi uwierzytelniającymi i schematem - Pole
datazawiera rzeczywiste dane poświadczenia i powinno być odpowiednio zakodowane/zdekodowane zgodnie ze schematem signermusi być jednym z autoryzowanych sygnatariuszy powiązanych danych uwierzytelniającychexpiryokreśla, kiedy poświadczenie staje się nieważnetokenAccountłączy poświadczenie z konkretnym kontem tokenów- Poświadczenia mogą być tworzone tylko przez autoryzowanych sygnatariuszy powiązanych danych uwierzytelniających
- Dane poświadczenia muszą być zgodne ze strukturą zdefiniowaną przez powiązany schemat
Is this page helpful?