class RepositoryImpl implements Repository {

    @Override
    public synchronized Set<UscAddress> getAccountsKeys() {
        Set<UscAddress> result = new HashSet<>();

        for (UscAddress addr : detailsDataStore.keys()) {
            if (this.isExist(addr)) {
                result.add(addr);
            }
        }

        return result;
    }

    public  RepositoryImpl(TrieStore store, TrieStore.Pool trieStorePool, int memoryStorageLimit);
    public  RepositoryImpl(
            TrieStore store,
            KeyValueDataSource detailsDS,
            TrieStore.Pool trieStorePool,
            int memoryStorageLimit);
    private  RepositoryImpl(
            TrieStore store,
            DetailsDataStore detailsDataStore,
            TrieStore.Pool trieStorePool,
            int memoryStorageLimit);

}