Skip to content

velonixcore/vlxcore-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors