Skip to content

Conversation

@delta1
Copy link
Owner

@delta1 delta1 commented Feb 21, 2025

  • Release 0.19
  • Add Support for Psbt Sighash type
  • Remove std feature
  • Rename SigHashType to EcdsaSighashType
  • Add #[test] to unused test
  • Add utility methods for fetching sighash types from inputs
  • Fix Block decoding bug
  • Serde fixes for sighash types
  • Deprecate get_ prefix for Block and Transaction methods
  • Use the non-get-prefixed methods
  • Add some default impls
  • encode: Revert io::BufRead requirement on Encodable trait
  • encode: Avoid duplicate allocation for commitments
  • Add script utility methods for taproot
  • Release v0.19.1
  • upgrade to 2018 edition
  • dynafed: Change fedpegprogram back to bitcoin::Script
  • Release v0.19.2
  • Add Liquid asset id as a constant
  • Export PsbtSigHashType
  • Avoid a potential panic on malformed pegin witness
  • Replace ad-hoc opt_try! macro with .ok()?
  • script: Add utility methods on script::Instruction
  • transaction: Simplify some statements using ? on Option
  • Make a bunch of stuff public
  • Add utility methods for computing Issuance and Reissuance AssetId
  • Keep pegin asset as AssetId instead of confidential::Asset
  • Add and use from_pegin_witness and to_pegin_witness to PeginData
  • Add simple error indicator to PeginData::from_pegin_witness
  • fix fuzzing
  • Export Blind*Proofs traits
  • Move big test strings to external file
  • Use crappy rng for pset_blind_coinjoin, update test_vector
  • Use crappy rng for raw_blind, update test_vector
  • bump MSRV to 1.41.1
  • bitcoin: bump 0.28.0 -> 0.29.1
  • Fix warnings
  • update CHANGELOG
  • Rename serde-feature to serde
  • Use ChaCha20Rng instead of CrappyRng
  • Remove public has_issuance field from TxIn
  • Cleanup bunch of blinding APIs
  • Add support for issuance
  • Fix pset Tweak serde
  • Fix pset key bug
  • Add issuance surjection proof verification
  • Allow inserting inputs/outputs at specified positions
  • Add liquid testnet parameters
  • rustfmt: add src/pset/mod.rs and src/blind.rs
  • release version 0.20.0
  • Introduce Sequence and LockTime from rust-bitcoin
  • locktime: copy locktime.rs, parse.rs, error.rs from rust-bitcoin
  • locktime: update comment slightly for Elements
  • Add TxIn::pegin_prevout method to return Bitcoin prevout
  • release 0.21
  • Add PeginData::parse_tx inspector
  • Add PeginData::parse_merkle_proof inspector
  • Release 0.21.1
  • chore: typo
  • dynafed: Extract FullParams from Params
  • move elementsd tests to their own crate
  • elementsd-tests: consolidate setup code
  • elementsd-tests: make bitcoind and elementsd paths configurable
  • elementsd-tests: clean up
  • commit a bitcoind and elementsd binary to the repo
  • remove unused fuzztarget feature
  • ci: pin deps for 1.41.1
  • fix minimal versions of serde
  • Update TapTweak
  • Add TweakedKeyPair
  • Add TweakedKeyPair methods
  • Add from_keypair
  • Add From implementations
  • Add vsize
  • Make TxOut generic in Prevouts
  • Remove std feature gates
  • add doccomment to all pub extern crates; export a couple more crates
  • update elementsd to 0.8.0
  • fix decoding error (caught by fuzz test)
  • introduce bitcoin 0.30 as a (yet-unused) dependency
  • add hex module which is basically a copy/paste from bitcoin_hashes 0.11
  • port all types in crate to new hex module
  • confidential: remove as_ref which seems weirdly fragile
  • update bech32/base58 to bitcoin 0.30.0
  • move locktime-related stuff to bitcoin 0.30; delete PackedLockTime
  • update bitcoin_hashes to 0.12 (through bitcoin 0.30.0)
  • update key/signature material to bitcoin 0.30.0
  • bring transactions primitives up to bitcoin 0.30.0
  • convert everything else to bitcoin 0.30 :)
  • rename bitcoin30 to bitcoin; delete bitcoin 0.29 dep
  • update MSRV to 1.48.0 from 1.41.1
  • run cargo clippy on the whole codebase
  • run clippy with --all-targets --all-features
  • remove remaining 0.30 conversion scaffolding
  • release 0.22.0
  • ci: update to newer deps, modernize the CI job, add docs/clippy/fuzz
  • fix issues with documentation
  • add Height::ZERO associated constants
  • SigHashCache -> SighashCache
  • SchnorrSigHashType -> SchnorrSighashType
  • EcdsaSigHashType -> EcdsaSighashType
  • SigHashType -> SighashType
  • SigHash -> Sighash
  • update CHANGELOG with Sighash renaming
  • Implement Ord for Transaction
  • release 0.23.0
  • pin serde_json for 1.48.0
  • Create explicit empty and null values for some types
  • Fix examples
  • Actaully run the CI job
  • fix 1.48.0 build
  • Add to and from base64 string to pset
  • Remove slip77
  • Remove slip21
  • rename pset::str::Error to ParseError and expose it
  • pset: fix remove_output
  • pset: tests: add coverage for remove_input/output
  • ci: cargo update byteorder
  • ELIP-0100 implementation
  • remove --all from cargo test
  • elip100: add missing AssetMetadata::new method
  • Exposed RangeProofMessage publically
  • Updated doc for impl Value blind method - returns blinded value*
  • bump MSRV to 1.56.1
  • bech32: replace blech32 implementation
  • update rust-bitcoin to 0.31; fix hard errors
  • replace VarInt::len with VarInt::size
  • base64: use new API
  • Message::from_slice to Message::from_digest_slice
  • release 0.24.0
  • examples: fix typos in docs
  • src: fix typos in docs
  • add test against fixed addresses
  • Fix typo in examples/pset_blind_coinjoin.rs
  • Fix typo in src/opcodes.rs
  • Fix typo in src/pset/elip100.rs
  • Fix typo in src/pset/error.rs
  • Fix typo in src/pset/mod.rs
  • Fix typo in src/transaction.rs
  • support wasm build by activating getrandom js feature
  • Add public constructor for FullParams
  • release 0.24.1
  • Fix typo in examples/pset_blind_coinjoin.rs
  • Fix typo in CHANGELOG.md
  • pset: input: add explicit amount and asset, and their proofs
  • ci: cargo update cc
  • pset: input: add blinded issuance flag
  • pset: input: handle blinded_issuance
  • pset: input: test issuance
  • pset: input: merge: add missing fields
  • pset: implement (de)serialize for AssetBlindingFactor
  • pset: input: add asset blinding factor
  • pset: output: add asset blinding factor
  • pset: test input and output asset blinding factors
  • fix a couple feature gates
  • blech32: delete unconstructable iterator struct
  • clippy: fix indentation in documentation
  • clippy: use u32::MAX rather than u32::max_value
  • transaction: range-check pegin data when parsing
  • tx: add discount_weight and discount_vsize
  • pset: elip100: add and get token metadata
  • Revert "pset: input/output: add abf"
  • Add elip_liquidex module
  • apply rustfmt to address.rs
  • Avoid instantiating base58 errors in Address::from_base58
  • apply rustfmt to src/blind.rs
  • apply rustfmt to pset/raw.rs
  • apply rustfmt to encode.rs
  • apply tomlfmt to Cargo.toml
  • Stop implementing elements::Encodable with bitcoin::Encodable
  • Copy ReadExt/WriteExt from bitcoin
  • ELIP-0101: rename from LiquiDEX
  • upgrade bitcoin 0.31 -> 0.32, fix test env vars
  • improve logging on error
  • docs: add a bunch of paragraph breaks.
  • ci: pin some more dependencies for MSRV
  • ci: bump fuzz toolchain to 1.61
  • encode: add length check for Vec and Box<[u8]>
  • add Address::is_liquid
  • bump version 0.24.1 -> 0.25.0
  • discount: fix calculation to weight amount and nonce by witness scaling factor
  • bump version 0.25.0 -> 0.25.1
  • clippy: fix stable clippy issues
  • ci: pin libc to 0.2.163 for rust 1.56.1
  • tx: discountct: add missing testcase from tx: add discount_weight and discount_vsize ElementsProject/rust-elements#204
  • elementsd-tests: blind asset issuance based on node version
  • ci: add a job checking wasm
  • clippy: fix for new rust stable

