I have an Ethereum dApp that can support users connecting from EOA or smart contract wallets. In the case of smart contracts the contract they connect with must implement isValidSingature (EIP 1271) which the dApp calls, passing a signature generated from the EOA that the user initiated the transaction with, to determine if the transaction can proceed. I would like a user to be able to connect to the dApp specifying a Gnosis safe contract as their wallet. So assuming I have a Solidity implementation of isValidSignature (and perhaps other methods to add and remove permitted EOAs) is there a way I can have this implemented by the Gnosis safe contract? I could extend the Gnosis contract, but I gather this won't work because the Safe singleton must be used, not some new contract I have deployed. Do modules provide a way for this to be done? If so are there any examples or tutorials to look at? Thanks.
Asked
Active
Viewed 176 times
1
However it looks like the CompatibilityFallbackHandler implementation of isValidSignature requires the msg.sender to be another Safe.
I think I'm probably going about this the hard way and should instead switch to having my own contract implement isValidSignature and my contract be owned by a Safe. Should work for my case at least, and keeps my signature validation stuff cleanly separated from the Safe.
– Alex Sumner Aug 16 '23 at 15:39