aboutsummaryrefslogtreecommitdiff
path: root/src/node/psbt.h
diff options
context:
space:
mode:
authorAndrew Chow <achow101-github@achow101.com>2019-11-19 14:35:14 -0500
committerLuke Dashjr <luke-jr+git@utopios.org>2020-01-03 04:04:38 +0000
commit551583398ba4fdae973c047bc60556ffa17c6431 (patch)
treebf2d25b820d1118e230997109834f78c1d26ddbd /src/node/psbt.h
parent8afa602f308ef003bb6893718eae1fe5a830690c (diff)
downloadbitcoin-551583398ba4fdae973c047bc60556ffa17c6431.tar.xz
Have a PSBTAnalysis state that indicates invalid PSBT
Invalid PSBTs need to be re-created, so the next role is the Creator (new PSBTRole). Additionally, we need to know what went wrong so an error field was added to PSBTAnalysis. A PSBTAnalysis indicating invalid will have empty everything, next will be set to PSBTRole::CREATOR, and an error message. Github-Pull: #17524 Rebased-From: 638e40cb6080800c7b0a7f4028f63326acbe4700
Diffstat (limited to 'src/node/psbt.h')
-rw-r--r--src/node/psbt.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/node/psbt.h b/src/node/psbt.h
index e04366a20f..7384dc415c 100644
--- a/src/node/psbt.h
+++ b/src/node/psbt.h
@@ -30,6 +30,17 @@ struct PSBTAnalysis {
Optional<CAmount> fee; //!< Amount of fee being paid by the transaction
std::vector<PSBTInputAnalysis> inputs; //!< More information about the individual inputs of the transaction
PSBTRole next; //!< Which of the BIP 174 roles needs to handle the transaction next
+ std::string error; //!< Error message
+
+ void SetInvalid(std::string err_msg)
+ {
+ estimated_vsize = nullopt;
+ estimated_feerate = nullopt;
+ fee = nullopt;
+ inputs.clear();
+ next = PSBTRole::CREATOR;
+ error = err_msg;
+ }
};
/**