delta1 and others added 30 commits October 27, 2022 15:50
paramaters -> parameters
626b04f chore: typo (Byron Hambly)

Pull request description:

  Stumbled across this minor typo :)

ACKs for top commit:
  apoelstra:
    ACK 626b04f

Tree-SHA512: 7ed8429dc8eceb64f631e81f81f1c10bb2de4f3cedfb983e0e4aae50244a1291e33f5b742b08fe04f2707fcc83bf47ec1985a2fb4bc7d78f31339bc6208bbb43
89703e5 dynafed: Extract FullParams from Params (Steven Roose)

Pull request description:

ACKs for top commit:
  apoelstra:
    ACK 89703e5

Tree-SHA512: 0bd85fbe11026b85f30484b12a814bbf02746ac5518213892051a55adc8b48fd8aa4eed89125b016e17831191b9044494a8de856825871a9c1040094d7feb053
… crate; allow overriding the binaries

2d14ff7 fix minimal versions of serde (Andrew Poelstra)
a39988d ci: pin deps for 1.41.1 (Andrew Poelstra)
febf493 remove unused fuzztarget feature (Andrew Poelstra)
e630d82 commit a bitcoind and elementsd binary to the repo (Andrew Poelstra)
f3acee0 elementsd-tests: clean up (Andrew Poelstra)
da9deae elementsd-tests: make bitcoind and elementsd paths configurable (Andrew Poelstra)
f773496 elementsd-tests: consolidate setup code (Andrew Poelstra)
7bbf981 move elementsd tests to their own crate (Andrew Poelstra)

