Skip to content

Commit

Permalink
Merge branch 'main' into feat/RA-60-Single-docker-container
Browse files Browse the repository at this point in the history
  • Loading branch information
Kammerlo authored May 2, 2024
2 parents e34b7ca + 74a9d83 commit 4c22bde
Show file tree
Hide file tree
Showing 61 changed files with 1,158 additions and 637 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import org.cardanofoundation.rosetta.api.block.model.entity.BlockAwareEntity;
import org.hibernate.annotations.DynamicUpdate;

@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
Expand Down Expand Up @@ -45,3 +47,4 @@ public class StakeAddressBalanceEntity extends BlockAwareEntity {
@Column(name = "epoch")
private Integer epoch;
}

Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import org.cardanofoundation.rosetta.common.util.CardanoAddressUtils;
import org.cardanofoundation.rosetta.common.util.ValidationUtil;
import org.springframework.stereotype.Service;
import org.openapitools.client.model.AccountBalanceRequest;
import org.openapitools.client.model.AccountBalanceResponse;
Expand All @@ -21,9 +19,12 @@
import org.cardanofoundation.rosetta.api.account.service.AccountService;
import org.cardanofoundation.rosetta.api.block.model.domain.Block;
import org.cardanofoundation.rosetta.api.block.model.domain.StakeAddressBalance;
import org.cardanofoundation.rosetta.api.block.service.LedgerBlockService;
import org.cardanofoundation.rosetta.common.exception.ExceptionFactory;
import org.cardanofoundation.rosetta.common.mapper.DataMapper;
import org.cardanofoundation.rosetta.common.services.LedgerDataProviderService;
import org.cardanofoundation.rosetta.common.util.CardanoAddressUtils;
import org.cardanofoundation.rosetta.common.util.ValidationUtil;


