diff --git a/zcash_primitives/src/legacy.rs b/zcash_primitives/src/legacy.rs index d005b25..8d3ac8b 100644 --- a/zcash_primitives/src/legacy.rs +++ b/zcash_primitives/src/legacy.rs @@ -63,6 +63,17 @@ impl Script { None } } + + pub fn public_key(&self) -> Option<[u8; 33]> { + // TODO: How to more reliably parse this? The len could be anything, really. + if self.0.len() == 107 || self.0.len() == 106 { + let mut pk = [0u8; 33]; + pk.copy_from_slice(&self.0[self.0.len() - 33..self.0.len()]); + Some(pk) + } else { + None + } + } } impl Shl for Script {