/gsn-multisig

An Ethereum smart contract implementing a multisig with support for the Gas Station Network (GSN) https://gsn.openzeppelin.com

Primary LanguageClojure

GSN-enabled Multisig

A fork of gnosis multisigs to support the Gas Station Network (GSN)

How to run

On ganache / local env

# run ganache in a separate terminal
$ ganache-cli
# compile contracts and write down the deployed address
$ openzepplin create
# deploy a local GSN (RelayHub + relayers)
# this step is not necessary if testing on rinkby or mainnet, GSN already exists there
$ npx oz-gsn run-relayer
# fund recipient
$ npx oz-gsn fund-recipient --recipient $address

At this point, the whole GSN and GSN-enabled smart contracts are operational on the local ganache instance

Webapp

The web app is using clojurescript's reagent along with shadow-cljs build tool

$ npm install
$ shadow-cljs server
$ shadow-cljs watch app

visit localhost:3000

GSN details

For the purpose of the sample webapp, the GSN-enabled web3 provider is provided using portis.io

Deployed contracts

Contracts have been deployed to ropsten at the following addresses:

Deploy your own

Change settings in networks.js and add .env with infura key and 12-word mnemonic phrase:

INFURA_PROJECT_ID="ENTER INFURA PROJECT ID"
DEV_MNEMONIC="ENTER 12 WORD SEED PHRASE"

...then run

$ openzeppelin create