def METHOD_NAME(message: Message, env: Environment) -> Evm:
    """
    Executes a call to create a smart contract.
    Parameters
    ----------
    message :
        Transaction specific items.
    env :
        External items required for EVM execution.
    Returns
    -------
    evm: :py:class:`~ethereum.spurious_dragon.vm.Evm`
        Items containing execution specific objects
    """
    if message.depth > STACK_DEPTH_LIMIT:
        raise StackDepthLimitError("Stack depth limit reached")
    # take snapshot of state before processing the message
    begin_transaction(env.state)
    touch_account(env.state, message.current_target)
    if message.should_transfer_value and message.value != 0:
        move_ether(
            env.state, message.caller, message.current_target, message.value
        )
    evm = execute_code(message, env)
    if evm.has_erred:
        # revert state to the last saved checkpoint
        # since the message call resulted in an error
        rollback_transaction(env.state)
    else:
        commit_transaction(env.state)
    return evm