Bitcoin Core  27.99.0
P2P Digital Currency
Functions | Variables
signingprovider.cpp File Reference
#include <script/keyorigin.h>
#include <script/interpreter.h>
#include <script/signingprovider.h>
#include <logging.h>
Include dependency graph for signingprovider.cpp:

Go to the source code of this file.

Functions

template<typename M , typename K , typename V >
bool LookupHelper (const M &map, const K &key, V &value)
 
CKeyID GetKeyForDestination (const SigningProvider &store, const CTxDestination &dest)
 Return the CKeyID of the key involved in a script (if there is a unique one). More...
 
std::optional< std::vector< std::tuple< int, std::vector< unsigned char >, int > > > InferTaprootTree (const TaprootSpendData &spenddata, const XOnlyPubKey &output)
 Given a TaprootSpendData and the output key, reconstruct its script tree. More...
 

Variables

const SigningProviderDUMMY_SIGNING_PROVIDER = SigningProvider()
 

Function Documentation

◆ GetKeyForDestination()

CKeyID GetKeyForDestination ( const SigningProvider store,
const CTxDestination dest 
)

Return the CKeyID of the key involved in a script (if there is a unique one).

Definition at line 198 of file signingprovider.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InferTaprootTree()

std::optional<std::vector<std::tuple<int, std::vector<unsigned char>, int> > > InferTaprootTree ( const TaprootSpendData spenddata,
const XOnlyPubKey output 
)

Given a TaprootSpendData and the output key, reconstruct its script tree.

If the output doesn't match the spenddata, or if the data in spenddata is incomplete, std::nullopt is returned. Otherwise, a vector of (depth, script, leaf_ver) tuples is returned, corresponding to a depth-first traversal of the script tree.

Data structure to represent the nodes of the tree we're going to build.

Hash of this node, if known; 0 otherwise.

The left and right subtrees (note that their order is irrelevant).

If this is known to be a leaf node, a pointer to the (script, leaf_ver) pair. nullptr otherwise.

Whether or not this node has been explored (is known to be a leaf, or known to have children).

Whether or not this node is an inner node (unknown until explored = true).

Whether or not we have produced output for this subtree.

Definition at line 429 of file signingprovider.cpp.

Here is the call graph for this function:

◆ LookupHelper()

template<typename M , typename K , typename V >
bool LookupHelper ( const M &  map,
const K &  key,
V &  value 
)

Definition at line 15 of file signingprovider.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ DUMMY_SIGNING_PROVIDER

const SigningProvider& DUMMY_SIGNING_PROVIDER = SigningProvider()

Definition at line 12 of file signingprovider.cpp.