PresetMultipleActions.sol

PresetMultipleActions.sol is an executive law that enables the execution of multiple predefined actions from a configurable set. It provides a mechanism to execute selected actions from a predefined list with fixed parameters.

Overview

This law provides a mechanism to:

  • Execute multiple function calls from a predefined set

  • Select which actions to execute using boolean flags

  • Use predefined target contracts and functions

  • Pass fixed parameters to the functions

  • Track execution history

  • Enforce execution rules

Configuration

When adopting a PresetMultipleActions instance, four parameters must be provided:

  1. descriptions (string[]): Array of human-readable descriptions for each action

  2. targets (address[]): Array of target contract addresses

  3. values (uint256[]): Array of ETH values to send with each call

  4. calldatas (bytes[]): Array of encoded function call data

Usage

Proposing an Action

When calling the law, an array of boolean values must be provided. Each boolean corresponds to a predefined action - if set to true, that action will be executed.

Execution Flow

  1. Configuration Validation

    • Verifies target addresses

    • Validates calldata formats

    • Checks execution conditions

  2. Action Selection

    • Processes boolean array to determine which actions to execute

    • Filters out actions marked as false

    • Prepares execution data for selected actions

  3. Function Execution

    • Executes each selected function call in sequence

    • Sends ETH if values > 0

    • Maintains execution order

  4. State Management

    • Records execution history

    • Updates execution state

    • Tracks function calls

Technical Specifications

State Variables

Functions

initializeLaw

  • Initializes law with configuration parameters

  • Sets up target contracts and functions

  • Stores execution parameters

  • Creates boolean input parameters for each action

handleRequest

  • Processes the execution request

  • Decodes boolean array to determine selected actions

  • Filters and prepares function calls for selected actions

  • Returns execution data

Error Conditions

  1. Function Call Errors

    • "Invalid target"

    • "Invalid calldata"

    • "Function call failed"

  2. Parameter Errors

    • "Invalid value"

    • "Invalid calldata format"

    • "Array length mismatch"

  3. Validation Errors

    • Zero address target

    • Invalid calldata

    • Invalid value amount

Current Deployments

Chain ID
Chain Name
Address

421614

Arbitrum Sepolia

0x81Bb430DF6ab37466270ECFE6f7c29B3D3e44A35

11155420

Optimism Sepolia

0x81Bb430DF6ab37466270ECFE6f7c29B3D3e44A35

11155111

Ethereum Sepolia

0x81Bb430DF6ab37466270ECFE6f7c29B3D3e44A35

Last updated