safe-react
safe-react copied to clipboard
proposal: add ability for apps to communitcate with modules
Overview
Right now safe has an amazing ability to add apps that extend the ability. But unfortunately, right now this functionality is limited to proxySafe addresses only, and there's no way to send transactions on behalf of the module.
Goals
Right now from frontend we don’t have the opportunity to execute transactions via the safe-core-sdk for the enabled modules. In that case the page is crashing.
Since the modules have "root" access to the safe funds anyway, there's no increased security or compromise to extend the "whitelist" of addresses with all modules enabled in the user's Safe instance.
GnosisSafe(safeProxyInstance.address)getModulesPaginated() returns this list;
Example of PoC of weighted-multisig module (untested and not production ready!!!) that might enable extended functionality https://devpost.com/software/weighted-multisig that supported points for each signer, and minimum point threshold.
But there many more potential use-cases, where apps can enrich functionality with module communication.
Requirements
apps should have the ability to use safe-core-sdk for proxySafe address AND all enabled modules.
Screens
Concept of usage weighted-gnosis-safe via app widget https://youtu.be/Va4YAjraDTY
Links
https://rinkeby.etherscan.io/address/0x9f00Fc48DF8ad9c81b6eB78b3680B1bD1091049f#code
I had some trouble following how we don't allow communication with modules, so I apologize if I got it wrong.
A module transaction must be called from an external wallet; To achieve this, you can add wallet connection logic to the app, ask the user to connect a wallet and execute a transaction. However, if you call it from the Safe, you must follow the regular signature collection flow, so I'm not sure if it makes sense.
Closing, assuming the issue has been clarified.