Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 VlxCore Kit

VlxCore Kit adalah protokol berbasis WebRTC untuk menghubungkan DApp di jaringan Vexanium dengan wallet pengguna secara aman dan lintas perangkat (cross-device).

Dirancang agar ringan dan mudah diintegrasikan dalam aplikasi web, protokol ini memungkinkan DApp untuk:

  • Otentikasi pengguna
  • Menandatangani transaksi
  • Menandatangani pesan
  • Membuat shared secret untuk enkripsi end-to-end

✨ Fitur Utama

  • ✅ Login lintas perangkat melalui QR Code atau koneksi langsung
  • ✍️ Tanda tangan transaksi blockchain
  • 🧾 Tanda tangan pesan dengan keamanan kriptografi
  • 🔐 Enkripsi peer-to-peer melalui shared secret (ECDH)
  • 🌐 Berbasis PeerJS & WebRTC

🚀 Instalasi

npm install vlxcore-kit

⚙️ Inisialisasi VlxCore

import { VlxCore } from "vlxcore-kit";

const vlxcore = new VlxCore();

// Event ketika wallet terhubung dan mengirim sesi
vlxcore.on("session", handleSession);

// Hubungkan ke signaling server
vlxcore.connect();

🔐 Membuat Login Request & Buka Wallet

const vsr = vlxcore.createLoginRequest(
  "DApp Vexanium 101",
  "https://example.com/icon.png"
);

const request = vsr.split(":")[1];

// Buka wallet melalui URL
const walletUrl = `https://vlxcore.web.app/login?vsr=${request}`;
window.open(walletUrl, "Vexanium Wallet");

🤝 Menangani Sesi Wallet

function handleSession(session, proof) {
  const account = proof.signer.toString(); // misalnya: aiueo@active

  // Menyediakan cache ABI untuk efisiensi
  session.setABICache(abiCache);

  // Dengarkan jika wallet terputus
  session.onClose(() => {
    console.log("🔌 Wallet disconnected");
  });

  // Simpan session untuk transaksi selanjutnya
  Store.session = session;
}

💸 Contoh Transaksi

// Ambil ABI untuk kontrak vex.token
const abi = await abiCache.getAbi("vex.token");

const data = {
  from: "aiueo",
  to: "babibu",
  quantity: "1.0000 VEX",
  memo: "Percobaan kirim VEX"
};

// Buat action
const action = Action.from({
  account: "vex.token",
  name: "transfer",
  data,
  authorization: [Store.session.permissionLevel]
}, abi);

// Kirim transaksi ke wallet
const result = await Store.session.transact({ action });

console.log("Transaction ID:", result.transaction_id);

📝 Tanda Tangan Pesan

const message = "Saya menyetujui login pada DApp XYZ";
const signature = await Store.session.signMessage(message);

console.log("Signature:", signature.toString());

🔑 Shared Secret (ECDH)

import { PublicKey } from "@wharfkit/antelope";

const pubKey = PublicKey.from("PUB_K1_..."); // public key dari lawan komunikasi
const secret = await Store.session.sharedSecret(pubKey);

console.log("Shared Secret:", secret.toString());

📦 Struktur Modul

  • VlxCore: Kelas utama untuk inisialisasi, koneksi, dan login request
  • WalletSession: Kelas yang digunakan setelah autentikasi untuk berinteraksi dengan wallet (transaksi, tanda tangan, dll.)

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages