Skip to content

Commit

Permalink
lnrpc/routerrpc+routing: add new MaxShardAmt field to LightningPayment
Browse files Browse the repository at this point in the history
  • Loading branch information
Roasbeef authored and cfromknecht committed Feb 16, 2021
1 parent 59764d7 commit 3a4b44a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
8 changes: 8 additions & 0 deletions lnrpc/routerrpc/router_backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,14 @@ func (r *RouterBackend) extractIntentFromSendRequest(
}
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.
payIntent.FeeLimit, err = lnrpc.UnmarshallAmt(
rpcPayReq.FeeLimitSat, rpcPayReq.FeeLimitMsat,
Expand Down
8 changes: 8 additions & 0 deletions routing/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -1684,6 +1684,14 @@ type LightningPayment struct {
// MaxParts is the maximum number of partial payments that may be used
// to complete the full amount.
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
Expand Down

0 comments on commit 3a4b44a

Please sign in to comment.