Safe Contract v2

Abstract

The current version of the Safe contracts (1.3.0) is stable, but is not following all standards. Therefore I would propose to start planing a new version of the Safe contract. The general goal is to make the contracts more explicit and therefore more secure and allow a more configuration possibilities.

I would love to get some feedback on the changes proposed and if there is anything missing.

Changes

Breaking Changes

New functionality

  • Add module guard
    • Motivation
      • Improve security of module usage.
    • Notes
      • This functionality already exists for the normal multi-signature flow and should be applied in a similar manner for transactions executed by modules
  • Allow to set signature parser for an address
    • Motivation
      • Make the contracts more flexible in regards to contract signatures and other new signature schemes
  • Changes
    • Allow to set a signature parser per address. This signature parser should follow a predefined interface and check if a specific signature for a specific address is valid.
  • Notes
    • add signature parser for EIP-1271
    • add signature parser for BLS signatures

Additional Notes

Support for EIP-4337 was also evaluated. For now this is being tested as a module before we would start adding full native support.

A link to the “standards” you mention in the abstract would help contextualizing this post a little better, IMO.

The standards are mentioned in with the related features: