Skip to content

useNetwork

Mengelola jaringan yang sedang aktif. Pergantian jaringan secara otomatis memutuskan koneksi RPC saat ini dan menghubungkan kembali ke jaringan baru.

Impor

ts
import { useNetwork } from 'vue-kaspa'

Tipe kembalian

ts
interface UseNetworkReturn {
  currentNetwork: Readonly<Ref<KaspaNetwork>>
  networkId: Readonly<Ref<string | null>>
  isMainnet: ComputedRef<boolean>
  isTestnet: ComputedRef<boolean>
  daaScore: Readonly<Ref<bigint>>
  switchNetwork(network: KaspaNetwork): Promise<void>
  availableNetworks: readonly KaspaNetwork[]
}

Properti

PropertiTipeDeskripsi
currentNetworkReadonly<Ref<KaspaNetwork>>Jaringan yang sedang dipilih
networkIdReadonly<Ref<string | null>>String ID jaringan dari node yang terhubung (mis. 'mainnet'). null saat terputus.
isMainnetComputedRef<boolean>currentNetwork === 'mainnet'
isTestnetComputedRef<boolean>currentNetwork === 'testnet-10' atau 'testnet-12'
daaScoreReadonly<Ref<bigint>>Skor DAA langsung — nilai yang sama dengan useRpc().virtualDaaScore
availableNetworksreadonly KaspaNetwork[]Semua 5 nama jaringan (sama dengan konstanta AVAILABLE_NETWORKS)

Metode

MetodeDeskripsi
switchNetwork(network)Beralih ke jaringan baru: memutuskan RPC, memperbarui currentNetwork, menghubungkan kembali.

Jaringan yang tersedia

JaringanDeskripsi
'mainnet'Jaringan produksi Kaspa
'testnet-10'Jaringan uji publik (konsensus v10)
'testnet-12'Jaringan uji publik (konsensus v11, DAGKNIGHT)
'simnet'Jaringan simulasi lokal untuk pengujian
'devnet'Jaringan pengembangan lokal

Penggunaan dasar

vue
<script setup lang="ts">
import { useNetwork } from 'vue-kaspa'

const network = useNetwork()
</script>

<template>
  <div>
    <p>Network: {{ network.currentNetwork.value }}</p>
    <p>DAA score: {{ network.daaScore.value }}</p>

    <button
      v-for="n in network.availableNetworks"
      :key="n"
      @click="network.switchNetwork(n)"
      :disabled="network.currentNetwork.value === n"
    >
      {{ n }}
    </button>
  </div>
</template>

Pergantian jaringan

ts
const network = useNetwork()

// Beralih ke testnet-10
await network.switchNetwork('testnet-10')
// network.currentNetwork.value === 'testnet-10'
// RPC secara otomatis terhubung kembali ke node testnet-10

switchNetwork() bersifat async — menunggu urutan putus koneksi dan koneksi kembali selesai.

Crypto sadar jaringan

Format alamat bersifat spesifik jaringan. Gunakan currentNetwork.value saat memanggil metode useCrypto():

ts
const network = useNetwork()
const crypto = useCrypto()

// Selalu gunakan jaringan aktif saat menghasilkan/menurunkan alamat
const keypair = crypto.generateKeypair(network.currentNetwork.value)
// mainnet  → 'kaspa:qr...'
// testnet  → 'kaspatest:qr...'

const { receive } = crypto.derivePublicKeys(
  phrase,
  network.currentNetwork.value,
  10,
)

Atau gunakan properti computed untuk menjaga alamat tetap sinkron dengan perubahan jaringan:

ts
const network = useNetwork()
const crypto = useCrypto()

const exampleAddress = computed(() =>
  network.isTestnet.value
    ? 'kaspatest:qqc4gu8kzf5z9hpd8hg9qmcqv9qv8ywc79pu8n58p6mcqvyyw64qhgu3mhnzf'
    : 'kaspa:qqc4gu8kzf5z9hpd8hg9qmcqv9qv8ywc79pu8n58p6mcqvyyw64qhgu3mhnzf'
)

Singleton

currentNetwork adalah state module-level — dibagi ke semua instance useNetwork() dalam aplikasi. Memanggil switchNetwork() di satu komponen mempengaruhi setiap komponen yang membaca currentNetwork.

Memeriksa mainnet vs testnet

ts
const network = useNetwork()

if (network.isMainnet.value) {
  // Perilaku produksi
  console.log('Real KAS — be careful!')
}

if (network.isTestnet.value) {
  // testnet-10 atau testnet-12
  console.log('Test KAS — free to experiment')
}

Released under the MIT License.