diff --git a/test/functional/wallet_create_tx.py b/test/functional/wallet_create_tx.py index 703e75668f..fbd11d1ec8 100755 --- a/test/functional/wallet_create_tx.py +++ b/test/functional/wallet_create_tx.py @@ -58,6 +58,7 @@ class CreateTxWalletTest(BitcoinTestFramework): # More than 10kB of outputs, so that we hit -maxtxfee with a high feerate outputs = {self.nodes[0].getnewaddress(address_type='bech32'): 0.000025 for _ in range(400)} raw_tx = self.nodes[0].createrawtransaction(inputs=[], outputs=outputs) + msg = "Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate)" for fee_setting in ['-minrelaytxfee=0.01', '-mintxfee=0.01', '-paytxfee=0.01']: self.log.info('Check maxtxfee in combination with {}'.format(fee_setting)) @@ -88,6 +89,12 @@ class CreateTxWalletTest(BitcoinTestFramework): ) self.nodes[0].settxfee(0) + self.log.info('Check maxtxfee in combination with setfeerate (sat/vB)') + self.nodes[0].setfeerate(1000) + assert_raises_rpc_error(-6, msg, self.nodes[0].sendmany, dummy="", amounts=outputs) + assert_raises_rpc_error(-4, msg, self.nodes[0].fundrawtransaction, hexstring=raw_tx) + self.nodes[0].setfeerate(0) + def test_create_too_long_mempool_chain(self): self.log.info('Check too-long mempool chain error') df_wallet = self.nodes[0].get_wallet_rpc(self.default_wallet_name) diff --git a/test/functional/wallet_multiwallet.py b/test/functional/wallet_multiwallet.py index 156f4279b4..8512ba5a10 100755 --- a/test/functional/wallet_multiwallet.py +++ b/test/functional/wallet_multiwallet.py @@ -250,12 +250,18 @@ class MultiWalletTest(BitcoinTestFramework): assert_equal(batch[0]["result"]["chain"], self.chain) assert_equal(batch[1]["result"]["walletname"], "w1") - self.log.info('Check for per-wallet settxfee call') + self.log.info('Test per-wallet setfeerate and settxfee calls') assert_equal(w1.getwalletinfo()['paytxfee'], 0) assert_equal(w2.getwalletinfo()['paytxfee'], 0) + w2.setfeerate(200) + assert_equal(w1.getwalletinfo()['paytxfee'], 0) + assert_equal(w2.getwalletinfo()['paytxfee'], Decimal('0.00200000')) w2.settxfee(0.001) assert_equal(w1.getwalletinfo()['paytxfee'], 0) assert_equal(w2.getwalletinfo()['paytxfee'], Decimal('0.00100000')) + w1.setfeerate(30) + assert_equal(w1.getwalletinfo()['paytxfee'], Decimal('0.00030000')) + assert_equal(w2.getwalletinfo()['paytxfee'], Decimal('0.00100000')) self.log.info("Test dynamic wallet loading")