Improve CFeeBumper interface, add comments, make use of std::move
This commit is contained in:
parent
0df22ed6fd
commit
5f59d3ecb7
3 changed files with 18 additions and 3 deletions
|
@ -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)
|
CFeeBumper::CFeeBumper(const CWallet *pWallet, const uint256 txidIn, int newConfirmTarget, bool specifiedConfirmTarget, CAmount totalFee, bool newTxReplaceable)
|
||||||
:
|
:
|
||||||
txid(txidIn),
|
txid(std::move(txidIn)),
|
||||||
nOldFee(0),
|
nOldFee(0),
|
||||||
nNewFee(0)
|
nNewFee(0)
|
||||||
{
|
{
|
||||||
|
@ -229,6 +229,11 @@ CFeeBumper::CFeeBumper(const CWallet *pWallet, const uint256 txidIn, int newConf
|
||||||
currentResult = BumpFeeResult::OK;
|
currentResult = BumpFeeResult::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CFeeBumper::signTransaction(CWallet *pWallet)
|
||||||
|
{
|
||||||
|
return pWallet->SignTransaction(mtx);
|
||||||
|
}
|
||||||
|
|
||||||
bool CFeeBumper::commit(CWallet *pWallet)
|
bool CFeeBumper::commit(CWallet *pWallet)
|
||||||
{
|
{
|
||||||
AssertLockHeld(pWallet->cs_wallet);
|
AssertLockHeld(pWallet->cs_wallet);
|
||||||
|
|
|
@ -28,9 +28,19 @@ public:
|
||||||
const std::vector<std::string>& getErrors() const { return vErrors; }
|
const std::vector<std::string>& getErrors() const { return vErrors; }
|
||||||
CAmount getOldFee() const { return nOldFee; }
|
CAmount getOldFee() const { return nOldFee; }
|
||||||
CAmount getNewFee() const { return nNewFee; }
|
CAmount getNewFee() const { return nNewFee; }
|
||||||
CMutableTransaction* getBumpedTxRef() { return &mtx; }
|
|
||||||
uint256 getBumpedTxId() const { return bumpedTxid; }
|
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);
|
bool commit(CWallet *pWalletNonConst);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -2895,7 +2895,7 @@ UniValue bumpfee(const JSONRPCRequest& request)
|
||||||
}
|
}
|
||||||
|
|
||||||
// sign bumped transaction
|
// sign bumped transaction
|
||||||
if (!pwallet->SignTransaction(*feeBump.getBumpedTxRef())) {
|
if (!feeBump.signTransaction(pwallet)) {
|
||||||
throw JSONRPCError(RPC_WALLET_ERROR, "Can't sign transaction.");
|
throw JSONRPCError(RPC_WALLET_ERROR, "Can't sign transaction.");
|
||||||
}
|
}
|
||||||
// commit the bumped transaction
|
// commit the bumped transaction
|
||||||
|
|
Loading…
Reference in a new issue