Primary goal is to have 2 separate implementations of the different services, instead of having both implementations inside the same class with conditional switching. This is realized by introducing a direct chain service that performs the legacy implementation of storing chains directly inside the extra data in Trillian. The logic for the new feature is now in an indirect chain service that requires the storage and cache that chains are stored in.
Primary goal is to have 2 separate implementations of the different services, instead of having both implementations inside the same class with conditional switching. This is realized by introducing a direct chain service that performs the legacy implementation of storing chains directly inside the extra data in Trillian. The logic for the new feature is now in an indirect chain service that requires the storage and cache that chains are stored in.