MCPcopy Create free account
hub / github.com/cowprotocol/services / validate

Method validate

crates/app-data/src/app_data.rs:278–295  ·  view source on GitHub ↗

Parses and validates the provided app data bytes, returns the validated Valid app data is considered to be: 1. Below or equal to [`Validator::size_limit`] in size. 2. A valid JSON & app data object.

(&self, full_app_data: &[u8])

Source from the content-addressed store, hash-verified

276 /// 1. Below or equal to [`Validator::size_limit`] in size.
277 /// 2. A valid JSON & app data object.
278 pub fn validate(&self, full_app_data: &[u8]) -> Result<ValidatedAppData> {
279 if full_app_data.len() > self.size_limit {
280 return Err(anyhow!(
281 "app data has byte size {} which is larger than limit {}",
282 full_app_data.len(),
283 self.size_limit
284 ));
285 }
286
287 let document = String::from_utf8(full_app_data.to_vec())?;
288 let protocol = parse(full_app_data)?;
289
290 Ok(ValidatedAppData {
291 hash: AppDataHash(hash_full_app_data(full_app_data)),
292 document,
293 protocol,
294 })
295 }
296}
297
298pub fn parse(full_app_data: &[u8]) -> Result<ProtocolAppData, serde_json::Error> {

Callers 1

miscFunction · 0.45

Calls 4

parseFunction · 0.85
hash_full_app_dataFunction · 0.85
lenMethod · 0.80
AppDataHashClass · 0.70

Tested by 1

miscFunction · 0.36