Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
38a00e6
add wally_get_build_version and associated constants for the wally ve…
jgriffiths Aug 30, 2023
a04eba1
build: add a hacky maintainer script to update the version when relea…
jgriffiths Aug 30, 2023
104d03b
abi: enable Elements by default, force users to explicitly opt-out of…
jgriffiths Aug 30, 2023
5fae2bd
build: switch other build infra to enable elements by default
jgriffiths Aug 30, 2023
f197183
tx: expose accessors for non-SWIG builds, move internal header to wal…
jgriffiths Aug 30, 2023
4635331
cpp: update generated header to new ABI
jgriffiths Aug 30, 2023
14c36c5
cpp: force the user to provide an error handler for wally calls
jgriffiths Aug 30, 2023
850cb04
cpp: remove written parameter defaulting
jgriffiths Aug 30, 2023
59b7067
cpp: fix verify functions to ignore errors
jgriffiths Aug 30, 2023
c5b8a5a
abi: add set and get error calls to the operations struct
jgriffiths Aug 30, 2023
b98e0b2
abi: force users to explicitly opt-out of exporting Elements function…
jgriffiths Aug 30, 2023
6ce4926
abi: force users to explicitly opt-out of exporting Elements function…
jgriffiths Aug 30, 2023
4fb39f1
abi: move psbt_blind into the elements abi, update elements generation
jgriffiths Aug 30, 2023
96b1a58
map: add missing ext_key forward decl
jgriffiths Sep 1, 2023
d78e0ca
configure.ac: fix Bashisms
whitslack Aug 30, 2023
1edcf31
swig_python: add -Wno-unused-parameter to SWIG_WARN_CFLAGS
whitslack Jun 6, 2023
72b7fe2
src/Makefile.am: add -version-info to LDFLAGS in shared library builds
whitslack Aug 31, 2023
06a4912
configure.ac: drop --enable-openssl-tests from libsecp256k1 config
whitslack Sep 1, 2023
5e6f45d
configure.ac: drop --with-bignum=no from libsecp256k1 config
whitslack Sep 1, 2023
e994e0a
build: compile all Java classes in one javac invocation
whitslack Sep 2, 2023
be416d4
build: use all-local rule to ensure extra java files are built
jgriffiths Sep 4, 2023
3cbeb34
configure.ac: use AX_SUBDIRS_CONFIGURE; don't alter ac_configure_args
jgriffiths Sep 4, 2023
3c639f6
secp: use the configured include path for secp headers
jgriffiths Sep 4, 2023
8abbdd6
configure.ac: support --with-system-secp256k1
whitslack Aug 31, 2023
50ffb29
docs: update for v1.0.0
jgriffiths Aug 30, 2023
0df2d50
Bump version to 1.0.0
jgriffiths Aug 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ bullseye_release:
- tar cvf wally_dist/wallycore-android-jni.tar wallycore-android-jni
- gzip -9 wally_dist/wallycore-android-jni.tar
- source /opt/emsdk/emsdk_env.sh
- tools/build_wasm.sh --enable-elements
- tools/build_wasm.sh
- cd wally_dist && tar cvf wallycore-wasm.tar --remove-files wallycore.html wallycore.js wallycore.wasm
- gzip -9 wallycore-wasm.tar

Expand Down
14 changes: 14 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changes

## Version 1.0.0
- 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.
- 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.
- 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.

## Version 0.9.1
- PSET: When adding an Elements transaction output to a PSET, the nonce
commitment was incorrectly mapped to the PSET output blinding key field.
Expand Down
27 changes: 17 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ for cryptocurrency wallets.

Read the API documentation at https://wally.readthedocs.io.

Note that library interfaces may change slightly while the library design matures. Please see the [CHANGES](./CHANGES.md) file to determine if the API has changed when upgrading.
Please see the [CHANGES](./CHANGES.md) for details of ABI changes when upgrading.

