Skip to content

Commit ab5777e

Browse files
committed
test: minor improvements for send_zero_fee
1 parent ef7525a commit ab5777e

File tree

1 file changed

+26
-28
lines changed

1 file changed

+26
-28
lines changed

test/functional/wallet_send_zero_fee.py

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,59 +4,57 @@
44
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
55
from decimal import Decimal
66

7-
from test_framework.blocktools import COINBASE_MATURITY
87
from test_framework.test_framework import BitcoinTestFramework
98
from test_framework.util import (
109
assert_equal,
1110
)
1211

1312
class WalletTest(BitcoinTestFramework):
1413
def set_test_params(self):
15-
self.setup_clean_chain = True
1614
self.num_nodes = 3
1715
self.extra_args = [[
1816
"-blindedaddresses=1",
19-
"-initialfreecoins=2100000000000000",
20-
"-con_blocksubsidy=0",
21-
"-con_connect_genesis_outputs=1",
22-
"-txindex=1",
2317
"-minrelaytxfee=0",
2418
"-blockmintxfee=0",
2519
"-mintxfee=0",
2620
]] * self.num_nodes
27-
self.extra_args[0].append("-anyonecanspendaremine=1")
2821

2922
def skip_test_if_missing_module(self):
3023
self.skip_if_no_wallet()
3124

3225
def run_test(self):
33-
self.generate(self.nodes[0], COINBASE_MATURITY + 1)
34-
self.sync_all()
26+
# initial state when setup_clean_chain is False
27+
assert_equal(self.nodes[0].getbalance(), {'bitcoin': Decimal('1250')})
28+
assert_equal(self.nodes[1].getbalance(), {'bitcoin': Decimal('1250')})
29+
assert_equal(self.nodes[2].getbalance(), {'bitcoin': Decimal('1250')})
30+
assert_equal(self.nodes[0].getblockchaininfo()["blocks"], 200)
3531

36-
new_addr = self.nodes[1].getnewaddress()
37-
self.nodes[0].sendtoaddress(new_addr, 10)
32+
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 10)
3833
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 20)
3934
self.generate(self.nodes[0], 1)
40-
assert_equal(self.nodes[0].getblockchaininfo()["blocks"], 102)
41-
assert_equal(self.nodes[0].getbalance(), {'bitcoin': Decimal('20999969.99900900')})
42-
assert_equal(self.nodes[1].getbalance(), {'bitcoin': Decimal('10.00000000')})
43-
assert_equal(self.nodes[2].getbalance(), {'bitcoin': Decimal('20.00000000')})
35+
assert_equal(self.nodes[0].getblockchaininfo()["blocks"], 201)
36+
assert_equal(self.nodes[0].getbalance(), {'bitcoin': Decimal('1269.99897200')})
37+
assert_equal(self.nodes[1].getbalance(), {'bitcoin': Decimal('1260')})
38+
assert_equal(self.nodes[2].getbalance(), {'bitcoin': Decimal('1270')})
4439

40+
# send a zero fee_rate transaction, which should not add a fee output
4541
addr = self.nodes[1].getnewaddress()
46-
txid = self.nodes[0].sendtoaddress(addr, 1, None, None, None, None, None, None, None, None, None, 0, False)
47-
tx = self.nodes[0].gettransaction(txid)
48-
assert_equal(tx["fee"]["bitcoin"], 0)
49-
hex = self.nodes[0].getrawtransaction(txid)
42+
txid = self.nodes[0].sendtoaddress(address=addr, amount=1, fee_rate=0)
43+
tx = self.nodes[0].getrawtransaction(txid, 2)
44+
# there should be no fees
45+
assert "bitcoin" not in tx["fee"]
46+
assert_equal(tx["fee"], {})
47+
# and no fee output
48+
assert_equal(len(tx["vout"]),2)
49+
for output in tx["vout"]:
50+
assert output["scriptPubKey"]["type"] != "fee"
51+
5052
self.generate(self.nodes[0], 1)
51-
assert_equal(self.nodes[0].getblockchaininfo()["blocks"], 103)
52-
53-
decoded = self.nodes[0].decoderawtransaction(hex)
54-
# there should be no fee output
55-
assert_equal(decoded["fee"], {})
56-
assert_equal(len(decoded["vout"]),2)
57-
assert_equal(self.nodes[0].getbalance(), {'bitcoin': Decimal('20999968.99900900')})
58-
assert_equal(self.nodes[1].getbalance(), {'bitcoin': Decimal('11.00000000')})
59-
assert_equal(self.nodes[2].getbalance(), {'bitcoin': Decimal('20.00000000')})
53+
assert_equal(self.nodes[0].getblockchaininfo()["blocks"], 202)
54+
55+
assert_equal(self.nodes[0].getbalance(), {'bitcoin': Decimal('1318.99897200')})
56+
assert_equal(self.nodes[1].getbalance(), {'bitcoin': Decimal('1261')})
57+
assert_equal(self.nodes[2].getbalance(), {'bitcoin': Decimal('1270')})
6058

6159
if __name__ == '__main__':
6260
WalletTest().main()

0 commit comments

Comments
 (0)