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

Provide a way to identify whether a contract is a SAFE. #714

Open
MicahZoltu opened this issue Dec 12, 2023 · 1 comment
Open

Provide a way to identify whether a contract is a SAFE. #714

MicahZoltu opened this issue Dec 12, 2023 · 1 comment

Comments

@MicahZoltu
Copy link
Contributor

Context / issue

When building applications that interact with SAFEs, it is necessary to first validate that a given address (e.g., user supplied or on-chain scanned) is actually a SAFE (or at least claims to be). Currently, the only way to do this is to either hard-code all versions of Gnosis SAFE proxy and master contracts and check to see if the contract is a proxy and if it points to a known master copy. Unfortunately, this doesn't scale in a censorship resistant way because as new SAFEs are developed, existing immutable applications now need to be updated with new SAFE proxies/masters. This solution also doesn't work if someone uses a non-standard proxy or if they deploy their own master directly.

Proposed solution

A. Add a getter on the SAFE master that just returns a constant string like Gnosis SAFE, along with perhaps a method that returns the VERSION constant. This would allow applications to simply call that function and see what it returns.

B. A more ecosystem friendly solution would be to define ERC-165 interfaces for all of the different components of a SAFE so users can query to see if a particular interface is supported. For example, the various module add/get/remove functions could be part of one interface, and the owners/threshold could be another interface, and the execution functions could be a third interface. This would allow an application to check to see if the set of methods it needs are supported by any contract (SAFE or not) and then interact with the contract regardless of whether it is a Gnosis SAFE or something else.

@MissLov3ly
Copy link

IM honestly trying so hard to keep up with how fast the development moves alongm with this project..
I invested early and didnt have a clue what I had until it was already so established that I have yet to catcth up!
Its been two years...honestly I could use some pointers if you have time from your busy schedule as I know time is so valuable.
I REALLY NEED HELP =(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants