Lewati ke isi

Layanan Akun

Modul AccountService menyediakan utilitas untuk menghasilkan akun blockchain dan pasangan kunci untuk berinteraksi dengan jaringan IDCHAIN.
Ini mendukung pembuatan akun berbasis mnemonic, pembuatan keypair untuk operasi DID, dan pendanaan otomatis (melalui transfer token faucet) untuk akun baru.


Ringkasan

Layanan ini membantu pengembang:

  • Hasilkan akun baru (dengan mnemonic dan alamat).
  • Dapatkan akun dari mnemonic yang ada.
  • Hasilkan pasangan kunci khusus untuk pembuatan DID (otentikasi, perjanjian kunci, pernyataan, delegasi).

Kunci yang dihasilkan kompatibel dengan semua modul IDCHAIN ​​lainnya (DID, Credential, Web3Names).


Referensi API

Hasilkan Akun

AccountService.generateAccount(): Promise<{ mnemonic: string; account: UidKeyringPair; }>

Menghasilkan akun blockchain baru dengan mnemonic acak, mendapatkan pasangan kuncinya, dan secara otomatis meminta transfer token untuk saldo awal.

Pengembalian:

  • mnemonic: Frasa mnemonic 12 kata (string).
  • account: Objek UidKeyringPair berisi:
  • address: alamat blockchain berformat SS58.
  • sign(data: Uint8Array): Uint8Array: Metode penandatanganan.

Contoh:

const { mnemonic, account } = await AccountService.generateAccount();
console.log("Mnemonic:", mnemonic);
console.log("Address:", account.address);

Dapatkan Akun

AccountService.getAccount(mnemonic: string): Promise<UidKeyringPair>

Mendapatkan pasangan kunci akun blockchain dari mnemonic yang ada.

Parameter:

  • mnemonic (string, wajib diisi): Frasa mnemonic yang valid (12/24 kata).

Pengembalian:

  • UidKeyringPair: Sama seperti di atas, dengan kemampuan penandatanganan.

lemparan:

  • Error("Mnemonic tidak disediakan atau tidak valid") jika mnemonic hilang atau tidak ada string.

Contoh:

const existingAccount = await AccountService.getAccount("seed seed seed ...");
console.log("Recovered address:", existingAccount.address);

Hasilkan Pasangan Kunci

AccountService.generateKeypairs(mnemonic: string): Promise<{ authentication, keyAgreement, assertionMethod, capabilityDelegation }>

Menghasilkan beberapa pasangan kunci untuk operasi DID, yang berasal dari mnemonic yang sama:

  • authentication: Kunci utama untuk penandatanganan dan otentikasi.
  • keyAgreement: Kunci enkripsi untuk pesan aman.
  • assertionMethod: Kunci yang digunakan untuk mengeluarkan kredensial yang dapat diverifikasi.
  • abilityDelegation: Kunci untuk delegasi dan otorisasi.

Parameter:

  • mnemonic (string, wajib diisi): Benih mnemonic untuk mendapatkan kunci.

Pengembalian: Sebuah objek dengan:

  • authentication: UidKeyringPair
  • keyAgreement: UidEncryptionKeypair
  • assertionMethod: UidKeyringPair
  • capabilityDelegation: UidKeyringPair

Contoh:

const keys = await AccountService.generateKeypairs(mnemonic);
console.log("Authentication key:", keys.authentication.address);
console.log(
  "Encryption key (public):",
  keys.keyAgreement.publicKey.toString("hex")
);

Contoh Penggunaan

import { AccountService } from "@baliola/idchain-sdk";

async function setupAccounts() {
  // Buat akun baru untuk DID Attester
  const { mnemonic, account } = await AccountService.generateAccount();
  console.log("Attester Mnemonic:", mnemonic);
  console.log("Attester Address:", account.address);

  // Turunkan kunci untuk pembuatan DID
  const keypairs = await AccountService.generateKeypairs(mnemonic);
  console.log("Authentication key address:", keypairs.authentication.address);

  // Pulihkan akun yang ada
  const recovered = await AccountService.getAccount(mnemonic);
  console.log("Recovered Address:", recovered.address);
}

setupAccounts();

Penanganan Kesalahan

  • Mnemonic tidak valid: Semua metode akan dibuang jika mnemonic yang diberikan adalah null, bukan string, atau formatnya tidak tepat.
  • Kegagalan pendanaan token: Pada generateAccount, jika transfer faucet (transferToken) gagal, kesalahan akan terjadi.

Untuk aplikasi produksi, bungkus panggilan dalam try-catch:

try {
  const { mnemonic, account } = await AccountService.generateAccount();
} catch (err) {
  console.error("Account generation failed:", err);
}

Modul Terkait

  • Layanan DID: Gunakan kunci yang dihasilkan untuk membuat dan mengelola DID.
  • Layanan Kredensial: Gunakan DID dan kunci untuk mengeluarkan kredensial.