Skip to content

Governor_CreateProposal

Governor_CreateProposal is an executive mandate that enables the creation of governance proposals on a configured Governor contract. It provides a mechanism to create proposals that can be voted on through standard governance processes.

This mandate provides a mechanism to:

  • Create governance proposals on any Governor contract
  • Define proposal targets, values, and calldatas
  • Add human-readable descriptions to proposals
  • Integrate with standard governance frameworks
  • Track proposal creation

When adopting a Governor_CreateProposal instance, one parameter must be provided:

  1. governorContract (address): The address of the Governor contract to create proposals on

When calling the mandate, four parameters must be provided:

  1. targets (address[]): Array of target contract addresses for the proposal
  2. values (uint256[]): Array of ETH values to send with each call
  3. calldatas (bytes[]): Array of encoded function call data
  4. description (string): Human-readable description of the proposal
  1. Parameter Validation

    • Verifies governor contract is configured
    • Validates proposal parameters
    • Checks array length consistency
    • Ensures description is not empty
  2. Proposal Creation

    • Encodes proposal parameters
    • Creates call to Governor.propose function
    • Prepares execution data
  3. State Management

    • Records proposal creation
    • Updates governance state
    • Tracks proposal history
mapping(bytes32 mandateHash => address governorContract) public governorContracts;
function initializeMandate(
uint16 index,
string memory nameDescription,
bytes memory inputParams,
bytes memory config
) public override
  • Initializes mandate with configuration parameters
  • Sets up Governor contract address
  • Configures proposal creation parameters
function handleRequest(
address caller,
address powers,
uint16 mandateId,
bytes memory mandateCalldata,
uint256 nonce
) public view virtual override returns (
uint256 actionId,
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas
)
  • Processes the proposal creation request
  • Validates proposal parameters
  • Prepares call to Governor.propose
  • Returns execution data
  1. Configuration Errors

    • “Governor_CreateProposal: Governor contract not configured”
    • Invalid governor contract address
  2. Parameter Errors

    • “Governor_CreateProposal: No targets provided”
    • “Governor_CreateProposal: Targets and values length mismatch”
    • “Governor_CreateProposal: Targets and calldatas length mismatch”
    • “Governor_CreateProposal: Description cannot be empty”
  3. Validation Errors

    • Zero address governor contract
    • Empty targets array
    • Mismatched array lengths
    • Empty description
Chain IDChain NameAddress
421614Arbitrum Sepolia0xa797799EE0C6FA7d9b76eF52e993288a04982267
11155420Optimism Sepolia0xa797799EE0C6FA7d9b76eF52e993288a04982267
11155111Ethereum Sepolia0xa797799EE0C6FA7d9b76eF52e993288a04982267