├── 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