]> Git Repo - VerusCoin.git/commitdiff
Closes #2446 by adding generated field to listunspent.
authorSimon <[email protected]>
Tue, 11 Jul 2017 07:53:55 +0000 (00:53 -0700)
committerSimon <[email protected]>
Tue, 11 Jul 2017 17:44:36 +0000 (10:44 -0700)
If generated is true, the unspent transaction output is from a
coinbase transaction and can only be sent to a shielded address.

qa/rpc-tests/wallet.py
src/wallet/rpcwallet.cpp

index ff827892a2251c56b6d95ba803edf11e6ed3915a..555a3e90281ffe36c1b50f8d501495d494623bf7 100755 (executable)
@@ -72,6 +72,18 @@ class WalletTest (BitcoinTestFramework):
         node0utxos = self.nodes[0].listunspent(1)
         assert_equal(len(node0utxos), 3)
 
+        # Check 'generated' field of listunspent
+        # Node 0: has one coinbase utxo and two regular utxos
+        assert_equal(sum(int(uxto["generated"] is True) for uxto in node0utxos), 1)
+        # Node 1: has 101 coinbase utxos and no regular utxos
+        node1utxos = self.nodes[1].listunspent(1)
+        assert_equal(len(node1utxos), 101)
+        assert_equal(sum(int(uxto["generated"] is True) for uxto in node1utxos), 101)
+        # Node 2: has no coinbase utxos and two regular utxos
+        node2utxos = self.nodes[2].listunspent(1)
+        assert_equal(len(node2utxos), 2)
+        assert_equal(sum(int(uxto["generated"] is True) for uxto in node2utxos), 0)
+
         # create both transactions
         txns_to_send = []
         for utxo in node0utxos:
index aa1ad99552e2b7e6fff57107fcb99337dfe1f6d5..112e05d89a78979ae268e3d8b7389c2b7ae17770 100644 (file)
@@ -2334,6 +2334,7 @@ UniValue listunspent(const UniValue& params, bool fHelp)
             "  {\n"
             "    \"txid\" : \"txid\",        (string) the transaction id \n"
             "    \"vout\" : n,               (numeric) the vout value\n"
+            "    \"generated\" : true|false  (boolean) true if txout is a coinbase transaction output\n"
             "    \"address\" : \"address\",  (string) the zcash address\n"
             "    \"account\" : \"account\",  (string) DEPRECATED. The associated account, or \"\" for the default account\n"
             "    \"scriptPubKey\" : \"key\", (string) the script key\n"
@@ -2396,6 +2397,7 @@ UniValue listunspent(const UniValue& params, bool fHelp)
         UniValue entry(UniValue::VOBJ);
         entry.push_back(Pair("txid", out.tx->GetHash().GetHex()));
         entry.push_back(Pair("vout", out.i));
+        entry.push_back(Pair("generated", out.tx->IsCoinBase()));
         CTxDestination address;
         if (ExtractDestination(out.tx->vout[out.i].scriptPubKey, address)) {
             entry.push_back(Pair("address", CBitcoinAddress(address).ToString()));
This page took 0.033861 seconds and 4 git commands to generate.