aboutsummaryrefslogtreecommitdiff
path: root/test/functional/wallet_basic.py
diff options
context:
space:
mode:
authorYusuf Sahin HAMZA <yusufsahinhamza@gmail.com>2022-12-21 00:18:35 +0300
committerYusuf Sahin HAMZA <yusufsahinhamza@gmail.com>2023-01-01 02:53:16 +0300
commit057057a2d7e23c2e29cbfd29a5124b3947a33757 (patch)
tree58456c131d665df5a416159a3a6e97185341bf50 /test/functional/wallet_basic.py
parent8575d5d842650a6571c1c3364fd0d9abc6aa0a33 (diff)
downloadbitcoin-057057a2d7e23c2e29cbfd29a5124b3947a33757.tar.xz
Add test for `sendmany` rpc that uses `subtractfeefrom` parameter
Diffstat (limited to 'test/functional/wallet_basic.py')
-rwxr-xr-xtest/functional/wallet_basic.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/functional/wallet_basic.py b/test/functional/wallet_basic.py
index 86cfd4a230..2e10c0f0bf 100755
--- a/test/functional/wallet_basic.py
+++ b/test/functional/wallet_basic.py
@@ -267,6 +267,20 @@ class WalletTest(BitcoinTestFramework):
assert_equal(self.nodes[2].getbalance(), node_2_bal)
node_0_bal = self.check_fee_amount(self.nodes[0].getbalance(), node_0_bal + Decimal('10'), fee_per_byte, self.get_vsize(self.nodes[2].gettransaction(txid)['hex']))
+ # Sendmany 5 BTC to two addresses with subtracting fee from both addresses
+ a0 = self.nodes[0].getnewaddress()
+ a1 = self.nodes[0].getnewaddress()
+ txid = self.nodes[2].sendmany(dummy='', amounts={a0: 5, a1: 5}, subtractfeefrom=[a0, a1])
+ self.generate(self.nodes[2], 1, sync_fun=lambda: self.sync_all(self.nodes[0:3]))
+ node_2_bal -= Decimal('10')
+ assert_equal(self.nodes[2].getbalance(), node_2_bal)
+ tx = self.nodes[2].gettransaction(txid)
+ node_0_bal = self.check_fee_amount(self.nodes[0].getbalance(), node_0_bal + Decimal('10'), fee_per_byte, self.get_vsize(tx['hex']))
+ assert_equal(self.nodes[0].getbalance(), node_0_bal)
+ expected_bal = Decimal('5') + (tx['fee'] / 2)
+ assert_equal(self.nodes[0].getreceivedbyaddress(a0), expected_bal)
+ assert_equal(self.nodes[0].getreceivedbyaddress(a1), expected_bal)
+
self.log.info("Test sendmany with fee_rate param (explicit fee rate in sat/vB)")
fee_rate_sat_vb = 2
fee_rate_btc_kvb = fee_rate_sat_vb * 1e3 / 1e8