class BridgeStorageProvider {

    public PendingFederation getPendingFederation() {
        if (pendingFederation != null || shouldSavePendingFederation) {
            return pendingFederation;
        }

        Optional<Integer> storageVersion = getStorageVersion(PENDING_FEDERATION_FORMAT_VERSION);

        pendingFederation = safeGetFromRepository(PENDING_FEDERATION_KEY,
                data -> data == null
                        ? null :
                        deserializePendingFederationAccordingToVersion(data, storageVersion)
        );
        return pendingFederation;
    }

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

}