@@ -39,6 +39,9 @@ public class CachingTokenRegistryHttpGatewayImpl implements TokenRegistryHttpGat
3939    @ Value ("${cardano.rosetta.TOKEN_REGISTRY_BASE_URL:https://tokens.cardano.org/api}" )
4040    protected  String  tokenRegistryBaseUrl ;
4141
42+     @ Value ("${cardano.rosetta.TOKEN_REGISTRY_HOST:tokens.cardano.org}" )
43+     protected  String  tokenRegistryHost ;
44+ 
4245    @ Value ("${cardano.rosetta.TOKEN_REGISTRY_REQUEST_TIMEOUT_SECONDS:2}" ) // aggressive timeout as we do not want to block the request 
4346    protected  int  httpRequestTimeoutSeconds ;
4447
@@ -65,6 +68,9 @@ public Map<String, Optional<TokenSubject>> getTokenMetadataBatch(@NonNull Set<St
6568            return  Collections .emptyMap ();
6669        }
6770
71+ 
72+         
73+ 
6874        // Check cache for existing entries 
6975        Set <String > subjectsToFetch  = new  HashSet <>();
7076        Map <String , Optional <TokenSubject >> result  = new  HashMap <>();
@@ -88,8 +94,7 @@ public Map<String, Optional<TokenSubject>> getTokenMetadataBatch(@NonNull Set<St
8894            return  result ;
8995        }
9096
91-         log .info ("Initiating remote token registry HTTP POST request: {} for {} subjects" , batchEndpointUrl , subjectsToFetch .size ());
92-         log .debug ("Subjects to fetch from token registry: {}" , subjectsToFetch );
97+         log .info ("Initiating remote token registry HTTP POST request: {} for {} subjects: {}" , batchEndpointUrl , subjectsToFetch .size (), subjectsToFetch );
9398
9499        Stopwatch  stopwatch  = Stopwatch .createStarted ();
95100
@@ -102,13 +107,16 @@ public Map<String, Optional<TokenSubject>> getTokenMetadataBatch(@NonNull Set<St
102107
103108            // Prepare HTTP request 
104109            String  requestBody  = objectMapper .writeValueAsString (request );
110+             int  requestBodyBytes  = requestBody .getBytes (java .nio .charset .StandardCharsets .UTF_8 ).length ;
111+             log .info ("HTTP POST request body size: {} bytes ({} KB)" , requestBodyBytes , String .format ("%.2f" , requestBodyBytes  / 1024.0 ));
105112
106113            HttpRequest  httpRequest  = HttpRequest .newBuilder ()
107114                    .uri (URI .create (batchEndpointUrl ))
108115                    .POST (HttpRequest .BodyPublishers .ofString (requestBody ))
109116                    .timeout (Duration .ofSeconds (httpRequestTimeoutSeconds ))
110117                    .header ("Content-Type" , "application/json" )
111118                    .header ("Accept" , "application/json" )
119+                     .header ("Host" , tokenRegistryHost )
112120                    .build ();
113121
114122            // Execute request 
@@ -127,12 +135,16 @@ public Map<String, Optional<TokenSubject>> getTokenMetadataBatch(@NonNull Set<St
127135            TokenRegistryBatchResponse  batchResponse  = objectMapper .readValue (response .body (), TokenRegistryBatchResponse .class );
128136
129137            if  (batchResponse .getSubjects () != null ) {
138+                 List <String > receivedSubjects  = new  ArrayList <>();
130139                for  (TokenSubject  tokenSubject  : batchResponse .getSubjects ()) {
131140                    // If subject is in response, cache it as found 
132141                    result .put (tokenSubject .getSubject (), Optional .of (tokenSubject ));
133142                    tokenMetadataCache .put (tokenSubject .getSubject (), TokenCacheEntry .found (tokenSubject ));
134-                     log . debug ( "Cached token metadata for subject: {}" ,  tokenSubject .getSubject ());
143+                     receivedSubjects . add ( tokenSubject .getSubject ());
135144                }
145+                 log .info ("Token registry returned {} subjects: {}" , receivedSubjects .size (), receivedSubjects );
146+             } else  {
147+                 log .info ("Token registry returned no subjects" );
136148            }
137149
138150            // Cache empty results for subjects that were requested but not found in the response 
0 commit comments