|
|
@ -484,6 +484,23 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
self.is_network_split=False |
|
|
|
self.is_network_split=False |
|
|
|
self.sync_all() |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# drain the keypool |
|
|
|
|
|
|
|
self.nodes[1].getnewaddress() |
|
|
|
|
|
|
|
inputs = [] |
|
|
|
|
|
|
|
outputs = {self.nodes[0].getnewaddress():1.1} |
|
|
|
|
|
|
|
rawTx = self.nodes[1].createrawtransaction(inputs, outputs) |
|
|
|
|
|
|
|
# fund a transaction that requires a new key for the change output |
|
|
|
|
|
|
|
# creating the key must be impossible because the wallet is locked |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
fundedTx = self.nodes[1].fundrawtransaction(rawTx) |
|
|
|
|
|
|
|
raise AssertionError("Wallet unlocked without passphrase") |
|
|
|
|
|
|
|
except JSONRPCException as e: |
|
|
|
|
|
|
|
assert('Keypool ran out' in e.error['message']) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#refill the keypool |
|
|
|
|
|
|
|
self.nodes[1].walletpassphrase("test", 100) |
|
|
|
|
|
|
|
self.nodes[1].walletlock() |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
try: |
|
|
|
self.nodes[1].sendtoaddress(self.nodes[0].getnewaddress(), 1.2) |
|
|
|
self.nodes[1].sendtoaddress(self.nodes[0].getnewaddress(), 1.2) |
|
|
|
raise AssertionError("Wallet unlocked without passphrase") |
|
|
|
raise AssertionError("Wallet unlocked without passphrase") |
|
|
|