Merge pull request #419 from str4d/418-ua-hrp-padding
zcash_address: Include HRP inside Unified Address Padding bytes
This commit is contained in:
commit
e8d20f73f8
|
@ -61,7 +61,7 @@ impl FromStr for ZcashAddress {
|
|||
}
|
||||
};
|
||||
|
||||
return data[..]
|
||||
return (hrp.as_str(), &data[..])
|
||||
.try_into()
|
||||
.map(AddressKind::Unified)
|
||||
.map_err(|_| ParseError::InvalidEncoding)
|
||||
|
@ -150,14 +150,14 @@ impl fmt::Display for ZcashAddress {
|
|||
},
|
||||
data,
|
||||
),
|
||||
AddressKind::Unified(data) => encode_bech32m(
|
||||
match self.net {
|
||||
AddressKind::Unified(data) => {
|
||||
let hrp = match self.net {
|
||||
Network::Main => unified::MAINNET,
|
||||
Network::Test => unified::TESTNET,
|
||||
Network::Regtest => unified::REGTEST,
|
||||
},
|
||||
&data.to_bytes(),
|
||||
),
|
||||
};
|
||||
encode_bech32m(hrp, &data.to_bytes(hrp))
|
||||
}
|
||||
AddressKind::P2pkh(data) => encode_b58(
|
||||
match self.net {
|
||||
Network::Main => p2pkh::MAINNET,
|
||||
|
@ -227,21 +227,21 @@ mod tests {
|
|||
#[test]
|
||||
fn unified() {
|
||||
encoding(
|
||||
"u1cd8yzk5mdn4n9r8c24tp8j8e9ethw3rr7ker5zhew3kycyyxggdzfkcq5f9yf2jv8m5ar8krncsntlfpx3p4azvwrkp8z74t3vu4kqq2",
|
||||
"u175h4qsgd8gujkevz283ka89ul6r2kr25xvachlt5w5srewdwcjacdtm3ku06jazzwk2klezj3kfy2jc9p65l5fgvjhekmnd4myk2m7xn",
|
||||
ZcashAddress {
|
||||
net: Network::Main,
|
||||
kind: AddressKind::Unified(unified::Address(vec![unified::Receiver::Sapling([0; 43])])),
|
||||
},
|
||||
);
|
||||
encoding(
|
||||
"utest1cd8yzk5mdn4n9r8c24tp8j8e9ethw3rr7ker5zhew3kycyyxggdzfkcq5f9yf2jv8m5ar8krncsntlfpx3p4azvwrkp8z74t3vptphj8",
|
||||
"utest193cmy6pcjrw6cg8rqcxgq6z2095a2mc0hqu0g0gvnlf83em0szx23qtv9722s6qkssz80try4tynp73u9gee3zskye0ztzdz0snrxw7n",
|
||||
ZcashAddress {
|
||||
net: Network::Test,
|
||||
kind: AddressKind::Unified(unified::Address(vec![unified::Receiver::Sapling([0; 43])])),
|
||||
},
|
||||
);
|
||||
encoding(
|
||||
"uregtest1cd8yzk5mdn4n9r8c24tp8j8e9ethw3rr7ker5zhew3kycyyxggdzfkcq5f9yf2jv8m5ar8krncsntlfpx3p4azvwrkp8z74t3vsnt5j0",
|
||||
"uregtest1dl4mka5saz8xwnf0pttr637jx6su0nejfhzcz3metcmqyzdgktsmm09ese6ew794xqcyp6476nuspvdvx2xk6gn2euvu7fdmrvwl87zx",
|
||||
ZcashAddress {
|
||||
net: Network::Regtest,
|
||||
kind: AddressKind::Unified(unified::Address(vec![unified::Receiver::Sapling([0; 43])])),
|
||||
|
|
|
@ -204,15 +204,20 @@ impl Receiver {
|
|||
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
|
||||
pub struct Address(pub(crate) Vec<Receiver>);
|
||||
|
||||
impl TryFrom<&[u8]> for Address {
|
||||
impl TryFrom<(&str, &[u8])> for Address {
|
||||
type Error = ParseError;
|
||||
|
||||
fn try_from(buf: &[u8]) -> Result<Self, Self::Error> {
|
||||
fn try_from((hrp, buf): (&str, &[u8])) -> Result<Self, Self::Error> {
|
||||
let encoded = f4jumble::f4jumble_inv(buf).ok_or(ParseError::InvalidEncoding)?;
|
||||
|
||||
// Validate and strip trailing zero bytes.
|
||||
// Validate and strip trailing padding bytes.
|
||||
if hrp.len() > 16 {
|
||||
return Err(ParseError::InvalidEncoding);
|
||||
}
|
||||
let mut expected_padding = [0; PADDING_LEN];
|
||||
expected_padding[0..hrp.len()].copy_from_slice(hrp.as_bytes());
|
||||
let encoded = match encoded.split_at(encoded.len() - PADDING_LEN) {
|
||||
(encoded, tail) if tail == &[0; PADDING_LEN][..] => Ok(encoded),
|
||||
(encoded, tail) if tail == &expected_padding => Ok(encoded),
|
||||
_ => Err(ParseError::InvalidEncoding),
|
||||
}?;
|
||||
|
||||
|
@ -266,7 +271,9 @@ impl TryFrom<Vec<Receiver>> for Address {
|
|||
|
||||
impl Address {
|
||||
/// Returns the raw encoding of this Unified Address.
|
||||
pub(crate) fn to_bytes(&self) -> Vec<u8> {
|
||||
pub(crate) fn to_bytes(&self, hrp: &str) -> Vec<u8> {
|
||||
assert!(hrp.len() <= 16);
|
||||
|
||||
let encoded: Vec<_> = self
|
||||
.0
|
||||
.iter()
|
||||
|
@ -280,7 +287,8 @@ impl Address {
|
|||
.chain(Some(addr.len() as u8))
|
||||
.chain(addr.iter().cloned())
|
||||
})
|
||||
.chain(iter::repeat(0).take(PADDING_LEN))
|
||||
.chain(hrp.as_bytes().iter().cloned())
|
||||
.chain(iter::repeat(0).take(PADDING_LEN - hrp.len()))
|
||||
.collect();
|
||||
|
||||
f4jumble::f4jumble(&encoded).unwrap()
|
||||
|
@ -313,7 +321,7 @@ mod tests {
|
|||
prelude::*,
|
||||
};
|
||||
|
||||
use super::{Address, ParseError, Receiver, Typecode};
|
||||
use super::{Address, ParseError, Receiver, Typecode, MAINNET, REGTEST, TESTNET};
|
||||
|
||||
prop_compose! {
|
||||
fn uniform43()(a in uniform11(0u8..), b in uniform32(0u8..)) -> [u8; 43] {
|
||||
|
@ -351,9 +359,12 @@ mod tests {
|
|||
|
||||
proptest! {
|
||||
#[test]
|
||||
fn ua_roundtrip(ua in arb_unified_address()) {
|
||||
let bytes = ua.to_bytes();
|
||||
let decoded = Address::try_from(&bytes[..]);
|
||||
fn ua_roundtrip(
|
||||
hrp in prop_oneof![MAINNET, TESTNET, REGTEST],
|
||||
ua in arb_unified_address(),
|
||||
) {
|
||||
let bytes = ua.to_bytes(&hrp);
|
||||
let decoded = Address::try_from((hrp.as_str(), &bytes[..]));
|
||||
prop_assert_eq!(decoded, Ok(ua));
|
||||
}
|
||||
}
|
||||
|
@ -362,7 +373,7 @@ mod tests {
|
|||
fn padding() {
|
||||
// The test cases below use `Address(vec![Receiver::Orchard([1; 43])])` as base.
|
||||
|
||||
// Invalid padding ([0xff; 16] instead of [0x00; 16])
|
||||
// Invalid padding ([0xff; 16] instead of [b'u', 0x00, 0x00, 0x00...])
|
||||
let invalid_padding = [
|
||||
0xe6, 0x59, 0xd1, 0xed, 0xf7, 0x4b, 0xe3, 0x5e, 0x5a, 0x54, 0x0e, 0x41, 0x5d, 0x2f,
|
||||
0x0c, 0x0d, 0x33, 0x42, 0xbd, 0xbe, 0x9f, 0x82, 0x62, 0x01, 0xc1, 0x1b, 0xd4, 0x1e,
|
||||
|
@ -371,20 +382,20 @@ mod tests {
|
|||
0x7b, 0x28, 0x69, 0xc9, 0x84,
|
||||
];
|
||||
assert_eq!(
|
||||
Address::try_from(&invalid_padding[..]),
|
||||
Address::try_from((MAINNET, &invalid_padding[..])),
|
||||
Err(ParseError::InvalidEncoding)
|
||||
);
|
||||
|
||||
// Truncated padding ([0x00; 15] instead of [0x00; 16])
|
||||
// Short padding (padded to 15 bytes instead of 16)
|
||||
let truncated_padding = [
|
||||
0x20, 0x67, 0xa5, 0xec, 0x48, 0x5c, 0xdb, 0x25, 0xa1, 0x37, 0xf7, 0x73, 0xc3, 0xae,
|
||||
0x62, 0x9e, 0xa5, 0x0e, 0x90, 0x5f, 0xda, 0xea, 0x5a, 0xe7, 0x4c, 0xb1, 0xda, 0xd9,
|
||||
0x24, 0xab, 0x92, 0x2f, 0xe6, 0xa4, 0x77, 0xa0, 0xa6, 0xb5, 0xfc, 0x0c, 0x61, 0xf4,
|
||||
0xe1, 0x89, 0x1e, 0x88, 0xa0, 0x25, 0xd8, 0xc7, 0x39, 0xa4, 0x4a, 0xc9, 0xbf, 0x3c,
|
||||
0x3b, 0xe8, 0xfd, 0x0f,
|
||||
0x9a, 0x56, 0x12, 0xa3, 0x43, 0x45, 0xe0, 0x82, 0x6c, 0xac, 0x24, 0x8b, 0x3b, 0x45,
|
||||
0x72, 0x9a, 0x53, 0xd5, 0xf8, 0xda, 0xec, 0x07, 0x7c, 0xba, 0x9f, 0xa8, 0xd2, 0x97,
|
||||
0x5b, 0xda, 0x73, 0x1b, 0xd2, 0xd1, 0x32, 0x6b, 0x7b, 0x36, 0xdd, 0x57, 0x84, 0x2a,
|
||||
0xa0, 0x21, 0x23, 0x89, 0x73, 0x85, 0xe1, 0x4b, 0x3e, 0x95, 0xb7, 0xd4, 0x67, 0xbc,
|
||||
0x4b, 0x31, 0xee, 0x5a,
|
||||
];
|
||||
assert_eq!(
|
||||
Address::try_from(&truncated_padding[..]),
|
||||
Address::try_from((MAINNET, &truncated_padding[..])),
|
||||
Err(ParseError::InvalidEncoding)
|
||||
);
|
||||
}
|
||||
|
@ -397,30 +408,30 @@ mod tests {
|
|||
|
||||
// - Missing the last data byte of the Sapling receiver.
|
||||
let truncated_sapling_data = [
|
||||
0x7a, 0x1f, 0xfd, 0x14, 0x0d, 0x0c, 0x5b, 0x36, 0x35, 0x37, 0x13, 0x6f, 0xc8, 0xa7,
|
||||
0x69, 0x48, 0x8d, 0x49, 0x0c, 0x41, 0x4d, 0xdf, 0x16, 0xc1, 0x91, 0xeb, 0xc7, 0xcb,
|
||||
0x4f, 0xca, 0x20, 0xa5, 0xa6, 0x9c, 0xcb, 0x63, 0xc6, 0x81, 0xbe, 0x8f, 0xac, 0xb7,
|
||||
0x1b, 0x7a, 0x11, 0x3f, 0xda, 0x36, 0x73, 0x4e, 0x75, 0x0f, 0x0b, 0x1f, 0x62, 0x6f,
|
||||
0x83, 0xba, 0xe0, 0xf4, 0x02, 0x81, 0x63, 0x61, 0x83, 0xbc, 0x48, 0xd8, 0x7d, 0x29,
|
||||
0xdc, 0x4f, 0xf7, 0xfd, 0x85, 0x0f, 0xfd, 0xc9, 0x60, 0x54, 0x4a, 0x87, 0x84, 0xfd,
|
||||
0x49, 0xb4, 0x4f, 0x7d, 0x9a, 0x6f, 0x37, 0x65, 0x35, 0x7c, 0x18, 0xeb, 0xd7, 0x52,
|
||||
0xb7, 0xb5, 0x80, 0x53, 0x64, 0x8d, 0x71,
|
||||
0xaa, 0xb0, 0x6e, 0x7b, 0x26, 0x7a, 0x22, 0x17, 0x39, 0xfa, 0x07, 0x69, 0xe9, 0x32,
|
||||
0x2b, 0xac, 0x8c, 0x9e, 0x5e, 0x8a, 0xd9, 0x24, 0x06, 0x5a, 0x13, 0x79, 0x3a, 0x8d,
|
||||
0xb4, 0x52, 0xfa, 0x18, 0x4e, 0x33, 0x4d, 0x8c, 0x17, 0x77, 0x4d, 0x63, 0x69, 0x34,
|
||||
0x22, 0x70, 0x3a, 0xea, 0x30, 0x82, 0x5a, 0x6b, 0x37, 0xd1, 0x0d, 0xbe, 0x20, 0xab,
|
||||
0x82, 0x86, 0x98, 0x34, 0x6a, 0xd8, 0x45, 0x40, 0xd0, 0x25, 0x60, 0xbf, 0x1e, 0xb6,
|
||||
0xeb, 0x06, 0x85, 0x70, 0x4c, 0x42, 0xbc, 0x19, 0x14, 0xef, 0x7a, 0x05, 0xa0, 0x71,
|
||||
0xb2, 0x63, 0x80, 0xbb, 0xdc, 0x12, 0x08, 0x48, 0x28, 0x8f, 0x1c, 0x9e, 0xc3, 0x42,
|
||||
0xc6, 0x5e, 0x68, 0xa2, 0x78, 0x6c, 0x9e,
|
||||
];
|
||||
assert_eq!(
|
||||
Address::try_from(&truncated_sapling_data[..]),
|
||||
Address::try_from((MAINNET, &truncated_sapling_data[..])),
|
||||
Err(ParseError::InvalidEncoding)
|
||||
);
|
||||
|
||||
// - Truncated after the typecode of the Sapling receiver.
|
||||
let truncated_after_sapling_typecode = [
|
||||
0xb3, 0x8f, 0xc3, 0xfd, 0xe9, 0xfa, 0x66, 0x51, 0x8a, 0xac, 0xcf, 0x31, 0x82, 0xcf,
|
||||
0xaa, 0x0b, 0xd9, 0x9e, 0xe5, 0x01, 0xbd, 0xc2, 0xdb, 0x8f, 0xb1, 0xea, 0x08, 0x3b,
|
||||
0x6e, 0xd7, 0x71, 0x22, 0x15, 0xfe, 0xe2, 0xcd, 0x2d, 0xda, 0xbd, 0x79, 0x6a, 0x92,
|
||||
0xd6, 0xb0, 0x69, 0x02, 0x0e, 0xae, 0x95, 0x58, 0xdf, 0x89, 0x80, 0xaa, 0x71, 0xb6,
|
||||
0x01, 0x56, 0x60, 0xb2, 0x61, 0xf1,
|
||||
0x87, 0x7a, 0xdf, 0x79, 0x6b, 0xe3, 0xb3, 0x40, 0xef, 0xe4, 0x5d, 0xc2, 0x91, 0xa2,
|
||||
0x81, 0xfc, 0x7d, 0x76, 0xbb, 0xb0, 0x58, 0x98, 0x53, 0x59, 0xd3, 0x3f, 0xbc, 0x4b,
|
||||
0x86, 0x59, 0x66, 0x62, 0x75, 0x92, 0xba, 0xcc, 0x31, 0x1e, 0x60, 0x02, 0x3b, 0xd8,
|
||||
0x4c, 0xdf, 0x36, 0xa1, 0xac, 0x82, 0x57, 0xed, 0x0c, 0x98, 0x49, 0x8f, 0x49, 0x7e,
|
||||
0xe6, 0x70, 0x36, 0x5b, 0x7b, 0x9e,
|
||||
];
|
||||
assert_eq!(
|
||||
Address::try_from(&truncated_after_sapling_typecode[..]),
|
||||
Address::try_from((MAINNET, &truncated_after_sapling_typecode[..])),
|
||||
Err(ParseError::InvalidEncoding)
|
||||
);
|
||||
}
|
||||
|
@ -429,9 +440,9 @@ mod tests {
|
|||
fn duplicate_typecode() {
|
||||
// Construct and serialize an invalid UA.
|
||||
let ua = Address(vec![Receiver::Sapling([1; 43]), Receiver::Sapling([2; 43])]);
|
||||
let encoded = ua.to_bytes();
|
||||
let encoded = ua.to_bytes(MAINNET);
|
||||
assert_eq!(
|
||||
Address::try_from(&encoded[..]),
|
||||
Address::try_from((MAINNET, &encoded[..])),
|
||||
Err(ParseError::DuplicateTypecode(Typecode::Sapling))
|
||||
);
|
||||
}
|
||||
|
@ -440,9 +451,9 @@ mod tests {
|
|||
fn p2pkh_and_p2sh() {
|
||||
// Construct and serialize an invalid UA.
|
||||
let ua = Address(vec![Receiver::P2pkh([0; 20]), Receiver::P2sh([0; 20])]);
|
||||
let encoded = ua.to_bytes();
|
||||
let encoded = ua.to_bytes(MAINNET);
|
||||
assert_eq!(
|
||||
Address::try_from(&encoded[..]),
|
||||
Address::try_from((MAINNET, &encoded[..])),
|
||||
Err(ParseError::BothP2phkAndP2sh)
|
||||
);
|
||||
}
|
||||
|
@ -451,9 +462,9 @@ mod tests {
|
|||
fn only_transparent() {
|
||||
// Encoding of `Address(vec![Receiver::P2pkh([0; 20])])`.
|
||||
let encoded = vec![
|
||||
0x3b, 0x3d, 0xe6, 0xb3, 0xed, 0xaa, 0x0a, 0x36, 0x12, 0xbc, 0x8d, 0x2b, 0x1a, 0xaa,
|
||||
0x27, 0x7e, 0x45, 0xc0, 0xc2, 0x0e, 0xf9, 0x6f, 0x24, 0x9b, 0x79, 0x0a, 0x68, 0x76,
|
||||
0xa8, 0x4c, 0x3f, 0xf0, 0x1f, 0x39, 0x97, 0xbd, 0x15, 0x0d,
|
||||
0xf0, 0x9e, 0x9d, 0x6e, 0xf5, 0xa6, 0xac, 0x16, 0x50, 0xf0, 0xdb, 0xe1, 0x2c, 0xa5,
|
||||
0x36, 0x22, 0xa2, 0x04, 0x89, 0x86, 0xe9, 0x6a, 0x9b, 0xf3, 0xff, 0x6d, 0x2f, 0xe6,
|
||||
0xea, 0xdb, 0xc5, 0x20, 0x62, 0xf9, 0x6f, 0xa9, 0x86, 0xcc,
|
||||
];
|
||||
|
||||
// We can't actually exercise this error, because at present the only transparent
|
||||
|
@ -461,7 +472,7 @@ mod tests {
|
|||
// with only one of them we don't have sufficient data for F4Jumble (so we hit a
|
||||
// different error).
|
||||
assert_eq!(
|
||||
Address::try_from(&encoded[..]),
|
||||
Address::try_from((MAINNET, &encoded[..])),
|
||||
Err(ParseError::InvalidEncoding)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -31,17 +31,17 @@ fn unified() {
|
|||
0xae,
|
||||
]),
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x78, 0x35, 0x6b, 0x66, 0x32, 0x6a, 0x64, 0x6c, 0x37, 0x39, 0x6b, 0x71,
|
||||
0x70, 0x65, 0x39, 0x64, 0x75, 0x7a, 0x7a, 0x39, 0x79, 0x66, 0x7a, 0x79, 0x6a, 0x72,
|
||||
0x64, 0x37, 0x32, 0x73, 0x64, 0x61, 0x36, 0x71, 0x65, 0x70, 0x32, 0x39, 0x32, 0x65,
|
||||
0x36, 0x7a, 0x33, 0x6c, 0x6c, 0x61, 0x76, 0x72, 0x70, 0x79, 0x6a, 0x6d, 0x76, 0x74,
|
||||
0x36, 0x34, 0x36, 0x30, 0x6e, 0x67, 0x33, 0x66, 0x71, 0x63, 0x77, 0x36, 0x72, 0x63,
|
||||
0x64, 0x79, 0x65, 0x6e, 0x64, 0x68, 0x75, 0x6a, 0x68, 0x34, 0x64, 0x32, 0x63, 0x76,
|
||||
0x79, 0x79, 0x35, 0x74, 0x32, 0x68, 0x78, 0x78, 0x34, 0x73, 0x64, 0x78, 0x79, 0x73,
|
||||
0x32, 0x6d, 0x76, 0x34, 0x67, 0x67, 0x63, 0x7a, 0x64, 0x32, 0x7a, 0x67, 0x6e, 0x73,
|
||||
0x61, 0x61, 0x66, 0x70, 0x78, 0x35, 0x70, 0x61, 0x73, 0x67, 0x35, 0x32, 0x64, 0x6d,
|
||||
0x32, 0x37, 0x30, 0x65, 0x74, 0x75, 0x7a, 0x37, 0x78, 0x79, 0x78, 0x77, 0x65, 0x75,
|
||||
0x39,
|
||||
0x75, 0x31, 0x65, 0x32, 0x38, 0x66, 0x38, 0x78, 0x7a, 0x6e, 0x65, 0x6d, 0x67, 0x65,
|
||||
0x74, 0x79, 0x78, 0x72, 0x64, 0x7a, 0x6b, 0x66, 0x67, 0x6a, 0x75, 0x67, 0x73, 0x66,
|
||||
0x78, 0x39, 0x64, 0x6b, 0x71, 0x32, 0x74, 0x68, 0x6e, 0x65, 0x7a, 0x65, 0x39, 0x6c,
|
||||
0x33, 0x34, 0x74, 0x70, 0x76, 0x74, 0x70, 0x6d, 0x65, 0x6a, 0x65, 0x67, 0x74, 0x64,
|
||||
0x35, 0x67, 0x68, 0x6b, 0x77, 0x68, 0x67, 0x6a, 0x72, 0x68, 0x73, 0x64, 0x66, 0x64,
|
||||
0x6e, 0x74, 0x33, 0x6b, 0x34, 0x73, 0x66, 0x32, 0x75, 0x79, 0x39, 0x65, 0x61, 0x38,
|
||||
0x63, 0x74, 0x61, 0x75, 0x6d, 0x7a, 0x70, 0x75, 0x64, 0x6c, 0x65, 0x7a, 0x35, 0x66,
|
||||
0x67, 0x75, 0x6c, 0x77, 0x71, 0x6b, 0x70, 0x75, 0x35, 0x66, 0x76, 0x6a, 0x77, 0x79,
|
||||
0x63, 0x74, 0x74, 0x7a, 0x79, 0x64, 0x6c, 0x38, 0x36, 0x64, 0x37, 0x34, 0x34, 0x61,
|
||||
0x34, 0x30, 0x61, 0x71, 0x75, 0x74, 0x7a, 0x68, 0x7a, 0x76, 0x74, 0x79, 0x7a, 0x6e,
|
||||
0x68,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -63,22 +63,22 @@ fn unified() {
|
|||
0x9f,
|
||||
]),
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x38, 0x38, 0x63, 0x73, 0x33, 0x39, 0x30, 0x65, 0x32, 0x37, 0x66, 0x32,
|
||||
0x34, 0x68, 0x77, 0x67, 0x64, 0x68, 0x39, 0x65, 0x73, 0x75, 0x65, 0x32, 0x79, 0x6b,
|
||||
0x73, 0x38, 0x6c, 0x32, 0x30, 0x74, 0x32, 0x71, 0x36, 0x78, 0x64, 0x68, 0x6a, 0x39,
|
||||
0x64, 0x6d, 0x32, 0x39, 0x6c, 0x38, 0x77, 0x37, 0x6d, 0x34, 0x72, 0x64, 0x38, 0x33,
|
||||
0x64, 0x73, 0x70, 0x6d, 0x72, 0x74, 0x32, 0x71, 0x33, 0x64, 0x35, 0x74, 0x6e, 0x36,
|
||||
0x37, 0x6e, 0x36, 0x73, 0x79, 0x73, 0x6e, 0x74, 0x38, 0x30, 0x68, 0x72, 0x38, 0x7a,
|
||||
0x67, 0x6e, 0x63, 0x77, 0x37, 0x6b, 0x38, 0x38, 0x67, 0x35, 0x30, 0x6e, 0x63, 0x76,
|
||||
0x36, 0x78, 0x74, 0x65, 0x38, 0x35, 0x67, 0x6b, 0x67, 0x6e, 0x70, 0x7a, 0x79, 0x64,
|
||||
0x70, 0x37, 0x74, 0x73, 0x67, 0x67, 0x71, 0x66, 0x34, 0x35, 0x33, 0x72, 0x34, 0x64,
|
||||
0x78, 0x71, 0x64, 0x35, 0x6d, 0x6b, 0x78, 0x75, 0x75, 0x61, 0x37, 0x79, 0x38, 0x34,
|
||||
0x38, 0x71, 0x74, 0x7a, 0x65, 0x38, 0x33, 0x65, 0x76, 0x37, 0x77, 0x36, 0x6a, 0x67,
|
||||
0x6d, 0x6a, 0x77, 0x38, 0x36, 0x39, 0x35, 0x79, 0x34, 0x75, 0x33, 0x7a, 0x77, 0x78,
|
||||
0x32, 0x66, 0x71, 0x63, 0x7a, 0x6b, 0x68, 0x75, 0x68, 0x79, 0x38, 0x35, 0x6a, 0x67,
|
||||
0x64, 0x74, 0x6a, 0x72, 0x34, 0x33, 0x39, 0x36, 0x6a, 0x6d, 0x64, 0x67, 0x64, 0x39,
|
||||
0x37, 0x38, 0x37, 0x68, 0x66, 0x37, 0x39, 0x78, 0x36, 0x34, 0x78, 0x6b, 0x32, 0x64,
|
||||
0x6e, 0x6a, 0x70,
|
||||
0x75, 0x31, 0x33, 0x71, 0x73, 0x32, 0x78, 0x79, 0x6b, 0x66, 0x73, 0x74, 0x64, 0x34,
|
||||
0x33, 0x32, 0x77, 0x70, 0x76, 0x36, 0x63, 0x68, 0x36, 0x73, 0x36, 0x63, 0x6b, 0x68,
|
||||
0x34, 0x73, 0x34, 0x68, 0x33, 0x73, 0x63, 0x72, 0x74, 0x64, 0x35, 0x68, 0x6b, 0x61,
|
||||
0x79, 0x36, 0x72, 0x77, 0x36, 0x6a, 0x6e, 0x36, 0x67, 0x65, 0x6e, 0x37, 0x34, 0x72,
|
||||
0x6d, 0x76, 0x63, 0x61, 0x36, 0x35, 0x77, 0x75, 0x73, 0x67, 0x71, 0x65, 0x36, 0x37,
|
||||
0x71, 0x6d, 0x6b, 0x6b, 0x66, 0x7a, 0x79, 0x68, 0x6c, 0x6b, 0x77, 0x67, 0x38, 0x30,
|
||||
0x71, 0x79, 0x6a, 0x33, 0x72, 0x63, 0x63, 0x61, 0x6e, 0x68, 0x35, 0x66, 0x67, 0x37,
|
||||
0x7a, 0x73, 0x39, 0x30, 0x32, 0x79, 0x32, 0x34, 0x67, 0x6e, 0x32, 0x71, 0x79, 0x66,
|
||||
0x36, 0x70, 0x6b, 0x63, 0x63, 0x63, 0x68, 0x67, 0x30, 0x35, 0x6a, 0x7a, 0x70, 0x33,
|
||||
0x79, 0x72, 0x66, 0x6e, 0x34, 0x70, 0x75, 0x38, 0x61, 0x74, 0x65, 0x38, 0x67, 0x37,
|
||||
0x71, 0x39, 0x72, 0x39, 0x73, 0x74, 0x65, 0x76, 0x78, 0x32, 0x38, 0x34, 0x34, 0x35,
|
||||
0x72, 0x35, 0x77, 0x6e, 0x33, 0x78, 0x33, 0x35, 0x70, 0x66, 0x37, 0x71, 0x71, 0x33,
|
||||
0x32, 0x34, 0x6e, 0x74, 0x68, 0x78, 0x74, 0x7a, 0x63, 0x77, 0x78, 0x65, 0x76, 0x79,
|
||||
0x66, 0x61, 0x34, 0x6c, 0x32, 0x6d, 0x32, 0x6d, 0x32, 0x78, 0x73, 0x37, 0x65, 0x64,
|
||||
0x76, 0x65, 0x70, 0x39, 0x66, 0x74, 0x61, 0x34, 0x76, 0x74, 0x77, 0x76, 0x68, 0x6b,
|
||||
0x61, 0x78, 0x78,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -95,17 +95,17 @@ fn unified() {
|
|||
0x93,
|
||||
]),
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x79, 0x76, 0x34, 0x78, 0x33, 0x6d, 0x78, 0x6e, 0x33, 0x64, 0x78, 0x7a,
|
||||
0x30, 0x33, 0x74, 0x6b, 0x76, 0x33, 0x65, 0x75, 0x64, 0x68, 0x61, 0x68, 0x38, 0x78,
|
||||
0x63, 0x78, 0x38, 0x36, 0x6d, 0x66, 0x33, 0x71, 0x76, 0x67, 0x32, 0x6a, 0x39, 0x7a,
|
||||
0x6c, 0x61, 0x65, 0x6a, 0x67, 0x6b, 0x71, 0x6c, 0x36, 0x66, 0x33, 0x79, 0x7a, 0x6d,
|
||||
0x6e, 0x74, 0x79, 0x38, 0x75, 0x76, 0x36, 0x38, 0x68, 0x36, 0x67, 0x74, 0x61, 0x6a,
|
||||
0x38, 0x67, 0x7a, 0x67, 0x6c, 0x71, 0x67, 0x6d, 0x77, 0x75, 0x72, 0x30, 0x61, 0x64,
|
||||
0x6b, 0x68, 0x67, 0x65, 0x30, 0x76, 0x71, 0x63, 0x6e, 0x74, 0x61, 0x76, 0x68, 0x39,
|
||||
0x33, 0x35, 0x30, 0x74, 0x37, 0x38, 0x7a, 0x79, 0x63, 0x77, 0x72, 0x34, 0x6c, 0x36,
|
||||
0x34, 0x63, 0x74, 0x66, 0x33, 0x71, 0x6e, 0x39, 0x34, 0x63, 0x74, 0x72, 0x79, 0x73,
|
||||
0x38, 0x35, 0x6e, 0x6c, 0x34, 0x76, 0x30, 0x6c, 0x77, 0x38, 0x32, 0x70, 0x76, 0x71,
|
||||
0x73,
|
||||
0x75, 0x31, 0x72, 0x70, 0x77, 0x6b, 0x64, 0x35, 0x78, 0x37, 0x74, 0x65, 0x34, 0x65,
|
||||
0x7a, 0x63, 0x6d, 0x6c, 0x71, 0x61, 0x72, 0x67, 0x6b, 0x66, 0x33, 0x63, 0x72, 0x73,
|
||||
0x70, 0x66, 0x71, 0x6b, 0x68, 0x6d, 0x78, 0x77, 0x66, 0x73, 0x71, 0x70, 0x71, 0x30,
|
||||
0x32, 0x34, 0x6a, 0x61, 0x73, 0x73, 0x32, 0x67, 0x37, 0x34, 0x65, 0x34, 0x72, 0x33,
|
||||
0x36, 0x7a, 0x70, 0x35, 0x30, 0x71, 0x73, 0x73, 0x33, 0x76, 0x68, 0x63, 0x74, 0x37,
|
||||
0x32, 0x73, 0x61, 0x63, 0x68, 0x75, 0x73, 0x30, 0x6b, 0x37, 0x30, 0x35, 0x78, 0x79,
|
||||
0x67, 0x68, 0x75, 0x6c, 0x72, 0x6a, 0x78, 0x63, 0x64, 0x77, 0x77, 0x64, 0x61, 0x71,
|
||||
0x30, 0x71, 0x6a, 0x6e, 0x6e, 0x73, 0x73, 0x66, 0x32, 0x66, 0x76, 0x61, 0x6b, 0x7a,
|
||||
0x7a, 0x38, 0x66, 0x34, 0x36, 0x70, 0x77, 0x38, 0x72, 0x63, 0x61, 0x39, 0x33, 0x36,
|
||||
0x66, 0x65, 0x79, 0x65, 0x66, 0x36, 0x6d, 0x6c, 0x36, 0x65, 0x71, 0x37, 0x77, 0x6c,
|
||||
0x6c,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -119,14 +119,14 @@ fn unified() {
|
|||
]),
|
||||
orchard_raw_addr: None,
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x35, 0x71, 0x66, 0x32, 0x78, 0x72, 0x36, 0x37, 0x30, 0x76, 0x33, 0x79,
|
||||
0x71, 0x79, 0x6b, 0x63, 0x74, 0x39, 0x76, 0x63, 0x71, 0x6c, 0x79, 0x35, 0x68, 0x70,
|
||||
0x79, 0x76, 0x6b, 0x6d, 0x68, 0x38, 0x6b, 0x33, 0x71, 0x63, 0x6c, 0x71, 0x35, 0x36,
|
||||
0x76, 0x64, 0x68, 0x6d, 0x70, 0x30, 0x38, 0x63, 0x36, 0x71, 0x7a, 0x30, 0x72, 0x6c,
|
||||
0x6e, 0x76, 0x34, 0x67, 0x30, 0x71, 0x68, 0x61, 0x39, 0x75, 0x73, 0x6e, 0x6c, 0x37,
|
||||
0x33, 0x6b, 0x71, 0x35, 0x39, 0x37, 0x68, 0x38, 0x76, 0x33, 0x63, 0x37, 0x72, 0x74,
|
||||
0x71, 0x77, 0x65, 0x30, 0x35, 0x75, 0x32, 0x68, 0x36, 0x63, 0x70, 0x35, 0x70, 0x63,
|
||||
0x74, 0x76, 0x7a, 0x7a, 0x34, 0x6c, 0x74, 0x63,
|
||||
0x75, 0x31, 0x39, 0x64, 0x68, 0x78, 0x6d, 0x38, 0x38, 0x67, 0x76, 0x63, 0x77, 0x39,
|
||||
0x74, 0x77, 0x74, 0x76, 0x7a, 0x6b, 0x75, 0x37, 0x63, 0x7a, 0x37, 0x6a, 0x75, 0x33,
|
||||
0x72, 0x76, 0x70, 0x75, 0x35, 0x6a, 0x76, 0x68, 0x32, 0x63, 0x71, 0x38, 0x67, 0x6d,
|
||||
0x38, 0x71, 0x64, 0x65, 0x76, 0x6e, 0x6c, 0x34, 0x65, 0x73, 0x65, 0x79, 0x38, 0x33,
|
||||
0x66, 0x7a, 0x72, 0x39, 0x79, 0x6d, 0x66, 0x61, 0x33, 0x67, 0x6a, 0x6d, 0x6d, 0x6b,
|
||||
0x34, 0x72, 0x78, 0x6a, 0x32, 0x79, 0x70, 0x38, 0x38, 0x67, 0x74, 0x78, 0x64, 0x6b,
|
||||
0x71, 0x67, 0x6e, 0x6a, 0x36, 0x6e, 0x6e, 0x71, 0x79, 0x74, 0x66, 0x75, 0x68, 0x30,
|
||||
0x38, 0x75, 0x79, 0x63, 0x35, 0x66, 0x75, 0x72,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -148,22 +148,22 @@ fn unified() {
|
|||
0xad,
|
||||
]),
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x30, 0x65, 0x7a, 0x61, 0x68, 0x79, 0x36, 0x70, 0x71, 0x30, 0x70, 0x34,
|
||||
0x68, 0x7a, 0x65, 0x70, 0x36, 0x66, 0x37, 0x65, 0x64, 0x70, 0x67, 0x75, 0x37, 0x6c,
|
||||
0x67, 0x77, 0x75, 0x30, 0x79, 0x63, 0x72, 0x36, 0x6c, 0x6c, 0x64, 0x63, 0x79, 0x6a,
|
||||
0x36, 0x71, 0x35, 0x30, 0x35, 0x6e, 0x67, 0x61, 0x76, 0x72, 0x70, 0x6b, 0x76, 0x65,
|
||||
0x34, 0x35, 0x74, 0x61, 0x39, 0x68, 0x61, 0x77, 0x65, 0x71, 0x66, 0x6c, 0x33, 0x61,
|
||||
0x76, 0x37, 0x68, 0x32, 0x39, 0x77, 0x34, 0x6d, 0x63, 0x37, 0x77, 0x63, 0x6a, 0x7a,
|
||||
0x38, 0x71, 0x68, 0x6a, 0x79, 0x71, 0x32, 0x72, 0x6e, 0x6d, 0x68, 0x61, 0x38, 0x72,
|
||||
0x71, 0x71, 0x6b, 0x34, 0x61, 0x6d, 0x38, 0x61, 0x71, 0x34, 0x61, 0x34, 0x6a, 0x6d,
|
||||
0x74, 0x32, 0x63, 0x32, 0x6e, 0x6a, 0x37, 0x74, 0x63, 0x68, 0x65, 0x37, 0x65, 0x64,
|
||||
0x75, 0x71, 0x36, 0x79, 0x68, 0x61, 0x35, 0x36, 0x76, 0x6b, 0x73, 0x34, 0x39, 0x71,
|
||||
0x70, 0x6c, 0x77, 0x78, 0x6b, 0x70, 0x77, 0x61, 0x33, 0x36, 0x66, 0x67, 0x68, 0x64,
|
||||
0x36, 0x70, 0x36, 0x33, 0x6c, 0x79, 0x67, 0x63, 0x70, 0x63, 0x39, 0x79, 0x67, 0x74,
|
||||
0x77, 0x39, 0x64, 0x61, 0x76, 0x30, 0x78, 0x63, 0x66, 0x32, 0x6d, 0x78, 0x72, 0x70,
|
||||
0x38, 0x75, 0x30, 0x36, 0x74, 0x74, 0x68, 0x34, 0x68, 0x67, 0x67, 0x32, 0x38, 0x39,
|
||||
0x37, 0x30, 0x73, 0x68, 0x79, 0x64, 0x68, 0x63, 0x78, 0x71, 0x79, 0x6a, 0x79, 0x72,
|
||||
0x6b, 0x32, 0x35,
|
||||
0x75, 0x31, 0x35, 0x63, 0x32, 0x79, 0x72, 0x66, 0x6a, 0x77, 0x74, 0x74, 0x36, 0x36,
|
||||
0x33, 0x6e, 0x71, 0x30, 0x68, 0x70, 0x71, 0x73, 0x68, 0x36, 0x78, 0x74, 0x6a, 0x79,
|
||||
0x32, 0x38, 0x38, 0x7a, 0x74, 0x76, 0x61, 0x63, 0x75, 0x61, 0x6c, 0x37, 0x33, 0x6d,
|
||||
0x66, 0x66, 0x75, 0x72, 0x33, 0x38, 0x33, 0x6d, 0x74, 0x65, 0x70, 0x63, 0x39, 0x68,
|
||||
0x72, 0x78, 0x74, 0x33, 0x74, 0x70, 0x34, 0x65, 0x61, 0x35, 0x68, 0x37, 0x38, 0x30,
|
||||
0x70, 0x67, 0x33, 0x68, 0x6b, 0x35, 0x75, 0x6a, 0x32, 0x67, 0x75, 0x39, 0x37, 0x70,
|
||||
0x32, 0x6c, 0x75, 0x6d, 0x39, 0x71, 0x6a, 0x68, 0x36, 0x32, 0x78, 0x72, 0x61, 0x37,
|
||||
0x63, 0x33, 0x68, 0x79, 0x36, 0x6e, 0x64, 0x71, 0x32, 0x78, 0x77, 0x68, 0x67, 0x37,
|
||||
0x65, 0x71, 0x38, 0x71, 0x37, 0x36, 0x76, 0x66, 0x32, 0x38, 0x63, 0x33, 0x32, 0x64,
|
||||
0x37, 0x76, 0x6d, 0x6c, 0x33, 0x7a, 0x32, 0x39, 0x34, 0x76, 0x74, 0x38, 0x65, 0x63,
|
||||
0x74, 0x63, 0x6c, 0x77, 0x36, 0x72, 0x30, 0x70, 0x32, 0x33, 0x6e, 0x64, 0x70, 0x35,
|
||||
0x78, 0x64, 0x7a, 0x66, 0x65, 0x78, 0x63, 0x39, 0x71, 0x77, 0x30, 0x65, 0x77, 0x75,
|
||||
0x72, 0x79, 0x6e, 0x6a, 0x35, 0x32, 0x35, 0x73, 0x6b, 0x78, 0x37, 0x6d, 0x30, 0x6a,
|
||||
0x75, 0x6b, 0x63, 0x6a, 0x72, 0x65, 0x61, 0x6b, 0x6a, 0x32, 0x61, 0x70, 0x33, 0x32,
|
||||
0x37, 0x6b, 0x6a, 0x71, 0x72, 0x76, 0x75, 0x67, 0x65, 0x64, 0x35, 0x66, 0x79, 0x30,
|
||||
0x73, 0x7a, 0x79,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -182,19 +182,19 @@ fn unified() {
|
|||
0xae,
|
||||
]),
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x63, 0x72, 0x30, 0x77, 0x39, 0x35, 0x38, 0x34, 0x6b, 0x61, 0x33, 0x67,
|
||||
0x6d, 0x6a, 0x70, 0x68, 0x7a, 0x63, 0x63, 0x6b, 0x30, 0x67, 0x36, 0x36, 0x76, 0x76,
|
||||
0x78, 0x6e, 0x38, 0x72, 0x32, 0x66, 0x64, 0x75, 0x66, 0x63, 0x6a, 0x70, 0x74, 0x77,
|
||||
0x36, 0x75, 0x34, 0x34, 0x61, 0x65, 0x32, 0x73, 0x79, 0x75, 0x6b, 0x6b, 0x6d, 0x7a,
|
||||
0x77, 0x63, 0x71, 0x66, 0x73, 0x77, 0x6b, 0x65, 0x77, 0x6e, 0x7a, 0x6d, 0x7a, 0x7a,
|
||||
0x75, 0x71, 0x73, 0x6c, 0x73, 0x79, 0x37, 0x33, 0x63, 0x71, 0x78, 0x70, 0x6d, 0x68,
|
||||
0x33, 0x6d, 0x79, 0x79, 0x67, 0x75, 0x6e, 0x6b, 0x6e, 0x6d, 0x73, 0x67, 0x6d, 0x74,
|
||||
0x6c, 0x7a, 0x71, 0x6b, 0x74, 0x36, 0x68, 0x6e, 0x74, 0x61, 0x68, 0x79, 0x73, 0x67,
|
||||
0x6a, 0x76, 0x7a, 0x77, 0x30, 0x71, 0x33, 0x70, 0x7a, 0x64, 0x78, 0x65, 0x75, 0x76,
|
||||
0x66, 0x74, 0x79, 0x78, 0x64, 0x7a, 0x68, 0x70, 0x72, 0x68, 0x73, 0x66, 0x6a, 0x6b,
|
||||
0x33, 0x74, 0x68, 0x6e, 0x68, 0x6d, 0x70, 0x67, 0x30, 0x70, 0x68, 0x34, 0x66, 0x6d,
|
||||
0x36, 0x38, 0x6b, 0x70, 0x35, 0x38, 0x6d, 0x65, 0x33, 0x36, 0x38, 0x64, 0x64, 0x65,
|
||||
0x70, 0x66, 0x64, 0x76, 0x71, 0x35, 0x6e, 0x77, 0x72, 0x6c,
|
||||
0x75, 0x31, 0x7a, 0x64, 0x67, 0x39, 0x7a, 0x37, 0x6c, 0x77, 0x32, 0x71, 0x30, 0x37,
|
||||
0x35, 0x79, 0x77, 0x39, 0x6e, 0x30, 0x6a, 0x37, 0x66, 0x68, 0x38, 0x72, 0x79, 0x75,
|
||||
0x6a, 0x73, 0x72, 0x6a, 0x72, 0x72, 0x37, 0x34, 0x7a, 0x71, 0x78, 0x39, 0x39, 0x33,
|
||||
0x74, 0x63, 0x73, 0x68, 0x74, 0x66, 0x6d, 0x6d, 0x32, 0x71, 0x78, 0x6b, 0x74, 0x76,
|
||||
0x33, 0x72, 0x30, 0x34, 0x38, 0x65, 0x37, 0x74, 0x72, 0x34, 0x71, 0x35, 0x6a, 0x38,
|
||||
0x73, 0x66, 0x65, 0x70, 0x33, 0x67, 0x39, 0x6e, 0x76, 0x38, 0x77, 0x70, 0x78, 0x66,
|
||||
0x39, 0x76, 0x74, 0x72, 0x33, 0x6a, 0x7a, 0x6e, 0x6d, 0x6d, 0x35, 0x36, 0x7a, 0x37,
|
||||
0x75, 0x70, 0x6a, 0x65, 0x30, 0x35, 0x6b, 0x7a, 0x76, 0x6d, 0x75, 0x72, 0x6d, 0x70,
|
||||
0x63, 0x71, 0x70, 0x30, 0x34, 0x63, 0x30, 0x33, 0x37, 0x7a, 0x32, 0x64, 0x68, 0x33,
|
||||
0x35, 0x63, 0x64, 0x38, 0x32, 0x32, 0x35, 0x78, 0x74, 0x33, 0x6b, 0x34, 0x37, 0x6e,
|
||||
0x7a, 0x66, 0x68, 0x32, 0x79, 0x74, 0x73, 0x76, 0x30, 0x37, 0x6d, 0x33, 0x74, 0x38,
|
||||
0x67, 0x64, 0x33, 0x33, 0x70, 0x35, 0x72, 0x32, 0x76, 0x37, 0x6b, 0x66, 0x65, 0x67,
|
||||
0x39, 0x34, 0x35, 0x71, 0x37, 0x6a, 0x63, 0x30, 0x67, 0x68,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -216,22 +216,22 @@ fn unified() {
|
|||
0x94,
|
||||
]),
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x67, 0x6e, 0x33, 0x35, 0x76, 0x78, 0x6d, 0x30, 0x30, 0x66, 0x6b, 0x71,
|
||||
0x34, 0x30, 0x63, 0x6c, 0x64, 0x7a, 0x76, 0x71, 0x73, 0x72, 0x76, 0x70, 0x37, 0x33,
|
||||
0x6e, 0x36, 0x72, 0x6b, 0x38, 0x30, 0x36, 0x30, 0x6e, 0x6b, 0x39, 0x68, 0x6d, 0x6c,
|
||||
0x77, 0x37, 0x65, 0x35, 0x32, 0x30, 0x70, 0x34, 0x6a, 0x73, 0x75, 0x72, 0x65, 0x75,
|
||||
0x6b, 0x6e, 0x75, 0x77, 0x38, 0x72, 0x6c, 0x6a, 0x71, 0x66, 0x33, 0x6e, 0x71, 0x76,
|
||||
0x61, 0x30, 0x34, 0x74, 0x34, 0x32, 0x6b, 0x6e, 0x66, 0x75, 0x30, 0x71, 0x71, 0x6e,
|
||||
0x39, 0x66, 0x6c, 0x68, 0x30, 0x67, 0x6e, 0x70, 0x7a, 0x76, 0x6d, 0x67, 0x38, 0x68,
|
||||
0x65, 0x30, 0x70, 0x74, 0x72, 0x72, 0x32, 0x6e, 0x6c, 0x38, 0x30, 0x6a, 0x78, 0x7a,
|
||||
0x66, 0x61, 0x78, 0x72, 0x30, 0x39, 0x65, 0x67, 0x39, 0x32, 0x30, 0x35, 0x72, 0x72,
|
||||
0x73, 0x72, 0x72, 0x65, 0x73, 0x7a, 0x73, 0x39, 0x30, 0x6c, 0x63, 0x63, 0x38, 0x76,
|
||||
0x73, 0x75, 0x61, 0x63, 0x68, 0x36, 0x77, 0x35, 0x35, 0x77, 0x73, 0x34, 0x33, 0x77,
|
||||
0x38, 0x63, 0x75, 0x77, 0x71, 0x6d, 0x37, 0x68, 0x73, 0x6e, 0x38, 0x72, 0x34, 0x34,
|
||||
0x33, 0x61, 0x61, 0x73, 0x70, 0x36, 0x6d, 0x65, 0x33, 0x32, 0x71, 0x77, 0x34, 0x6c,
|
||||
0x76, 0x39, 0x66, 0x65, 0x33, 0x39, 0x39, 0x78, 0x33, 0x33, 0x70, 0x78, 0x38, 0x61,
|
||||
0x76, 0x78, 0x65, 0x63, 0x6b, 0x65, 0x6d, 0x76, 0x39, 0x76, 0x32, 0x78, 0x67, 0x36,
|
||||
0x6b, 0x6e, 0x37,
|
||||
0x75, 0x31, 0x79, 0x6a, 0x77, 0x33, 0x36, 0x6d, 0x7a, 0x77, 0x7a, 0x34, 0x6a, 0x64,
|
||||
0x38, 0x79, 0x74, 0x6e, 0x72, 0x64, 0x36, 0x67, 0x6b, 0x68, 0x37, 0x61, 0x79, 0x67,
|
||||
0x6d, 0x65, 0x6a, 0x32, 0x72, 0x74, 0x6c, 0x71, 0x67, 0x33, 0x76, 0x6a, 0x39, 0x79,
|
||||
0x65, 0x65, 0x68, 0x66, 0x64, 0x6b, 0x32, 0x33, 0x35, 0x6a, 0x65, 0x73, 0x36, 0x72,
|
||||
0x71, 0x70, 0x66, 0x6a, 0x6c, 0x77, 0x71, 0x67, 0x33, 0x37, 0x76, 0x34, 0x6d, 0x65,
|
||||
0x35, 0x75, 0x67, 0x6a, 0x6c, 0x7a, 0x72, 0x64, 0x6e, 0x68, 0x67, 0x6c, 0x38, 0x38,
|
||||
0x72, 0x72, 0x6c, 0x65, 0x67, 0x38, 0x33, 0x78, 0x38, 0x61, 0x30, 0x71, 0x6d, 0x77,
|
||||
0x79, 0x7a, 0x79, 0x36, 0x39, 0x38, 0x72, 0x38, 0x76, 0x75, 0x63, 0x6e, 0x34, 0x68,
|
||||
0x77, 0x61, 0x67, 0x72, 0x36, 0x71, 0x63, 0x65, 0x7a, 0x73, 0x73, 0x66, 0x36, 0x63,
|
||||
0x68, 0x30, 0x74, 0x37, 0x34, 0x66, 0x63, 0x30, 0x68, 0x76, 0x6e, 0x36, 0x6d, 0x37,
|
||||
0x37, 0x37, 0x68, 0x70, 0x37, 0x35, 0x37, 0x61, 0x76, 0x66, 0x32, 0x63, 0x6b, 0x7a,
|
||||
0x63, 0x33, 0x32, 0x39, 0x35, 0x70, 0x33, 0x32, 0x34, 0x30, 0x71, 0x6c, 0x76, 0x75,
|
||||
0x70, 0x79, 0x64, 0x65, 0x6c, 0x37, 0x33, 0x6c, 0x37, 0x71, 0x63, 0x74, 0x6e, 0x34,
|
||||
0x30, 0x63, 0x79, 0x6b, 0x35, 0x75, 0x36, 0x73, 0x65, 0x73, 0x61, 0x77, 0x72, 0x36,
|
||||
0x7a, 0x6d, 0x6b, 0x74, 0x6c, 0x6a, 0x66, 0x78, 0x68, 0x71, 0x63, 0x63, 0x37, 0x65,
|
||||
0x77, 0x34, 0x68,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -245,14 +245,14 @@ fn unified() {
|
|||
]),
|
||||
orchard_raw_addr: None,
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x65, 0x68, 0x64, 0x65, 0x73, 0x6a, 0x6a, 0x64, 0x73, 0x70, 0x33, 0x68,
|
||||
0x39, 0x37, 0x6a, 0x78, 0x7a, 0x63, 0x61, 0x76, 0x6b, 0x68, 0x64, 0x33, 0x32, 0x70,
|
||||
0x32, 0x70, 0x61, 0x73, 0x30, 0x6a, 0x6b, 0x33, 0x32, 0x74, 0x78, 0x35, 0x77, 0x73,
|
||||
0x6d, 0x70, 0x7a, 0x6a, 0x6c, 0x35, 0x78, 0x35, 0x34, 0x30, 0x68, 0x35, 0x35, 0x33,
|
||||
0x35, 0x63, 0x6c, 0x66, 0x77, 0x68, 0x6b, 0x6b, 0x68, 0x6c, 0x33, 0x67, 0x71, 0x63,
|
||||
0x70, 0x72, 0x6d, 0x77, 0x79, 0x65, 0x32, 0x79, 0x79, 0x32, 0x39, 0x30, 0x6a, 0x66,
|
||||
0x70, 0x63, 0x78, 0x71, 0x6a, 0x71, 0x75, 0x6c, 0x61, 0x6a, 0x76, 0x6a, 0x76, 0x35,
|
||||
0x75, 0x71, 0x78, 0x6e, 0x74, 0x63, 0x65, 0x6e,
|
||||
0x75, 0x31, 0x71, 0x78, 0x6b, 0x79, 0x6d, 0x6b, 0x68, 0x64, 0x7a, 0x63, 0x72, 0x72,
|
||||
0x7a, 0x6c, 0x79, 0x34, 0x66, 0x72, 0x71, 0x75, 0x63, 0x64, 0x6b, 0x66, 0x73, 0x6e,
|
||||
0x6a, 0x37, 0x77, 0x76, 0x77, 0x6c, 0x71, 0x65, 0x75, 0x30, 0x6b, 0x34, 0x66, 0x33,
|
||||
0x74, 0x72, 0x70, 0x6e, 0x65, 0x7a, 0x34, 0x76, 0x77, 0x7a, 0x75, 0x68, 0x6b, 0x64,
|
||||
0x61, 0x6a, 0x6b, 0x35, 0x65, 0x37, 0x36, 0x34, 0x37, 0x34, 0x6d, 0x6a, 0x34, 0x39,
|
||||
0x6b, 0x75, 0x65, 0x39, 0x78, 0x39, 0x68, 0x66, 0x77, 0x65, 0x66, 0x38, 0x6d, 0x34,
|
||||
0x37, 0x73, 0x63, 0x63, 0x38, 0x61, 0x70, 0x39, 0x33, 0x68, 0x6e, 0x67, 0x73, 0x65,
|
||||
0x75, 0x67, 0x33, 0x38, 0x64, 0x70, 0x63, 0x71,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -269,17 +269,17 @@ fn unified() {
|
|||
]),
|
||||
orchard_raw_addr: None,
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x76, 0x6e, 0x63, 0x34, 0x6a, 0x33, 0x6e, 0x6a, 0x6b, 0x37, 0x71, 0x74,
|
||||
0x70, 0x6a, 0x65, 0x76, 0x77, 0x64, 0x74, 0x38, 0x77, 0x34, 0x7a, 0x35, 0x6e, 0x30,
|
||||
0x37, 0x6b, 0x36, 0x70, 0x36, 0x32, 0x77, 0x39, 0x6a, 0x67, 0x39, 0x77, 0x79, 0x6d,
|
||||
0x6a, 0x6c, 0x75, 0x30, 0x77, 0x6d, 0x76, 0x6d, 0x75, 0x70, 0x35, 0x75, 0x79, 0x65,
|
||||
0x6a, 0x61, 0x61, 0x37, 0x36, 0x64, 0x6b, 0x64, 0x67, 0x78, 0x79, 0x73, 0x37, 0x65,
|
||||
0x36, 0x61, 0x64, 0x6e, 0x78, 0x65, 0x63, 0x66, 0x78, 0x63, 0x6e, 0x6c, 0x39, 0x30,
|
||||
0x65, 0x71, 0x36, 0x65, 0x39, 0x72, 0x30, 0x35, 0x64, 0x73, 0x79, 0x35, 0x32, 0x74,
|
||||
0x36, 0x39, 0x76, 0x65, 0x39, 0x61, 0x75, 0x6e, 0x6b, 0x37, 0x6a, 0x77, 0x32, 0x70,
|
||||
0x33, 0x74, 0x77, 0x72, 0x61, 0x75, 0x68, 0x6e, 0x6c, 0x36, 0x38, 0x34, 0x6d, 0x6e,
|
||||
0x77, 0x33, 0x63, 0x32, 0x75, 0x79, 0x68, 0x61, 0x6a, 0x36, 0x6c, 0x70, 0x34, 0x6c,
|
||||
0x33,
|
||||
0x75, 0x31, 0x64, 0x33, 0x72, 0x6b, 0x71, 0x77, 0x7a, 0x39, 0x6b, 0x37, 0x34, 0x6b,
|
||||
0x74, 0x75, 0x76, 0x6c, 0x74, 0x6e, 0x32, 0x74, 0x6d, 0x74, 0x6a, 0x36, 0x67, 0x6b,
|
||||
0x6c, 0x67, 0x39, 0x33, 0x68, 0x77, 0x73, 0x39, 0x37, 0x79, 0x74, 0x73, 0x33, 0x7a,
|
||||
0x75, 0x36, 0x30, 0x38, 0x76, 0x6b, 0x76, 0x67, 0x33, 0x63, 0x32, 0x79, 0x73, 0x68,
|
||||
0x6d, 0x6d, 0x33, 0x30, 0x71, 0x36, 0x68, 0x38, 0x6b, 0x64, 0x34, 0x72, 0x74, 0x33,
|
||||
0x73, 0x30, 0x76, 0x70, 0x34, 0x75, 0x61, 0x6a, 0x77, 0x66, 0x68, 0x39, 0x61, 0x37,
|
||||
0x35, 0x65, 0x38, 0x61, 0x38, 0x37, 0x30, 0x6e, 0x39, 0x34, 0x6c, 0x6b, 0x70, 0x65,
|
||||
0x78, 0x35, 0x61, 0x73, 0x37, 0x71, 0x6e, 0x77, 0x33, 0x34, 0x36, 0x34, 0x6e, 0x72,
|
||||
0x61, 0x74, 0x75, 0x63, 0x35, 0x6e, 0x35, 0x79, 0x35, 0x75, 0x76, 0x6e, 0x7a, 0x76,
|
||||
0x66, 0x32, 0x6d, 0x34, 0x66, 0x65, 0x6a, 0x68, 0x7a, 0x65, 0x76, 0x68, 0x6e, 0x30,
|
||||
0x6d,
|
||||
],
|
||||
},
|
||||
TestVector {
|
||||
|
@ -293,14 +293,14 @@ fn unified() {
|
|||
]),
|
||||
orchard_raw_addr: None,
|
||||
unified_addr: vec![
|
||||
0x75, 0x31, 0x72, 0x79, 0x68, 0x74, 0x61, 0x36, 0x6d, 0x73, 0x35, 0x6a, 0x61, 0x73,
|
||||
0x75, 0x39, 0x6e, 0x76, 0x65, 0x32, 0x32, 0x39, 0x6d, 0x76, 0x39, 0x38, 0x36, 0x64,
|
||||
0x67, 0x7a, 0x39, 0x36, 0x6a, 0x6c, 0x37, 0x35, 0x72, 0x32, 0x71, 0x6c, 0x6d, 0x78,
|
||||
0x79, 0x70, 0x61, 0x36, 0x37, 0x75, 0x65, 0x72, 0x76, 0x37, 0x38, 0x34, 0x72, 0x72,
|
||||
0x35, 0x30, 0x66, 0x63, 0x67, 0x75, 0x67, 0x76, 0x6b, 0x64, 0x67, 0x67, 0x32, 0x77,
|
||||
0x73, 0x72, 0x6e, 0x78, 0x77, 0x73, 0x73, 0x78, 0x75, 0x6c, 0x77, 0x30, 0x6c, 0x7a,
|
||||
0x38, 0x77, 0x35, 0x37, 0x39, 0x70, 0x74, 0x6a, 0x32, 0x39, 0x77, 0x75, 0x67, 0x38,
|
||||
0x38, 0x67, 0x67, 0x35, 0x77, 0x33, 0x7a, 0x73,
|
||||
0x75, 0x31, 0x61, 0x66, 0x61, 0x74, 0x30, 0x64, 0x75, 0x74, 0x61, 0x73, 0x79, 0x66,
|
||||
0x6b, 0x73, 0x61, 0x61, 0x76, 0x6d, 0x34, 0x72, 0x6c, 0x33, 0x61, 0x78, 0x71, 0x6e,
|
||||
0x75, 0x78, 0x6c, 0x77, 0x74, 0x37, 0x36, 0x35, 0x73, 0x39, 0x34, 0x76, 0x39, 0x7a,
|
||||
0x71, 0x6a, 0x74, 0x30, 0x39, 0x7a, 0x79, 0x36, 0x33, 0x64, 0x6c, 0x35, 0x6d, 0x6d,
|
||||
0x79, 0x70, 0x39, 0x78, 0x35, 0x63, 0x6b, 0x76, 0x72, 0x75, 0x6c, 0x6d, 0x64, 0x71,
|
||||
0x34, 0x63, 0x6b, 0x6a, 0x33, 0x72, 0x72, 0x76, 0x37, 0x66, 0x39, 0x6c, 0x37, 0x75,
|
||||
0x6e, 0x78, 0x66, 0x6c, 0x30, 0x64, 0x38, 0x72, 0x36, 0x35, 0x38, 0x32, 0x34, 0x74,
|
||||
0x67, 0x73, 0x67, 0x72, 0x76, 0x67, 0x30, 0x71,
|
||||
],
|
||||
},
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue