@@ -158,10 +158,12 @@ parser_error_t read_byte_display(parser_context_t *ctx, byte_display_t *display)
158158 printf ("byte display decimal\n" );
159159 break ;
160160 case BYTE_DISPLAY_BECH32 :
161- printf ("TODO:byte display bech32!!!!!!!!!!!!!!!! \n" );
161+ printf ("byte display bech32\n" );
162+ CHECK_ERROR (read_hrp (ctx , & display -> bech32 .prefix ));
162163 break ;
163164 case BYTE_DISPLAY_BECH32M :
164- CHECK_ERROR (read_hrp (ctx , & display -> bech32 .prefix ));
165+ printf ("byte display bech32m\n" );
166+ CHECK_ERROR (read_hrp (ctx , & display -> bech32m .prefix ));
165167 break ;
166168 case BYTE_DISPLAY_BASE58 :
167169 printf ("byte display base58\n" );
@@ -529,7 +531,6 @@ parser_error_t metadata_read(parser_context_t *ctx, parser_tx_t *txObj) {
529531 return parser_too_many_schemes ;
530532 }
531533
532- // TODO: go through all schemes
533534 for (uint32_t i = 0 ; i < txObj -> schema .types .qty ; i ++ ) {
534535 // read type
535536 CHECK_ERROR (read_u8 (ctx , (uint8_t * )& txObj -> schema .types .schemes [i ].type ));
@@ -554,6 +555,39 @@ parser_error_t metadata_read(parser_context_t *ctx, parser_tx_t *txObj) {
554555 CHECK_ERROR (read_link (ctx , & txObj -> schema .types .schemes [i ].option_type ));
555556 print_string ("READING OPTION DONE\n" );
556557 break ;
558+ case LINKING_SCHEME_INTEGER :
559+ print_string ("READING INTEGER" );
560+ CHECK_ERROR (read_primitive_integer (ctx , & txObj -> schema .types .schemes [i ].integer_type ));
561+ print_string ("READING INTEGER DONE\n" );
562+ break ;
563+ case LINKING_SCHEME_BYTE_ARRAY :
564+ print_string ("READING BYTE ARRAY" );
565+ CHECK_ERROR (read_primitive_byte_array (ctx , & txObj -> schema .types .schemes [i ].byte_array_type ));
566+ print_string ("READING BYTE ARRAY DONE\n" );
567+ break ;
568+ case LINKING_SCHEME_FLOAT32 :
569+ print_string ("READING FLOAT32" );
570+ break ;
571+ case LINKING_SCHEME_FLOAT64 :
572+ print_string ("READING FLOAT64" );
573+ break ;
574+ case LINKING_SCHEME_STRING :
575+ print_string ("READING STRING" );
576+ break ;
577+ case LINKING_SCHEME_BOOLEAN :
578+ print_string ("READING BOOLEAN" );
579+ break ;
580+ case LINKING_SCHEME_SKIP :
581+ print_string ("READING SKIP" );
582+ CHECK_ERROR (read_u64 (ctx , (uint64_t * )& txObj -> schema .types .schemes [i ].skip_type ));
583+ printf ("skip_type: %llu\n" , txObj -> schema .types .schemes [i ].skip_type );
584+ print_string ("READING SKIP DONE\n" );
585+ break ;
586+ case LINKING_SCHEME_BYTE_VEC :
587+ print_string ("READING BYTE VEC" );
588+ CHECK_ERROR (read_byte_display (ctx , & txObj -> schema .types .schemes [i ].byte_vec_type ));
589+ print_string ("READING BYTE VEC DONE\n" );
590+ break ;
557591 case LINKING_SCHEME_ARRAY :
558592 print_string ("READING ARRAY" );
559593 CHECK_ERROR (read_array (ctx , & txObj -> schema .types .schemes [i ].array_type ));
@@ -564,6 +598,12 @@ parser_error_t metadata_read(parser_context_t *ctx, parser_tx_t *txObj) {
564598 CHECK_ERROR (read_link (ctx , & txObj -> schema .types .schemes [i ].vec_type ));
565599 print_string ("READING VEC DONE\n" );
566600 break ;
601+ case LINKING_SCHEME_MAP :
602+ print_string ("READING MAP" );
603+ CHECK_ERROR (read_link (ctx , & txObj -> schema .types .schemes [i ].map_type .key ));
604+ CHECK_ERROR (read_link (ctx , & txObj -> schema .types .schemes [i ].map_type .value ));
605+ print_string ("READING MAP DONE\n" );
606+ break ;
567607 default :
568608 printf ("UNKNOWN TYPE: %d\n" , txObj -> schema .types .schemes [i ].type );
569609 return parser_no_data ;
0 commit comments