Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
9638e3e
feat(qt): add Dash Platform GUI scaffolding behind --enable-platform-gui
PastaPastaPasta Jul 10, 2026
c1fdabf
feat(wallet): DIP-13/14/15 platform key provider
PastaPastaPasta Jul 10, 2026
37e089b
feat: asset lock creation and node platform data seams
PastaPastaPasta Jul 10, 2026
69336a1
feat(platform): define PlatformClient interface and shared GUI types
PastaPastaPasta Jul 10, 2026
dddbddb
feat(wallet): generic platform data records; define state transition …
PastaPastaPasta Jul 10, 2026
f103e1e
feat(platform): GroveDB merk proof verifier (C++ port of grovedb v5.0.0)
PastaPastaPasta Jul 10, 2026
2657ba5
feat(platform): DPP codecs and state transition construction
PastaPastaPasta Jul 10, 2026
19454ea
feat(platform): gRPC-Web/TLS transport primitives
PastaPastaPasta Jul 10, 2026
8dd068e
test(platform): live testnet end-to-end harness (identity + username)
PastaPastaPasta Jul 10, 2026
edf84f0
feat(platform): stored-document decoders for DPNS and DashPay
PastaPastaPasta Jul 10, 2026
90fcb69
feat: drive verifiers, DAPI client, and DashPay GUI integration
PastaPastaPasta Jul 10, 2026
b9571d0
fix(platform): correct getIdentityKeys request; add read-path E2E har…
PastaPastaPasta Jul 10, 2026
04ba4c7
feat(qt): contacts list, username search, and profile editing
PastaPastaPasta Jul 10, 2026
7287d93
lint: whitelist platform service/flow cycles; drop duplicate include
PastaPastaPasta Jul 10, 2026
d7fc8d5
fix(platform): proof-backed nonce queries, retained-quorum keys, exac…
PastaPastaPasta Jul 10, 2026
de8745e
feat(wallet): DIP-15 friendship keychain import and contact payment d…
PastaPastaPasta Jul 10, 2026
1be1c47
feat(qt): DashPay contact payments, send-to-username, and dashboard UX
PastaPastaPasta Jul 10, 2026
7a8e431
chore: move platform test-vector generators to a standalone repository
PastaPastaPasta Jul 11, 2026
90f0ac6
chore: move live-testnet platform E2E harness to a standalone repository
PastaPastaPasta Jul 11, 2026
8f71309
test(platform): cover right-to-left and conditional-subquery proof paths
PastaPastaPasta Jul 11, 2026
a4a2564
feat(platform): proof-verified contested-name vote state query
PastaPastaPasta Jul 11, 2026
f3e6f9d
feat(qt): surface contested-name vote state in flow and dashboard
PastaPastaPasta Jul 11, 2026
558431d
fix(platform): reject overflowing protobuf length-delimited fields
PastaPastaPasta Jul 11, 2026
c386050
fix(qt): abort username registration if the flow record fails to persist
PastaPastaPasta Jul 11, 2026
2b50d8f
fix(platform): enforce root consistency, proof freshness, and V1 enve…
PastaPastaPasta Jul 11, 2026
03a1d60
fix(qt): include bitcoin-config.h in send-coins headers for MOC
PastaPastaPasta Jul 11, 2026
bf194cf
lint(platform): remove locale-dependent calls and cppcheck warnings
PastaPastaPasta Jul 11, 2026
303de6b
ci: add a --enable-platform-gui build and unit-test job
PastaPastaPasta Jul 11, 2026
68026f6
doc(platform): correct V0-rejection comment to protocol >= 12
PastaPastaPasta Jul 11, 2026
4d7c111
fix(platform): pin one endpoint per query and scope freshness per end…
PastaPastaPasta Jul 11, 2026
f580bd8
fix(platform): accept HTTP chunk extensions in the gRPC-Web dechunker
PastaPastaPasta Jul 11, 2026
145b8dc
lint(platform): narrow scope of discarded contested-vote winner id
PastaPastaPasta Jul 11, 2026
831c223
fix(platform): resolve GCC -Werror=range-loop-construct in dpns_domai…
PastaPastaPasta Jul 11, 2026
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
36 changes: 36 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,17 @@ jobs:
base-image-digest: ${{ needs.check-skip.outputs.base-image-digest }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

depends-linux64_platform_gui:
name: x86_64-pc-linux-gnu_platform_gui
uses: ./.github/workflows/build-depends.yml
needs: [check-skip, container, cache-sources]
if: ${{ vars.SKIP_LINUX64_PLATFORM_GUI == '' }}
with:
build-target: linux64_platform_gui
container-path: ${{ needs.container.outputs.path }}
base-image-digest: ${{ needs.check-skip.outputs.base-image-digest }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

depends-mac:
name: x86_64-apple-darwin
uses: ./.github/workflows/build-depends.yml
Expand Down Expand Up @@ -263,6 +274,20 @@ jobs:
depends-artifact: ${{ needs.depends-linux64_nowallet.outputs.built-artifact }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

src-linux64_platform_gui:
name: linux64_platform_gui-build
uses: ./.github/workflows/build-src.yml
needs: [check-skip, container, depends-linux64_platform_gui, lint]
if: ${{ vars.SKIP_LINUX64_PLATFORM_GUI == '' }}
with:
build-target: linux64_platform_gui
container-path: ${{ needs.container.outputs.path }}
depends-key: ${{ needs.depends-linux64_platform_gui.outputs.key }}
depends-host: ${{ needs.depends-linux64_platform_gui.outputs.host }}
depends-dep-opts: ${{ needs.depends-linux64_platform_gui.outputs.dep-opts }}
depends-artifact: ${{ needs.depends-linux64_platform_gui.outputs.built-artifact }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

src-linux64_sqlite:
name: linux64_sqlite-build
uses: ./.github/workflows/build-src.yml
Expand Down Expand Up @@ -361,6 +386,17 @@ jobs:
container-path: ${{ needs.container-slim.outputs.path }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

test-linux64_platform_gui:
name: linux64_platform_gui-test
uses: ./.github/workflows/test-src.yml
needs: [check-skip, container-slim, src-linux64_platform_gui, lint]
if: ${{ vars.SKIP_LINUX64_PLATFORM_GUI == '' }}
with:
bundle-key: ${{ needs.src-linux64_platform_gui.outputs.key }}
build-target: linux64_platform_gui
container-path: ${{ needs.container-slim.outputs.path }}
runs-on: ${{ needs.check-skip.outputs['runner-amd64'] }}

test-linux64_sqlite:
name: linux64_sqlite-test
uses: ./.github/workflows/test-src.yml
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -181,3 +181,4 @@ compile_commands.json
# Linux perf profiling artifacts
perf.data
perf.data.old
src/qt/platform/moc_*.cpp
2 changes: 2 additions & 0 deletions ci/dash/matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ elif [ "$BUILD_TARGET" = "linux64_multiprocess" ]; then
source ./ci/test/00_setup_env_native_multiprocess.sh
elif [ "$BUILD_TARGET" = "linux64_nowallet" ]; then
source ./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh
elif [ "$BUILD_TARGET" = "linux64_platform_gui" ]; then
source ./ci/test/00_setup_env_native_platform_gui.sh
elif [ "$BUILD_TARGET" = "linux64_sqlite" ]; then
source ./ci/test/00_setup_env_native_sqlite.sh
elif [ "$BUILD_TARGET" = "linux64_tsan" ]; then
Expand Down
24 changes: 24 additions & 0 deletions ci/test/00_setup_env_native_platform_gui.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
#
# Copyright (c) 2026 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C.UTF-8

# Builds dash-qt with the optional Dash Platform GUI (--enable-platform-gui)
# turned on and runs the platform_* unit-test suites. PLATFORM_GUI=1 makes
# depends build the extra client dependency (mbedtls); the vendored blake3 is
# always compiled into libdash_platform. Functional tests are skipped: the
# feature is exercised by the gated C++ unit tests (platform_proof_tests,
# platform_drive_tests, platform_dpp_tests, platformkeys_tests) and there is
# no dashd-only surface to drive.
export CONTAINER_NAME=ci_native_platform_gui
export HOST=x86_64-pc-linux-gnu
export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libdbus-1-dev libharfbuzz-dev"
export DEP_OPTS="PLATFORM_GUI=1"
export RUN_UNIT_TESTS="true"
export RUN_UNIT_TESTS_SEQUENTIAL="false"
export RUN_FUNCTIONAL_TESTS="false"
export GOAL="install"
export BITCOIN_CONFIG="--enable-platform-gui --with-gui=qt5 --enable-zmq --with-libs=no --enable-reduce-exports LDFLAGS=-static-libstdc++"
52 changes: 51 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,16 @@ if test "$enable_miner" = "yes"; then
AC_DEFINE(ENABLE_MINER, 1, [Define this symbol if in-wallet miner should be enabled])
fi

dnl Enable Dash Platform support (usernames / DashPay contacts) in the GUI.
dnl This only affects dash-qt; dashd and the other binaries never link any of it.
AC_ARG_ENABLE([platform-gui],
[AS_HELP_STRING([--enable-platform-gui],
[enable Dash Platform (usernames/DashPay) support in the GUI (default is no)])],
[enable_platform_gui=$enableval],
[enable_platform_gui=no])
AC_ARG_VAR([MBEDTLS_CFLAGS], [C compiler flags for mbedtls, bypasses autodetection])
AC_ARG_VAR([MBEDTLS_LIBS], [Linker flags for mbedtls, bypasses autodetection])

dnl Enable different -fsanitize options
AC_ARG_WITH([sanitizers],
[AS_HELP_STRING([--with-sanitizers],
Expand Down Expand Up @@ -887,6 +897,16 @@ case $host in
export PKG_CONFIG_PATH="$($BREW --prefix qt@5 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH"
fi

if test "$enable_platform_gui" = "yes" && $BREW list --versions mbedtls >/dev/null && test "$MBEDTLS_CFLAGS" = "" && test "$MBEDTLS_LIBS" = ""; then
mbedtls_prefix=$($BREW --prefix mbedtls 2>/dev/null)
if test "$suppress_external_warnings" != "no"; then
MBEDTLS_CFLAGS="-isystem $mbedtls_prefix/include"
else
MBEDTLS_CFLAGS="-I$mbedtls_prefix/include"
fi
MBEDTLS_LIBS="-L$mbedtls_prefix/lib -lmbedtls -lmbedx509 -lmbedcrypto"
fi

gmp_prefix=$($BREW --prefix gmp 2>/dev/null)
if test "$gmp_prefix" != ""; then
if test "$suppress_external_warnings" != "no"; then
Expand Down Expand Up @@ -1966,6 +1986,28 @@ if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_
AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui --enable-fuzz(-binary) --enable-bench or --enable-tests])
fi

dnl Dash Platform GUI support needs the GUI and the wallet, and mbedtls for the
dnl DAPI TLS client. The platform client library is linked into dash-qt (and
dnl test binaries) only.
if test "$enable_platform_gui" = "yes"; then
if test "$bitcoin_enable_qt" != "yes"; then
AC_MSG_ERROR([--enable-platform-gui requires the GUI (--with-gui)])
fi
if test "$enable_wallet" != "yes"; then
AC_MSG_ERROR([--enable-platform-gui requires wallet support (--enable-wallet)])
fi
if test "$MBEDTLS_CFLAGS$MBEDTLS_LIBS" = ""; then
AC_CHECK_HEADER([mbedtls/ssl.h], [], [AC_MSG_ERROR([mbedtls headers not found (required by --enable-platform-gui)])])
AC_CHECK_LIB([mbedcrypto], [main], [MBEDTLS_LIBS="-lmbedcrypto"], [AC_MSG_ERROR([libmbedcrypto not found (required by --enable-platform-gui)])])
AC_CHECK_LIB([mbedx509], [main], [MBEDTLS_LIBS="-lmbedx509 $MBEDTLS_LIBS"], [AC_MSG_ERROR([libmbedx509 not found (required by --enable-platform-gui)])], [$MBEDTLS_LIBS])
AC_CHECK_LIB([mbedtls], [mbedtls_ssl_init], [MBEDTLS_LIBS="-lmbedtls $MBEDTLS_LIBS"], [AC_MSG_ERROR([libmbedtls not found (required by --enable-platform-gui)])], [$MBEDTLS_LIBS])
fi
AC_DEFINE([ENABLE_PLATFORM_GUI], [1], [Define this symbol to enable Dash Platform support in the GUI])
fi
AM_CONDITIONAL([ENABLE_PLATFORM_GUI], [test "$enable_platform_gui" = "yes"])
AC_SUBST(MBEDTLS_CFLAGS)
AC_SUBST(MBEDTLS_LIBS)

AM_CONDITIONAL([TARGET_DARWIN], [test "$TARGET_OS" = "darwin"])
AM_CONDITIONAL([BUILD_DARWIN], [test "$BUILD_OS" = "darwin"])
AM_CONDITIONAL([TARGET_LINUX], [test "$TARGET_OS" = "linux"])
Expand Down Expand Up @@ -2106,7 +2148,14 @@ CPPFLAGS_TEMP="$CPPFLAGS"
unset CPPFLAGS
CPPFLAGS="$CPPFLAGS_TEMP"

ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --disable-module-ecdh --disable-openssl-tests"
dnl The ECDH module is required by the Dash Platform GUI (DashPay contact
dnl request encryption, DIP-15); it is compiled but unused otherwise.
if test "$enable_platform_gui" = "yes"; then
secp_ecdh_arg="--enable-module-ecdh"
else
secp_ecdh_arg="--disable-module-ecdh"
fi
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery ${secp_ecdh_arg} --disable-openssl-tests"
AC_CONFIG_SUBDIRS([src/dashbls src/secp256k1])

AC_OUTPUT
Expand Down Expand Up @@ -2160,6 +2209,7 @@ echo " debug enabled = $enable_debug"
echo " stacktraces = $enable_stacktraces"
echo " crash hooks = $enable_crashhooks"
echo " miner enabled = $enable_miner"
echo " platform gui = $enable_platform_gui"
echo " gprof enabled = $enable_gprof"
echo " werror = $enable_werror"
echo
Expand Down
1 change: 1 addition & 0 deletions contrib/devtools/copyright_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
EXCLUDE_DIRS = [
# git subtrees
"src/crc32c/",
"src/crypto/blake3/",
"src/crypto/ctaes/",
"src/dashbls/",
"src/gsl/",
Expand Down
7 changes: 7 additions & 0 deletions depends/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ NO_UPNP ?=
NO_USDT ?=
NO_NATPMP ?=
MULTIPROCESS ?=
PLATFORM_GUI ?=
LTO ?=
NO_HARDEN ?=
FALLBACK_DOWNLOAD_PATH ?= http://dash-depends-sources.s3-website-us-west-2.amazonaws.com
Expand Down Expand Up @@ -175,6 +176,7 @@ natpmp_packages_$(NO_NATPMP) = $(natpmp_packages)

zmq_packages_$(NO_ZMQ) = $(zmq_packages)
multiprocess_packages_$(MULTIPROCESS) = $(multiprocess_packages)
platform_packages_$(PLATFORM_GUI) = $(platform_packages)
usdt_packages_$(NO_USDT) = $(usdt_$(host_os)_packages)

packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(boost_packages_) $(libevent_packages_) $(qt_packages_) $(wallet_packages_) $(upnp_packages_) $(natpmp_packages_) $(usdt_packages_)
Expand All @@ -189,6 +191,10 @@ packages += $(multiprocess_packages)
native_packages += $(multiprocess_native_packages)
endif

ifeq ($(platform_packages_),)
packages += $(platform_packages)
endif

all_packages = $(packages) $(native_packages)

meta_depends = Makefile config.guess config.sub funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
Expand Down Expand Up @@ -257,6 +263,7 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
-e 's|@no_usdt@|$(NO_USDT)|' \
-e 's|@no_natpmp@|$(NO_NATPMP)|' \
-e 's|@multiprocess@|$(MULTIPROCESS)|' \
-e 's|@platform_gui@|$(PLATFORM_GUI)|' \
-e 's|@lto@|$(LTO)|' \
-e 's|@no_harden@|$(NO_HARDEN)|' \
-e 's|@debug@|$(DEBUG)|' \
Expand Down
4 changes: 4 additions & 0 deletions depends/config.site.in
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ if test -z "$enable_multiprocess" && test -n "@multiprocess@"; then
enable_multiprocess=yes
fi

if test -z "$enable_platform_gui" && test -n "@platform_gui@"; then
enable_platform_gui=yes
fi

if test -z "$with_miniupnpc" && test -n "@no_upnp@"; then
with_miniupnpc=no
fi
Expand Down
27 changes: 27 additions & 0 deletions depends/packages/mbedtls.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package=mbedtls
$(package)_version=3.6.3.1
$(package)_download_path=https://github.com/Mbed-TLS/mbedtls/releases/download/v$($(package)_version)/
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=243ed496d5f88a5b3791021be2800aac821b9a4cc16e7134aa413c58b4c20e0c

define $(package)_set_vars
$(package)_config_opts := -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF
$(package)_config_opts += -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DUSE_STATIC_MBEDTLS_LIBRARY=ON
$(package)_config_opts += -DMBEDTLS_FATAL_WARNINGS=OFF -DGEN_FILES=OFF
endef

define $(package)_config_cmds
$($(package)_cmake) -S . -B .
endef

define $(package)_build_cmds
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef

define $(package)_postprocess_cmds
rm -rf lib/cmake
endef
2 changes: 2 additions & 0 deletions depends/packages/packages.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,6 @@ natpmp_packages=libnatpmp
multiprocess_packages = libmultiprocess capnp
multiprocess_native_packages = native_libmultiprocess native_capnp

platform_packages = mbedtls

usdt_linux_packages=systemtap
59 changes: 58 additions & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ LIBSECP256K1=secp256k1/libsecp256k1.la
if ENABLE_ZMQ
LIBBITCOIN_ZMQ=libbitcoin_zmq.a
endif
if ENABLE_PLATFORM_GUI
LIBDASH_PLATFORM=libdash_platform.a
endif
if BUILD_BITCOIN_LIBS
LIBBITCOINCONSENSUS=libdashconsensus.la
endif
Expand Down Expand Up @@ -123,7 +126,8 @@ EXTRA_LIBRARIES += \
$(LIBBITCOIN_IPC) \
$(LIBBITCOIN_WALLET) \
$(LIBBITCOIN_WALLET_TOOL) \
$(LIBBITCOIN_ZMQ)
$(LIBBITCOIN_ZMQ) \
$(LIBDASH_PLATFORM)

if BUILD_BITCOIND
bin_PROGRAMS += dashd
Expand Down Expand Up @@ -468,6 +472,7 @@ BITCOIN_CORE_H = \
wallet/hdchain.h \
wallet/ismine.h \
wallet/load.h \
wallet/platformkeys.h \
wallet/receive.h \
wallet/rpc/util.h \
wallet/rpc/wallet.h \
Expand Down Expand Up @@ -675,6 +680,55 @@ libbitcoin_zmq_a_SOURCES = \
endif
#

# platform (Dash Platform client, linked into dash-qt and test_dash only) #
if ENABLE_PLATFORM_GUI
libdash_platform_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(MBEDTLS_CFLAGS) \
-DBLAKE3_NO_SSE2 -DBLAKE3_NO_SSE41 -DBLAKE3_NO_AVX2 -DBLAKE3_NO_AVX512 -DBLAKE3_USE_NEON=0
libdash_platform_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
libdash_platform_a_CFLAGS = $(AM_CFLAGS) $(PIE_FLAGS)
libdash_platform_a_SOURCES = \
crypto/blake3/blake3.c \
crypto/blake3/blake3.h \
crypto/blake3/blake3_dispatch.c \
crypto/blake3/blake3_impl.h \
crypto/blake3/blake3_portable.c \
platform/client.h \
platform/dpp/bincode.cpp \
platform/dpp/bincode.h \
platform/dpp/document.cpp \
platform/dpp/document.h \
platform/dpp/identity.cpp \
platform/dpp/identity.h \
platform/dpp/statetransitions.cpp \
platform/drive/queries.cpp \
platform/drive/queries.h \
platform/drive/quorumsig.cpp \
platform/drive/quorumsig.h \
platform/drive/verify.cpp \
platform/drive/verify.h \
platform/params.cpp \
platform/params.h \
platform/proof/grovedb.cpp \
platform/proof/grovedb.h \
platform/proof/merk.cpp \
platform/proof/merk.h \
platform/serialize.cpp \
platform/serialize.h \
platform/statetransitions.h \
platform/transport/cbor.h \
platform/transport/client.cpp \
platform/transport/endpoint_retry.h \
platform/transport/freshness.h \
platform/transport/grpcweb.cpp \
platform/transport/grpcweb.h \
platform/transport/protobuf.cpp \
platform/transport/protobuf.h \
platform/transport/tls.cpp \
platform/transport/tls.h \
platform/types.h
endif
#

# wallet #
libbitcoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(BDB_CPPFLAGS) $(SQLITE_CFLAGS)
libbitcoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
Expand Down Expand Up @@ -719,6 +773,9 @@ endif
if USE_BDB
libbitcoin_wallet_a_SOURCES += wallet/bdb.cpp wallet/salvage.cpp
endif
if ENABLE_PLATFORM_GUI
libbitcoin_wallet_a_SOURCES += wallet/platformkeys.cpp
endif
#

# wallet tool #
Expand Down
Loading
Loading