Commit Graph

16 Commits

Author SHA1 Message Date
Kris Nuttycombe e454065250 Remove spurious rng argument to encode_unified. 2022-10-07 19:17:38 -06:00
Kris Nuttycombe 97f9fbb44c Generate predictable UA structure for the first 3 test vectors.
This makes the first few test vectors easier to use by wallet
implementers. The generated UAs now have the following structure:

* Account 0: P2PKH + Sapling
* Account 1: P2PKH + Sapling + Orchard
* Account 2: Sapling + Orchard

The remainder are randomly generated as before.
2022-10-07 19:17:35 -06:00
Kris Nuttycombe c14646f236 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-10-07 19:17:26 -06:00
Kris Nuttycombe fb5f931e5f Ensure that successive diversified UAs have the same structure.
In 23321662d1, the unified address
test vectors were modified to include multiple addresses for each
account at successive diversifier indices. However, the generation
process resulted in such diversified addresses having varying sets
of typecodes within a single account; in particular, p2sh and p2pkh
addresses were interleaved in a manner that made testing transparent
functionality using the resulting test vectors more difficult.

In the process of this fix, it was also noted that the handling of
unknown typecodes was inconsistent, with the unknown typecode always
being included in the resulting test vector even if no data
corresponding to that typecode was present. This has also been
modified such that if an unknown typecode is present, data is present,
and vice versa.
2022-10-07 19:17:23 -06:00
Kris Nuttycombe ac92513d4e Fix derivation of transparent UA parts. 2022-10-07 19:13:53 -06:00
Kris Nuttycombe 8f18c764d6 Use unified addresse strings in test vectors rather than byte vectors. 2022-09-19 13:59:00 -06:00
Kris Nuttycombe 23321662d1 Provide UA test vectors for the first 3 valid diversifier indices for each account. 2022-09-15 15:18:20 -06:00
Daira Hopwood ccf1e5d7df Ensure that unknown items are included in Unified Address test vectors.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-14 02:52:28 +00:00
Daira Hopwood 1c10ad5f4a Avoid the need to specify a `rust_fmt` function for Options.
This does not change test vectors.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-12 20:57:37 +00:00
Daira Hopwood 54f168a30b Include the seed used for derivation in UA/UIVK/UFVK test vectors.
Also change variable-length vectors to use 'bitcoin_flavoured': False.

Co-authored-by: Kris Nuttycombe <kris@nutty.land>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-12 17:31:25 +00:00
Daira Hopwood 189cadb357 Reduce run times of unified_{address, incoming_viewing_keys, full_viewing_keys}.py by over half
by avoiding duplicated work in deriving levels of the key hierarchy above the account level.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-11 16:29:14 +00:00
Daira Hopwood f8a462d859 Make the test vectors for UAs, UIVKs, and UFVKs match up, and allow unknown items for UAs.
Also increase the number of test vectors to 20 (10 might be insufficient to see some corner cases).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-11 16:29:14 +00:00
Daira Hopwood 3477c241aa Add BIP 32 key derivation and test vectors.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-11 16:29:14 +00:00
Daira Hopwood e5d31fea89 Implement ZIP 32 derivation for Orchard and use it for the Unified Address, IVK and FVK test vectors.
This commit only affects the Orchard test vectors.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-11 16:29:14 +00:00
Daira Hopwood 68e4ed1ee2 Change the seed used for Unified Address, IVK and FVK test vectors to be deterministic.
As of this commit, this only affects the Sapling test vectors (we still sample the same
randomness to avoid disturbing the others).

A "diversifier_index" field is added to the Unified Address test vectors. (This is not needed
for UIVKs/UFVKs since they do not depend on the diversifier index for any protocol.)

We also add an "account" field to make the account number explicit, even though it could be
inferred from the test vector index.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-11 16:29:14 +00:00
Daira Hopwood f07451a025 Move remaining scripts out of the root directory.
closes #79

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-08 13:53:57 +00:00