Check a token payment was enough and was of the right type
    Return {'status': True, 'tokens_paid': ..., 'token_units': ...} if so
    Return {'status': False} if not

def check_token_payment(name, token_price, stacks_payment_info):
    """
    Check a token payment was enough and was of the right type
    Return {'status': True, 'tokens_paid': ..., 'token_units': ...} if so
    Return {'status': False} if not
    """
    token_units = stacks_payment_info['token_units']
    tokens_paid = stacks_payment_info['tokens_paid']
    tokens_paid = int(tokens_paid)

    # did the preorder/renewer pay the *right* tokens?
    if token_units != TOKEN_TYPE_STACKS:
        log.warning('Account paid in {}, but this namespace only accepts {}'.format(token_units, TOKEN_TYPE_STACKS))
        return {'status': False}

    # did we pay enough?
    if tokens_paid < token_price:
        # not enough!
        log.warning("Name buyer paid {} {}s, but '{}' costs {} units of {}s".format(tokens_paid, token_units, name, token_price, token_units))
        return {'status': False}

    return {'status': True, 'tokens_paid': tokens_paid, 'token_units': token_units}