ERC4973 icon indicating copy to clipboard operation
ERC4973 copied to clipboard

Question: payload to approve signatures from Gnosis Safe

Open rahulrumalla opened this issue 2 years ago • 3 comments

I've been working with Gnosis Safe team to get EIP-712 working well. They're now pushing a fix that would resolve issue and fully support 712. I'm trying to test this with Otterspace app, i.e., approving a badge using Safe.

What would the payload/params to call say give() using safe? Would the signature be 0x and signer be the address of the Safe contract?

Wondering if I understood this integration flow correctly..

rahulrumalla avatar Oct 07 '22 12:10 rahulrumalla

Oh, that sounds super cool @rahulrumalla! Thanks for pushing :)

OK so here is how I believe that would work:

  • Safe implements EIP-1271: https://eips.ethereum.org/EIPS/eip-1271 from what I know
  • So if e.g. a Safe was the issuer of an ABT where basically safeAddress==from, then EIP-4973's give calls through to the Safe's implementation of EIP-1271 function isValidSignature. Specifically, it's
    • https://github.com/rugpullindex/ERC4973/blob/1c8d612d78739c2f7bd8cae95be808bcbf3a1cae/src/ERC4973.sol#L112
    • https://github.com/OpenZeppelin/openzeppelin-contracts/blob/cb3f2ab900e39c5ab6e0de6663edf06f573b834f/contracts/utils/cryptography/SignatureChecker.sol#L36
  • So technically, the signature, hash and signer's address are reaching there. But then I don't know what the Safe sees as valid. I guess the answer lies in the code around this location: https://github.com/safe-global/safe-contracts/blob/da66b45ec87d2fb6da7dfd837b29eacdb9a604c5/contracts/GnosisSafe.sol#L285
  • e.g. the Safe could implement it where any of the Safe member's signatures is a valid signature representing the entire multisig wallet. Or it could implement any other behavior.
  • Maybe u can point someone in their team to this issue and they can comment

TimDaub avatar Oct 07 '22 15:10 TimDaub

Ok. Forwarded this thread for input. What you said makes sense to me and I got this working end to end in our test build with their test build. Fix is going into production on Monday apparently.

rahulrumalla avatar Oct 07 '22 15:10 rahulrumalla

@rahulrumalla any update on this? Can we close?

TimDaub avatar Oct 19 '22 09:10 TimDaub

@rahulrumalla any update, can this be closed?

TimDaub avatar Jan 06 '23 11:01 TimDaub