Alekos Filini
0643f76c1f
taproot-tests: Add tests for the policy module
2022-06-01 14:51:34 +02:00
Alekos Filini
c67116fb55
policy: Consider tap_key_origins
when looking for sigs in PSBTs
...
We used to only look at `bip32_derivations` which is only used for ECDSA
keys.
2022-06-01 14:51:28 +02:00
Alekos Filini
572c3ee70d
policy: Build SatisfiableItem::*Signature
based on the context
...
Also refactor our code to lookup signatures in PSBTs to use the context
2022-06-01 14:51:26 +02:00
Alekos Filini
ff1abc63e0
policy: Refactor PkOrF
into an enum
...
For whatever reason we were using a struct as an enum, so we might as
well fix it in this PR since we are already breaking the API quite
badly.
2022-06-01 14:51:16 +02:00
Alekos Filini
1312184ed7
Attach a context to our software signers
...
This allows the signer to know the signing context precisely without
relying on heuristics on the psbt fields.
Due to the context being static, we still have to look at the PSBT when
producing taproot signatures to determine the set of leaf hashes that
the key can sign for.
2022-05-27 11:48:50 +02:00
Alekos Filini
a16c18255c
Upgrade to rust-bitcoin 0.28 and miniscript 7.0
2022-05-12 12:51:21 +02:00
Alekos Filini
cca69481eb
Bump MSRV to 1.56
2022-05-04 17:29:07 +02:00
Alekos Filini
8a2a6bbcee
Add n:
wrapper to vulnerable scripts
2022-04-20 18:25:26 +02:00
thunderbiscuit
7f8103dd76
Fix typos in comments
2021-11-23 14:09:54 -05:00
Alekos Filini
326b64de3a
[descriptor] Add a test for extract_policy()
on pk_h()
operands
2021-09-15 10:38:36 +02:00
Alekos Filini
b500cfe4e5
[descriptor] Fix extract_policy()
for descriptors with pk_h()
2021-09-15 10:37:30 +02:00
Riccardo Casatta
fe371f9d92
Use bitcoin's base64 feature for Psbts
2021-06-10 15:50:44 +02:00
Tobin Harding
12de13b95c
Remove redundant borrows
...
Clippy emits:
warning: this expression borrows a reference
As suggested remove the borrows from the front of vars that are already references.
2021-06-10 13:16:07 +10:00
Tobin Harding
aa3707b5b4
Use Psbt instead of PSBT
...
Idiomatic Rust uses lowercase for acronyms for all characters after the
first e.g. `std::net::TcpStream`. PSBT (Partially Signed Bitcoin
Transaction) should be rendered `Psbt` in Rust code if we want to write
idiomatic Rust.
Use `Psbt` instead of `PSBT` when aliasing the import of
`PartiallySignedTransaction` from `bitcoin` library.
2021-05-07 16:29:50 +02:00
Riccardo Casatta
136a4bddb2
Verify PSBT input satisfaction
2021-04-16 12:22:49 +02:00
Riccardo Casatta
ff7b74ec27
destructure tuple to improve clarity
2021-04-16 12:22:47 +02:00
Riccardo Casatta
afcd26032d
comment out println in tests, fix doc
2021-04-15 16:48:42 +02:00
Riccardo Casatta
8f422a1bf9
Add timelocks to policy satisfaction results
...
Also for signature the logic has been refactored to handle appropriately nested cases.
2021-04-15 15:57:35 +02:00
Steve Myers
e37680af96
Use .flatten() instead of .filter_map(|x| x), clippy warning
...
https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity
2021-04-08 14:18:07 -07:00
Steve Myers
b68ec050e2
Remove redundant clone, clippy warning
...
https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone
2021-04-08 11:41:58 -07:00
Steve Myers
ac7df09200
Remove needlessly taken reference of both operands, clippy warning
...
https://rust-lang.github.io/rust-clippy/master/index.html#op_ref
2021-04-08 11:39:38 -07:00
Riccardo Casatta
192965413c
Convert upper-case acronyms as suggested by CamelCase convention
...
see https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms
2021-04-07 22:14:54 +02:00
Alekos Filini
c456a252f8
Merge commit 'refs/pull/296/head' of github.com:bitcoindevkit/bdk
2021-03-17 11:30:31 +01:00
Riccardo Casatta
d837a762fc
update changelog and fix docs
2021-03-17 11:24:48 +01:00
Riccardo Casatta
14ae64e09d
[policy] Populate satisfaction with singatures already present in a PSBT
2021-03-08 16:58:56 +01:00
Riccardo Casatta
48215675b0
[policy] uncomment and update 4 tests: 2 ignored and 2 restored
2021-03-08 16:51:43 +01:00
Riccardo Casatta
37fa35b24a
[policy] pass existing context instead of new one
2021-03-08 16:51:42 +01:00
Riccardo Casatta
23ec9c3ba0
[policy] pass secp context to setup_keys
2021-03-08 16:51:40 +01:00
Steve Myers
12ae1c3479
Update license to Apache 2.0 or MIT, copyright to Bitcoin Dev Kit Developers
2021-03-03 13:23:25 -08:00
Tobin Harding
2afc9faa08
Remove needles explicit reference
...
Clippy emits warning:
warning: needlessly taken reference of both operands
Remove the explicit reference's as suggested.
2021-02-24 13:30:46 +11:00
Alekos Filini
b61427c07b
[policy] Allow specifying a policy path for Multisig
...
While technically it's not required since there are no timelocks inside,
it's still less confusing for the end user if we allow this instead of
failing like we do currently.
2021-02-13 11:17:07 -05:00
Alekos Filini
fa2610538f
[policy] Remove the TooManyItemsSelected
error
...
The `TooManyItemsSelected` error has been removed, since it's not technically an
error but potentailly more of an "over-constraint" over a tx: for instance,
given a `thresh(3,pk(a),pk(b),older(10),older(20))` descriptor one could create
a spending tx with the `[0,1,2]` items that would only be spendable after `10`
blocks, or a tx with the `[0,2,3]` items that would be spendable after `20`.
In this case specifying more items than the threshold would create a tx with
the maximum constraint possible, in this case the `20` blocks. This is not
necessarily an error, so we should allow it without failing.
2021-02-13 11:10:31 -05:00
Steve Myers
1c6864aee8
Rename ToDescriptorKey to IntoDescriptorKey
2021-02-12 23:23:20 -08:00
Steve Myers
d638da2f10
Rename ToWalletDescriptor to IntoWalletDescriptor
2021-02-12 23:23:20 -08:00
Steve Myers
04348d0090
Fix clippy warning 'wrong_self_convention'
2021-02-12 22:23:48 -08:00
Steve Myers
eda23491c0
Fix clippy warning 'unnecessary_wraps'
2021-02-12 22:23:29 -08:00
Alekos Filini
3d9d6fee07
Update bitcoin, miniscript, electrum-client
2021-02-05 09:11:27 -05:00
Alekos Filini
bf04a2cf69
descriptor: Use DescriptorError
instead of Error
when reasonable
...
Change the return type of the `descriptor!()` macro and `ToWalletDescriptor` to
avoid having to map errors.
Also introduce more checks to validate descriptors built using the macro.
2021-01-12 12:21:22 +01:00
LLFourn
a578d20282
Fix incredibly annoying cargo-fmt problem
...
I must have a newer version of cargo-fmt which stops me from making
commits every time because of this.
2020-12-22 14:37:53 +11:00
Alekos Filini
7e90657ee1
[descriptor] Make the syntax of descriptor!()
more consistent
...
The syntax now is pretty much the same as the normal descriptor syntax,
with the only difference that modifiers cannot be grouped together (i.e.
`sdv:older(144)` must be turned into `s:d:v:older(144)`.
2020-12-16 19:00:55 +01:00
Alekos Filini
322122afc8
[wallet] Set the correct nSequence when RBF and OP_CSV are used
...
This commit also fixes the timelock comparing logic in the policy module, since
the rules are different for absolute (OP_CLTV) and relative (OP_CSV) timelocks.
Fixes #215
2020-12-15 12:01:41 +01:00
Alekos Filini
c83cec3777
Merge commit 'refs/pull/221/head' of github.com:bitcoindevkit/bdk
2020-12-14 11:27:51 +01:00
Steve Myers
f8d3cdca9f
[docs] Add experimental warning to compact_filters and policy modules
2020-12-13 21:04:17 -08:00
Steve Myers
0f2dc05c08
[docs] Add docs to the 'descriptor' module
2020-12-13 20:57:28 -08:00
Steve Myers
60e5cf1f8a
[docs] Add docs to the 'policy' module
2020-12-13 20:40:23 -08:00
Evgenii P
641d9554b1
Ignore broken tests. ( #225 )
2020-12-14 10:17:12 +07:00
LLFourn
d2490d9ce3
Fix to at least bitcoin ^0.25.2
...
And fix the fallout.
2020-11-23 15:06:13 +11:00
Justin Moon
9e2b2d04ba
More consistent references with 'signers' variables
2020-11-19 10:27:34 -06:00
Justin Moon
b1b2f2abd6
[wallet] Don't wrap SignersContainer arguments in Arc
2020-11-19 10:27:33 -06:00
Alekos Filini
7a42c5e095
Switch to "mainline" rust-miniscript
2020-11-17 23:57:28 +01:00