Please report bugs and submit patches to [Our github repository](https://github.com/ElementsProject/libwally-core). If you wish to report a security issue, please read [Our security reporting guidelines](./SECURITY.md).

Expand Down Expand Up @@ -79,10 +79,17 @@ $ brew install swig
- `--enable-swig-java`. Enable the [SWIG](http://www.swig.org/) Java (JNI)
interface. After building, see `src/swig_java/src/com/blockstream/libwally/Wally.java`
for the Java interface definition (default: no).
- `--enable-elements`. Enables support for [Elements](https://elementsproject.org/)
features, including [Liquid](https://blockstream.com/liquid/) support.
- `--disable-elements`. Disables support for [Elements](https://elementsproject.org/)
features, including [Liquid](https://blockstream.com/liquid/) support. Elements
functions exported by the library will always return WALLY_ERROR (default: no).
- `--disable-elements-abi`. Changes the exposed library ABI to completely remove Elements
structure members and exported functions. When configured, elements support must be
disabled and the user must define `WALLY_ABI_NO_ELEMENTS` before including all wally
header files. This option *must not be given if wally is being installed as a system/shared library*. (default: no).
- `--enabled-standard-secp`. Excludes support for features that are unavailable in
the standard [libsecp256k1 library](https://github.com/bitcoin-core/secp256k1).
- `--with-system-secp256k1=<package_name>`. Compile and link against a system-wide
install of libsecp256k1 instead of the in-tree submodule. (default: not enabled).
- `--enable-mbed-tls`. Use mbed-tls hashing functions if available. This typically
results in faster hashing on embedded platforms such as STM32. Note that the user
must define `MBEDTLS_SHA256_ALT` and/or `SOC_SHA_SUPPORT_PARALLEL_ENG` matching the
Expand All @@ -91,10 +98,10 @@ $ brew install swig
need [lcov](http://ltp.sourceforge.net/coverage/lcov.php) installed to
build with this option enabled and generate coverage reports.
- `--disable-shared`. Disables building a shared library and builds a static
library instead.
- `--disable-tests`. Disables building library tests.
library instead. (default: no)
- `--disable-tests`. Disables building library tests. (default: no)
- `--disable-clear-tests`. Disables just the test_clear test (required to pass
the test suite with some compilers).
the test suite with some compilers). (default: no)

### Recommended development configure options

Expand All @@ -112,7 +119,7 @@ installed.
For non-development use, you can install wally with `pip` as follows:

```
pip install wallycore==0.9.2
pip install wallycore==1.0.0
```

For python development, you can build and install wally using:
Expand All @@ -132,7 +139,7 @@ You can also install the binary [wally releases](https://github.com/ElementsProj
using the released wheel files without having to compile the library, e.g.:

```
pip install wallycore-0.9.2-cp39-cp39m-linux_x86_64.whl
pip install wallycore-<version_and_architecture>.whl
```

The script `tools/build_python_manylinux_wheels.sh` builds the Linux release files
Expand Down Expand Up @@ -179,7 +186,7 @@ $ source $HOME/emsdk/emsdk_env.sh
$ export EXPORTED_FUNCTIONS="['_malloc','_free','_wally_init','_wally_cleanup',...]"

# Build
$ ./tools/build_wasm.sh [--enable-elements]
$ ./tools/build_wasm.sh [--disable-elements]
```

Note that emsdk v3.1.27 or later is required.
Expand Down Expand Up @@ -237,7 +244,7 @@ To generate an HTML coverage report, install `lcov` and use:
```
$ ./tools/cleanup.sh
$ ./tools/autogen.sh
$ ./configure --enable-debug --enable-export-all --enable-swig-python --enable-swig-java --enable-coverage --enable-elements
$ ./configure --enable-debug --enable-export-all --enable-swig-python --enable-swig-java --enable-coverage
$ make
$ ./tools/coverage.sh clean
$ make check
Expand Down
2 changes: 1 addition & 1 deletion _CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.20)

project(
libwallycore
VERSION 0.9.2
VERSION 1.0.0
DESCRIPTION "A collection of useful primitives for cryptocurrency wallets"
LANGUAGES C
)
Expand Down
Loading