16 lines
727 B
Rust
16 lines
727 B
Rust
use std::io::{Read, Write};
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
let mut raw=Vec::new();
|
|
std::io::stdin().take(64*1024*1024+1).read_to_end(&mut raw)?;
|
|
if raw.len()>64*1024*1024 {return Err("signal_book_transport_limit".into());}
|
|
let book:fidc_core::signal_contract::SignalBook=serde_json::from_slice(&raw)?;
|
|
let version=book.content_sha256()?;
|
|
let validated=book.validate()?;
|
|
let result=serde_json::json!({"schema":fidc_core::signal_contract::SIGNAL_BOOK_SCHEMA,
|
|
"versionSha256":version,"symbols":validated.symbols(),
|
|
"onlineAllowed":validated.require_observed().is_ok()});
|
|
std::io::stdout().write_all(serde_json::to_string(&result)?.as_bytes())?;
|
|
Ok(())
|
|
}
|