aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2017-03-30 09:26:21 +0200
committerJonas Schnelli <dev@jonasschnelli.ch>2017-04-02 10:12:43 +0200
commit5f59d3ecb7f1b63579e7f07fc520459cdf119c81 (patch)
tree2676a11700b27907a255ee47199cbfbb1926e73d /src
parent0df22ed6fd0b83d181dc8ce3786a47da0f1d58ae (diff)
Improve CFeeBumper interface, add comments, make use of std::move
Diffstat (limited to 'src')
-rw-r--r--src/wallet/feebumper.cpp7
-rw-r--r--src/wallet/feebumper.h12
-rw-r--r--src/wallet/rpcwallet.cpp2
3 files changed, 18 insertions, 3 deletions
diff --git a/src/wallet/feebumper.cpp b/src/wallet/feebumper.cpp
index 73de239529..fe3871a91d 100644
--- a/src/wallet/feebumper.cpp
+++ b/src/wallet/feebumper.cpp
@@ -42,7 +42,7 @@ int64_t CalculateMaximumSignedTxSize(const CTransaction &tx, const CWallet *pWal
CFeeBumper::CFeeBumper(const CWallet *pWallet, const uint256 txidIn, int newConfirmTarget, bool specifiedConfirmTarget, CAmount totalFee, bool newTxReplaceable)
:
- txid(txidIn),
+ txid(std::move(txidIn)),
nOldFee(0),
nNewFee(0)
{
@@ -229,6 +229,11 @@ CFeeBumper::CFeeBumper(const CWallet *pWallet, const uint256 txidIn, int newConf
currentResult = BumpFeeResult::OK;
}
+bool CFeeBumper::signTransaction(CWallet *pWallet)
+{
+ return pWallet->SignTransaction(mtx);
+}
+
bool CFeeBumper::commit(CWallet *pWallet)
{
AssertLockHeld(pWallet->cs_wallet);
diff --git a/src/wallet/feebumper.h b/src/wallet/feebumper.h
index 42b0ccad36..1a30499893 100644
--- a/src/wallet/feebumper.h
+++ b/src/wallet/feebumper.h
@@ -28,9 +28,19 @@ public:
const std::vector<std::string>& getErrors() const { return vErrors; }
CAmount getOldFee() const { return nOldFee; }
CAmount getNewFee() const { return nNewFee; }
- CMutableTransaction* getBumpedTxRef() { return &mtx; }
uint256 getBumpedTxId() const { return bumpedTxid; }
+ /* signs the new transaction,
+ * returns false if the tx couldn't be found or if it was
+ * improssible to create the signature(s)
+ */
+ bool signTransaction(CWallet *pWallet);
+
+ /* commits the fee bump,
+ * returns true, in case of CWallet::CommitTransaction was successful
+ * but, eventually sets vErrors if the tx could not be added to the mempool (will try later)
+ * or if the old transaction could not be marked as replaced
+ */
bool commit(CWallet *pWalletNonConst);
private:
diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp
index f746c54f24..2cc3072c16 100644
--- a/src/wallet/rpcwallet.cpp
+++ b/src/wallet/rpcwallet.cpp
@@ -2895,7 +2895,7 @@ UniValue bumpfee(const JSONRPCRequest& request)
}
// sign bumped transaction
- if (!pwallet->SignTransaction(*feeBump.getBumpedTxRef())) {
+ if (!feeBump.signTransaction(pwallet)) {
throw JSONRPCError(RPC_WALLET_ERROR, "Can't sign transaction.");
}
// commit the bumped transaction