Skip to content

IMultisig ​

Interface · packages/contracts/src/IMultisig.sol

Explained in: Multisig Plugin

Author: Aragon X - 2022-2024

An interface for an onchain multisig governance plugin in which a proposal passes if X out of Y approvals are met.

security-contact: sirt@aragon.org

Functions ​

addAddresses ​

solidity
function addAddresses(address[] _members) external

Selector: 0x3628731c

Adds new members to the address list. Previously, it checks if the new address list length would be greater than type(uint16).max, the maximal number of approvals.

ParameterTypeDescription
_membersaddress[]The addresses of the members to be added.

approve ​

solidity
function approve(uint256 _proposalId, bool _tryExecution) external

Selector: 0x747442d3

Records an approval for a proposal and, if specified, attempts execution if certain conditions are met.

ParameterTypeDescription
_proposalIduint256The ID of the proposal to approve.
_tryExecutionboolIf true, attempts execution of the proposal after approval, without reverting on failure.

canApprove ​

solidity
function canApprove(uint256 _proposalId, address _account) external view returns (bool)

Selector: 0x29245f56

Checks if an account is eligible to participate in a proposal vote. Confirms that the proposal is open, the account is listed as a member, and the account has not previously voted or approved this proposal.

ParameterTypeDescription
_proposalIduint256The ID of the proposal.
_accountaddressThe address of the account to check.

canExecute ​

solidity
function canExecute(uint256 _proposalId) external view returns (bool)

Selector: 0xcc63604a

Checks if a proposal can be executed.

ParameterTypeDescription
_proposalIduint256The ID of the proposal to be checked.

execute ​

solidity
function execute(uint256 _proposalId) external

Selector: 0xfe0d94c1

Executes a proposal if all execution conditions are met.

ParameterTypeDescription
_proposalIduint256The ID of the proposal to be executed.

hasApproved ​

solidity
function hasApproved(uint256 _proposalId, address _account) external view returns (bool)

Selector: 0x2358d5a8

Returns whether the account has approved the proposal.

ParameterTypeDescription
_proposalIduint256The ID of the proposal.
_accountaddressThe account address to be checked.

removeAddresses ​

solidity
function removeAddresses(address[] _members) external

Selector: 0xa84eb999

Removes existing members from the address list. Previously, it checks if the new address list length is at least as long as the minimum approvals parameter requires. Note that minApprovals is must be at least 1 so the address list cannot become empty.

ParameterTypeDescription
_membersaddress[]The addresses of the members to be removed.