thunderbiscuit
134b19a9cb
Fix minor typos in docs
2022-08-05 12:45:18 -04:00
志宇
6db5b4a094
Introduce get_checksum_bytes
method and improvements
...
`get_checksum_bytes` returns a descriptor checksum as `[u8; 8]` instead
of `String`, potentially improving performance and memory usage.
In addition to this, since descriptors only use charaters that fit
within a UTF-8 8-bit code unit, there is no need to use the `char` type
(which is 4 bytes). This can also potentially bring in some performance
and memory-usage benefits.
2022-07-19 22:02:49 +08:00
Esraa Jbara
db9d43ed2f
use network to set coin type
...
Signed-off-by: Esraa Jbara <jbesraa@gmail.com>
2022-07-06 09:08:24 +03:00
Buck Perley
a85ef62698
fix typo
2022-06-05 14:19:37 -05:00
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
308708952b
Fix type inference for the tr()
descriptor, add basic tests
2022-05-31 18:16:24 +02:00
Alekos Filini
fe1877fb18
Support tr()
descriptors in dsl
2022-05-31 18:16:22 +02:00
Alekos Filini
cdc7057813
Add tr()
descriptors to the descriptor!()
macro
2022-05-31 18:16:21 +02:00
Alekos Filini
c121dd0252
Use tap_key_origins
in PSBTs to derive descriptors
2022-05-31 18:16:17 +02:00
Alekos Filini
8a5a87b075
Populate tap_key_origin
in PSBT inputs and outputs
2022-05-31 18:06:59 +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
82de8b50da
Populate the redeemScript for sh(wsh(sortedmulti()))
...
Also explicitly match all the individual variants to ensure a similar problem
doesn't happen again.
Fixes #609
2022-05-23 21:02:42 +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
Alekos Filini
86abd8698f
[descriptor] Expose utilities to deal with derived descriptors
2022-03-25 11:18:56 +01:00
LLFourn
326bfe82a8
Remove Blockchain from wallet
...
Although somewhat convenient to have, coupling the Wallet with
the blockchain trait causes development friction and complexity.
What if sometimes the wallet is "offline" (no access to the blockchain)
but sometimes its online?
The only thing the Wallet needs the blockchain for is to sync.
But not all applications will even use the sync method and the sync
method doesn't require the full blockchain functionality.
So we instead pass the blockchain in when we want to sync.
- To further reduce the coupling with blockchain I removed the get_height call from `new` and just use the height of the
last sync in the database.
- I split up the blockchain trait a bit into subtraits.
2022-02-24 20:39:00 +11:00
Gianluca Acerbis
b6fe01c466
Implement XKeyUtils on InnerXKey
...
Closes #395
2022-02-12 17:14:07 +01:00
thunderbiscuit
7f8103dd76
Fix typos in comments
2021-11-23 14:09:54 -05:00
thunderbiscuit
b9fc06195b
Fix typo in check_miniscript method declaration and use
2021-11-23 13:25:24 -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
5edf663f3d
[descriptor] Add an alias for and_or()
...
The descriptor syntax encodes it with `andor()`, without the underscore
2021-09-15 10:37:35 +02:00
Alekos Filini
e3dd755396
[descriptor] Fix pk_h()
in the descriptor!()
macro
...
Instead of accepting just a `DescriptorPublicKey` it now accepts
anything that implements `IntoDescriptorKey` like `pk_k()` does.
2021-09-15 10:37:33 +02:00
Alekos Filini
b500cfe4e5
[descriptor] Fix extract_policy()
for descriptors with pk_h()
2021-09-15 10:37:30 +02:00
Evgenii P
879e5cf319
rustfmt
2021-07-03 14:08:38 +07:00
Evgenii P
928f9c6112
dsl: add regression test for and_or() descriptor
2021-07-03 13:52:05 +07:00
Evgenii P
814ab4c855
dsl: fix descriptor macro when and_or() used
2021-07-03 13:51:43 +07: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
Alekos Filini
224be27aa8
Fix example/doctests format
2021-06-04 15:53:15 +02:00
Tobin Harding
e1066e955c
Remove unneeded unit expression
...
Clippy emits:
warning: unneeded unit expression
As suggested, remove the unneeded unit expression.
2021-05-11 10:52:08 +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
Alekos Filini
b84fd6ea5c
Fix import for FromStr
2021-05-05 16:59:57 +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
Steve Myers
f3b475ff0e
[wallet] Refactor get_*_address() into get_address(AddressIndex), update CHANGELOG
2021-03-15 08:58:11 -07: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