Home / Cardano Foundation / cardano-rosetta-java
Oct 30, 10-11 PM (0)
Oct 30, 11-12 AM (3)
Oct 31, 12-1 AM (0)
Oct 31, 1-2 AM (1)
Oct 31, 2-3 AM (0)
Oct 31, 3-4 AM (0)
Oct 31, 4-5 AM (0)
Oct 31, 5-6 AM (0)
Oct 31, 6-7 AM (0)
Oct 31, 7-8 AM (0)
Oct 31, 8-9 AM (1)
Oct 31, 9-10 AM (0)
Oct 31, 10-11 AM (0)
Oct 31, 11-12 PM (0)
Oct 31, 12-1 PM (0)
Oct 31, 1-2 PM (0)
Oct 31, 2-3 PM (0)
Oct 31, 3-4 PM (0)
Oct 31, 4-5 PM (2)
Oct 31, 5-6 PM (0)
Oct 31, 6-7 PM (0)
Oct 31, 7-8 PM (0)
Oct 31, 8-9 PM (0)
Oct 31, 9-10 PM (0)
Oct 31, 10-11 PM (0)
Oct 31, 11-12 AM (0)
Nov 01, 12-1 AM (0)
Nov 01, 1-2 AM (0)
Nov 01, 2-3 AM (0)
Nov 01, 3-4 AM (0)
Nov 01, 4-5 AM (0)
Nov 01, 5-6 AM (0)
Nov 01, 6-7 AM (0)
Nov 01, 7-8 AM (0)
Nov 01, 8-9 AM (0)
Nov 01, 9-10 AM (0)
Nov 01, 10-11 AM (0)
Nov 01, 11-12 PM (0)
Nov 01, 12-1 PM (0)
Nov 01, 1-2 PM (0)
Nov 01, 2-3 PM (0)
Nov 01, 3-4 PM (0)
Nov 01, 4-5 PM (0)
Nov 01, 5-6 PM (0)
Nov 01, 6-7 PM (0)
Nov 01, 7-8 PM (0)
Nov 01, 8-9 PM (0)
Nov 01, 9-10 PM (0)
Nov 01, 10-11 PM (0)
Nov 01, 11-12 AM (0)
Nov 02, 12-1 AM (0)
Nov 02, 1-2 AM (0)
Nov 02, 2-3 AM (0)
Nov 02, 3-4 AM (0)
Nov 02, 4-5 AM (0)
Nov 02, 5-6 AM (0)
Nov 02, 6-7 AM (0)
Nov 02, 7-8 AM (0)
Nov 02, 8-9 AM (0)
Nov 02, 9-10 AM (0)
Nov 02, 10-11 AM (0)
Nov 02, 11-12 PM (0)
Nov 02, 12-1 PM (0)
Nov 02, 1-2 PM (0)
Nov 02, 2-3 PM (0)
Nov 02, 3-4 PM (0)
Nov 02, 4-5 PM (0)
Nov 02, 5-6 PM (0)
Nov 02, 6-7 PM (0)
Nov 02, 7-8 PM (0)
Nov 02, 8-9 PM (0)
Nov 02, 9-10 PM (0)
Nov 02, 10-11 PM (0)
Nov 02, 11-12 AM (0)
Nov 03, 12-1 AM (0)
Nov 03, 1-2 AM (0)
Nov 03, 2-3 AM (0)
Nov 03, 3-4 AM (0)
Nov 03, 4-5 AM (0)
Nov 03, 5-6 AM (0)
Nov 03, 6-7 AM (0)
Nov 03, 7-8 AM (0)
Nov 03, 8-9 AM (0)
Nov 03, 9-10 AM (0)
Nov 03, 10-11 AM (0)
Nov 03, 11-12 PM (0)
Nov 03, 12-1 PM (0)
Nov 03, 1-2 PM (0)
Nov 03, 2-3 PM (0)
Nov 03, 3-4 PM (0)
Nov 03, 4-5 PM (0)
Nov 03, 5-6 PM (0)
Nov 03, 6-7 PM (0)
Nov 03, 7-8 PM (0)
Nov 03, 8-9 PM (0)
Nov 03, 9-10 PM (0)
Nov 03, 10-11 PM (0)
Nov 03, 11-12 AM (0)
Nov 04, 12-1 AM (0)
Nov 04, 1-2 AM (0)
Nov 04, 2-3 AM (0)
Nov 04, 3-4 AM (0)
Nov 04, 4-5 AM (0)
Nov 04, 5-6 AM (0)
Nov 04, 6-7 AM (0)
Nov 04, 7-8 AM (0)
Nov 04, 8-9 AM (2)
Nov 04, 9-10 AM (2)
Nov 04, 10-11 AM (0)
Nov 04, 11-12 PM (0)
Nov 04, 12-1 PM (0)
Nov 04, 1-2 PM (11)
Nov 04, 2-3 PM (3)
Nov 04, 3-4 PM (2)
Nov 04, 4-5 PM (0)
Nov 04, 5-6 PM (0)
Nov 04, 6-7 PM (0)
Nov 04, 7-8 PM (0)
Nov 04, 8-9 PM (0)
Nov 04, 9-10 PM (0)
Nov 04, 10-11 PM (0)
Nov 04, 11-12 AM (0)
Nov 05, 12-1 AM (0)
Nov 05, 1-2 AM (0)
Nov 05, 2-3 AM (0)
Nov 05, 3-4 AM (0)
Nov 05, 4-5 AM (0)
Nov 05, 5-6 AM (0)
Nov 05, 6-7 AM (0)
Nov 05, 7-8 AM (1)
Nov 05, 8-9 AM (1)
Nov 05, 9-10 AM (6)
Nov 05, 10-11 AM (0)
Nov 05, 11-12 PM (0)
Nov 05, 12-1 PM (0)
Nov 05, 1-2 PM (1)
Nov 05, 2-3 PM (0)
Nov 05, 3-4 PM (3)
Nov 05, 4-5 PM (0)
Nov 05, 5-6 PM (0)
Nov 05, 6-7 PM (0)
Nov 05, 7-8 PM (0)
Nov 05, 8-9 PM (0)
Nov 05, 9-10 PM (0)
Nov 05, 10-11 PM (0)
Nov 05, 11-12 AM (0)
Nov 06, 12-1 AM (0)
Nov 06, 1-2 AM (0)
Nov 06, 2-3 AM (0)
Nov 06, 3-4 AM (0)
Nov 06, 4-5 AM (0)
Nov 06, 5-6 AM (0)
Nov 06, 6-7 AM (0)
Nov 06, 7-8 AM (0)
Nov 06, 8-9 AM (0)
Nov 06, 9-10 AM (2)
Nov 06, 10-11 AM (1)
Nov 06, 11-12 PM (0)
Nov 06, 12-1 PM (1)
Nov 06, 1-2 PM (1)
Nov 06, 2-3 PM (1)
Nov 06, 3-4 PM (0)
Nov 06, 4-5 PM (0)
Nov 06, 5-6 PM (0)
Nov 06, 6-7 PM (0)
Nov 06, 7-8 PM (0)
Nov 06, 8-9 PM (1)
Nov 06, 9-10 PM (0)
Nov 06, 10-11 PM (0)
46 commits this week Oct 30, 2025 - Nov 06, 2025
refactor: remove duplicate transaction index on block_hash and tx_index
Remove redundant idx_transaction_block_hash_tx_index index as the existing idx_transaction_slot_desc_tx_index_desc already provides efficient query performance for block transaction retrieval with proper ordering.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
feat: implement DRep vote delegation read operations and refactor delegation entities
Add complete read path for DRep vote delegations including database entities, repository, and service layer integration. Rename DelegationEntity to PoolDelegationEntity across codebase to distinguish pool delegation from vote delegation. Add GovernanceTransactions test generator for creating DRep registration and delegation test data.

