├── CONTRIBUTING.md
├── COPYING
├── INSTALL.md
├── Makefile.am
├── README.md
├── autogen.sh
├── build-aux
└── m4
│ ├── ax_boost_base.m4
│ ├── ax_boost_filesystem.m4
│ ├── ax_boost_process.m4
│ ├── ax_boost_system.m4
│ ├── ax_boost_thread.m4
│ ├── ax_boost_unit_test_framework.m4
│ ├── ax_check_compile_flag.m4
│ ├── ax_check_link_flag.m4
│ ├── ax_check_preproc_flag.m4
│ ├── ax_cxx_compile_stdcxx.m4
│ ├── ax_gcc_func_attribute.m4
│ ├── ax_pthread.m4
│ ├── l_atomic.m4
│ ├── l_socket.m4
│ ├── labyrinth_find_bdb48.m4
│ ├── labyrinth_qt.m4
│ └── labyrinth_subdir_to_include.m4
├── build_msvc
├── README.md
├── bench_labyrinth
│ └── bench_labyrinth.vcxproj.in
├── common.init.vcxproj
├── common.qt.init.vcxproj
├── common.vcxproj
├── labyrinth-cli
│ └── labyrinth-cli.vcxproj
├── labyrinth-qt
│ └── labyrinth-qt.vcxproj
├── labyrinth-tx
│ └── labyrinth-tx.vcxproj
├── labyrinth-wallet
│ └── labyrinth-wallet.vcxproj
├── labyrinth.sln
├── labyrinth_config.h
├── labyrinthd
│ └── labyrinthd.vcxproj
├── liblabyrinth_cli
│ └── liblabyrinth_cli.vcxproj.in
├── liblabyrinth_common
│ └── liblabyrinth_common.vcxproj.in
├── liblabyrinth_crypto
│ └── liblabyrinth_crypto.vcxproj.in
├── liblabyrinth_qt
│ └── liblabyrinth_qt.vcxproj
├── liblabyrinth_server
│ └── liblabyrinth_server.vcxproj.in
├── liblabyrinth_util
│ └── liblabyrinth_util.vcxproj.in
├── liblabyrinth_wallet
│ └── liblabyrinth_wallet.vcxproj.in
├── liblabyrinth_wallet_tool
│ └── liblabyrinth_wallet_tool.vcxproj.in
├── liblabyrinth_zmq
│ └── liblabyrinth_zmq.vcxproj.in
├── liblabyrinthconsensus
│ └── liblabyrinthconsensus.vcxproj
├── libleveldb
│ └── libleveldb.vcxproj
├── libsecp256k1
│ └── libsecp256k1.vcxproj
├── libsecp256k1_config.h
├── libtest_util
│ └── libtest_util.vcxproj.in
├── libunivalue
│ └── libunivalue.vcxproj
├── msbuild
│ └── tasks
│ │ ├── hexdump.targets
│ │ └── replaceinfile.targets
├── msvc-autogen.py
├── test_labyrinth-qt
│ └── test_labyrinth-qt.vcxproj
├── test_labyrinth
│ └── test_labyrinth.vcxproj
├── testconsensus
│ ├── testconsensus.cpp
│ └── testconsensus.vcxproj
└── vcpkg.json
├── configure.ac
├── contrib
├── README.md
├── debian
│ └── copyright
├── devtools
│ ├── README.md
│ ├── circular-dependencies.py
│ ├── clang-format-diff.py
│ ├── copyright_header.py
│ ├── gen-manpages.sh
│ ├── security-check.py
│ ├── split-debug.sh.in
│ ├── test-security-check.py
│ ├── test_deterministic_coverage.sh
│ └── utxo_snapshot.sh
├── filter-lcov.py
├── init
│ ├── README.md
│ ├── labyrinthd.conf
│ ├── labyrinthd.init
│ ├── labyrinthd.openrc
│ ├── labyrinthd.openrcconf
│ ├── labyrinthd.service
│ └── org.labyrinth.labyrinthd.plist
├── install_db4.sh
├── labyrinth-cli.bash-completion
├── labyrinth-qt.pro
├── labyrinth-tx.bash-completion
├── labyrinthd.bash-completion
├── linearize
│ ├── README.md
│ ├── example-linearize.cfg
│ ├── linearize-data.py
│ └── linearize-hashes.py
├── macdeploy
│ ├── LICENSE
│ ├── README.md
│ ├── background.svg
│ ├── custom_dsstore.py
│ ├── detached-sig-apply.sh
│ ├── detached-sig-create.sh
│ ├── extract-osx-sdk.sh
│ ├── fancy.plist
│ ├── gen-sdk
│ └── macdeployqtplus
├── seeds
│ ├── README.md
│ ├── generate-seeds.py
│ ├── makeseeds.py
│ ├── nodes_main.txt
│ ├── nodes_test.txt
│ └── suspicious_hosts.txt
├── testgen
│ ├── README.md
│ ├── base58.py
│ └── gen_key_io_test_vectors.py
├── valgrind.supp
├── windeploy
│ ├── detached-sig-create.sh
│ └── win-codesign.cert
└── zmq
│ └── zmq_sub.py
├── depends
├── Makefile
├── README.md
├── builders
│ ├── darwin.mk
│ ├── default.mk
│ └── linux.mk
├── config.guess
├── config.site.in
├── config.sub
├── description.md
├── funcs.mk
├── hosts
│ ├── android.mk
│ ├── darwin.mk
│ ├── default.mk
│ ├── linux.mk
│ └── mingw32.mk
├── packages.md
├── packages
│ ├── bdb.mk
│ ├── boost.mk
│ ├── capnp.mk
│ ├── expat.mk
│ ├── fontconfig.mk
│ ├── freetype.mk
│ ├── libXau.mk
│ ├── libevent.mk
│ ├── libmultiprocess.mk
│ ├── libxcb.mk
│ ├── miniupnpc.mk
│ ├── native_biplist.mk
│ ├── native_capnp.mk
│ ├── native_cctools.mk
│ ├── native_cdrkit.mk
│ ├── native_ds_store.mk
│ ├── native_libdmg-hfsplus.mk
│ ├── native_libmultiprocess.mk
│ ├── native_mac_alias.mk
│ ├── packages.mk
│ ├── qrencode.mk
│ ├── qt.mk
│ ├── sqlite.mk
│ ├── xcb_proto.mk
│ ├── xproto.mk
│ ├── zeromq.mk
│ └── zlib.mk
└── patches
│ ├── bdb
│ └── clang_cxx_11.patch
│ ├── boost
│ └── unused_var_in_process.patch
│ ├── fontconfig
│ ├── gperf_header_regen.patch
│ └── remove_char_width_usage.patch
│ ├── libevent
│ └── 0001-fix-windows-getaddrinfo.patch
│ ├── miniupnpc
│ └── dont_use_wingen.patch
│ ├── native_cctools
│ └── ld64_disable_threading.patch
│ ├── native_cdrkit
│ └── cdrkit-deterministic.patch
│ ├── native_libdmg-hfsplus
│ └── remove-libcrypto-dependency.patch
│ ├── qt
│ ├── dont_hardcode_pwd.patch
│ ├── drop_lrelease_dependency.patch
│ ├── fix_android_jni_static.patch
│ ├── fix_android_qmake_conf.patch
│ ├── fix_configure_mac.patch
│ ├── fix_no_printer.patch
│ ├── fix_powerpc_libpng.patch
│ ├── fix_qpainter_non_determinism.patch
│ ├── fix_qt_pkgconfig.patch
│ ├── fix_rcc_determinism.patch
│ ├── fix_riscv64_arch.patch
│ ├── freetype_back_compat.patch
│ ├── mac-qmake.conf
│ ├── no-xlib.patch
│ └── xkb-default.patch
│ └── zeromq
│ └── remove_libstd_link.patch
├── doc
├── Doxyfile.in
├── JSON-RPC-interface.md
├── README.md
├── README_doxygen.md
├── README_windows.txt
├── REST-interface.md
├── assets-attribution.md
├── benchmarking.md
├── bips.md
├── build-freebsd.md
├── build-netbsd.md
├── build-openbsd.md
├── build-osx.md
├── build-unix.md
├── build-windows.md
├── dependencies.md
├── descriptors.md
├── developer-notes.md
├── dnsseed-policy.md
├── files.md
├── fuzzing.md
├── init.md
├── labyrinth-conf.md
├── labyrinth_logo_doxygen.png
├── man
│ ├── Makefile.am
│ ├── labyrinth-cli.1
│ ├── labyrinth-qt.1
│ ├── labyrinth-tx.1
│ ├── labyrinth-wallet.1
│ └── labyrinthd.1
├── multiprocess.md
├── productivity.md
├── psbt.md
├── reduce-memory.md
├── reduce-traffic.md
├── shared-libraries.md
├── tor.md
├── translation_strings_policy.md
└── zmq.md
├── liblabyrinthconsensus.pc.in
├── share
├── examples
│ └── labyrinth.conf
├── genbuild.sh
├── pixmaps
│ ├── labyrinth.ico
│ ├── labyrinth128.png
│ ├── labyrinth128.xpm
│ ├── labyrinth16.png
│ ├── labyrinth16.xpm
│ ├── labyrinth256.png
│ ├── labyrinth256.xpm
│ ├── labyrinth32.png
│ ├── labyrinth32.xpm
│ ├── labyrinth64.png
│ ├── labyrinth64.xpm
│ ├── nsis-header.bmp
│ └── nsis-wizard.bmp
├── qt
│ ├── Info.plist.in
│ └── extract_strings_qt.py
├── rpcauth
│ ├── README.md
│ └── rpcauth.py
└── setup.nsi.in
├── src
├── Makefile.am
├── Makefile.bench.include
├── Makefile.crc32c.include
├── Makefile.leveldb.include
├── Makefile.qt.include
├── Makefile.qt_locale.include
├── Makefile.qttest.include
├── Makefile.test.include
├── Makefile.test_fuzz.include
├── Makefile.test_util.include
├── addrdb.cpp
├── addrdb.h
├── addrman.cpp
├── addrman.h
├── amount.h
├── arith_uint256.cpp
├── arith_uint256.h
├── attributes.h
├── banman.cpp
├── banman.h
├── base58.cpp
├── base58.h
├── bech32.cpp
├── bech32.h
├── bench
│ ├── addrman.cpp
│ ├── base58.cpp
│ ├── bech32.cpp
│ ├── bench.cpp
│ ├── bench.h
│ ├── bench_labyrinth.cpp
│ ├── block_assemble.cpp
│ ├── ccoins_caching.cpp
│ ├── chacha20.cpp
│ ├── chacha_poly_aead.cpp
│ ├── checkblock.cpp
│ ├── checkqueue.cpp
│ ├── coin_selection.cpp
│ ├── crypto_hash.cpp
│ ├── data.cpp
│ ├── data.h
│ ├── data
│ │ └── block413567.raw
│ ├── duplicate_inputs.cpp
│ ├── examples.cpp
│ ├── gcs_filter.cpp
│ ├── hashpadding.cpp
│ ├── lockedpool.cpp
│ ├── mempool_eviction.cpp
│ ├── mempool_stress.cpp
│ ├── merkle_root.cpp
│ ├── nanobench.cpp
│ ├── nanobench.h
│ ├── poly1305.cpp
│ ├── prevector.cpp
│ ├── rollingbloom.cpp
│ ├── rpc_blockchain.cpp
│ ├── rpc_mempool.cpp
│ ├── util_time.cpp
│ ├── verify_script.cpp
│ └── wallet_balance.cpp
├── blockencodings.cpp
├── blockencodings.h
├── blockfilter.cpp
├── blockfilter.h
├── bloom.cpp
├── bloom.h
├── chain.cpp
├── chain.h
├── chainparams.cpp
├── chainparams.h
├── chainparamsbase.cpp
├── chainparamsbase.h
├── chainparamsseeds.h
├── checkqueue.h
├── clientversion.cpp
├── clientversion.h
├── coins.cpp
├── coins.h
├── compat.h
├── compat
│ ├── assumptions.h
│ ├── byteswap.h
│ ├── cpuid.h
│ ├── endian.h
│ ├── glibc_compat.cpp
│ ├── glibc_sanity.cpp
│ ├── glibcxx_sanity.cpp
│ ├── sanity.h
│ ├── stdin.cpp
│ ├── stdin.h
│ └── strnlen.cpp
├── compressor.cpp
├── compressor.h
├── config
│ └── .empty
├── consensus
│ ├── consensus.h
│ ├── merkle.cpp
│ ├── merkle.h
│ ├── params.h
│ ├── tx_check.cpp
│ ├── tx_check.h
│ ├── tx_verify.cpp
│ ├── tx_verify.h
│ └── validation.h
├── core_io.h
├── core_memusage.h
├── core_read.cpp
├── core_write.cpp
├── crc32c
│ ├── .ycm_extra_conf.py
│ ├── AUTHORS
│ ├── CMakeLists.txt
│ ├── CONTRIBUTING.md
│ ├── Crc32cConfig.cmake
│ ├── LICENSE
│ ├── README.md
│ ├── include
│ │ └── crc32c
│ │ │ └── crc32c.h
│ └── src
│ │ ├── crc32c.cc
│ │ ├── crc32c_arm64.cc
│ │ ├── crc32c_arm64.h
│ │ ├── crc32c_arm64_linux_check.h
│ │ ├── crc32c_arm64_unittest.cc
│ │ ├── crc32c_benchmark.cc
│ │ ├── crc32c_capi_unittest.c
│ │ ├── crc32c_config.h.in
│ │ ├── crc32c_extend_unittests.h
│ │ ├── crc32c_internal.h
│ │ ├── crc32c_portable.cc
│ │ ├── crc32c_portable_unittest.cc
│ │ ├── crc32c_prefetch.h
│ │ ├── crc32c_prefetch_unittest.cc
│ │ ├── crc32c_read_le.h
│ │ ├── crc32c_read_le_unittest.cc
│ │ ├── crc32c_round_up.h
│ │ ├── crc32c_round_up_unittest.cc
│ │ ├── crc32c_sse42.cc
│ │ ├── crc32c_sse42.h
│ │ ├── crc32c_sse42_check.h
│ │ ├── crc32c_sse42_unittest.cc
│ │ ├── crc32c_test_main.cc
│ │ └── crc32c_unittest.cc
├── crypto
│ ├── aes.cpp
│ ├── aes.h
│ ├── chacha20.cpp
│ ├── chacha20.h
│ ├── chacha_poly_aead.cpp
│ ├── chacha_poly_aead.h
│ ├── common.h
│ ├── ctaes
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── bench.c
│ │ ├── ctaes.c
│ │ ├── ctaes.h
│ │ └── test.c
│ ├── hkdf_sha256_32.cpp
│ ├── hkdf_sha256_32.h
│ ├── hmac_sha256.cpp
│ ├── hmac_sha256.h
│ ├── hmac_sha512.cpp
│ ├── hmac_sha512.h
│ ├── kawpow
│ │ ├── helpers.hpp
│ │ ├── include
│ │ │ └── kawpow
│ │ │ │ ├── hash_types.h
│ │ │ │ ├── hash_types.hpp
│ │ │ │ ├── kawpow.h
│ │ │ │ ├── kawpow.hpp
│ │ │ │ ├── keccak.h
│ │ │ │ ├── keccak.hpp
│ │ │ │ ├── progpow.hpp
│ │ │ │ └── version.h
│ │ ├── lib
│ │ │ ├── kawpow
│ │ │ │ ├── bit_manipulation.h
│ │ │ │ ├── builtins.h
│ │ │ │ ├── endianness.hpp
│ │ │ │ ├── kawpow-internal.hpp
│ │ │ │ ├── kawpow.cpp
│ │ │ │ ├── kiss99.hpp
│ │ │ │ ├── managed.cpp
│ │ │ │ ├── primes.c
│ │ │ │ ├── primes.h
│ │ │ │ └── progpow.cpp
│ │ │ ├── keccak
│ │ │ │ ├── keccak.c
│ │ │ │ ├── keccakf1600.c
│ │ │ │ └── keccakf800.c
│ │ │ └── support
│ │ │ │ └── attributes.h
│ │ └── progpow_test_vectors.hpp
│ ├── poly1305.cpp
│ ├── poly1305.h
│ ├── ripemd160.cpp
│ ├── ripemd160.h
│ ├── sha1.cpp
│ ├── sha1.h
│ ├── sha256.cpp
│ ├── sha256.h
│ ├── sha256_avx2.cpp
│ ├── sha256_shani.cpp
│ ├── sha256_sse4.cpp
│ ├── sha256_sse41.cpp
│ ├── sha3.cpp
│ ├── sha3.h
│ ├── sha512.cpp
│ ├── sha512.h
│ ├── siphash.cpp
│ └── siphash.h
├── cuckoocache.h
├── dbwrapper.cpp
├── dbwrapper.h
├── dummywallet.cpp
├── flatfile.cpp
├── flatfile.h
├── founder.cpp
├── founder.h
├── fs.cpp
├── fs.h
├── hash.cpp
├── hash.h
├── httprpc.cpp
├── httprpc.h
├── httpserver.cpp
├── httpserver.h
├── index
│ ├── base.cpp
│ ├── base.h
│ ├── blockfilterindex.cpp
│ ├── blockfilterindex.h
│ ├── disktxpos.h
│ ├── txindex.cpp
│ └── txindex.h
├── indirectmap.h
├── init.cpp
├── init.h
├── interfaces
│ ├── README.md
│ ├── chain.cpp
│ ├── chain.h
│ ├── handler.cpp
│ ├── handler.h
│ ├── node.cpp
│ ├── node.h
│ ├── wallet.cpp
│ └── wallet.h
├── key.cpp
├── key.h
├── key_io.cpp
├── key_io.h
├── labyrinth-cli-res.rc
├── labyrinth-cli.cpp
├── labyrinth-tx-res.rc
├── labyrinth-tx.cpp
├── labyrinth-wallet-res.rc
├── labyrinth-wallet.cpp
├── labyrinthd-res.rc
├── labyrinthd.cpp
├── leveldb
│ ├── AUTHORS
│ ├── CMakeLists.txt
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── NEWS
│ ├── README.md
│ ├── TODO
│ ├── benchmarks
│ │ ├── db_bench.cc
│ │ ├── db_bench_sqlite3.cc
│ │ └── db_bench_tree_db.cc
│ ├── cmake
│ │ └── leveldbConfig.cmake
│ ├── db
│ │ ├── autocompact_test.cc
│ │ ├── builder.cc
│ │ ├── builder.h
│ │ ├── c.cc
│ │ ├── c_test.c
│ │ ├── corruption_test.cc
│ │ ├── db_impl.cc
│ │ ├── db_impl.h
│ │ ├── db_iter.cc
│ │ ├── db_iter.h
│ │ ├── db_test.cc
│ │ ├── dbformat.cc
│ │ ├── dbformat.h
│ │ ├── dbformat_test.cc
│ │ ├── dumpfile.cc
│ │ ├── fault_injection_test.cc
│ │ ├── filename.cc
│ │ ├── filename.h
│ │ ├── filename_test.cc
│ │ ├── leveldbutil.cc
│ │ ├── log_format.h
│ │ ├── log_reader.cc
│ │ ├── log_reader.h
│ │ ├── log_test.cc
│ │ ├── log_writer.cc
│ │ ├── log_writer.h
│ │ ├── memtable.cc
│ │ ├── memtable.h
│ │ ├── recovery_test.cc
│ │ ├── repair.cc
│ │ ├── skiplist.h
│ │ ├── skiplist_test.cc
│ │ ├── snapshot.h
│ │ ├── table_cache.cc
│ │ ├── table_cache.h
│ │ ├── version_edit.cc
│ │ ├── version_edit.h
│ │ ├── version_edit_test.cc
│ │ ├── version_set.cc
│ │ ├── version_set.h
│ │ ├── version_set_test.cc
│ │ ├── write_batch.cc
│ │ ├── write_batch_internal.h
│ │ └── write_batch_test.cc
│ ├── doc
│ │ ├── benchmark.html
│ │ ├── impl.md
│ │ ├── index.md
│ │ ├── log_format.md
│ │ └── table_format.md
│ ├── helpers
│ │ └── memenv
│ │ │ ├── memenv.cc
│ │ │ ├── memenv.h
│ │ │ └── memenv_test.cc
│ ├── include
│ │ └── leveldb
│ │ │ ├── c.h
│ │ │ ├── cache.h
│ │ │ ├── comparator.h
│ │ │ ├── db.h
│ │ │ ├── dumpfile.h
│ │ │ ├── env.h
│ │ │ ├── export.h
│ │ │ ├── filter_policy.h
│ │ │ ├── iterator.h
│ │ │ ├── options.h
│ │ │ ├── slice.h
│ │ │ ├── status.h
│ │ │ ├── table.h
│ │ │ ├── table_builder.h
│ │ │ └── write_batch.h
│ ├── issues
│ │ ├── issue178_test.cc
│ │ ├── issue200_test.cc
│ │ └── issue320_test.cc
│ ├── port
│ │ ├── README.md
│ │ ├── port.h
│ │ ├── port_config.h.in
│ │ ├── port_example.h
│ │ ├── port_stdcxx.h
│ │ └── thread_annotations.h
│ ├── table
│ │ ├── block.cc
│ │ ├── block.h
│ │ ├── block_builder.cc
│ │ ├── block_builder.h
│ │ ├── filter_block.cc
│ │ ├── filter_block.h
│ │ ├── filter_block_test.cc
│ │ ├── format.cc
│ │ ├── format.h
│ │ ├── iterator.cc
│ │ ├── iterator_wrapper.h
│ │ ├── merger.cc
│ │ ├── merger.h
│ │ ├── table.cc
│ │ ├── table_builder.cc
│ │ ├── table_test.cc
│ │ ├── two_level_iterator.cc
│ │ └── two_level_iterator.h
│ └── util
│ │ ├── arena.cc
│ │ ├── arena.h
│ │ ├── arena_test.cc
│ │ ├── bloom.cc
│ │ ├── bloom_test.cc
│ │ ├── cache.cc
│ │ ├── cache_test.cc
│ │ ├── coding.cc
│ │ ├── coding.h
│ │ ├── coding_test.cc
│ │ ├── comparator.cc
│ │ ├── crc32c.cc
│ │ ├── crc32c.h
│ │ ├── crc32c_test.cc
│ │ ├── env.cc
│ │ ├── env_posix.cc
│ │ ├── env_posix_test.cc
│ │ ├── env_posix_test_helper.h
│ │ ├── env_test.cc
│ │ ├── env_windows.cc
│ │ ├── env_windows_test.cc
│ │ ├── env_windows_test_helper.h
│ │ ├── filter_policy.cc
│ │ ├── hash.cc
│ │ ├── hash.h
│ │ ├── hash_test.cc
│ │ ├── histogram.cc
│ │ ├── histogram.h
│ │ ├── logging.cc
│ │ ├── logging.h
│ │ ├── logging_test.cc
│ │ ├── mutexlock.h
│ │ ├── no_destructor.h
│ │ ├── no_destructor_test.cc
│ │ ├── options.cc
│ │ ├── posix_logger.h
│ │ ├── random.h
│ │ ├── status.cc
│ │ ├── status_test.cc
│ │ ├── testharness.cc
│ │ ├── testharness.h
│ │ ├── testutil.cc
│ │ ├── testutil.h
│ │ └── windows_logger.h
├── logging.cpp
├── logging.h
├── logging
│ └── timer.h
├── memusage.h
├── merkleblock.cpp
├── merkleblock.h
├── miner.cpp
├── miner.h
├── net.cpp
├── net.h
├── net_permissions.cpp
├── net_permissions.h
├── net_processing.cpp
├── net_processing.h
├── net_types.h
├── netaddress.cpp
├── netaddress.h
├── netbase.cpp
├── netbase.h
├── netmessagemaker.h
├── node
│ ├── README.md
│ ├── coin.cpp
│ ├── coin.h
│ ├── coinstats.cpp
│ ├── coinstats.h
│ ├── context.cpp
│ ├── context.h
│ ├── psbt.cpp
│ ├── psbt.h
│ ├── transaction.cpp
│ ├── transaction.h
│ ├── ui_interface.cpp
│ ├── ui_interface.h
│ └── utxo_snapshot.h
├── noui.cpp
├── noui.h
├── optional.h
├── outputtype.cpp
├── outputtype.h
├── policy
│ ├── feerate.cpp
│ ├── feerate.h
│ ├── fees.cpp
│ ├── fees.h
│ ├── policy.cpp
│ ├── policy.h
│ ├── rbf.cpp
│ ├── rbf.h
│ ├── settings.cpp
│ └── settings.h
├── pow.cpp
├── pow.h
├── prevector.h
├── primitives
│ ├── block.cpp
│ ├── block.h
│ ├── transaction.cpp
│ └── transaction.h
├── protocol.cpp
├── protocol.h
├── psbt.cpp
├── psbt.h
├── pubkey.cpp
├── pubkey.h
├── qt
│ ├── Makefile
│ ├── README.md
│ ├── addressbookpage.cpp
│ ├── addressbookpage.h
│ ├── addresstablemodel.cpp
│ ├── addresstablemodel.h
│ ├── askpassphrasedialog.cpp
│ ├── askpassphrasedialog.h
│ ├── bantablemodel.cpp
│ ├── bantablemodel.h
│ ├── clientmodel.cpp
│ ├── clientmodel.h
│ ├── coincontroldialog.cpp
│ ├── coincontroldialog.h
│ ├── coincontroltreewidget.cpp
│ ├── coincontroltreewidget.h
│ ├── createwalletdialog.cpp
│ ├── createwalletdialog.h
│ ├── csvmodelwriter.cpp
│ ├── csvmodelwriter.h
│ ├── editaddressdialog.cpp
│ ├── editaddressdialog.h
│ ├── forms
│ │ ├── addressbookpage.ui
│ │ ├── askpassphrasedialog.ui
│ │ ├── coincontroldialog.ui
│ │ ├── createwalletdialog.ui
│ │ ├── debugwindow.ui
│ │ ├── editaddressdialog.ui
│ │ ├── helpmessagedialog.ui
│ │ ├── intro.ui
│ │ ├── modaloverlay.ui
│ │ ├── openuridialog.ui
│ │ ├── optionsdialog.ui
│ │ ├── overviewpage.ui
│ │ ├── psbtoperationsdialog.ui
│ │ ├── receivecoinsdialog.ui
│ │ ├── receiverequestdialog.ui
│ │ ├── sendcoinsdialog.ui
│ │ ├── sendcoinsentry.ui
│ │ ├── signverifymessagedialog.ui
│ │ └── transactiondescdialog.ui
│ ├── guiconstants.h
│ ├── guiutil.cpp
│ ├── guiutil.h
│ ├── intro.cpp
│ ├── intro.h
│ ├── labyrinth.cpp
│ ├── labyrinth.h
│ ├── labyrinth.qrc
│ ├── labyrinth_locale.qrc
│ ├── labyrinthaddressvalidator.cpp
│ ├── labyrinthaddressvalidator.h
│ ├── labyrinthamountfield.cpp
│ ├── labyrinthamountfield.h
│ ├── labyrinthgui.cpp
│ ├── labyrinthgui.h
│ ├── labyrinthstrings.cpp
│ ├── labyrinthunits.cpp
│ ├── labyrinthunits.h
│ ├── locale
│ │ ├── labyrinth_af.ts
│ │ ├── labyrinth_am.ts
│ │ ├── labyrinth_ar.ts
│ │ ├── labyrinth_be.ts
│ │ ├── labyrinth_bg.ts
│ │ ├── labyrinth_bn.ts
│ │ ├── labyrinth_bs.ts
│ │ ├── labyrinth_ca.ts
│ │ ├── labyrinth_cs.ts
│ │ ├── labyrinth_cy.ts
│ │ ├── labyrinth_da.ts
│ │ ├── labyrinth_de.ts
│ │ ├── labyrinth_el.ts
│ │ ├── labyrinth_en.ts
│ │ ├── labyrinth_en_GB.ts
│ │ ├── labyrinth_eo.ts
│ │ ├── labyrinth_es.ts
│ │ ├── labyrinth_es_CL.ts
│ │ ├── labyrinth_es_CO.ts
│ │ ├── labyrinth_es_DO.ts
│ │ ├── labyrinth_es_MX.ts
│ │ ├── labyrinth_es_VE.ts
│ │ ├── labyrinth_et.ts
│ │ ├── labyrinth_eu.ts
│ │ ├── labyrinth_fa.ts
│ │ ├── labyrinth_fi.ts
│ │ ├── labyrinth_fil.ts
│ │ ├── labyrinth_fr.ts
│ │ ├── labyrinth_gl_ES.ts
│ │ ├── labyrinth_he.ts
│ │ ├── labyrinth_hi.ts
│ │ ├── labyrinth_hr.ts
│ │ ├── labyrinth_hu.ts
│ │ ├── labyrinth_id.ts
│ │ ├── labyrinth_is.ts
│ │ ├── labyrinth_it.ts
│ │ ├── labyrinth_ja.ts
│ │ ├── labyrinth_ka.ts
│ │ ├── labyrinth_kk.ts
│ │ ├── labyrinth_km.ts
│ │ ├── labyrinth_ko.ts
│ │ ├── labyrinth_ku_IQ.ts
│ │ ├── labyrinth_ky.ts
│ │ ├── labyrinth_la.ts
│ │ ├── labyrinth_lt.ts
│ │ ├── labyrinth_lv.ts
│ │ ├── labyrinth_mk.ts
│ │ ├── labyrinth_ml.ts
│ │ ├── labyrinth_mn.ts
│ │ ├── labyrinth_mr_IN.ts
│ │ ├── labyrinth_my.ts
│ │ ├── labyrinth_nb.ts
│ │ ├── labyrinth_ne.ts
│ │ ├── labyrinth_nl.ts
│ │ ├── labyrinth_pam.ts
│ │ ├── labyrinth_pl.ts
│ │ ├── labyrinth_pt.ts
│ │ ├── labyrinth_pt_BR.ts
│ │ ├── labyrinth_ro.ts
│ │ ├── labyrinth_ru.ts
│ │ ├── labyrinth_si.ts
│ │ ├── labyrinth_sk.ts
│ │ ├── labyrinth_sl.ts
│ │ ├── labyrinth_sn.ts
│ │ ├── labyrinth_sq.ts
│ │ ├── labyrinth_sr.ts
│ │ ├── labyrinth_sr@latin.ts
│ │ ├── labyrinth_sv.ts
│ │ ├── labyrinth_szl.ts
│ │ ├── labyrinth_ta.ts
│ │ ├── labyrinth_te.ts
│ │ ├── labyrinth_th.ts
│ │ ├── labyrinth_tr.ts
│ │ ├── labyrinth_uk.ts
│ │ ├── labyrinth_ur.ts
│ │ ├── labyrinth_uz@Cyrl.ts
│ │ ├── labyrinth_uz@Latn.ts
│ │ ├── labyrinth_vi.ts
│ │ ├── labyrinth_yo.ts
│ │ ├── labyrinth_zh-Hans.ts
│ │ ├── labyrinth_zh.ts
│ │ ├── labyrinth_zh_CN.ts
│ │ ├── labyrinth_zh_HK.ts
│ │ ├── labyrinth_zh_TW.ts
│ │ └── labyrinth_zu.ts
│ ├── macdockiconhandler.h
│ ├── macdockiconhandler.mm
│ ├── macnotificationhandler.h
│ ├── macnotificationhandler.mm
│ ├── macos_appnap.h
│ ├── macos_appnap.mm
│ ├── main.cpp
│ ├── modaloverlay.cpp
│ ├── modaloverlay.h
│ ├── networkstyle.cpp
│ ├── networkstyle.h
│ ├── notificator.cpp
│ ├── notificator.h
│ ├── openuridialog.cpp
│ ├── openuridialog.h
│ ├── optionsdialog.cpp
│ ├── optionsdialog.h
│ ├── optionsmodel.cpp
│ ├── optionsmodel.h
│ ├── overviewpage.cpp
│ ├── overviewpage.h
│ ├── paymentserver.cpp
│ ├── paymentserver.h
│ ├── peertablemodel.cpp
│ ├── peertablemodel.h
│ ├── platformstyle.cpp
│ ├── platformstyle.h
│ ├── psbtoperationsdialog.cpp
│ ├── psbtoperationsdialog.h
│ ├── qrimagewidget.cpp
│ ├── qrimagewidget.h
│ ├── qvalidatedlineedit.cpp
│ ├── qvalidatedlineedit.h
│ ├── qvaluecombobox.cpp
│ ├── qvaluecombobox.h
│ ├── receivecoinsdialog.cpp
│ ├── receivecoinsdialog.h
│ ├── receiverequestdialog.cpp
│ ├── receiverequestdialog.h
│ ├── recentrequeststablemodel.cpp
│ ├── recentrequeststablemodel.h
│ ├── res
│ │ ├── animation
│ │ │ ├── makespinner.sh
│ │ │ ├── spinner-000.png
│ │ │ ├── spinner-001.png
│ │ │ ├── spinner-002.png
│ │ │ ├── spinner-003.png
│ │ │ ├── spinner-004.png
│ │ │ ├── spinner-005.png
│ │ │ ├── spinner-006.png
│ │ │ ├── spinner-007.png
│ │ │ ├── spinner-008.png
│ │ │ ├── spinner-009.png
│ │ │ ├── spinner-010.png
│ │ │ ├── spinner-011.png
│ │ │ ├── spinner-012.png
│ │ │ ├── spinner-013.png
│ │ │ ├── spinner-014.png
│ │ │ ├── spinner-015.png
│ │ │ ├── spinner-016.png
│ │ │ ├── spinner-017.png
│ │ │ ├── spinner-018.png
│ │ │ ├── spinner-019.png
│ │ │ ├── spinner-020.png
│ │ │ ├── spinner-021.png
│ │ │ ├── spinner-022.png
│ │ │ ├── spinner-023.png
│ │ │ ├── spinner-024.png
│ │ │ ├── spinner-025.png
│ │ │ ├── spinner-026.png
│ │ │ ├── spinner-027.png
│ │ │ ├── spinner-028.png
│ │ │ ├── spinner-029.png
│ │ │ ├── spinner-030.png
│ │ │ ├── spinner-031.png
│ │ │ ├── spinner-032.png
│ │ │ ├── spinner-033.png
│ │ │ ├── spinner-034.png
│ │ │ └── spinner-035.png
│ │ ├── icons
│ │ │ ├── add.png
│ │ │ ├── address-book.png
│ │ │ ├── chevron.png
│ │ │ ├── clock1.png
│ │ │ ├── clock2.png
│ │ │ ├── clock3.png
│ │ │ ├── clock4.png
│ │ │ ├── clock5.png
│ │ │ ├── connect0.png
│ │ │ ├── connect1.png
│ │ │ ├── connect2.png
│ │ │ ├── connect3.png
│ │ │ ├── connect4.png
│ │ │ ├── edit.png
│ │ │ ├── editcopy.png
│ │ │ ├── editpaste.png
│ │ │ ├── export.png
│ │ │ ├── eye.png
│ │ │ ├── eye_minus.png
│ │ │ ├── eye_plus.png
│ │ │ ├── fontbigger.png
│ │ │ ├── fontsmaller.png
│ │ │ ├── hd_disabled.png
│ │ │ ├── hd_enabled.png
│ │ │ ├── history.png
│ │ │ ├── labyrinth.icns
│ │ │ ├── labyrinth.ico
│ │ │ ├── labyrinth.png
│ │ │ ├── labyrinth_testnet.ico
│ │ │ ├── lock_closed.png
│ │ │ ├── lock_open.png
│ │ │ ├── network_disabled.png
│ │ │ ├── overview.png
│ │ │ ├── proxy.png
│ │ │ ├── receive.png
│ │ │ ├── remove.png
│ │ │ ├── send.png
│ │ │ ├── synced.png
│ │ │ ├── transaction0.png
│ │ │ ├── transaction2.png
│ │ │ ├── transaction_abandoned.png
│ │ │ ├── transaction_conflicted.png
│ │ │ ├── tx_inout.png
│ │ │ ├── tx_input.png
│ │ │ ├── tx_mined.png
│ │ │ ├── tx_output.png
│ │ │ └── warning.png
│ │ ├── labyrinth-qt-res.rc
│ │ └── src
│ │ │ ├── clock_0.svg
│ │ │ ├── clock_1.svg
│ │ │ ├── clock_2.svg
│ │ │ ├── clock_3.svg
│ │ │ ├── clock_4.svg
│ │ │ ├── connect-0.svg
│ │ │ ├── connect-1.svg
│ │ │ ├── connect-2.svg
│ │ │ ├── connect-3.svg
│ │ │ ├── connect-4.svg
│ │ │ ├── hd_disabled.svg
│ │ │ ├── hd_enabled.svg
│ │ │ ├── labyrinth.svg
│ │ │ ├── mine.svg
│ │ │ ├── network_disabled.svg
│ │ │ ├── proxy.svg
│ │ │ ├── qt.svg
│ │ │ ├── spinner.png
│ │ │ ├── transaction0.svg
│ │ │ ├── tx_in.svg
│ │ │ └── tx_inout.svg
│ ├── rpcconsole.cpp
│ ├── rpcconsole.h
│ ├── sendcoinsdialog.cpp
│ ├── sendcoinsdialog.h
│ ├── sendcoinsentry.cpp
│ ├── sendcoinsentry.h
│ ├── sendcoinsrecipient.h
│ ├── signverifymessagedialog.cpp
│ ├── signverifymessagedialog.h
│ ├── splashscreen.cpp
│ ├── splashscreen.h
│ ├── test
│ │ ├── Makefile
│ │ ├── addressbooktests.cpp
│ │ ├── addressbooktests.h
│ │ ├── apptests.cpp
│ │ ├── apptests.h
│ │ ├── compattests.cpp
│ │ ├── compattests.h
│ │ ├── rpcnestedtests.cpp
│ │ ├── rpcnestedtests.h
│ │ ├── test_main.cpp
│ │ ├── uritests.cpp
│ │ ├── uritests.h
│ │ ├── util.cpp
│ │ ├── util.h
│ │ ├── wallettests.cpp
│ │ └── wallettests.h
│ ├── trafficgraphwidget.cpp
│ ├── trafficgraphwidget.h
│ ├── transactiondesc.cpp
│ ├── transactiondesc.h
│ ├── transactiondescdialog.cpp
│ ├── transactiondescdialog.h
│ ├── transactionfilterproxy.cpp
│ ├── transactionfilterproxy.h
│ ├── transactionoverviewwidget.h
│ ├── transactionrecord.cpp
│ ├── transactionrecord.h
│ ├── transactiontablemodel.cpp
│ ├── transactiontablemodel.h
│ ├── transactionview.cpp
│ ├── transactionview.h
│ ├── utilitydialog.cpp
│ ├── utilitydialog.h
│ ├── walletcontroller.cpp
│ ├── walletcontroller.h
│ ├── walletframe.cpp
│ ├── walletframe.h
│ ├── walletmodel.cpp
│ ├── walletmodel.h
│ ├── walletmodeltransaction.cpp
│ ├── walletmodeltransaction.h
│ ├── walletview.cpp
│ ├── walletview.h
│ ├── winshutdownmonitor.cpp
│ └── winshutdownmonitor.h
├── random.cpp
├── random.h
├── randomenv.cpp
├── randomenv.h
├── rest.cpp
├── reverse_iterator.h
├── rpc
│ ├── blockchain.cpp
│ ├── blockchain.h
│ ├── client.cpp
│ ├── client.h
│ ├── mining.cpp
│ ├── mining.h
│ ├── misc.cpp
│ ├── net.cpp
│ ├── protocol.h
│ ├── rawtransaction.cpp
│ ├── rawtransaction_util.cpp
│ ├── rawtransaction_util.h
│ ├── register.h
│ ├── request.cpp
│ ├── request.h
│ ├── server.cpp
│ ├── server.h
│ ├── util.cpp
│ └── util.h
├── scheduler.cpp
├── scheduler.h
├── script
│ ├── descriptor.cpp
│ ├── descriptor.h
│ ├── interpreter.cpp
│ ├── interpreter.h
│ ├── keyorigin.h
│ ├── labyrinthconsensus.cpp
│ ├── labyrinthconsensus.h
│ ├── script.cpp
│ ├── script.h
│ ├── script_error.cpp
│ ├── script_error.h
│ ├── sigcache.cpp
│ ├── sigcache.h
│ ├── sign.cpp
│ ├── sign.h
│ ├── signingprovider.cpp
│ ├── signingprovider.h
│ ├── standard.cpp
│ └── standard.h
├── secp256k1
│ ├── COPYING
│ ├── Makefile.am
│ ├── README.md
│ ├── SECURITY.md
│ ├── autogen.sh
│ ├── build-aux
│ │ └── m4
│ │ │ ├── ax_prog_cc_for_build.m4
│ │ │ └── labyrinth_secp.m4
│ ├── configure.ac
│ ├── contrib
│ │ ├── lax_der_parsing.c
│ │ ├── lax_der_parsing.h
│ │ ├── lax_der_privatekey_parsing.c
│ │ ├── lax_der_privatekey_parsing.h
│ │ └── travis.sh
│ ├── include
│ │ ├── secp256k1.h
│ │ ├── secp256k1_ecdh.h
│ │ ├── secp256k1_extrakeys.h
│ │ ├── secp256k1_preallocated.h
│ │ ├── secp256k1_recovery.h
│ │ └── secp256k1_schnorrsig.h
│ ├── libsecp256k1.pc.in
│ ├── sage
│ │ ├── gen_exhaustive_groups.sage
│ │ ├── group_prover.sage
│ │ ├── secp256k1.sage
│ │ └── weierstrass_prover.sage
│ └── src
│ │ ├── asm
│ │ └── field_10x26_arm.s
│ │ ├── assumptions.h
│ │ ├── basic-config.h
│ │ ├── bench.h
│ │ ├── bench_ecdh.c
│ │ ├── bench_ecmult.c
│ │ ├── bench_internal.c
│ │ ├── bench_recover.c
│ │ ├── bench_schnorrsig.c
│ │ ├── bench_sign.c
│ │ ├── bench_verify.c
│ │ ├── ecdsa.h
│ │ ├── ecdsa_impl.h
│ │ ├── eckey.h
│ │ ├── eckey_impl.h
│ │ ├── ecmult.h
│ │ ├── ecmult_const.h
│ │ ├── ecmult_const_impl.h
│ │ ├── ecmult_gen.h
│ │ ├── ecmult_gen_impl.h
│ │ ├── ecmult_impl.h
│ │ ├── field.h
│ │ ├── field_10x26.h
│ │ ├── field_10x26_impl.h
│ │ ├── field_5x52.h
│ │ ├── field_5x52_asm_impl.h
│ │ ├── field_5x52_impl.h
│ │ ├── field_5x52_int128_impl.h
│ │ ├── field_impl.h
│ │ ├── gen_context.c
│ │ ├── group.h
│ │ ├── group_impl.h
│ │ ├── hash.h
│ │ ├── hash_impl.h
│ │ ├── modules
│ │ ├── ecdh
│ │ │ ├── Makefile.am.include
│ │ │ ├── main_impl.h
│ │ │ └── tests_impl.h
│ │ ├── extrakeys
│ │ │ ├── Makefile.am.include
│ │ │ ├── main_impl.h
│ │ │ ├── tests_exhaustive_impl.h
│ │ │ └── tests_impl.h
│ │ ├── recovery
│ │ │ ├── Makefile.am.include
│ │ │ ├── main_impl.h
│ │ │ ├── tests_exhaustive_impl.h
│ │ │ └── tests_impl.h
│ │ └── schnorrsig
│ │ │ ├── Makefile.am.include
│ │ │ ├── main_impl.h
│ │ │ ├── tests_exhaustive_impl.h
│ │ │ └── tests_impl.h
│ │ ├── num.h
│ │ ├── num_gmp.h
│ │ ├── num_gmp_impl.h
│ │ ├── num_impl.h
│ │ ├── scalar.h
│ │ ├── scalar_4x64.h
│ │ ├── scalar_4x64_impl.h
│ │ ├── scalar_8x32.h
│ │ ├── scalar_8x32_impl.h
│ │ ├── scalar_impl.h
│ │ ├── scalar_low.h
│ │ ├── scalar_low_impl.h
│ │ ├── scratch.h
│ │ ├── scratch_impl.h
│ │ ├── secp256k1.c
│ │ ├── selftest.h
│ │ ├── testrand.h
│ │ ├── testrand_impl.h
│ │ ├── tests.c
│ │ ├── tests_exhaustive.c
│ │ ├── util.h
│ │ └── valgrind_ctime_test.c
├── serialize.h
├── shutdown.cpp
├── shutdown.h
├── span.h
├── streams.h
├── support
│ ├── allocators
│ │ ├── secure.h
│ │ └── zeroafterfree.h
│ ├── cleanse.cpp
│ ├── cleanse.h
│ ├── events.h
│ ├── lockedpool.cpp
│ └── lockedpool.h
├── sync.cpp
├── sync.h
├── test
│ ├── Makefile
│ ├── README.md
│ ├── addrman_tests.cpp
│ ├── allocator_tests.cpp
│ ├── amount_tests.cpp
│ ├── arith_uint256_tests.cpp
│ ├── base32_tests.cpp
│ ├── base58_tests.cpp
│ ├── base64_tests.cpp
│ ├── bech32_tests.cpp
│ ├── bip32_tests.cpp
│ ├── blockchain_tests.cpp
│ ├── blockencodings_tests.cpp
│ ├── blockfilter_index_tests.cpp
│ ├── blockfilter_tests.cpp
│ ├── bloom_tests.cpp
│ ├── bswap_tests.cpp
│ ├── checkqueue_tests.cpp
│ ├── coins_tests.cpp
│ ├── compilerbug_tests.cpp
│ ├── compress_tests.cpp
│ ├── crypto_tests.cpp
│ ├── cuckoocache_tests.cpp
│ ├── data
│ │ ├── README.md
│ │ ├── asmap.raw
│ │ ├── base58_encode_decode.json
│ │ ├── blockfilters.json
│ │ ├── key_io_invalid.json
│ │ ├── key_io_valid.json
│ │ ├── script_tests.json
│ │ ├── sighash.json
│ │ ├── tx_invalid.json
│ │ └── tx_valid.json
│ ├── dbwrapper_tests.cpp
│ ├── denialofservice_tests.cpp
│ ├── descriptor_tests.cpp
│ ├── flatfile_tests.cpp
│ ├── fs_tests.cpp
│ ├── fuzz
│ │ ├── FuzzedDataProvider.h
│ │ ├── addition_overflow.cpp
│ │ ├── addrdb.cpp
│ │ ├── addrman.cpp
│ │ ├── asmap.cpp
│ │ ├── asmap_direct.cpp
│ │ ├── autofile.cpp
│ │ ├── banman.cpp
│ │ ├── base_encode_decode.cpp
│ │ ├── bech32.cpp
│ │ ├── block.cpp
│ │ ├── block_header.cpp
│ │ ├── blockfilter.cpp
│ │ ├── bloom_filter.cpp
│ │ ├── buffered_file.cpp
│ │ ├── chain.cpp
│ │ ├── checkqueue.cpp
│ │ ├── coins_view.cpp
│ │ ├── connman.cpp
│ │ ├── crypto.cpp
│ │ ├── crypto_aes256.cpp
│ │ ├── crypto_aes256cbc.cpp
│ │ ├── crypto_chacha20.cpp
│ │ ├── crypto_chacha20_poly1305_aead.cpp
│ │ ├── crypto_common.cpp
│ │ ├── crypto_hkdf_hmac_sha256_l32.cpp
│ │ ├── crypto_poly1305.cpp
│ │ ├── cuckoocache.cpp
│ │ ├── decode_tx.cpp
│ │ ├── descriptor_parse.cpp
│ │ ├── deserialize.cpp
│ │ ├── eval_script.cpp
│ │ ├── fee_rate.cpp
│ │ ├── fees.cpp
│ │ ├── flatfile.cpp
│ │ ├── float.cpp
│ │ ├── fuzz.cpp
│ │ ├── fuzz.h
│ │ ├── golomb_rice.cpp
│ │ ├── hex.cpp
│ │ ├── http_request.cpp
│ │ ├── integer.cpp
│ │ ├── key.cpp
│ │ ├── key_io.cpp
│ │ ├── kitchen_sink.cpp
│ │ ├── load_external_block_file.cpp
│ │ ├── locale.cpp
│ │ ├── merkleblock.cpp
│ │ ├── message.cpp
│ │ ├── multiplication_overflow.cpp
│ │ ├── net.cpp
│ │ ├── net_permissions.cpp
│ │ ├── netaddress.cpp
│ │ ├── p2p_transport_deserializer.cpp
│ │ ├── parse_hd_keypath.cpp
│ │ ├── parse_iso8601.cpp
│ │ ├── parse_numbers.cpp
│ │ ├── parse_script.cpp
│ │ ├── parse_univalue.cpp
│ │ ├── policy_estimator.cpp
│ │ ├── policy_estimator_io.cpp
│ │ ├── pow.cpp
│ │ ├── prevector.cpp
│ │ ├── primitives_transaction.cpp
│ │ ├── process_message.cpp
│ │ ├── process_messages.cpp
│ │ ├── protocol.cpp
│ │ ├── psbt.cpp
│ │ ├── random.cpp
│ │ ├── rbf.cpp
│ │ ├── rolling_bloom_filter.cpp
│ │ ├── script.cpp
│ │ ├── script_assets_test_minimizer.cpp
│ │ ├── script_descriptor_cache.cpp
│ │ ├── script_flags.cpp
│ │ ├── script_interpreter.cpp
│ │ ├── script_labyrinth_consensus.cpp
│ │ ├── script_ops.cpp
│ │ ├── script_sigcache.cpp
│ │ ├── script_sign.cpp
│ │ ├── scriptnum_ops.cpp
│ │ ├── secp256k1_ec_seckey_import_export_der.cpp
│ │ ├── secp256k1_ecdsa_signature_parse_der_lax.cpp
│ │ ├── signature_checker.cpp
│ │ ├── span.cpp
│ │ ├── spanparsing.cpp
│ │ ├── string.cpp
│ │ ├── strprintf.cpp
│ │ ├── system.cpp
│ │ ├── timedata.cpp
│ │ ├── transaction.cpp
│ │ ├── tx_in.cpp
│ │ ├── tx_out.cpp
│ │ ├── txrequest.cpp
│ │ ├── util.h
│ │ └── versionbits.cpp
│ ├── getarg_tests.cpp
│ ├── hash_tests.cpp
│ ├── interfaces_tests.cpp
│ ├── key_io_tests.cpp
│ ├── key_tests.cpp
│ ├── logging_tests.cpp
│ ├── main.cpp
│ ├── mempool_tests.cpp
│ ├── merkle_tests.cpp
│ ├── merkleblock_tests.cpp
│ ├── miner_tests.cpp
│ ├── multisig_tests.cpp
│ ├── net_tests.cpp
│ ├── netbase_tests.cpp
│ ├── pmt_tests.cpp
│ ├── policy_fee_tests.cpp
│ ├── policyestimator_tests.cpp
│ ├── pow_tests.cpp
│ ├── prevector_tests.cpp
│ ├── raii_event_tests.cpp
│ ├── random_tests.cpp
│ ├── ref_tests.cpp
│ ├── reverselock_tests.cpp
│ ├── rpc_tests.cpp
│ ├── sanity_tests.cpp
│ ├── scheduler_tests.cpp
│ ├── script_p2sh_tests.cpp
│ ├── script_standard_tests.cpp
│ ├── script_tests.cpp
│ ├── scriptnum10.h
│ ├── scriptnum_tests.cpp
│ ├── serialize_tests.cpp
│ ├── settings_tests.cpp
│ ├── sighash_tests.cpp
│ ├── sigopcount_tests.cpp
│ ├── skiplist_tests.cpp
│ ├── streams_tests.cpp
│ ├── sync_tests.cpp
│ ├── system_tests.cpp
│ ├── timedata_tests.cpp
│ ├── torcontrol_tests.cpp
│ ├── transaction_tests.cpp
│ ├── txindex_tests.cpp
│ ├── txrequest_tests.cpp
│ ├── txvalidation_tests.cpp
│ ├── txvalidationcache_tests.cpp
│ ├── uint256_tests.cpp
│ ├── util
│ │ ├── README.md
│ │ ├── blockfilter.cpp
│ │ ├── blockfilter.h
│ │ ├── logging.cpp
│ │ ├── logging.h
│ │ ├── mining.cpp
│ │ ├── mining.h
│ │ ├── net.cpp
│ │ ├── net.h
│ │ ├── setup_common.cpp
│ │ ├── setup_common.h
│ │ ├── str.cpp
│ │ ├── str.h
│ │ ├── transaction_utils.cpp
│ │ ├── transaction_utils.h
│ │ ├── validation.cpp
│ │ ├── validation.h
│ │ ├── wallet.cpp
│ │ └── wallet.h
│ ├── util_tests.cpp
│ ├── util_threadnames_tests.cpp
│ ├── validation_block_tests.cpp
│ ├── validation_chainstate_tests.cpp
│ ├── validation_chainstatemanager_tests.cpp
│ ├── validation_flush_tests.cpp
│ ├── validation_tests.cpp
│ ├── validationinterface_tests.cpp
│ └── versionbits_tests.cpp
├── threadinterrupt.cpp
├── threadinterrupt.h
├── threadsafety.h
├── timedata.cpp
├── timedata.h
├── tinyformat.h
├── torcontrol.cpp
├── torcontrol.h
├── txdb.cpp
├── txdb.h
├── txmempool.cpp
├── txmempool.h
├── txrequest.cpp
├── txrequest.h
├── uint256.cpp
├── uint256.h
├── undo.h
├── univalue
│ ├── COPYING
│ ├── Makefile.am
│ ├── README.md
│ ├── TODO
│ ├── autogen.sh
│ ├── configure.ac
│ ├── gen
│ │ └── gen.cpp
│ ├── include
│ │ └── univalue.h
│ ├── lib
│ │ ├── univalue.cpp
│ │ ├── univalue_escapes.h
│ │ ├── univalue_get.cpp
│ │ ├── univalue_read.cpp
│ │ ├── univalue_utffilter.h
│ │ └── univalue_write.cpp
│ ├── pc
│ │ ├── libunivalue-uninstalled.pc.in
│ │ └── libunivalue.pc.in
│ └── test
│ │ ├── fail1.json
│ │ ├── fail10.json
│ │ ├── fail11.json
│ │ ├── fail12.json
│ │ ├── fail13.json
│ │ ├── fail14.json
│ │ ├── fail15.json
│ │ ├── fail16.json
│ │ ├── fail17.json
│ │ ├── fail18.json
│ │ ├── fail19.json
│ │ ├── fail2.json
│ │ ├── fail20.json
│ │ ├── fail21.json
│ │ ├── fail22.json
│ │ ├── fail23.json
│ │ ├── fail24.json
│ │ ├── fail25.json
│ │ ├── fail26.json
│ │ ├── fail27.json
│ │ ├── fail28.json
│ │ ├── fail29.json
│ │ ├── fail3.json
│ │ ├── fail30.json
│ │ ├── fail31.json
│ │ ├── fail32.json
│ │ ├── fail33.json
│ │ ├── fail34.json
│ │ ├── fail35.json
│ │ ├── fail36.json
│ │ ├── fail37.json
│ │ ├── fail38.json
│ │ ├── fail39.json
│ │ ├── fail4.json
│ │ ├── fail40.json
│ │ ├── fail41.json
│ │ ├── fail42.json
│ │ ├── fail44.json
│ │ ├── fail45.json
│ │ ├── fail5.json
│ │ ├── fail6.json
│ │ ├── fail7.json
│ │ ├── fail8.json
│ │ ├── fail9.json
│ │ ├── no_nul.cpp
│ │ ├── object.cpp
│ │ ├── pass1.json
│ │ ├── pass2.json
│ │ ├── pass3.json
│ │ ├── pass4.json
│ │ ├── round1.json
│ │ ├── round2.json
│ │ ├── round3.json
│ │ ├── round4.json
│ │ ├── round5.json
│ │ ├── round6.json
│ │ ├── round7.json
│ │ ├── test_json.cpp
│ │ └── unitester.cpp
├── util
│ ├── asmap.cpp
│ ├── asmap.h
│ ├── bip32.cpp
│ ├── bip32.h
│ ├── bytevectorhash.cpp
│ ├── bytevectorhash.h
│ ├── check.h
│ ├── error.cpp
│ ├── error.h
│ ├── fees.cpp
│ ├── fees.h
│ ├── golombrice.h
│ ├── macros.h
│ ├── memory.h
│ ├── message.cpp
│ ├── message.h
│ ├── moneystr.cpp
│ ├── moneystr.h
│ ├── rbf.cpp
│ ├── rbf.h
│ ├── ref.h
│ ├── settings.cpp
│ ├── settings.h
│ ├── spanparsing.cpp
│ ├── spanparsing.h
│ ├── strencodings.cpp
│ ├── strencodings.h
│ ├── string.cpp
│ ├── string.h
│ ├── system.cpp
│ ├── system.h
│ ├── threadnames.cpp
│ ├── threadnames.h
│ ├── time.cpp
│ ├── time.h
│ ├── translation.h
│ ├── ui_change_type.h
│ ├── url.cpp
│ ├── url.h
│ └── vector.h
├── validation.cpp
├── validation.h
├── validationinterface.cpp
├── validationinterface.h
├── version.h
├── versionbits.cpp
├── versionbits.h
├── versionbitsinfo.cpp
├── versionbitsinfo.h
├── wallet
│ ├── bdb.cpp
│ ├── bdb.h
│ ├── coincontrol.cpp
│ ├── coincontrol.h
│ ├── coinselection.cpp
│ ├── coinselection.h
│ ├── context.cpp
│ ├── context.h
│ ├── crypter.cpp
│ ├── crypter.h
│ ├── db.cpp
│ ├── db.h
│ ├── feebumper.cpp
│ ├── feebumper.h
│ ├── fees.cpp
│ ├── fees.h
│ ├── init.cpp
│ ├── ismine.h
│ ├── load.cpp
│ ├── load.h
│ ├── rpcdump.cpp
│ ├── rpcwallet.cpp
│ ├── rpcwallet.h
│ ├── salvage.cpp
│ ├── salvage.h
│ ├── scriptpubkeyman.cpp
│ ├── scriptpubkeyman.h
│ ├── sqlite.cpp
│ ├── sqlite.h
│ ├── test
│ │ ├── coinselector_tests.cpp
│ │ ├── db_tests.cpp
│ │ ├── init_test_fixture.cpp
│ │ ├── init_test_fixture.h
│ │ ├── init_tests.cpp
│ │ ├── ismine_tests.cpp
│ │ ├── psbt_wallet_tests.cpp
│ │ ├── scriptpubkeyman_tests.cpp
│ │ ├── wallet_crypto_tests.cpp
│ │ ├── wallet_test_fixture.cpp
│ │ ├── wallet_test_fixture.h
│ │ └── wallet_tests.cpp
│ ├── wallet.cpp
│ ├── wallet.h
│ ├── walletdb.cpp
│ ├── walletdb.h
│ ├── wallettool.cpp
│ ├── wallettool.h
│ ├── walletutil.cpp
│ └── walletutil.h
├── walletinitinterface.h
├── warnings.cpp
├── warnings.h
└── zmq
│ ├── zmqabstractnotifier.cpp
│ ├── zmqabstractnotifier.h
│ ├── zmqnotificationinterface.cpp
│ ├── zmqnotificationinterface.h
│ ├── zmqpublishnotifier.cpp
│ ├── zmqpublishnotifier.h
│ ├── zmqrpc.cpp
│ ├── zmqrpc.h
│ ├── zmqutil.cpp
│ └── zmqutil.h
└── test
├── README.md
├── config.ini.in
├── functional
├── README.md
├── combine_logs.py
├── combined_log_template.html
├── create_cache.py
├── data
│ ├── blockheader_testnet3.hex
│ ├── invalid_txs.py
│ ├── rpc_bip67.json
│ ├── rpc_getblockstats.json
│ └── rpc_psbt.json
├── example_test.py
├── feature_abortnode.py
├── feature_asmap.py
├── feature_assumevalid.py
├── feature_backwards_compatibility.py
├── feature_bip68_sequence.py
├── feature_block.py
├── feature_blocksdir.py
├── feature_cltv.py
├── feature_config_args.py
├── feature_csv_activation.py
├── feature_dbcrash.py
├── feature_dersig.py
├── feature_fee_estimation.py
├── feature_filelock.py
├── feature_help.py
├── feature_includeconf.py
├── feature_loadblock.py
├── feature_logging.py
├── feature_maxuploadtarget.py
├── feature_minchainwork.py
├── feature_notifications.py
├── feature_nulldummy.py
├── feature_proxy.py
├── feature_pruning.py
├── feature_rbf.py
├── feature_reindex.py
├── feature_segwit.py
├── feature_settings.py
├── feature_shutdown.py
├── feature_taproot.py
├── feature_uacomment.py
├── feature_versionbits_warning.py
├── interface_http.py
├── interface_labyrinth_cli.py
├── interface_rest.py
├── interface_rpc.py
├── interface_zmq.py
├── mempool_accept.py
├── mempool_compatibility.py
├── mempool_expiry.py
├── mempool_limit.py
├── mempool_package_onemore.py
├── mempool_packages.py
├── mempool_persist.py
├── mempool_reorg.py
├── mempool_resurrect.py
├── mempool_spend_coinbase.py
├── mempool_unbroadcast.py
├── mempool_updatefromblock.py
├── mining_basic.py
├── mining_getblocktemplate_longpoll.py
├── mining_prioritisetransaction.py
├── p2p_addr_relay.py
├── p2p_addrv2_relay.py
├── p2p_blockfilters.py
├── p2p_blocksonly.py
├── p2p_compactblocks.py
├── p2p_disconnect_ban.py
├── p2p_dos_header_tree.py
├── p2p_eviction.py
├── p2p_feefilter.py
├── p2p_filter.py
├── p2p_fingerprint.py
├── p2p_getaddr_caching.py
├── p2p_getdata.py
├── p2p_ibd_txrelay.py
├── p2p_invalid_block.py
├── p2p_invalid_locator.py
├── p2p_invalid_messages.py
├── p2p_invalid_tx.py
├── p2p_leak.py
├── p2p_leak_tx.py
├── p2p_nobloomfilter_messages.py
├── p2p_node_network_limited.py
├── p2p_permissions.py
├── p2p_ping.py
├── p2p_segwit.py
├── p2p_sendheaders.py
├── p2p_timeouts.py
├── p2p_tx_download.py
├── p2p_unrequested_blocks.py
├── rpc_bind.py
├── rpc_blockchain.py
├── rpc_createmultisig.py
├── rpc_decodescript.py
├── rpc_deprecated.py
├── rpc_deriveaddresses.py
├── rpc_dumptxoutset.py
├── rpc_estimatefee.py
├── rpc_fundrawtransaction.py
├── rpc_generate.py
├── rpc_generateblock.py
├── rpc_getblockfilter.py
├── rpc_getblockstats.py
├── rpc_getchaintips.py
├── rpc_getdescriptorinfo.py
├── rpc_getpeerinfo_deprecation.py
├── rpc_help.py
├── rpc_invalid_address_message.py
├── rpc_invalidateblock.py
├── rpc_misc.py
├── rpc_named_arguments.py
├── rpc_net.py
├── rpc_preciousblock.py
├── rpc_psbt.py
├── rpc_rawtransaction.py
├── rpc_scantxoutset.py
├── rpc_setban.py
├── rpc_signmessage.py
├── rpc_signrawtransaction.py
├── rpc_txoutproof.py
├── rpc_uptime.py
├── rpc_users.py
├── rpc_whitelist.py
├── test-shell.md
├── test_framework
│ ├── __init__.py
│ ├── address.py
│ ├── authproxy.py
│ ├── bdb.py
│ ├── bip340_test_vectors.csv
│ ├── blocktools.py
│ ├── coverage.py
│ ├── descriptors.py
│ ├── key.py
│ ├── messages.py
│ ├── muhash.py
│ ├── netutil.py
│ ├── p2p.py
│ ├── script.py
│ ├── script_util.py
│ ├── segwit_addr.py
│ ├── siphash.py
│ ├── socks5.py
│ ├── test_framework.py
│ ├── test_node.py
│ ├── test_shell.py
│ ├── util.py
│ ├── wallet.py
│ └── wallet_util.py
├── test_runner.py
├── tool_wallet.py
├── wallet_abandonconflict.py
├── wallet_address_types.py
├── wallet_avoidreuse.py
├── wallet_backup.py
├── wallet_balance.py
├── wallet_basic.py
├── wallet_bumpfee.py
├── wallet_coinbase_category.py
├── wallet_create_tx.py
├── wallet_createwallet.py
├── wallet_descriptor.py
├── wallet_disable.py
├── wallet_dump.py
├── wallet_encryption.py
├── wallet_fallbackfee.py
├── wallet_groups.py
├── wallet_hd.py
├── wallet_implicitsegwit.py
├── wallet_import_rescan.py
├── wallet_import_with_label.py
├── wallet_importdescriptors.py
├── wallet_importmulti.py
├── wallet_importprunedfunds.py
├── wallet_keypool.py
├── wallet_keypool_topup.py
├── wallet_labels.py
├── wallet_listreceivedby.py
├── wallet_listsinceblock.py
├── wallet_listtransactions.py
├── wallet_multiwallet.py
├── wallet_reorgsrestore.py
├── wallet_resendwallettransactions.py
├── wallet_send.py
├── wallet_startup.py
├── wallet_txn_clone.py
├── wallet_txn_doublespend.py
├── wallet_upgradewallet.py
└── wallet_watchonly.py
├── fuzz
└── test_runner.py
├── get_previous_releases.py
└── util
├── data
├── blanktxv1.hex
├── blanktxv1.json
├── blanktxv2.hex
├── blanktxv2.json
├── labyrinth-util-test.json
├── tt-delin1-out.hex
├── tt-delin1-out.json
├── tt-delout1-out.hex
├── tt-delout1-out.json
├── tt-locktime317000-out.hex
├── tt-locktime317000-out.json
├── tx394b54bb.hex
├── txcreate1.hex
├── txcreate1.json
├── txcreate2.hex
├── txcreate2.json
├── txcreatedata1.hex
├── txcreatedata1.json
├── txcreatedata2.hex
├── txcreatedata2.json
├── txcreatedata_seq0.hex
├── txcreatedata_seq0.json
├── txcreatedata_seq1.hex
├── txcreatedata_seq1.json
├── txcreatemultisig1.hex
├── txcreatemultisig1.json
├── txcreatemultisig2.hex
├── txcreatemultisig2.json
├── txcreatemultisig3.hex
├── txcreatemultisig3.json
├── txcreatemultisig4.hex
├── txcreatemultisig4.json
├── txcreatemultisig5.json
├── txcreateoutpubkey1.hex
├── txcreateoutpubkey1.json
├── txcreateoutpubkey2.hex
├── txcreateoutpubkey2.json
├── txcreateoutpubkey3.hex
├── txcreateoutpubkey3.json
├── txcreatescript1.hex
├── txcreatescript1.json
├── txcreatescript2.hex
├── txcreatescript2.json
├── txcreatescript3.hex
├── txcreatescript3.json
├── txcreatescript4.hex
├── txcreatescript4.json
├── txcreatescript5.hex
├── txcreatescript6.hex
├── txcreatesignv1.hex
├── txcreatesignv1.json
└── txcreatesignv2.hex
├── labyrinth-util-test.py
└── rpcauth-test.py
/INSTALL.md:
--------------------------------------------------------------------------------
1 | Building Labyrinth
2 | ================
3 |
4 | See doc/build-*.md for instructions on building the various
5 | elements of the Labyrinth Core reference implementation of Labyrinth.
6 |
--------------------------------------------------------------------------------
/autogen.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright (c) 2013-2019 The Bitcoin Core developers
3 | # Copyright (c) 2021-2022 The Labyrinth Core developers
4 | # Distributed under the MIT software license, see the accompanying
5 | # file COPYING or http://www.opensource.org/licenses/mit-license.php.
6 |
7 | export LC_ALL=C
8 | set -e
9 | srcdir="$(dirname "$0")"
10 | cd "$srcdir"
11 | if [ -z "${LIBTOOLIZE}" ] && GLIBTOOLIZE="$(command -v glibtoolize)"; then
12 | LIBTOOLIZE="${GLIBTOOLIZE}"
13 | export LIBTOOLIZE
14 | fi
15 | command -v autoreconf >/dev/null || \
16 | (echo "configuration failed, please install autoconf first" && exit 1)
17 | autoreconf --install --force --warnings=all
18 |
--------------------------------------------------------------------------------
/build-aux/m4/labyrinth_subdir_to_include.m4:
--------------------------------------------------------------------------------
1 | dnl Copyright (c) 2013-2014 The Bitcoin Core developers
2 | dnl Copyright (c) 2021-2022 The Labyrinth Core developers
3 | dnl Distributed under the MIT software license, see the accompanying
4 | dnl file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | dnl LABYRINTH_SUBDIR_TO_INCLUDE([CPPFLAGS-VARIABLE-NAME],[SUBDIRECTORY-NAME],[HEADER-FILE])
7 | dnl SUBDIRECTORY-NAME must end with a path separator
8 | AC_DEFUN([LABYRINTH_SUBDIR_TO_INCLUDE],[
9 | if test "x$2" = "x"; then
10 | AC_MSG_RESULT([default])
11 | else
12 | echo "#include <$2$3.h>" >conftest.cpp
13 | newinclpath=`${CXXCPP} ${CPPFLAGS} -M conftest.cpp 2>/dev/null | [ tr -d '\\n\\r\\\\' | sed -e 's/^.*[[:space:]:]\(\/[^[:space:]]*\)]$3[\.h[[:space:]].*$/\1/' -e t -e d`]
14 | AC_MSG_RESULT([${newinclpath}])
15 | if test "x${newinclpath}" != "x"; then
16 | eval "$1=\"\$$1\"' -I${newinclpath}'"
17 | fi
18 | fi
19 | ])
20 |
--------------------------------------------------------------------------------
/build_msvc/common.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | $(BuildDependsOn);CopyBuildArtifacts
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_cli/liblabyrinth_cli.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {0667528C-D734-4009-ADF9-C0D6C4A5A5A6}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_common/liblabyrinth_common.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {7C87E378-DF58-482E-AA2F-1BC129BC19CE}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_crypto/liblabyrinth_crypto.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {6190199C-6CF4-4DAD-BFBD-93FA72A760C1}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_server/liblabyrinth_server.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {460FEE33-1FE1-483F-B3BF-931FF8E969A5}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 | $(IntDir)wallet_init.obj
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_util/liblabyrinth_util.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {B53A5535-EE9D-4C6F-9A26-F79EE3BC3754}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 |
12 | @SOURCE_FILES@
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_wallet/liblabyrinth_wallet.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {93B86837-B543-48A5-A89B-7C87ABB77DF2}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_wallet_tool/liblabyrinth_wallet_tool.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {F91AC55E-6F5E-4C58-9AC5-B40DB7DEEF93}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/liblabyrinth_zmq/liblabyrinth_zmq.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {792D487F-F14C-49FC-A9DE-3FC150F31C3F}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/libtest_util/libtest_util.vcxproj.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {868474FD-35F6-4400-8EED-30A33E7521D4}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 | @SOURCE_FILES@
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/build_msvc/libunivalue/libunivalue.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {5724BA7D-A09A-4BA8-800B-C4C1561B3D69}
6 |
7 |
8 | StaticLibrary
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/build_msvc/vcpkg.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "labyrinth-core",
3 | "version-string": "1",
4 | "dependencies": [
5 | "berkeleydb",
6 | "boost-filesystem",
7 | "boost-multi-index",
8 | "boost-process",
9 | "boost-signals2",
10 | "boost-test",
11 | "boost-thread",
12 | "sqlite3",
13 | "double-conversion",
14 | {
15 | "name": "libevent",
16 | "features": ["thread"]
17 | },
18 | "zeromq"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/contrib/devtools/split-debug.sh.in:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 | if [ $# -ne 3 ];
4 | then echo "usage: $0 "
5 | fi
6 |
7 | @OBJCOPY@ --enable-deterministic-archives -p --only-keep-debug $1 $3
8 | @OBJCOPY@ --enable-deterministic-archives -p --strip-debug $1 $2
9 | @STRIP@ --enable-deterministic-archives -p -s $2
10 | @OBJCOPY@ --enable-deterministic-archives -p --add-gnu-debuglink=$3 $2
11 |
--------------------------------------------------------------------------------
/contrib/init/README.md:
--------------------------------------------------------------------------------
1 | Sample configuration files for:
2 | ```
3 | SystemD: labyrinthd.service
4 | Upstart: labyrinthd.conf
5 | OpenRC: labyrinthd.openrc
6 | labyrinthd.openrcconf
7 | CentOS: labyrinthd.init
8 | macOS: org.labyrinth.labyrinthd.plist
9 | ```
10 | have been made available to assist packagers in creating node packages here.
11 |
12 | See doc/init.md for more information.
13 |
--------------------------------------------------------------------------------
/contrib/init/org.labyrinth.labyrinthd.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Label
6 | org.labyrinth.labyrinthd
7 | ProgramArguments
8 |
9 | /usr/local/bin/labyrinthd
10 |
11 | RunAtLoad
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/contrib/labyrinth-qt.pro:
--------------------------------------------------------------------------------
1 | FORMS += \
2 | ../src/qt/forms/aboutdialog.ui \
3 | ../src/qt/forms/addressbookpage.ui \
4 | ../src/qt/forms/askpassphrasedialog.ui \
5 | ../src/qt/forms/coincontroldialog.ui \
6 | ../src/qt/forms/editaddressdialog.ui \
7 | ../src/qt/forms/helpmessagedialog.ui \
8 | ../src/qt/forms/intro.ui \
9 | ../src/qt/forms/openuridialog.ui \
10 | ../src/qt/forms/optionsdialog.ui \
11 | ../src/qt/forms/overviewpage.ui \
12 | ../src/qt/forms/receivecoinsdialog.ui \
13 | ../src/qt/forms/receiverequestdialog.ui \
14 | ../src/qt/forms/debugwindow.ui \
15 | ../src/qt/forms/sendcoinsdialog.ui \
16 | ../src/qt/forms/sendcoinsentry.ui \
17 | ../src/qt/forms/signverifymessagedialog.ui \
18 | ../src/qt/forms/transactiondescdialog.ui \
19 | ../src/qt/forms/createwalletdialog.ui
20 |
21 | RESOURCES += \
22 | ../src/qt/labyrinth.qrc
23 |
--------------------------------------------------------------------------------
/contrib/macdeploy/fancy.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | window_bounds
6 |
7 | 300
8 | 300
9 | 800
10 | 620
11 |
12 | background_picture
13 | background.tiff
14 | icon_size
15 | 96
16 | applications_symlink
17 |
18 | items_position
19 |
20 | Applications
21 |
22 | 370
23 | 156
24 |
25 | Labyrinth-Qt.app
26 |
27 | 128
28 | 156
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/contrib/seeds/README.md:
--------------------------------------------------------------------------------
1 | # Seeds
2 |
3 | Utility to generate the seeds.txt list that is compiled into the client
4 | (see [src/chainparamsseeds.h](/src/chainparamsseeds.h) and other utilities in [contrib/seeds](/contrib/seeds)).
5 |
6 | Be sure to update `PATTERN_AGENT` in `makeseeds.py` to include the current version,
7 | and remove old versions as necessary (at a minimum when GetDesirableServiceFlags
8 | changes its default return value, as those are the services which seeds are added
9 | to addrman with).
10 |
11 | The seeds compiled into the release are created from sipa's DNS seed data, like this:
12 |
13 | curl -s http://labyrinth.sipa.be/seeds.txt.gz | gzip -dc > seeds_main.txt
14 | python3 makeseeds.py < seeds_main.txt > nodes_main.txt
15 | python3 generate-seeds.py . > ../../src/chainparamsseeds.h
16 |
17 | ## Dependencies
18 |
19 | Ubuntu:
20 |
21 | sudo apt-get install python3-dnspython
22 |
--------------------------------------------------------------------------------
/contrib/seeds/nodes_main.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/contrib/seeds/nodes_main.txt
--------------------------------------------------------------------------------
/contrib/seeds/nodes_test.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/contrib/seeds/nodes_test.txt
--------------------------------------------------------------------------------
/contrib/seeds/suspicious_hosts.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/contrib/seeds/suspicious_hosts.txt
--------------------------------------------------------------------------------
/contrib/testgen/README.md:
--------------------------------------------------------------------------------
1 | ### TestGen ###
2 |
3 | Utilities to generate test vectors for the data-driven Labyrinth tests.
4 |
5 | Usage:
6 |
7 | PYTHONPATH=../../test/functional/test_framework ./gen_key_io_test_vectors.py valid 70 > ../../src/test/data/key_io_valid.json
8 | PYTHONPATH=../../test/functional/test_framework ./gen_key_io_test_vectors.py invalid 70 > ../../src/test/data/key_io_invalid.json
9 |
--------------------------------------------------------------------------------
/depends/builders/default.mk:
--------------------------------------------------------------------------------
1 | default_build_CC = gcc
2 | default_build_CXX = g++
3 | default_build_AR = ar
4 | default_build_RANLIB = ranlib
5 | default_build_STRIP = strip
6 | default_build_NM = nm
7 | default_build_OTOOL = otool
8 | default_build_INSTALL_NAME_TOOL = install_name_tool
9 |
10 | define add_build_tool_func
11 | build_$(build_os)_$1 ?= $$(default_build_$1)
12 | build_$(build_arch)_$(build_os)_$1 ?= $$(build_$(build_os)_$1)
13 | build_$1=$$(build_$(build_arch)_$(build_os)_$1)
14 | endef
15 | $(foreach var,CC CXX AR RANLIB NM STRIP SHA256SUM DOWNLOAD OTOOL INSTALL_NAME_TOOL,$(eval $(call add_build_tool_func,$(var))))
16 | define add_build_flags_func
17 | build_$(build_arch)_$(build_os)_$1 += $(build_$(build_os)_$1)
18 | build_$1=$$(build_$(build_arch)_$(build_os)_$1)
19 | endef
20 | $(foreach flags, CFLAGS CXXFLAGS LDFLAGS, $(eval $(call add_build_flags_func,$(flags))))
21 |
--------------------------------------------------------------------------------
/depends/builders/linux.mk:
--------------------------------------------------------------------------------
1 | build_linux_SHA256SUM = sha256sum
2 | build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
3 |
--------------------------------------------------------------------------------
/depends/hosts/android.mk:
--------------------------------------------------------------------------------
1 | ifeq ($(HOST),armv7a-linux-android)
2 | android_AR=$(ANDROID_TOOLCHAIN_BIN)/arm-linux-androideabi-ar
3 | android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)eabi$(ANDROID_API_LEVEL)-clang++
4 | android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)eabi$(ANDROID_API_LEVEL)-clang
5 | android_RANLIB=$(ANDROID_TOOLCHAIN_BIN)/arm-linux-androideabi-ranlib
6 | else
7 | android_AR=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)-ar
8 | android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang++
9 | android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang
10 | android_RANLIB=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)-ranlib
11 | endif
12 | android_cmake_system=Android
13 |
--------------------------------------------------------------------------------
/depends/hosts/linux.mk:
--------------------------------------------------------------------------------
1 | linux_CFLAGS=-pipe
2 | linux_CXXFLAGS=$(linux_CFLAGS)
3 |
4 | linux_release_CFLAGS=-O2
5 | linux_release_CXXFLAGS=$(linux_release_CFLAGS)
6 |
7 | linux_debug_CFLAGS=-O1
8 | linux_debug_CXXFLAGS=$(linux_debug_CFLAGS)
9 |
10 | linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
11 |
12 | ifeq (86,$(findstring 86,$(build_arch)))
13 | i686_linux_CC=gcc -m32
14 | i686_linux_CXX=g++ -m32
15 | i686_linux_AR=ar
16 | i686_linux_RANLIB=ranlib
17 | i686_linux_NM=nm
18 | i686_linux_STRIP=strip
19 |
20 | x86_64_linux_CC=gcc -m64
21 | x86_64_linux_CXX=g++ -m64
22 | x86_64_linux_AR=ar
23 | x86_64_linux_RANLIB=ranlib
24 | x86_64_linux_NM=nm
25 | x86_64_linux_STRIP=strip
26 | else
27 | i686_linux_CC=$(default_host_CC) -m32
28 | i686_linux_CXX=$(default_host_CXX) -m32
29 | x86_64_linux_CC=$(default_host_CC) -m64
30 | x86_64_linux_CXX=$(default_host_CXX) -m64
31 | endif
32 | linux_cmake_system=Linux
33 |
--------------------------------------------------------------------------------
/depends/hosts/mingw32.mk:
--------------------------------------------------------------------------------
1 | mingw32_CFLAGS=-pipe
2 | mingw32_CXXFLAGS=$(mingw32_CFLAGS)
3 |
4 | mingw32_release_CFLAGS=-O2
5 | mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
6 |
7 | mingw32_debug_CFLAGS=-O1
8 | mingw32_debug_CXXFLAGS=$(mingw32_debug_CFLAGS)
9 |
10 | mingw32_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
11 |
12 | mingw_cmake_system=Windows
13 |
--------------------------------------------------------------------------------
/depends/packages/capnp.mk:
--------------------------------------------------------------------------------
1 | package=capnp
2 | $(package)_version=$(native_$(package)_version)
3 | $(package)_download_path=$(native_$(package)_download_path)
4 | $(package)_file_name=$(native_$(package)_file_name)
5 | $(package)_sha256_hash=$(native_$(package)_sha256_hash)
6 | $(package)_dependencies=native_$(package)
7 |
8 | define $(package)_config_cmds
9 | $($(package)_autoconf) --with-external-capnp
10 | endef
11 |
12 | define $(package)_build_cmds
13 | $(MAKE)
14 | endef
15 |
16 | define $(package)_stage_cmds
17 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
18 | endef
19 |
--------------------------------------------------------------------------------
/depends/packages/expat.mk:
--------------------------------------------------------------------------------
1 | package=expat
2 | $(package)_version=2.2.7
3 | $(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_2_2_7/
4 | $(package)_file_name=$(package)-$($(package)_version).tar.bz2
5 | $(package)_sha256_hash=cbc9102f4a31a8dafd42d642e9a3aa31e79a0aedaa1f6efd2795ebc83174ec18
6 |
7 | define $(package)_set_vars
8 | $(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
9 | $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
10 | $(package)_config_opts_linux=--with-pic
11 | endef
12 |
13 | define $(package)_config_cmds
14 | $($(package)_autoconf)
15 | endef
16 |
17 | define $(package)_build_cmds
18 | $(MAKE)
19 | endef
20 |
21 | define $(package)_stage_cmds
22 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
23 | endef
24 |
25 | define $(package)_postprocess_cmds
26 | rm lib/*.la
27 | endef
28 |
--------------------------------------------------------------------------------
/depends/packages/freetype.mk:
--------------------------------------------------------------------------------
1 | package=freetype
2 | $(package)_version=2.7.1
3 | $(package)_download_path=https://download.savannah.gnu.org/releases/$(package)
4 | $(package)_file_name=$(package)-$($(package)_version).tar.bz2
5 | $(package)_sha256_hash=3a3bb2c4e15ffb433f2032f50a5b5a92558206822e22bfe8cbe339af4aa82f88
6 |
7 | define $(package)_set_vars
8 | $(package)_config_opts=--without-zlib --without-png --without-harfbuzz --without-bzip2 --disable-static
9 | $(package)_config_opts += --enable-option-checking
10 | $(package)_config_opts_linux=--with-pic
11 | endef
12 |
13 | define $(package)_config_cmds
14 | $($(package)_autoconf)
15 | endef
16 |
17 | define $(package)_build_cmds
18 | $(MAKE)
19 | endef
20 |
21 | define $(package)_stage_cmds
22 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
23 | endef
24 |
25 | define $(package)_postprocess_cmds
26 | rm lib/*.la
27 | endef
28 |
--------------------------------------------------------------------------------
/depends/packages/libmultiprocess.mk:
--------------------------------------------------------------------------------
1 | package=libmultiprocess
2 | $(package)_version=$(native_$(package)_version)
3 | $(package)_download_path=$(native_$(package)_download_path)
4 | $(package)_file_name=$(native_$(package)_file_name)
5 | $(package)_sha256_hash=$(native_$(package)_sha256_hash)
6 | $(package)_dependencies=native_$(package) boost capnp
7 |
8 | define $(package)_config_cmds
9 | $($(package)_cmake)
10 | endef
11 |
12 | define $(package)_build_cmds
13 | $(MAKE)
14 | endef
15 |
16 | define $(package)_stage_cmds
17 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
18 | endef
19 |
--------------------------------------------------------------------------------
/depends/packages/native_biplist.mk:
--------------------------------------------------------------------------------
1 | package=native_biplist
2 | $(package)_version=1.0.3
3 | $(package)_download_path=https://bitbucket.org/wooster/biplist/downloads
4 | $(package)_file_name=biplist-$($(package)_version).tar.gz
5 | $(package)_sha256_hash=4c0549764c5fe50b28042ec21aa2e14fe1a2224e239a1dae77d9e7f3932aa4c6
6 | $(package)_install_libdir=$(build_prefix)/lib/python3/dist-packages
7 |
8 | define $(package)_build_cmds
9 | python3 setup.py build
10 | endef
11 |
12 | define $(package)_stage_cmds
13 | mkdir -p $($(package)_install_libdir) && \
14 | python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
15 | endef
16 |
--------------------------------------------------------------------------------
/depends/packages/native_capnp.mk:
--------------------------------------------------------------------------------
1 | package=native_capnp
2 | $(package)_version=0.7.0
3 | $(package)_download_path=https://capnproto.org/
4 | $(package)_download_file=capnproto-c++-$($(package)_version).tar.gz
5 | $(package)_file_name=capnproto-cxx-$($(package)_version).tar.gz
6 | $(package)_sha256_hash=c9a4c0bd88123064d483ab46ecee777f14d933359e23bff6fb4f4dbd28b4cd41
7 |
8 | define $(package)_config_cmds
9 | $($(package)_autoconf)
10 | endef
11 |
12 | define $(package)_build_cmds
13 | $(MAKE)
14 | endef
15 |
16 | define $(package)_stage_cmds
17 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
18 | endef
19 |
--------------------------------------------------------------------------------
/depends/packages/native_ds_store.mk:
--------------------------------------------------------------------------------
1 | package=native_ds_store
2 | $(package)_version=1.1.2
3 | $(package)_download_path=https://github.com/al45tair/ds_store/archive/
4 | $(package)_file_name=v$($(package)_version).tar.gz
5 | $(package)_sha256_hash=3b3ecb7bf0a5157f5b6010bc3af7c141fb0ad3527084e63336220d22744bc20c
6 | $(package)_install_libdir=$(build_prefix)/lib/python3/dist-packages
7 | $(package)_dependencies=native_biplist
8 |
9 | define $(package)_build_cmds
10 | python3 setup.py build
11 | endef
12 |
13 | define $(package)_stage_cmds
14 | mkdir -p $($(package)_install_libdir) && \
15 | python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
16 | endef
17 |
--------------------------------------------------------------------------------
/depends/packages/native_libdmg-hfsplus.mk:
--------------------------------------------------------------------------------
1 | package=native_libdmg-hfsplus
2 | $(package)_version=7ac55ec64c96f7800d9818ce64c79670e7f02b67
3 | $(package)_download_path=https://github.com/planetbeing/libdmg-hfsplus/archive
4 | $(package)_file_name=$($(package)_version).tar.gz
5 | $(package)_sha256_hash=56fbdc48ec110966342f0ecddd6f8f89202f4143ed2a3336e42bbf88f940850c
6 | $(package)_build_subdir=build
7 | $(package)_patches=remove-libcrypto-dependency.patch
8 |
9 | define $(package)_preprocess_cmds
10 | patch -p1 < $($(package)_patch_dir)/remove-libcrypto-dependency.patch && \
11 | mkdir build
12 | endef
13 |
14 | define $(package)_config_cmds
15 | $($(package)_cmake) -DCMAKE_C_FLAGS="$$($(1)_cflags) -Wl,--build-id=none" ..
16 | endef
17 |
18 | define $(package)_build_cmds
19 | $(MAKE) -C dmg
20 | endef
21 |
22 | define $(package)_stage_cmds
23 | $(MAKE) DESTDIR=$($(package)_staging_dir) -C dmg install
24 | endef
25 |
--------------------------------------------------------------------------------
/depends/packages/native_libmultiprocess.mk:
--------------------------------------------------------------------------------
1 | package=native_libmultiprocess
2 | $(package)_version=5741d750a04e644a03336090d8979c6d033e32c0
3 | $(package)_download_path=https://github.com/chaincodelabs/libmultiprocess/archive
4 | $(package)_file_name=$($(package)_version).tar.gz
5 | $(package)_sha256_hash=ac848db49a6ed53e423c62d54bd87f1f08cbb0326254a8667e10bbfe5bf032a4
6 | $(package)_dependencies=native_capnp
7 |
8 | define $(package)_config_cmds
9 | $($(package)_cmake)
10 | endef
11 |
12 | define $(package)_build_cmds
13 | $(MAKE)
14 | endef
15 |
16 | define $(package)_stage_cmds
17 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
18 | endef
19 |
--------------------------------------------------------------------------------
/depends/packages/native_mac_alias.mk:
--------------------------------------------------------------------------------
1 | package=native_mac_alias
2 | $(package)_version=2.0.7
3 | $(package)_download_path=https://github.com/al45tair/mac_alias/archive/
4 | $(package)_file_name=v$($(package)_version).tar.gz
5 | $(package)_sha256_hash=6f606d3b6bccd2112aeabf1a063f5b5ece87005a5d7e97c8faca23b916e88838
6 | $(package)_install_libdir=$(build_prefix)/lib/python3/dist-packages
7 |
8 | define $(package)_build_cmds
9 | python3 setup.py build
10 | endef
11 |
12 | define $(package)_stage_cmds
13 | mkdir -p $($(package)_install_libdir) && \
14 | python3 setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
15 | endef
16 |
--------------------------------------------------------------------------------
/depends/packages/packages.mk:
--------------------------------------------------------------------------------
1 | packages:=boost libevent
2 |
3 | qt_packages = zlib
4 |
5 | qrencode_packages = qrencode
6 |
7 | qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig
8 | qt_android_packages=qt
9 |
10 | qt_darwin_packages=qt
11 | qt_mingw32_packages=qt
12 |
13 | bdb_packages=bdb
14 | sqlite_packages=sqlite
15 |
16 | zmq_packages=zeromq
17 |
18 | upnp_packages=miniupnpc
19 |
20 | multiprocess_packages = libmultiprocess capnp
21 | multiprocess_native_packages = native_libmultiprocess native_capnp
22 |
23 | darwin_native_packages = native_biplist native_ds_store native_mac_alias
24 |
25 | ifneq ($(build_os),darwin)
26 | darwin_native_packages += native_cctools native_cdrkit native_libdmg-hfsplus
27 | endif
28 |
--------------------------------------------------------------------------------
/depends/packages/sqlite.mk:
--------------------------------------------------------------------------------
1 | package=sqlite
2 | $(package)_version=3320100
3 | $(package)_download_path=https://sqlite.org/2020/
4 | $(package)_file_name=sqlite-autoconf-$($(package)_version).tar.gz
5 | $(package)_sha256_hash=486748abfb16abd8af664e3a5f03b228e5f124682b0c942e157644bf6fff7d10
6 |
7 | define $(package)_set_vars
8 | $(package)_config_opts=--disable-shared --disable-readline --disable-dynamic-extensions --enable-option-checking
9 | $(package)_config_opts_linux=--with-pic
10 | endef
11 |
12 | define $(package)_config_cmds
13 | $($(package)_autoconf)
14 | endef
15 |
16 | define $(package)_build_cmds
17 | $(MAKE) libsqlite3.la
18 | endef
19 |
20 | define $(package)_stage_cmds
21 | $(MAKE) DESTDIR=$($(package)_staging_dir) install-libLTLIBRARIES install-includeHEADERS install-pkgconfigDATA
22 | endef
23 |
24 | define $(package)_postprocess_cmds
25 | rm lib/*.la
26 | endef
27 |
--------------------------------------------------------------------------------
/depends/packages/xcb_proto.mk:
--------------------------------------------------------------------------------
1 | package=xcb_proto
2 | $(package)_version=1.10
3 | $(package)_download_path=https://xcb.freedesktop.org/dist
4 | $(package)_file_name=xcb-proto-$($(package)_version).tar.bz2
5 | $(package)_sha256_hash=7ef40ddd855b750bc597d2a435da21e55e502a0fefa85b274f2c922800baaf05
6 |
7 | define $(package)_config_cmds
8 | $($(package)_autoconf)
9 | endef
10 |
11 | define $(package)_build_cmds
12 | $(MAKE)
13 | endef
14 |
15 | define $(package)_stage_cmds
16 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
17 | endef
18 |
19 | define $(package)_postprocess_cmds
20 | find -name "*.pyc" -delete && \
21 | find -name "*.pyo" -delete
22 | endef
23 |
--------------------------------------------------------------------------------
/depends/packages/xproto.mk:
--------------------------------------------------------------------------------
1 | package=xproto
2 | $(package)_version=7.0.26
3 | $(package)_download_path=https://xorg.freedesktop.org/releases/individual/proto
4 | $(package)_file_name=$(package)-$($(package)_version).tar.bz2
5 | $(package)_sha256_hash=636162c1759805a5a0114a369dffdeccb8af8c859ef6e1445f26a4e6e046514f
6 |
7 | define $(package)_set_vars
8 | $(package)_config_opts=--without-fop --without-xmlto --without-xsltproc --disable-specs
9 | $(package)_config_opts += --disable-dependency-tracking --enable-option-checking
10 | endef
11 |
12 | define $(package)_preprocess_cmds
13 | cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
14 | endef
15 |
16 | define $(package)_config_cmds
17 | $($(package)_autoconf)
18 | endef
19 |
20 | define $(package)_build_cmds
21 | $(MAKE)
22 | endef
23 |
24 | define $(package)_stage_cmds
25 | $(MAKE) DESTDIR=$($(package)_staging_dir) install
26 | endef
27 |
--------------------------------------------------------------------------------
/depends/patches/boost/unused_var_in_process.patch:
--------------------------------------------------------------------------------
1 | commit dbd95cdaefdea95307d004f019a1c394cf9389f0
2 | Author: fanquake
3 | Date: Mon Aug 17 20:15:17 2020 +0800
4 |
5 | Remove unused variable in Boost Process
6 |
7 | This causes issues with our linters / CI.
8 |
9 | Can be removed once depends Boost is 1.71.0 or later.
10 |
11 | diff --git a/boost/process/detail/posix/wait_group.hpp b/boost/process/detail/posix/wait_group.hpp
12 | index 9dc249803..2502d9772 100644
13 | --- a/boost/process/detail/posix/wait_group.hpp
14 | +++ b/boost/process/detail/posix/wait_group.hpp
15 | @@ -137,7 +137,6 @@ inline bool wait_until(
16 |
17 | do
18 | {
19 | - int ret_sig = 0;
20 | int status;
21 | if ((::waitpid(timeout_pid, &status, WNOHANG) != 0)
22 | && (WIFEXITED(status) || WIFSIGNALED(status)))
23 |
--------------------------------------------------------------------------------
/depends/patches/fontconfig/gperf_header_regen.patch:
--------------------------------------------------------------------------------
1 | commit 7b6eb33ecd88768b28c67ce5d2d68a7eed5936b6
2 | Author: fanquake
3 | Date: Tue Aug 25 14:34:53 2020 +0800
4 |
5 | Remove rule that causes inadvertant header regeneration
6 |
7 | Otherwise the makefile will needlessly attempt to re-generate the
8 | headers with gperf. This can be dropped once the upstream build is fixed.
9 |
10 | See #10851.
11 |
12 | diff --git a/src/Makefile.in b/src/Makefile.in
13 | index f4626ad..4ae1b00 100644
14 | --- a/src/Makefile.in
15 | +++ b/src/Makefile.in
16 | @@ -903,7 +903,7 @@ fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h
17 | ' - > $@.tmp && \
18 | mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
19 |
20 | -fcobjshash.h: fcobjshash.gperf
21 | +fcobjshash.h:
22 | $(AM_V_GEN) $(GPERF) -m 100 $< > $@.tmp && \
23 | mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
24 |
25 |
--------------------------------------------------------------------------------
/depends/patches/libevent/0001-fix-windows-getaddrinfo.patch:
--------------------------------------------------------------------------------
1 | diff -ur libevent-2.1.8-stable.orig/configure.ac libevent-2.1.8-stable/configure.ac
2 | --- libevent-2.1.8-stable.orig/configure.ac 2017-01-29 17:51:00.000000000 +0000
3 | +++ libevent-2.1.8-stable/configure.ac 2020-03-07 01:11:16.311335005 +0000
4 | @@ -389,6 +389,10 @@
5 | #ifdef HAVE_NETDB_H
6 | #include
7 | #endif
8 | +#ifdef _WIN32
9 | +#include
10 | +#include
11 | +#endif
12 | ]],
13 | [[
14 | getaddrinfo;
15 | Only in libevent-2.1.8-stable: configure.ac~
16 |
--------------------------------------------------------------------------------
/depends/patches/native_cctools/ld64_disable_threading.patch:
--------------------------------------------------------------------------------
1 | commit 584668415039adeed073decee7e04de28248afd3
2 | Author: fanquake
3 | Date: Tue Aug 18 01:20:24 2020 +0000
4 |
5 | Disable threading to fix non-determinism
6 |
7 | A bug in the file parser can cause dependencies to be calculated
8 | differently based on which files have already been parsed. This is more
9 | likely to occur on systems with more CPUs.
10 |
11 | Just disable threading for now. There is no noticable slowdown.
12 |
13 | See #9891.
14 |
15 | diff --git a/cctools/ld64/src/ld/InputFiles.h b/cctools/ld64/src/ld/InputFiles.h
16 | index ef9c756..90a70b6 100644
17 | --- a/cctools/ld64/src/ld/InputFiles.h
18 | +++ b/cctools/ld64/src/ld/InputFiles.h
19 | @@ -25,7 +25,6 @@
20 | #ifndef __INPUT_FILES_H__
21 | #define __INPUT_FILES_H__
22 |
23 | -#define HAVE_PTHREADS 1
24 |
25 | #include
26 | #include
27 |
--------------------------------------------------------------------------------
/depends/patches/qt/dont_hardcode_pwd.patch:
--------------------------------------------------------------------------------
1 | commit 0e953866fc4672486e29e1ba6d83b4207e7b2f0b
2 | Author: fanquake
3 | Date: Tue Aug 18 15:09:06 2020 +0800
4 |
5 | Don't hardcode pwd path
6 |
7 | Let a man use his builtins if he wants to! Also, removes the unnecessary
8 | assumption that pwd lives under /bin/pwd.
9 |
10 | See #15581.
11 |
12 | diff --git a/qtbase/configure b/qtbase/configure
13 | index 08b49a8d..faea5b55 100755
14 | --- a/qtbase/configure
15 | +++ b/qtbase/configure
16 | @@ -36,9 +36,9 @@
17 | relconf=`basename $0`
18 | # the directory of this script is the "source tree"
19 | relpath=`dirname $0`
20 | -relpath=`(cd "$relpath"; /bin/pwd)`
21 | +relpath=`(cd "$relpath"; pwd)`
22 | # the current directory is the "build tree" or "object tree"
23 | -outpath=`/bin/pwd`
24 | +outpath=`pwd`
25 |
26 | WHICH="which"
27 |
28 |
--------------------------------------------------------------------------------
/depends/patches/qt/drop_lrelease_dependency.patch:
--------------------------------------------------------------------------------
1 | commit 67b3ed7406e1d0762188dbad2c44a06824ba0778
2 | Author: fanquake
3 | Date: Tue Aug 18 15:24:01 2020 +0800
4 |
5 | Drop dependency on lrelease
6 |
7 | Qts buildsystem insists on using the installed lrelease, but gets
8 | confused about how to find it. Since we manually control the build
9 | order, just drop the dependency.
10 |
11 | See #9469
12 |
13 | diff --git a/qttranslations/translations/translations.pro b/qttranslations/translations/translations.pro
14 | index 694544c..eff339d 100644
15 | --- a/qttranslations/translations/translations.pro
16 | +++ b/qttranslations/translations/translations.pro
17 | @@ -109,3 +109,2 @@ updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
18 | silent:updateqm.commands = @echo lrelease ${QMAKE_FILE_IN} && $$updateqm.commands
19 | -updateqm.depends = $$LRELEASE_EXE
20 | updateqm.name = LRELEASE ${QMAKE_FILE_IN}
21 |
--------------------------------------------------------------------------------
/depends/patches/qt/fix_android_jni_static.patch:
--------------------------------------------------------------------------------
1 | --- old/qtbase/src/plugins/platforms/android/androidjnimain.cpp
2 | +++ new/qtbase/src/plugins/platforms/android/androidjnimain.cpp
3 | @@ -890,6 +890,14 @@
4 | __android_log_print(ANDROID_LOG_FATAL, "Qt", "registerNatives failed");
5 | return -1;
6 | }
7 | +
8 | + const jint ret = QT_PREPEND_NAMESPACE(QtAndroidPrivate::initJNI(vm, env));
9 | + if (ret != 0)
10 | + {
11 | + __android_log_print(ANDROID_LOG_FATAL, "Qt", "initJNI failed");
12 | + return ret;
13 | + }
14 | +
15 | QWindowSystemInterfacePrivate::TabletEvent::setPlatformSynthesizesMouse(false);
16 |
17 | m_javaVM = vm;
18 |
19 |
--------------------------------------------------------------------------------
/depends/patches/qt/fix_no_printer.patch:
--------------------------------------------------------------------------------
1 | --- x/qtbase/src/plugins/platforms/cocoa/qprintengine_mac_p.h
2 | +++ y/qtbase/src/plugins/platforms/cocoa/qprintengine_mac_p.h
3 | @@ -52,6 +52,7 @@
4 | //
5 |
6 | #include
7 | +#include
8 |
9 | #ifndef QT_NO_PRINTER
10 |
11 | --- x/qtbase/src/plugins/plugins.pro
12 | +++ y/qtbase/src/plugins/plugins.pro
13 | @@ -8,6 +8,3 @@ qtHaveModule(gui) {
14 | qtConfig(imageformatplugin): SUBDIRS *= imageformats
15 | !android:qtConfig(library): SUBDIRS *= generic
16 | }
17 | -
18 | -!winrt:qtHaveModule(printsupport): \
19 | - SUBDIRS += printsupport
20 |
--------------------------------------------------------------------------------
/depends/patches/qt/fix_powerpc_libpng.patch:
--------------------------------------------------------------------------------
1 | commit 6f9feb773a43c5abfa3455da2e324180e789285b
2 | Author: fanquake
3 | Date: Tue Sep 15 21:44:31 2020 +0800
4 |
5 | Fix PowerPC build of libpng
6 |
7 | See https://bugreports.qt.io/browse/QTBUG-66388.
8 |
9 | Can be dropped when we are building qt 5.12.0 or later.
10 |
11 | diff --git a/qtbase/src/3rdparty/libpng/libpng.pro b/qtbase/src/3rdparty/libpng/libpng.pro
12 | index 577b61d8..a2f56669 100644
13 | --- a/qtbase/src/3rdparty/libpng/libpng.pro
14 | +++ b/qtbase/src/3rdparty/libpng/libpng.pro
15 | @@ -10,7 +10,7 @@ MODULE_INCLUDEPATH = $$PWD
16 |
17 | load(qt_helper_lib)
18 |
19 | -DEFINES += PNG_ARM_NEON_OPT=0
20 | +DEFINES += PNG_ARM_NEON_OPT=0 PNG_POWERPC_VSX_OPT=0
21 | SOURCES += \
22 | png.c \
23 | pngerror.c \
24 |
--------------------------------------------------------------------------------
/depends/patches/qt/fix_rcc_determinism.patch:
--------------------------------------------------------------------------------
1 | --- old/qtbase/src/tools/rcc/rcc.cpp
2 | +++ new/qtbase/src/tools/rcc/rcc.cpp
3 | @@ -207,7 +207,11 @@ void RCCFileInfo::writeDataInfo(RCCResourceLibrary &lib)
4 | if (lib.formatVersion() >= 2) {
5 | // last modified time stamp
6 | const QDateTime lastModified = m_fileInfo.lastModified();
7 | - lib.writeNumber8(quint64(lastModified.isValid() ? lastModified.toMSecsSinceEpoch() : 0));
8 | + quint64 lastmod = quint64(lastModified.isValid() ? lastModified.toMSecsSinceEpoch() : 0);
9 | + static const quint64 sourceDate = 1000 * qgetenv("QT_RCC_SOURCE_DATE_OVERRIDE").toULongLong();
10 | + if (sourceDate != 0)
11 | + lastmod = sourceDate;
12 | + lib.writeNumber8(lastmod);
13 | if (text || pass1)
14 | lib.writeChar('\n');
15 | }
16 |
--------------------------------------------------------------------------------
/depends/patches/qt/fix_riscv64_arch.patch:
--------------------------------------------------------------------------------
1 | diff --git a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h
2 | index 20bfd36..93729fa 100644
3 | --- a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h
4 | +++ b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h
5 | @@ -65,7 +65,8 @@
6 | defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
7 | defined(__SH4__) || defined(__alpha__) || \
8 | defined(_MIPS_ARCH_MIPS32R2) || \
9 | - defined(__AARCH64EL__)
10 | + defined(__AARCH64EL__) || defined(__aarch64__) || \
11 | + defined(__riscv)
12 | #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
13 | #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
14 | #if defined(_WIN32)
15 |
--------------------------------------------------------------------------------
/depends/patches/qt/xkb-default.patch:
--------------------------------------------------------------------------------
1 | --- old/qtbase/src/gui/configure.pri 2018-06-06 17:28:10.000000000 -0400
2 | +++ new/qtbase/src/gui/configure.pri 2018-08-17 18:43:01.589384567 -0400
3 | @@ -43,18 +43,11 @@
4 | }
5 |
6 | defineTest(qtConfTest_xkbConfigRoot) {
7 | - qtConfTest_getPkgConfigVariable($${1}): return(true)
8 | -
9 | - for (dir, $$list("/usr/share/X11/xkb", "/usr/local/share/X11/xkb")) {
10 | - exists($$dir) {
11 | - $${1}.value = $$dir
12 | - export($${1}.value)
13 | - $${1}.cache += value
14 | - export($${1}.cache)
15 | - return(true)
16 | - }
17 | - }
18 | - return(false)
19 | + $${1}.value = "/usr/share/X11/xkb"
20 | + export($${1}.value)
21 | + $${1}.cache += value
22 | + export($${1}.cache)
23 | + return(true)
24 | }
25 |
26 | defineTest(qtConfTest_qpaDefaultPlatform) {
27 |
--------------------------------------------------------------------------------
/depends/patches/zeromq/remove_libstd_link.patch:
--------------------------------------------------------------------------------
1 | commit 47d4cd12a2c051815ddda78adebdb3923b260d8a
2 | Author: fanquake
3 | Date: Tue Aug 18 14:45:40 2020 +0800
4 |
5 | Remove needless linking against libstdc++
6 |
7 | This is broken for a number of reasons, including:
8 | - g++ understands "static-libstdc++ -lstdc++" to mean "link against
9 | whatever libstdc++ exists, probably shared", which in itself is buggy.
10 | - another stdlib (libc++ for example) may be in use
11 |
12 | See #11981.
13 |
14 | diff --git a/src/libzmq.pc.in b/src/libzmq.pc.in
15 | index 233bc3a..3c2bf0d 100644
16 | --- a/src/libzmq.pc.in
17 | +++ b/src/libzmq.pc.in
18 | @@ -7,6 +7,6 @@ Name: libzmq
19 | Description: 0MQ c++ library
20 | Version: @VERSION@
21 | Libs: -L${libdir} -lzmq
22 | -Libs.private: -lstdc++ @pkg_config_libs_private@
23 | +Libs.private: @pkg_config_libs_private@
24 | Requires.private: @pkg_config_names_private@
25 | Cflags: -I${includedir} @pkg_config_defines@
26 |
--------------------------------------------------------------------------------
/doc/README_doxygen.md:
--------------------------------------------------------------------------------
1 | \mainpage notitle
2 |
3 | \section intro_sec Introduction
4 |
5 | This is the developer documentation of the reference client for an experimental new digital currency called Labyrinth,
6 | which enables instant payments to anyone, anywhere in the world. Labyrinth uses peer-to-peer technology to operate
7 | with no central authority: managing transactions and issuing money are carried out collectively by the network.
8 |
9 | The software is a community-driven open source project, released under the MIT license.
10 |
11 | See https://github.com/labyrinth/labyrinth and https://labyrinthcore.com/ for further information about the project.
12 |
13 | \section Navigation
14 | Use Modules
, Namespaces
, Classes
, or Files
at the top of the page to start navigating the code.
15 |
16 |
--------------------------------------------------------------------------------
/doc/assets-attribution.md:
--------------------------------------------------------------------------------
1 | The list of assets used in the labyrinth source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright).
2 |
--------------------------------------------------------------------------------
/doc/labyrinth_logo_doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/doc/labyrinth_logo_doxygen.png
--------------------------------------------------------------------------------
/doc/man/Makefile.am:
--------------------------------------------------------------------------------
1 | dist_man1_MANS=
2 |
3 | if BUILD_LABYRINTHD
4 | dist_man1_MANS+=labyrinthd.1
5 | endif
6 |
7 | if ENABLE_QT
8 | dist_man1_MANS+=labyrinth-qt.1
9 | endif
10 |
11 | if BUILD_LABYRINTH_CLI
12 | dist_man1_MANS+=labyrinth-cli.1
13 | endif
14 |
15 | if BUILD_LABYRINTH_TX
16 | dist_man1_MANS+=labyrinth-tx.1
17 | endif
18 |
19 | if ENABLE_WALLET
20 | if BUILD_LABYRINTH_WALLET
21 | dist_man1_MANS+=labyrinth-wallet.1
22 | endif
23 | endif
24 |
--------------------------------------------------------------------------------
/liblabyrinthconsensus.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 |
6 | Name: @PACKAGE_NAME@ consensus library
7 | Description: Library for the Labyrinth consensus protocol.
8 | Version: @PACKAGE_VERSION@
9 | Libs: -L${libdir} -llabyrinthconsensus
10 | Cflags: -I${includedir}
11 |
--------------------------------------------------------------------------------
/share/pixmaps/labyrinth.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/labyrinth.ico
--------------------------------------------------------------------------------
/share/pixmaps/labyrinth128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/labyrinth128.png
--------------------------------------------------------------------------------
/share/pixmaps/labyrinth16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/labyrinth16.png
--------------------------------------------------------------------------------
/share/pixmaps/labyrinth256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/labyrinth256.png
--------------------------------------------------------------------------------
/share/pixmaps/labyrinth32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/labyrinth32.png
--------------------------------------------------------------------------------
/share/pixmaps/labyrinth64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/labyrinth64.png
--------------------------------------------------------------------------------
/share/pixmaps/nsis-header.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/nsis-header.bmp
--------------------------------------------------------------------------------
/share/pixmaps/nsis-wizard.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/share/pixmaps/nsis-wizard.bmp
--------------------------------------------------------------------------------
/share/rpcauth/README.md:
--------------------------------------------------------------------------------
1 | RPC Tools
2 | ---------------------
3 |
4 | ### [RPCAuth](/share/rpcauth) ###
5 |
6 | ```
7 | usage: rpcauth.py [-h] username [password]
8 |
9 | Create login credentials for a JSON-RPC user
10 |
11 | positional arguments:
12 | username the username for authentication
13 | password leave empty to generate a random password or specify "-" to
14 | prompt for password
15 |
16 | optional arguments:
17 | -h, --help show this help message and exit
18 | ```
19 |
--------------------------------------------------------------------------------
/src/Makefile.test_fuzz.include:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2013-2020 The Bitcoin Core developers
2 | # Copyright (c) 2021-2022 The Labyrinth Core developers
3 | # Distributed under the MIT software license, see the accompanying
4 | # file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | LIBTEST_FUZZ=libtest_fuzz.a
7 |
8 | EXTRA_LIBRARIES += \
9 | $(LIBTEST_FUZZ)
10 |
11 | TEST_FUZZ_H = \
12 | test/fuzz/fuzz.h \
13 | test/fuzz/FuzzedDataProvider.h \
14 | test/fuzz/util.h
15 |
16 | libtest_fuzz_a_CPPFLAGS = $(AM_CPPFLAGS) $(LABYRINTH_INCLUDES) $(MINIUPNPC_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS)
17 | libtest_fuzz_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
18 | libtest_fuzz_a_SOURCES = \
19 | test/fuzz/fuzz.cpp \
20 | $(TEST_FUZZ_H)
21 |
22 | LIBTEST_FUZZ += $(LIBLABYRINTH_SERVER)
23 | LIBTEST_FUZZ += $(LIBLABYRINTH_COMMON)
24 | LIBTEST_FUZZ += $(LIBLABYRINTH_UTIL)
25 | LIBTEST_FUZZ += $(LIBLABYRINTH_CRYPTO_BASE)
26 |
--------------------------------------------------------------------------------
/src/attributes.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2009-2010 Satoshi Nakamoto
2 | // Copyright (c) 2009-2018 The Bitcoin Core developers
3 | // Copyright (c) 2021-2022 The Labyrinth Core developers
4 | // Distributed under the MIT software license, see the accompanying
5 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
6 |
7 | #ifndef LABYRINTH_ATTRIBUTES_H
8 | #define LABYRINTH_ATTRIBUTES_H
9 |
10 | #if defined(__has_cpp_attribute)
11 | # if __has_cpp_attribute(nodiscard)
12 | # define NODISCARD [[nodiscard]]
13 | # endif
14 | #endif
15 | #ifndef NODISCARD
16 | # if defined(_MSC_VER) && _MSC_VER >= 1700
17 | # define NODISCARD _Check_return_
18 | # else
19 | # define NODISCARD __attribute__((warn_unused_result))
20 | # endif
21 | #endif
22 |
23 | #endif // LABYRINTH_ATTRIBUTES_H
24 |
--------------------------------------------------------------------------------
/src/bench/data.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #include
7 |
8 | namespace benchmark {
9 | namespace data {
10 |
11 | #include
12 | const std::vector block413567{block413567_raw, block413567_raw + sizeof(block413567_raw) / sizeof(block413567_raw[0])};
13 |
14 | } // namespace data
15 | } // namespace benchmark
16 |
--------------------------------------------------------------------------------
/src/bench/data.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_BENCH_DATA_H
7 | #define LABYRINTH_BENCH_DATA_H
8 |
9 | #include
10 | #include
11 |
12 | namespace benchmark {
13 | namespace data {
14 |
15 | extern const std::vector block413567;
16 |
17 | } // namespace data
18 | } // namespace benchmark
19 |
20 | #endif // LABYRINTH_BENCH_DATA_H
21 |
--------------------------------------------------------------------------------
/src/bench/data/block413567.raw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/src/bench/data/block413567.raw
--------------------------------------------------------------------------------
/src/bench/examples.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2015-2020 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #include
7 |
8 | // Extremely fast-running benchmark:
9 | #include
10 |
11 | volatile double sum = 0.0; // volatile, global so not optimized away
12 |
13 | static void Trig(benchmark::Bench& bench)
14 | {
15 | double d = 0.01;
16 | bench.run([&] {
17 | sum += sin(d);
18 | d += 0.000001;
19 | });
20 | }
21 |
22 | BENCHMARK(Trig);
23 |
--------------------------------------------------------------------------------
/src/bench/merkle_root.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2016-2020 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #include
7 |
8 | #include
9 | #include
10 | #include
11 |
12 | static void MerkleRoot(benchmark::Bench& bench)
13 | {
14 | FastRandomContext rng(true);
15 | std::vector leaves;
16 | leaves.resize(9001);
17 | for (auto& item : leaves) {
18 | item = rng.rand256();
19 | }
20 | bench.batch(leaves.size()).unit("leaf").run([&] {
21 | bool mutation = false;
22 | uint256 hash = ComputeMerkleRoot(std::vector(leaves), &mutation);
23 | leaves[mutation] = hash;
24 | });
25 | }
26 |
27 | BENCHMARK(MerkleRoot);
28 |
--------------------------------------------------------------------------------
/src/bench/nanobench.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019-2020 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #define ANKERL_NANOBENCH_IMPLEMENT
7 | #include
8 |
--------------------------------------------------------------------------------
/src/compat/cpuid.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2017-2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_COMPAT_CPUID_H
7 | #define LABYRINTH_COMPAT_CPUID_H
8 |
9 | #if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
10 | #define HAVE_GETCPUID
11 |
12 | #include
13 |
14 | // We can't use cpuid.h's __get_cpuid as it does not support subleafs.
15 | void static inline GetCPUID(uint32_t leaf, uint32_t subleaf, uint32_t& a, uint32_t& b, uint32_t& c, uint32_t& d)
16 | {
17 | #ifdef __GNUC__
18 | __cpuid_count(leaf, subleaf, a, b, c, d);
19 | #else
20 | __asm__ ("cpuid" : "=a"(a), "=b"(b), "=c"(c), "=d"(d) : "0"(leaf), "2"(subleaf));
21 | #endif
22 | }
23 |
24 | #endif // defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
25 | #endif // LABYRINTH_COMPAT_CPUID_H
26 |
--------------------------------------------------------------------------------
/src/compat/sanity.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2009-2014 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_COMPAT_SANITY_H
7 | #define LABYRINTH_COMPAT_SANITY_H
8 |
9 | bool glibc_sanity_test();
10 | bool glibcxx_sanity_test();
11 |
12 | #endif // LABYRINTH_COMPAT_SANITY_H
13 |
--------------------------------------------------------------------------------
/src/compat/stdin.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2018 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_COMPAT_STDIN_H
7 | #define LABYRINTH_COMPAT_STDIN_H
8 |
9 | struct NoechoInst {
10 | NoechoInst();
11 | ~NoechoInst();
12 | };
13 |
14 | #define NO_STDIN_ECHO() NoechoInst _no_echo
15 |
16 | bool StdinTerminal();
17 | bool StdinReady();
18 |
19 | #endif // LABYRINTH_COMPAT_STDIN_H
20 |
--------------------------------------------------------------------------------
/src/compat/strnlen.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2009-2018 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #if defined(HAVE_CONFIG_H)
7 | #include
8 | #endif
9 |
10 | #include
11 |
12 | #if HAVE_DECL_STRNLEN == 0
13 | size_t strnlen( const char *start, size_t max_len)
14 | {
15 | const char *end = (const char *)memchr(start, '\0', max_len);
16 |
17 | return end ? (size_t)(end - start) : max_len;
18 | }
19 | #endif // HAVE_DECL_STRNLEN
20 |
--------------------------------------------------------------------------------
/src/config/.empty:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LabyrinthCore/Labyrinth/c559630615e5525f2a51dc6e9cf771fdf64b5ea8/src/config/.empty
--------------------------------------------------------------------------------
/src/consensus/tx_check.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2017-2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CONSENSUS_TX_CHECK_H
7 | #define LABYRINTH_CONSENSUS_TX_CHECK_H
8 |
9 | /**
10 | * Context-independent transaction checking code that can be called outside the
11 | * labyrinth server and doesn't depend on chain or mempool state. Transaction
12 | * verification code that does call server functions or depend on server state
13 | * belongs in tx_verify.h/cpp instead.
14 | */
15 |
16 | class CTransaction;
17 | class TxValidationState;
18 |
19 | bool CheckTransaction(const CTransaction& tx, TxValidationState& state);
20 |
21 | #endif // LABYRINTH_CONSENSUS_TX_CHECK_H
22 |
--------------------------------------------------------------------------------
/src/crc32c/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the list of CRC32C authors for copyright purposes.
2 | #
3 | # This does not necessarily list everyone who has contributed code, since in
4 | # some cases, their employer may be the copyright holder. To see the full list
5 | # of contributors, see the revision history in source control.
6 | Google Inc.
7 |
8 | Fangming Fang
9 | Vadim Skipin
10 |
--------------------------------------------------------------------------------
/src/crc32c/Crc32cConfig.cmake:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The CRC32C Authors. All rights reserved.
2 | # Use of this source code is governed by a BSD-style license that can be
3 | # found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | include("${CMAKE_CURRENT_LIST_DIR}/Crc32cTargets.cmake")
6 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_arm64.h:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | // Linux-specific code checking the availability for ARM CRC32C instructions.
6 |
7 | #ifndef CRC32C_CRC32C_ARM_LINUX_H_
8 | #define CRC32C_CRC32C_ARM_LINUX_H_
9 |
10 | #include
11 | #include
12 |
13 | #ifdef CRC32C_HAVE_CONFIG_H
14 | #include "crc32c/crc32c_config.h"
15 | #endif
16 |
17 | #if HAVE_ARM64_CRC32C
18 |
19 | namespace crc32c {
20 |
21 | uint32_t ExtendArm64(uint32_t crc, const uint8_t* data, size_t count);
22 |
23 | } // namespace crc32c
24 |
25 | #endif // HAVE_ARM64_CRC32C
26 |
27 | #endif // CRC32C_CRC32C_ARM_LINUX_H_
28 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_arm64_unittest.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | #include "gtest/gtest.h"
6 |
7 | #include "./crc32c_arm64.h"
8 | #include "./crc32c_extend_unittests.h"
9 |
10 | namespace crc32c {
11 |
12 | #if HAVE_ARM64_CRC32C
13 |
14 | struct Arm64TestTraits {
15 | static uint32_t Extend(uint32_t crc, const uint8_t* data, size_t count) {
16 | return ExtendArm64(crc, data, count);
17 | }
18 | };
19 |
20 | INSTANTIATE_TYPED_TEST_SUITE_P(Arm64, ExtendTest, Arm64TestTraits);
21 |
22 | #endif // HAVE_ARM64_CRC32C
23 |
24 | } // namespace crc32c
25 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_internal.h:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | #ifndef CRC32C_CRC32C_INTERNAL_H_
6 | #define CRC32C_CRC32C_INTERNAL_H_
7 |
8 | // Internal functions that may change between releases.
9 |
10 | #include
11 | #include
12 |
13 | namespace crc32c {
14 |
15 | // Un-accelerated implementation that works on all CPUs.
16 | uint32_t ExtendPortable(uint32_t crc, const uint8_t* data, size_t count);
17 |
18 | // CRCs are pre- and post- conditioned by xoring with all ones.
19 | static constexpr const uint32_t kCRC32Xor = static_cast(0xffffffffU);
20 |
21 | } // namespace crc32c
22 |
23 | #endif // CRC32C_CRC32C_INTERNAL_H_
24 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_portable_unittest.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | #include "gtest/gtest.h"
6 |
7 | #include "./crc32c_extend_unittests.h"
8 | #include "./crc32c_internal.h"
9 |
10 | namespace crc32c {
11 |
12 | struct PortableTestTraits {
13 | static uint32_t Extend(uint32_t crc, const uint8_t* data, size_t count) {
14 | return ExtendPortable(crc, data, count);
15 | }
16 | };
17 |
18 | INSTANTIATE_TYPED_TEST_SUITE_P(Portable, ExtendTest, PortableTestTraits);
19 |
20 | } // namespace crc32c
21 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_prefetch_unittest.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | #include "./crc32c_prefetch.h"
6 |
7 | // There is no easy way to test cache prefetching. We can only test that the
8 | // crc32c_prefetch.h header compiles on its own, so it doesn't have any unstated
9 | // dependencies.
10 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_sse42_unittest.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 |
5 | #include "gtest/gtest.h"
6 |
7 | #include "./crc32c_extend_unittests.h"
8 | #include "./crc32c_sse42.h"
9 |
10 | namespace crc32c {
11 |
12 | #if HAVE_SSE42 && (defined(_M_X64) || defined(__x86_64__))
13 |
14 | struct Sse42TestTraits {
15 | static uint32_t Extend(uint32_t crc, const uint8_t* data, size_t count) {
16 | return ExtendSse42(crc, data, count);
17 | }
18 | };
19 |
20 | INSTANTIATE_TYPED_TEST_SUITE_P(Sse42, ExtendTest, Sse42TestTraits);
21 |
22 | #endif // HAVE_SSE42 && (defined(_M_X64) || defined(__x86_64__))
23 |
24 | } // namespace crc32c
25 |
--------------------------------------------------------------------------------
/src/crc32c/src/crc32c_test_main.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The CRC32C Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style license that can be
3 | // found in the LICENSE file.
4 |
5 | #ifdef CRC32C_HAVE_CONFIG_H
6 | #include "crc32c/crc32c_config.h"
7 | #endif
8 |
9 | #include "gtest/gtest.h"
10 |
11 | #if CRC32C_TESTS_BUILT_WITH_GLOG
12 | #include "glog/logging.h"
13 | #endif // CRC32C_TESTS_BUILT_WITH_GLOG
14 |
15 | int main(int argc, char** argv) {
16 | #if CRC32C_TESTS_BUILT_WITH_GLOG
17 | google::InitGoogleLogging(argv[0]);
18 | google::InstallFailureSignalHandler();
19 | #endif // CRC32C_TESTS_BUILT_WITH_GLOG
20 | testing::InitGoogleTest(&argc, argv);
21 | return RUN_ALL_TESTS();
22 | }
23 |
--------------------------------------------------------------------------------
/src/crypto/hkdf_sha256_32.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2018-2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #include
7 |
8 | #include
9 | #include
10 |
11 | CHKDF_HMAC_SHA256_L32::CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt)
12 | {
13 | CHMAC_SHA256((const unsigned char*)salt.data(), salt.size()).Write(ikm, ikmlen).Finalize(m_prk);
14 | }
15 |
16 | void CHKDF_HMAC_SHA256_L32::Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE])
17 | {
18 | // expand a 32byte key (single round)
19 | assert(info.size() <= 128);
20 | static const unsigned char one[1] = {1};
21 | CHMAC_SHA256(m_prk, 32).Write((const unsigned char*)info.data(), info.size()).Write(one, 1).Finalize(hash);
22 | }
23 |
--------------------------------------------------------------------------------
/src/crypto/hkdf_sha256_32.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2018 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_HKDF_SHA256_32_H
7 | #define LABYRINTH_CRYPTO_HKDF_SHA256_32_H
8 |
9 | #include
10 |
11 | #include
12 | #include
13 |
14 | /** A rfc5869 HKDF implementation with HMAC_SHA256 and fixed key output length of 32 bytes (L=32) */
15 | class CHKDF_HMAC_SHA256_L32
16 | {
17 | private:
18 | unsigned char m_prk[32];
19 | static const size_t OUTPUT_SIZE = 32;
20 |
21 | public:
22 | CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt);
23 | void Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE]);
24 | };
25 |
26 | #endif // LABYRINTH_CRYPTO_HKDF_SHA256_32_H
27 |
--------------------------------------------------------------------------------
/src/crypto/hmac_sha256.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2014-2018 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_HMAC_SHA256_H
7 | #define LABYRINTH_CRYPTO_HMAC_SHA256_H
8 |
9 | #include
10 |
11 | #include
12 | #include
13 |
14 | /** A hasher class for HMAC-SHA-256. */
15 | class CHMAC_SHA256
16 | {
17 | private:
18 | CSHA256 outer;
19 | CSHA256 inner;
20 |
21 | public:
22 | static const size_t OUTPUT_SIZE = 32;
23 |
24 | CHMAC_SHA256(const unsigned char* key, size_t keylen);
25 | CHMAC_SHA256& Write(const unsigned char* data, size_t len)
26 | {
27 | inner.Write(data, len);
28 | return *this;
29 | }
30 | void Finalize(unsigned char hash[OUTPUT_SIZE]);
31 | };
32 |
33 | #endif // LABYRINTH_CRYPTO_HMAC_SHA256_H
34 |
--------------------------------------------------------------------------------
/src/crypto/hmac_sha512.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2014-2018 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_HMAC_SHA512_H
7 | #define LABYRINTH_CRYPTO_HMAC_SHA512_H
8 |
9 | #include
10 |
11 | #include
12 | #include
13 |
14 | /** A hasher class for HMAC-SHA-512. */
15 | class CHMAC_SHA512
16 | {
17 | private:
18 | CSHA512 outer;
19 | CSHA512 inner;
20 |
21 | public:
22 | static const size_t OUTPUT_SIZE = 64;
23 |
24 | CHMAC_SHA512(const unsigned char* key, size_t keylen);
25 | CHMAC_SHA512& Write(const unsigned char* data, size_t len)
26 | {
27 | inner.Write(data, len);
28 | return *this;
29 | }
30 | void Finalize(unsigned char hash[OUTPUT_SIZE]);
31 | };
32 |
33 | #endif // LABYRINTH_CRYPTO_HMAC_SHA512_H
34 |
--------------------------------------------------------------------------------
/src/crypto/kawpow/include/kawpow/hash_types.hpp:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021-2022 The Labyrinth Core developers
2 | // Distributed under the MIT software license, see the accompanying
3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 |
5 | #pragma once
6 |
7 | #include
8 |
9 | namespace kawpow
10 | {
11 | using hash256 = kawpow_hash256;
12 | using hash512 = kawpow_hash512;
13 | using hash1024 = kawpow_hash1024;
14 | using hash2048 = kawpow_hash2048;
15 | } // namespace kawpow
16 |
--------------------------------------------------------------------------------
/src/crypto/kawpow/include/kawpow/version.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021-2022 The Labyrinth Core developers
2 | // Distributed under the MIT software license, see the accompanying
3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 |
5 | #pragma once
6 |
7 | /** The kawpow library version. */
8 | #define KAWPOW_VERSION "0.5.1"
9 |
10 | #ifdef __cplusplus
11 | namespace kawpow
12 | {
13 | /// The kawpow library version.
14 | constexpr auto version = KAWPOW_VERSION;
15 |
16 | } // namespace kawpow
17 | #endif
18 |
--------------------------------------------------------------------------------
/src/crypto/kawpow/lib/kawpow/builtins.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021-2022 The Labyrinth Core developers
2 | // Distributed under the MIT software license, see the accompanying
3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 |
5 | #pragma once
6 |
7 | #ifdef _MSC_VER
8 | #include
9 |
10 | #ifdef __cplusplus
11 | extern "C" {
12 | #endif
13 |
14 | /**
15 | * Returns the number of leading 0-bits in `x`, starting at the most significant bit position.
16 | * If `x` is 0, the result is undefined.
17 | */
18 | static inline int __builtin_clz(unsigned int x)
19 | {
20 | unsigned long most_significant_bit;
21 | _BitScanReverse(&most_significant_bit, x);
22 | return 31 - (int)most_significant_bit;
23 | }
24 |
25 | /**
26 | * Returns the number of 1-bits in `x`.
27 | */
28 | static inline int __builtin_popcount(unsigned int x)
29 | {
30 | return (int)__popcnt(x);
31 | }
32 |
33 | #ifdef __cplusplus
34 | }
35 | #endif
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/src/crypto/kawpow/lib/kawpow/primes.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021-2022 The Labyrinth Core developers
2 | // Distributed under the MIT software license, see the accompanying
3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 |
5 | #pragma once
6 |
7 | #include
8 |
9 | #ifdef __cplusplus
10 | extern "C" {
11 | #endif
12 |
13 | /**
14 | * Finds the largest prime number not greater than the provided upper bound.
15 | *
16 | * @param upper_bound The upper bound. SHOULD be greater than 1.
17 | * @return The largest prime number `p` such `p <= upper_bound`.
18 | * In case `upper_bound <= 1`, returns 0.
19 | */
20 | int kawpow_find_largest_prime(int upper_bound) NOEXCEPT;
21 |
22 | #ifdef __cplusplus
23 | }
24 | #endif
25 |
--------------------------------------------------------------------------------
/src/crypto/kawpow/lib/support/attributes.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021-2022 The Labyrinth Core developers
2 | // Distributed under the MIT software license, see the accompanying
3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 |
5 | #pragma once
6 |
7 | /** inline */
8 | #if _MSC_VER || __STDC_VERSION__
9 | #define INLINE inline
10 | #else
11 | #define INLINE
12 | #endif
13 |
14 | /** [[always_inline]] */
15 | #if _MSC_VER
16 | #define ALWAYS_INLINE __forceinline
17 | #elif defined(__has_attribute) && __STDC_VERSION__
18 | #if __has_attribute(always_inline)
19 | #define ALWAYS_INLINE __attribute__((always_inline))
20 | #endif
21 | #endif
22 | #if !defined(ALWAYS_INLINE)
23 | #define ALWAYS_INLINE
24 | #endif
25 |
26 | /** [[no_sanitize()]] */
27 | #if __clang__
28 | #define NO_SANITIZE(sanitizer) \
29 | __attribute__((no_sanitize(sanitizer)))
30 | #else
31 | #define NO_SANITIZE(sanitizer)
32 | #endif
33 |
--------------------------------------------------------------------------------
/src/crypto/poly1305.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_POLY1305_H
7 | #define LABYRINTH_CRYPTO_POLY1305_H
8 |
9 | #include
10 | #include
11 |
12 | #define POLY1305_KEYLEN 32
13 | #define POLY1305_TAGLEN 16
14 |
15 | void poly1305_auth(unsigned char out[POLY1305_TAGLEN], const unsigned char *m, size_t inlen,
16 | const unsigned char key[POLY1305_KEYLEN]);
17 |
18 | #endif // LABYRINTH_CRYPTO_POLY1305_H
19 |
--------------------------------------------------------------------------------
/src/crypto/ripemd160.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2014-2016 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_RIPEMD160_H
7 | #define LABYRINTH_CRYPTO_RIPEMD160_H
8 |
9 | #include
10 | #include
11 |
12 | /** A hasher class for RIPEMD-160. */
13 | class CRIPEMD160
14 | {
15 | private:
16 | uint32_t s[5];
17 | unsigned char buf[64];
18 | uint64_t bytes;
19 |
20 | public:
21 | static const size_t OUTPUT_SIZE = 20;
22 |
23 | CRIPEMD160();
24 | CRIPEMD160& Write(const unsigned char* data, size_t len);
25 | void Finalize(unsigned char hash[OUTPUT_SIZE]);
26 | CRIPEMD160& Reset();
27 | };
28 |
29 | #endif // LABYRINTH_CRYPTO_RIPEMD160_H
30 |
--------------------------------------------------------------------------------
/src/crypto/sha1.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2014-2016 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_SHA1_H
7 | #define LABYRINTH_CRYPTO_SHA1_H
8 |
9 | #include
10 | #include
11 |
12 | /** A hasher class for SHA1. */
13 | class CSHA1
14 | {
15 | private:
16 | uint32_t s[5];
17 | unsigned char buf[64];
18 | uint64_t bytes;
19 |
20 | public:
21 | static const size_t OUTPUT_SIZE = 20;
22 |
23 | CSHA1();
24 | CSHA1& Write(const unsigned char* data, size_t len);
25 | void Finalize(unsigned char hash[OUTPUT_SIZE]);
26 | CSHA1& Reset();
27 | };
28 |
29 | #endif // LABYRINTH_CRYPTO_SHA1_H
30 |
--------------------------------------------------------------------------------
/src/crypto/sha512.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2014-2019 The Bitcoin Core developers
2 | // Copyright (c) 2021-2022 The Labyrinth Core developers
3 | // Distributed under the MIT software license, see the accompanying
4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 |
6 | #ifndef LABYRINTH_CRYPTO_SHA512_H
7 | #define LABYRINTH_CRYPTO_SHA512_H
8 |
9 | #include
10 | #include
11 |
12 | /** A hasher class for SHA-512. */
13 | class CSHA512
14 | {
15 | private:
16 | uint64_t s[8];
17 | unsigned char buf[128];
18 | uint64_t bytes;
19 |
20 | public:
21 | static constexpr size_t OUTPUT_SIZE = 64;
22 |
23 | CSHA512();
24 | CSHA512& Write(const unsigned char* data, size_t len);
25 | void Finalize(unsigned char hash[OUTPUT_SIZE]);
26 | CSHA512& Reset();
27 | uint64_t Size() const { return bytes; }
28 | };
29 |
30 | #endif // LABYRINTH_CRYPTO_SHA512_H
31 |
--------------------------------------------------------------------------------
/src/founder.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2021-2022 The Labyrinth Core developers
2 | // Distributed under the MIT software license, see the accompanying
3 | // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 |
5 | #ifndef SRC_FOUNDER_PAYMENT_H_
6 | #define SRC_FOUNDER_PAYMENT_H_
7 |
8 | #include
9 | #include