Skip to content

gnosisguild/zodiac-modifier-delay

Repository files navigation

Zodiac Delay Modifier

Build Status Coverage Status Contributor Covenant

The Delay Modifier 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 Delay Modifier

This modifier allows avatars to enforce a time delay between when a module initiates a transaction and when it can be executed by an avatar.

This means an approved address can execute transactions only after a cooldown period and, optionally, before an expiration time.

The interface mirrors the relevant parts of the Gnosis Safe's interface, so this contract can be placed between Gnosis Safe modules and a Gnosis Safe to enforce a time delay between transaction creation and execution.

Transactions are executed in order. The owner of the owner can skip transactions by advancing the transaction nonce.

Features

  • Enqueue transactions
  • Enable and disable modules
  • Public function to execute the next transaction in queue
  • Skip transactions by advancing the nonce
  • Set cooldown and expiration periods

Flow

  • Enqueue transactions by calling execTransactionFromModule()
  • Wait for cooldown ⏱️
  • Anyone can execute the next transaction by calling executeNextTx

Solidity Compiler

The contracts have been developed with Solidity 0.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 Delay Modifier Setup Guide.

Audits

An audit has been performed by the G0 group.

All issues and notes of the audit have been addressed in commit 95c75547edf075d3c7a0f23e93ff856dedd17507.

The audit results are available as a pdf in this repo or on the g0-group repo.

Security and Liability

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

License

Created under the LGPL-3.0+ license.

About

A Safe module that allows approved addresses to execute transactions after a time delay, during which transactions can be marked as invalid by the Safe.

Resources

License

Stars

Watchers

Forks

Packages

No packages published