Bitcoin Core 32.99.0
P2P Digital Currency
Namespaces | Functions
bip352.cpp File Reference
#include <common/bip352.h>
#include <addresstype.h>
#include <bech32.h>
#include <chainparams.h>
#include <coins.h>
#include <key.h>
#include <primitives/transaction.h>
#include <pubkey.h>
#include <script/interpreter.h>
#include <script/script.h>
#include <script/sign.h>
#include <script/solver.h>
#include <script/verify_flags.h>
#include <secp256k1.h>
#include <secp256k1_extrakeys.h>
#include <secp256k1_silentpayments.h>
#include <span.h>
#include <streams.h>
#include <tinyformat.h>
#include <uint256.h>
#include <util/strencodings.h>
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <optional>
#include <span>
#include <type_traits>
#include <utility>
Include dependency graph for bip352.cpp:

Go to the source code of this file.

Namespaces

namespace  bip352
 

Functions

util::Expected< SilentPaymentsDestination, std::string > bip352::DecodeSilentPaymentsAddress (const std::string &str, const CChainParams &params)
 Decode a BIP352 "sp1..." address. Returns the destination, or an error message on failure. More...
 
std::optional< PubKey > bip352::GetPubKeyFromInput (const CTxIn &txin, const CScript &spk)
 Get the public key from an input. More...
 
static std::optional< PrevoutsSummary > bip352::CreateInputPubkeysTweak (const std::vector< CPubKey > &plain_pubkeys, const std::vector< XOnlyPubKey > &taproot_pubkeys, const COutPoint &smallest_outpoint)
 
util::Expected< PrevoutsSummary, PrevoutsSummaryError > bip352::GetSilentPaymentsPrevoutsSummary (const std::vector< CTxIn > &vin, const std::map< COutPoint, Coin > &coins)
 Get silent payments public data from transaction inputs. More...
 
static std::optional< std::vector< secp256k1_xonly_pubkey > > bip352::CreateOutputs (const std::vector< SilentPaymentsDestination > &recipients, const std::vector< CKey > &plain_keys, const std::vector< KeyPair > &taproot_keypairs, const COutPoint &smallest_outpoint)
 
std::optional< std::map< size_t, WitnessV1Taproot > > bip352::GenerateSilentPaymentsTaprootDestinations (const std::map< size_t, SilentPaymentsDestination > &sp_dests, const std::vector< CKey > &plain_keys, const std::vector< KeyPair > &taproot_keys, const COutPoint &smallest_outpoint)
 Generate silent payments taproot destinations. More...
 
static const unsigned char * bip352::LabelLookupCallback (const unsigned char *key, const void *context)
 
static std::pair< SilentPaymentsLabel, uint256 > bip352::CreateLabel (const CKey &scan_key, const uint32_t m)
 
static CPubKey bip352::CreateLabeledSpendPubKey (const CPubKey &spend_pubkey, const SilentPaymentsLabel &label)