lnrpc+routerrpc+lncli: add amt and fee limit msat fields
This commit is contained in:
9 files changed
+931
-710
No files matched your search
@@ -1,10 +1,20 @@
|
||||
package lnrpc
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/btcsuite/btcutil"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrSatMsatMutualExclusive is returned when both a sat and an msat
|
||||
// amount are set.
|
||||
ErrSatMsatMutualExclusive = errors.New(
|
||||
"sat and msat arguments are mutually exclusive",
|
||||
)
|
||||
)
|
||||
|
||||
// CalculateFeeLimit returns the fee limit in millisatoshis. If a percentage
|
||||
// based fee limit has been requested, we'll factor in the ratio provided with
|
||||
// the amount of the payment.
|
||||
@@ -18,6 +28,9 @@ func CalculateFeeLimit(feeLimit *FeeLimit,
|
||||
btcutil.Amount(feeLimit.GetFixed()),
|
||||
)
|
||||
|
||||
case *FeeLimit_FixedMsat:
|
||||
return lnwire.MilliSatoshi(feeLimit.GetFixedMsat())
|
||||
|
||||
case *FeeLimit_Percent:
|
||||
return amount * lnwire.MilliSatoshi(feeLimit.GetPercent()) / 100
|
||||
|
||||
@@ -28,3 +41,16 @@ func CalculateFeeLimit(feeLimit *FeeLimit,
|
||||
return amount
|
||||
}
|
||||
}
|
||||
|
||||
// UnmarshallAmt returns a strong msat type for a sat/msat pair of rpc fields.
|
||||
func UnmarshallAmt(amtSat, amtMsat int64) (lnwire.MilliSatoshi, error) {
|
||||
if amtSat != 0 && amtMsat != 0 {
|
||||
return 0, ErrSatMsatMutualExclusive
|
||||
}
|
||||
|
||||
if amtSat != 0 {
|
||||
return lnwire.NewMSatFromSatoshis(btcutil.Amount(amtSat)), nil
|
||||
}
|
||||
|
||||
return lnwire.MilliSatoshi(amtMsat), nil
|
||||
}
|
||||
Reference in new issue
Block a user