Un'attestazione rappresenta una dichiarazione o affermazione verificata nel Sistema di Attestazione Solana. Le attestazioni vengono create da firmatari autorizzati associati a una credenziale e seguono uno schema specifico. Ogni attestazione contiene i dati effettivi della dichiarazione e i metadati relativi alla sua creazione e validità.
Struttura
La struct Attestation rappresenta un'attestazione nel Sistema di Attestazione Solana. Ogni attestazione è collegata a una credenziale e a uno schema, e contiene i dati attestati insieme ai metadati relativi alla sua creazione e al periodo di validità.
Definizioni dei Tipi
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;};
Metodi
Recupero delle Attestazioni
| Metodo | Descrizione | Parametri | Restituisce |
|---|---|---|---|
fetchAttestation | Recupera una singola attestazione tramite il suo indirizzo | rpc: Contesto RPC, address: Indirizzo dell'attestazione, config?: Configurazione di recupero | Promise<Account<Attestation>> |
fetchMaybeAttestation | Recupera in modo sicuro un'attestazione, restituisce null se non trovata | rpc: Contesto RPC, address: Indirizzo dell'attestazione, config?: Configurazione di recupero | Promise<MaybeAccount<Attestation>> |
fetchAllAttestation | Recupera più attestazioni tramite i loro indirizzi | rpc: Contesto RPC, addresses: Array di indirizzi di attestazione, config?: Configurazione di recupero | Promise<Account<Attestation>[]> |
fetchAllMaybeAttestation | Recupera in modo sicuro più attestazioni, salta quelle non trovate | rpc: Contesto RPC, addresses: Array di indirizzi di attestazione, config?: Configurazione di recupero | Promise<MaybeAccount<Attestation>[]> |
Serializzazione
| Metodo | Descrizione | Parametri | Restituisce |
|---|---|---|---|
getAttestationEncoder | Ottiene l'encoder per i dati di attestazione | Nessuno | Encoder<AttestationArgs> |
getAttestationDecoder | Ottiene il decoder per i dati di attestazione | Nessuno | Decoder<Attestation> |
getAttestationCodec | Ottiene il codec per i dati di attestazione | Nessuno | Codec<AttestationArgs, Attestation> |
Esempi di Utilizzo
Recupero di una Singola Attestazione
const attestation = await fetchAttestation(rpc, attestationAddress);console.log("Attestation nonce:", attestation.nonce);
Recupero di Più Attestazioni
const attestations = await fetchAllAttestation(rpc, [attestation1Address,attestation2Address]);attestations.forEach((attestation) =>console.log("Attestation:", attestation.nonce));
Recupero Sicuro
const attestation = await fetchMaybeAttestation(rpc, attestationAddress);if (attestation) {console.log("Attestation found:", attestation.nonce);} else {console.log("Attestation not found");}
Note Importanti
- Il campo
discriminatorè utilizzato internamente e non deve essere modificato - Il campo
noncefornisce un identificatore univoco per ogni attestazione - I campi
credentialeschemacollegano l'attestazione alla credenziale e allo schema associati - Il campo
datacontiene i dati effettivi dell'attestazione e deve essere correttamente codificato/decodificato secondo lo schema signerdeve essere uno dei firmatari autorizzati della credenziale associataexpirydetermina quando l'attestazione diventa non validatokenAccountcollega l'attestazione a un token account specifico- Le attestazioni possono essere create solo dai firmatari autorizzati della credenziale associata
- I dati dell'attestazione devono conformarsi alla struttura definita dallo schema associato
Is this page helpful?