Skip to content

windvex/wind-example-dapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌬️ Wind Example DApp

Contoh sederhana Decentralized Application (DApp) yang terintegrasi dengan Wind Wallet.
Project ini dibuat sebagai boilerplate bagi pengembang pemula maupun profesional yang ingin membangun DApp di ekosistem Vexanium menggunakan WharfKit.


🚀 Fitur Utama

  • 🔑 Login via Wind Wallet menggunakan QR/VSR (VEX Signing Request).
  • 🌐 Koneksi Peer-to-Peer (WebRTC) dengan PeerJS untuk komunikasi aman.
  • 📝 Transaksi & Signing Request ke blockchain Vexanium.
  • 📦 Contoh implementasi minimal agar mudah dipahami dan dikembangkan.

🛠️ Teknologi yang Digunakan


📦 Instalasi & Menjalankan

# Clone repo
git clone https://github.com/windvex/wind-example-dapp.git
cd wind-example-dapp

# Install dependencies
npm install

# Jalankan dev server
npm run dev

Buka di browser:
👉 http://localhost:5173


📖 Cara Menggunakan

  1. Pastikan Anda sudah memiliki Wind Wallet.
    Jika belum, buka: https://wind-wallet.web.app.
  2. Jalankan DApp dengan npm run dev.
  3. Klik Login dengan Wind Wallet, lalu scan QR atau buka link VSR.
  4. Setelah login, Anda dapat mencoba request tanda tangan / transaksi.

📂 Struktur Project

wind-example-dapp/
├─ src/
│  ├─ components/       # Komponen Vue (WalletSelector, dll.)
│  ├─ js/               # Modul JS (wallet.js, nodes.js, dll.)
│  ├─ pages/            # Halaman utama (Home.vue, Transfer.vue, Vote.vue)
│  └─ App.vue           # Root aplikasi
├─ package.json
└─ README.md

💻 Contoh Kode Integrasi

Login dengan Wind Wallet

import Wallet from '@/js/wallet.js'

async function login() {
  try {
    const session = await Wallet.login()
    console.log('Login berhasil:', session.actor.toString())
  } catch (err) {
    console.error('Login gagal:', err)
  }
}

Transaksi Vote BP

import Wallet from '@/js/wallet.js'
import { client } from '@/js/nodes.js'

async function voteBP(bpName) {
  if (!Wallet.isConnected()) {
    throw new Error('Harus login terlebih dahulu')
  }

  const actor = Wallet.getActor()
  const permission = Wallet.getPermission()

  const action = {
    account: 'vexcore',
    name: 'voteproducer',
    authorization: [{
      actor,
      permission,
    }],
    data: {
      voter: actor,
      proxy: '',
      producers: [bpName],
    },
  }

  try {
    const trx = await Wallet.transact({ actions: [action] })
    console.log('Vote berhasil, trx id:', trx.transaction_id)
  } catch (err) {
    console.error('Gagal vote BP:', err)
  }
}

🤝 Kontribusi

Kami sangat terbuka untuk kontribusi dari komunitas!
Langkah berkontribusi:

  1. Fork repo ini.
  2. Buat branch baru:
    git checkout -b fitur-anda
  3. Lakukan perubahan, lalu commit:
    git commit -m "Menambahkan fitur X"
  4. Push branch ke repo Anda dan buat Pull Request.

📬 Hubungi Kami


Jangan lupa kasih bintang repo ini jika bermanfaat!
Kontribusi Anda akan membantu mendukung ekosistem Vexanium dan Wind Wallet.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published