-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Better error messages on satisfiers #721
Comments
So, in general there is no single "reason" that satisfaction fails. You can imagine that instead of a Having said this, throughout the codebase we have dozens of somewhat-obscure reasons for failing satisfaction. In this case in A few observations:
|
I've been learning rust-miniscript, and when attempting to try out timelocks, I kept hitting a
CouldNotSatisfy
when finalizing my psbt. The reason turned out to be totally of my own doing - I had inadvertantly used aSequence::MAX
instead of aSequence::ZERO
when constructing my spend transaction. I had effectively disabled locktime usage, because I had done this:instead of this:
I was so preoccupied trying to figure out how signing worked, how to use the
plan
module etc that I didn't notice this.In order to figure out the problem, I ran my own local forks of
bdk_wallet
,rust-miniscript
, andbitcoin
crates, instrumenting them with printlns until I figure out what the (dumb, self-inflicted) problem was.It would be supersonic if satisfier errors gave a more specific reason for failure - I wonder if it would be possible for instance to turn
CouldNotSatisfy
into something likeCouldNotSatisfy("here is the reason")
? Or perhaps something more typed like (in the case I just dealt with)CouldNotSatisfy(LockTimeDisabled)
?The text was updated successfully, but these errors were encountered: