def get_prevouts(self, node_id, utxo_list):
    ' get prevouts (map) for each utxo in a list\n        :param   node_id:          (int) index of the CTestNode used as rpc connection. Must own the utxos.\n                 utxo_list:        (JSON list) utxos returned from listunspent used as input\n        :return: prevouts:         ({bytes --> (int, bytes, int)} dictionary)\n                                   maps CStake "uniqueness" (i.e. serialized COutPoint)\n                                   to (amount, prevScript, timeBlockFrom).\n        '
    assert_greater_than(len(self.nodes), node_id)
    rpc_conn = self.nodes[node_id]
    prevouts = {}
    for utxo in utxo_list:
        outPoint = COutPoint(int(utxo['txid'], 16), utxo['vout'])
        outValue = (int(utxo['amount']) * COIN)
        prevtx_json = rpc_conn.getrawtransaction(utxo['txid'], 1)
        prevTx = CTransaction()
        prevTx.deserialize(BytesIO(hex_str_to_bytes(prevtx_json['hex'])))
        if ((prevTx.is_coinbase() or prevTx.is_coinstake()) and (utxo['confirmations'] < 100)):
            continue
        prevScript = prevtx_json['vout'][utxo['vout']]['scriptPubKey']['hex']
        prevTime = prevtx_json['blocktime']
        prevouts[outPoint.serialize_uniqueness()] = (outValue, prevScript, prevTime)
    return prevouts
get prevouts (map) for each utxo in a list
:param   node_id:          (int) index of the CTestNode used as rpc connection. Must own the utxos.
         utxo_list:        (JSON list) utxos returned from listunspent used as input
:return: prevouts:         ({bytes --> (int, bytes, int)} dictionary)
                           maps CStake "uniqueness" (i.e. serialized COutPoint)
                           to (amount, prevScript, timeBlockFrom).
def get_prevouts(self, node_id, utxo_list):
    ' get prevouts (map) for each utxo in a list\n        :param   node_id:          (int) index of the CTestNode used as rpc connection. Must own the utxos.\n                 utxo_list:        (JSON list) utxos returned from listunspent used as input\n        :return: prevouts:         ({bytes --> (int, bytes, int)} dictionary)\n                                   maps CStake "uniqueness" (i.e. serialized COutPoint)\n                                   to (amount, prevScript, timeBlockFrom).\n        '
    assert_greater_than(len(self.nodes), node_id)
    rpc_conn = self.nodes[node_id]
    prevouts = {}
    for utxo in utxo_list:
        outPoint = COutPoint(int(utxo['txid'], 16), utxo['vout'])
        outValue = (int(utxo['amount']) * COIN)
        prevtx_json = rpc_conn.getrawtransaction(utxo['txid'], 1)
        prevTx = CTransaction()
        prevTx.deserialize(BytesIO(hex_str_to_bytes(prevtx_json['hex'])))
        if ((prevTx.is_coinbase() or prevTx.is_coinstake()) and (utxo['confirmations'] < 100)):
            continue
        prevScript = prevtx_json['vout'][utxo['vout']]['scriptPubKey']['hex']
        prevTime = prevtx_json['blocktime']
        prevouts[outPoint.serialize_uniqueness()] = (outValue, prevScript, prevTime)
    return prevouts