vu3th / vue-dapp

Empower dapp developers with Vue integration for crypto wallets

Home Page:https://vue-dapp.vercel.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vue Dapp Logo

Vue Dapp

Vue library for building Dapps

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

Installation

Minimum

npm install pinia @vue-dapp/core

With the wallet modal

npm install pinia @vue-dapp/core @vue-dapp/modal

Maximum

npm install pinia @vue-dapp/core @vue-dapp/modal @vue-dapp/walletconnect @vue-dapp/coinbase

Example

<script lang="ts" setup>
import { BrowserWalletConnector, VueDappProvider, type ConnWallet } from '@vue-dapp/core'
import { VueDappModal } from '@vue-dapp/modal'
import '@vue-dapp/modal/dist/style.css'

const { status, isConnected, address, chainId, error, disconnect, addConnector } = useVueDapp()

const isModalOpen = ref(false)

function onClickConnectBtn() {
	if (isConnected.value) disconnect()
	else isModalOpen.value = true
}

if (process.client) { // only when using Nuxt 3
	addConnector(new BrowserWalletConnector())
}

function handleConnect(wallet: ConnWallet) {
	console.log('handleConnect', wallet)
}

function handleDisconnect() {
	console.log('handleDisconnect')
}
</script>

<template>
	<div>
		<VueDappProvider @connect="handleConnect" @disconnect="handleDisconnect">
			<button @click="onClickConnectBtn">{{ isConnected ? 'Disconnect' : 'Connect' }}</button>

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

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

			<VueDappModal v-model="isModalOpen" dark auto-connect />
		</VueDappProvider>
	</div>
</template>

Examples

Support ๐Ÿ™

0x9D75F4EbcB8e7669E59dcc27CBadC698E0F77187

MIT license

Copyright (c) 2021-present, Johnson Chen (@chnejohnson)

About

Empower dapp developers with Vue integration for crypto wallets

https://vue-dapp.vercel.app/

License:MIT License


Languages

Language:TypeScript 50.9%Language:Vue 46.1%Language:JavaScript 1.6%Language:SCSS 1.2%Language:HTML 0.3%Language:Shell 0.1%