github-actions
released this
14 Oct 20:30
·
1267 commits
to master
since this release
What's Changed
- Replace time with std::time by @serprex in #14
- Add GetAddr message by @rotwatsb in #18
- Add Cargo.lock to gitignore by @chritchens in #22
- Sanity checks for vector length by @daniellockyer in #25
- Fix vulnerabilities which found by
cargo audit
. by @alekseysidorov in #29 - script: add
to_p2wsh()
andis_p2swsh()
functions by @apoelstra in #32 - util: add Sha256dEncoder to allow streaming data into a hash by @apoelstra in #33
- transaction: add txid() method by @apoelstra in #34
- add constants for OP_CLTV and OP_CSV by @apoelstra in #35
- Fix argument to copy_nonoverlapping in internal_macros by @TheBlueMatt in #45
- remove all use of mem::uninitialized and mem::copy_nonoverlapping by @apoelstra in #46
- util: add
bip143
module to create BIP143 signature hashes by @apoelstra in #38 - fixing debug output for Uint256 and Uint128 by @tamasblummer in #40
- add low_u64 to Uint256 and Uit128 types by @tamasblummer in #42
- Add difficulty calculation by @tamasblummer in #44
- minimal implementation of alert message by @tamasblummer in #41
- Remove some dependencies; bump major version number by @apoelstra in #47
- [Trivial] add IntelliJ IDEA files to .gitignore by @tamasblummer in #48
- [Trivial] RawNetworkMessage::command should be public. by @tamasblummer in #49
- [Trivial] add get_best_tip_height to blokchain by @tamasblummer in #50
- [Trivial] is_on_main_chain is a very useful function upstream, make it public by @tamasblummer in #51
- Moved blockchain and patricia_tree to rust-memblocks by @tamasblummer in #56
- remove script interpreter by @apoelstra in #57
- Fix a couple README links by @apoelstra in #59
- Optional feature gives access to Bitcoin Core's own script validator by @tamasblummer in #58
- Add bech32 support by @apoelstra in #60
- Implemented segwit address types. Moved PrivKey into its own module. by @tamasblummer in #62
- Rustc 1.14 by @apoelstra in #65
- Update fuzz target boilerplate to match rust-lightning by @TheBlueMatt in #63
- create Address message with SocketAddr, get SocketAddr from Address m… by @tamasblummer in #64
- bump to 0.12 by @apoelstra in #66
- Move witness inside of TxIn. by @TheBlueMatt in #68
- Add a Transaction.get_weight() method, check it in fuzzing by @TheBlueMatt in #69
- Only provide the required TxIn to bip143 sighash_all by @TheBlueMatt in #70
- Correct consensus verify args, fix tests to catch error in travis by @TheBlueMatt in #71
- block: fix a small typo in comment by @romanz in #74
- Update documentation URL in Cargo.toml by @romanz in #75
- add fuzzer output to gitignore; remove ancient secp build instructions from Travis by @apoelstra in #73
- Bump version to 0.13 by @apoelstra in #77
- Added
impl Display
toconstruct_uint
macro by @popzxc in #82 - Implement
FromStr
for Network constant by @alekseysidorov in #80 - Added generation of
data
method inimpl_array_newtype
macro by @popzxc in #81 - Hotfix: replace serde error with the io error. by @alekseysidorov in #85
- Remove cargo usage from README by @petertodd in #87
- Fix multiplication for uint256 by @popzxc in #88
- Expose merkleroot(Vec) publicly by @TheBlueMatt in #90
- Check in fuzz inputs for all current targets by @TheBlueMatt in #91
- add witness inv types by @tamasblummer in #89
- Added regtest network by @popzxc in #84
- add is_coin_base by @tamasblummer in #83
- bump version to 0.13.1 by @apoelstra in #92
- Fix 2 small typos in comments by @romanz in #97
- Method for getting compact from uint256 by @popzxc in #86
- Reverts #84, bumps Cargo minor version number, and re-adds #84 by @apoelstra in #99
- Added module with consensus parameters by @popzxc in #93
- check if output is OP_RETURN by @tamasblummer in #101
- Use bech32 v0.8.0 by @sgeisler in #100
- Fix to_v0_p2wsh docs by @dongcarl in #109
- [code hygiene] remove deprecated rustc-serialize by @savil in #107
- Clarify to_v0_p2wsh docs a bit further by @TheBlueMatt in #112
- Add conversion between u32 and ChildNumber, fix docs by @dongcarl in #122
- Refactor and add more documentation for the
Network
type. by @jeandudey in #121 - Simple doc fix for
from_secret_key
by @dpc in #120 - Fix modules documentation title. by @jeandudey in #116
- Regtest bech32 address support by @D4nte in #110
- Ready for Review: Improve consistency for bip32::ChildNumber by @dongcarl in #126
- Implement
Display
trait instead of implementingToString
directly. by @jeandudey in #118 - Hidde
From<T>
implementations for error types in Rustdoc. by @jeandudey in #127 - Remove
try!
macro usage and use the?
operator instead. by @jeandudey in #119 - Ready for Review: Add derive_* methods to Extended*Key by @dongcarl in #129
- Ready for Review: Make deserialize error if input bytes not consumed by @dongcarl in #132
- Remove variable shadowing in listener.rs by @romanz in #133
- Remove unused "bitcoinconsenus" feature. by @jeandudey in #128
- Added Ord and Hash implementations for the Address type by @alekseysidorov in #95
- Fix compilation warning when comparing usize and u64 on 32-bit arch by @dongcarl in #138
- update to secp256k1 0.10.0 by @apoelstra in #113
- Update to serde 1.0 by @jeandudey in #125
- Rename
TxOutRef
toOutPoint
and use it inTxIn
. by @jeandudey in #139 - Use
as_
,to_
,into_
conventions for array types. by @jeandudey in #143 - trivial: Use
str::starts_with
method to check bech32 address prefixes. by @jeandudey in #144 - Implement
Display
instead ofToString
forAddress
andPrivKey
. by @jeandudey in #141 - Fix Error type for SimpleDecoder and SimpleEncoder by @dongcarl in #137
- Implement
FromStr
forUDecimal
/Decimal
. by @jeandudey in #142 - update rust-secp dependency to 0.11 by @apoelstra in #146
- script: make Instructions iterator enforce minimal pushes by @apoelstra in #136
- bump version to 0.14.0 by @apoelstra in #147
- pin hex to 0.3.2 rather than a git commit by @apoelstra in #148
- Various serialization fixes by @apoelstra in #151
- impl PartialOrd, Ord for Script by @apoelstra in #152
pub use
a ton of stuff at the top level by @apoelstra in #157- increase version to 0.14.1 by @apoelstra in #158
- Update fuzz harness stuff by @TheBlueMatt in #166
- Implement serde serialiation for Address by @stevenroose in #159
- bump version to 0.14.2 by @apoelstra in #167
- Add FromStr for Sha256dHash by @thomaseizinger in #168
- Ready for Review: Clean up
network::encodable
andnetwork::serialize
by @dongcarl in #156 - added p2wkh, p2sh-p2wkh tests for bip143 module by @evgeniy-scherbina in #169
- Added example for creating an address from a public key by @jeffbarg in #174
- Implement FromStr for OutPoint by @stevenroose in #177
- Add explicit WIF methods for Privkey by @stevenroose in #178
- Export network::constants::Network by @stevenroose in #181
- transaction: make 0-input de/serialization always use Segwit by @apoelstra in #153
- Increase version to 0.15 by @apoelstra in #188
- Detect compressed p2pk in script.is_p2pk() by @shesek in #189
- update version to 0.15.1 by @apoelstra in #190
- add fuzzer for transaction::OutPoint by @apoelstra in #179
- Avoid heap usage when encoding to base58 by @sgeisler in #191
- upgrade byteorder to 1.2 by @tamasblummer in #199
- Move fuzzing code out of utils by @sgeisler in #196
- Safe opcodes 1.14.0 by @sgeisler in #198
- Fix comment on transaction version by @ariard in #205
- Internalize unnecessarily exported macros by @dongcarl in #211
- Bump secp to 0.12 by @dongcarl in #213
- Use more performant hex_bytes function by @sgeisler in #208
- bump version to 0.16 by @apoelstra in #214
- Bump rustc version to 1.22.0 by @dongcarl in #210
- It is annoying to have a difference between debug and regular print for Sha256dHash by @tamasblummer in #223
- Fix typos by @rex4539 in #224
- Run cargo bench on rustc nightly in travis by @TheBlueMatt in #212
- Integrate bitcoin_hashes, remove rust-crypto and fuzz_util by @dongcarl in #215
- Fix typos and clarify some comment in blockdata, block, address by @ariard in #230
- Remove Address::p2pk by @stevenroose in #222
- add BIP157 (Client Side Block Filtering) Messages by @tamasblummer in #225
- Ready for Review: Introduce util::key and deprecate util::privkey by @dongcarl in #183
- Extract travis testing into locally-runnable script by @dongcarl in #227
- Extract the Script assembly creator from fmt::Debug by @stevenroose in #203
- Add contributing section to README by @sgeisler in #234
- bip32: Add DerivationPath type by @stevenroose in #233
- Merkle root calculation and witness commitment check for Block by @tamasblummer in #218
- Forbid unsafe code by @dongcarl in #237
- Remove extraneous clones in consensus::params by @dongcarl in #235
- Remove unused Option en/decoding by @dongcarl in #236
- Better RawNewtorkMessage deserealization from IO stream by @dr-orlovsky in #231
- Replace
secp256k1
keys withutil::key
keys in BIP32 by @apoelstra in #238 - BIP174 (de)serialization support by @dongcarl in #103
- bump version to 0.17.0 by @apoelstra in #239
- key: implement ToString and FromStr for PublicKey by @apoelstra in #241
- bump version to 0.17.1 by @apoelstra in #242
- Bump bitcoin-bech32 dependency by @stevenroose in #244
- util::key: Provide to_bytes() methods for key types by @stevenroose in #243
- util::key add serde de/serialization by @apoelstra in #246
- contracthash: use
PublicKey
andPrivateKey
types; minor cleanups by @apoelstra in #247 - bump version to 0.18 by @apoelstra in #248
- Fix nit in CHANGELOG.md by @stevenroose in #256
- bip32: Add increment method to DerivationPath and ChildNumber by @stevenroose in #257
- Drop LoneHeaders and just use BlockHeader by @TheBlueMatt in #260
- Implement util::misc::signed_msg_hash() by @shesek in #258
- Speed up consensus::[d]encode significantly by @TheBlueMatt in #264
- Add Amount and SignedAmount by @stevenroose in #270
- Fix DoS in RawNetworkMessage Deserialization by @TheBlueMatt in #272
- Rename BlockHeader::spv_validate to validate_pow by @stevenroose in #273
- Remove confusing mentions of SPV by @jonasnick in #276
- Rename OP_NOP2 and OP_NOP3 to OP_CLTV and OP_CSV by @stevenroose in #282
- Add OutPoint::new() for one-liner construction by @stevenroose in #285
- Remove Decimal and replace strason with serde_json by @stevenroose in #250
- Slightly update README by @stevenroose in #274
- Remove unused rand dependency by @jonasnick in #277
- script: give
Builder
ability to verify-ify opcodes by @apoelstra in #286 - Add a MerkleBlock construction by @erasmospunk in #268
- forbid unsafe by @tamasblummer in #295
- clean up encoding/decoding traits by @apoelstra in #265
- bip143: Rename witness_script to script_code by @stevenroose in #293
- Add client side block filter (BIP158) by @tamasblummer in #281
- Generate codecov.io reports by @dongcarl in #297
- Add special human-readable serde for OutPoint and most bip32 types by @stevenroose in #271
- Test negative numbers by @Aleru in #304
- Fix typos by @practicalswift in #303
- Remove tempfile as a dependency by @elichai in #307
- Reduce blockfilter memory by @tamasblummer in #302
- use BTreeMap instead of HashMap to always serialize the same by @RCasatta in #310
- Remove accidentally added file by @real-or-random in #312
- Check that the amount precision isn't more than the size of the amount by @elichai in #309
- Refactor Address by @stevenroose in #255
- Export some dependencies by @stevenroose in #289
- Make secp256k1/rand a dev-dependency by @elichai in #315
- Release v0.19.0 by @stevenroose in #314
- Pin serde and re-export bech32 by @elichai in #316
- Remove serde-derive as a dependency by @elichai in #317
- use lambda instead of a hash map to find spent outputs by @tamasblummer in #319
- upgrade to secp256k1 0.15 and bitcoinconsensus 0.17 by @tamasblummer in #298
- [TRIVIAL] enable serde serialization for block and blockheader by @tamasblummer in #321
- Fix incorrect documentation for is_p2pk(...) by @practicalswift in #331
- Improvements to
StreamReader
by @dr-orlovsky in #318 - Add reject message by @tamasblummer in #323
- bump version to 0.21.0 by @apoelstra in #334
- Drop message decode max length to 4_000_000 by @TheBlueMatt in #340
- Adding MSRV to the readme by @elichai in #347
- Expose secp256k1 features by @thomaseizinger in #344
- Nit in VersionMessage documentation by @stevenroose in #343
- Drop hex and byteorder (non-test) deps (and disable useless lints) by @TheBlueMatt in #337
- Add default trait implementation for TxIn by @ccdle12 in #341
- Add ServiceFlags type by @stevenroose in #345
- Implement std::hash::Hash for Inventory by @stevenroose in #361
- Overloaded encode error by @stevenroose in #329
- Feature/issue 350 by @kiminuo in #360
- Various optimizations of the network code by @stevenroose in #357
- Remove two old TODO comments [nit] by @kiminuo in #363
- Convert numeric representation of ServiceFlags to bitwise OR of the f… by @kiminuo in #364
- bip157: Fix typo on getcfcheckpt command string by @5o50 in #367
- bip157: Add NODE_COMPACT_FILTERS Service Flag by @5o50 in #368
- Add a full round test for RawNetworkMessage by @elichai in #370
- Hash new types as specified in #284 by @dr-orlovsky in #349
- Release v0.22.0 by @stevenroose in #366
- Improve fmt::Debug for network/Address by @kiminuo in #379
- Release v0.23.0 by @stevenroose in #380
- Remove the BitcoinHash trait by @stevenroose in #385
- Add, use WITNESS_SCALE_FACTOR constant by @instagibbs in #392
- Add bip143 sighash support for other flags by @instagibbs in #390
- Yet another MSRV breaking change by @elichai in #398
- Remove the hex dependency by @elichai in #381
- Improving
construct_uint
macro by @dr-orlovsky in #395 - readme: Add links to CHANGELOG.md and LICENSE by @wbnns in #378
- Add tests based on mutagen outputs by @elichai in #399
- Add Transaction::get_size() by @shesek in #416
- Added a simple handshake example. by @tnull in #411
- Export the util::amount::Denomination type by @stevenroose in #412
- Cargo clippy changes by @elichai in #308
- Add Block::get_size() and Block::get_weight() by @shesek in #417
- Fix serde struct macros deserialization impls by @canndrew in #375
- Fix: Change WitnessTransaction inv type to use txid by @jrawsthorne in #424
- Remove some needless allocations by @elichai in #422
- Add fuzz target comparing native u128 to our Uint type by @TheBlueMatt in #425
- Deprecate Error::description by @elichai in #419
- Allow to construct MerkleBlock using the header and txids by @shesek in #415
- Fix ruy rust 1.22 inccompatibility by @sgeisler in #431
- Remove duplicate code by @twchn in #432
- Add
BlockHeader::u256_from_compact_target
function by @cloudhead in #429 - Modulo division operation for Uint128 & Uint256 types by @dr-orlovsky in #435
- Derive more traits to use for bip32 Types by @sgeisler in #443
- feefilter message by @jrawsthorne in #448
- Remove empty code block by @romanz in #452
- Use the remainder from div_rem instead of recomputing it by @elichai in #445
- Hygiene/single code style for all existing macros by @dr-orlovsky in #403
- Add
Clone
instance toRawNetworkMessage
by @cloudhead in #463 - Improve the Instructions iterator for scripts by @stevenroose in #397
- Don't allow uncompressed pks in witness addresses by @stevenroose in #428
- Big integers (Uint*) from byte slice array with
from_be_bytes
by @dr-orlovsky in #436 - Deprecate the util::contracthash module by @stevenroose in #451
- Transaction and header version is signed int by @braydonf in #458
- Expose the witnesses of the tx being hashed in SigHashCache by @TheBlueMatt in #461
- Set Params::pow_limit to an attainable value not a theoretical one by @TheBlueMatt in #464
- Increase version to 0.24 by @apoelstra in #475
- bump version to 0.25, MSRV to 1.29 by @apoelstra in #476
- Refactoring script generating functions into a single place by @dr-orlovsky in #387
- Added hash Preimages to psbt by @sanket1729 in #465
- Revert "Added hash Preimages to psbt" by @apoelstra in #477
- Expose features of secp256k1 by @RCasatta in #486
- Hash functions for public keys and scripts by @dr-orlovsky in #388
- README: Fix typo in MSRV section by @stevenroose in #489
- Add Block::coinbase and Block::bip34_block_height (BIP-34) by @stevenroose in #444
- Bip32 documentation fix by @sgeisler in #488
- Allow easy concatenation of bip32 derivation paths by @sgeisler in #459
- Introducing
bip32::KeySource
: wrapper for(Fingerprint, DerivationPath)
by @dr-orlovsky in #480 - Add benchmarks by @elichai in #418
- Simplifying macros by @elichai in #356
- Small modernization after MSRV bump by @elichai in #482
- fix bench fn names by @RCasatta in #492
- Expose serialized data for transaction signatures by @ipaljak-tbtl in #485
- Revert the sighash method signatures by @stevenroose in #493
- BlockFilter
Clone
,Debug
etc. derives by @cloudhead in #500 - PSBT serde implementation by @dr-orlovsky in #497
- Add MessageSignature type for dealing with signed messages by @stevenroose in #413
- bump version to 0.25.1 by @apoelstra in #491
- Add an example for bip32 key derivation by @rikitau in #502
- Avoid a few assertions that shouldn't be necessary by @stevenroose in #506
- add signet support by @kallewoof in #291
- BIP339: Add wtxidrelay message and WTx inv type by @jrawsthorne in #446
- BIP155: AddrV2 by @jrawsthorne in #449
- Implement new FilterHeader type to differentiate from FilterHash by @jrawsthorne in #454
- Psbt hash preimages (again) by @sanket1729 in #478
- Change PublicKey::write_into to return Result by @stevenroose in #507
- Fixing serde impl for PSBT inputs by @dr-orlovsky in #512
- Implement PartialOrd and Ord for Inventory by @stevenroose in #517
- use u128 in map_to_range by @RCasatta in #487
- BIP 32 binary encoding functions are extracted from base58 by @dr-orlovsky in #470
- PSBT: making input and output field names match spec type names by @dr-orlovsky in #513
- Tagged hashes for taproot by @stevenroose in #259
- Improve
sighash_u32
handling by @dpc in #401 - Make signed message prefix a public constant by @stevenroose in #531
- PSBT types are now constants by @dr-orlovsky in #530
- Flush unrecognized network messages from the read buffer by @afilini in #529
- Add message::MAX_INV_SIZE constant by @stevenroose in #516
- network: Implement net::ToSocketAddrs for address messages by @stevenroose in #514
- New PSBT global keys by @dr-orlovsky in #499
- Make Inventory and NetworkMessage enums exhaustive by @stevenroose in #496
- PSBT proprietary key system matching BIP 174 by @dr-orlovsky in #471
- Derivation path improvements, closes #473 by @dr-orlovsky in #498
- Add BlockHeader tests by @0xB10C in #536
- Fix the PSBT JSON serialization, using serde-derive by @stevenroose in #508
- switch to github actions by @apoelstra in #544
- docs: fix quotes in Transaction#ntxid description by @maxgiraldo in #539
- refactor(blockdata/transaction): use nested paths by @maxgiraldo in #540
- script: add FromHex and FromStr implementations by @apoelstra in #537
- encode: add some more generic impls (more tuples, references) by @apoelstra in #548
- Fix service flags warning by @sanket1729 in #538
- Switch CI badge to GH actions by @sgeisler in #546
- PublicKey: add read_from method to be symmetric with write_into by @apoelstra in #542
- Bump to secp256k1 0.20 and don't enable
recovery
ofsecp256k1
in the dependency declaration by @thomaseizinger in #545 - Change the signature of consensus_encode to return io::Error's by @stevenroose in #494
- bump version to 0.26 by @apoelstra in #533
- Make uint types (un)serializable by @shesek in #511
- Add function to check RBF-ness of transactions by @sgeisler in #565
- Add Script:dust_value() to get minimum output value for a spk by @TheBlueMatt in #566
- Return BlockHash from BlockHeader::validate_pow by @jkczyz in #572
- Change Amount Debug impl to BTC with 8 decimals by @stevenroose in #414
- More derives for key::Error by @dr-orlovsky in #551
- SigHashType: add a method to error on non-standard hashtypes by @darosior in #573
- Improving bip32 ChildNumber display implementation by @dr-orlovsky in #567
- PSBT base64 (de)serialization with Display & FromStr by @dr-orlovsky in #557
- Include proprietary key in deserialized PSBT by @RCasatta in #577
- Fix Optional Amount Serialization by @JeremyRubin in #552
- Make Script::fmt_asm a static method and add Script::str_asm by @stevenroose in #569
- Don't fail CI if base image's apt db is outdated by @sgeisler in #583
- doc: correct Transaction struct encode_signing_data_to doc comment by @collinsmuriuki in #582
- Non-API breaking derives for error & transaction types by @dr-orlovsky in #558
- fix warnings for sighashtype by @sanket1729 in #586
- Non-API breaking introduction of Schnorr keys by @dr-orlovsky in #589
- Count bytes read in encoding by @RCasatta in #594
- Fixes documentation intra-links and enforce it by @RCasatta in #600
- Add verify_with_flags to Script and Transaction by @RCasatta in #598
- Constructors for compressed and uncompressed ECDSA keys by @dr-orlovsky in #592
- Fix Script::dust_value()'s calculation for non-P2*PKH script_pubkeys by @TheBlueMatt in #579
- Address to optimized QR string by @RCasatta in #581
- Fixing hashes core dependency and fuzz feature by @dr-orlovsky in #602
- Fix/error derives 2 by @dr-orlovsky in #559
- Introduce some policy constants from Bitcoin Core by @darosior in #584
- Fix bip158 example formatting by @romanz in #606
- Bump version to 0.26.1 by @dr-orlovsky in #607
- Update IRC info to libera.chat by @afilini in #610
- Fix release 0.26.2 by @sgeisler in #611
- std -> core by @devrandom in #614
- Errors enum improvements by @RCasatta in #521
- Use
Amount
type for dust value calculation by @sgeisler in #616 - Bech32m adoption by @dr-orlovsky in #601
- no_std support, keeping MSRV by @devrandom in #603
- Bigendian fixes and CI test by @RCasatta in #627
- Bump version to 0.27.0 by @RCasatta in #631
- Removed fuzztarget feature by @Kixunil in #634
- fix changelog date by @RCasatta in #640
- Script serialization/deserialization in serde non-human-readable format by @RCasatta in #596
- use Amount type in verify by @RCasatta in #621
- Implement possible_networks function for Address by @elsirion in #618
- Use consts for address prefix values by @tcharding in #632
- Fix documentation referencing macro var by @RCasatta in #623
- WitnessVersion type by @dr-orlovsky in #617
- Improvements to Error types (part 4) by @dr-orlovsky in #625
- Implement
Block.get_strippedsize()
andTransaction.get_vsize()
by @visvirial in #626 - Implement
Sum
for amount types by @sgeisler in #615 - Fixing no_std for Amount sum iterator by @dr-orlovsky in #651
- Add Bloom filter network messages by @benthecarman in #580
- Document cargo features by @Kixunil in #633
- Adds Taproot BIP341 signature message and create a unified sighash cache for legacy, segwit and taproot inputs by @RCasatta in #628
- Changes for checking script size and returning Result<Address, Error> for p2sh by @vss96 in #655
- Check for overflow in Script::bytes_to_asm_fmt() by @Kixunil in #658
- Add i686 to tested architectures by @Kixunil in #659
- Document lack of support for 16-bit pointers by @Kixunil in #663
- Add OP_CHECKSIGADD and OP_SUCCESSxxx by @sanket1729 in #644
- Taproot P2TR address by @dr-orlovsky in #563
- Fix
Uint256::increment
panics by @TheBlueMatt in #612 - Improve Fuzz CI by @RCasatta in #664
- Refactor Script::bytes_to_asm_fmt to use iterator by @Kixunil in #662
- Add taproot data structures by @sanket1729 in #677
- P2TR address from untweaked key by @nlanson in #691
- no-std cleanup by @devrandom in #637
- Making globals part of PSBT struct. Closes #652 by @dr-orlovsky in #654
- util/address: remove unused generic type by @benma in #698
- Clean up module level rustdocs by @tcharding in #689
- tests: improve coverage for P2tr and AddressType by @LeoComandini in #683
- Return the correct
LeafVersion
when building a TaprootControlBlock
by @afilini in #703 - Add unit test for bitcoin_merkle_root functions by @tcharding in #711
- P2tr fixes by @sanket1729 in #707
- util/address: Improve docs by @tcharding in #704
- Huffman Bug Fix by @JeremyRubin in #699
- Huffman Encoding Bug Test by @JeremyRubin in #700
- Use expect instead of unwrap for calls to consensus_encode by @tcharding in #719
- Use TapTweakHash::from_key_and_tweak() method in computing tweak for UntweakedPublicKey by @nlanson in #697
- Hotfix for secp256k1 alloc feature by @dr-orlovsky in #694
- Super-trivial: Implement
FusedIterator
forInstructions
by @Kixunil in #733 - Decrease Huffman Weights to u32 by @JeremyRubin in #701
- Use un/tweaked public key types by @tcharding in #728
- Improvements to script methods related to Taproot by @dr-orlovsky in #721
- add helpful message to division-by-zero panic by @6293 in #743
- util/address: make address encoding more modular by @benma in #643
- Separate signature hash types by @sanket1729 in #702
- add MAX_MONEY public constant to Amount by @6293 in #742
- Refactor bitcoin_merkle_root functions by @tcharding in #710
- BIP341 test vectors by @sanket1729 in #695
- Fixed a bunch of clippy lints, added clippy.toml by @Kixunil in #686
- Re-export SigHashType in lib.rs by @sanket1729 in #749
- Fixed docs.rs metadata by @Kixunil in #744
- Improve parsing of
Denomination
string by @tcharding in #731 - transactions: add a note about
get_vsize
and standardness rules by @darosior in #665 - Allow specifing a raw
TapLeafHash
in sighash computation by @afilini in #722 - New Witness struct to improve ser/de perfomance by @RCasatta in #672
- Add support for taproot psbt fields BIP 371 by @sanket1729 in #681
- Tapsighash test vectors by @sanket1729 in #705
- Deprecate
StreamReader
by @RCasatta in #680 - Put rustdocs above attributes by @tcharding in #753
- Update to secp256k1 0.21.2 by @sanket1729 in #755
- Use
test_data
for big objects, add big block for benchmarking by @RCasatta in #750 - PSBT: partial sig data type by @dr-orlovsky in #669
- Converting LeafVersion into an enum by @dr-orlovsky in #718
- Taproot: BIP32 extended keys using Scep256k1 keys instead of bitcoin ECDSA by @dr-orlovsky in #590
- Taproot trivial post-merge fixups by @dr-orlovsky in #761
- wrap u8 and LeafVersion in backticks and square bracket in doc by @bruteforcecat in #766
- improve example: take hex-encoded seed instead of WIF in bip32 example by @bruteforcecat in #760
- PSBT BIP32 keys using to Secp256k1 keys instead of bitcoin ECDSA by @dr-orlovsky in #591
- Rename inner key field in PrivateKey and PublicKey by @dr-orlovsky in #762
- Add Witness::new() by @sanket1729 in #771
- Change type of final script witness to Witness from Vec<Vec> by @sanket1729 in #774
- Taproot tweaks generalization & KeyPair support by @dr-orlovsky in #696
- Issue #394 - Refactor Block::merkle_root() by @nilswloewen in #775
- Fixups for taproot improvements by @dr-orlovsky in #778
- Introduce PsbtSigHashType by @sanket1729 in #779
- add nano and pico BTC to Denomination enum by @bruteforcecat in #768
- replace unncessary closure with function pointer in FromStr::from_str for Deonomation by @bruteforcecat in #784
- Minimally-invasive separation of bitcoin keys from ECDSA signature types by @dr-orlovsky in #757
- Make Map trait private by @tcharding in #752
- Change EcdsaSig hash type deser in psbt by @sanket1729 in #776
- Remove trailing spaces from 'address.rs' by @romanz in #791
- Contributing.md by @dr-orlovsky in #587
- Fix unused arg in PSBT impl_psbt_get_pair macro by @dr-orlovsky in #786
- Release v0.28 RC1 by @dr-orlovsky in #789
- Add new maintainers by @tcharding in #795
- Refactor use map_err by @wim-web in #794
- Re-export psbt module from root level by @tcharding in #790
- Use 4 character indentation by @tcharding in #799
- Remove Sebastian from maintainers list by @tcharding in #797
- Subsidy halving interval by @casey in #802
- Use fn name to_ instead of into_ by @tcharding in #800
- Add a disabled rustfmt.toml by @tcharding in #803
- Use write_all instead of write by @RCasatta in #809
- Refactor logical operators by @tcharding in #808
- fix: Throw Error on unsuported addresses in
is_signed_by_address()
by @Shatnerz in #819 - Bug: Change type of pbst partial sig from secp key to bitcoin key by @sanket1729 in #836
- Change Prevouts::All(&[TxOut]) to Prevouts::All(&[&TxOut]) by @sanket1729 in #835
- Allow contributors to easily run CI locally with
act
by @Shatnerz in #833 - Don't allow uncompressed public keys without prefix 0x04 by @nlanson in #829
- Tempararily pin fuzzer on rust 1.58 by @sanket1729 in #848
- Add a method to psbt to compute find sighash type by @rish-singhal in #847
- Separate out merge method into public trait by @tcharding in #842
- Change the parameter for control block verification by @sanket1729 in #845
- Improve rustdocs for *_hash_ty methods by @tcharding in #852
- Use correct opcode count by @tcharding in #868
- Update secp256k1 dependency by @tcharding in #875
- Improve docs: script module by @tcharding in #869
- Cleanup transaction docs by @tcharding in #865
- Cleanup block module by @tcharding in #864
- Build the docs with test.sh by @tcharding in #858
- Cleanup opcodes module by @tcharding in #867
- Trivial: Order impl_hashencode lines by @tcharding in #863
- Flatten the policy module by @tcharding in #862
- test: Add a test for incorrect message signature in
is_signed_by_address
by @Shatnerz in #825 - Delete contract hash module by @tcharding in #871
- Make Script::witness_version public by @dr-orlovsky in #876
- Use rustfmt to hint at clean ups for the codebase by @tcharding in #806
- Fix signature hash returned for sighash single bug by @tcharding in #860
- Improve ClassifyContext rustdocs by @tcharding in #877
- Use conventional spacing for default type parameters by @tcharding in #880
- Remove get_ prefix by @tcharding in #861
- Rust-Bitcoin Logo by @cryptoquick in #891
- Remove impl_index_newtype macro by @tcharding in #805
- Improve
SchnorrSigHashType
by @tcharding in #903 - Remove feature gated enum variants by @tcharding in #881
- Check for SIGHASH_SINGLE bug in writer fn by @tcharding in #897
- Add serde to TweakedPublicKey by @JeremyRubin in #908
- Add Serialize/Deserialize for TaprootSpendInfo by @JeremyRubin in #907
- Re-work sighash type conversion methods by @tcharding in #796
- Remove deprecated method use for sighash conversion by @dr-orlovsky in #913
- TapTree iterator by @dr-orlovsky in #901
- Make NodeInfo API public by @sanket1729 in #910
- Make TaprootBuilder able to generate Huffman Tree by @JeremyRubin in #909
- Taproot Huffman tree builder u64->u32 fixes by @dr-orlovsky in #914
- feat: Add Address.is_related_to_*_key() by @Shatnerz in #839
- Make PsbtSigHashType use the same formatting as other *SigHashTypes by @dr-orlovsky in #898
- Adds derives to TweakedKeyPair by @dr-orlovsky in #916
- Release 0.28.0-rc.2 by @sanket1729 in #915
- Fix deprecated since version by @tcharding in #918
- Improve docs in taproot module by @tcharding in #912
- Require taproot tree depth argument always to be u8 by @dr-orlovsky in #925
- Taproot docs nits by @tcharding in #923
- Push key xonly by @mplsgrant in #920
- Rename SigHash to Sighash by @tcharding in #917
- Remove redundant code computing tap hashes by @dr-orlovsky in #926
- Derive Eq for PSBT types by @dr-orlovsky in #932
- Allow deprecated function call by @tcharding in #938
- Fix TapTree hidden branches bug by @dr-orlovsky in #929
- Improvements to taproot script iterator by @dr-orlovsky in #924
- Make TaprooBuilder::finalize able to return keyspend only by @JeremyRubin in #936
- Trivial improvements for TapTree type by @dr-orlovsky in #927
- Release 0.28.0 by @apoelstra in #944
- Add temporary warning about edition change by @Kixunil in #961
- Fix TapTree derserialization by @sanket1729 in #950
- fix: reject message (de)serialization by @0xB10C in #939
- Add PSBT alias by @tcharding in #951
- Add Script conversion method p2wpkh_script_code by @tcharding in #954
- Remove unnecessary
Write as _fmtWrite
by @tcharding in #965 - Remove 1.29 checks from CI pipeline by @tcharding in #964
- Clean up import aliases by @tcharding in #966
- util::amount: Make from_sat constructor constant by @stevenroose in #902
- API to find funding utxos in psbt by @violet360 in #853
- Update MSRV in clippy.toml by @Kixunil in #969
- Remove MSRV todo comments by @tcharding in #952
- Fix badges by @tcharding in #970
- BUG: Does not work with
no_std
under 1.29 (MSRV) by @mcroad in #690 - Disable Serde's default-features by @ass3rt in #905
- Use iterator in
blockdata::script::Instructions
by @Kixunil in #673 - Add
amount::Display
- make formatting configurable by @Kixunil in #716 - Remove irrelevant notes about version pinning by @Kixunil in #982
- Add method to push an ECDSA sig + sighash type byte on a witness by @TheBlueMatt in #989
- Remove dr-orlovsky from maintainer list by @tcharding in #992
- Edition 2018 by @tcharding in #983
- Make Address::get_payload_bytes public by @fmeringdal in #978
- Trival docs fixes by @tcharding in #960
- Remove sha256t_hash_newtype macro by @tcharding in #980
- Improve docs in
sighash
andpsbt/mod.rs
by @tcharding in #956 - Box value encoded in a variant to reduce enum stack space by @RCasatta in #996
- Implement
std::error::Error
for the new MSRV by @tcharding in #987 - Refactor address byte swapping by @tcharding in #968
- Do not pin transitive ryu dependency by @tcharding in #1013
- Match against an optional single trailing colon by @tcharding in #1010
- Add
consensus_decode_from_finite_reader
optimization by @dpc in #1023 - Clear Clippy warnings by @tcharding in #1004
- Audit conversion methods by @tcharding in #798
- Add non_exhaustive to all error enums by @tcharding in #1026
- Enforce segwit v0 script validity when creating address. by @nlanson in #1021
- Replace base64-compat dependency by @tcharding in #993
- Add chain hash type using consts by @tcharding in #878
- Feature
use-serde
renamed toserde
by @Kixunil in #1006 - Add more documentation to some core types by @dpc in #1018
- Improve error
Display
implementations by @tcharding in #1003 - refactor: remove SchnorrSignatureHash::Reserved variant by @Eunoia1729 in #1031
- Add non_exhaustive compiler directive to
AddressType
by @tcharding in #1011 - Remove network::Error by @tcharding in #1032
- Avoid allocation in build_scriptint by @stevenroose in #1033
- Document
Txid
being displayed backwards by @dpc in #1037 - Clear clippy warnings from
--all-targets
by @tcharding in #1043 - Modify from_script functions in address.rs to return result by @Eunoia1729 in #1038
- README: remove stale info about upcoming edition change by @dpc in #1034
- Removed edition change heads up from CONTRIBUTING by @Kixunil in #1048
- Fix incorrect argument passed to Error::InvalidSegwitV0ProgramLength and add test by @Eunoia1729 in #1039
- Add getter methods for PartialMerkleTree fields by @Eunoia1729 in #1051
- Refactor
serve_tcp
code by @tcharding in #1042 - Implement iter::size_hint and ExactSizeIterator for Witness Iter by @RCasatta in #1053
- Replace runtime size check with compile time check by @tcharding in #1000
- Move broken-intra-doc-link lint config to command line by @tcharding in #1059
- Enabe clippy on CI by @tcharding in #1061
- Expose SIGHASH_SINGLE bug in
encode_signing_data_to
by @dpc in #1024 - Remove duplicate
must_use
by @tcharding in #1063 - Make
opcode::to_u8
a const function by @TheBlueMatt in #1072 - Optimize
Witness
Serialization by @DanGould in #1071 - Implement TryFrom by @tcharding in #1007
- Take Writer/Reader by
&mut
in consensus en/decoding by @dpc in #1035 - Remove Uninhabited by @tcharding in #1075
- Use fragment-specifier literal by @tcharding in #1014
- Remove unused lifetimes by @tcharding in #1083
- Remove redundant compile_error by @junderw in #1085
- Use
to_hex
when available by @tcharding in #1081 - Introduce SPDX license identifiers by @tcharding in #1076
- Add custom error for invalid parsing of address types by @arturomf94 in #1091
- Upgrade to secp256k1 v0.23.0 by @tcharding in #1066
- Remove extern crate core statement by @tcharding in #1094
- Add PublicKey::to_sort_key method for use with sorting by key by @junderw in #1084
- Upgrade
bitcoin_hashes
dependency by @tcharding in #1065 - Implement std::error::Error for ParseAmount by @tcharding in #1049
- Document PSBT roles and limitation by @DanGould in #1100
- Derive Hash on a bunch of types by @tcharding in #990
- Create configuration conditional "bench" by @tcharding in #1092
- Add new type for sequence by @nlanson in #1093
- Implement human-readable serde for
Witness
by @tcharding in #1068 - Remove the Pay-to-Contract reference from README. by @sanket1729 in #1101
- Remove leading colons by @tcharding in #1001
- Add psbt watch-only/cold-storage example by @tcharding in #940
- Introduce rustfmt in a non-invasive manner by @tcharding in #1040
- Add cargo crev reminder to readme by @tcharding in #1098
- Run the formatter by @tcharding in #1107
- Upgrade to secp v0.24.0 by @tcharding in #1110
- Remove extern crates by @tcharding in #1041
- Use infallible conversions:
Hash
->secp256k1::Message
by @arturomf94 in #1118 - Use
listener.accept()
by @tcharding in #1119 - Add ci check for duplicate dependencies by @tcharding in #1114
- Use
u8::try_from
by @tcharding in #1121 - Add docs re Rust 1.51.1 by @tcharding in #1122
- Use
u16::to_be_bytes
by @tcharding in #1120 - Add BIP152 (Compact Blocks) structures by @0xB10C in #1088
- Run clippy from the test script by @tcharding in #1079
- Remove stale MSRV docs by @tcharding in #1126
- Add a
LockTime
type by @tcharding in #994 - Upgrade bech32 to version 0.9.0 by @tcharding in #1131
- Parse int error by @Kixunil in #1129
- Remove needless allocation from BIP-158 encoding by @Kixunil in #1146
- Impl string conversion traits for
CommandString
by @Kixunil in #1137 - Update finalize API by @sanket1729 in #1151
- Remove deprecated
StreamReader
by @Kixunil in #1144 - Fix public API clippy warnings by @tcharding in #1161
- Update bitcoinconsensus dependency by @tcharding in #1165
- Remove
MAX_SEQUENCE
constant by @tcharding in #1171 - Release tracking PR - v0.29.0 by @tcharding in #1109
- Pin
serde
to 1.0.142 by @Kixunil in #1178 - Clean up bip158 module by @tcharding in #1180
- Deprecate
Transaction
'ssignature_hash
/encode_signing_data_to
methods by @tcharding in #1166 - Remove old deprecated code by @tcharding in #1163
- Remove accidentally-exported internal macros by @Kixunil in #1177
- Fix clippy warnings by @tcharding in #1182
- Move
address
out ofutil
by @tcharding in #1170 - Do error cleanups by @tcharding in #1139
- Move sighash types to the sighash module by @tcharding in #1077
- Introduce new canonical license blurb by @tcharding in #1138
- Re-export blockdata modules by @tcharding in #1172
- [update] macro to implement Debug from Display and add Display implementation where needed by @hrouis in #1204
- Temporarily disable fuzzing in CI by @tcharding in #1200
- consensus::Params should be non_exhaustive by @hrouis in #1216
- Revert "Temporarily disable fuzzing" by @apoelstra in #1219
- Hex macros cleanup by @Kixunil in #1191
- Add multithreading for the pmt_tests execution by @hrouis in #1217
- Add relative lock time type by @tcharding in #1196
- Remove some easy todo's by @tcharding in #1227
- Correctly handle bicoinconsensus::Error by @tcharding in #1235
- Move bip158 module to crate root by @tcharding in #1211
- CI clean ups by @tcharding in #1238
- Use correct path for bip158 in rustdoc by @tcharding in #1246
- Add new type for block version by @nlanson in #1240
- BIP 34: Check last minimal encoding accoriding of heights by @sanket1729 in #1244
- Run cargo fmt by @tcharding in #1249
- Remove unused consensus encoding error variants by @Kixunil in #1252
- Impl std error using macro by @Kixunil in #1136
- implement
From<PublicKey>
forPubkeyHash
by @nlanson in #1248 - Simplify
PublicKey
serialization code by @Kixunil in #1250 - Add a comment to delineate test_macros re-export by @tcharding in #1255
- Use
Borrow
trait bound for bip158Iterator::Item
by @tcharding in #1183 - Introduce
bitcoin-internals
crate by @tcharding in #1239 - Implement basic support for fast hex encoding by @Kixunil in #1268
- Fix serde versions by @Kixunil in #1267
- Update docs on rustfmt by @tcharding in #1125
- Hex fixups by @Kixunil in #1269
- Redesign
hex::BufEncoder
to accept owned arrays by @Kixunil in #1273 - Fix deprecated v0.28.0 by @tcharding in #1276
- Add constants to
ChainHash
for eachNetwork
by @jkczyz in #1283 - Remove code deprecated last release by @tcharding in #1282
- Implement From for hash types by @nlanson in #1285
- Make
ChainHash::using_genesis_block
constant by @jkczyz in #1286 - Add fuzz test for PrefilledTransaction by @tcharding in #1279
- Remove
user_enum
macro by @tcharding in #1291 - Add API method
absolute::LockTime::is_satisfied_by_lock
by @tcharding in #1258 - internals: Run formatter by @tcharding in #1290
- Move bip32 module to crate root by @tcharding in #1208
- Try to fix up sighash export mess by @tcharding in #1277
- Move/re-name the
util::misc
module by @tcharding in #1259 - Fix clippy warnings by @tcharding in #1299
- New type network magic by @nlanson in #1288
AsMut
impls forMagic
by @nlanson in #1301- Add
Script::builder
convenience function by @casey in #1312 - Fix
test_data
dir exclusion by @RCasatta in #1315 - Add script to launch fuzzing continuosly by @RCasatta in #1309
- Add
Target
andWork
types by @tcharding in #1197 - Return custom error from
Network::from_str
by @nlanson in #1314 - Move bip152 module to crate root by @tcharding in #1210
- Add API to PSBT to enable signing inputs by @tcharding in #957
- add some comments to
Transaction::weight
by @apoelstra in #1331 - Move a bunch of stuff out of
internal_macros
by @tcharding in #1293 - Improve doc of
Script::push_verify
by @Kixunil in #1335 - Remove usage of
opcodes::all
by @tcharding in #1295 - Implement PartiallySignedTransaction::fee by @hashmap in #1338
- ci: Remove serde version pinning by @tcharding in #1341
- Move sighash module to crate root by @tcharding in #1340
- examples: Add taproot PSBT example workflow by @dunxen in #999
- Re-export base64 when enabled by @afilini in #1342
- Fix broken build due to conflict between #1340 and #999 by @apoelstra in #1345
- Add psbt BIP174 test vectors tests by @DanGould in #935
- Remove the endian module by @tcharding in #1223
- Add
impl IntoIterator for &'_ Witness
by @Kixunil in #1354 - Add a CHANGELOG entry for 0.28.2 by @TheBlueMatt in #1361
- Add a test parsing transaction with a huge witness by @Kixunil in #1359
- Do clippy improvements by @tcharding in #1367
- Rename
hash
module tomerkle_root
by @tcharding in #1334 - Move amount module out of util by @tcharding in #1333
- Fix
no_std
whenbitcoinconsensus
is enabled by @Kixunil in #1344 - Re-export hashbrown when enabled by @tcharding in #1348
- Remove
into_bytes
fromimpl_array_newtype
by @tcharding in #1349 - Improve documentation on the
all
module by @tcharding in #1339 - Improve block version by @tcharding in #1351
- [blockdata::Witness] New Features: Index, nth(index), and get_tapscript by @junderw in #1323
- Witness: Fix nits from PR 1323 by @junderw in #1375
- Make Instruction Copy by @casey in #1376
- Remove deprecated re-exports by @tcharding in #1332
- Clean up the
base58
module by @tcharding in #1264 - Minor improvements to Witness::get_tapscript commit by @sanket1729 in #1381
Witness
API improvements by @nlanson in #1380- Move
merkleblock
intomerkle_tree
by @tcharding in #1374 Witness
conversion trait implementations by @nlanson in #1391- Format the
merkle_tree
module by @tcharding in #1394 - Start to flatten
util
by @tcharding in #1169 - Import bitcoin hashes by @tcharding in #1284
- Enable formating of the
network
module by @tcharding in #1353 - Drop Network arg from max_money() by @ariard in #1399
- Check for rustdocs build warnings in CI by @tcharding in #1404
- Add Network::to_core_arg() method by @connormullett in #1397
- Fix typo in the SHA512 documentation by @kcalvinalvin in #1407
- amount: use Kani to prove some arithmetic properties by @apoelstra in #1415
- Add rand feature flag to the example documentation by @yancyribbens in #1416
- Create
crypto
module by @tcharding in #1260 - Move the taproot module to crate root by @tcharding in #1373
- Implement
Script::p2pk_public_key(&self) -> Option<PublicKey>
by @connormullett in #1412 - Move
base58
to the crate root by @tcharding in #1417 - Serde regression tests by @tcharding in #724
- Hotfix: Fix broken serde by @sanket1729 in #1432
- Remove no_run by @tcharding in #1430
- Change
max_money
to a constant. by @Kixunil in #1410 - Add log2 to Work by @jirijakes in #1437
- Consensus encoding based serialization by @Kixunil in #1254
- Do some rustdoc cleanups by @tcharding in #1357
- Serde derive in tests by @Kixunil in #1234
- Adds Network::from_core_arg and links it to Network::from_str by @sr-gi in #1428
- Add trait
FromStrHex
for tuple structs with singleu32
member by @connormullett in #1400 - hashes: Do not implement
Deref
by @tcharding in #1450 - Remove
PackedLockTime
in favor ofabsolute::LockTime
by @apoelstra in #1330 - Implemented unsized
Script
by @Kixunil in #1155 - Add weight utilities to
TxIn
andTxOut
by @danielabrozzoni in #1467 - Run clippy in ci for
hashes
by @tcharding in #1419 - add some documentation clarifying the locktime ordering shenanigans in #1330 by @apoelstra in #1475
- Mention Script::is_v1_p2tr above Witness::tapscript by @casey in #1483
- Fix typos in docs by @danielabrozzoni in #1486
- Patch hashes and update the code by @Kixunil in #1477
- Add
tapscript_leaf_hash()
toScript
by @jirijakes in #1485 - upgrade secp256k1 to 0.25.0 by @delta1 in #1493
- Add
from_bytes(Vec<u8>)
toScriptBuf
by @Kixunil in #1499 - Introduce mutation testing by @tcharding in #1495
- Fix bug in
ScriptBuf::extend
for short iterators by @Kixunil in #1502 - Make
Witness::tapscript()
returnScript
instead of raw bytes by @jirijakes in #1512 - Use cargo install cross
--locked
by @tcharding in #1508 - Use dtonlnay instead of actions-rs by @tcharding in #1509
- Allow dead_code/unused_imports when fuzzing by @tcharding in #1420
- Run kani daily on a schedule by @tcharding in #1511
- hashes: ci: Remove --all by @tcharding in #1468
- Document test frameworks by @tcharding in #1507
- Verify and fix the
U256::mul_u64
method by @tcharding in #1496 - Add mutation testing to the
locktime
module by @tcharding in #1513 - Fix wrong newtype APIs by @Kixunil in #1503
- Add rand-std feature by @tcharding in #1387
- Use hex from internals rather than hashes by @Kixunil in #1476
- Add sha512_256 to bitcoin_hashes by @kcalvinalvin in #1413
- Change
#[cfg(docsrs)]
to#[cfg(doc)]
onuse
by @Kixunil in #1504 - Replace
Vec::from_hex
withhex!
by @Kixunil in #1438 - Replace consensus
Encodable
/Decodable
Psbt Serialization by @DanGould in #988 - Make space optional in amount with denomination by @casey in #1521
- [WIP] 1514: fix formatting in opcodes by @td-bn in #1528
- Rename
push_scriptint
and make it private by @Kixunil in #1527 - Fix LeafVersion serde by @sanket1729 in #1523
- Remove
ToHex
by @Kixunil in #1531 - Unify
TapLeafHash
andTapBranchHash
intoTapNodeHash
while tree construction by @sanket1729 in #1479 - A crash course in rust perf (#988 nits) by @DanGould in #1538
- Use marker type to enforce validation of
Address
's network by @jirijakes in #1489 - Add CI script for the
internals
crate by @tcharding in #1545 - Add more mutation testing to the
pow
module by @tcharding in #1510 - Add a rustdoc test to Denomination by @tcharding in #1539
- Export the DisplayHex trait from within prelude by @tcharding in #1537
- Fix ASAN in CI by @tcharding in #1566
- bip158: Replace usage of HashSet with BTreeSet by @tcharding in #1576
- Implement
Debug
for genericAddress<V: NetworkValidation>
by @jirijakes in #1578 - amount parses 0 msats by @td-bn in #1544
- Address validity invariant cleanups by @sanket1729 in #1564
- Improve Psbt error handling by @DanGould in #1532
- Use
sha256d::Hash
type for sighash encoding by @tcharding in #1567 - Take
Into<secp256k1::PublicKey>
in PublicKey constructors by @tcharding in #1582 - Delegate debug for ScriptBuf to Script by @tcharding in #1580
- Add documentation to
Sequence::is_final
by @tcharding in #1575 - Remove
hashes::hex::HexWriter
by @tcharding in #1572 - Improve downflow of information in
psbt::Error
by @arturomf94 in #1591 - Remove unnecessary lifetime by @tcharding in #1594
- Add standard constants to lock times by @tcharding in #1574
- Add new hex parse error variant by @tcharding in #1584
- Make max/min_value functions const by @tcharding in #1603
- Implement fmt traits for ScriptBuf by @tcharding in #1596
- Add conversions for
TweakedKeyPair
->TweakedPublicKey
by @tcharding in #1583 - Reduce usage of
FromHex
by @tcharding in #1565 - Associate io, encode errors with psbt::Error by @DanGould in #1609
- Add newline in rustdoc by @tcharding in #1618
- Do not export unusual hash types at crate root by @tcharding in #1617
- Set
rustv_1_53
in build script by @tcharding in #1608 - Add KeyPair import to rustdoc example by @tcharding in #1610
- Implement from arrays for
TaprootMerkleBranch
by @tcharding in #1613 - Improve
SighashCache
API by @Kixunil in #1625 - Improve
sighash
module documentation by @Kixunil in #1624 - Add '_ back into the BitStreamWriter by @tcharding in #1601
- Instruct devs to use nightly for embedded by @tcharding in #1611
- Rename
from_slice
methods todecode
by @tcharding in #1621 - Refactor script module by @tcharding in #1600
- Add
Weight
andFeeRate
newtypes by @Kixunil in #1627 - Refactor
merkle_tree::block
by @tcharding in #1388 - Clean up the manifest files of top level crates by @tcharding in #1612
- Add methods for pushing locktimes by @tcharding in #1629
- Deprecate
script::read_uint
by @tcharding in #1559 - Improve test coverage for docs build by @tcharding in #1505
- Add
From<Address>
forScriptBuf
by @tcharding in #1592 - Use ignore to stop rustdoc code from being built by @tcharding in #1581
- Fix license on bip158 module by @tcharding in #1579
- Add
minimal_non_dust
toTxOut
by @Kixunil in #1642 - Weight prediction by @Kixunil in #1636
- hashes: Improve feature gating by @tcharding in #1570
- Flatten the types directory by @tcharding in #1644
- Remove FromStr impl from ScriptBuf by @tcharding in #1646
- pow: Remove Mul/Div by arbitrary integer types by @tcharding in #1643
- Move deny lint checks to script by @Harshil-Jani in #1641
psbt
cleanup by @tcharding in #1605- Fix absolute lock time examples and tests by @tcharding in #1647
- hashes: Implement AsRef for fixed size arrays by @tcharding in #1593
- ci: Remove incorrect code comment and cargo clean by @tcharding in #1569
- Remove the rustfmt required_version config option by @tcharding in #1602
- Added a newtype for script-pushable slice by @Kixunil in #1190
- Move sighash types around by @tcharding in #1597
- Get rid of BadFormat error by @hashmap in #1651
- Clarify the intention of strange condition by @Kixunil in #1652
- Changing docs and examples to use correct function signature by @lorenzolfm in #1658
- Do trivial manifest cleanup by @tcharding in #1654
- Show cache construction in rustdoc by @tcharding in #1653
- Pin syn dependency for MSRV toolchain by @tcharding in #1664
- Make
hash_newtype
evocative of the output by @Kixunil in #1659 - Create Address::matches_script_pubkey method by @hashmap in #1663
- Accept borrowed values in InputWeightPrediction::new() by @Harshil-Jani in #1672
- Improve string parsing by @tcharding in #1623
- Reexport
Magic
by @Kixunil in #1674 - Fix docs for UnknownMagic to be accurate by @benthecarman in #1676
- Re-name hash inner/byte methods by @tcharding in #1577
- Add utils to convert ChainHash to a Network by @benthecarman in #1675
hash_newtype
cleanup by @Kixunil in #1670- Add constant for coinbase maturity by @benthecarman in #1679
- Improve the public API by @tcharding in #1678
- Include address in Error::NetworkValidation by @Subhra264 in #1682
- Improve the public API for Feerate and Weight by @yancyribbens in #1685
- Implement support for Hidden nodes in taproot trees and Fix taproot serde bugs by @sanket1729 in #1533
- Run cargo fmt in CI by @tcharding in #1111
- fix clippy lint by @apoelstra in #1695
- Add constants to
InputWeightPrediction
by @Kixunil in #1692 - Add tests for the FeeRate type by @yancyribbens in #1690
- release bitcoin_hashes 0.12 by @apoelstra in #1694
- Fix weight subtract bug by @yancyribbens in #1701
- Add tests to Weight type by @yancyribbens in #1704
- Fix CI builds where default features are added accidentally by @stevenroose in #1708
- Add a method to
pow::Target
for returning difficulty as an f64. by @junderw in #1707 - update internals CHANGELOG for release by @apoelstra in #1700
- Improve QR code formatting documentation by @Kixunil in #1709
- Avoid usage of atomic types if not supported by the target arch by @bigspider in #1705
- Add README docs for proper use of std and no-std features by @notmandatory in #1711
- Swap out
Work::log2
implementation forU256::to_f64
by @junderw in #1713 - Support weight prediction in
const
context by @Kixunil in #1710 - update rust-secp to 0.27.0 by @apoelstra in #1714
- Add CentiBitcoin to denominations by @yancyribbens in #1715
- Feature: Add difficulty_float method for block::Header. by @junderw in #1720
- Remove extern crate hashbrown by @tcharding in #1717
- Mark
Denomination
asnon_exhaustive
by @Kixunil in #1721 - Update testing section by @tcharding in #1719
- Release tracking PR - v0.30.0 by @tcharding in #1699
- bitcoin: Fix path to the readme by @tcharding in #1723
- Format the
rust-bitcoin
crate by @tcharding in #1434 - Run cargo +nightly rustfmt by @tcharding in #1728
- CI: Prevent duplicate CI runs by @junderw in #1733
- remove Lines of Code badge by @Harshil-Jani in #1734
- Add kilo weight unit conversion by @yancyribbens in #1735
- Bump MSRV to 1.48.0 by @tcharding in #1729
- ci: do dry-run releases in CI by @apoelstra in #1725
- Use shorter imports by @tcharding in #1730
- add SECURITY.md by @apoelstra in #1737
- create a set of recognized denomination forms by @yancyribbens in #1740
- Add
ChainHash::from_genesis_block_hash
by @Kixunil in #1753 - [Docs] Update internal project link to changelog by @harding in #1759
- Add implementation of PartialEq trait for Address with NetworkUnchecked by @Harshil-Jani in #1757
- Feature (hashes): Add from_bytes_ref and from_bytes_mut to all Hash types by @junderw in #1761
- Use doc_auto_cfg by @tcharding in #1763
- Add per crate release notes link by @tcharding in #1760
- Update clippy MSRV configuration by @Kixunil in #1774
- Implement computing SHA256 in const context by @Kixunil in #1769
- Use slice patterns by @Kixunil in #1771
- Make
sha256t_hash_newtype!
evocative of the output. by @Kixunil in #1773 - unsafe address type conversions by @Harshil-Jani in #1765
- Use package in manifest and shorten import by @tcharding in #1742
- hashes: Derive traits on the sha512::Hash type by @tcharding in #1781
- CI: Only run release job for release PRs by @tcharding in #1758
- ci: Check for remaining NEXT_RELEASE in the release script by @stevenroose in #1791
- Add Inventory::network_hash() method by @stevenroose in #515
- Add predict_weight test for witness address types by @yancyribbens in #1797
- Remove
schemars
pin from manifest by @tcharding in #1696 - extended_tests: Remove stale docs by @tcharding in #1804
- transaction: Rename is_coin_base to is_coinbase by @stevenroose in #1796
- Spelling and typo fixes by @yancyribbens in #1810
- embedded: Remove error handler by @tcharding in #1814
- Fix policy link by @petertodd in #1815
- Overhaul fuzzing by @apoelstra in #1732
- Hardcode expected weight in txin_txout_weight_tests by @petertodd in #1817
- Move weight constants in the
Weight
type by @RCasatta in #1826 - Simplify per-file license comments by @tcharding in #1825
- Adds as_core_arg serde module to network by @sr-gi in #1801
- fuzz: replace
cfg(fuzzing)
wethcfg(bitcoin-hashes-fuzz)
. by @apoelstra in #1821 - Test with minimal dependency versions by @tcharding in #1764
- Remove
min_value
andmax_value
by @tcharding in #1829 - Improve README by @tcharding in #1736
- Implement serde::Serialize for Address by @stevenroose in #1785
- Use Amount type for TxOut value field by @yancyribbens in #1811
- Comment predict_weight by @yancyribbens in #1793
- Expose valid (min, max) difficulty transition thresholds by @wpaulino in #1820
- feat: generate PrivateKey by @kshitjj in #1837
- docs: Add doc comments for external crates by @yancyribbens in #1841
- Move and rename TxOut default trait to a const called NULL by @yancyribbens in #1838
- ci: fix -run syntax by @apoelstra in #1842
- Allow parsing sub-sat denominations with decimal points by @Kixunil in #1768
- make bip21 schema lowercase by @RCasatta in #1844
- Fix formatting by @Kixunil in #1848
- Fix associated constants of
InputWeightPrediction
by @Kixunil in #1835 - Add changelog entry for removal of
FromHex
by @tcharding in #1861 - Add a checked version of weight mul fee_rate by @yancyribbens in #1864
- tests: Use script hash functions by @tcharding in #1857
- rename bitcoin-private to bitcoin-internals by @apoelstra in #1885
- embedded: Document how to clean up linker flags by @tcharding in #1879
- Fix conditional configuration options usage by @tcharding in #1871
- Add
ValidationError
by @tcharding in #1874 - hashes: Fix stale repository name by @tcharding in #1876
- made ckd_priv function private and impl AsRef for ChildNumber by @startup-dreamer in #1882
- Improve
hashes::Error
by @tcharding in #1873 - psbt: Remove reexport of Prevouts by @tcharding in #1872
- Remove doc(hidden) from error conversion functions by @tcharding in #1887
- Rename
TaprootSpendInfo::as_script_map
toscript_map
by @tcharding in #1897 - [script] Add method count_sigops by @junderw in #1890
- Improve
crytpo::taproot
error type by @tcharding in #1895 - Fix comments for #1890 by @junderw in #1898
- network: Implement Default on ServiceFlags by @stevenroose in #1900
- Removed only available in 1.46.0 line by @roy9495 in #1863
alloc
-free parse errors by @Kixunil in #1297- This library is not solely dependent on Rust by @roy9495 in #1904
- key: Implement From for XOnlyPublicKey by @stevenroose in #1901
- Add from_int_btc method to Amount by @yancyribbens in #1870
- hashes: Remove stale status badge by @tcharding in #1877
- Mutate mul_u64 with mutagen by @tcharding in #1739
- ci: Remove stale DO_ALLOC_TESTS variable by @tcharding in #1878
- Fix incorrect comment in ci script by @tcharding in #1915
- Make sha512::HashEngine fields private by @tcharding in #1910
- Add a verify function to PublicKey by @tcharding in #1911
- Added examples for signature verification by @panicfarm in #1776
- Refactor transaction weight by @yancyribbens in #1926
- update proc-macro to 1.0.56 to 1.0.63 by @apoelstra in #1927
- CI: Pin serde_json for MSRV build by @tcharding in #1934
- Move witness types to the script module by @tcharding in #1846
- Manually implement Debug on Witness by @tcharding in #1913
- Use hex_lit::hex in benches by @tcharding in #1941
- Remove docsrs attributes by @tcharding in #1940
- internals: Bump version to 0.2.0 by @tcharding in #1916
- Rename PartiallySignedTransaction to Psbt by @tcharding in #1938
- Rename
Script::empty
toScript::new
by @tcharding in #1925 - witness: clean up Debug implementation by @apoelstra in #1942
- bitcoin/bip32: add DerivationPath::to_u32_vec by @benma in #1946
- Infrastructure fixes by @tcharding in #1935
- key: Impl Fromsecp256k1::PublicKey for bitcoin::PublicKey by @stevenroose in #1949
- Rename
HashParse
error variant toInvalidHash
by @tcharding in #1888 - Separate out bitcoinconsensus validation code by @tcharding in #1912
- Avoid vector allocation in
RawNetworkMessage
encoding by @RCasatta in #1954 - Fill in deprecated since NEXT-RELEASE placeholder by @tcharding in #1958
- Use new
hex-conservative
crate by @tcharding in #1833 - script: Move some inspector methods from ScriptBuf to Script by @stevenroose in #1964
- policy: Add refactor carve out by @tcharding in #1945
- Rename
network
module and move/clean up types by @tcharding in #1854 - crypto: Overhaul the errors by @tcharding in #1862
- Return Weight in the TxIn/TxOut weight() methods by @danielabrozzoni in #1970
- Remove deprecated code by @tcharding in #1957
- Move type definitions of pubkey/script hash types by @tcharding in #1914
- Fix links in docs by @tcharding in #1933
- Add absolute fee rate convenience functions to
FeeRate
by @tcharding in #1947 - Add max standard tx weight constant to transaction by @yancyribbens in #1968
- Update what deps to pin by @yancyribbens in #1977
- Add CI test for pinned versions using 1.48 by @yancyribbens in #1982
- Rename
opcodes::All
toOpcode
by @tcharding in #1955 - Eliminate a heap allocation from PartialMerkleTree encoding & decoding by @stevenroose in #1991
- Expose XOnlyPublicKey in crate root by @sanket1729 in #1744
- Add simd sha256 intrinsics for x86 machines by @sanket1729 in #1962
- Introduce the
small-hash
feature forbitcoin_hashes
by @afilini in #1990 - Add txin base weight by @yancyribbens in #2001
- Improve segwit signature hash API by @tcharding in #1995
- Remove usage of ThirtyTwoByteHash by @tcharding in #1998
- Add VarInt from implementations by way of macro by @tcharding in #2024
- Add a script for updating lock files by @tcharding in #2012
- hashes: Release
v0.13.0
by @tcharding in #1917 - Export all hash types by @tcharding in #1988
- Fix clippy warnings by @tcharding in #2029
- Rename xpub and xpriv types by @tcharding in #2019
- psbt: Add IndexOutOfBounds error by @tcharding in #2004
- Add version bytes consts by @tcharding in #2020
- Wrap the
bitcoinconsensus
error by @tcharding in #1978 - Use weight type for stripped_size by @yancyribbens in #2010
- Fix witness display bug by @tcharding in #1999
- CI: Fx pinning by @tcharding in #2036
- Update base64 usage to 0.21.3 by @junderw in #2032
- Introduce a basic justfile by @tcharding in #2018
- Improve witness display by @tcharding in #2035
- Use weight for block size function by @yancyribbens in #2040
New Contributors
- @serprex made their first contribution in #14
- @rotwatsb made their first contribution in #18
- @chritchens made their first contribution in #22
- @daniellockyer made their first contribution in #25
- @alekseysidorov made their first contribution in #29
- @TheBlueMatt made their first contribution in #45
- @tamasblummer made their first contribution in #40
- @romanz made their first contribution in #74
- @popzxc made their first contribution in #82
- @petertodd made their first contribution in #87
- @sgeisler made their first contribution in #100
- @dongcarl made their first contribution in #109
- @savil made their first contribution in #107
- @jeandudey made their first contribution in #121
- @dpc made their first contribution in #120
- @D4nte made their first contribution in #110
- @stevenroose made their first contribution in #159
- @thomaseizinger made their first contribution in #168
- @evgeniy-scherbina made their first contribution in #169
- @jeffbarg made their first contribution in #174
- @shesek made their first contribution in #189
- @ariard made their first contribution in #205
- @rex4539 made their first contribution in #224
- @dr-orlovsky made their first contribution in #231
- @jonasnick made their first contribution in #276
- @erasmospunk made their first contribution in #268
- @Aleru made their first contribution in #304
- @practicalswift made their first contribution in #303
- @elichai made their first contribution in #307
- @real-or-random made their first contribution in #312
- @ccdle12 made their first contribution in #341
- @kiminuo made their first contribution in #360
- @5o50 made their first contribution in #367
- @instagibbs made their first contribution in #392
- @wbnns made their first contribution in #378
- @tnull made their first contribution in #411
- @canndrew made their first contribution in #375
- @jrawsthorne made their first contribution in #424
- @twchn made their first contribution in #432
- @cloudhead made their first contribution in #429
- @braydonf made their first contribution in #458
- @ipaljak-tbtl made their first contribution in #485
- @rikitau made their first contribution in #502
- @kallewoof made their first contribution in #291
- @afilini made their first contribution in #529
- @0xB10C made their first contribution in #536
- @maxgiraldo made their first contribution in #539
- @jkczyz made their first contribution in #572
- @darosior made their first contribution in #573
- @JeremyRubin made their first contribution in #552
- @collinsmuriuki made their first contribution in #582
- @devrandom made their first contribution in #614
- @Kixunil made their first contribution in #634
- @elsirion made their first contribution in #618
- @visvirial made their first contribution in #626
- @benthecarman made their first contribution in #580
- @vss96 made their first contribution in #655
- @nlanson made their first contribution in #691
- @benma made their first contribution in #698
- @LeoComandini made their first contribution in #683
- @6293 made their first contribution in #743
- @bruteforcecat made their first contribution in #766
- @nilswloewen made their first contribution in #775
- @wim-web made their first contribution in #794
- @casey made their first contribution in #802
- @Shatnerz made their first contribution in #819
- @rish-singhal made their first contribution in #847
- @cryptoquick made their first contribution in #891
- @mplsgrant made their first contribution in #920
- @violet360 made their first contribution in #853
- @mcroad made their first contribution in #690
- @ass3rt made their first contribution in #905
- @fmeringdal made their first contribution in #978
- @Eunoia1729 made their first contribution in #1031
- @DanGould made their first contribution in #1071
- @arturomf94 made their first contribution in #1091
- @hrouis made their first contribution in #1204
- @hashmap made their first contribution in #1338
- @dunxen made their first contribution in #999
- @connormullett made their first contribution in #1397
- @kcalvinalvin made their first contribution in #1407
- @yancyribbens made their first contribution in #1416
- @jirijakes made their first contribution in #1437
- @sr-gi made their first contribution in #1428
- @danielabrozzoni made their first contribution in #1467
- @delta1 made their first contribution in #1493
- @td-bn made their first contribution in #1528
- @Harshil-Jani made their first contribution in #1641
- @lorenzolfm made their first contribution in #1658
- @bigspider made their first contribution in #1705
- @notmandatory made their first contribution in #1711
- @harding made their first contribution in #1759
- @wpaulino made their first contribution in #1820
- @kshitjj made their first contribution in #1837
- @startup-dreamer made their first contribution in #1882
- @roy9495 made their first contribution in #1863
- @panicfarm made their first contribution in #1776
Full Changelog: https://github.com/rust-bitcoin/rust-bitcoin/commits/bitcoin-0.30.2