class BridgeStorageProvider {

    public ReleaseTransactionSet getReleaseTransactionSet() throws IOException {
        if (releaseTransactionSet != null) {
            return releaseTransactionSet;
        }

        Set<ReleaseTransactionSet.Entry> entries = new HashSet<>(getFromRepository(RELEASE_TX_SET,
                data -> BridgeSerializationUtils.deserializeReleaseTransactionSet(data, networkParameters).getEntries()));

        if (!activations.isActive(RSKIP146)) {
            releaseTransactionSet = new ReleaseTransactionSet(entries);
            return releaseTransactionSet;
        }

        entries.addAll(getFromRepository(
                RELEASE_TX_SET_WITH_TXHASH,
                data -> BridgeSerializationUtils.deserializeReleaseTransactionSet(data, networkParameters, true).getEntries()));

        releaseTransactionSet = new ReleaseTransactionSet(entries);

        return releaseTransactionSet;
    }

    public  BridgeStorageProvider(Repository repository, RskAddress contractAddress, BridgeConstants bridgeConstants, ActivationConfig.ForBlock activations);

}