@Service
Expand All @@ -32,6 +33,7 @@
public class AccountServiceImpl implements AccountService {

private final LedgerDataProviderService ledgerDataProviderService;
private final LedgerBlockService ledgerBlockService;

@Override
public AccountBalanceResponse getAccountBalance(AccountBalanceRequest accountBalanceRequest) {
Expand Down Expand Up @@ -70,7 +72,7 @@ public AccountCoinsResponse getAccountCoins(AccountCoinsRequest accountCoinsRequ
}
List<Currency> currenciesRequested = ValidationUtil.filterRequestedCurrencies(currencies);
log.debug("[accountCoins] Filter currency is {}", currenciesRequested);
Block latestBlock = ledgerDataProviderService.findLatestBlock();
Block latestBlock = ledgerBlockService.findLatestBlock();
log.debug("[accountCoins] Latest block is {}", latestBlock);
List<Utxo> utxos = ledgerDataProviderService.findUtxoByAddressAndCurrency(accountAddress,
currenciesRequested);
Expand All @@ -82,9 +84,9 @@ private AccountBalanceResponse findBalanceDataByAddressAndBlock(String address,
String hash) {
Block blockDto;
if (number != null || hash != null) {
blockDto = ledgerDataProviderService.findBlock(number, hash);
blockDto = ledgerBlockService.findBlock(number, hash);
} else {
blockDto = ledgerDataProviderService.findLatestBlock();
blockDto = ledgerBlockService.findLatestBlock();
}

if (Objects.isNull(blockDto)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import lombok.AllArgsConstructor;

Expand Down Expand Up @@ -31,10 +30,7 @@ public class BlockToBlockResponse {
* @return The Rosetta compatible BlockResponse
*/
public BlockResponse toDto(Block model) {

return Optional
.ofNullable(modelMapper.getTypeMap(Block.class, BlockResponse.class))
.orElseGet(() -> modelMapper.createTypeMap(Block.class, BlockResponse.class))
return modelMapper.typeMap(Block.class, BlockResponse.class)
.addMappings(mapper -> {
mapper.<String>map(Block::getHash, (dest, v) -> currentId(dest).setHash(v));
mapper.<Long>map(Block::getNumber, (dest, v) -> currentId(dest).setIndex(v));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ public class BlockToEntity {

public Block fromEntity(BlockEntity entity) {

return ofNullable(modelMapper.getTypeMap(BlockEntity.class, Block.class))
.orElseGet(() -> modelMapper.createTypeMap(BlockEntity.class, Block.class))
return modelMapper.typeMap(BlockEntity.class, Block.class)
.addMappings(mapper -> {

mapper.map(BlockEntity::getSlotLeader, Block::setCreatedBy);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;
Expand All @@ -20,9 +18,7 @@ public class BlockTxToBlockTxResponse {


public BlockTransactionResponse toDto(BlockTx model) {
return Optional
.ofNullable(modelMapper.getTypeMap(BlockTx.class, BlockTransactionResponse.class))
.orElseGet(() -> modelMapper.createTypeMap(BlockTx.class, BlockTransactionResponse.class))
return modelMapper.typeMap(BlockTx.class, BlockTransactionResponse.class)
.setPostConverter(ctx -> {
ctx.getDestination().setTransaction(blockTxToRosettaTx.toDto(model));
return ctx.getDestination();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,20 @@
import org.cardanofoundation.rosetta.api.block.model.entity.TxnEntity;
import org.cardanofoundation.rosetta.common.annotation.PersistenceMapper;

import static java.util.Optional.ofNullable;

@PersistenceMapper
@AllArgsConstructor
public class BlockTxToEntity {

final ModelMapper modelMapper;

public BlockTx fromEntity(TxnEntity model) {
return ofNullable(modelMapper.getTypeMap(TxnEntity.class, BlockTx.class))
.orElseGet(() -> modelMapper.createTypeMap(TxnEntity.class, BlockTx.class))
return modelMapper.typeMap(TxnEntity.class, BlockTx.class)
.addMappings(mapper -> {

mapper.map(TxnEntity::getTxHash, BlockTx::setHash);
mapper.map(tx -> tx.getBlock().getHash(), BlockTx::setBlockHash);
mapper.map(tx -> tx.getBlock().getNumber(), BlockTx::setBlockNo);
mapper.map(tx -> 0L, BlockTx::setSize); // will be calcualted, within the population method
mapper.map(tx -> 0L, BlockTx::setScriptSize); // TODO Needs to be calulated if needed

})
.setPostConverter(ctx -> {
TxnEntity source = ctx.getSource();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.List;
import java.util.Optional;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;

Expand Down Expand Up @@ -44,17 +43,13 @@ public class BlockTxToRosettaTransaction {
* @return The Rosetta compatible Transaction
*/
public Transaction toDto(BlockTx model) {
return Optional
.ofNullable(modelMapper.getTypeMap(BlockTx.class, Transaction.class))
.orElseGet(() -> modelMapper.createTypeMap(BlockTx.class, Transaction.class))
return modelMapper.typeMap(BlockTx.class, Transaction.class)
.addMappings(mapper -> {
mapper.<String>map(BlockTx::getHash,
(dest, v) -> dest.getTransactionIdentifier().setHash(v));

mapper.<Long>map(BlockTx::getSize, (dest, v) -> dest.getMetadata().setSize(v));
mapper.<Long>map(BlockTx::getScriptSize,
(dest, v) -> dest.getMetadata().setScriptSize(v));

})

.setPostConverter(ctx -> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;
import org.modelmapper.spi.MappingContext;
import org.openapitools.client.model.Amount;
import org.openapitools.client.model.Operation;
import org.openapitools.client.model.OperationStatus;

Expand All @@ -22,16 +19,13 @@ public class DelegationToOperation extends AbstractToOperation<Delegation> {

@Override
public Operation toDto(Delegation model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(Delegation.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(Delegation.class, Operation.class))
return modelMapper.typeMap(Delegation.class, Operation.class)
.addMappings(mp -> {
mp.map(f -> status.getStatus(), Operation::setStatus);
mp.map(f-> OperationType.STAKE_DELEGATION.getValue(), Operation::setType);
mp.<Long>map(f -> index, (d,v) -> d.getOperationIdentifier().setIndex(v));
mp.<String>map(Delegation::getAddress, (d, v) -> d.getAccount().setAddress(v));
mp.<String>map(Delegation::getPoolId, (d, v) -> d.getMetadata().setPoolKeyHash(v));

})
.setPostConverter(MappingContext::getDestination)
.map(model);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;
Expand All @@ -21,9 +19,7 @@ public class InputToOperation extends AbstractToOperation<Utxo> {

@Override
public Operation toDto(Utxo model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(Utxo.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(Utxo.class, Operation.class))
return modelMapper.typeMap(Utxo.class, Operation.class)
.addMappings(mp -> {
mp.map(f -> Constants.INPUT, Operation::setType);
mp.<CoinAction>map(f -> CoinAction.SPENT, (d, v) -> d.getCoinChange().setCoinAction(v));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;
Expand All @@ -21,9 +19,7 @@ public class OutputToOperation extends AbstractToOperation<Utxo> {

@Override
public Operation toDto(Utxo model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(Utxo.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(Utxo.class, Operation.class))
return modelMapper.typeMap(Utxo.class, Operation.class)
.addMappings(mp -> {
mp.map(f -> Constants.OUTPUT, Operation::setType);
mp.<CoinAction>map(f -> CoinAction.CREATED, (d, v) -> d.getCoinChange().setCoinAction(v));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;
Expand All @@ -22,22 +20,16 @@ public class PoolRegistrationToOperation extends AbstractToOperation<PoolRegistr

@Override
public Operation toDto(PoolRegistration model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(PoolRegistration.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(PoolRegistration.class, Operation.class))
return modelMapper.typeMap(PoolRegistration.class, Operation.class)
.addMappings(mp -> {
mp.skip(Operation::setMetadata);

mp.<Long>map(f -> index, (d, v) -> d.getOperationIdentifier().setIndex(v));
mp.map(f -> status.getStatus(), Operation::setStatus);
mp.map(f -> OperationType.POOL_REGISTRATION.getValue(), Operation::setType);
mp.<String>map(PoolRegistration::getPoolId, (d, v) -> d.getAccount().setAddress(v));


})

.setPostConverter(ctx -> {
Operation d = ctx.getDestination();
var d = ctx.getDestination();
d.setMetadata(new OperationMetadata());

ctx.getDestination().getMetadata().setDepositAmount(getDepositAmount());
Expand All @@ -51,7 +43,6 @@ public Operation toDto(PoolRegistration model, OperationStatus status, int index
params.setRelays(ctx.getSource().getRelays());
params.setVrfKeyHash(ctx.getSource().getVrfKeyHash());
params.setRewardAddress(ctx.getSource().getRewardAccount());

return d;
})
.map(model);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;
Expand All @@ -22,23 +20,16 @@ public class PoolRetirementToOperation extends AbstractToOperation<PoolRetiremen

@Override
public Operation toDto(PoolRetirement model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(PoolRetirement.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(PoolRetirement.class, Operation.class))
return modelMapper.typeMap(PoolRetirement.class, Operation.class)
.addMappings(mp -> {

mp.map(f -> status.getStatus(), Operation::setStatus);
mp.map(f -> OperationType.POOL_RETIREMENT.getValue(), Operation::setType);
mp.<String>map(PoolRetirement::getPoolId, (d, v) -> d.getAccount().setAddress(v));
mp.map(f -> OperationMetadata.builder().epoch(model.getEpoch()).build(),
Operation::setMetadata);
mp.<Long>map(f -> index, (d, v) -> d.getOperationIdentifier().setIndex(v));


})
.setPostConverter(MappingContext::getDestination)
.map(model);
}


}
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;

import lombok.AllArgsConstructor;

import com.bloxbean.cardano.yaci.core.model.certs.CertificateType;
import org.cardanofoundation.rosetta.common.services.ProtocolParamService;
import org.modelmapper.ModelMapper;
import org.modelmapper.spi.MappingContext;
import org.openapitools.client.model.Amount;
Expand All @@ -23,9 +20,7 @@ public class StakeRegistrationToOperation extends AbstractToOperation<StakeRegis
final ModelMapper modelMapper;
@Override
public Operation toDto(StakeRegistration model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(StakeRegistration.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(StakeRegistration.class, Operation.class))
return modelMapper.typeMap(StakeRegistration.class, Operation.class)
.addMappings(mp -> {

mp.map(f -> status.getStatus(), Operation::setStatus);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package org.cardanofoundation.rosetta.api.block.mapper;

import java.util.Optional;
import lombok.AllArgsConstructor;

import org.modelmapper.ModelMapper;

import org.cardanofoundation.rosetta.api.block.model.domain.Withdrawal;
import org.cardanofoundation.rosetta.api.block.model.entity.WithdrawalEntity;
import org.cardanofoundation.rosetta.common.annotation.OpenApiMapper;
import org.modelmapper.ModelMapper;

@OpenApiMapper
@AllArgsConstructor
Expand All @@ -14,12 +15,8 @@ public class WithdrawalEntityToWithdrawal {
private final ModelMapper modelMapper;

public Withdrawal fromEntity(WithdrawalEntity model) {
return Optional
.ofNullable(modelMapper.getTypeMap(WithdrawalEntity.class, Withdrawal.class))
.orElseGet(() -> modelMapper.createTypeMap(WithdrawalEntity.class, Withdrawal.class))
.addMappings(mp -> {
mp.map(WithdrawalEntity::getAddress, Withdrawal::setStakeAddress);
})
return modelMapper.typeMap(WithdrawalEntity.class, Withdrawal.class)
.addMappings(mp -> mp.map(WithdrawalEntity::getAddress, Withdrawal::setStakeAddress))
.map(model);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ public class WithdrawalToOperation extends AbstractToOperation<Withdrawal>{

@Override
public Operation toDto(Withdrawal model, OperationStatus status, int index) {
return Optional
.ofNullable(modelMapper.getTypeMap(Withdrawal.class, Operation.class))
.orElseGet(() -> modelMapper.createTypeMap(Withdrawal.class, Operation.class))
return modelMapper.typeMap(Withdrawal.class, Operation.class)
.addMappings(mp -> {
mp.map(f -> status.getStatus(), Operation::setStatus);
mp.map(f -> OperationType.WITHDRAWAL.getValue(), Operation::setType);
Expand Down
Loading

0 comments on commit 4c22bde

Please sign in to comment.