Atestacje

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 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;
};

Metody

Pobieranie atestacji

MetodaOpisParametryZwraca
fetchAttestationPobiera pojedynczą atestację według jej adresurpc: kontekst RPC, address: adres atestacji, config?: konfiguracja pobieraniaPromise<Account<Attestation>>
fetchMaybeAttestationBezpiecznie pobiera atestację, zwraca null jeśli nie znalezionorpc: kontekst RPC, address: adres atestacji, config?: konfiguracja pobieraniaPromise<MaybeAccount<Attestation>>
fetchAllAttestationPobiera wiele atestacji według ich adresówrpc: kontekst RPC, addresses: tablica adresów atestacji, config?: konfiguracja pobieraniaPromise<Account<Attestation>[]>
fetchAllMaybeAttestationBezpiecznie pobiera wiele atestacji, pomija nieznalezionerpc: kontekst RPC, addresses: tablica adresów atestacji, config?: konfiguracja pobieraniaPromise<MaybeAccount<Attestation>[]>

Serializacja

MetodaOpisParametryZwraca
getAttestationEncoderPobiera koder dla danych atestacjiBrakEncoder<AttestationArgs>
getAttestationDecoderPobiera dekoder dla danych atestacjiBrakDecoder<Attestation>
getAttestationCodecPobiera kodek dla danych atestacjiBrakCodec<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 discriminator jest używane wewnętrznie i nie powinno być modyfikowane
  • Pole nonce zapewnia unikalny identyfikator dla każdego poświadczenia
  • Pola credential i schema łączą poświadczenie z powiązanymi danymi uwierzytelniającymi i schematem
  • Pole data zawiera rzeczywiste dane poświadczenia i powinno być odpowiednio zakodowane/zdekodowane zgodnie ze schematem
  • signer musi być jednym z autoryzowanych sygnatariuszy powiązanych danych uwierzytelniających
  • expiry określa, kiedy poświadczenie staje się nieważne
  • tokenAccount łą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?

Spis treści

Edytuj stronę