lnd/zpay32
Olaoluwa Osuntokun 10847170ee
zpay32: adjust uint64 encoding to account for math.MaxUnit64
In this commit, we fix a logic error in our routine for converting a
uint64 to/from base32. Before this commit, we assumed that the max
number of groups was 12. However, the math.MaxUint64 (1<<64 - 1) can
actually consume more than 12 groups with an extra set of bits. Before
this commit, we would panic when attempting to parse an invoice
generated like so:
  * addinvoice --amt 1337000 --expiry 99999999999999999

To fix this issue, we modify our logic to expect at most 13 groups.
Additionally, we've added a new test that would panic before applying
this commit.

Fixes #972.
2018-03-29 16:24:20 -07: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 zpay32: adjust uint64 encoding to account for math.MaxUnit64 2018-03-29 16:24:20 -07:00
invoice_test.go zpay32 test: litecoin decode tests 2018-02-19 10:19:24 -05:00
invoice.go zpay32: adjust uint64 encoding to account for math.MaxUnit64 2018-03-29 16:24:20 -07: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