Pull request description:

  I need this to test this crate within Nix.

ACKs for top commit:
  sanket1729:
    ACK 2d14ff7. We can debug `tx-pegin`  test later

Tree-SHA512: 44e293d1d587cf2bc5e4185e3babe054b6462172c637f7b01ece02523f9c34cf48f0a286f312077676b4740e4629dc2df54ba38b80d56abb9468beff21e7c8d9
3e0db90 Add vsize (Christian Lewe)

Pull request description:

  Useful for computing the fee rate.

ACKs for top commit:
  apoelstra:
    ACK 3e0db90

Tree-SHA512: a4672b6d46d0842affc0391cd3c1fd877ef5c7cac05500be06c612d12fb2d0ca41f491cb56c36d8b2bedf4c7e3012ac7517c6e37ce645c6f42ba08bdce7572c3
dc6f520 Make TxOut generic in Prevouts (Christian Lewe)

Pull request description:

  Useful when prevouts are saved in a vector.

ACKs for top commit:
  apoelstra:
    ACK dc6f520

Tree-SHA512: c9981753ed6a7bbf492541e4a17a3e6be36dabb7e26f57453cb14e7befbc13f5f0c3181cfc8c10a110734dc186870834a2a96af47884c1c5a22a974855d82fc6
7b3f081 Add From implementations (Christian Lewe)
d58610e Add from_keypair (Christian Lewe)
4eed656 Add TweakedKeyPair methods (Christian Lewe)
19ff852 Add TweakedKeyPair (Christian Lewe)
063a8f5 Update TapTweak (Christian Lewe)

