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

Method validate

crates/app-data/src/app_data.rs:271–288  ·  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

269 /// 1. Below or equal to [`Validator::size_limit`] in size.
270 /// 2. A valid JSON & app data object.
271 pub fn validate(&self, full_app_data: &[u8]) -> Result<ValidatedAppData> {
272 if full_app_data.len() > self.size_limit {
273 return Err(anyhow!(
274 "app data has byte size {} which is larger than limit {}",
275 full_app_data.len(),
276 self.size_limit
277 ));
278 }
279
280 let document = String::from_utf8(full_app_data.to_vec())?;
281 let protocol = parse(full_app_data)?;
282
283 Ok(ValidatedAppData {
284 hash: AppDataHash(hash_full_app_data(full_app_data)),
285 document,
286 protocol,
287 })
288 }
289}
290
291pub 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