Wallycore

Latest version: v1.2.0

Safety actively analyzes 626071 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

1.2.0

Added

- Python: Add Python 3.12 wheels to the binary releases/PyPI.
- tx: expose `wally_tx_input_clone`/`wally_tx_input_clone_alloc` for input cloning.
- Build: Add new static analysis CI runs.

Changed

- Javascript: The npm build now uses nodejs 20, as nodejs 16 is end-of-life.
- Android: Update android NDK to version 26b.
- libsecp256k1-zkp: The library has been updated to include the latest
changes to its cmake infrastructure.
- cmake: Now takes advantage of the new libsecp256k1-zkp cmake files to build
experimental modules and export the project in cmake style. cmake now also
builds test and collects coverage data.

Fixed

- Build: Don't use `which` on Debian as it is now deprecated.
- Various bug fixes from static analysis.
- Various build and documentation fixes.

release_1.1.0
Added

- PSBT: Allow extracting partially finalized transactions in `wally_psbt_extract` by passing a new `WALLY_PSBT_EXTRACT_OPT_FINAL` flag.
- tx: Allow getting the number of items in a transactions input witness via `wally_tx_input_get_witness_num_items` / `wally_tx_get_input_witness_num_items`.

Fixed

- tx: `tx_input_get_witness` now correctly returns 0 bytes written if passed a `NULL` input.


release_1.0.0
This release contains ABI changes; it is not ABI compatible with prior versions.

Added

