Home

Awesome

Exit Module

Build Status Coverage Status Contributor Covenant

The Exit Module belongs to the Zodiac collection of tools, which can be accessed through the Zodiac App available on Gnosis Safe, as well as in this repository.

If you have any questions about Zodiac, join the Gnosis Guild Discord. Follow @GnosisGuild on Twitter for updates.

About the Exit Module

This module allows participants to redeem a designated token for a proportional share of an avatar's digital assets, similar to Moloch DAO's rageQuit() function.

This means any holders of a designated ERC20 token can at any time redeem their designated ERC20 tokens in exchange for a proportional share of the Gnosis Safe’s ERC20-compatible token assets. The designated token is defined when the Exit Module is deployed, but the designated token can be modified by the owner at any time.

This module is intended to be used with the Gnosis Safe.

Features

Flow

Warnings

The exit module should not be used in conjunction with any token vending machine-like contract in which designated tokens are sold in exchange for valuable tokens that are forwarded immediately to the safe. This could potentially enable a re-entry scenario where an attacker could exploit users with pending deposits to the vending machine.

Solidity Compiler

The contracts have been developed with Solidity 0.8.4 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 Exit Module Setup Guide.

License

Created under the LGPL-3.0+ license.

Audits

An audit has been performed by the G0 group.

All issues and notes of the audits have been addressed in commit 9fc3b852126520753cca42ee7e1281659e78e9c3.

The audit results are available as a pdf in this repo.

Security and Liability

All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.