lnd.xprv/zpay32
Daniel McNally fdbdcf1560 zpay32: handle segwit prefixes > 2 chars
This change fixes a bug when an invoice is decoded for a network
whose bech32 segwit prefix is longer than 2 characters. The length
of the Bech32HRPSegwit network parameter is used to determine
where in the human-readable portion of the invoice the amount
begins, rather than assuming it begins after the first four
characters.

Decode() now throws an error when the encoded invoice does
not match the active network.

Changes the minimum hrp length check to >= 3 instead of >= 4.

Also removes a redundant "if ...; err != nil check" that was raising
a warning in invoice.go.
2018-02-19 10:18:16 -05:00
..
amountunits.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08:00
bech32.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08:00
invoice_internal_test.go invoice: avoid negative msat amounts 2018-01-23 14:38:20 -05:00
invoice_test.go zpay32: Add test for non-ASCII(UTF-8) descriptions 2018-02-10 04:24:53 +05:30
invoice.go zpay32: handle segwit prefixes > 2 chars 2018-02-19 10:18:16 -05:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00

zpay32

Build Status MIT licensed GoDoc

The zpay32 package implements a basic scheme for the encoding of payment requests between two lnd nodes within the Lightning Network. The zpay32 encoding scheme uses the zbase32 scheme along with a checksum to encode a serialized payment request.

The payment request serialized by the package consist of: the destination's public key, the payment hash to use for the payment, and the value of payment to send.

Installation and Updating

$ go get -u github.com/lightningnetwork/lnd/zpay32