Ένα διαπιστευτήριο αντιπροσωπεύει μια αρχή επικύρωσης στο Σύστημα Επικύρωσης Solana. Τα διαπιστευτήρια ορίζουν ποιος μπορεί να εκδώσει επικυρώσεις και τι τύπους επικυρώσεων μπορεί να εκδώσει. Κάθε διαπιστευτήριο διαθέτει ένα σύνολο εξουσιοδοτημένων υπογραφόντων που μπορούν να δημιουργήσουν επικυρώσεις υπό την αρχή του.
Δομή
Η δομή Credential αντιπροσωπεύει ένα διαπιστευτήριο στο Σύστημα Επικύρωσης Solana. Κάθε διαπιστευτήριο ορίζει μια αρχή που μπορεί να εκδώσει επικυρώσεις και τους υπογράφοντες που είναι εξουσιοδοτημένοι να το πράξουν.
Ορισμοί Τύπων
Credential
export type Credential = {discriminator: number; // Internal discriminatorauthority: Address; // Authority public keyname: ReadonlyUint8Array; // Credential nameauthorizedSigners: Array<Address>; // List of authorized signers};
Μέθοδοι
Ανάκτηση Διαπιστευτηρίων
| Μέθοδος | Περιγραφή | Παράμετροι | Επιστρέφει |
|---|---|---|---|
fetchCredential | Ανακτά ένα μεμονωμένο διαπιστευτήριο με βάση τη διεύθυνσή του | rpc: Πλαίσιο RPC, address: Διεύθυνση διαπιστευτηρίου, config?: Διαμόρφωση ανάκτησης | Promise<Account<Credential>> |
fetchMaybeCredential | Ανακτά με ασφάλεια ένα διαπιστευτήριο, επιστρέφει null αν δεν βρεθεί | rpc: Πλαίσιο RPC, address: Διεύθυνση διαπιστευτηρίου, config?: Διαμόρφωση ανάκτησης | Promise<MaybeAccount<Credential>> |
fetchAllCredential | Ανακτά πολλαπλά διαπιστευτήρια με βάση τις διευθύνσεις τους | rpc: Πλαίσιο RPC, addresses: Πίνακας διευθύνσεων διαπιστευτηρίων, config?: Διαμόρφωση ανάκτησης | Promise<Account<Credential>[]> |
fetchAllMaybeCredential | Ανακτά με ασφάλεια πολλαπλά διαπιστευτήρια, παραλείπει τα μη εύρεθέντα | rpc: Πλαίσιο RPC, addresses: Πίνακας διευθύνσεων διαπιστευτηρίων, config?: Διαμόρφωση ανάκτησης | Promise<MaybeAccount<Credential>[]> |
Σειριοποίηση
| Μέθοδος | Περιγραφή | Παράμετροι | Επιστρέφει |
|---|---|---|---|
getCredentialEncoder | Λαμβάνει τον κωδικοποιητή για δεδομένα διαπιστευτηρίου | Καμία | Encoder<CredentialArgs> |
getCredentialDecoder | Λαμβάνει τον αποκωδικοποιητή για δεδομένα διαπιστευτηρίου | Καμία | Decoder<Credential> |
getCredentialCodec | Λαμβάνει τον κωδικοποιητή-αποκωδικοποιητή για δεδομένα διαπιστευτηρίου | Καμία | Codec<CredentialArgs, Credential> |
Παραδείγματα Χρήσης
Ανάκτηση Ενός Διαπιστευτηρίου
const credential = await fetchCredential(rpc, credentialAddress);console.log("Credential name:", credential.name);
Ανάκτηση Πολλαπλών Διαπιστευτηρίων
const credentials = await fetchAllCredential(rpc, [credential1Address,credential2Address]);credentials.forEach((credential) =>console.log("Credential:", credential.name));
Ασφαλής Ανάκτηση
const credential = await fetchMaybeCredential(rpc, credentialAddress);if (credential) {console.log("Credential found:", credential.name);} else {console.log("Credential not found");}
Σημαντικές Σημειώσεις
- Το πεδίο
discriminatorχρησιμοποιείται εσωτερικά και δεν πρέπει να τροποποιηθεί - Το πεδίο
authorityκαθορίζει ποιος έχει τον έλεγχο του διαπιστευτηρίου - Το
authorizedSignersείναι ένας πίνακας διευθύνσεων που επιτρέπεται να δημιουργήσουν βεβαιώσεις υπό αυτό το διαπιστευτήριο - Το πεδίο
nameαποθηκεύεται ως πίνακας bytes και πρέπει να κωδικοποιείται/ αποκωδικοποιείται σωστά σύμφωνα με τις ανάγκες της εφαρμογής σας - Μόνο εξουσιοδοτημένοι υπογράφοντες μπορούν να δημιουργήσουν βεβαιώσεις υπό ένα διαπιστευτήριο
- Η αρχή μπορεί να τροποποιήσει τη λίστα των εξουσιοδοτημένων υπογραφόντων
Is this page helpful?