lnrpc/routerrpc+routing: add new MaxShardAmt field to LightningPayment

This commit is contained in:
Olaoluwa Osuntokun 2021-02-11 18:01:21 -08:00
parent c70e53c791
commit 7398e59927
No known key found for this signature in database
GPG Key ID: 3BBD59E99B280306
2 changed files with 16 additions and 0 deletions

@ -572,6 +572,14 @@ func (r *RouterBackend) extractIntentFromSendRequest(
} }
payIntent.MaxParts = maxParts payIntent.MaxParts = maxParts
// If this payment had a max shard amount specified, then we'll apply
// that now, which'll force us to always make payment splits smaller
// than this.
if rpcPayReq.MaxShardSizeMsat > 0 {
shardAmtMsat := lnwire.MilliSatoshi(rpcPayReq.MaxShardSizeMsat)
payIntent.MaxShardAmt = &shardAmtMsat
}
// Take fee limit from request. // Take fee limit from request.
payIntent.FeeLimit, err = lnrpc.UnmarshallAmt( payIntent.FeeLimit, err = lnrpc.UnmarshallAmt(
rpcPayReq.FeeLimitSat, rpcPayReq.FeeLimitMsat, rpcPayReq.FeeLimitSat, rpcPayReq.FeeLimitMsat,

@ -1684,6 +1684,14 @@ type LightningPayment struct {
// MaxParts is the maximum number of partial payments that may be used // MaxParts is the maximum number of partial payments that may be used
// to complete the full amount. // to complete the full amount.
MaxParts uint32 MaxParts uint32
// MaxShardAmt is the largest shard that we'll attempt to split using.
// If this field is set, and we need to split, rather than attempting
// half of the original payment amount, we'll use this value if half
// the payment amount is greater than it.
//
// NOTE: This field is _optional_.
MaxShardAmt *lnwire.MilliSatoshi
} }
// SendPayment attempts to send a payment as described within the passed // SendPayment attempts to send a payment as described within the passed