uor_addr/ring/
pipeline.rs1pub use crate::outcome::{AddressOutcome, AddressWitness, VerifyError};
12
13#[derive(Debug, Clone, Copy, PartialEq, Eq)]
15pub enum AddressFailure {
16 InvalidRingElement,
21 PipelineFailure,
23}
24
25use crate::ring::model::{
26 AddressModel, AddressModelBlake3, AddressModelKeccak256, AddressModelSha3_256,
27 AddressModelSha512,
28};
29use crate::ring::value::RingElement;
30use prism::pipeline::PrismModel;
31
32pub fn address(input_bytes: &[u8]) -> Result<AddressOutcome<71>, AddressFailure> {
41 let element =
42 RingElement::parse(input_bytes).map_err(|_| AddressFailure::InvalidRingElement)?;
43 let grounded = AddressModel::forward(element).map_err(|_| AddressFailure::PipelineFailure)?;
44 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
45}
46
47pub fn address_blake3(input_bytes: &[u8]) -> Result<AddressOutcome<71>, AddressFailure> {
54 let element =
55 RingElement::parse(input_bytes).map_err(|_| AddressFailure::InvalidRingElement)?;
56 let grounded =
57 AddressModelBlake3::forward(element).map_err(|_| AddressFailure::PipelineFailure)?;
58 AddressOutcome::<71>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
59}
60
61pub fn address_sha3_256(input_bytes: &[u8]) -> Result<AddressOutcome<73>, AddressFailure> {
68 let element =
69 RingElement::parse(input_bytes).map_err(|_| AddressFailure::InvalidRingElement)?;
70 let grounded =
71 AddressModelSha3_256::forward(element).map_err(|_| AddressFailure::PipelineFailure)?;
72 AddressOutcome::<73>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
73}
74
75pub fn address_keccak256(input_bytes: &[u8]) -> Result<AddressOutcome<74>, AddressFailure> {
82 let element =
83 RingElement::parse(input_bytes).map_err(|_| AddressFailure::InvalidRingElement)?;
84 let grounded =
85 AddressModelKeccak256::forward(element).map_err(|_| AddressFailure::PipelineFailure)?;
86 AddressOutcome::<74>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
87}
88
89pub fn address_sha512(input_bytes: &[u8]) -> Result<AddressOutcome<135, 64>, AddressFailure> {
97 let element =
98 RingElement::parse(input_bytes).map_err(|_| AddressFailure::InvalidRingElement)?;
99 let grounded =
100 AddressModelSha512::forward(element).map_err(|_| AddressFailure::PipelineFailure)?;
101 AddressOutcome::<135, 64>::from_grounded(&grounded).map_err(|_| AddressFailure::PipelineFailure)
102}