Skip to content

Commit db46c38

Browse files
authored
Refactor: Move models and services according to the new structure (RA-79)
1 parent efd1993 commit db46c38

27 files changed

+86
-172
lines changed

api/src/main/java/org/cardanofoundation/rosetta/api/account/service/AccountServiceImpl.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.cardanofoundation.rosetta.api.block.model.domain.Block;
2121
import org.cardanofoundation.rosetta.api.block.model.domain.StakeAddressBalance;
2222
import org.cardanofoundation.rosetta.api.block.service.LedgerBlockService;
23-
import org.cardanofoundation.rosetta.api.construction.service.LedgerDataProviderService;
2423
import org.cardanofoundation.rosetta.common.exception.ExceptionFactory;
2524
import org.cardanofoundation.rosetta.common.mapper.DataMapper;
2625
import org.cardanofoundation.rosetta.common.util.CardanoAddressUtils;
@@ -32,7 +31,7 @@
3231
@RequiredArgsConstructor
3332
public class AccountServiceImpl implements AccountService {
3433

35-
private final LedgerDataProviderService ledgerDataProviderService;
34+
private final LedgerAccountService ledgerAccountService;
3635
private final LedgerBlockService ledgerBlockService;
3736

3837
@Override
@@ -74,7 +73,7 @@ public AccountCoinsResponse getAccountCoins(AccountCoinsRequest accountCoinsRequ
7473
log.debug("[accountCoins] Filter currency is {}", currenciesRequested);
7574
Block latestBlock = ledgerBlockService.findLatestBlock();
7675
log.debug("[accountCoins] Latest block is {}", latestBlock);
77-
List<Utxo> utxos = ledgerDataProviderService.findUtxoByAddressAndCurrency(accountAddress,
76+
List<Utxo> utxos = ledgerAccountService.findUtxoByAddressAndCurrency(accountAddress,
7877
currenciesRequested);
7978
log.debug("[accountCoins] found {} Utxos for Address {}", utxos.size(), accountAddress);
8079
return DataMapper.mapToAccountCoinsResponse(latestBlock, utxos);
@@ -90,7 +89,7 @@ private AccountBalanceResponse findBalanceDataByAddressAndBlock(String address,
9089
blockDto.getHash());
9190
if (CardanoAddressUtils.isStakeAddress(address)) {
9291
log.debug("Address is StakeAddress, get balance for {}", address);
93-
List<StakeAddressBalance> balances = ledgerDataProviderService.findStakeAddressBalanceByAddressAndBlock(
92+
List<StakeAddressBalance> balances = ledgerAccountService.findStakeAddressBalanceByAddressAndBlock(
9493
address, blockDto.getNumber());
9594
if (Objects.isNull(balances) || balances.isEmpty()) {
9695
log.error("[findBalanceDataByAddressAndBlock] No balance found for {}", address);
@@ -99,7 +98,7 @@ private AccountBalanceResponse findBalanceDataByAddressAndBlock(String address,
9998
return DataMapper.mapToStakeAddressBalanceResponse(blockDto, balances.getFirst());
10099
} else {
101100
log.debug("Address isn't StakeAddress");
102-
List<AddressBalance> balances = ledgerDataProviderService.findBalanceByAddressAndBlock(
101+
List<AddressBalance> balances = ledgerAccountService.findBalanceByAddressAndBlock(
103102
address, blockDto.getNumber());
104103
return DataMapper.mapToAccountBalanceResponse(blockDto, balances);
105104
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.api.construction.service;
1+
package org.cardanofoundation.rosetta.api.account.service;
22

33

44
import java.util.List;
@@ -12,7 +12,7 @@
1212
/**
1313
* Exposes functions to access chain data that has been indexed according to Rosetta API needs.
1414
*/
15-
public interface LedgerDataProviderService {
15+
public interface LedgerAccountService {
1616

1717
List<AddressBalance> findBalanceByAddressAndBlock(String address, Long number);
1818

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.api.construction.service;
1+
package org.cardanofoundation.rosetta.api.account.service;
22

33
import java.util.List;
44

@@ -25,7 +25,7 @@
2525
@Slf4j
2626
@Component
2727
@RequiredArgsConstructor
28-
public class PostgresLedgerDataProviderService implements LedgerDataProviderService {
28+
public class LedgerAccountServiceImpl implements LedgerAccountService {
2929

3030
private final AddressBalanceRepository addressBalanceRepository;
3131
private final AddressUtxoRepository addressUtxoRepository;
@@ -34,6 +34,7 @@ public class PostgresLedgerDataProviderService implements LedgerDataProviderServ
3434

3535
@Override
3636
public List<AddressBalance> findBalanceByAddressAndBlock(String address, Long number) {
37+
log.debug("Finding balance for address {} at block {}", address, number);
3738
List<AddressBalanceEntity> balances = addressBalanceRepository.findAddressBalanceByAddressAndBlockNumber(
3839
address, number);
3940
return balances.stream().map(AddressBalance::fromEntity).toList();
@@ -42,6 +43,7 @@ public List<AddressBalance> findBalanceByAddressAndBlock(String address, Long nu
4243
@Override
4344
public List<StakeAddressBalance> findStakeAddressBalanceByAddressAndBlock(String address,
4445
Long number) {
46+
log.debug("Finding stake address balance for address {} at block {}", address, number);
4547
List<StakeAddressBalanceEntity> balances = stakeAddressRepository.findStakeAddressBalanceByAddressAndBlockNumber(
4648
address, number);
4749
return balances.stream().map(StakeAddressBalance::fromEntity).toList();
@@ -50,6 +52,7 @@ public List<StakeAddressBalance> findStakeAddressBalanceByAddressAndBlock(String
5052

5153
@Override
5254
public List<Utxo> findUtxoByAddressAndCurrency(String address, List<Currency> currencies) {
55+
log.debug("Finding UTXOs for address {} with currencies {}", address, currencies);
5356
List<AddressUtxoEntity> addressUtxoEntities = addressUtxoRepository.findUtxosByAddress(address);
5457
return addressUtxoEntities.stream()
5558
.map(entity -> createUtxoModel(currencies, entity))

api/src/main/java/org/cardanofoundation/rosetta/api/block/service/LedgerBlockServiceImpl.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import java.util.Collections;
44
import java.util.List;
55
import java.util.Optional;
6-
import jakarta.transaction.Transactional;
76
import jakarta.validation.constraints.NotNull;
87

98
import lombok.RequiredArgsConstructor;
109
import lombok.extern.slf4j.Slf4j;
1110

1211
import org.springframework.stereotype.Component;
12+
import org.springframework.transaction.annotation.Transactional;
1313
import org.apache.commons.lang3.ObjectUtils;
1414
import org.modelmapper.ModelMapper;
1515

@@ -86,6 +86,7 @@ private Block toModelFrom(BlockEntity blockEntity) {
8686
}
8787

8888
@Override
89+
@Transactional(readOnly = true)
8990
public List<BlockTx> findTransactionsByBlock(Long blk, String blkHash) {
9091
log.debug("query blockNumber: {} blockHash: {}", blk, blkHash);
9192
Optional<BlockEntity> blkEntity = blockRepository.findByNumberAndHash(blk, blkHash);
@@ -103,7 +104,6 @@ public List<BlockTx> findTransactionsByBlock(Long blk, String blkHash) {
103104
return Collections.emptyList();
104105
}
105106

106-
107107
@Override
108108
public Block findLatestBlock() {
109109
log.debug("About to look for latest block");
@@ -120,8 +120,6 @@ public GenesisBlock findGenesisBlock() {
120120
.orElseThrow(ExceptionFactory::genesisBlockNotFound);
121121
}
122122

123-
124-
@Transactional
125123
private void populateTransaction(BlockTx transaction) {
126124

127125
Optional.ofNullable(transaction.getInputs())

api/src/main/java/org/cardanofoundation/rosetta/common/enumeration/AddressType.java renamed to api/src/main/java/org/cardanofoundation/rosetta/api/construction/enumeration/AddressType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.enumeration;
1+
package org.cardanofoundation.rosetta.api.construction.enumeration;
22

33
import com.fasterxml.jackson.annotation.JsonValue;
44

api/src/main/java/org/cardanofoundation/rosetta/common/enumeration/CatalystLabels.java renamed to api/src/main/java/org/cardanofoundation/rosetta/api/construction/enumeration/CatalystLabels.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.enumeration;
1+
package org.cardanofoundation.rosetta.api.construction.enumeration;
22

33
import com.fasterxml.jackson.annotation.JsonValue;
44

api/src/main/java/org/cardanofoundation/rosetta/api/construction/service/CardanoConstructionService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import org.cardanofoundation.rosetta.api.block.model.domain.ProcessOperations;
2121
import org.cardanofoundation.rosetta.api.block.model.domain.ProtocolParams;
22-
import org.cardanofoundation.rosetta.common.enumeration.AddressType;
22+
import org.cardanofoundation.rosetta.api.construction.enumeration.AddressType;
2323
import org.cardanofoundation.rosetta.common.enumeration.EraAddressType;
2424
import org.cardanofoundation.rosetta.common.enumeration.NetworkEnum;
2525
import org.cardanofoundation.rosetta.common.enumeration.NetworkIdentifierType;

api/src/main/java/org/cardanofoundation/rosetta/api/construction/service/CardanoConstructionServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
import org.cardanofoundation.rosetta.api.block.model.domain.ProcessOperationsReturn;
5656
import org.cardanofoundation.rosetta.api.block.model.domain.ProtocolParams;
5757
import org.cardanofoundation.rosetta.api.block.service.LedgerBlockService;
58-
import org.cardanofoundation.rosetta.common.enumeration.AddressType;
58+
import org.cardanofoundation.rosetta.api.construction.enumeration.AddressType;
5959
import org.cardanofoundation.rosetta.common.enumeration.EraAddressType;
6060
import org.cardanofoundation.rosetta.common.enumeration.NetworkEnum;
6161
import org.cardanofoundation.rosetta.common.enumeration.NetworkIdentifierType;

api/src/main/java/org/cardanofoundation/rosetta/api/construction/service/ConstructionApiServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
import org.openapitools.client.model.TransactionIdentifierResponse;
4343

4444
import org.cardanofoundation.rosetta.api.block.model.domain.ProtocolParams;
45-
import org.cardanofoundation.rosetta.common.enumeration.AddressType;
45+
import org.cardanofoundation.rosetta.api.construction.enumeration.AddressType;
4646
import org.cardanofoundation.rosetta.common.enumeration.NetworkEnum;
4747
import org.cardanofoundation.rosetta.common.enumeration.NetworkIdentifierType;
4848
import org.cardanofoundation.rosetta.common.exception.ExceptionFactory;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.model.cardano.transaction;
1+
package org.cardanofoundation.rosetta.api.mempool.model;
22

33
import java.util.Arrays;
44
import java.util.Objects;

api/src/main/java/org/cardanofoundation/rosetta/api/mempool/service/MempoolServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import com.bloxbean.cardano.yaci.helper.LocalTxMonitorClient;
1818
import org.openapitools.client.model.TransactionIdentifier;
1919

20+
import org.cardanofoundation.rosetta.api.mempool.model.MemPoolTransaction;
2021
import org.cardanofoundation.rosetta.api.network.service.NetworkService;
21-
import org.cardanofoundation.rosetta.common.model.cardano.transaction.MemPoolTransaction;
2222

2323
@Service
2424
@Slf4j
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.model.cardano.network;
1+
package org.cardanofoundation.rosetta.api.network.model;
22

33
import lombok.AllArgsConstructor;
44
import lombok.Data;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.model.cardano.network;
1+
package org.cardanofoundation.rosetta.api.network.model;
22

33
import javax.annotation.Nullable;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.model.cardano.network;
1+
package org.cardanofoundation.rosetta.api.network.model;
22

33
import java.util.List;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.cardanofoundation.rosetta.common.model.cardano.network;
1+
package org.cardanofoundation.rosetta.api.network.model;
22

33

44
import java.util.List;

api/src/main/java/org/cardanofoundation/rosetta/api/network/service/NetworkServiceImpl.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,29 @@
2323
import io.swagger.v3.oas.models.OpenAPI;
2424
import io.swagger.v3.parser.OpenAPIV3Parser;
2525
import org.json.JSONObject;
26-
import org.openapitools.client.model.*;
26+
import org.openapitools.client.model.Allow;
2727
import org.openapitools.client.model.Error;
28+
import org.openapitools.client.model.MetadataRequest;
29+
import org.openapitools.client.model.NetworkIdentifier;
30+
import org.openapitools.client.model.NetworkListResponse;
31+
import org.openapitools.client.model.NetworkOptionsResponse;
32+
import org.openapitools.client.model.NetworkRequest;
33+
import org.openapitools.client.model.NetworkStatusResponse;
34+
import org.openapitools.client.model.OperationStatus;
35+
import org.openapitools.client.model.Peer;
36+
import org.openapitools.client.model.Version;
2837

2938
import org.cardanofoundation.rosetta.api.block.model.domain.Block;
3039
import org.cardanofoundation.rosetta.api.block.model.domain.GenesisBlock;
3140
import org.cardanofoundation.rosetta.api.block.model.domain.NetworkStatus;
3241
import org.cardanofoundation.rosetta.api.block.service.LedgerBlockService;
42+
import org.cardanofoundation.rosetta.api.network.model.Producer;
43+
import org.cardanofoundation.rosetta.api.network.model.PublicRoot;
44+
import org.cardanofoundation.rosetta.api.network.model.TopologyConfig;
3345
import org.cardanofoundation.rosetta.common.enumeration.OperationType;
3446
import org.cardanofoundation.rosetta.common.enumeration.OperationTypeStatus;
3547
import org.cardanofoundation.rosetta.common.exception.ExceptionFactory;
3648
import org.cardanofoundation.rosetta.common.mapper.DataMapper;
37-
import org.cardanofoundation.rosetta.common.model.cardano.network.Producer;
38-
import org.cardanofoundation.rosetta.common.model.cardano.network.PublicRoot;
39-
import org.cardanofoundation.rosetta.common.model.cardano.network.TopologyConfig;
4049
import org.cardanofoundation.rosetta.common.util.Constants;
4150
import org.cardanofoundation.rosetta.common.util.FileUtils;
4251
import org.cardanofoundation.rosetta.common.util.RosettaConstants;
@@ -67,14 +76,13 @@ public void filePathExistingValidator() {
6776
validator(genesisPath);
6877
}
6978

70-
private void validator( String path) {
71-
if(!new File(path).exists()) {
79+
private void validator(String path) {
80+
if (!new File(path).exists()) {
7281
throw ExceptionFactory.configNotFoundException();
7382
}
7483
}
7584

7685

77-
7886
@Override
7987
public NetworkListResponse getNetworkList(MetadataRequest metadataRequest) {
8088
log.info("[networkList] Looking for all supported networks");
@@ -127,8 +135,8 @@ public NetworkOptionsResponse getNetworkOptions(NetworkRequest networkRequest)
127135

128136
@Override
129137
public NetworkStatusResponse getNetworkStatus(NetworkRequest networkRequest)
130-
throws IOException {
131-
log.debug("[networkStatus] Request received:" + networkRequest.toString());
138+
throws IOException {
139+
log.debug("[networkStatus] Request received: {}", networkRequest.toString());
132140
log.info("[networkStatus] Looking for latest block");
133141
NetworkStatus networkStatus = networkStatus();
134142
return datamapper.mapToNetworkStatusResponse(networkStatus);
@@ -155,13 +163,13 @@ public Network getSupportedNetwork() {
155163
};
156164
}
157165

158-
private NetworkStatus networkStatus() throws IOException {
166+
private NetworkStatus networkStatus() throws IOException {
159167
log.info("[networkStatus] Looking for latest block");
160168
Block latestBlock = ledgerBlockService.findLatestBlock();
161-
log.debug("[networkStatus] Latest block found " + latestBlock);
169+
log.debug("[networkStatus] Latest block found {}", latestBlock);
162170
log.debug("[networkStatus] Looking for genesis block");
163171
GenesisBlock genesisBlock = ledgerBlockService.findGenesisBlock();
164-
log.debug("[networkStatus] Genesis block found " + genesisBlock);
172+
log.debug("[networkStatus] Genesis block found {}", genesisBlock);
165173

166174
ObjectMapper mapper = new ObjectMapper();
167175
String content = FileUtils.fileReader(topologyFilepath);
@@ -179,10 +187,10 @@ private List<Peer> getPeerFromConfig(TopologyConfig topologyFile) {
179187
List<Producer> producers = Optional.ofNullable(topologyFile).map(
180188
TopologyConfig::getProducers)
181189
.orElseGet(() -> {
182-
assert topologyFile != null;
183-
return getPublicRoots(topologyFile.getPublicRoots());
190+
assert topologyFile != null;
191+
return getPublicRoots(topologyFile.getPublicRoots());
184192
});
185-
log.debug("[getPeersFromConfig] Found " + producers.size() + " peers");
193+
log.debug("[getPeersFromConfig] Found {} peers", producers.size());
186194
return producers.stream().map(producer -> new Peer(producer.getAddr(), null)).toList();
187195
}
188196

api/src/main/java/org/cardanofoundation/rosetta/common/enumeration/NonStakeAddressPrefix.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.JsonValue;
44

5+
// [FutureUse] It could be used to generate address
56
public enum NonStakeAddressPrefix {
67
MAIN("addr"),
78
TEST("addr_test");

0 commit comments

Comments
 (0)