@@ -116,6 +116,7 @@ def run_test(self):
116116
117117 # Context independent tests
118118 test_feerate_checks_replaced_outputs (self , rbf_node , peer_node )
119+ test_bumpfee_with_feerate_ignores_walletincrementalrelayfee (self , rbf_node , peer_node )
119120
120121 def test_invalid_parameters (self , rbf_node , peer_node , dest_address ):
121122 self .log .info ('Test invalid parameters' )
@@ -829,5 +830,27 @@ def test_feerate_checks_replaced_outputs(self, rbf_node, peer_node):
829830 self .clear_mempool ()
830831
831832
833+ def test_bumpfee_with_feerate_ignores_walletincrementalrelayfee (self , rbf_node , peer_node ):
834+ self .log .info ('Test that bumpfee with fee_rate ignores walletincrementalrelayfee' )
835+ # Make sure there is enough balance
836+ peer_node .sendtoaddress (rbf_node .getnewaddress (), 2 )
837+ self .generate (peer_node , 1 )
838+
839+ dest_address = peer_node .getnewaddress (address_type = "bech32" )
840+ tx = rbf_node .send (outputs = [{dest_address : 1 }], fee_rate = 2 )
841+
842+ # Ensure you can not fee bump with a fee_rate below or equal to the original fee_rate
843+ assert_raises_rpc_error (- 8 , "Insufficient total fee" , rbf_node .bumpfee , tx ["txid" ], {"fee_rate" : 1 })
844+ assert_raises_rpc_error (- 8 , "Insufficient total fee" , rbf_node .bumpfee , tx ["txid" ], {"fee_rate" : 2 })
845+
846+ # Ensure you can not fee bump if the fee_rate is more than original fee_rate but the total fee from new fee_rate is
847+ # less than (original fee + incrementalrelayfee)
848+ assert_raises_rpc_error (- 8 , "Insufficient total fee" , rbf_node .bumpfee , tx ["txid" ], {"fee_rate" : 2.8 })
849+
850+ # You can fee bump as long as the new fee set from fee_rate is atleast (original fee + incrementalrelayfee)
851+ rbf_node .bumpfee (tx ["txid" ], {"fee_rate" : 3 })
852+ self .clear_mempool ()
853+
854+
832855if __name__ == "__main__" :
833856 BumpFeeTest ().main ()
0 commit comments