Encode payjoin 2 subdirectory pubkey and ohttp=
param in ur::bytewords
#226
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
base64Url encoding's character set require upper lowercasing characters, doubling the density of QRs which display their data. The only reason it was used was because it was readily available in the bitcoin crate and produced a String.
@ChristopherA suggested to use the UR encoding instead when a BIP for payjoin v2 was initially proposed. Neither the subdirectory public key identifier nore the ohttp param are themselves URIs, but they can still take advantage of the ur::bytewords encoding scheme in minimal style for QR compression benefits. Now that BIP 77 is finalizing we should seriously consider which encoding is best for the long haul.
UR's bytewords should result in smaller QR codes. I'll want to do some tests with actual QR codes but the idea is simple enough to implement thanks to @dspicher's library