StatementOfIntent
StatementOfIntent is an executive mandate that allows a role to record a proposal or statement on-chain without triggering any execution logic.
Overview
Section titled “Overview”This mandate serves as a signaling mechanism. It allows a governance body or role to formalize an intent, make a declaration, or pass a “soft vote” where the outcome is recorded in the Powers protocol history but no contract calls are made. It can be used for:
- Ratifying off-chain decisions.
- Signaling agreement on a strategy.
- Publishing a statement or manifesto.
Configuration
Section titled “Configuration”When adopting a StatementOfIntent instance, the following parameter is required:
inputParams(string[]): An array of strings describing the data fields that the statement should contain (e.g.,["string Title", "string Content"]). This guides the UI on what inputs to request from the proposer.
Proposing an Action
Section titled “Proposing an Action”When calling the mandate, the input (mandateCalldata) should contain the encoded values corresponding to the configured inputParams. These values are stored in the action history.
Execution Flow
Section titled “Execution Flow”- No-Op
- The mandate receives the input but intentionally does not generate any execution calls.
- It returns empty arrays (
targets,values,calldatas), signifying a successful “execution” that results in no state changes beyond the recording of the action itself.
Technical Specifications
Section titled “Technical Specifications”Functions
Section titled “Functions”initializeMandate
Section titled “initializeMandate”function initializeMandate(...) public override- Sets input parameters to the provided
inputParams.
handleRequest
Section titled “handleRequest”function handleRequest(...) public pure override returns (...)- Returns empty execution arrays.
Current Deployments
Section titled “Current Deployments”| Chain ID | Chain Name | Address |
|---|---|---|