Skip to content
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

Update rust-bitcoin in ord #3962

Merged
merged 25 commits into from
Oct 18, 2024
Merged

Conversation

raphjaph
Copy link
Collaborator

@raphjaph raphjaph commented Sep 21, 2024

This will take forever.

Fixes #3982

@cryptoquick
Copy link
Contributor

Thank you for starting this work. Let me know if you would like some help. I keep running into this:

mismatched types
`bdk_wallet::bitcoin::Transaction` and `Transaction` have similar names, but are actually distinct types
perhaps two different versions of crate `bitcoin` are being used?rustc[Click for full compiler diagnostic](rust-analyzer-diagnostics-view:/diagnostic%20message%20%5B5%5D?5#file%3A%2F%2F%2Fhome%2Fhunter%2FProjects%2Fducat%2Fguardian%2Fcrates%2Fvault_actions%2Fsrc%2Frepay.rs)
repay.rs(299, 24): arguments to this function are incorrect
transaction.rs(671, 1): `bdk_wallet::bitcoin::Transaction` is defined in crate `bitcoin`
transaction.rs(706, 1): `Transaction` is defined in crate `bitcoin`
runestone.rs(25, 10): associated function defined here

@raphjaph
Copy link
Collaborator Author

Thank you for starting this work. Let me know if you would like some help. I keep running into this:

mismatched types
`bdk_wallet::bitcoin::Transaction` and `Transaction` have similar names, but are actually distinct types
perhaps two different versions of crate `bitcoin` are being used?rustc[Click for full compiler diagnostic](rust-analyzer-diagnostics-view:/diagnostic%20message%20%5B5%5D?5#file%3A%2F%2F%2Fhome%2Fhunter%2FProjects%2Fducat%2Fguardian%2Fcrates%2Fvault_actions%2Fsrc%2Frepay.rs)
repay.rs(299, 24): arguments to this function are incorrect
transaction.rs(671, 1): `bdk_wallet::bitcoin::Transaction` is defined in crate `bitcoin`
transaction.rs(706, 1): `Transaction` is defined in crate `bitcoin`
runestone.rs(25, 10): associated function defined here

Yeah, the rust-bitcoin library constantly moves types around between modules so the Rust type system thinks they are different. This also means dependant crates we use like miniscript and bitcoincore-rpc have to be upgraded in tandem. It's an extremely manual job. Currently I've found around 700 places in our code base where I have to change something.

@cryptoquick
Copy link
Contributor

I know. And that's just to 0.31.2. But thank you for taking this on. It'll help with bits of code like this:
script_pubkey: ScriptBuf::from_bytes(runestone.encipher().to_bytes())
That were originally just:
script_pubkey: runestone.encipher()
This might have a slight performance impact if used often enough, such as for verification, and we also get some loss of type safety.
In the grand scheme of things this is low priority, but it's still technical debt.

This was referenced Oct 8, 2024
Copy link
Collaborator

@casey casey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@raphjaph raphjaph enabled auto-merge (squash) October 18, 2024 19:49
@raphjaph raphjaph merged commit 387fe73 into ordinals:master Oct 18, 2024
5 checks passed
@cryptoquick
Copy link
Contributor

Great work, guys!

@cryptoquick
Copy link
Contributor

public ord to crates.io wen?

@raphjaph
Copy link
Collaborator Author

Soon, just gonna check what else we can merge. Probably by next week

@cryptoquick
Copy link
Contributor

that soom!

dcorral added a commit to sadoprotocol/ord that referenced this pull request Oct 24, 2024
* Change test-bitcoincore-rpc to mockcore in README.md (ordinals#3842)

* Commit twice to work around redb off-by-one bug (ordinals#3856)

* Release 0.19.1 (ordinals#3864)

- Bump version: 0.19.0 → 0.19.1
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Update Portuguese Translation pt.po (ordinals#3837)

* Updated Chinese translation  (ordinals#3881)

* Fix rune links for runes with no symbol (ordinals#3849)

* Suppress printing sat_ranges by default (ordinals#3867)

* Re-enter beta (ordinals#3884)

* Update pointer specification (ordinals#3861)

* Clarify that unused runes tags should not be used (ordinals#3885)

* Migrate object.rs to snafu error handling (ordinals#3858)

* Make index settings harder to misuse (ordinals#3893)

* Don't unnecessarily insert into utxo cache when indexing addresses (ordinals#3894)

* Remove trailing space from runes specification (ordinals#3896)

* Serve responses with cross origin isolation headers (ordinals#3898)

* List all Bitcoin Core wallets (ordinals#3902)

* Make first first and last sat in range clickable (ordinals#3903)

* Migrate Outgoing to SnafuError (ordinals#3854)

* Update Bitcoin Core deploy to 27.1 (ordinals#3912)

* Add sat_balance to address API (ordinals#3905)

Co-authored-by: raph <raphjaph@protonmail.com>

* Add Dutch translation to Ordinals Handbook (ordinals#3907)

* Migrate chain.rs to snafu error (ordinals#3904)

* Bump version to 0.20.0-dev (ordinals#3916)

* Revert "Serve responses with cross origin isolation headers" (ordinals#3920)

* Remove inscription content type counts from /status page (ordinals#3922)

* Unified OUTPOINT_TO_UTXO_ENTRY table (ordinals#3915)

- Upgrade `redb` to 2.1.1
- Remove `--index-spent-sats`
- Remove redundant pointer handling in `index_inscriptions()`
- Fix incorrect `is_output_spent()` results when not using `--index-sats`
- Unify UTXO index data in `OUTPOINT_TO_UTXO_ENTRY` table
- Read addresses from index when exporting

* Add address field to `/r/inscription/:id` (ordinals#3891)

* Add inscriptions and runes details to address API endpoint (ordinals#3924)

* Release 0.20.0 (ordinals#3928)

- Bump ord version: 0.19.1 → 0.20.0
- Bump ordinals version: 0.0.9 → 0.0.10
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Bump version to 0.20.0-dev (ordinals#3929)

* Add test to remind us to fix the UtxoEntry redb type name (ordinals#3934)

* Put AddressInfo into api module (ordinals#3933)

* Fix clippy lint (ordinals#3937)

* Add inscription index to /status (ordinals#3938)

* Remove unnecessary symbols in docs/src/guides/testing.md (ordinals#3945)

* Add inscription examples to handbook (ordinals#3769)

* Allow scrolling in iframe (ordinals#3947)

* Skip serializing None in batch::File (ordinals#3943)

* Fix /output page (ordinals#3948)

* Add `/satpoint/<SATPOINT>` endpoint (ordinals#3949)

* Don't log RPC connections to bitcoind (ordinals#3952)

* Start indexing at correct block height (ordinals#3956)

* Fix output API struct (ordinals#3957)

* Remove dependency on `ord-bitcoincore-rpc` crate (ordinals#3959)

* Keep sat ranges in low-level format (ordinals#3963)

* Implement burn for wallet command (ordinals#3437)

* Add multi parent support to wallet (ordinals#3228)

* Get parents using `as_slice` instead of converting to `Vec` (ordinals#3972)

* Rename parents_values -> parent_values (ordinals#3973)

* Fix non-existant output lookup (ordinals#3968)

* Release 0.20.1 (ordinals#3975)

* Refactor burn command (ordinals#3976)

* Remove regtest.ordinals.net just recipes (ordinals#3978)

* Add `ord verify` (ordinals#3906)

* Release 0.21.0 (ordinals#3997)

- Bump version: 0.20.1 → 0.21.0
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Remove /runes/balances API endpoint (ordinals#3980)

* Update rust-bitcoin in ord (ordinals#3962)

* Revert redb to 2.1.3 (ordinals#4003)

* Release 0.21.1 (ordinals#4006)

* Update Bitcoin Core install script (ordinals#4007)

* Remove pre-alpha warning from ord help (ordinals#4011)

* Change mint progress to `mints / terms.cap` (ordinals#4012)

* Only show rune mint progress during mint (ordinals#4013)

* Show if JSON API is enabled on /status (ordinals#4014)

* Fix build error

---------

Co-authored-by: Anchor <49644098+TheHeBoy@users.noreply.github.com>
Co-authored-by: Casey Rodarmor <casey@rodarmor.com>
Co-authored-by: 0xArtur <metaverseartur@gmail.com>
Co-authored-by: Dr.JingLee <95461562+DrJingLee@users.noreply.github.com>
Co-authored-by: nine <118634361+cryptoni9n@users.noreply.github.com>
Co-authored-by: Bohdan Cryptolions <37701692+ansigroup@users.noreply.github.com>
Co-authored-by: raph <raphjaph@protonmail.com>
Co-authored-by: Patrick Collins <patrick@collinatorstudios.com>
Co-authored-by: Tibebtc <tibedekock@live.nl>
Co-authored-by: partialord <178683722+partialord@users.noreply.github.com>
Co-authored-by: Eloc <42568538+elocremarc@users.noreply.github.com>
Co-authored-by: twosatsmaxi <vashalpesh@gmail.com>
Co-authored-by: tiaoxizhan <tiaoxizhan@outlook.com>
Co-authored-by: onchainguy <1436535+onchainguy-btc@users.noreply.github.com>
Co-authored-by: lifofifo <134870335+lifofifoX@users.noreply.github.com>
Co-authored-by: dcorral <hi@dcorral.com>
@raphjaph raphjaph deleted the update-bitcoin-rust-ord branch November 10, 2024 02:27
danadi7 pushed a commit to sadoprotocol/ord that referenced this pull request Nov 20, 2024
* Change test-bitcoincore-rpc to mockcore in README.md (ordinals#3842)

* Commit twice to work around redb off-by-one bug (ordinals#3856)

* Release 0.19.1 (ordinals#3864)

- Bump version: 0.19.0 → 0.19.1
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Update Portuguese Translation pt.po (ordinals#3837)

* Updated Chinese translation  (ordinals#3881)

* Fix rune links for runes with no symbol (ordinals#3849)

* Suppress printing sat_ranges by default (ordinals#3867)

* Re-enter beta (ordinals#3884)

* Update pointer specification (ordinals#3861)

* Clarify that unused runes tags should not be used (ordinals#3885)

* Migrate object.rs to snafu error handling (ordinals#3858)

* Make index settings harder to misuse (ordinals#3893)

* Don't unnecessarily insert into utxo cache when indexing addresses (ordinals#3894)

* Remove trailing space from runes specification (ordinals#3896)

* Serve responses with cross origin isolation headers (ordinals#3898)

* List all Bitcoin Core wallets (ordinals#3902)

* Make first first and last sat in range clickable (ordinals#3903)

* Migrate Outgoing to SnafuError (ordinals#3854)

* Update Bitcoin Core deploy to 27.1 (ordinals#3912)

* Add sat_balance to address API (ordinals#3905)

Co-authored-by: raph <raphjaph@protonmail.com>

* Add Dutch translation to Ordinals Handbook (ordinals#3907)

* Migrate chain.rs to snafu error (ordinals#3904)

* Bump version to 0.20.0-dev (ordinals#3916)

* Revert "Serve responses with cross origin isolation headers" (ordinals#3920)

* Remove inscription content type counts from /status page (ordinals#3922)

* Unified OUTPOINT_TO_UTXO_ENTRY table (ordinals#3915)

- Upgrade `redb` to 2.1.1
- Remove `--index-spent-sats`
- Remove redundant pointer handling in `index_inscriptions()`
- Fix incorrect `is_output_spent()` results when not using `--index-sats`
- Unify UTXO index data in `OUTPOINT_TO_UTXO_ENTRY` table
- Read addresses from index when exporting

* Add address field to `/r/inscription/:id` (ordinals#3891)

* Add inscriptions and runes details to address API endpoint (ordinals#3924)

* Release 0.20.0 (ordinals#3928)

- Bump ord version: 0.19.1 → 0.20.0
- Bump ordinals version: 0.0.9 → 0.0.10
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Bump version to 0.20.0-dev (ordinals#3929)

* Add test to remind us to fix the UtxoEntry redb type name (ordinals#3934)

* Put AddressInfo into api module (ordinals#3933)

* Fix clippy lint (ordinals#3937)

* Add inscription index to /status (ordinals#3938)

* Remove unnecessary symbols in docs/src/guides/testing.md (ordinals#3945)

* Add inscription examples to handbook (ordinals#3769)

* Allow scrolling in iframe (ordinals#3947)

* Skip serializing None in batch::File (ordinals#3943)

* Fix /output page (ordinals#3948)

* Add `/satpoint/<SATPOINT>` endpoint (ordinals#3949)

* Don't log RPC connections to bitcoind (ordinals#3952)

* Start indexing at correct block height (ordinals#3956)

* Fix output API struct (ordinals#3957)

* Remove dependency on `ord-bitcoincore-rpc` crate (ordinals#3959)

* Keep sat ranges in low-level format (ordinals#3963)

* Implement burn for wallet command (ordinals#3437)

* Add multi parent support to wallet (ordinals#3228)

* Get parents using `as_slice` instead of converting to `Vec` (ordinals#3972)

* Rename parents_values -> parent_values (ordinals#3973)

* Fix non-existant output lookup (ordinals#3968)

* Release 0.20.1 (ordinals#3975)

* Refactor burn command (ordinals#3976)

* Remove regtest.ordinals.net just recipes (ordinals#3978)

* Add `ord verify` (ordinals#3906)

* Release 0.21.0 (ordinals#3997)

- Bump version: 0.20.1 → 0.21.0
- Update changelog
- Update changelog contributor credits
- Update dependencies

* Remove /runes/balances API endpoint (ordinals#3980)

* Update rust-bitcoin in ord (ordinals#3962)

* Revert redb to 2.1.3 (ordinals#4003)

* Release 0.21.1 (ordinals#4006)

* Update Bitcoin Core install script (ordinals#4007)

* Remove pre-alpha warning from ord help (ordinals#4011)

* Change mint progress to `mints / terms.cap` (ordinals#4012)

* Only show rune mint progress during mint (ordinals#4013)

* Show if JSON API is enabled on /status (ordinals#4014)

* Update JSON-API & Recursive documentation (ordinals#3984)

* Document POST method for /inscriptions (ordinals#4017)

* Add authors to Handbook (ordinals#4018)

* Add more info to `wallet outputs` (ordinals#4019)

* Add `wallet addresses` (ordinals#4005)

* Add BIP322 `wallet sign` (ordinals#3988)

* Add `/r/undelegated-content/<INSCRIPTION_ID>` (ordinals#3932)

* Show total child count (ordinals#4009)

* Create change output when inputs containing non-outgoing runes are selected (ordinals#4028)

* Release 0.21.2 (ordinals#4029)

- Bump version: 0.21.1 → 0.21.2
- Update changelog
- Update changelog contributor credits

* Allow fallback for satpoints and addresses (ordinals#4033)

* Un-pin redb dependency and update to 2.2.0 (ordinals#4032)

* Add `ord wallet split` command for splitting utxos (ordinals#4030)

* Hide image preview and thumbnail scrollbars (ordinals#4042)

* Rescan wallet on restore (ordinals#4041)

* Do not chunk runestone data pushes (ordinals#4036)

* Add simple taproot HD wallet to mockcore (ordinals#4038)

* Collapse long strings in HTML (ordinals#4053)

* BIP322 sign file (ordinals#4026)

* Identify collapsible nodes with class=collapse (ordinals#4055)

* Add assert_html function (ordinals#4058)

* Allow including metadata when burning inscriptions (ordinals#4045)

* Get output information by address (ordinals#4056)

* Document split command (ordinals#4062)

* Add palindrome charm (ordinals#4064)

* Allow restoring wallet with custom timestamp (ordinals#4065)

* Release 0.21.3 (ordinals#4059)

- Bump version: 0.21.2 → 0.21.3
- Update changelog
- Update changelog contributor credits
- Update dependencies
- Pin `bitcoin` to 0.32.3
- Downgrade `bip322` to 0.0.8

* Add Cargo.lock

---------

Co-authored-by: Anchor <49644098+TheHeBoy@users.noreply.github.com>
Co-authored-by: Casey Rodarmor <casey@rodarmor.com>
Co-authored-by: 0xArtur <metaverseartur@gmail.com>
Co-authored-by: Dr.JingLee <95461562+DrJingLee@users.noreply.github.com>
Co-authored-by: nine <118634361+cryptoni9n@users.noreply.github.com>
Co-authored-by: Bohdan Cryptolions <37701692+ansigroup@users.noreply.github.com>
Co-authored-by: raph <raphjaph@protonmail.com>
Co-authored-by: Patrick Collins <patrick@collinatorstudios.com>
Co-authored-by: Tibebtc <tibedekock@live.nl>
Co-authored-by: partialord <178683722+partialord@users.noreply.github.com>
Co-authored-by: Eloc <42568538+elocremarc@users.noreply.github.com>
Co-authored-by: twosatsmaxi <vashalpesh@gmail.com>
Co-authored-by: tiaoxizhan <tiaoxizhan@outlook.com>
Co-authored-by: onchainguy <1436535+onchainguy-btc@users.noreply.github.com>
Co-authored-by: lifofifo <134870335+lifofifoX@users.noreply.github.com>
Co-authored-by: Arik <arik-so@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

ord fails with Bitcoin Core v28.0
3 participants