diff --git a/.github/workflows/wasm-package.yml b/.github/workflows/wasm-package.yml index 5e2b8a80a..6015c1751 100644 --- a/.github/workflows/wasm-package.yml +++ b/.github/workflows/wasm-package.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 42a4b07ad..76f6068df 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -26,7 +26,7 @@ jobs: SWIG_PATH: "C:\\ProgramData\\chocolatey\\lib\\swig\\tools\\install\\swigwin-3.0.12" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true fetch-depth: 0 @@ -42,9 +42,9 @@ jobs: platforms: arm64 - name: Build Wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v3.1.4 env: - CIBW_SKIP: "cp3{5..7}-* cp3{6..12}-win32* cp3{6..12}-musllinux_aarch64* pp*" + CIBW_SKIP: "cp38* cp314* *-win32 *-musllinux_aarch64 pp* gp* cp3??t-*" CIBW_ARCHS_LINUX: "x86_64 aarch64" CIBW_ARCHS_MACOS: "x86_64 arm64 universal2" diff --git a/CHANGES.md b/CHANGES.md index fce47d594..659798762 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,9 +1,18 @@ # Changes +## Version 1.5.1 + +### Added +- python: Add wheels for Python 3.13, remove support for Python 3.8. + +### Fixed +- python: Fix source builds for newer pip versions. +- java: Fix tx_get_input_signature_hash to allow passing a null cache to disable caching. + ## Version 1.5.0 ### Added -- psbt: add psbt_get_input_signature_type to get the type of signature required by an input. +- psbt: Add psbt_get_input_signature_type to get the type of signature required by an input. - descriptor: Add support for Elements el-prefixed descriptor builtins as used in rust-elements. - descriptor: Add support for parsing Elements ct descriptors with slip77(), elip150() and raw hex blinding keys. - descriptor: Add support for generating Elements confidential addresses from ct descriptors. diff --git a/README.md b/README.md index 71e58d3f0..fde8596ec 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ installed. For non-development use, you can install wally from PyPI with `pip` as follows: ``` -pip install wallycore==1.5.0 +pip install wallycore==1.5.1 ``` For development, you can build and install wally using: diff --git a/_CMakeLists.txt b/_CMakeLists.txt index 6d8b883fc..c3a367cd6 100644 --- a/_CMakeLists.txt +++ b/_CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.18) project( libwallycore - VERSION 1.5.0 + VERSION 1.5.1 DESCRIPTION "A collection of useful primitives for cryptocurrency wallets" LANGUAGES C ) diff --git a/configure.ac b/configure.ac index c66a8454b..c57cc75a3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.60]) -AC_INIT([libwallycore],[1.5.0]) +AC_INIT([libwallycore],[1.5.1]) AC_CONFIG_AUX_DIR([tools/build-aux]) AC_CONFIG_MACRO_DIR([tools/build-aux/m4]) AC_CONFIG_SRCDIR([src/mnemonic.h]) diff --git a/docs/source/conf.py b/docs/source/conf.py index 816dd600a..c45e0f3e6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -168,7 +168,7 @@ def extract_docs(infile, outfile): # built documents. # # The short X.Y version. -version = u'1.5.0' +version = u'1.5.1' # The full version, including alpha/beta/rc tags. release = version diff --git a/include/wally_core.h b/include/wally_core.h index 9e625e0b6..605ed0791 100644 --- a/include/wally_core.h +++ b/include/wally_core.h @@ -31,8 +31,8 @@ extern "C" { /** Library version */ #define WALLY_MAJOR_VER 1 #define WALLY_MINOR_VER 5 -#define WALLY_PATCH_VER 0 -#define WALLY_BUILD_VER 0x10500 +#define WALLY_PATCH_VER 1 +#define WALLY_BUILD_VER 0x10501 /** * Initialize wally. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..eb62c1609 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools >= 42.0.0"] +build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index ef75dbbda..98807bc84 100644 --- a/setup.py +++ b/setup.py @@ -172,7 +172,7 @@ def _call(args, cwd=ABS_PATH): kwargs = { 'name': 'wallycore', - 'version': '1.5.0', + 'version': '1.5.1', 'description': 'libwally Bitcoin library', 'long_description': 'Python bindings for the libwally Bitcoin library', 'url': 'https://github.com/ElementsProject/libwally-core', diff --git a/src/Makefile.am b/src/Makefile.am index 26b5fde05..56154796d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -54,8 +54,6 @@ swig_python/swig_python_wrap.c : swig_python/swig.i swig_python/python_extra.py_ cat swig_python/wallycore.py swig_python/python_extra.py_in > swig_python/wallycore/__init__.py && \ rm swig_python/wallycore.py -PYTHON_SWIGTEST = PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=.libs:swig_python $(PYTHON) - clean-swig-python: $(AM_V_at)rm -f swig_python/swig_python_wrap.c swig_python/wallycore/__init__.py clean-local: clean-swig-python @@ -339,20 +337,23 @@ if BUILD_ELEMENTS endif if USE_SWIG_PYTHON -check-swig-python: $(SWIG_PYTHON_TEST_DEPS) - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/aes.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/bip32.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/coinselection.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/descriptor.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/mnemonic.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/psbt.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/sha.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/signmessage.py - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/tx.py - $(AM_V_at)$(PYTHON_SWIGTEST) pyexample/anti-exfil.py +check-swig-python: + $(AM_V_at)$(PYTHON) -m virtualenv $(top_builddir)/venv + $(AM_V_at)$(top_builddir)/venv/bin/python -m pip install $(top_srcdir) + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/aes.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/aes.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/bip32.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/coinselection.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/descriptor.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/mnemonic.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/psbt.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/sha.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/signmessage.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/tx.py + $(AM_V_at)$(top_builddir)/venv/bin/python pyexample/anti-exfil.py if BUILD_ELEMENTS - $(AM_V_at)$(PYTHON_SWIGTEST) swig_python/contrib/elements_tx.py - $(AM_V_at)$(PYTHON_SWIGTEST) pyexample/liquid/receive-send.py + $(AM_V_at)$(top_builddir)/venv/bin/python swig_python/contrib/elements_tx.py + $(AM_V_at)$(top_builddir)/venv/bin/python pyexample/liquid/receive-send.py endif else # USE_SWIG_PYTHON check-swig-python: ; diff --git a/src/wasm_package/package-lock.json b/src/wasm_package/package-lock.json index 1caa9ff94..98ffa1e35 100644 --- a/src/wasm_package/package-lock.json +++ b/src/wasm_package/package-lock.json @@ -1,12 +1,12 @@ { "name": "wallycore", - "version": "1.5.0", + "version": "1.5.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "wallycore", - "version": "1.5.0", + "version": "1.5.1", "license": "(MIT or BSD)", "devDependencies": { "buffer": "^6.0.3", diff --git a/src/wasm_package/package.json b/src/wasm_package/package.json index 7a65a21a1..36db5117a 100644 --- a/src/wasm_package/package.json +++ b/src/wasm_package/package.json @@ -1,6 +1,6 @@ { "name": "wallycore", - "version": "1.5.0", + "version": "1.5.1", "description": "JavaScript bindings for libwally", "main": "src/index.js", "type": "module", diff --git a/src/wasm_package/src/const.js b/src/wasm_package/src/const.js index fb9b48d59..5044743fb 100755 --- a/src/wasm_package/src/const.js +++ b/src/wasm_package/src/const.js @@ -109,7 +109,7 @@ export const WALLY_ADDRESS_VERSION_WIF_TESTNET = 0xEF; /** Wallet Import Format export const WALLY_BIP32_CHAIN_CODE_LEN = 32; export const WALLY_BIP32_TWEAK_SUM_LEN = 32; export const WALLY_BTC_MAX = 21000000; -export const WALLY_BUILD_VER = 0x10500; +export const WALLY_BUILD_VER = 0x10501; export const WALLY_CA_PREFIX_LIQUID = 0x0c; /** Liquid v1 confidential address prefix */ export const WALLY_CA_PREFIX_LIQUID_REGTEST = 0x04; /** Liquid v1 confidential address prefix for regtest */ export const WALLY_CA_PREFIX_LIQUID_TESTNET = 0x17; /** Liquid v1 confidential address prefix for testnet */ @@ -153,7 +153,7 @@ export const WALLY_NETWORK_LIQUID_TESTNET = 0x05; /** Liquid v1 testnet */ export const WALLY_NETWORK_NONE = 0x00; /** Used for miniscript parsing only */ export const WALLY_NO_CODESEPARATOR = 0xffffffff; /* No BIP342 code separator position */ export const WALLY_OK = 0; /** Success */ -export const WALLY_PATCH_VER = 0; +export const WALLY_PATCH_VER = 1; export const WALLY_PSBT_COMBINE_SIGS = 0x1; /* Combine the signatures from a signature-only PSBT */ export const WALLY_PSBT_EXTRACT_FINAL = 0x0; /* Extract a final transaction; fail if any inputs aren't finalized */ export const WALLY_PSBT_EXTRACT_NON_FINAL = 0x1; /* Extract without any final scriptsig and witness */