def _extend_trampoline_route(
        route: List[TrampolineEdge],
        *,
        start_node: bytes = None,
        end_node: bytes,
        pay_fees: bool = True,
):
    """Extends the route and modifies it in place."""
    if start_node is None:
        assert route
        start_node = route[-1].end_node
    trampoline_features = LnFeatures.VAR_ONION_OPT
    # get policy for *start_node*
    # note: trampoline nodes are supposed to advertise their fee and cltv in node_update message.
    #       However, in the temporary spec, they do not.
    #       They also don't send their fee policy in the error message if we lowball the fee...
    route.append(
        TrampolineEdge(
            start_node=start_node,
            end_node=end_node,
            fee_base_msat=PLACEHOLDER_FEE if pay_fees else 0,
            fee_proportional_millionths=PLACEHOLDER_FEE if pay_fees else 0,
            cltv_delta=576 if pay_fees else 0,
            node_features=trampoline_features))
Extends the route and modifies it in place.
electrum/trampoline.py