@@ -230,7 +230,6 @@ mod tests {
230230 message_info, mock_dependencies, mock_env, MockApi , MockQuerier , MockStorage ,
231231 } ;
232232 use cosmwasm_std:: { from_json, DenomMetadata , DenomUnit , OwnedDeps } ;
233- use serde_json:: { json, Error } ;
234233
235234 fn setup ( ) -> OwnedDeps < MockStorage , MockApi , MockQuerier > {
236235 let mut deps = mock_dependencies ( ) ;
@@ -298,161 +297,4 @@ mod tests {
298297
299298 assert_eq ! ( denom. symbol, "FOO0" ) ;
300299 }
301-
302- #[ test]
303- fn query_denom_metadata_with_null_denom_units_works ( ) {
304- // Test case with null denom_units - should deserialize as empty vec
305- let json_with_null_denom_units = json ! ( {
306- "description" : "Test Token" ,
307- "denom_units" : null,
308- "base" : "utest" ,
309- "display" : "TEST" ,
310- "name" : "Test Token" ,
311- "symbol" : "TEST" ,
312- "uri" : "https://test.com" ,
313- "uri_hash" : "hash"
314- } ) ;
315-
316- let metadata_with_null_denom_units: DenomMetadata =
317- serde_json:: from_value ( json_with_null_denom_units) . unwrap ( ) ;
318- assert_eq ! (
319- metadata_with_null_denom_units. denom_units,
320- Vec :: <DenomUnit >:: default ( )
321- ) ;
322- assert ! ( metadata_with_null_denom_units. denom_units. is_empty( ) ) ;
323-
324- // Test normal case with provided denom_units
325- let json_with_units = json ! ( {
326- "description" : "Test Token" ,
327- "denom_units" : [
328- {
329- "denom" : "utest" ,
330- "exponent" : 6 ,
331- "aliases" : [ "microtest" ]
332- }
333- ] ,
334- "base" : "utest" ,
335- "display" : "TEST" ,
336- "name" : "Test Token" ,
337- "symbol" : "TEST" ,
338- "uri" : "https://test.com" ,
339- "uri_hash" : "hash"
340- } ) ;
341-
342- let metadata_with_units: DenomMetadata = serde_json:: from_value ( json_with_units) . unwrap ( ) ;
343- assert_eq ! ( metadata_with_units. denom_units. len( ) , 1 ) ;
344- assert_eq ! ( metadata_with_units. denom_units[ 0 ] . denom, "utest" ) ;
345- assert_eq ! ( metadata_with_units. denom_units[ 0 ] . aliases. len( ) , 1 ) ;
346- assert_eq ! ( metadata_with_units. denom_units[ 0 ] . aliases[ 0 ] , "microtest" ) ;
347-
348- // Test with null aliases inside denom_units - should deserialize as empty vec
349- let json_with_null_aliases = json ! ( {
350- "description" : "Test Token" ,
351- "denom_units" : [
352- {
353- "denom" : "utest" ,
354- "exponent" : 6 ,
355- "aliases" : null
356- }
357- ] ,
358- "base" : "utest" ,
359- "display" : "TEST" ,
360- "name" : "Test Token" ,
361- "symbol" : "TEST" ,
362- "uri" : "https://test.com" ,
363- "uri_hash" : "hash"
364- } ) ;
365-
366- let metadata_with_null_aliases: DenomMetadata =
367- serde_json:: from_value ( json_with_null_aliases) . unwrap ( ) ;
368- assert_eq ! ( metadata_with_null_aliases. denom_units. len( ) , 1 ) ;
369- assert_eq ! (
370- metadata_with_null_aliases. denom_units[ 0 ] . aliases,
371- Vec :: <String >:: default ( )
372- ) ;
373- assert ! ( metadata_with_null_aliases. denom_units[ 0 ] . aliases. is_empty( ) ) ;
374- }
375-
376- #[ test]
377- fn query_denom_metadata_with_missing_fields_fails ( ) {
378- // Missing denom_units should be treated as default value (empty vec)
379- let json_missing_denom_units = json ! ( {
380- "description" : "Test Token" ,
381- "base" : "utest" ,
382- "display" : "TEST" ,
383- "name" : "Test Token" ,
384- "symbol" : "TEST" ,
385- "uri" : "https://test.com" ,
386- "uri_hash" : "hash"
387- } ) ;
388-
389- let json_missing_denom_units_metadata: Result < DenomMetadata , Error > =
390- serde_json:: from_value ( json_missing_denom_units) ;
391- assert ! ( json_missing_denom_units_metadata. is_err( ) ) ;
392-
393- // Missing aliases field should be treated as default (empty vec)
394- let json_missing_aliases = json ! ( {
395- "description" : "Test Token" ,
396- "denom_units" : [
397- {
398- "denom" : "utest" ,
399- "exponent" : 6
400- }
401- ] ,
402- "base" : "utest" ,
403- "display" : "TEST" ,
404- "name" : "Test Token" ,
405- "symbol" : "TEST" ,
406- "uri" : "https://test.com" ,
407- "uri_hash" : "hash"
408- } ) ;
409-
410- let missing_aliases_metadata: Result < DenomMetadata , Error > =
411- serde_json:: from_value ( json_missing_aliases) ;
412- assert ! ( missing_aliases_metadata. is_err( ) ) ;
413- }
414-
415- #[ test]
416- fn query_denom_metadata_with_mixed_null_and_value_works ( ) {
417- // Test with multiple denom units, some with null aliases and some with values
418- let mixed_json = json ! ( {
419- "description" : "Mixed Token" ,
420- "denom_units" : [
421- {
422- "denom" : "unit1" ,
423- "exponent" : 0 ,
424- "aliases" : null
425- } ,
426- {
427- "denom" : "unit2" ,
428- "exponent" : 6 ,
429- "aliases" : [ "microunit" , "u" ]
430- } ,
431- {
432- "denom" : "unit3" ,
433- "exponent" : 9 ,
434- "aliases" : [ ]
435- }
436- ] ,
437- "base" : "unit1" ,
438- "display" : "MIXED" ,
439- "name" : "Mixed Token" ,
440- "symbol" : "MIX" ,
441- "uri" : "https://mixed.token" ,
442- "uri_hash" : "hash123"
443- } ) ;
444-
445- let metadata: DenomMetadata = serde_json:: from_value ( mixed_json) . unwrap ( ) ;
446-
447- // First denom unit has null aliases, should be empty vec
448- assert ! ( metadata. denom_units[ 0 ] . aliases. is_empty( ) ) ;
449-
450- // Second has two aliases
451- assert_eq ! ( metadata. denom_units[ 1 ] . aliases. len( ) , 2 ) ;
452- assert_eq ! ( metadata. denom_units[ 1 ] . aliases[ 0 ] , "microunit" ) ;
453- assert_eq ! ( metadata. denom_units[ 1 ] . aliases[ 1 ] , "u" ) ;
454-
455- // Third has explicitly empty aliases
456- assert ! ( metadata. denom_units[ 2 ] . aliases. is_empty( ) ) ;
457- }
458300}
0 commit comments