Skip to content

johnson86tw/vue-dapp

 
 

Repository files navigation

Vue Dapp Logo

Vue Dapp

Empower dapp developers with Vue integration for crypto wallets

MIT License Telegram Website

Packages 📦

Name Description Version Size
@vue-dapp/core useVueDapp & VueDappProvider Version Size
@vue-dapp/nuxt Vue Dapp Nuxt module Version Size
@vue-dapp/modal VueDappModal for a wallet modal Version Size
@vue-dapp/walletconnect WalletConnect integration Version Size
@vue-dapp/coinbase Coinbase Wallet integration Version Size

Overview

Vue Dapp Overview

Getting Started

SPA with Vite

npm install pinia @vue-dapp/core @vue-dapp/modal
import { createPinia } from 'pinia'
app.use(createPinia())
<script lang="ts" setup>
import { BrowserWalletConnector, useVueDapp } from '@vue-dapp/core'
import { VueDappModal, useVueDappModal } from '@vue-dapp/modal'
import '@vue-dapp/modal/dist/style.css'

const { addConnectors, isConnected, wallet, disconnect } = useVueDapp()

addConnectors([new BrowserWalletConnector()])

function onClickConnectButton() {
	if (isConnected.value) disconnect()
	else useVueDappModal().open()
}
</script>

<template>
	<button @click="onClickConnectButton">{{ isConnected ? 'Disconnect' : 'Connect' }}</button>

	<div>status: {{ wallet.status }}</div>
	<div>isConnected: {{ isConnected }}</div>
	<div>error: {{ wallet.error }}</div>

	<div v-if="isConnected">
		<div>chainId: {{ wallet.chainId }}</div>
		<div>address: {{ wallet.address }}</div>
	</div>

	<VueDappModal dark auto-connect />
</template>

SSR with Nuxt 3

npm install pinia @pinia/nuxt @vue-dapp/core @vue-dapp/nuxt @vue-dapp/modal
modules: ['@pinia/nuxt', '@vue-dapp/nuxt']

Examples

Development

pnpm i
pnpm build
pnpm -F core watch
pnpm -F modal watch
pnpm dev

Support 🙏

0x9D75F4EbcB8e7669E59dcc27CBadC698E0F77187

Credits

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 50.0%
  • Vue 46.6%
  • JavaScript 1.7%
  • SCSS 1.3%
  • Other 0.4%