multiprocess: add interfaces::ExternalSigner class

Add interfaces::ExternalSigner to let signer objects be passed between
processes and signer code to run in the original process, without
multiple processes linking and running signer code.
This commit is contained in:
Russell Yanofsky
2021-06-16 14:49:09 -04:00
parent 113b863f07
commit a032fa30d2
5 changed files with 41 additions and 12 deletions

View File

@@ -6,7 +6,6 @@
#define BITCOIN_INTERFACES_NODE_H
#include <consensus/amount.h>
#include <external_signer.h>
#include <net.h> // For NodeId
#include <net_types.h> // For banmap_t
#include <netaddress.h> // For Network
@@ -50,6 +49,16 @@ struct BlockAndHeaderTipInfo
double verification_progress;
};
//! External signer interface used by the GUI.
class ExternalSigner
{
public:
virtual ~ExternalSigner() {};
//! Get signer display name
virtual std::string getName() = 0;
};
//! Top-level interface for a bitcoin node (bitcoind process).
class Node
{
@@ -111,8 +120,8 @@ public:
//! Disconnect node by id.
virtual bool disconnectById(NodeId id) = 0;
//! List external signers
virtual std::vector<ExternalSigner> externalSigners() = 0;
//! Return list of external signers (attached devices which can sign transactions).
virtual std::vector<std::unique_ptr<ExternalSigner>> listExternalSigners() = 0;
//! Get total bytes recv.
virtual int64_t getTotalBytesRecv() = 0;