|
|
|
@ -151,6 +151,33 @@ class WalletTest (BitcoinTestFramework):
@@ -151,6 +151,33 @@ class WalletTest (BitcoinTestFramework):
|
|
|
|
|
|
|
|
|
|
assert(txid1 in self.nodes[3].getrawmempool()) |
|
|
|
|
|
|
|
|
|
#check if we can list zero value tx as available coins |
|
|
|
|
#1. create rawtx |
|
|
|
|
#2. hex-changed one output to 0.0 |
|
|
|
|
#3. sign and send |
|
|
|
|
#4. check if recipient (node0) can list the zero value tx |
|
|
|
|
usp = self.nodes[1].listunspent() |
|
|
|
|
inputs = [{"txid":usp[0]['txid'], "vout":usp[0]['vout']}] |
|
|
|
|
outputs = {self.nodes[1].getnewaddress(): 49.998, self.nodes[0].getnewaddress(): 11.11} |
|
|
|
|
|
|
|
|
|
rawTx = self.nodes[1].createrawtransaction(inputs, outputs).replace("c0833842", "00000000") #replace 11.11 with 0.0 (int32) |
|
|
|
|
decRawTx = self.nodes[1].decoderawtransaction(rawTx) |
|
|
|
|
signedRawTx = self.nodes[1].signrawtransaction(rawTx) |
|
|
|
|
decRawTx = self.nodes[1].decoderawtransaction(signedRawTx['hex']) |
|
|
|
|
zeroValueTxid= decRawTx['txid'] |
|
|
|
|
sendResp = self.nodes[1].sendrawtransaction(signedRawTx['hex']) |
|
|
|
|
|
|
|
|
|
self.sync_all() |
|
|
|
|
self.nodes[1].generate(1) #mine a block |
|
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
unspentTxs = self.nodes[0].listunspent() #zero value tx must be in listunspents output |
|
|
|
|
found = False |
|
|
|
|
for uTx in unspentTxs: |
|
|
|
|
if uTx['txid'] == zeroValueTxid: |
|
|
|
|
found = True |
|
|
|
|
assert_equal(uTx['amount'], Decimal('0.00000000')); |
|
|
|
|
assert(found) |
|
|
|
|
|
|
|
|
|
#do some -walletbroadcast tests |
|
|
|
|
stop_nodes(self.nodes) |
|
|
|
|