الشهادات

تمثل الشهادة ادعاءً أو بياناً موثقاً في نظام شهادات سولانا. يتم إنشاء الشهادات بواسطة موقعين مصرح لهم ضمن بيانات اعتماد وتتبع مخططاً محدداً. تحتوي كل شهادة على البيانات الفعلية للادعاء والبيانات الوصفية حول إنشائها وصلاحيتها.

البنية

يمثل هيكل Attestation شهادة في نظام شهادات سولانا. ترتبط كل شهادة ببيانات اعتماد ومخطط، وتحتوي على البيانات المشهود بها إلى جانب البيانات الوصفية حول إنشائها وفترة صلاحيتها.

تعريفات الأنواع

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

الدوال

جلب الشهادات

الدالةالوصفالمعاملاتالقيمة المُرجعة
fetchAttestationتجلب شهادة واحدة بواسطة عنوانهاrpc: سياق RPC، address: عنوان الشهادة، config?: إعدادات الجلبPromise<Account<Attestation>>
fetchMaybeAttestationتجلب شهادة بشكل آمن، وترجع null إذا لم توجدrpc: سياق RPC، address: عنوان الشهادة، config?: إعدادات الجلبPromise<MaybeAccount<Attestation>>
fetchAllAttestationتجلب شهادات متعددة بواسطة عناوينهاrpc: سياق RPC، addresses: مصفوفة عناوين الشهادات، config?: إعدادات الجلبPromise<Account<Attestation>[]>
fetchAllMaybeAttestationتجلب شهادات متعددة بشكل آمن، وتتجاوز ما لم يُعثر عليهrpc: سياق RPC، addresses: مصفوفة عناوين الشهادات، config?: إعدادات الجلبPromise<MaybeAccount<Attestation>[]>

التسلسل

الدالةالوصفالمعاملاتالقيمة المُرجعة
getAttestationEncoderتحصل على المشفّر لبيانات الشهادةلا توجدEncoder<AttestationArgs>
getAttestationDecoderتحصل على فاك التشفير لبيانات الشهادةلا توجدDecoder<Attestation>
getAttestationCodecتحصل على الترميز لبيانات الشهادةلا توجدCodec<AttestationArgs, Attestation>

أمثلة الاستخدام

جلب شهادة واحدة

const attestation = await fetchAttestation(rpc, attestationAddress);
console.log("Attestation nonce:", attestation.nonce);

جلب شهادات متعددة

const attestations = await fetchAllAttestation(rpc, [
attestation1Address,
attestation2Address
]);
attestations.forEach((attestation) =>
console.log("Attestation:", attestation.nonce)
);

الجلب الآمن

const attestation = await fetchMaybeAttestation(rpc, attestationAddress);
if (attestation) {
console.log("Attestation found:", attestation.nonce);
} else {
console.log("Attestation not found");
}

ملاحظات هامة

  • حقل discriminator يُستخدم داخليًا ويجب عدم تعديله
  • حقل nonce يوفر معرفًا فريدًا لكل شهادة
  • حقول credential و schema تربط الشهادة ببيانات الاعتماد والمخطط المرتبطين بها
  • حقل data يحتوي على بيانات الشهادة الفعلية ويجب تشفيره/فك تشفيره بشكل صحيح وفقًا للمخطط
  • يجب أن يكون signer أحد الموقعين المصرح لهم لبيانات الاعتماد المرتبطة
  • حقل expiry يحدد متى تصبح الشهادة غير صالحة
  • حقل tokenAccount يربط الشهادة بحساب رمز محدد
  • يمكن إنشاء الشهادات فقط بواسطة الموقعين المصرح لهم لبيانات الاعتماد المرتبطة
  • يجب أن تتوافق بيانات الشهادة مع البنية المحددة في المخطط المرتبط

Is this page helpful?

جدول المحتويات

تعديل الصفحة