You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make payjoin-cli v1 / v2 features additive (payjoin#538)
Fixpayjoin#500
Following @nothingmuch's suggestion:
> 1. make appconfig more hierarchical, and support both v1 and v2
specific options in sub-structures, that are not feature gated. also
move bitcoind related stuff to its own substructure
>
> 2. out of appconfig, generate helper stuff, again i was focused on a
struct representing bitcoind (or more generally wallet) capabilities for
payjoin, to avoid needing to impl the `bitcoind` method in the trait
impls and to hide the details (e.g. error checking, psbt parsing, etc)
from the actual App impls, optimizing readability to correspond high
level description of the spec
>
> 3. adding an explicit --prefer-bip-78 or option, or something similar,
for payjoin-cli compiled with both. due to the backwards compatibility
of bip77 that probably requires more than one flag or something that is
not just boolean valued, e.g. as a sender be able to send bip78 only
even to a bip77 receiver and even if v2 support is compiled can be
useful for e2e testing with a single build
>
I think we're much closer to @nothingmuch's goal:
> my goal was making sure both app/v{1,2}.rs kind of give a high level
overview of both the protocol and the code, de-emphasizing the details
like how to talk to bitcoind and emphasizing its role as a reference
implementation for bip 77 specifically.
Perhaps some network details could still be abstracted away to make this
even more clear. But in terms of repaying tech debt and fixing the devex
by making features additive, this should be complete.
0 commit comments