Delegations Manager Attacher Proposal

If passed, this Proposal allows a Delegation to attach itself to the DelegationsManager of an Organization. The Proposal can be initialized with the data parameter that is executed by the lazyInit function:

function lazyInit(bytes memory lazyInitData) external returns(bytes memory lazyInitResponseData) {
    require(keccak256(bytes(uri)) == keccak256(""));
    (uri, lazyInitResponseData) = abi.decode(lazyInitData, (string, bytes));
    require(keccak256(bytes(uri)) != keccak256(""));

    (additionalUri, delegationsManagerAddress) = abi.decode(lazyInitResponseData, (string, address));

    lazyInitResponseData = "";
}

The lazyInit function contains the following data:

  • uri -> this can contain Proposal Metadata such as title, useful links, etc...

and then:

  • additionalUri -> this can contain Proposal description, risks, benefits, and other information to describe the proposal behavior.

  • delegationsManagerAddress -> this is the address of the DelegationsManager to which the Delegation will attach or detach itself.

The execute function has the Delegation attaches to the Delegations Manager via the set function.

function execute(bytes32) external {
    IOrganization organization = IOrganization(ILazyInitCapableElement(msg.sender).host());
    organization.submit(delegationsManagerAddress, abi.encodeWithSignature("set()"), address(0));
}

Voting For This Proposal

This Proposal is an Host only Proposal.

Last updated