Pull request description:

  Updates `TapTweak` to [latest rust-bitcoin](https://docs.rs/bitcoin/latest/bitcoin/key/trait.TapTweak.html) and adds `TweakedKeyPair`.

ACKs for top commit:
  apoelstra:
    ACK 7b3f081

Tree-SHA512: 6a842533ce9a4483b3618b8a395b223f6943cd3ba79588805d65ad4ddbd04fac17f03a1eadaaecef267035d8a6dac8ac075e4c2ecee8e27134929c6073728ef5
b14f1a3 Remove std feature gates (Christian Lewe)

Pull request description:

  There is no `std` feature in rust-elements. This is a copy-and-paste error from rust-bitcoin.

ACKs for top commit:
  apoelstra:
    ACK b14f1a3

Tree-SHA512: 4cce9e662e3191a36cd5acf78e4dec668c731ed43e2998ac7afbb7066e8714e02f198ea63e7c571e62285f5c76983522307bb9a053e3dcb34a84a37a26f3ccdf
Requires updating bitcoin to 0.30.0, at least for the elementsd tests,
but this is easier than dealing with the dependency mess of 0.6.0.
c49ce3f fix decoding error (caught by fuzz test) (Andrew Poelstra)
93b12bc update elementsd to 0.8.0 (Andrew Poelstra)
b537c23 add doccomment to all pub extern crates; export a couple more crates (Andrew Poelstra)

Pull request description:

  Currently master is failing CI for a couple reasons. Fix these.

ACKs for top commit:
  delta1:
    ACK c49ce3f

Tree-SHA512: 39c01564ce7d292f15996fd5bef3a87917f873bcc7f2b305cff33a27f76e5d49f27a26af1359cf24a527a80caa5d10003bdc8fb8986a86052417a87b1b8087a2
RCasatta and others added 29 commits August 19, 2024 14:48
Otherwise we miss them when upgrading to 0.32
… bitcoin::Encodable

c08382c Copy ReadExt/WriteExt from bitcoin (Riccardo Casatta)
4aad862 Stop implementing elements::Encodable with bitcoin::Encodable (Riccardo Casatta)

Pull request description:

  Following bitcoin versions change `io` with `bitcoin_io`, upgrading would then require changing also elements::Encodable to match.

  Instead, we are re-implementing what is needed.

  Makes ElementsProject#209 easier

ACKs for top commit:
  apoelstra:
    ACK c08382c successfully ran local tests; a bit redundant but I think this is the right way to go

Tree-SHA512: e849dc141ab412f1db3539a132688b28e2770befb8fc46e64d3396f16c3b9035bb7d76a0813d4d7bf65ff85df418cb42e8d75e01d1db7879c5853dd40214e053
avoid setting {BITCOIND,ELEMENTSD}_EXE in setup

The logic of setting the env var inside the setup prevents user of other
OS like nixos to run the tests (because the included binary are not
working on nixos).
Setting those env vars is meant to be done in the dev environment not in
the code.
With this users with `bitcoind` and `elementsd` in their PATH will work
too.
The CI script will set the variables only if they are not already set.
(Allowing Nixos users to override and run it locally)
f889525 improve logging on error (Riccardo Casatta)
802c006 upgrade bitcoin 0.31 -> 0.32, fix test env vars (Riccardo Casatta)

Pull request description:

  ElementsProject#208

  ```
      fn consensus_encode<W: bitcoin::io::Write + ?Sized>(&self, e: W) -> Result<usize, crate::encode::Error> {}
      fn consensus_decode<R: bitcoin::io::BufRead + ?Sized>(reader: &mut R) -> Result<Self, crate::encode::Error> {}
  ```

  We went for not depending on bitcoin::Encodable instead

ACKs for top commit:
  apoelstra:
    ACK f889525 successfully ran local tests

Tree-SHA512: 23fbf597c7adad52c40f1c26b2d0cad6755a0ff8f9da3ee498d2dd80856b24f557f2f7bf504712a6d25e358d5417fc5f7c467122470d9087f93f1e7d260e5539
There is a new clippy/rustc nightly lint about having massive paragraphs
as the first line of doccomments. The first line is treated specially
and should be reasonably short.
We missed this when porting the rust-bitcoin decoding code to
rust-elements. But fortunately the fuzzer caught it very quickly.
User code can already compare against AddressParams, but it seems more
easy to find a method to check if the address is liquid.
Even thoug is less general because you can't discriminate between
elements and liquid testnet, most of the time wallets are interested
only in the mainnet or not discrimination.
17578d7 add Address::is_liquid (Riccardo Casatta)

Pull request description:

  User code can already compare against AddressParams, but it seems easier to find a method to check if the address is liquid. Even tough is less general because you can't discriminate between elements and liquid testnet, most of the time wallets are interested only in the mainnet or not discrimination.

ACKs for top commit:
  apoelstra:
    ACK 17578d7 successfully ran local tests; sure

Tree-SHA512: e2d47a1ed8880c3c54ddb9c8812f0ae0bc321f74747eb2b45c1078f1afe63a73c910849d2c75b8af6f41600163fd6b156d5ac72e9c263c2a99f3a0fcee217643
14a625f bump version 0.24.1 -> 0.25.0 (Riccardo Casatta)

Pull request description:

ACKs for top commit:
  apoelstra:
    ACK 14a625f successfully ran local tests; looks good -- the list is small enough that I think it's fine to include even trivial ones like doc changes

Tree-SHA512: 9cfa216f6e8f160f4274254108f9b355fbe7e6a507cec51622841e319b1c7794bed56610a2235ec3b83636c7cb35be4852d81698741419b2ee5c883e1d500f59
6909e1c discount: fix calculation to weight amount and nonce by witness scaling factor (Byron Hambly)

Pull request description:

  output amount and nonce discount must be weighted by the witness scaling factor as they form part of the base transaction, not the witness data

  see ElementsProject/elements#1366

ACKs for top commit:
  apoelstra:
    ACK 6909e1c successfully ran local tests; though I note that if we had a Weight type here like in rust-bitcoin we likely would have caught this :/

Tree-SHA512: 4348d32a980088e7426c03c5c9f42bfb130fefbbe18167725e75a6decff4acb069b4f2dea3d8eb1beac1d93a7c16e7acc9ee1f47f8953ffb4e786fb5fe430dc3
de4bfc2 bump version 0.25.0 -> 0.25.1 (Riccardo Casatta)

Pull request description:

ACKs for top commit:
  LeoComandini:
    utACK de4bfc2
  delta1:
    utACK de4bfc2

Tree-SHA512: 8576e1062ebd6f6333fd2c649f0d2c23cb45a9e53cdc97283b5b2e34ce231d6970a12c1870cd866918ded9f61dc962d9408ccfeb7d9938ba765f0500398c0f42
… 1.56.1 compilation

01b0d2c ci: pin libc to 0.2.163 for rust 1.56.1 (Byron Hambly)
7f39702 clippy: fix stable clippy issues (Byron Hambly)

Pull request description:

  Fixes clippy for the stable CI job, and pins libc to 0.2.163 for the rust 1.56.1 job

ACKs for top commit:
  RCasatta:
    ACK 01b0d2c
  apoelstra:
    ACK 01b0d2c; successfully ran local tests; thanks!

Tree-SHA512: e2d1a04217264bcf8ec81fac5936a10aaa4b306b1b733eec47245d7cd7b93a09bebe1d9626128ad1e2b7b26277560e791f5c7d8c5bb413fb6a4e25e622fa1ea8
…lementsProject#204

66110dc tx: discountct: add missing testcase from ElementsProject#204 (Pablo Greco)

Pull request description:

  In ElementsProject#204 we included a lot of files for discountCT test cases, but one of the files was never tested (2in3out_tx.hex). This is just the testing of that file.

ACKs for top commit:
  apoelstra:
    ACK 66110dc; successfully ran local tests

Tree-SHA512: 8aba1ce9ed824187246c01783ace9498ff7ad9e6690ac7cacb5e40d676232fef2e551dabff3d964678ef28f890a835809dcd5c3f6c0d769cbdab7cd0f639d5e8
In Elements 22 there was a change in the `createpsbt` RPC that causes
our integration tests to fail. This is fixed by disabling blinding.

Patch by Leo Comandini, adapted by me to still work with 0.21, from
ElementsProject#214
…ts-22+

elementsd-tests: blind asset issuance based on node version
@delta1 delta1 closed this Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.