Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates setup guide and base readme #60

Merged
merged 8 commits into from
Sep 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ Once the question on Reality.eth has resolved to "yes", meaning that the transac

This module is intended to be used with [Gnosis Safe](https://github.com/gnosis/safe-contracts), but it is ultimately framework agnostic.

### Setup Guides

This module can be setup either using the Zodiac App's UI or by using command line tools; both methods allow for connecting to Snapshot.

[View docs for using the Zodiac App](https://gnosis.github.io/zodiac/docs/tutorial-module-reality/get-started)

[View docs for using the command line](./docs/setup_guide.md)

### Features
- Submit proposals uniquely identified by a `proposalId` and an array of `txHashes`, to create a Reality.eth question that validates the execution of the connected transactions.
- Proposals can be marked invalid by the `executor` using `markProposalInvalid`, thereby preventing the execution of the transactions related to that proposal.
Expand Down Expand Up @@ -101,11 +109,6 @@ Note: If the expiration time is set to `0`, answers will never expire. This also

The contracts have been developed with [Solidity 0.8.0](https://github.com/ethereum/solidity/releases/tag/v0.8.0) in mind. This version of Solidity made all arithmetic checked by default, therefore eliminating the need for explicit overflow or underflow (or other arithmetic) checks.

### Setup Guide

Follow our [Reality Module Setup Guide](./docs/setup_guide.md) to setup a Zodiac Reality Module and connect it to Snapshot.


### Audits

An audit has been performed by the [G0 group](https://github.com/g0-group).
Expand Down
54 changes: 6 additions & 48 deletions docs/setup_guide.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Zodiac Reality Module Setup Guide

This guide shows how to set up the Reality Module with a Gnosis Safe on the Rinkeby testnetwork. It will use [Reality.eth](https://realit.io/) and can be used with [Snapshot](https://snapshot.org/).
This is a technical guide that uses command line tools, [to set up using the Zodiac App and UI, go here.](https://gnosis.github.io/zodiac/docs/tutorial-module-reality/get-started)

This guide shows how to setup the Reality module with a Gnosis Safe on the Rinkeby testnetwork. It will use [Reality.eth](https://realit.io/) and can be used with [Snapshot](https://snapshot.org/).

The Reality Module belongs to the [Zodiac](https://github.com/gnosis/zodiac) collection of tools. If you have any questions about Zodiac, join the [Gnosis Guild Discord](https://discord.gg/wwmBWTgyEq). Follow [@GnosisGuild](https://twitter.com/gnosisguild) on Twitter for updates. For more information on the Reality Module (formerly SafeSnap) please refer to the original [Gnosis blog post](https://blog.gnosis.pm/ea67eb95c34f).

Expand Down Expand Up @@ -47,9 +49,7 @@ For example, on Rinkeby using the default template this would be:

For this guide we will assume that the returned template id is `0x0000000000000000000000000000000000000000000000000000000000000dad`.

You can also create your template from this Reality.eth Template Builder [UI](https://reality.eth.link/app/template-generator/).

### Deploying the module
You can also create your template using the [Reality.eth Template Builder UI](https://reality.eth.link/app/template-generator/). For more info on using it, [use this guide](https://gnosis.github.io/zodiac/docs/tutorial-module-reality/add-template#template-builder).

Now that we have a template, a hardhat task can be used to deploy a Reality Module instance. The Reality Module will be linked to one DAO and an oracle.

Expand Down Expand Up @@ -95,53 +95,11 @@ An example of this on Rinkeby would be:

### Enabling the module

To allow the Reality Module to actually execute transactions, you must enable it on the Gnosis Safe to which it is connected. For this, it is possible to use the Bundle Transactions tab on [https://rinkeby.gnosis-safe.io](https://rinkeby.gnosis-safe.io), which is accompanied by our tutorial on [adding a module](https://help.gnosis-safe.io/en/articles/4934427-add-a-module).
To allow the Reality Module to actually execute transactions, you must enable it on the Gnosis Safe to which it is connected. For this, it is possible to use the Zodiac app (enabling a custom module with the address of your newly deployed module above) or the Transaction Builder on https://rinkeby.gnosis-safe.io. For this you can follow our tutorial on [adding a module with the transaction builder](https://help.gnosis-safe.io/en/articles/4934427-add-a-module).

## Snapshot integration

Once the module is setup it is possible to configure a space on [Snapshot](https://snapshot.org/) to enable the SafeSnap plugin. For this the space settings needs to include the SafeSnap plugin with this configuration:
```
{
"address": "<module_address>"
}
```
.
An example for this can be found in the [🍯DAO space configuration](https://cloudflare-ipfs.com/ipfs/QmahDCSkdED9BLZ3VtH6aJ8P5TmvMYEfA7fJa4hGsvEpi2/).

Once your space is configured, you can attach transactions to your proposals via the plugin section:

1. Open the plugin selection

![Open the plugin selection](./snapshot_plugin_section.png)

2. Add Reality Module (formerly DAO Module) plugin

2. Add SafeSnap plugin

![Add SafeSnap plugin](./snapshot_add_plugin.png)


3. Add Reality Module (formerly DAO module) transaction

<img src="./snapshot_module_add_tx.png"
alt="Add Reality Module transaction"
width="250"/>
<img src="./snapshot_module_tx_details.png"
alt="Enter transactiond etails"
width="250" />
<img src="./snapshot_module_tx_confirm.png"
alt="Check transaction details"
width="250"/>

4. Check preview of transactions

![Transactions preview](./snapshot_plugin_preview.png)

Once the proposal has been resolved, it is possible to submit the proposal to the Reality Module via the plugin.

This can also be done via the hardhat tasks provided in this repository. For more information, run `yarn hardhat addProposal --help` or `yarn hardhat executeProposal --help`.

Once the proposal question has been submitted, it can be answered via the Reality.eth web interface: [https://reality.eth.link/app/](https://reality.eth.link/app/).
To setup the newly deployed module on snapshot view our [Snapshot integration guide here.](https://gnosis.github.io/zodiac/docs/tutorial-module-reality/integrate-snapshot).

## Monitoring your module

Expand Down
Binary file removed docs/snapshot_add_plugin.png
Binary file not shown.
Binary file removed docs/snapshot_module_add_tx.png
Binary file not shown.
Binary file removed docs/snapshot_module_tx_confirm.png
Binary file not shown.
Binary file removed docs/snapshot_module_tx_details.png
Binary file not shown.
Binary file removed docs/snapshot_plugin_preview.png
Binary file not shown.
Binary file removed docs/snapshot_plugin_section.png
Binary file not shown.