def call_(self, global_state: GlobalState) -> List[GlobalState]:
        """

        :param global_state:
        :return:
        """
        instr = global_state.get_current_instruction()
        environment = global_state.environment

        try:
            callee_address, callee_account, call_data, value, gas, memory_out_offset, memory_out_size = get_call_parameters(
                global_state, self.dynamic_loader, True
            )
        except ValueError as e:
            log.debug(
                "Could not determine required parameters for call, putting fresh symbol on the stack. \n{}".format(
                    e
                )
            )
            # TODO: decide what to do in this case
            global_state.mstate.stack.append(
                global_state.new_bitvec("retval_" + str(instr["address"]), 256)
            )
            return [global_state]

        native_result = native_call(
            global_state, callee_address, call_data, memory_out_offset, memory_out_size
        )
        if native_result:
            return native_result

        transaction = MessageCallTransaction(
            world_state=global_state.world_state,
            gas_price=environment.gasprice,
            gas_limit=gas,
            origin=environment.origin,
            caller=symbol_factory.BitVecVal(
                int(environment.active_account.address, 16), 256
            ),
            callee_account=callee_account,
            call_data=call_data,
            call_value=value,
        )
        raise TransactionStartSignal(transaction, self.op_code)
def call_ ( self , global_state : GlobalState ) -> List [ GlobalState ] : instr = global_state . get_current_instruction ( ) environment = global_state . environment try : callee_address , callee_account , call_data , value , gas , memory_out_offset , memory_out_size = get_call_parameters ( global_state , self . dynamic_loader , True ) except ValueError as e : log . debug ( "Could not determine required parameters for call, putting fresh symbol on the stack. \n{}" . format ( e ) ) global_state . mstate . stack . append ( global_state . new_bitvec ( "retval_" + str ( instr [ "address" ] ) , 256 ) ) return [ global_state ] native_result = native_call ( global_state , callee_address , call_data , memory_out_offset , memory_out_size ) if native_result : return native_result transaction = MessageCallTransaction ( world_state = global_state . world_state , gas_price = environment . gasprice , gas_limit = gas , origin = environment . origin , caller = symbol_factory . BitVecVal ( int ( environment . active_account . address , 16 ) , 256 ) , callee_account = callee_account , call_data = call_data , call_value = value , ) raise TransactionStartSignal ( transaction , self . op_code )
:param global_state:
        :return: