#[non_exhaustive]
pub struct Vector {
pub name: &'static str,
pub template: &'static str,
pub keys: &'static [(u8, &'static str)],
pub fingerprints: &'static [(u8, [u8; 4])],
pub force_chunked: bool,
pub path: Option<&'static str>,
}
#[rustfmt::skip]
pub const MANIFEST: &[Vector] = &[
Vector { name: "wpkh_basic", template: "wpkh(@0/<0;1>/*)", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "pkh_basic", template: "pkh(@0/<0;1>/*)", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "wsh_multi_2of2", template: "wsh(multi(2,@0/<0;1>/*,@1/<0;1>/*))", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "wsh_multi_2of3", template: "wsh(multi(2,@0/<0;1>/*,@1/<0;1>/*,@2/<0;1>/*))", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "wsh_sortedmulti", template: "wsh(sortedmulti(2,@0/<0;1>/*,@1/<0;1>/*,@2/<0;1>/*))", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "tr_keyonly", template: "tr(@0/<0;1>/*)", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "sh_wsh_multi", template: "sh(wsh(multi(2,@0/<0;1>/*,@1/<0;1>/*)))", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "wsh_divergent_paths", template: "wsh(multi(2,@0/<0;1>/*,@1/<2;3>/*))", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "wsh_with_fingerprints", template: "wsh(multi(2,@0/<0;1>/*,@1/<0;1>/*))",
keys: &[],
fingerprints: &[(0, [0xDE,0xAD,0xBE,0xEF]), (1, [0xCA,0xFE,0xBA,0xBE])],
force_chunked: false, path: None },
Vector { name: "wsh_multi_chunked", template: "wsh(multi(3,@0/<0;1>/*,@1/<0;1>/*,@2/<0;1>/*))", keys: &[], fingerprints: &[], force_chunked: true, path: None },
Vector { name: "sh_wpkh", template: "sh(wpkh(@0/<0;1>/*))", keys: &[], fingerprints: &[], force_chunked: false, path: None },
Vector { name: "tr_with_leaf", template: "tr(@0/<0;1>/*,pk(@1/<0;1>/*))", keys: &[], fingerprints: &[], force_chunked: false, path: Some("48'/0'/0'/2'") },
Vector { name: "nums_taproot", template: "tr(50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0,multi_a(2,@0/<0;1>/*,@1/<0;1>/*,@2/<0;1>/*))",
keys: &[], fingerprints: &[], force_chunked: false, path: Some("48'/0'/0'/2'") },
Vector { name: "wsh_sortedmulti_2chunk",
template: "wsh(sortedmulti(2,@0/<0;1>/*,@1/<0;1>/*,@2/<0;1>/*,@3/<0;1>/*,@4/<0;1>/*,@5/<0;1>/*,@6/<0;1>/*,@7/<0;1>/*))",
keys: &[],
fingerprints: &[
(0, [0x01,0x02,0x03,0x04]), (1, [0x02,0x03,0x04,0x05]),
(2, [0x03,0x04,0x05,0x06]), (3, [0x04,0x05,0x06,0x07]),
(4, [0x05,0x06,0x07,0x08]), (5, [0x06,0x07,0x08,0x09]),
(6, [0x07,0x08,0x09,0x0A]), (7, [0x08,0x09,0x0A,0x0B]),
],
force_chunked: true, path: None },
Vector { name: "single_string_boundary",
template: "wsh(sortedmulti(2,@0/<0;1>/*,@1/<0;1>/*,@2/<0;1>/*,@3/<0;1>/*,@4/<0;1>/*,@5/<0;1>/*,@6/<0;1>/*,@7/<0;1>/*,@8/<0;1>/*))",
keys: &[],
fingerprints: &[
(0, [0x01,0x02,0x03,0x04]), (1, [0x02,0x03,0x04,0x05]),
(2, [0x03,0x04,0x05,0x06]), (3, [0x04,0x05,0x06,0x07]),
(4, [0x05,0x06,0x07,0x08]), (5, [0x06,0x07,0x08,0x09]),
(6, [0x07,0x08,0x09,0x0A]), (7, [0x08,0x09,0x0A,0x0B]),
],
force_chunked: false, path: None },
];