An Oracle Signer can never be removed even if he becomes malicious
The call flow of removeOracleSIgner incorrectly compares the hash of ("removeOracleSigner", account) with the hash of ("addOracleSigner", account) for validating that an action is actually initiated. This validation always fails because the hashes can never match.\\nThe process of removing oracle signers is 2 stage. First function `signalRemoveOracleSigner` is called by the TimelockAdmin which stores a time-delayed timestamp corresponding to the keccak256 hash of ("removeOracleSigner", account) - a bytes32 value called actionKey in the pendingActions mapping.\\nThen the Admin needs to call function `removeOracleSignerAfterSignal` but this function calls `_addOracleSignerActionKey` instead of `_removeOracleSignerActionKey` for calculating the bytes32 action key value. Now the actionKey is calculated as keccak256 hash of ("addOracleSigner", account) and this hash is used for checking if this action is actually pending by ensuring its timestamp is not zero inside the `_validateAction` function called via `_validateAndClearAction` function at Line 122. The hash of ("removeOracleSigner", account) can never match hash of ("addOracleSigner", account) and thus this validation will fail.\\n```\\n function removeOracleSignerAfterSignal(address account) external onlyTimelockAdmin nonReentrant {\\n        bytes32 actionKey = _addOracleSignerActionKey(account);\\n        _validateAndClearAction(actionKey, "removeOracleSigner");\\n\\n        oracleStore.removeSigner(account);\\n\\n        EventUtils.EventLogData memory eventData;\\n        eventData.addressItems.initItems(1);\\n        eventData.addressItems.setItem(0, "account", account);\\n        eventEmitter.emitEventLog1(\\n            "RemoveOracleSigner",\\n            actionKey,\\n            eventData\\n        );\\n    }\\n```\\n
Replace the call to _addOracleSignerActionKey at Line 118 by call to _removeOracleSignerActionKey
The process of removing an Oracle Signer will always revert and this breaks an important safety measure if a certain oracle signer becomes malicious the TimelockAdmin could do nothing(these functions are meant for this). Hence, important functionality is permanently broken.
```\\n function removeOracleSignerAfterSignal(address account) external onlyTimelockAdmin nonReentrant {\\n        bytes32 actionKey = _addOracleSignerActionKey(account);\\n        _validateAndClearAction(actionKey, "removeOracleSigner");\\n\\n        oracleStore.removeSigner(account);\\n\\n        EventUtils.EventLogData memory eventData;\\n        eventData.addressItems.initItems(1);\\n        eventData.addressItems.setItem(0, "account", account);\\n        eventEmitter.emitEventLog1(\\n            "RemoveOracleSigner",\\n            actionKey,\\n            eventData\\n        );\\n    }\\n```\\n