SafeAllowance_Action
SafeAllowance_Action is an integration mandate that allows the Powers contract to execute specific functions on the Safe Allowance Module, acting as an authorized delegate.
Overview
Section titled “Overview”The Gnosis Safe Allowance Module allows designated delegates to execute transactions on behalf of the Safe, within certain limits. This mandate enables the Powers contract itself to act as one of these delegates. By executing this mandate, the Powers contract triggers a specific action on the Allowance Module (e.g., updating allowance parameters, adding other delegates) through the Safe.
It constructs the necessary execTransaction call to route the action correctly.
Configuration
Section titled “Configuration”When adopting a SafeAllowance_Action instance, the following parameters are required:
inputParams(string[]): A description of the input parameters required for the function call (e.g.,["uint256 newLimit"]).functionSelector(bytes4): The function selector of the call to be executed on the Allowance Module.allowanceModule(address): The address of the Allowance Module.
Proposing an Action
Section titled “Proposing an Action”When calling the mandate, the input data (mandateCalldata) must correspond to the parameters expected by the configured function selector.
Execution Flow
Section titled “Execution Flow”-
Preparation
- Identifies the Safe Treasury address.
- Constructs a signature (
v=1) authorizing the transaction. In this context, the signature indicates that themsg.sender(Powers) is the delegate approving the action.
-
Safe Execution
- Generates a call to
Safe.execTransaction. - The internal transaction targets the
allowanceModule. - The data payload is
functionSelector + mandateCalldata. - The operation type is set to
Call.
- Generates a call to
Technical Specifications
Section titled “Technical Specifications”Functions
Section titled “Functions”initializeMandate
Section titled “initializeMandate”function initializeMandate(...) public override- Initializes the mandate configuration.
- Sets the input parameter descriptions.
handleRequest
Section titled “handleRequest”function handleRequest(...) public view override returns (...)- Constructs the call to the Allowance Module via the Safe.
- Encodes the delegate signature.
Current Deployments
Section titled “Current Deployments”| Chain ID | Chain Name | Address |
|---|---|---|