Key changes:
- Add DrepVoteDelegationEntity, DrepVoteDelegationId, and DrepVoteDelegationRepository
- Rename DelegationEntity → PoolDelegationEntity and update all references
- Integrate DRep delegation queries with certIndex filter in LedgerBlockServiceImpl
- Add mapper methods for DRep delegation entity-to-domain conversion
- Add GovernanceTransactions class with DRep registration and delegation transactions
- Update TestTransactionNames enum with DREP_REGISTER and DREP_VOTE_DELEGATION

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
feat: implement DRep vote delegation read operations for block/transaction inspection
Add database entities, repository, and service layer integration to support reading DRep vote delegations from the vote_delegation table. This completes the read path for governance delegation operations, complementing the existing construction endpoints. Filters results to certIndex == 0 as per requirements.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
fix: read Docker component versions from .env.docker-compose instead of .env
Problem:
- Pre-release builds were failing with "invalid tag" error
- Action expected .env file in root which doesn't exist
- When .env was missing, script exited silently (exit 0) but outputs were unset
- This caused Docker tags to be empty (e.g., "cardano-node:") causing build failures

Solution:
- Changed action to read from .env.docker-compose (which exists and contains all needed variables)
- Changed exit 0 to exit 1 for fail-fast behavior
- Added error messages when variables are not found
- Added debug output showing found values

