This is a library and a client binary for bitcoind implementing BIP78 PayJoin.
The library is perfectly IO-agnostic—in fact, it does no IO. The primary goal of such design is to be easy to unit test. While not there yet, it already has infinitely more tests than the PayJoin PR against Electrum. :P
It doesn't care whether you use async
, blocking, tokio
, sync-std
hyper
, actix
or whatever.
There are already too many frameworks in Rust so it's best avoiding directly introducing them into library code.
The library currently only contains sender implementation and a partial receiver.
The payjoin-client binary is currently quickly hacked together tool that performs PayJoin using Bitcoin Core wallet. The intention is to develop it further over time to support other backends like LND internal wallet.
Use at your own risk. this crate has not yet been reviewed by independent Rust and Bitcoin security professionals.
While I don't think there is a huge risk running it, don't rely on its security for now!
Seeking review of the code that verifies there is no overpayment. Contributions are welcome!
unsafe
code or well-tested/analyzed/proven/... unsafe
codeMIT