lncli addinvoice: allow specifying msat with --amt_msat

* pass amt and amt_msat to rpc, letting server give an error if both
are present

* take amt from an extra argument if neither amt nor amt_ms are
present

implementation analogous to 298f35cdfbcfbf171fb7de645e90bdf6a368d6c8,
which is for addholdinvoice.
This commit is contained in:
Anton Kovalenko 2021-02-10 00:16:05 +03:00
parent 5cec468ff4
commit 7758fd1438
No known key found for this signature in database
GPG Key ID: 2E5AD1472489A14E

@ -38,6 +38,10 @@ var addInvoiceCommand = cli.Command{
Name: "amt", Name: "amt",
Usage: "the amt of satoshis in this invoice", Usage: "the amt of satoshis in this invoice",
}, },
cli.Int64Flag{
Name: "amt_msat",
Usage: "the amt of millisatoshis in this invoice",
},
cli.StringFlag{ cli.StringFlag{
Name: "description_hash", Name: "description_hash",
Usage: "SHA-256 hash of the description of the payment. " + Usage: "SHA-256 hash of the description of the payment. " +
@ -72,6 +76,7 @@ func addInvoice(ctx *cli.Context) error {
preimage []byte preimage []byte
descHash []byte descHash []byte
amt int64 amt int64
amtMsat int64
err error err error
) )
@ -80,10 +85,9 @@ func addInvoice(ctx *cli.Context) error {
args := ctx.Args() args := ctx.Args()
switch {
case ctx.IsSet("amt"):
amt = ctx.Int64("amt") amt = ctx.Int64("amt")
case args.Present(): amtMsat = ctx.Int64("amt_msat")
if !ctx.IsSet("amt") && !ctx.IsSet("amt_msat") && args.Present() {
amt, err = strconv.ParseInt(args.First(), 10, 64) amt, err = strconv.ParseInt(args.First(), 10, 64)
args = args.Tail() args = args.Tail()
if err != nil { if err != nil {
@ -111,6 +115,7 @@ func addInvoice(ctx *cli.Context) error {
Memo: ctx.String("memo"), Memo: ctx.String("memo"),
RPreimage: preimage, RPreimage: preimage,
Value: amt, Value: amt,
ValueMsat: amtMsat,
DescriptionHash: descHash, DescriptionHash: descHash,
FallbackAddr: ctx.String("fallback_addr"), FallbackAddr: ctx.String("fallback_addr"),
Expiry: ctx.Int64("expiry"), Expiry: ctx.Int64("expiry"),