Bitcoin Core  0.20.99
P2P Digital Currency
Classes | Typedefs | Functions
descriptor.h File Reference
#include <optional.h>
#include <outputtype.h>
#include <script/script.h>
#include <script/sign.h>
#include <script/signingprovider.h>
#include <vector>
Include dependency graph for descriptor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DescriptorCache
 Cache for single descriptor's derived extended pubkeys. More...
 
struct  Descriptor
 Interface for parsed descriptor objects. More...
 

Typedefs

using ExtPubKeyMap = std::unordered_map< uint32_t, CExtPubKey >
 

Functions

std::unique_ptr< DescriptorParse (const std::string &descriptor, FlatSigningProvider &out, std::string &error, bool require_checksum=false)
 Parse a descriptor string. More...
 
std::string GetDescriptorChecksum (const std::string &descriptor)
 Get the checksum for a descriptor. More...
 
std::unique_ptr< DescriptorInferDescriptor (const CScript &script, const SigningProvider &provider)
 Find a descriptor for the specified script, using information from provider where possible. More...
 

Typedef Documentation

◆ ExtPubKeyMap

using ExtPubKeyMap = std::unordered_map<uint32_t, CExtPubKey>

Definition at line 16 of file descriptor.h.

Function Documentation

◆ GetDescriptorChecksum()

std::string GetDescriptorChecksum ( const std::string &  descriptor)

Get the checksum for a descriptor.

  • If it already has one, and it is correct, return the checksum in the input.
  • If it already has one that is wrong, return "".
  • If it does not already have one, return the checksum that would need to be added.

Definition at line 1097 of file descriptor.cpp.

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

◆ InferDescriptor()

std::unique_ptr<Descriptor> InferDescriptor ( const CScript script,
const SigningProvider provider 
)

Find a descriptor for the specified script, using information from provider where possible.

A non-ranged descriptor which only generates the specified script will be returned in all circumstances.

For public keys with key origin information, this information will be preserved in the returned descriptor.

  • If all information for solving script is present in provider, a descriptor will be returned which is IsSolvable() and encapsulates said information.
  • Failing that, if script corresponds to a known address type, an "addr()" descriptor will be returned (which is not IsSolvable()).
  • Failing that, a "raw()" descriptor is returned.

Definition at line 1106 of file descriptor.cpp.

Here is the caller graph for this function:

◆ Parse()

std::unique_ptr<Descriptor> Parse ( const std::string &  descriptor,
FlatSigningProvider out,
std::string &  error,
bool  require_checksum = false 
)

Parse a descriptor string.

Included private keys are put in out.

If the descriptor has a checksum, it must be valid. If require_checksum is set, the checksum is mandatory - otherwise it is optional.

If a parse error occurs, or the checksum is missing/invalid, or anything else is wrong, nullptr is returned.

Definition at line 1088 of file descriptor.cpp.

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