This fixes the issue introduced in commit b9f1b0467 where versions were separated
for cardano-node, postgres, and mithril in DockerHub, but the action wasn't updated
to read from the correct source file.

Variables now correctly read from .env.docker-compose:
- CARDANO_NODE_VERSION=10.5.1
- PG_VERSION_TAG=REL_14_11
- MITHRIL_VERSION=2537.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
fix: implement support for tx_index column from Yaci-Store 2.0.0-beta to ensure
transactions are ordered correctly within blocks (0, 1, 2, ...) and in search results.

Changes:
- Added txIndex field to TxnEntity JPA entity
- Updated JOOQ Transaction and TransactionRecord classes to include TX_INDEX field
- Modified TxRepositoryQueryBuilder to select and map tx_index in queries
- Updated search query ordering to use (slot DESC, tx_index DESC)
- Updated block transaction query to order by tx_index ASC

This ensures:
- Transactions within blocks are returned in correct order (0, 1, 2, ...)
- Search results maintain proper chronological and within-slot ordering
- Consistent pagination for /search/transactions API
- Proper ordering for /block and /block/transaction endpoints
feat: update search indices to use tx_index for proper transaction ordering
Changes:
- Modified Index 6: idx_transaction_slot_desc_tx_index_desc (replaces tx_hash with tx_index)
  - Query pattern: ORDER BY slot DESC, tx_index DESC
  - Provides deterministic pagination for /search/transactions
- Added Index 7: idx_transaction_block_hash_tx_index
  - Composite index on (block_hash, tx_index)
  - Ensures transactions within blocks are ordered correctly (0, 1, 2, ...)
  - Optimizes /block and /block/transaction endpoints

This prepares the database schema for Yaci-Store 2.0.0-beta tx_index column support.
Since 2.0.0 will reindex from genesis, no DROP INDEX or migration files needed.
fix: implement support for tx_index column from Yaci-Store 2.0.0-beta to ensure
transactions are ordered correctly within blocks (0, 1, 2, ...) and in search results.

Changes:
- Added txIndex field to TxnEntity JPA entity
- Updated JOOQ Transaction and TransactionRecord classes to include TX_INDEX field
- Modified TxRepositoryQueryBuilder to select and map tx_index in queries
- Updated search query ordering to use (slot DESC, tx_index DESC)
- Updated block transaction query to order by tx_index ASC
- Created database migration V1.0_2501_0 with optimized indexes:
  - idx_transaction_block_hash_tx_index for block transaction ordering
  - idx_transaction_slot_desc_tx_index_desc (PostgreSQL) for search pagination
  - idx_transaction_slot_tx_index (H2) for search pagination
  - Drops old idx_transaction_slot_desc_tx_hash index

This ensures:
- Transactions within blocks are returned in correct order (0, 1, 2, ...)
- Search results maintain proper chronological and within-slot ordering
- Consistent pagination for /search/transactions API
- Proper ordering for /block and /block/transaction endpoints
fix: implement support for tx_index column from Yaci-Store 2.0.0-beta to ensure
transactions are ordered correctly within blocks (0, 1, 2, ...) and in search results.

Changes:
- Added txIndex field to TxnEntity JPA entity
- Updated JOOQ Transaction and TransactionRecord classes to include TX_INDEX field
- Modified TxRepositoryQueryBuilder to select and map tx_index in queries
- Updated search query ordering to use (slot DESC, tx_index DESC)
- Updated block transaction query to order by tx_index ASC
- Created database migration V1.0_2501_0 with optimized indexes:
  - idx_transaction_block_hash_tx_index for block transaction ordering
  - idx_transaction_slot_desc_tx_index_desc (PostgreSQL) for search pagination
  - idx_transaction_slot_tx_index (H2) for search pagination
  - Drops old idx_transaction_slot_desc_tx_hash index

This ensures:
- Transactions within blocks are returned in correct order (0, 1, 2, ...)
- Search results maintain proper chronological and within-slot ordering
- Consistent pagination for /search/transactions API
- Proper ordering for /block and /block/transaction endpoints
Implement support for tx_index column from Yaci-Store 2.0.0-beta to ensure
transactions are ordered correctly within blocks (0, 1, 2, ...) and in search results.

