Atestasi merepresentasikan klaim atau pernyataan terverifikasi dalam Sistem Atestasi Solana. Attestasi dibuat oleh penandatangan yang berwenang di bawah suatu kredensial dan mengikuti skema tertentu. Setiap attestasi berisi data aktual dari klaim tersebut dan metadata tentang pembuatan serta validitasnya.
Struktur
Struct Attestation merepresentasikan attestasi dalam Sistem Attestasi Solana. Setiap attestasi terhubung ke kredensial, skema, dan berisi data yang diatestasi beserta metadata tentang pembuatan dan periode validitasnya.
Definisi Tipe
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;};
Metode
Mengambil Attestasi
| Metode | Deskripsi | Parameter | Mengembalikan |
|---|---|---|---|
fetchAttestation | Mengambil satu attestasi berdasarkan alamatnya | rpc: Konteks RPC, address: Alamat attestasi, config?: Konfigurasi fetch | Promise<Account<Attestation>> |
fetchMaybeAttestation | Mengambil attestasi dengan aman, mengembalikan null jika tidak ditemukan | rpc: Konteks RPC, address: Alamat attestasi, config?: Konfigurasi fetch | Promise<MaybeAccount<Attestation>> |
fetchAllAttestation | Mengambil beberapa attestasi berdasarkan alamat mereka | rpc: Konteks RPC, addresses: Array alamat attestasi, config?: Konfigurasi fetch | Promise<Account<Attestation>[]> |
fetchAllMaybeAttestation | Mengambil beberapa attestasi dengan aman, melewati yang tidak ditemukan | rpc: Konteks RPC, addresses: Array alamat attestasi, config?: Konfigurasi fetch | Promise<MaybeAccount<Attestation>[]> |
Serialisasi
| Metode | Deskripsi | Parameter | Mengembalikan |
|---|---|---|---|
getAttestationEncoder | Mendapatkan encoder untuk data attestasi | Tidak ada | Encoder<AttestationArgs> |
getAttestationDecoder | Mendapatkan decoder untuk data attestasi | Tidak ada | Decoder<Attestation> |
getAttestationCodec | Mendapatkan codec untuk data attestasi | Tidak ada | Codec<AttestationArgs, Attestation> |
Contoh Penggunaan
Mengambil Satu Attestation
const attestation = await fetchAttestation(rpc, attestationAddress);console.log("Attestation nonce:", attestation.nonce);
Mengambil Beberapa Attestation
const attestations = await fetchAllAttestation(rpc, [attestation1Address,attestation2Address]);attestations.forEach((attestation) =>console.log("Attestation:", attestation.nonce));
Pengambilan yang Aman
const attestation = await fetchMaybeAttestation(rpc, attestationAddress);if (attestation) {console.log("Attestation found:", attestation.nonce);} else {console.log("Attestation not found");}
Catatan Penting
- Field
discriminatordigunakan secara internal dan tidak boleh dimodifikasi noncemenyediakan pengenal unik untuk setiap attestation- Field
credentialdanschemamenghubungkan attestation dengan kredensial dan skema yang terkait - Field
databerisi data attestation aktual dan harus dikodekan/didekodekan dengan benar sesuai skema signerharus menjadi salah satu penandatangan resmi dari kredensial yang terkaitexpirymenentukan kapan attestation menjadi tidak validtokenAccountmenghubungkan attestation ke token account tertentu- Attestation hanya dapat dibuat oleh penandatangan resmi dari kredensial yang terkait
- Data attestation harus sesuai dengan struktur yang ditentukan oleh skema yang terkait
Is this page helpful?