#include #include #include #include #include TEST(Keys, DISABLED_EncodeAndDecodeSapling) { SelectParams(CBaseChainParams::MAIN); std::vector> rawSeed(32); HDSeed seed(rawSeed); auto m = libzcash::SaplingExtendedSpendingKey::Master(seed); for (uint32_t i = 0; i < 1000; i++) { auto sk = m.Derive(i); { std::string sk_string = EncodeSpendingKey(sk); EXPECT_EQ( sk_string.substr(0, 24), Params().Bech32HRP(CChainParams::SAPLING_EXTENDED_SPEND_KEY)); auto spendingkey2 = DecodeSpendingKey(sk_string); EXPECT_TRUE(IsValidSpendingKey(spendingkey2)); ASSERT_TRUE(boost::get(&spendingkey2) != nullptr); auto sk2 = boost::get(spendingkey2); EXPECT_EQ(sk, sk2); } { auto addr = sk.DefaultAddress(); std::string addr_string = EncodePaymentAddress(addr); EXPECT_EQ( addr_string.substr(0, 2), Params().Bech32HRP(CChainParams::SAPLING_PAYMENT_ADDRESS)); auto paymentaddr2 = DecodePaymentAddress(addr_string); EXPECT_TRUE(IsValidPaymentAddress(paymentaddr2)); ASSERT_TRUE(boost::get(&paymentaddr2) != nullptr); auto addr2 = boost::get(paymentaddr2); EXPECT_EQ(addr, addr2); } } }