Kredensial merepresentasikan otoritas atestasi dalam Sistem Atestasi Solana. Kredensial menentukan siapa yang dapat menerbitkan atestasi dan jenis atestasi apa yang dapat mereka terbitkan. Setiap kredensial memiliki sekumpulan penandatangan yang berwenang untuk membuat atestasi di bawah otoritasnya.
Struktur
Struct Credential merepresentasikan kredensial dalam Sistem Atestasi Solana. Setiap kredensial menentukan otoritas yang dapat menerbitkan atestasi dan para penandatangan yang berwenang untuk melakukannya.
Definisi Tipe
Credential
export type Credential = {discriminator: number; // Internal discriminatorauthority: Address; // Authority public keyname: ReadonlyUint8Array; // Credential nameauthorizedSigners: Array<Address>; // List of authorized signers};
Metode
Mengambil Kredensial
| Metode | Deskripsi | Parameter | Nilai Kembali |
|---|---|---|---|
fetchCredential | Mengambil satu kredensial berdasarkan alamatnya | rpc: Konteks RPC, address: Alamat kredensial, config?: Konfigurasi pengambilan | Promise<Account<Credential>> |
fetchMaybeCredential | Mengambil kredensial dengan aman, mengembalikan null jika tidak ditemukan | rpc: Konteks RPC, address: Alamat kredensial, config?: Konfigurasi pengambilan | Promise<MaybeAccount<Credential>> |
fetchAllCredential | Mengambil beberapa kredensial berdasarkan alamat mereka | rpc: Konteks RPC, addresses: Array alamat kredensial, config?: Konfigurasi pengambilan | Promise<Account<Credential>[]> |
fetchAllMaybeCredential | Mengambil beberapa kredensial dengan aman, melewati yang tidak ditemukan | rpc: Konteks RPC, addresses: Array alamat kredensial, config?: Konfigurasi pengambilan | Promise<MaybeAccount<Credential>[]> |
Serialisasi
| Metode | Deskripsi | Parameter | Nilai Kembali |
|---|---|---|---|
getCredentialEncoder | Mendapatkan encoder untuk data kredensial | Tidak ada | Encoder<CredentialArgs> |
getCredentialDecoder | Mendapatkan decoder untuk data kredensial | Tidak ada | Decoder<Credential> |
getCredentialCodec | Mendapatkan codec untuk data kredensial | Tidak ada | Codec<CredentialArgs, Credential> |
Contoh Penggunaan
Mengambil Satu Kredensial
const credential = await fetchCredential(rpc, credentialAddress);console.log("Credential name:", credential.name);
Mengambil Beberapa Kredensial
const credentials = await fetchAllCredential(rpc, [credential1Address,credential2Address]);credentials.forEach((credential) =>console.log("Credential:", credential.name));
Pengambilan yang Aman
const credential = await fetchMaybeCredential(rpc, credentialAddress);if (credential) {console.log("Credential found:", credential.name);} else {console.log("Credential not found");}
Catatan Penting
- Field
discriminatordigunakan secara internal dan tidak boleh dimodifikasi - Field
authoritymenentukan siapa yang memiliki kontrol atas kredensial authorizedSignersadalah array alamat yang diizinkan untuk membuat atestasi di bawah kredensial ini- Field
namedisimpan sebagai byte array dan harus dikodekan/didekodekan dengan benar sesuai kebutuhan aplikasi Anda - Hanya penandatangan yang berwenang yang dapat membuat atestasi di bawah kredensial
- Otoritas dapat memodifikasi daftar penandatangan yang berwenang
Is this page helpful?