Skip to content

Commit

Permalink
refactor: refact findUtxoByAddressAndBlock function
Browse files Browse the repository at this point in the history
change name for a more generic one and handle properly stake accounts

Refs cardano-foundation#206
  • Loading branch information
Juan Cruz committed Nov 24, 2020
1 parent 44e15b4 commit 91467e6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
Expand Up @@ -20,7 +20,7 @@ const configure = (blockService: BlockService, networkId: string): AccountContro
const accountAddress = accountBalanceRequest.account_identifier.address;
logger.debug({ accountBalanceRequest: request }, '[accountBalance] Request received');
logger.info(`[accountBalance] Looking for block: ${accountBalanceRequest.block_identifier || 'latest'}`);
const blockUtxos = await blockService.findUtxoByAddressAndBlock(
const blockUtxos = await blockService.findBalanceDataByAddressAndBlock(
logger,
accountBalanceRequest.account_identifier.address,
accountBalanceRequest.block_identifier?.index,
Expand Down
17 changes: 8 additions & 9 deletions cardano-rosetta-server/src/server/services/block-service.ts
Expand Up @@ -77,7 +77,7 @@ export interface BlockService {
* @param number
* @param hash
*/
findUtxoByAddressAndBlock(
findBalanceDataByAddressAndBlock(
logger: Logger,
address: string,
number?: number,
Expand Down Expand Up @@ -147,23 +147,22 @@ const configure = (repository: BlockchainRepository, cardanoService: CardanoServ
logger.debug({ genesisBlock }, '[getGenesisBlock] Returning genesis block');
return genesisBlock;
},
// FIXME: change the name for a more generic one, could be 'findBalanceDataByAddressAndBlock'
async findUtxoByAddressAndBlock(logger, address, number, hash) {
async findBalanceDataByAddressAndBlock(logger, address, number, hash) {
const block = await this.findBlock(logger, number, hash);
if (block === null) {
logger.error('[findUtxoByAddressAndBlock] Block not found');
logger.error('[findBalanceDataByAddressAndBlock] Block not found');
throw ErrorFactory.blockNotFoundError();
}

logger.info(`[findUtxoByAddressAndBlock] Looking for utxos for address ${address} and block ${block.hash}`);
logger.info(`[findBalanceDataByAddressAndBlock] Looking for utxos for address ${address} and block ${block.hash}`);
const addressPrefix = cardanoService.getPrefixFromAddress(address);
if ([stakeType.STAKE as string, stakeType.STAKE_TEST as string].includes(addressPrefix)) {
if ([stakeType.STAKE as string, stakeType.STAKE_TEST as string].some(type => addressPrefix.includes(type))) {
logger.debug(`[findBalanceDataByAddressAndBlock] About to get balance for ${address}`);
const balance = await repository.findBalanceByAddressAndBlock(logger, address, block.hash);
logger.debug(
balance,
`[findStakeUtxoByAddressAndBlock] Found stake balance of ${balance} for address ${address}`
`[findBalanceDataByAddressAndBlock] Found stake balance of ${balance} for address ${address}`
);

return {
block,
balance
Expand All @@ -172,7 +171,7 @@ const configure = (repository: BlockchainRepository, cardanoService: CardanoServ
const utxoDetails = await repository.findUtxoByAddressAndBlock(logger, address, block.hash);
logger.debug(
utxoDetails,
`[findUtxoByAddressAndBlock] Found ${utxoDetails.length} utxo details for address ${address}`
`[findBalanceDataByAddressAndBlock] Found ${utxoDetails.length} utxo details for address ${address}`
);
return {
block,
Expand Down

0 comments on commit 91467e6

Please sign in to comment.