File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -1603,4 +1603,22 @@ mod tests {
16031603 assert ! ( address. is_spend_standard( ) ) ;
16041604 assert_eq ! ( address. address_type( ) , Some ( AddressType :: P2a ) ) ;
16051605 }
1606+
1607+ #[ test]
1608+ fn base58_invalid_payload_length_reports_decoded_size ( ) {
1609+ use crate :: constants:: PUBKEY_ADDRESS_PREFIX_MAIN ;
1610+
1611+ let mut payload = [ 0u8 ; 22 ] ; // Invalid: should be 21
1612+ payload[ 0 ] = PUBKEY_ADDRESS_PREFIX_MAIN ;
1613+ let encoded = base58:: encode_check ( & payload) ;
1614+
1615+ let err = Address :: < NetworkUnchecked > :: from_base58_str ( & encoded) . unwrap_err ( ) ;
1616+ match err {
1617+ Base58Error :: InvalidBase58PayloadLength ( inner) => {
1618+ assert_eq ! ( inner. invalid_base58_payload_length( ) , 22 ) ; // Payload size
1619+ assert_ne ! ( inner. invalid_base58_payload_length( ) , encoded. len( ) ) ; // Not string size
1620+ }
1621+ other => panic ! ( "unexpected error: {other:?}" ) ,
1622+ }
1623+ }
16061624}
You can’t perform that action at this time.
0 commit comments