Introduce primitives, psbt-v0, address, and bip32 - and depend on miniscript!#2883
Introduce primitives, psbt-v0, address, and bip32 - and depend on miniscript!#2883tcharding wants to merge 2 commits intorust-bitcoin:masterfrom
primitives, psbt-v0, address, and bip32 - and depend on miniscript!#2883Conversation
|
Just so you know what we are getting ourselves into when we try to re-do this in Nashville @apoelstra this took me a good chunk of yesterday and a couple hours this morning. |
fc3c1e5 to
6a60fa4
Compare
6a60fa4 to
a480ea4
Compare
a480ea4 to
5db9d44
Compare
This variant is unused, remove it. Done as part of rust-bitcoin#2883.
ac0545c to
9bed8e3
Compare
a42bcdc Remove usage of blockdata from paths (Tobin C. Harding) Pull request description: the `blockdata` directory is code organisation thing, all the types/modules are re-exported from other places. In preparation for, and to make easier, the `primitives` crate smashing work - remove all explicit usage of `blockdata`. Note that the few instances remain as they seem required e.g., `pub(in crate::blockdata::script)` Refactor only, no logic changes. Done as part of #2883 ACKs for top commit: apoelstra: ACK a42bcdc lgtm! I consider this "trivial" and will one-ACK merge it Tree-SHA512: 310605e5203cf04aaeb91fe5512677b8f1438b183916686ba2cdc41ffdc18af7a0676206724e8a14c50ce6ed8faa9d48c69a2d5149eb1f56ae9c5f276fc5200f
395929c to
cab599a
Compare
Thanks, I thought this might be the assumption. We also have:
Excellent, I did not think of this.
On that note, I'm going to leave it for now. As you suggested before. |
What @apoelstra said plus I've recently realized that the more we split the crate the easier code review becomes for applications that don't need certain parts of the library. For instance Firefish signers don't need addresses at all - they only operate on transactions/scripts/keys. Having more easily reviewable dependencies is a huge win for security-critical stuff. As another non-security-critical example, electrs doesn't use addresses (it uses script hashes), so we could make it faster to compile by removing the whole address code. Thus I strongly believe that address should be separated.
I believe it's reasonable to make both optional dependencies. It's easy and niche. |
…Error` 7265560 api: Run just check-api (Tobin C. Harding) e8250cd Remove InvalidInternalKey variant from TaprootBuilderError (Tobin C. Harding) Pull request description: This variant is unused, remove it. Done as part of #2883. ACKs for top commit: Kixunil: ACK 7265560 apoelstra: ACK 7265560 Tree-SHA512: 5cd27cacebcf078afdf1ceba4e3d51e78f20ee4883000b766efb7a246fd7a166240038a2e7d27249a22049c3258673a393ff2fd62cb4b27a2cade04b28ef2ac9
12424b3 to
77afe64
Compare
77afe64 to
bf19331
Compare
|
Now includes:
FTR the I'd say we need to come up with another name, he has a bunch of crates using the |
primitives, psbt-v0, and bip32 - and depend on miniscript!primitives, psbt-v0, address, and bip32 - and depend on miniscript`!
primitives, psbt-v0, address, and bip32 - and depend on miniscript`!primitives, psbt-v0, address, and bip32 - and depend on miniscript!
Lol, he also has his own hex crate. Gotta love Rust. And ok, hmm. At the very least the existing Maybe we could take bitcoin-scriptpubkey or bitcoin-receive or bitcoin-address-encoding (maybe dangerous). |
Crates.io policies page mentions that if the current owner is not reachable that the crates.io team can help mediate.
Sounds like that would be in violation of the usage policy and could probably be contested. For better or worse crates.io is centralized. I guess it's also an option to just host crates outside of crates.io and then use any name. |
|
The name Please see: #2898 |
That's not what I meant. |
I'm lost, by this comment and what you mean by the original comment then? |
Sorry, I had a huge brain fart, I was tired. You were correct. Though I suspect the fe32 conversion will cause stabilization issues so maybe we'll have to remove it temporarily. |
|
We should remove the |
6a7f780 api: Run just check-api (Tobin C. Harding) 0c9223a Manually format write_err statement (Tobin C. Harding) 43d7c75 taproot: Add error types (Tobin C. Harding) afe41c8 taproot: Split errors up (Tobin C. Harding) Pull request description: Currently there are a couple of errors in the `taproot` module that are too general, resulting in functions that return a general error type when a specific one would do. Split two errors out and use them for for enum variants and function returns as possible. Done as part of #2883 ACKs for top commit: Kixunil: ACK 6a7f780 apoelstra: ACK 6a7f780 Tree-SHA512: bf5ed50dd8f913280d007f03124c7918c4b6cd642e67726bc3ffff23d9897f764a4391e167115668c3a1e951197485eba280fdbb8a0ce1bb7efb051388d13997
This is not a merge candidate, it is experimental work to try to prove the state we would like to get to with these three new crates. By depending on this branch we hope to be able to invert the dependency relationship between `rust-bitcoin` and `rust-miniscript`. This is the demo work for epic rust-bitcoin#2882.
Now that we have a branch on `rust-miniscript` that depends on `primitives`, `psbt-v0`, and `bip32` we can depend on `miniscript` here in `rust-bitcoin` - BOOM!
b72cc86 to
74516c7
Compare
This is not a merge candidate, it is experimental work to try to prove the state we would like to get to with these three new crates.
By depending on this branch we hope to be able to invert the dependency relationship between
rust-bitcoinandrust-miniscript.This is the demo work for epic #2882.
All the
cryptofeatures inprimitivesare a bit of a mess, related to recent discussion of cargo feature limitations.