uor_addr/json/
pipeline.rs1pub use crate::outcome::{AddressOutcome, AddressWitness, VerifyError};
19
20#[derive(Debug, Clone, Copy, PartialEq, Eq)]
22pub enum AddressFailure {
23 InvalidJson,
25 PipelineFailure,
28}
29
30#[cfg(feature = "alloc")]
39pub fn address(input_bytes: &[u8]) -> Result<AddressOutcome<71>, AddressFailure> {
40 use prism::pipeline::PrismModel;
41
42 use crate::json::model::AddressModel;
43 use crate::json::value::{canonicalize, JsonCarrier};
44
45 let canonical = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidJson)?;
46 let grounded = AddressModel::forward(JsonCarrier::new(&canonical))
47 .map_err(|_| AddressFailure::PipelineFailure)?;
48 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
49}
50
51#[cfg(feature = "alloc")]
58pub fn address_blake3(input_bytes: &[u8]) -> Result<AddressOutcome<71>, AddressFailure> {
59 use prism::pipeline::PrismModel;
60
61 use crate::json::model::AddressModelBlake3;
62 use crate::json::value::{canonicalize, JsonCarrier};
63
64 let canonical = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidJson)?;
65 let grounded = AddressModelBlake3::forward(JsonCarrier::new(&canonical))
66 .map_err(|_| AddressFailure::PipelineFailure)?;
67 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
68}
69
70#[cfg(feature = "alloc")]
77pub fn address_sha3_256(input_bytes: &[u8]) -> Result<AddressOutcome<73>, AddressFailure> {
78 use prism::pipeline::PrismModel;
79
80 use crate::json::model::AddressModelSha3_256;
81 use crate::json::value::{canonicalize, JsonCarrier};
82
83 let canonical = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidJson)?;
84 let grounded = AddressModelSha3_256::forward(JsonCarrier::new(&canonical))
85 .map_err(|_| AddressFailure::PipelineFailure)?;
86 AddressOutcome::<73>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
87}
88
89#[cfg(feature = "alloc")]
96pub fn address_keccak256(input_bytes: &[u8]) -> Result<AddressOutcome<74>, AddressFailure> {
97 use prism::pipeline::PrismModel;
98
99 use crate::json::model::AddressModelKeccak256;
100 use crate::json::value::{canonicalize, JsonCarrier};
101
102 let canonical = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidJson)?;
103 let grounded = AddressModelKeccak256::forward(JsonCarrier::new(&canonical))
104 .map_err(|_| AddressFailure::PipelineFailure)?;
105 AddressOutcome::<74>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
106}
107
108#[cfg(feature = "alloc")]
116pub fn address_sha512(input_bytes: &[u8]) -> Result<AddressOutcome<135, 64>, AddressFailure> {
117 use prism::pipeline::PrismModel;
118
119 use crate::json::model::AddressModelSha512;
120 use crate::json::value::{canonicalize, JsonCarrier};
121
122 let canonical = canonicalize(input_bytes).map_err(|_| AddressFailure::InvalidJson)?;
123 let grounded = AddressModelSha512::forward(JsonCarrier::new(&canonical))
124 .map_err(|_| AddressFailure::PipelineFailure)?;
125 AddressOutcome::<135, 64>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
126}