def METHOD_NAME (db, source, destination, asset, quantity):
    try:
        util.get_asset_id(db, asset, util.CURRENT_BLOCK_INDEX)
    except AssetError:
        raise ValidateError('asset invalid')
    try:
        script.METHOD_NAME(source)
    except AddressError:
        raise ValidateError('source address invalid')
    if destination:
        raise ValidateError('destination exists')
    if asset == config.BTC:
        raise ValidateError('cannot destroy {}'.format(config.BTC))
    if type(quantity) != int:
        raise ValidateError('quantity not integer')
    if quantity > config.MAX_INT:
        raise ValidateError('integer overflow, quantity too large')
    if quantity < 0:
        raise ValidateError('quantity negative')
    if util.get_balance(db, source, asset) < quantity:
        raise BalanceError('balance insufficient')