Skip to content

Ethereum ethers.js web3 library vuex store module generator plugin for vue-cli 3

Notifications You must be signed in to change notification settings

bmiller59/vue-cli-plugin-ethers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ethereum ethers.js vuex store module generator plugin for vue-cli 3

Build dApps!

vue-cli 3 plugin to generate a vuex store module that will connect to the Ethereum blockchain using the ethers.js web3 provider. (ethers.js can do everything web3.js can do and more, like ENS name resolution. It is also well documented.)

This plugin monitors and updates connection and network status with your Ethereum node on any network and allows you to connect to contracts and submit transactions.

(Requires a browser that supports Ethereum or the use of a browser plugin like MetaMask.) Can serve as the foundation of a vue-based Ethereum dApp!

State

These state variables are kept updated:

  • connected (true or false)
  • address (of the user)
  • ens (ENS name if any for selected address)
  • user (either address or if on a net that supports ENS, the ENS name)
  • error (error if any)
  • network (human readable name of the network you are on)

Example code

This plugin comes with the following example code enabled so you can see how this module works. Replace the example code with your own application logic.

  • In the store module, search for the alert and confirm statements. These will alert the state of the ethereum connection and account changes in the browser.
  • By default ethersConnect.js is set to log each block of the blockchain in the console. Review the code comments to see how to easily extend or disable this.

Usage

  • See Vuex Getting Started for general information about Vuex.
  • This plugin expects you to have a file main.js in your src folder according to vue-cli standard.
  • It also expects you to have already added Vuex to your project before adding this plugin.
  • And that
    • your store folder is called store with an index.js in it,
    • you have a modules section in your store index.js,
    • and you have an export in your store index.js file.

For example, the standard store created by vue add vuex, with a modules section added, will work:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
  }
})

These are needed to correctly augment the root store with the ethers module code.

Install via vue-cli

$ vue add ethers

Interacting with contracts

Read about how to do this in the ethers.js contract documentation.

Contributions

Pull requests welcome!

Acknowledgements

Extended and modified from vue-cli-plugin-vuex-module-generator. Thanks!

About

Ethereum ethers.js web3 library vuex store module generator plugin for vue-cli 3

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published