Merge pull request #306 from str4d/script-address-simplification
zcash_primitives: Small simplification to Script::address
This commit is contained in:
commit
4c66a17b93
|
@ -42,18 +42,14 @@ impl Script {
|
||||||
/// Returns the address that this Script contains, if any.
|
/// Returns the address that this Script contains, if any.
|
||||||
pub fn address(&self) -> Option<TransparentAddress> {
|
pub fn address(&self) -> Option<TransparentAddress> {
|
||||||
if self.0.len() == 25
|
if self.0.len() == 25
|
||||||
&& self.0[0] == OpCode::Dup as u8
|
&& self.0[0..3] == [OpCode::Dup as u8, OpCode::Hash160 as u8, 0x14]
|
||||||
&& self.0[1] == OpCode::Hash160 as u8
|
&& self.0[23..25] == [OpCode::EqualVerify as u8, OpCode::CheckSig as u8]
|
||||||
&& self.0[2] == 0x14
|
|
||||||
&& self.0[23] == OpCode::EqualVerify as u8
|
|
||||||
&& self.0[24] == OpCode::CheckSig as u8
|
|
||||||
{
|
{
|
||||||
let mut hash = [0; 20];
|
let mut hash = [0; 20];
|
||||||
hash.copy_from_slice(&self.0[3..23]);
|
hash.copy_from_slice(&self.0[3..23]);
|
||||||
Some(TransparentAddress::PublicKey(hash))
|
Some(TransparentAddress::PublicKey(hash))
|
||||||
} else if self.0.len() == 23
|
} else if self.0.len() == 23
|
||||||
&& self.0[0] == OpCode::Hash160 as u8
|
&& self.0[0..2] == [OpCode::Hash160 as u8, 0x14]
|
||||||
&& self.0[1] == 0x14
|
|
||||||
&& self.0[22] == OpCode::Equal as u8
|
&& self.0[22] == OpCode::Equal as u8
|
||||||
{
|
{
|
||||||
let mut hash = [0; 20];
|
let mut hash = [0; 20];
|
||||||
|
|
Loading…
Reference in New Issue