資格情報は、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フィールドはバイト配列として保存されるため、アプリケーションのニーズに応じて適切にエンコード/デコードする必要があります- 承認された署名者のみが資格情報の下で証明を作成できます
- 管理者は承認された署名者のリストを変更できます
Is this page helpful?