/tutorial-multisigwallet-js

Gnosis Mutlisig Wallet tutorial and playground with JavaScript and web3.js

Primary LanguageJupyter NotebookMIT LicenseMIT

Gnosis Mutlisig Wallet tutorial and playground with JavaScript and web3.js

For educational purposes.

Used with a local Parity client version 1.11.8

Dependencies

  • Connection to an ethereum test network with Multisig factory deployed. I use Volta. For a tutorial on how to set up a local Parity client and connect to the network, check here.
    • If you don't need the factory, ganache is installed as a local dependency and a convenience script is provided.
  • 3 accounts with some test Ethers in it.
  • node 8+ and npm, Python 3.6 with pip

Setup

Step 1 - Clone the repo and install depenencies

git clone https://github.com/ngyam/tutorial-multisigwallet-js.git
cd tutorial-multisigwallet-js
npm install

You need Jupyter notebook. The easiest way is just to use python's package manager:

pip install jupyter
(or pip3 install jupyter)

Then you need the Javascript (node) kernel for Jupyter. A script is prepared for you:

npm run install:kernel

If things didn't work for some reason, alternatiely you can follow the guide here for your distribution for a more manual setup: https://github.com/n-riesco/ijavascript#installation

Step 2

Make sure the multisig contracts are compiled. The postinstall script should already have done it. If not, you can manually do it by running:

npm run compile

The Multisig repo was added as a local dependency. The built contracts can be found in node_modules/multisig-wallet-gnosis/build/contracts.

How to use the tutorial

  1. Make sure your Parity client is running and configured to connect to Volta, or to a network of your choice
    • If you do not want to use the already deployed factory or just want to sandbox on a local dev network with ganache, run:
      npm run ganache
      
      This starts ganache with 10 pre-funded test accounts.
  2. Open the ipynb file in Jupyter notebook and play around.
    cd tutorial-multisigwallet-js
    npm run start
    
    # alternatively
    jupyter notebook

Resources

Energy Web Foundation

Parity client

Gnosis Multisig Wallet UI

Gnosis Multisig Wallet repo

web3.js documentation