desprout
This commit is contained in:
@@ -344,20 +344,6 @@ std::string EncodeSpendingKey(const libzcash::SpendingKey& zkey)
|
|||||||
libzcash::SpendingKey DecodeSpendingKey(const std::string& str)
|
libzcash::SpendingKey DecodeSpendingKey(const std::string& str)
|
||||||
{
|
{
|
||||||
std::vector<unsigned char> data;
|
std::vector<unsigned char> data;
|
||||||
if (DecodeBase58Check(str, data)) {
|
|
||||||
const std::vector<unsigned char>& zkey_prefix = Params().Base58Prefix(CChainParams::ZCSPENDING_KEY);
|
|
||||||
if ((data.size() == libzcash::SerializedSproutSpendingKeySize + zkey_prefix.size()) &&
|
|
||||||
std::equal(zkey_prefix.begin(), zkey_prefix.end(), data.begin())) {
|
|
||||||
CSerializeData serialized(data.begin() + zkey_prefix.size(), data.end());
|
|
||||||
CDataStream ss(serialized, SER_NETWORK, PROTOCOL_VERSION);
|
|
||||||
libzcash::SproutSpendingKey ret;
|
|
||||||
ss >> ret;
|
|
||||||
memory_cleanse(serialized.data(), serialized.size());
|
|
||||||
memory_cleanse(data.data(), data.size());
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
data.clear();
|
|
||||||
auto bech = bech32::Decode(str);
|
auto bech = bech32::Decode(str);
|
||||||
if (bech.first == Params().Bech32HRP(CChainParams::SAPLING_EXTENDED_SPEND_KEY) &&
|
if (bech.first == Params().Bech32HRP(CChainParams::SAPLING_EXTENDED_SPEND_KEY) &&
|
||||||
bech.second.size() == ConvertedSaplingExtendedSpendingKeySize) {
|
bech.second.size() == ConvertedSaplingExtendedSpendingKeySize) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
||||||
// Copyright (c) 2016-2018 The Zcash developers
|
// Copyright (c) 2016-2018 The Zcash developers
|
||||||
|
// Copyright (c) 2019-2020 The Hush developers
|
||||||
// Distributed under the MIT software license, see the accompanying
|
// Distributed under the MIT software license, see the accompanying
|
||||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Copyright (c) 2014 The Bitcoin Core developers
|
// Copyright (c) 2014 The Bitcoin Core developers
|
||||||
|
// Copyright (c) 2019-2020 The Hush developers
|
||||||
// Distributed under the MIT software license, see the accompanying
|
// Distributed under the MIT software license, see the accompanying
|
||||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
@@ -39,22 +40,6 @@ public:
|
|||||||
hashBestSaplingAnchor_ = SaplingMerkleTree::empty_root();
|
hashBestSaplingAnchor_ = SaplingMerkleTree::empty_root();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetSproutAnchorAt(const uint256& rt, SproutMerkleTree &tree) const {
|
|
||||||
if (rt == SproutMerkleTree::empty_root()) {
|
|
||||||
SproutMerkleTree new_tree;
|
|
||||||
tree = new_tree;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::map<uint256, SproutMerkleTree>::const_iterator it = mapSproutAnchors_.find(rt);
|
|
||||||
if (it == mapSproutAnchors_.end()) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
tree = it->second;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GetSaplingAnchorAt(const uint256& rt, SaplingMerkleTree &tree) const {
|
bool GetSaplingAnchorAt(const uint256& rt, SaplingMerkleTree &tree) const {
|
||||||
if (rt == SaplingMerkleTree::empty_root()) {
|
if (rt == SaplingMerkleTree::empty_root()) {
|
||||||
SaplingMerkleTree new_tree;
|
SaplingMerkleTree new_tree;
|
||||||
|
|||||||
Reference in New Issue
Block a user