Skip to content

Commit

Permalink
Merge pull request #33 from aragon/f/dao-factory-with-e2e-test
Browse files Browse the repository at this point in the history
Adding a DAO factory E2E test
  • Loading branch information
brickpop authored Aug 6, 2024
2 parents 10b90ca + 1ad5ea6 commit 418c5a5
Show file tree
Hide file tree
Showing 5 changed files with 1,792 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/factory/TaikoDaoFactory.sol
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {IPluginSetup} from "@aragon/osx/framework/plugin/setup/IPluginSetup.sol"
import {IVotesUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/utils/IVotesUpgradeable.sol";
import {GovernanceERC20} from "@aragon/osx/token/ERC20/governance/GovernanceERC20.sol";
import {createERC1967Proxy} from "@aragon/osx/utils/Proxy.sol";
import {PermissionLib} from "@aragon/osx/core/permission/PermissionLib.sol";

contract TaikoDaoFactory {
struct DeploymentSettings {
Expand Down Expand Up @@ -141,14 +142,27 @@ contract TaikoDaoFactory {
DAO.initialize,
(
"", // Metadata URI
address(this),
address(this), // initialOwner
address(0x0), // Trusted forwarder
"" // DAO URI
)
)
)
)
);

// Grant DAO all the needed permissions on itself
PermissionLib.SingleTargetPermission[] memory items = new PermissionLib.SingleTargetPermission[](3);
items[0] =
PermissionLib.SingleTargetPermission(PermissionLib.Operation.Grant, address(dao), dao.ROOT_PERMISSION_ID());
items[1] = PermissionLib.SingleTargetPermission(
PermissionLib.Operation.Grant, address(dao), dao.UPGRADE_DAO_PERMISSION_ID()
);
items[2] = PermissionLib.SingleTargetPermission(
PermissionLib.Operation.Grant, address(dao), dao.REGISTER_STANDARD_CALLBACK_PERMISSION_ID()
);

dao.applySingleTargetPermissions(address(dao), items);
}

function prepareMultisig(DAO dao) internal returns (Multisig, PluginRepo, IPluginSetup.PreparedSetupData memory) {
Expand Down
Loading

0 comments on commit 418c5a5

Please sign in to comment.