Changes:
- Added txIndex field to TxnEntity JPA entity
- Updated JOOQ Transaction and TransactionRecord classes to include TX_INDEX field
- Modified TxRepositoryQueryBuilder to select and map tx_index in queries
- Updated search query ordering to use (slot DESC, tx_index DESC)
- Updated block transaction query to order by tx_index ASC
- Created database migration V1.0_2501_0 with optimized indexes:
  - idx_transaction_block_hash_tx_index for block transaction ordering
  - idx_transaction_slot_desc_tx_index_desc (PostgreSQL) for search pagination
  - idx_transaction_slot_tx_index (H2) for search pagination
  - Drops old idx_transaction_slot_desc_tx_hash index

This ensures:
- Transactions within blocks are returned in correct order (0, 1, 2, ...)
- Search results maintain proper chronological and within-slot ordering
- Consistent pagination for /search/transactions API
- Proper ordering for /block and /block/transaction endpoints
chore: regenerate JOOQ classes from database schema (#643)
Regenerated all JOOQ table and record classes to reflect current database schema
with consistent formatting and field ordering.

Changes:
- Updated all JOOQ table classes (Transaction, Block, Address, AddressUtxo, etc.)
- Updated all JOOQ record classes with consistent getter/setter ordering
- Applied consistent code formatting across all generated files

Affected tables:
- Transaction and TransactionRecord
- Block, Address, AddressUtxo
- Delegation, StakeRegistration
- PoolRegistration, PoolRetirement
- Error, InvalidTransaction
- And all other schema tables (48 files total)

Generated from database schema using JOOQ code generator.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <[email protected]>
Co-authored-by: Claude <[email protected]>
chore: regenerate JOOQ classes from database schema
Regenerated all JOOQ table and record classes to reflect current database schema
with consistent formatting and field ordering.

Changes:
- Updated all JOOQ table classes (Transaction, Block, Address, AddressUtxo, etc.)
- Updated all JOOQ record classes with consistent getter/setter ordering
- Applied consistent code formatting across all generated files

Affected tables:
- Transaction and TransactionRecord
- Block, Address, AddressUtxo
- Delegation, StakeRegistration
- PoolRegistration, PoolRetirement
- Error, InvalidTransaction
- And all other schema tables (48 files total)

Generated from database schema using JOOQ code generator.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
fix: grant schema privileges to database user for PostgreSQL 15+
PostgreSQL 15+ changed the default security model where the PUBLIC role
no longer has CREATE privilege on the public schema. This caused Flyway
migrations to fail during integration tests with "permission denied for
schema public" errors.

Added explicit GRANT commands to:
- Grant all privileges on the public schema to the database user
- Grant privileges on all existing tables in the schema
- Set default privileges for future tables created in the schema

This fix ensures the yaci-indexer can successfully run database migrations
during Docker container initialization.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
feat: limit and randomize peer discovery to 25 peers
Implements peer limiting and randomization to improve network peer distribution:
- Limits peer responses to 25 peers (configurable via MAX_PEERS constant)
- Randomizes peer selection on each load/discovery to avoid always returning the same peers
- Updates PeerSnapshotServiceImpl to shuffle and limit peers from snapshot files
- Updates PeerDiscoveryManager to shuffle and limit discovered peers from cardano-node
- Maintains deterministic in-memory cache between refreshes
- Updates tests to reflect new peer limiting and randomization behavior

This prevents excessive peer lists and naturally distributes connections across the network
without needing to track peer performance metrics.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
fix: adjust pool retirement epoch to work with fresh devkit chains
Change the hardcoded retirement epoch from 19 to 2 to fix validation
errors on fresh devkit/testnet environments where current epoch is 0.

The Cardano protocol requires:
  current_epoch < retirement_epoch <= current_epoch + eMax (18)

With epoch 0, retirement epoch 19 exceeds the maximum allowed offset,
causing StakePoolRetirementWrongEpochPOOL validation errors.

Using epoch 2 provides a conservative offset that works on fresh chains
while still allowing successful pool retirement testing.

Changes:
- Update pool retirement epoch from 19 to 2 in PoolTransactions.java
- Update devkit genesis configuration and test data

Related error:
  StakePoolRetirementWrongEpochPOOL
  (Mismatch {mismatchSupplied = EpochNo 19, mismatchExpected = EpochNo 0})

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>