- The library version number is now available as compile time constants (`WALLY_MAJOR_VER`, `WALLY_MINOR_VER`, `WALLY_PATCH_VER`, `WALLY_BUILD_VER`), and at runtime via `wally_get_build_version`.
- Added support for wallet policies (https://github.com/bitcoin/bips/pull/1389).
- Added support for iterating and querying keys in descriptor/policy expressions, including support for key origin information such as fingerprint and path.
- The library allocation functions (which may be overridden by the caller at runtime) are now exposed as wally_[malloc|calloc|free|strdup|strdump_n]. Libraries using wally that wish to respect the callers allocation strategy can use these to avoid having to expose their own customizable allocator.
- Added support for encrypted request/response protocols using ephemeral keys via `wally_aes_cbc_with_ecdh_key`.
- The PyPI wheel uploads now include an `sdist` source distribution, allowing install on otherwise-unsupported architectures.

Changed

- The library now follows semantic versioning as per https://semver.org/.
- Elements support is now enabled by default, reflecting the common library usage. Please see the `configure --help` entries for `--disable-elements` and `--disable-elements-abi` for details.
- The ABI of the library is now consistent by default regardless of whether it is built with or without Elements support.
- The constant EC_SIGNATURE_DER_MAX_LOW_R_LEN has been changed from 71 to 70, to reflect that wally always produced low-R, low-S signatures when grinding.
- When configured to build as a static library, linking to libwallycore.a requires additionally linking to libsecp256k1.a.
- Wally can now be configured to build against a system-wide libsecp256k1 by passing `--with-system-secp256k1` to configure.
- The Python wheel can now be built with standard Python tooling such as `build`, and can be built from an uploaded source distribution.
- The Python wheel can now be built with dynamic linking to libwallycore and libsecp256k1-zkp/libsecp256k1.
- libsecp256k1-zkp has been updated to the latest master version as at the time of release.
- Some functions in the c++ header wally.hpp have changed interface slightly. Note that this header is deprecated and will be replaced in an upcoming release with higher level wrappers in the same manner as Python and JS.
- The docker-based builds have been streamlined and simplified. NPM builds in particular are now much faster.

Fixed

- Fixed a bug affecting signing PSBT taproot inputs.
- Fixed extern libsecp256k1-zkp linkage for windows static builds.
- Several build fixes/improvements and CI updates have been made.

release_0.9.2
This is the last planned release before wally moves to semantic versioning and a consistent ABI for elements/non-elements builds with release 1.0.0. Upgrading is recommended for all users.

- Fixes for huge transactions and PSBT/PSET files
- Fix external linkage for BIP85 functions
- Add missing psbt_is_input_finalized function
- Build and packaging fixes

release_0.9.1
**Note:** This release contains minor ABI changes, please see [`CHANGES.md`](https://github.com/ElementsProject/libwally-core/blob/release_0.9.1/CHANGES.md) for details.

- Fix a bug with incorrect nonce commitments when mapping Elements transaction outputs to PSET
- Avoid potential resource exhaustion for platforms with odd malloc semantics when provided with malicious input
- Add support for descriptors containing built-in wrappers with constant arguments and empty descriptors via `raw()`
- Add various PSBT/transaction/witness stack helper functions
- Improve the reliability of clearing memory on all platforms
- Remove end of life Python 3.6/3.7 support, add support for 3.11
- Add musl/x64 Python wheels to the release (e.g. Alpine Linux)
- Documentation updates, various minor build and bug fixes

release_0.9.0
**Note:** This release contains a security fix for users of gcc v13 and later in the underlying libsecp256k1-zkp library. Affected users are strongly advised to update. There are also minor ABI changes detailed in the same link.

- PSBT: Add support for taproot key-spending finalization and signing
- Descriptor: Optimizations and new functions for better embedded/small platform support
- BIP85: Add support for deriving BIP39 entropy from a BIP85 root extended key
- Elements: Add support for Elements asset coin selection
- Update to the latest secp-zkp master for gcc v13+ fixes
- Fix detection of mbed-tls hardware sha256 support
- Fix alignment issues under Rasbian, improve hashing performance for other targets without unaligned access
- Allow --no-asm builds to work on all platforms
- Various build, CI and bug fixes, minor cleanups from static analysis

release_0.8.9
**Note:** This release contains an important security fix in the underlying library libsecp256k1-zkp, please see https://github.com/ElementsProject/libwally-core/blob/master/CHANGES.md for details. There are also minor ABI changes detailed in the same link.

- Taproot: Support for Schnorr signatures and BIP-341 key tweaking, support user-supplied auxiliary data for ECDSA
- BIP32/Descriptors: Support multi-path descriptors, add descriptor introspection functions
- PSBT: Finalization improvements, finer serialization control, minor bug fixes/stricter validation
- Elements: Support for deterministic blinding factor generation matching Jade and Ledger
- Elements: Support short master blinding keys, add rangeproof size estimation
- Build: Support mbed-tls native SHA functions including HW acceleration for embedded builds
- Misc: Bug fixes, build system and documentation improvements

release_0.8.8
**Note:** This release contains an important security fix, please see https://github.com/ElementsProject/libwally-core/blob/master/CHANGES.md for details.

- Add BIP340 tagged hash functionality
- Add BIP341/342/118 sighash support for BTC
- Add miniscript and output descriptor support functions
- Add a more granular PSBT signing API, plus new accessors
- Complete the functionality for converting between PSBT v0 and v2
- Javascript: Remove the old JS/cordova wrappers, various minor fixes
- Various build system improvements, wrapper, documentation and bug fixes

release_0.8.7
**Note:** This release contains ABI changes affecting all languages, please see https://github.com/ElementsProject/libwally-core/blob/master/CHANGES.md for details.

- Javascript: Add a new WASM-based JS + typescript wrapper for Node and browsers, supporting the entire wally API (thanks to shesek)
- Javascript: Publish an npm package wallycore for JS users.
- Python: Remove support for Python 2.x, auto-generate all wrapper code
- Add new support functions for PSBT/PSET, maps, and keypaths
- Build: Build, test and warning fixes
- Various bug fixes and updates

release_0.8.6
Note this release contains ABI changes, please see `CHANGES.md` for details.

- Add initial support for PSBT v2 and Elements PSET v2.
- Update PSBT v0 support to the latest changes. Note that Taproot fields are serialized but general Taproot support is not yet implemented.
- Remove Elements PSET v0 support.
- Extend the `wally_map` API into a generic int/blob associative container.
- Add secp256k1 group scalar arithmetic operations.
- Add support for explicit value rangeproof and explicit asset surjectionproof generation and validation.
- Add incremental/partial blinding primitives.
- Update the built-in libsecp256k1 library.
- Documentation updates, build/test improvements and misc bug fixes.

release_0.8.5
- Add support for M1 macOS arm64 and universal2 builds/Python wheels
- Add `wally_hex_verify` to verify hex strings
- Add base58, bip32 and bech32 `_n` call variants for processing non nul-terminated strings
- Add support for bip32 key derivation from path strings ("m/a/b/c" etc)
- Update to latest libsecp256k1-zkp
- Add `--enable-standard-secp` configure argument to build with a non-zkp libsecp256k1
- Add `--disable-asm` configure argument to build without assembly
- Various build and test fixes

release_0.8.4
- Support bech32m/blech32m for taproot, expose ripemd160
- Support minimal builds for resource constrained environments via `--minimal`
- Add constants for Liquid testnet
- Javascript fixes and new exposed API calls
- Build updates, move to latest libsecp, build more python modules, including v3.10

release_0.8.3
- Support old style tx serialization using `WALLY_TX_FLAG_PRE_BIP144` (Fixes PSBT 'empty' tx serialization)
- Support `SIGHASH_RANGEPROOF` signing for Elements/Liquid
- Fix a PSET memory leak
- Fix Python handling of bad capsule pointers
- Build updates


release_0.8.2
- Update to latest libsecp256k1-zkp
- Expose Sign-to-Contract functions
- Expose Anti-Key-Exfiltration ("Anti-Exfil") functions
- Expose base64 functions
- Allow callers to provide secp contexts to make the library thread-safe

Note: This release is not binary compatible with 0.8.1. See https://github.com/ElementsProject/libwally-core/blob/master/CHANGES.md for details.



release_0.8.1
- New WASM target for wally in the browser
- Use a git submodule for libsecp256k1
- Add manylinux support to build PyPI compatible wheels
- Release Python 3.8/3.9 wheels for Linux
- Various build fixes


release_0.8.0
- Build fixes for OSX and Android
- Expose PSBT functions through the SWIG Java interface
- New functions to serialize varint and varbuffers
- Build system improvements and general bug fixes

release_0.7.9
- Updates and fixes to the PSBT interface, fix PSBT signing with core v20.1
- New functions to clone transactions and calculate txid
- Documentation updates
- Bug fixes


release_0.7.8
- Deprecate Python 2 wheels
- Honor CFLAGS, default to O2
- Bug fixing


release_0.7.7
- Expose wally_psbt_get_length
- Add wally_scriptpubkey_to_address
- Return written bytes in asset_pak_whitelistproof
- Elements bug fixes

release_0.7.6
- Add flag to sort multisig keys (BIP67)
- Add bip32_key_get_fingerprint
- Add Liquid developer guide
- Add liquid support to address_to_scriptpubkey

release_0.7.5
- Add support for P2PKH, P2SH-P2WPKH, P2WPKH address derivation from BIP32 key
- Add support for P2KH and P2SH address parsing
- Add support for PSBT
- Add support for blech32
- Add support for pegin and pegout
- Bug fixing, build updates and improvements

release_0.7.4
* Add support for recoverable signatures
* Generalize Elements function to use external nonces
* Expose blinding key functions to js wrapper
* doc improvement and bugs fixing


release_0.7.3
- Exposed ECDH
- Added py3.7 x86_64 linux wheels to released artifacts
- Updated JS bindings to support latest nodejs
- Doc typos and bug fixing.

[changelist](https://github.com/ElementsProject/libwally-core/compare/release_0.7.2...release_0.7.3)

release_0.7.2
- Expose function to validate public key
- Add functions to derive elements blinding keys as per Trezor
- In wally_tx_to_bytes and wally_tx_to_hex do not accept WALLY_TX_FLAG_USE_ELEMENTS bit set in flags

release_0.7.1
- Explicitly support python 3.7 wheels
- Update version of secp256k1-zkp (for example better arm support)

See [changelog](https://github.com/ElementsProject/libwally-core/compare/release_0.7.0...release_0.7.1)

release_0.7.0
- elements bug fixes
- ubuntu 19.04 compatible py3 wheels
- updated freebsd py wheels to freebsd release 12

See [changelog](https://github.com/ElementsProject/libwally-core/compare/release_0.6.9...release_0.7.0)

release_0.6.9
- enable elements by default in python wheels
- secp256k1-zkp update from upstream
- bug fixing
- updated debian and android ndk for binary release

See [changelog](https://github.com/ElementsProject/libwally-core/compare/release_0.6.8...release_0.6.9)

release_0.6.8


release_0.6.7


release_0.6.6


release_0.6.5


release_0.6.4


release_0.6.3


release_0.6.1


release_0.6.0


release_0.4.0


release_0.2.0

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.