MEDIUM severity: This vulnerability is related to the lack of event emission for important state changes in the codeb. This vulnerability is related to the lack of event emission for important state changes in the codebase. Specifically, several critical settings-related state changes are not properly notified through events. This oversight can lead to difficulties in tracking and monitoring the state of the system,...

Vulnerable code:
```\nfunction bootstrapMember(string memory _id, string memory _url, address _nodeAddress) override external onlyGuardian onlyBootstrapMode onlyRegisteredNode(_nodeAddress) onlyLatestContract("rocketDAONodeTrusted", address(this)) {\n    RocketDAONodeTrustedProposalsInterface(getContractAddress("rocketDAONodeTrustedProposals")).proposalInvite(_id, _url, _nodeAddress);\n}\n\nfunction bootstrapSettingUint(string memory _settingContractName, string memory _settingPath, uint256 _value) override external onlyGuardian onlyBootstrapMode onlyLatestContract("rocketDAONodeTrusted", address(this)) {\n    RocketDAONodeTrustedProposalsInterface(getContractAddress("rocketDAONodeTrustedProposals")).proposalSettingUint(_settingContractName, _settingPath, _value);\n}\n\nfunction bootstrapSettingBool(string memory _settingContractName, string memory _settingPath, bool _value) override external onlyGuardian onlyBootstrapMode onlyLatestContract("rocketDAONodeTrusted", address(this)) {\n    RocketDAONodeTrustedProposalsInterface(getContractAddress("rocketDAONodeTrustedProposals")).proposalSettingBool(_settingContractName, _settingPath, _value);\n}\n```\n```\nfunction bootstrapSettingMulti(string[] memory _settingContractNames, string[] memory _settingPaths, SettingType[] memory _types, bytes[] memory _values) override external onlyGuardian onlyBootstrapMode onlyLatestContract("rocketDAOProtocol", address(this)) {\n    RocketDAOProtocolProposalsInterface(getContractAddress("rocketDAOProtocolProposals")).proposalSettingMulti(_settingContractNames, _settingPaths, _types, _values);\n}\n\nfunction bootstrapSettingUint(string memory _settingContractName, string memory _settingPath, uint256 _value) override external onlyGuardian onlyBootstrapMode onlyLatestContract("rocketDAOProtocol", address(this)) {\n    RocketDAOProtocolProposalsInterface(getContractAddress("rocketDAOProtocolProposals")).proposalSettingUint(_settingContractName, _settingPath, _value);\n}\n```\n```\nfunction bootstrapTreasuryNewContract(\n    string memory _contractName,\n    address _recipientAddress,\n    uint256 _amountPerPeriod,\n    uint256 _periodLength,\n    uint256 _startTime,\n    uint256 _numPeriods\n) override external onlyGuardian onlyBootstrapMode onlyLatestContract("rocketDAOProtocol", address(this)) {\n    RocketDAOProtocolProposalsInterface(getContractAddress("rocketDAOProtocolProposals")).proposalTreasuryNewContract(\n        _contractName,\n        _recipientAddress,\n        _amountPerPeriod,\n        _periodLength,\n        _startTime,\n        _numPeriods\n    );\n}\n```\n```\nfunction bootstrapDisable(bool _confirmDisableBootstrapMode) override external onlyGuardian onlyBootstrapMode onlyLatestContract("rocketDAOProtocol", address(this)) {\n    require(_confirmDisableBootstrapMode == true, "You must confirm disabling bootstrap mode, it can only be done once!");\n    setBool(keccak256(abi.encodePacked(daoNameSpace, "bootstrapmode.disabled")), true);\n}\n```\n```\nfunction bootstrapSpendTreasury(\n    string memory _invoiceID,\n    address _recipientAddress,\n    uint256 _amount\n) \n    override\n    external\n    onlyGuardian\n    onlyBootstrapMode\n    onlyLatestContract("rocketDAOProtocol", address(this))\n{\n    RocketDAOProtocolProposalsInterface(getContractAddress("rocketDAOProtocolProposals")).proposalTreasuryOneTimeSpend(_invoiceID, _recipientAddress, _amount);\n}\n```\n```\nfunction setDelegate(address _newDelegate) external override onlyRegisteredNode(msg.sender) {\n    delegate = _newDelegate;\n}\n```\n```\nfunction proposalSettingUint(string memory _settingNameSpace, string memory _settingPath, uint256 _value) override public onlyExecutingContracts() onlyValidSetting(_settingNameSpace, _settingPath) {\n    bytes32 namespace = keccak256(abi.encodePacked(protocolDaoSettingNamespace, _settingNameSpace));\n}\n```\n```\nfunction proposalSettingBool(string memory _settingNameSpace, string memory _settingPath, bool _value) \n    override \n    public \n    onlyExecutingContracts() \n    onlyValidSetting(_settingNameSpace, _settingPath) {\n    bytes32 namespace = keccak256(abi.encodePacked(protocolDaoSettingNamespace, _settingNameSpace));\n}\n```\n```\nfunction proposalSettingAddress(\n    string memory _settingNameSpace,\n    string memory _settingPath,\n    address _value\n) override public onlyExecutingContracts() onlyValidSetting(_settingNameSpace, _settingPath) {\n    bytes32 namespace = keccak256(abi.encodePacked(protocolDaoSettingNamespace, _settingNameSpace));\n}\n```\n```\nfunction proposalInvite(string calldata _id, address _memberAddress) override public onlyLatestContract("rocketDAOProtocolProposals", msg.sender) {\n    override public onlyLatestContract("rocketDAOProtocolProposals", msg.sender) {\n        // Their proposal executed, record the block\n```