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

Use the taproot dust limit when determining whether padding is required. #1929

Merged
merged 2 commits into from
Jul 24, 2023

Conversation

gmart7t2
Copy link
Contributor

The alignment output is sent to a taproot address, so it's the taproot dust limit we need to check against, not the dust limit for the type of the destination address.

The existing code fails if you try to send to a non-taproot bech32 address (dust limit 294) with a satpoint offset anywhere from 294 to 329 because the check for whether to create an alignment output uses the 294 dust limit but the invariant uses 330:

$ ord --regtest wallet send --fee-rate 1 bcrt1qdsl5cnfxmp3l7tgsmlpurcuwgerkh9wptkz0za 4c81ae42fdb58d65873fe120a1a35d9c4cf0ba831b97747da34f06ba462dbf9b:1:300

thread 'main' panicked at 'invariant: all outputs are above dust limit', src/subcommand/wallet/transaction_builder.rs:614:7

The alignment output is sent to a taproot address, so it's the taproot
dust limit we need to check against, not the dust limit for the type
of the destination address.
@gmart7t2 gmart7t2 force-pushed the fix-padding-calculation branch 2 times, most recently from 9d6f94f to ac91ec7 Compare April 14, 2023 22:02
@raphjaph raphjaph enabled auto-merge (squash) July 24, 2023 21:53
@raphjaph raphjaph merged commit f44340d into ordinals:master Jul 24, 2023
6 checks passed
sidmorizon added a commit to OneKeyHQ/ord that referenced this pull request Aug 1, 2023
* Add contributing section (ordinals#2261)

* Implement clean index shutdown to prevent index corruption (with clippy updates for Rust 1.71) (ordinals#2275)

* gracefully shutdown index update thread to prevent index corruption

* Use `next_back()` instead of `rev().next()` for rust 1.71

---------

Co-authored-by: victorkirov <victor.kirov@gmail.com>

* Modify `ord list` output to include the end of each range (ordinals#1998)

* Don't create default data directory if --index overrides it (ordinals#1991)

* Fix docs inconsistency (ordinals#2276)

* Fix ordering for reinscriptions and show all reinscriptions for sat (ordinals#2279)

* Add satpoint and address to index export (ordinals#2284)

* Update bitcoin dependencies (ordinals#2281)

* Update redb (ordinals#2294)

* Add retry to fetcher (ordinals#2297)

* Clean up deploy scripts (ordinals#2298)

* Fix justfile recipe (ordinals#2299)

* Release 0.8.1 (ordinals#2300)

* Add `amount` field to `wallet inscriptions` output. (ordinals#1928)

* Fix dust limit for padding in `TransactionBuilder` (ordinals#1929)

* Inform user when redb starts in recovery mode (ordinals#2304)

* Fix remote RPC wallet commands (ordinals#1766)

* Select multiple utxos (ordinals#2303)

Co-authored-by: Greg Martin <gm7t2@gmail.com>

* feat: add outputs api

---------

Co-authored-by: raph <raphjaph@protonmail.com>
Co-authored-by: victorkirov <victor.kirov@gmail.com>
Co-authored-by: gmart7t2 <49558347+gmart7t2@users.noreply.github.com>
Co-authored-by: ordinally <11798624+veryordinally@users.noreply.github.com>
Co-authored-by: Carlos Alaniz <carlosglvn93@gmail.com>
Co-authored-by: Greg Martin <gm7t2@gmail.com>
Raylin51 pushed a commit to 0xaklabs/ord that referenced this pull request Aug 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants