See [EIP-1271: SIGNING AND VERIFYING SMART CONTRACT SIGNATURES](https://ethereum.org/pt/developers/tutorials/eip-1271-smart-contract-signatures/)
1. Register dappnode safe with "publishers"
2. Create module to interact with the dappnode safe:
- Define message to be signed -> IPFS hash?
- Asks safe to add signed message -> sdk publish
- A transaction to be executed before or together publishment transaction?
- Determine the gnosis safe to use with the from Addres of the transaction.
- Ask the determined safe`isValidSignature` mehod with the IPFS hash of the pkg for signature verification.
3. Implement above module in sdk-publish -> Add option to publish packages with a safe in the sdk-publish
4. Implement above module in dappmanager -> Verification of published package calling the safe.
- dappmanager should either consider a package as signed when having standard signature.json from EOA or calling from Address safe (if available) `isValidSignature`
- error handling must take into account all the edge cases when calling the from address and throwing an error:
- Not a smart contract
- Not signed !
- Method does not exist
- Other?
-