diff options
author | Jonas Schnelli <dev@jonasschnelli.ch> | 2017-03-30 09:26:21 +0200 |
---|---|---|
committer | Jonas Schnelli <dev@jonasschnelli.ch> | 2017-04-02 10:12:43 +0200 |
commit | 5f59d3ecb7f1b63579e7f07fc520459cdf119c81 (patch) | |
tree | 2676a11700b27907a255ee47199cbfbb1926e73d /src | |
parent | 0df22ed6fd0b83d181dc8ce3786a47da0f1d58ae (diff) |
Improve CFeeBumper interface, add comments, make use of std::move
Diffstat (limited to 'src')
-rw-r--r-- | src/wallet/feebumper.cpp | 7 | ||||
-rw-r--r-- | src/wallet/feebumper.h | 12 | ||||
-rw-r--r-- | src/wallet/rpcwallet.cpp | 2 |
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 |