-
Notifications
You must be signed in to change notification settings - Fork 5.7k
BIP 77: Delimit fragment params with -
instead of +
#1890
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
555dff7
to
cbf69f3
Compare
This PR contains two changes, using `-` instead of `+` as the fragment parameter delimiter, and lexicographically ordering the fragment parameters. This implements bitcoin/bips#1890
Since only Bull Bitcoin Mobile and Cake wallet are currently deployed in production, both using PDK, and the `+` character is causing some friction, this change seems justified to avoid similar issues with future implementations.
cbf69f3
to
3c36a5f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, should we wait for a review from @DanGould or is this ready to go?
Nit: We use ISO-8601 formatted dates (YYYY-MM-DD) in the preamble, so I would prefer also using the same format in the Changelog, but either is fine and this is not a blocker.
3c36a5f
to
1474f0d
Compare
I'd be more comfortable with an explicit ACK even though the corresponding code changes were merged into PDK
ISO-8601 is better, done |
ACK 1474f0d |
1474f0d
to
5d99fd6
Compare
The rationale for this change is that since `-` instead of `+` breaks compatibility anyway, the marginal cost of removing this unusual/surprising requirement for reverse lexicographical ordering is zero.
5d99fd6
to
8b83c34
Compare
This PR addresses the concerns raised in #1885 with regards using
unconditionally, which necessitates kludgy workarounds.
+
as a delimiter, by switching to-
. Some URI libraries implement RFC 1866's (HTML 2.0) "keyword" delimitation in query parameters by decoding+
asAdditionally fragment parameters must now ordered lexicographically (instead of reverse), the motivation for a canonical ordering was to reduce implementation fingerprinting concerns, but the reverse lexicographical ordering was specified simply because that was the behavior that was already implemented in PDK. Since that is somewhat surprising and the delimiter change breaks backwards compatibility anyway, the marginal cost in terms of compatibility of reducing the surprisingness of the reversed ordering is arguably zero, so this is also addressed here.
cc @kumulynja