Andrew Poelstra
57d7baf05b
Merge rust-bitcoin/rust-bitcoin#580 : Add Bloom filter network messages
...
894f0f09b6
Add Bloom filter network messages (Ben Carman)
Pull request description:
Adds initial support for parsing the `merkleblock`, `filterload`, `filteradd` and `filterclear` network messages.
https://developer.bitcoin.org/reference/p2p_networking.html#filteradd
https://developer.bitcoin.org/reference/p2p_networking.html#filterclear
ACKs for top commit:
dr-orlovsky:
ACK 894f0f09b6
apoelstra:
ACK 894f0f09b6
Tree-SHA512: 6483457faf4e63fad0c9ac52b473c37fb04ad28ec60c92e5c3b5be7472d02fd873cbccfe387799002d1862b88bcdc2ded3a7b03349f3ac8fd591942dae005e6d
2021-09-13 21:36:28 +00:00
Ben Carman
894f0f09b6
Add Bloom filter network messages
...
Co-authored-by: jrawsthorne <jake@jakerawsthorne.co.uk>
2021-09-13 15:08:38 -05:00
sanket1729
b0ad6748e4
Add tests for opcode classification
2021-09-13 07:45:15 -07:00
sanket1729
c252b36786
Add CHECKSIGADD and update classify API
2021-09-13 07:45:00 -07:00
Sanket Kanjalkar
9710728d89
Merge pull request #651 from LNP-BP/fix/amount-sum-nostd
2021-09-13 06:04:23 -07:00
Dr Maxim Orlovsky
d20669522e
Fixing no_std for Amount sum iterator
2021-09-13 10:36:07 +02:00
Dr. Maxim Orlovsky
b2c8a7ebc1
Merge pull request #615 from sgeisler/2021-06-sum-amounts
...
Implement `Sum` for amount types
2021-09-11 00:11:15 +02:00
Dr. Maxim Orlovsky
697e8f5194
Merge pull request #626 from visvirial/impl-vsize
...
Implement `Block.get_strippedsize()` and `Transaction.get_vsize()`
2021-09-11 00:09:22 +02:00
Andrew Poelstra
13a6c3b4d6
Merge rust-bitcoin/rust-bitcoin#625 : Improvements to Error types (part 4)
...
994079b099
Refactoring error variants: removing unused; better names & inner types (Dr Maxim Orlovsky)
Pull request description:
Removes controversial aspects from #560 (all `io::Error`-related changes) and leaves the rest
ACKs for top commit:
sanket1729:
ACK 994079b099
apoelstra:
ACK 994079b099
Tree-SHA512: 020e49193c885e862f45e5f7baabf1d22a3ec09e78fd7f573b2f3d327beb4f91683951ba080b3d804e8337a188dcad0f38ba70ee8059aef0681a0b2bba0a2140
2021-09-08 21:22:32 +00:00
Andrew Poelstra
2a655f4b58
Merge pull request #617 from LNP-BP/feat/witness-version
...
WitnessVersion type
2021-09-08 20:58:57 +00:00
Riccardo Casatta
c704ee7ffe
[docs-only] Use backtick in addition to square parentheses for types references, clarify legacy, non_exhaustive comment, remove std::
2021-08-31 13:58:48 +02:00
Riccardo Casatta
f223be618f
Rename access_witness to witness_mut and return Option
...
fix the example in sighash to refer to sighash::SigHashCache instead of bip143::SigHashCache
2021-08-31 13:55:52 +02:00
Riccardo Casatta
c9bc0b928a
[fmt-only] autoformatting with `rustfmt src/util/sighash.rs`
2021-08-31 13:54:41 +02:00
Sanket Kanjalkar
bd5d875e8a
Merge pull request #623 from RCasatta/fixdoc
...
Fix documentation referencing macro var
2021-08-12 18:38:07 -07:00
Martin Habovstiak
07774917c2
Use get_or_insert_with in segwit_cache
...
This refactors the code to make it possible to use `get_or_insert_with`
instead of unwrapping in `segwit_cache()`. To achieve it `common_cache`
is refactored into two functions: one taking only the required borrows
and the original calling the new one. `segwit_cache` then calls the new
function so that borrows are OK.
Apart from removing unwrap, this avoids calling `common_cache` multiple
times.
2021-08-10 10:36:51 +02:00
Dr Maxim Orlovsky
ecc400826c
Updating Script::is_witness_program to use new WitnessVersion
2021-08-10 10:34:15 +02:00
Dr Maxim Orlovsky
64c1ec0b76
WitnessVersion type
2021-08-10 10:34:15 +02:00
Martin Habovstiak
497dbfb7c3
Use get_or_insert_with in common_cache()
...
There was a question whether this is equally performant. There are
multiple good reasons why it should be:
1. `get_or_insert_with` is marked `#[inline]`
2. Any good optimizer will inline a function that is used exactly once
3. 1 and 2 conclude that the closure will get inlined
4. Computing self.tx can then be moved to the only branch where it is
required.
5. Even if get_or_insert_with didn't get optimized, which is extremely
unlikely, the `tx` field is at the beginning of the struct and it
probably has pointer alignment (`Deref` suggests it's a pointer).
Alignment larger than pointer is not used, so we can expect the
fields to be ordered as-defined. (This is not guaranteed by Rust but
there's not good reason to change the order in this case.) We can
assume that offset to tx is zero in most cases which means no
computation is actually needed so the expression before closure is
no-op short of passing it into the closure as an argument.
At the time of writing `#[inline]` can be seen at
https://doc.rust-lang.org/src/core/option.rs.html#933
2021-08-10 10:20:41 +02:00
Martin Habovstiak
ca80a5a030
Use get_or_insert_with in taproot_cache
2021-08-10 10:02:33 +02:00
Dr. Maxim Orlovsky
4e3c2c32fc
Merge pull request #632 from tcharding/prefixes
2021-08-09 23:26:15 +02:00
Dr. Maxim Orlovsky
8ae030b951
Merge pull request #618 from elsirion/possible_networks
2021-08-09 23:25:06 +02:00
Dr. Maxim Orlovsky
33393e0bf4
Merge pull request #621 from RCasatta/verify_with_amount
2021-08-09 23:23:09 +02:00
Dr. Maxim Orlovsky
808e1708c3
Merge pull request #596 from RCasatta/script_ser
2021-08-09 23:22:06 +02:00
Dr. Maxim Orlovsky
310f4eb769
Merge pull request #640 from RCasatta/fix_date
...
fix changelog date
2021-08-08 15:16:10 +02:00
Riccardo Casatta
c3305384b9
fix changelog date
2021-08-06 20:30:38 +02:00
Devrandom
849ec3f2c8
Enable secp256k1/alloc for no-std
2021-08-02 22:09:14 +02:00
Devrandom
206c648869
Clean up embedded test memory configuration
2021-08-02 22:09:14 +02:00
Dr Maxim Orlovsky
994079b099
Refactoring error variants: removing unused; better names & inner types
2021-08-01 21:08:39 +02:00
Dr. Maxim Orlovsky
425b528e41
Merge pull request #634 from Kixunil/remove-fuzztarget
2021-08-01 18:30:03 +02:00
Martin Habovstiak
a291fee23c
Removed fuzztarget feature
...
It seems to be unused and when there's a need for it it's better to use
`--cfg fuzzing` as in `rust-secp256k1 ` and `bitcoin_hashes`.
2021-07-29 08:13:25 +02:00
Tobin Harding
adc1543e7c
Use consts for address prefix values
...
Instead of using magic numbers we can define constants for the address
prefix bytes. This makes it easier for future readers of the code to see
what these values are if they don't know them and/or see that they are
correct if they do know them.
2021-07-22 10:31:14 +10:00
Andrew Poelstra
5098011416
Merge pull request #631 from RCasatta/bump_027
...
Bump version to 0.27.0
2021-07-21 20:42:17 +00:00
Riccardo Casatta
6e06a32ccc
Wrap ErrorKind in Io enum variant, fix doc comment for the IO variant
2021-07-21 12:07:12 +02:00
Riccardo Casatta
1a2b54ff23
introduce constant KEY_VERSION_0
2021-07-21 12:07:10 +02:00
Riccardo Casatta
417cfe31e3
Derive common traits for structs and enum, make internal struct not pub
2021-07-21 12:07:08 +02:00
Riccardo Casatta
55ce3dd6ae
Fix validation error if SINGLE with missing corresponding output, remove check_index and check with get().ok_or(), more details in errors
2021-07-21 12:07:05 +02:00
Riccardo Casatta
2b3b22f559
impl Encodable for Annex to avoid allocation
2021-07-21 12:07:00 +02:00
Riccardo Casatta
1a7afed068
Add Reserved variant to SigHashType for future use (ie SIGHASH_ANYPREVOUT)
2021-07-21 12:05:42 +02:00
Riccardo Casatta
53d0e176d3
Deprecate bip143::SigHashCache in favor of sighash::SigHashCache
2021-07-21 12:05:40 +02:00
Riccardo Casatta
15e3caf62d
[test] Test also sighash legacy API with legacy tests
2021-07-21 12:05:37 +02:00
Riccardo Casatta
24acfe3672
Implement Bip341 signature hash, create unified SigHashCache for taproot, segwit and legacy inputs
2021-07-21 12:05:18 +02:00
Riccardo Casatta
683b9c14ff
add [En|De]codable trait for sha256::Hash
2021-07-21 10:36:06 +02:00
Riccardo Casatta
ef69f24fed
Bump version to 0.27.0
2021-07-21 08:53:51 +02:00
Andrew Poelstra
df4d70a37e
Merge pull request #627 from RCasatta/bigendian
...
Bigendian fixes and CI test
2021-07-20 20:56:16 +00:00
Andrew Poelstra
5e6b56aba4
Merge pull request #603 from devrandom/no_std_devrandom
...
no_std support, keeping MSRV
2021-07-20 16:40:18 +00:00
Devrandom
bba57d7d69
Embedded test via qemu
2021-07-15 09:04:49 +02:00
Devrandom
4826d0c6cc
no_std support
...
Based on the original work by Justin Moon.
*MSRV unchanged from 1.29.0.*
When `std` is off, `no-std` must be on, and we use the [`alloc`](https://doc.rust-lang.org/alloc/ ) and core2 crates. The `alloc` crate requires the user define a global allocator.
* Import from `core` and `alloc` instead of `std`
* `alloc` only used if `no-std` is on
* Create `std` feature
* Create `no-std` feature which adds a core2 dependency to polyfill `std::io` features. This is an experimental feature and should be
used with caution.
* CI runs tests `no-std`
* MSRV for `no-std` is 1.51 or so
2021-07-15 09:04:49 +02:00
Riccardo Casatta
11d5a30f86
comment only: explain reason for swap bytes
2021-07-02 12:05:09 +02:00
Riccardo Casatta
95460f5e3c
Add cross testing on big-endian architecture
2021-06-30 10:14:15 +02:00
Riccardo Casatta
0f4d2cfcaa
swap bytes in network code instead of swapping only in little-endian
2021-06-29 16:01:34 +02:00