lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit 6a48a9553194e0164622253f708d74009c73afcd
parent d537e4e7ae6e5ff70ff1d3f5d84809860881d088
Author: triesap <tyson@radroots.org>
Date:   Tue, 30 Jun 2026 04:17:45 +0000

trade: require prefixed dvm hash values

Diffstat:
Mcrates/trade/src/dvm.rs | 11+++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/crates/trade/src/dvm.rs b/crates/trade/src/dvm.rs @@ -727,7 +727,14 @@ fn parse_listing_addr_tag( } fn validate_hash32(value: &str, field: &'static str) -> Result<(), RadrootsTradeDvmError> { - if value.len() != 64 || !value.bytes().all(|byte| byte.is_ascii_hexdigit()) { + let Some(hex) = value.strip_prefix("0x") else { + return Err(RadrootsTradeDvmError::InvalidHash { field }); + }; + if hex.len() != 64 + || !hex + .bytes() + .all(|byte| byte.is_ascii_digit() || (b'a'..=b'f').contains(&byte)) + { return Err(RadrootsTradeDvmError::InvalidHash { field }); } Ok(()) @@ -756,7 +763,7 @@ mod tests { } fn hash(raw: char) -> String { - raw.to_string().repeat(64) + format!("0x{}", raw.to_string().repeat(64)) } fn request_content() -> RadrootsTradeTransitionProofRequestV1 {