13 #include <boost/variant/apply_visitor.hpp>
14 #include <boost/variant/static_visitor.hpp>
33 std::vector<unsigned char> seraddr(ss.
begin(), ss.
end());
34 std::vector<unsigned char> data;
36 data.reserve((seraddr.size() * 8 + 4) / 5);
37 ConvertBits<8, 5, true>([&](
unsigned char c) { data.push_back(c); }, seraddr.begin(), seraddr.end());
57 std::vector<unsigned char> serkey(ss.
begin(), ss.
end());
58 std::vector<unsigned char> data;
60 data.reserve((serkey.size() * 8 + 4) / 5);
61 ConvertBits<8, 5, true>([&](
unsigned char c) { data.push_back(c); }, serkey.begin(), serkey.end());
84 std::vector<unsigned char> serkey(ss.
begin(), ss.
end());
85 std::vector<unsigned char> data;
87 data.reserve((serkey.size() * 8 + 4) / 5);
88 ConvertBits<8, 5, true>([&](
unsigned char c) { data.push_back(c); }, serkey.begin(), serkey.end());
115 std::vector<unsigned char> data;
120 data.reserve((bech.second.size() * 5) / 8);
121 if (ConvertBits<5, 8, false>([&](
unsigned char c) { data.push_back(c); }, bech.second.begin(), bech.second.end())) {
134 const auto dest = boost::get<libzcash::SaplingPaymentAddress>(&addr);
152 std::vector<unsigned char> data;
154 data.reserve((bech.second.size() * 5) / 8);
155 if (ConvertBits<5, 8, false>([&](
unsigned char c) { data.push_back(c); }, bech.second.begin(), bech.second.end())) {
173 std::vector<unsigned char> data;
178 data.reserve((bech.second.size() * 5) / 8);
179 if (ConvertBits<5, 8, false>([&](
unsigned char c) { data.push_back(c); }, bech.second.begin(), bech.second.end())) {
bool IsValidPaymentAddress(const libzcash::PaymentAddress &zaddr)
Check whether a PaymentAddress is not an InvalidEncoding.
const CChainParams & Params()
Return the currently selected parameters.
const_iterator end() const
const_iterator begin() const
CChainParams defines various tweakable parameters of a given instance of the PIVX system.
const std::string & Bech32HRP(Bech32Type type) const
@ SAPLING_PAYMENT_ADDRESS
@ SAPLING_EXTENDED_SPEND_KEY
std::string operator()(const libzcash::SaplingPaymentAddress &zaddr) const
const CChainParams & m_params
std::string operator()(const libzcash::InvalidEncoding &no) const
PaymentAddressEncoder(const CChainParams ¶ms)
std::string operator()(const libzcash::SaplingExtendedSpendingKey &zkey) const
std::string operator()(const libzcash::InvalidEncoding &no) const
SpendingKeyEncoder(const CChainParams ¶ms)
const CChainParams & m_params
std::string operator()(const libzcash::SaplingExtendedFullViewingKey &extfvk) const
ViewingKeyEncoder(const CChainParams ¶ms)
const CChainParams & m_params
std::string operator()(const libzcash::InvalidEncoding &no) const
void memory_cleanse(void *ptr, size_t len)
libzcash::SpendingKey DecodeSpendingKey(const std::string &str)
std::string EncodePaymentAddress(const libzcash::PaymentAddress &zaddr)
const size_t ConvertedSaplingPaymentAddressSize
const size_t ConvertedSaplingExtendedFullViewingKeySize
Optional< libzcash::SaplingPaymentAddress > DecodeSaplingPaymentAddress(const std::string &strAddress)
libzcash::ViewingKey DecodeViewingKey(const std::string &str)
std::string EncodeViewingKey(const libzcash::ViewingKey &vk)
bool IsValidPaymentAddressString(const std::string &str)
libzcash::PaymentAddress DecodePaymentAddress(const std::string &str)
std::string EncodeSpendingKey(const libzcash::SpendingKey &zkey)
const size_t ConvertedSaplingExtendedSpendingKeySize
std::pair< std::string, data > Decode(const std::string &str)
Decode a Bech32 string.
std::string Encode(const std::string &hrp, const data &values)
Encode a Bech32 string.
boost::variant< InvalidEncoding, SaplingPaymentAddress > PaymentAddress
boost::variant< InvalidEncoding, SaplingExtendedSpendingKey > SpendingKey
boost::variant< InvalidEncoding, SaplingExtendedFullViewingKey > ViewingKey
boost::optional< T > Optional
Substitute for C++17 std::optional.
const size_t ZIP32_XFVK_SIZE
const size_t ZIP32_XSK_SIZE