<div dir="ltr">Seems like we can restrict the changes to BOLT11 by having the receiver assume NAMP for incoming payments &lt; invoice_amount. (with some timeout of course, but that would need to be the case even when the sender is signalling NAMP).<div><br></div><div>Cheers,</div><div>Johan<br><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 21, 2018 at 3:55 AM ZmnSCPxj via Lightning-dev &lt;<a href="mailto:lightning-dev@lists.linuxfoundation.org">lightning-dev@lists.linuxfoundation.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Good morning Rusty,<br>
<br>
&gt; And do not play with `amount_to_forward`, as it&#39;s an important<br>
&gt; signal to the final node that the previous node did not offer less value<br>
&gt; for the HTLC than it was supposed to. (You could steal the top bit to<br>
&gt; signal partial payment if you really want to).<br>
<br>
I do not view this as playing with the existing `amt_to_forward`, but rather retaining its previous use.<br>
<br>
If it helps, we can rewrite the *current* pre-AMP spec as below:<br>
<br>
2. data:<br>
    ...<br>
    * [`8` : `amt_to_forward` / `amt_to_pay`]<br>
<br>
...<br>
<br>
* `amt_to_forward` - for **non-final** nodes, this is the value to forward to the next node.<br>
  Non-final nodes MUST check:<br>
<br>
    incoming_htlc_amt - fee &gt;= amt_to_forward<br>
<br>
* `amt_to_pay` - for **final** nodes, this is the value that is intended to reach it.<br>
  Final nodes MUST check:<br>
<br>
    incoming_htlc_amt &gt;= amt_to_pay<br>
<br>
Then for Base AMP:<br>
<br>
* `amt_to_pay` - for **final** nodes, this is the total value that is intended to reach it.<br>
  If `incomplete_payment` flag is not set, final nodes MUST check:<br>
<br>
    incoming_htlc_amt &gt;= amt_to_pay<br>
<br>
  If `incomplete_payment` flag is set, then final nodes must claim HTLCs only if:<br>
<br>
    sum(incoming_htlc_amt) &gt;= amt_to_pay<br>
<br>
  Where `sum(incoming_htlc_amt)` is the total `incoming_htlc_amt` for all incoming HTLCs terminating at this final node with the same `payment_hash`.<br>
<br>
<br>
<br>
Now perhaps we can argue that for AMP we should have two fields `amt_to_pay_for_this_partial_payment` and `amt_to_pay_for_total_payment` instead.<br>
<br>
<br>
Regards,<br>
ZmnSCPxj<br>
<br>
_______________________________________________<br>
Lightning-dev mailing list<br>
<a href="mailto:Lightning-dev@lists.linuxfoundation.org" target="_blank">Lightning-dev@lists.linuxfoundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev</a><br>
</blockquote></div></div></div>