def get_prevouts(self, utxo_list, blockHeight, zpos=False):
    ' get prevouts (map) for each utxo in a list\n        :param   utxo_list: <if zpos=False> (JSON list) utxos returned from listunspent used as input\n                            <if zpos=True>  (JSON list) mints returned from listmintedzerocoins used as input\n                 blockHeight:               (int) height of the previous block\n                 zpos:                      (bool) type of utxo_list\n        :return: stakingPrevOuts:           ({COutPoint --> (int, int, int, str)} dictionary)\n                                            map outpoints to amount, block_time, nStakeModifier, hashStake\n        '
    zerocoinDenomList = [1, 5, 10, 50, 100, 500, 1000, 5000]
    stakingPrevOuts = {}
    for utxo in utxo_list:
        if zpos:
            checkpointHeight = (blockHeight - 200)
            checkpointBlock = self.node.getblock(self.node.getblockhash(checkpointHeight), True)
            checkpoint = int(checkpointBlock['acc_checkpoint'], 16)
            pos = zerocoinDenomList.index(utxo['denomination'])
            checksum = ((checkpoint >> (32 * ((len(zerocoinDenomList) - 1) - pos))) & 4294967295)
            checksumBlock = self.node.getchecksumblock(hex(checksum), utxo['denomination'], True)
            txBlockhash = checksumBlock['hash']
            txBlocktime = checksumBlock['time']
        else:
            utxo_tx = self.node.getrawtransaction(utxo['txid'], 1)
            txBlocktime = utxo_tx['blocktime']
            txBlockhash = utxo_tx['blockhash']
        stakeModifier = int(self.node.getblock(txBlockhash)['modifier'], 16)
        utxo_to_stakingPrevOuts(utxo, stakingPrevOuts, txBlocktime, stakeModifier, zpos)
    return stakingPrevOuts
get prevouts (map) for each utxo in a list
:param   utxo_list: <if zpos=False> (JSON list) utxos returned from listunspent used as input
                    <if zpos=True>  (JSON list) mints returned from listmintedzerocoins used as input
         blockHeight:               (int) height of the previous block
         zpos:                      (bool) type of utxo_list
:return: stakingPrevOuts:           ({COutPoint --> (int, int, int, str)} dictionary)
                                    map outpoints to amount, block_time, nStakeModifier, hashStake
def get_prevouts(self, utxo_list, blockHeight, zpos=False):
    ' get prevouts (map) for each utxo in a list\n        :param   utxo_list: <if zpos=False> (JSON list) utxos returned from listunspent used as input\n                            <if zpos=True>  (JSON list) mints returned from listmintedzerocoins used as input\n                 blockHeight:               (int) height of the previous block\n                 zpos:                      (bool) type of utxo_list\n        :return: stakingPrevOuts:           ({COutPoint --> (int, int, int, str)} dictionary)\n                                            map outpoints to amount, block_time, nStakeModifier, hashStake\n        '
    zerocoinDenomList = [1, 5, 10, 50, 100, 500, 1000, 5000]
    stakingPrevOuts = {}
    for utxo in utxo_list:
        if zpos:
            checkpointHeight = (blockHeight - 200)
            checkpointBlock = self.node.getblock(self.node.getblockhash(checkpointHeight), True)
            checkpoint = int(checkpointBlock['acc_checkpoint'], 16)
            pos = zerocoinDenomList.index(utxo['denomination'])
            checksum = ((checkpoint >> (32 * ((len(zerocoinDenomList) - 1) - pos))) & 4294967295)
            checksumBlock = self.node.getchecksumblock(hex(checksum), utxo['denomination'], True)
            txBlockhash = checksumBlock['hash']
            txBlocktime = checksumBlock['time']
        else:
            utxo_tx = self.node.getrawtransaction(utxo['txid'], 1)
            txBlocktime = utxo_tx['blocktime']
            txBlockhash = utxo_tx['blockhash']
        stakeModifier = int(self.node.getblock(txBlockhash)['modifier'], 16)
        utxo_to_stakingPrevOuts(utxo, stakingPrevOuts, txBlocktime, stakeModifier, zpos)
    return stakingPrevOuts