Skip to content

Commit ac78c57

Browse files
authored
add test
1 parent 34b927d commit ac78c57

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

bitcoin/src/address/mod.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)