├── .gitattributes ├── .gitignore ├── CODEOWNERS ├── CONTRIBUTING.md ├── COPYING ├── INSTALL.md ├── Makefile.am ├── README.md ├── SECURITY.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 │ ├── bitsend_find_bdb48.m4 │ ├── bitsend_qt.m4 │ ├── bitsend_subdir_to_include.m4 │ ├── l_atomic.m4 │ └── l_socket.m4 ├── build_msvc ├── .gitignore ├── README.md ├── bench_bitsend │ └── bench_bitsend.vcxproj.in ├── bitsend-cli │ └── bitsend-cli.vcxproj ├── bitsend-tx │ └── bitsend-tx.vcxproj ├── bitsend-wallet │ └── bitsend-wallet.vcxproj ├── bitsend.sln ├── bitsend_config.h ├── bitsendd │ └── bitsendd.vcxproj ├── common.init.vcxproj ├── common.qt.init.vcxproj ├── common.vcxproj ├── libbitcoin_cli │ └── libbitcoin_cli.vcxproj.in ├── libbitcoin_common │ └── libbitcoin_common.vcxproj.in ├── libbitcoin_crypto │ └── libbitcoin_crypto.vcxproj.in ├── libbitcoin_qt │ └── libbitcoin_qt.vcxproj ├── libbitcoin_server │ └── libbitcoin_server.vcxproj.in ├── libbitcoin_util │ └── libbitcoin_util.vcxproj.in ├── libbitcoin_wallet │ └── libbitcoin_wallet.vcxproj.in ├── libbitcoin_wallet_tool │ └── libbitcoin_wallet_tool.vcxproj.in ├── libbitcoin_zmq │ └── libbitcoin_zmq.vcxproj.in ├── libbitcoinconsensus │ └── libbitcoinconsensus.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_bitsend-qt │ └── test_bitsend-qt.vcxproj ├── test_bitsend │ └── test_bitsend.vcxproj ├── testconsensus │ ├── testconsensus.cpp │ └── testconsensus.vcxproj └── vcpkg.json ├── ci ├── README.md ├── lint │ ├── 04_install.sh │ ├── 05_before_script.sh │ └── 06_script.sh ├── retry │ ├── README.md │ └── retry ├── test │ ├── 00_setup_env.sh │ ├── 00_setup_env_arm.sh │ ├── 00_setup_env_i686_centos.sh │ ├── 00_setup_env_mac.sh │ ├── 00_setup_env_mac_host.sh │ ├── 00_setup_env_native_asan.sh │ ├── 00_setup_env_native_fuzz.sh │ ├── 00_setup_env_native_fuzz_with_valgrind.sh │ ├── 00_setup_env_native_msan.sh │ ├── 00_setup_env_native_multiprocess.sh │ ├── 00_setup_env_native_nowallet.sh │ ├── 00_setup_env_native_qt5.sh │ ├── 00_setup_env_native_tsan.sh │ ├── 00_setup_env_native_valgrind.sh │ ├── 00_setup_env_s390x.sh │ ├── 00_setup_env_win64.sh │ ├── 03_before_install.sh │ ├── 04_install.sh │ ├── 05_before_script.sh │ ├── 06_script_a.sh │ ├── 06_script_b.sh │ ├── wrap-qemu.sh │ ├── wrap-valgrind.sh │ └── wrap-wine.sh └── test_run_all.sh ├── configure.ac ├── contrib ├── README.md ├── bitsend-cli.bash-completion ├── bitsend-qt.pro ├── bitsend-tx.bash-completion ├── bitsendd.bash-completion ├── 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 │ ├── symbol-check.py │ ├── test-security-check.py │ ├── test_deterministic_coverage.sh │ └── utxo_snapshot.sh ├── filter-lcov.py ├── gitian-build.py ├── gitian-descriptors │ ├── assign_DISTNAME │ ├── gitian-linux.yml │ ├── gitian-osx-signer.yml │ ├── gitian-osx.yml │ ├── gitian-win-signer.yml │ └── gitian-win.yml ├── gitian-keys │ ├── README.md │ └── keys.txt ├── guix │ ├── README.md │ ├── guix-build.sh │ ├── libexec │ │ └── build.sh │ └── manifest.scm ├── init │ ├── README.md │ ├── bitsendd.conf │ ├── bitsendd.init │ ├── bitsendd.openrc │ ├── bitsendd.openrcconf │ └── bitsendd.service ├── install_db4.sh ├── 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 │ ├── gen-sdk │ └── macdeployqtplus ├── qos │ ├── README.md │ └── tc.sh ├── seeds │ ├── .gitignore │ ├── 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 ├── verify-commits │ ├── README.md │ ├── allow-incorrect-sha512-commits │ ├── allow-revsig-commits │ ├── allow-unclean-merge-commits │ ├── gpg.sh │ ├── pre-push-hook.sh │ ├── trusted-git-root │ ├── trusted-keys │ ├── trusted-sha512-root-commit │ └── verify-commits.py ├── verifybinaries │ ├── README.md │ └── verify.sh ├── windeploy │ ├── detached-sig-create.sh │ └── win-codesign.cert └── zmq │ └── zmq_sub.py ├── depends ├── .gitignore ├── 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 ├── .gitignore ├── Doxyfile.in ├── JSON-RPC-interface.md ├── README.md ├── README_doxygen.md ├── README_windows.txt ├── REST-interface.md ├── assets-attribution.md ├── benchmarking.md ├── bips.md ├── bitsend-conf.md ├── bitsend_logo_doxygen.png ├── 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 ├── gitian-building.md ├── init.md ├── man │ ├── Makefile.am │ ├── bitsend-cli.1 │ ├── bitsend-qt.1 │ ├── bitsend-tx.1 │ ├── bitsend-wallet.1 │ └── bitsendd.1 ├── multiprocess.md ├── productivity.md ├── psbt.md ├── reduce-memory.md ├── reduce-traffic.md ├── release-notes.md ├── release-notes │ ├── release-notes-0.10.0.md │ ├── release-notes-0.10.1.md │ ├── release-notes-0.10.2.md │ ├── release-notes-0.10.3.md │ ├── release-notes-0.10.4.md │ ├── release-notes-0.11.0.md │ ├── release-notes-0.11.1.md │ ├── release-notes-0.11.2.md │ ├── release-notes-0.12.0.md │ ├── release-notes-0.12.1.md │ ├── release-notes-0.13.0.md │ ├── release-notes-0.13.1.md │ ├── release-notes-0.13.2.md │ ├── release-notes-0.14.0.md │ ├── release-notes-0.14.1.md │ ├── release-notes-0.14.2.md │ ├── release-notes-0.14.3.md │ ├── release-notes-0.15.0.1.md │ ├── release-notes-0.15.0.md │ ├── release-notes-0.15.1.md │ ├── release-notes-0.15.2.md │ ├── release-notes-0.16.0.md │ ├── release-notes-0.16.1.md │ ├── release-notes-0.16.2.md │ ├── release-notes-0.16.3.md │ ├── release-notes-0.17.0.1.md │ ├── release-notes-0.17.0.md │ ├── release-notes-0.17.1.md │ ├── release-notes-0.18.0.md │ ├── release-notes-0.18.1.md │ ├── release-notes-0.19.0.1.md │ ├── release-notes-0.19.0.md │ ├── release-notes-0.19.1.md │ ├── release-notes-0.20.0.md │ ├── release-notes-0.20.1.md │ ├── release-notes-0.21.0.md │ ├── release-notes-0.3.12.md │ ├── release-notes-0.3.13.md │ ├── release-notes-0.3.14.md │ ├── release-notes-0.3.15.md │ ├── release-notes-0.3.16.md │ ├── release-notes-0.3.17.md │ ├── release-notes-0.3.18.md │ ├── release-notes-0.3.19.md │ ├── release-notes-0.3.20.1.md │ ├── release-notes-0.3.20.2.md │ ├── release-notes-0.3.20.md │ ├── release-notes-0.3.21.md │ ├── release-notes-0.3.22.md │ ├── release-notes-0.3.23.md │ ├── release-notes-0.3.24.md │ ├── release-notes-0.4.0.md │ ├── release-notes-0.4.1.md │ ├── release-notes-0.4.2.md │ ├── release-notes-0.4.3.md │ ├── release-notes-0.4.4.md │ ├── release-notes-0.4.5.md │ ├── release-notes-0.4.6.md │ ├── release-notes-0.5.0.md │ ├── release-notes-0.5.1.md │ ├── release-notes-0.5.2.md │ ├── release-notes-0.5.3.md │ ├── release-notes-0.5.4.md │ ├── release-notes-0.5.5.md │ ├── release-notes-0.6.0.md │ ├── release-notes-0.6.1.md │ ├── release-notes-0.6.2.md │ ├── release-notes-0.6.3.md │ ├── release-notes-0.7.0.md │ ├── release-notes-0.7.1.md │ ├── release-notes-0.7.2.md │ ├── release-notes-0.8.0.md │ ├── release-notes-0.8.1.md │ ├── release-notes-0.8.2.md │ ├── release-notes-0.8.3.md │ ├── release-notes-0.8.4.md │ ├── release-notes-0.8.5.md │ ├── release-notes-0.8.6.md │ ├── release-notes-0.9.0.md │ ├── release-notes-0.9.1.md │ ├── release-notes-0.9.2.1.md │ ├── release-notes-0.9.2.md │ ├── release-notes-0.9.3.md │ ├── release-notes-0.9.4.md │ └── release-notes-0.9.5.md ├── release-process.md ├── shared-libraries.md ├── tor.md ├── translation_process.md ├── translation_strings_policy.md └── zmq.md ├── libbitsendconsensus.pc.in ├── share ├── examples │ └── bitsend.conf ├── genbuild.sh ├── pixmaps │ ├── bitsend.ico │ ├── bitsend128.png │ ├── bitsend128.xpm │ ├── bitsend16.png │ ├── bitsend16.xpm │ ├── bitsend256.png │ ├── bitsend256.xpm │ ├── bitsend32.png │ ├── bitsend32.xpm │ ├── bitsend64.png │ ├── bitsend64.xpm │ ├── nsis-header.bmp │ └── nsis-wizard.bmp ├── qt │ ├── Info.plist.in │ └── extract_strings_qt.py ├── rpcauth │ ├── README.md │ └── rpcauth.py └── setup.nsi.in ├── src ├── .clang-format ├── 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 │ ├── .gitignore │ ├── addrman.cpp │ ├── base58.cpp │ ├── bech32.cpp │ ├── bench.cpp │ ├── bench.h │ ├── bench_bitsend.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 ├── bitsend-cli-res.rc ├── bitsend-cli.cpp ├── bitsend-tx-res.rc ├── bitsend-tx.cpp ├── bitsend-wallet-res.rc ├── bitsend-wallet.cpp ├── bitsendd-res.rc ├── bitsendd.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 │ ├── .appveyor.yml │ ├── .clang-format │ ├── .clang_complete │ ├── .gitignore │ ├── .gitmodules │ ├── .travis.yml │ ├── .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 │ ├── aes_helper.c │ ├── blake.c │ ├── bmw.c │ ├── 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 │ ├── cubehash.c │ ├── echo.c │ ├── fugue.c │ ├── groestl.c │ ├── hamsi.c │ ├── hamsi_helper.c │ ├── haval.c │ ├── haval_helper.c │ ├── hkdf_sha256_32.cpp │ ├── hkdf_sha256_32.h │ ├── hmac_sha256.cpp │ ├── hmac_sha256.h │ ├── hmac_sha512.cpp │ ├── hmac_sha512.h │ ├── jh.c │ ├── keccak.c │ ├── luffa.c │ ├── md_helper.c │ ├── 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 │ ├── shabal.c │ ├── shavite.c │ ├── simd.c │ ├── siphash.cpp │ ├── siphash.h │ ├── skein.c │ ├── sph_blake.h │ ├── sph_bmw.h │ ├── sph_cubehash.h │ ├── sph_echo.h │ ├── sph_fugue.h │ ├── sph_groestl.h │ ├── sph_hamsi.h │ ├── sph_haval.h │ ├── sph_jh.h │ ├── sph_keccak.h │ ├── sph_luffa.h │ ├── sph_md_helper.c │ ├── sph_sha2.h │ ├── sph_sha2big.c │ ├── sph_shabal.h │ ├── sph_shavite.h │ ├── sph_simd.h │ ├── sph_skein.h │ ├── sph_types.h │ ├── sph_whirlpool.h │ ├── whirlpool.c │ └── xevan.h ├── cuckoocache.h ├── dbwrapper.cpp ├── dbwrapper.h ├── dummywallet.cpp ├── flatfile.cpp ├── flatfile.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 ├── leveldb │ ├── .appveyor.yml │ ├── .clang-format │ ├── .gitignore │ ├── .travis.yml │ ├── 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 │ ├── README.md │ ├── addressbookpage.cpp │ ├── addressbookpage.h │ ├── addresstablemodel.cpp │ ├── addresstablemodel.h │ ├── askpassphrasedialog.cpp │ ├── askpassphrasedialog.h │ ├── bantablemodel.cpp │ ├── bantablemodel.h │ ├── bitsend.cpp │ ├── bitsend.h │ ├── bitsend.qrc │ ├── bitsend_locale.qrc │ ├── bitsendaddressvalidator.cpp │ ├── bitsendaddressvalidator.h │ ├── bitsendamountfield.cpp │ ├── bitsendamountfield.h │ ├── bitsendgui.cpp │ ├── bitsendgui.h │ ├── bitsendstrings.cpp │ ├── bitsendunits.cpp │ ├── bitsendunits.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 │ ├── locale │ │ ├── bitsend_af.ts │ │ ├── bitsend_am.ts │ │ ├── bitsend_ar.ts │ │ ├── bitsend_be.ts │ │ ├── bitsend_bg.ts │ │ ├── bitsend_bn.ts │ │ ├── bitsend_bs.ts │ │ ├── bitsend_ca.ts │ │ ├── bitsend_cs.ts │ │ ├── bitsend_cy.ts │ │ ├── bitsend_da.ts │ │ ├── bitsend_de.ts │ │ ├── bitsend_el.ts │ │ ├── bitsend_en.ts │ │ ├── bitsend_en_GB.ts │ │ ├── bitsend_eo.ts │ │ ├── bitsend_es.ts │ │ ├── bitsend_es_CL.ts │ │ ├── bitsend_es_CO.ts │ │ ├── bitsend_es_DO.ts │ │ ├── bitsend_es_MX.ts │ │ ├── bitsend_es_VE.ts │ │ ├── bitsend_et.ts │ │ ├── bitsend_eu.ts │ │ ├── bitsend_fa.ts │ │ ├── bitsend_fi.ts │ │ ├── bitsend_fil.ts │ │ ├── bitsend_fr.ts │ │ ├── bitsend_gl_ES.ts │ │ ├── bitsend_he.ts │ │ ├── bitsend_hi.ts │ │ ├── bitsend_hr.ts │ │ ├── bitsend_hu.ts │ │ ├── bitsend_id.ts │ │ ├── bitsend_is.ts │ │ ├── bitsend_it.ts │ │ ├── bitsend_ja.ts │ │ ├── bitsend_ka.ts │ │ ├── bitsend_kk.ts │ │ ├── bitsend_km.ts │ │ ├── bitsend_ko.ts │ │ ├── bitsend_ku_IQ.ts │ │ ├── bitsend_ky.ts │ │ ├── bitsend_la.ts │ │ ├── bitsend_lt.ts │ │ ├── bitsend_lv.ts │ │ ├── bitsend_mk.ts │ │ ├── bitsend_ml.ts │ │ ├── bitsend_mn.ts │ │ ├── bitsend_mr_IN.ts │ │ ├── bitsend_my.ts │ │ ├── bitsend_nb.ts │ │ ├── bitsend_ne.ts │ │ ├── bitsend_nl.ts │ │ ├── bitsend_pam.ts │ │ ├── bitsend_pl.ts │ │ ├── bitsend_pt.ts │ │ ├── bitsend_pt_BR.ts │ │ ├── bitsend_ro.ts │ │ ├── bitsend_ru.ts │ │ ├── bitsend_si.ts │ │ ├── bitsend_sk.ts │ │ ├── bitsend_sl.ts │ │ ├── bitsend_sn.ts │ │ ├── bitsend_sq.ts │ │ ├── bitsend_sr.ts │ │ ├── bitsend_sr@latin.ts │ │ ├── bitsend_sv.ts │ │ ├── bitsend_szl.ts │ │ ├── bitsend_ta.ts │ │ ├── bitsend_te.ts │ │ ├── bitsend_th.ts │ │ ├── bitsend_tr.ts │ │ ├── bitsend_uk.ts │ │ ├── bitsend_ur.ts │ │ ├── bitsend_uz@Cyrl.ts │ │ ├── bitsend_uz@Latn.ts │ │ ├── bitsend_vi.ts │ │ ├── bitsend_yo.ts │ │ ├── bitsend_zh-Hans.ts │ │ ├── bitsend_zh.ts │ │ ├── bitsend_zh_CN.ts │ │ ├── bitsend_zh_HK.ts │ │ ├── bitsend_zh_TW.ts │ │ └── bitsend_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 │ │ ├── bitsend-qt-res.rc │ │ ├── icons │ │ │ ├── add.png │ │ │ ├── address-book.png │ │ │ ├── bitsend-old.png │ │ │ ├── bitsend.icns │ │ │ ├── bitsend.ico │ │ │ ├── bitsend.png │ │ │ ├── bitsend_testnet.ico │ │ │ ├── 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 │ │ │ ├── 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 │ │ └── src │ │ │ ├── bitsend.svg │ │ │ ├── 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 │ │ │ ├── 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 │ │ ├── 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 │ ├── bitsendconsensus.cpp │ ├── bitsendconsensus.h │ ├── descriptor.cpp │ ├── descriptor.h │ ├── interpreter.cpp │ ├── interpreter.h │ ├── keyorigin.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 │ ├── .gitignore │ ├── .travis.yml │ ├── COPYING │ ├── Makefile.am │ ├── README.md │ ├── SECURITY.md │ ├── autogen.sh │ ├── build-aux │ │ └── m4 │ │ │ ├── ax_prog_cc_for_build.m4 │ │ │ └── bitsend_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 │ ├── obj │ │ └── .gitignore │ ├── 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 ├── signet.cpp ├── signet.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 │ ├── 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_bitsend_consensus.cpp │ │ ├── script_descriptor_cache.cpp │ │ ├── script_flags.cpp │ │ ├── script_interpreter.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 │ │ ├── signet.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 │ ├── .gitignore │ ├── .travis.yml │ ├── COPYING │ ├── Makefile.am │ ├── README.md │ ├── TODO │ ├── autogen.sh │ ├── build-aux │ │ └── m4 │ │ │ └── .gitignore │ ├── configure.ac │ ├── include │ │ └── univalue.h │ ├── lib │ │ ├── .gitignore │ │ ├── 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 │ │ ├── .gitignore │ │ ├── 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 ├── .gitignore ├── 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_signet.py ├── feature_taproot.py ├── feature_uacomment.py ├── feature_versionbits_warning.py ├── interface_bitsend_cli.py ├── interface_http.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 ├── lint ├── README.md ├── check-doc.py ├── check-rpc-mappings.py ├── commit-script-check.sh ├── extended-lint-all.sh ├── extended-lint-cppcheck.sh ├── git-subtree-check.sh ├── lint-all.sh ├── lint-assertions.sh ├── lint-circular-dependencies.sh ├── lint-cpp.sh ├── lint-filenames.sh ├── lint-format-strings.py ├── lint-format-strings.sh ├── lint-git-commit-check.sh ├── lint-include-guards.sh ├── lint-includes.sh ├── lint-locale-dependence.sh ├── lint-logs.sh ├── lint-python-mutable-default-parameters.sh ├── lint-python-utf8-encoding.sh ├── lint-python.sh ├── lint-qt.sh ├── lint-rpc-help.sh ├── lint-shebang.sh ├── lint-shell-locale.sh ├── lint-shell.sh ├── lint-spelling.ignore-words.txt ├── lint-spelling.sh ├── lint-submodule.sh ├── lint-tests.sh └── lint-whitespace.sh ├── sanitizer_suppressions ├── lsan ├── tsan └── ubsan └── util ├── bitsend-util-test.py ├── data ├── bitsend-util-test.json ├── blanktxv1.hex ├── blanktxv1.json ├── blanktxv2.hex ├── blanktxv2.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 └── rpcauth-test.py /.gitattributes: -------------------------------------------------------------------------------- 1 | src/version.cpp export-subst 2 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | Building BitSend 2 | ================ 3 | 4 | See doc/build-*.md for instructions on building the various 5 | elements of the BitSend Core reference implementation of BitSend. 6 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | See our website for versions of BitSend Core that are currently supported with 6 | security updates: https://bitsendcore.org/en/lifecycle/#schedule 7 | 8 | ## Reporting a Vulnerability 9 | 10 | To report security issues send an email to security@bitsendcore.org (not for support). 11 | 12 | The following keys may be used to communicate sensitive information to developers: 13 | 14 | | Name | Fingerprint | 15 | |------|-------------| 16 | | Wladimir van der Laan | 71A3 B167 3540 5025 D447 E8F2 7481 0B01 2346 C9A6 | 17 | | Jonas Schnelli | 32EE 5C4C 3FA1 5CCA DB46 ABE5 29D4 BCB6 416F 53EC | 18 | | Pieter Wuille | 133E AC17 9436 F14A 5CF1 B794 860F EB80 4E66 9320 | 19 | 20 | You can import a key by running the following command with that individual’s fingerprint: `gpg --recv-keys ""` Ensure that you put quotes around fingerprints containing spaces. 21 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (c) 2013-2019 The BitSend 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 | export LC_ALL=C 7 | set -e 8 | srcdir="$(dirname "$0")" 9 | cd "$srcdir" 10 | if [ -z "${LIBTOOLIZE}" ] && GLIBTOOLIZE="$(command -v glibtoolize)"; then 11 | LIBTOOLIZE="${GLIBTOOLIZE}" 12 | export LIBTOOLIZE 13 | fi 14 | command -v autoreconf >/dev/null || \ 15 | (echo "configuration failed, please install autoconf first" && exit 1) 16 | autoreconf --install --force --warnings=all 17 | -------------------------------------------------------------------------------- /build-aux/m4/bitsend_subdir_to_include.m4: -------------------------------------------------------------------------------- 1 | dnl Copyright (c) 2013-2014 The BitSend Core developers 2 | dnl Distributed under the MIT software license, see the accompanying 3 | dnl file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 | 5 | dnl BITSEND_SUBDIR_TO_INCLUDE([CPPFLAGS-VARIABLE-NAME],[SUBDIRECTORY-NAME],[HEADER-FILE]) 6 | dnl SUBDIRECTORY-NAME must end with a path separator 7 | AC_DEFUN([BITSEND_SUBDIR_TO_INCLUDE],[ 8 | if test "x$2" = "x"; then 9 | AC_MSG_RESULT([default]) 10 | else 11 | echo "#include <$2$3.h>" >conftest.cpp 12 | 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`] 13 | AC_MSG_RESULT([${newinclpath}]) 14 | if test "x${newinclpath}" != "x"; then 15 | eval "$1=\"\$$1\"' -I${newinclpath}'" 16 | fi 17 | fi 18 | ]) 19 | -------------------------------------------------------------------------------- /build_msvc/.gitignore: -------------------------------------------------------------------------------- 1 | # Build directories 2 | Debug/* 3 | Release/* 4 | .vs 5 | packages/* 6 | */Obj 7 | */Debug 8 | */Release 9 | */x64 10 | *.vcxproj.user 11 | 12 | # .vcxproj files that are auto-generated by the msvc-autogen.py script. 13 | libbitsend_cli/libbitsend_cli.vcxproj 14 | libbitsend_common/libbitsend_common.vcxproj 15 | libbitsend_crypto/libbitsend_crypto.vcxproj 16 | libbitsend_server/libbitsend_server.vcxproj 17 | libbitsend_util/libbitsend_util.vcxproj 18 | libbitsend_wallet_tool/libbitsend_wallet_tool.vcxproj 19 | libbitsend_wallet/libbitsend_wallet.vcxproj 20 | libbitsend_zmq/libbitsend_zmq.vcxproj 21 | bench_bitsend/bench_bitsend.vcxproj 22 | libtest_util/libtest_util.vcxproj 23 | 24 | */Win32 25 | libbitsend_qt/QtGeneratedFiles/* 26 | test_bitsend-qt/QtGeneratedFiles/* 27 | vcpkg_installed -------------------------------------------------------------------------------- /build_msvc/common.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | $(BuildDependsOn);CopyBuildArtifacts 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /build_msvc/libbitcoin_cli/libbitcoin_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/libbitcoin_common/libbitcoin_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/libbitcoin_crypto/libbitcoin_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/libbitcoin_server/libbitcoin_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/libbitcoin_util/libbitcoin_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/libbitcoin_wallet/libbitcoin_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/libbitcoin_wallet_tool/libbitcoin_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/libbitcoin_zmq/libbitcoin_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/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bitsend-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 | -------------------------------------------------------------------------------- /ci/lint/05_before_script.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018-2019 The BitSend 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 | 9 | git fetch --unshallow 10 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_i686_centos.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2020 The BitSend 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.UTF-8 8 | 9 | export HOST=i686-pc-linux-gnu 10 | export CONTAINER_NAME=ci_i686_centos_7 11 | export DOCKER_NAME_TAG=centos:7 12 | export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python36-zmq which patch lbzip2 dash" 13 | export GOAL="install" 14 | export BITSEND_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports --with-boost-process" 15 | export CONFIG_SHELL="/bin/dash" 16 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_mac.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_macos_cross 10 | export DOCKER_NAME_TAG=ubuntu:18.04 # Check that bionic can cross-compile to macos (bionic is used in the gitian build as well) 11 | export HOST=x86_64-apple-darwin16 12 | export PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools" 13 | export XCODE_VERSION=11.3.1 14 | export XCODE_BUILD_ID=11C505 15 | export RUN_UNIT_TESTS=false 16 | export RUN_FUNCTIONAL_TESTS=false 17 | export GOAL="deploy" 18 | export BITSEND_CONFIG="--with-gui --enable-reduce-exports --enable-werror --with-boost-process" 19 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_mac_host.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export HOST=x86_64-apple-darwin16 10 | export PIP_PACKAGES="zmq" 11 | export GOAL="install" 12 | export BITSEND_CONFIG="--with-gui --enable-reduce-exports --enable-werror --with-boost-process" 13 | export CI_OS_NAME="macos" 14 | export NO_DEPENDS=1 15 | export OSX_SDK="" 16 | export CCACHE_SIZE=300M 17 | 18 | export RUN_SECURITY_TESTS="true" 19 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_asan.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_native_asan 10 | export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libsqlite3-dev" 11 | export DOCKER_NAME_TAG=ubuntu:20.04 12 | export NO_DEPENDS=1 13 | export GOAL="install" 14 | export BITSEND_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' --with-sanitizers=address,integer,undefined CC=clang CXX=clang++ --with-boost-process" 15 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_fuzz.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export DOCKER_NAME_TAG="ubuntu:20.04" 10 | export CONTAINER_NAME=ci_native_fuzz 11 | export PACKAGES="clang llvm python3 libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev" 12 | export NO_DEPENDS=1 13 | export RUN_UNIT_TESTS=false 14 | export RUN_FUNCTIONAL_TESTS=false 15 | export RUN_FUZZ_TESTS=true 16 | export GOAL="install" 17 | export BITSEND_CONFIG="--enable-fuzz --with-sanitizers=fuzzer,address,undefined CC=clang CXX=clang++ --with-boost-process" 18 | export CCACHE_SIZE=200M 19 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_fuzz_with_valgrind.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export DOCKER_NAME_TAG="ubuntu:20.04" 10 | export CONTAINER_NAME=ci_native_fuzz_valgrind 11 | export PACKAGES="clang llvm python3 libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev valgrind" 12 | export NO_DEPENDS=1 13 | export RUN_UNIT_TESTS=false 14 | export RUN_FUNCTIONAL_TESTS=false 15 | export RUN_FUZZ_TESTS=true 16 | export FUZZ_TESTS_CONFIG="--valgrind" 17 | export GOAL="install" 18 | export BITSEND_CONFIG="--enable-fuzz --with-sanitizers=fuzzer CC=clang CXX=clang++" 19 | export CCACHE_SIZE=200M 20 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_multiprocess.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_native_multiprocess 10 | export DOCKER_NAME_TAG=ubuntu:20.04 11 | export PACKAGES="cmake python3" 12 | export DEP_OPTS="MULTIPROCESS=1" 13 | export GOAL="install" 14 | export BITSEND_CONFIG="--with-boost-process" 15 | export TEST_RUNNER_ENV="BITSENDD=bitsend-node" 16 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_nowallet.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_native_nowallet 10 | export DOCKER_NAME_TAG=ubuntu:16.04 # Use xenial to have one config run the tests in python3.5, see doc/dependencies.md 11 | export PACKAGES="python3-zmq clang-3.8 llvm-3.8" # Use clang-3.8 to test C++11 compatibility, see doc/dependencies.md 12 | export DEP_OPTS="NO_WALLET=1" 13 | export GOAL="install" 14 | export BITSEND_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CC=clang-3.8 CXX=clang++-3.8 --with-boost-process" 15 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_tsan.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_native_tsan 10 | export DOCKER_NAME_TAG=ubuntu:20.04 11 | export PACKAGES="clang llvm libc++abi-dev libc++-dev python3-zmq" 12 | export DEP_OPTS="CC=clang CXX='clang++ -stdlib=libc++'" 13 | export TEST_RUNNER_EXTRA="--exclude feature_block" # Low memory on Travis machines, exclude feature_block. 14 | export GOAL="install" 15 | export BITSEND_CONFIG="--enable-zmq --with-gui=no CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' CXXFLAGS='-g' --with-sanitizers=thread CC=clang CXX='clang++ -stdlib=libc++' --with-boost-process" 16 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_native_valgrind.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_native_valgrind 10 | export PACKAGES="valgrind clang llvm python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libsqlite3-dev" 11 | export USE_VALGRIND=1 12 | export NO_DEPENDS=1 13 | export TEST_RUNNER_EXTRA="--exclude rpc_bind" # Excluded for now, see https://github.com/bitsend/bitsend/issues/17765#issuecomment-602068547 14 | export GOAL="install" 15 | export BITSEND_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no CC=clang CXX=clang++" # TODO enable GUI 16 | -------------------------------------------------------------------------------- /ci/test/00_setup_env_win64.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019-2020 The BitSend 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.UTF-8 8 | 9 | export CONTAINER_NAME=ci_win64 10 | export DOCKER_NAME_TAG=ubuntu:18.04 # Check that bionic can cross-compile to win64 (bionic is used in the gitian build as well) 11 | export HOST=x86_64-w64-mingw32 12 | export PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64 file" 13 | export RUN_FUNCTIONAL_TESTS=false 14 | export RUN_SECURITY_TESTS="true" 15 | export GOAL="deploy" 16 | export BITSEND_CONFIG="--enable-reduce-exports --disable-gui-tests --without-boost-process" 17 | -------------------------------------------------------------------------------- /ci/test/03_before_install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018-2019 The BitSend 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.UTF-8 8 | 9 | BEGIN_FOLD () { 10 | echo "" 11 | CURRENT_FOLD_NAME=$1 12 | echo "travis_fold:start:${CURRENT_FOLD_NAME}" 13 | } 14 | 15 | END_FOLD () { 16 | RET=$? 17 | echo "travis_fold:end:${CURRENT_FOLD_NAME}" 18 | if [ $RET != 0 ]; then 19 | echo "${CURRENT_FOLD_NAME} failed with status code ${RET}" 20 | fi 21 | } 22 | 23 | -------------------------------------------------------------------------------- /ci/test/wrap-qemu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018-2019 The BitSend 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.UTF-8 8 | 9 | for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}; do 10 | # shellcheck disable=SC2044 11 | for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name $(basename $b_name)); do 12 | echo "Wrap $b ..." 13 | mv "$b" "${b}_orig" 14 | echo '#!/usr/bin/env bash' > "$b" 15 | echo "$QEMU_USER_CMD \"${b}_orig\" \"\$@\"" >> "$b" 16 | chmod +x "$b" 17 | done 18 | done 19 | -------------------------------------------------------------------------------- /ci/test/wrap-valgrind.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018-2019 The BitSend 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.UTF-8 8 | 9 | for b_name in "${BASE_OUTDIR}/bin"/*; do 10 | # shellcheck disable=SC2044 11 | for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name $(basename $b_name)); do 12 | echo "Wrap $b ..." 13 | mv "$b" "${b}_orig" 14 | echo '#!/usr/bin/env bash' > "$b" 15 | echo "valgrind --gen-suppressions=all --quiet --error-exitcode=1 --suppressions=${BASE_ROOT_DIR}/contrib/valgrind.supp \"${b}_orig\" \"\$@\"" >> "$b" 16 | chmod +x "$b" 17 | done 18 | done 19 | -------------------------------------------------------------------------------- /ci/test/wrap-wine.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2020 The BitSend 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.UTF-8 8 | 9 | for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}.exe; do 10 | # shellcheck disable=SC2044 11 | for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name "$(basename $b_name)"); do 12 | if (file "$b" | grep "Windows"); then 13 | echo "Wrap $b ..." 14 | mv "$b" "${b}_orig" 15 | echo '#!/usr/bin/env bash' > "$b" 16 | echo "wine64 \"${b}_orig\" \"\$@\"" >> "$b" 17 | chmod +x "$b" 18 | fi 19 | done 20 | done 21 | -------------------------------------------------------------------------------- /ci/test_run_all.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019 The BitSend 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.UTF-8 8 | 9 | set -o errexit; source ./ci/test/00_setup_env.sh 10 | set -o errexit; source ./ci/test/03_before_install.sh 11 | set -o errexit; source ./ci/test/04_install.sh 12 | set -o errexit; source ./ci/test/05_before_script.sh 13 | set -o errexit; source ./ci/test/06_script_a.sh 14 | set -o errexit; source ./ci/test/06_script_b.sh 15 | -------------------------------------------------------------------------------- /contrib/bitsend-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/bitsend.qrc 23 | -------------------------------------------------------------------------------- /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/gitian-descriptors/assign_DISTNAME: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2020 The BitSend 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 | # A helper script to be sourced into the gitian descriptors 6 | 7 | if RECENT_TAG="$(git describe --exact-match HEAD)"; then 8 | VERSION="${RECENT_TAG#v}" 9 | else 10 | VERSION="$(git rev-parse --short=12 HEAD)" 11 | fi 12 | DISTNAME="bitsend-${VERSION}" 13 | -------------------------------------------------------------------------------- /contrib/init/README.md: -------------------------------------------------------------------------------- 1 | Sample configuration files for: 2 | ``` 3 | SystemD: bitsendd.service 4 | Upstart: bitsendd.conf 5 | OpenRC: bitsendd.openrc 6 | bitsendd.openrcconf 7 | CentOS: bitsendd.init 8 | macOS: org.bitsend.bitsendd.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/qos/README.md: -------------------------------------------------------------------------------- 1 | ### QoS (Quality of service) ### 2 | 3 | This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the BitSend network. It limits outbound TCP traffic with a source or destination port of 8333, but not if the destination IP is within a LAN. 4 | 5 | This means one can have an always-on bitsendd instance running, and another local bitsendd/bitsend-qt instance which connects to this node and receives blocks from it. 6 | -------------------------------------------------------------------------------- /contrib/seeds/.gitignore: -------------------------------------------------------------------------------- 1 | seeds_main.txt 2 | -------------------------------------------------------------------------------- /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://bitsend.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_test.txt: -------------------------------------------------------------------------------- 1 | # List of fixed seed nodes for testnet 2 | 3 | # Onion nodes 4 | thfsmmn2jbitsend.onion 5 | it2pj4f7657g3rhi.onion 6 | nkf5e6b7pl4jfd4a.onion 7 | 4zhkir2ofl7orfom.onion 8 | t6xj6wilh4ytvcs7.onion 9 | i6y6ivorwakd7nw3.onion 10 | ubqj4rsu3nqtxmtp.onion 11 | 12 | -------------------------------------------------------------------------------- /contrib/seeds/suspicious_hosts.txt: -------------------------------------------------------------------------------- 1 | 130.211.129.106 2 | 148.251.238.178 3 | 176.9.46.6 4 | 178.63.107.226 5 | 54.173.72.127 6 | 54.174.10.182 7 | 54.183.64.54 8 | 54.194.231.211 9 | 54.66.214.167 10 | 54.66.220.137 11 | 54.67.33.14 12 | 54.77.251.214 13 | 54.94.195.96 14 | 54.94.200.247 15 | 83.81.130.26 16 | 88.198.17.7 -------------------------------------------------------------------------------- /contrib/testgen/README.md: -------------------------------------------------------------------------------- 1 | ### TestGen ### 2 | 3 | Utilities to generate test vectors for the data-driven BitSend 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 | -------------------------------------------------------------------------------- /contrib/verify-commits/allow-incorrect-sha512-commits: -------------------------------------------------------------------------------- 1 | f8feaa4636260b599294c7285bcf1c8b7737f74e 2 | 8040ae6fc576e9504186f2ae3ff2c8125de1095c 3 | -------------------------------------------------------------------------------- /contrib/verify-commits/allow-unclean-merge-commits: -------------------------------------------------------------------------------- 1 | 6052d509105790a26b3ad5df43dd61e7f1b24a12 2 | 3798e5de334c3deb5f71302b782f6b8fbd5087f1 3 | 326ffed09bfcc209a2efd6a2ebc69edf6bd200b5 4 | 97d83739db0631be5d4ba86af3616014652c00ec 5 | -------------------------------------------------------------------------------- /contrib/verify-commits/pre-push-hook.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (c) 2014-2020 The BitSend 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 | export LC_ALL=C 7 | if ! [[ "$2" =~ ^(git@)?(www.)?github.com(:|/)bitsend/bitsend(.git)?$ ]]; then 8 | exit 0 9 | fi 10 | 11 | while read LINE; do 12 | set -- A $LINE 13 | if [ "$4" != "refs/heads/master" ]; then 14 | continue 15 | fi 16 | if ! ./contrib/verify-commits/verify-commits.py $3 > /dev/null 2>&1; then 17 | echo "ERROR: A commit is not signed, can't push" 18 | ./contrib/verify-commits/verify-commits.py 19 | exit 1 20 | fi 21 | done < /dev/stdin 22 | -------------------------------------------------------------------------------- /contrib/verify-commits/trusted-git-root: -------------------------------------------------------------------------------- 1 | 82bcf405f6db1d55b684a1f63a4aabad376cdad7 2 | -------------------------------------------------------------------------------- /contrib/verify-commits/trusted-keys: -------------------------------------------------------------------------------- 1 | 71A3B16735405025D447E8F274810B012346C9A6 2 | 133EAC179436F14A5CF1B794860FEB804E669320 3 | 32EE5C4C3FA15CCADB46ABE529D4BCB6416F53EC 4 | B8B3F1C0E58C15DB6A81D30C3648A882F4316B9B 5 | CA03882CB1FC067B5D3ACFE4D300116E1C875A3D 6 | E777299FC265DD04793070EB944D35F9AC3DB76A 7 | -------------------------------------------------------------------------------- /contrib/verify-commits/trusted-sha512-root-commit: -------------------------------------------------------------------------------- 1 | 309bf16257b2395ce502017be627186b749ee749 2 | -------------------------------------------------------------------------------- /depends/.gitignore: -------------------------------------------------------------------------------- 1 | SDKs/ 2 | work/ 3 | built/ 4 | sources/ 5 | config.site 6 | x86_64* 7 | i686* 8 | mips* 9 | arm* 10 | aarch64* 11 | powerpc* 12 | riscv32* 13 | riscv64* 14 | s390x* 15 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | Doxyfile 2 | -------------------------------------------------------------------------------- /doc/assets-attribution.md: -------------------------------------------------------------------------------- 1 | The list of assets used in the bitsend source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright). 2 | -------------------------------------------------------------------------------- /doc/bitsend_logo_doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/doc/bitsend_logo_doxygen.png -------------------------------------------------------------------------------- /doc/gitian-building.md: -------------------------------------------------------------------------------- 1 | Gitian building 2 | ================ 3 | 4 | This file was moved to [the BitSend Core documentation repository](https://github.com/bitsend-core/docs/blob/master/gitian-building.md) at [https://github.com/bitsend-core/docs](https://github.com/bitsend-core/docs). 5 | -------------------------------------------------------------------------------- /doc/man/Makefile.am: -------------------------------------------------------------------------------- 1 | dist_man1_MANS= 2 | 3 | if BUILD_BITSENDD 4 | dist_man1_MANS+=bitsendd.1 5 | endif 6 | 7 | if ENABLE_QT 8 | dist_man1_MANS+=bitsend-qt.1 9 | endif 10 | 11 | if BUILD_BITSEND_CLI 12 | dist_man1_MANS+=bitsend-cli.1 13 | endif 14 | 15 | if BUILD_BITSEND_TX 16 | dist_man1_MANS+=bitsend-tx.1 17 | endif 18 | 19 | if ENABLE_WALLET 20 | if BUILD_BITSEND_WALLET 21 | dist_man1_MANS+=bitsend-wallet.1 22 | endif 23 | endif 24 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.19.0.md: -------------------------------------------------------------------------------- 1 | 0.19.0 note 2 | ----------- 3 | 4 | Due to a last-minute issue (#17449), 0.19.0, although it was tagged, was never released. 5 | 6 | See the release notes for 0.19.0.1 instead. 7 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.12.md: -------------------------------------------------------------------------------- 1 | Version 0.3.12 is now available. 2 | 3 | Features: 4 | * json-rpc errors return a more standard error object. (thanks to Gavin Andresen) 5 | * json-rpc command line returns exit codes. 6 | * json-rpc "backupwallet" command. 7 | * Recovers and continues if an exception is caused by a message you received. Other nodes shouldn't be able to cause an exception, and it hasn't happened before, but if a way is found to cause an exception, this would keep it from being used to stop network nodes. 8 | 9 | If you have json-rpc code that checks the contents of the error string, you need to change it to expect error objects of the form {"code":,"message":}, which is the standard. See this thread: 10 | http://www.bitsend.org/smf/index.php?topic=969.0 11 | 12 | Download: 13 | http://sourceforge.net/projects/bitsend/files/BitSend/bitsend-0.3.12/ 14 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.14.md: -------------------------------------------------------------------------------- 1 | Version 0.3.14 is now available 2 | http://sourceforge.net/projects/bitsend/files/BitSend/bitsend-0.3.14/ 3 | 4 | Changes: 5 | * Key pool feature for safer wallet backup 6 | Gavin Andresen: 7 | * TEST network mode with switch -testnet 8 | * Option to use SSL for JSON-RPC connections on unix/osx 9 | * validateaddress RPC command 10 | eurekafag: 11 | * Russian translation 12 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.15.md: -------------------------------------------------------------------------------- 1 | * paytxfee switch is now per KB, so it adds the correct fee for large transactions 2 | * sending avoids using coins with less than 6 confirmations if it can 3 | * BitSendMiner processes transactions in priority order based on age of dependencies 4 | * make sure generation doesn't start before block 74000 downloaded 5 | * bugfixes by Dean Gores 6 | * testnet, keypoololdest and paytxfee added to getinfo 7 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.16.md: -------------------------------------------------------------------------------- 1 | Never released. 2 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.17.md: -------------------------------------------------------------------------------- 1 | Version 0.3.17 is now available. 2 | 3 | Changes: 4 | * new getwork, thanks m0mchil 5 | * added transaction fee setting in UI options menu 6 | * free transaction limits 7 | * sendtoaddress returns transaction id instead of "sent" 8 | * getaccountaddress 9 | 10 | The UI transaction fee setting was easy since it was still there from 0.1.5 and all I had to do was re-enable it. 11 | 12 | The accounts-based commands: move, sendfrom and getbalance will be in the next release. We still have some more changes to make first. 13 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.18.md: -------------------------------------------------------------------------------- 1 | Changes: 2 | * Fixed a wallet.dat compatibility problem if you downgraded from 0.3.17 and then upgraded again 3 | * IsStandard() check to only include known transaction types in blocks 4 | * Jgarzik's optimisation to speed up the initial block download a little 5 | 6 | The main addition in this release is the Accounts-Based JSON-RPC commands that Gavin's been working on (more details at http://www.bitsend.org/smf/index.php?topic=1886.0). 7 | * getaccountaddress 8 | * sendfrom 9 | * move 10 | * getbalance 11 | * listtransactions 12 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.19.md: -------------------------------------------------------------------------------- 1 | There's more work to do on DoS, but I'm doing a quick build of what I have so far in case it's needed, before venturing into more complex ideas. The build for this is version 0.3.19. 2 | 3 | - Added some DoS controls 4 | As Gavin and I have said clearly before, the software is not at all resistant to DoS attack. This is one improvement, but there are still more ways to attack than I can count. 5 | 6 | I'm leaving the -limitfreerelay part as a switch for now and it's there if you need it. 7 | 8 | - Removed "safe mode" alerts 9 | "safe mode" alerts was a temporary measure after the 0.3.9 overflow bug. We can say all we want that users can just run with "-disablesafemode", but it's better just not to have it for the sake of appearances. It was never intended as a long term feature. Safe mode can still be triggered by seeing a longer (greater total PoW) invalid block chain. 10 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.20.1.md: -------------------------------------------------------------------------------- 1 | Never released or release notes were lost. 2 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.20.2.md: -------------------------------------------------------------------------------- 1 | The maxsendbuffer bug (0.3.20.1 clients not being able to download the block chain from other 0.3.20.1 clients) was only going to get 2 | worse as people upgraded, so I cherry-picked the bug fix and created a minor release yesterday. 3 | 4 | The Amazon Machine Images I used to do the builds are available: 5 | 6 | ami-38a05251 BitSend-v0.3.20.2 Mingw (Windows; Administrator password 'bitsend development') 7 | ami-30a05259 BitSend_0.3.20.2 Linux32 8 | ami-8abc4ee3 BitSend_0.3.20.2 Linux64 9 | 10 | (mac build will be done soon) 11 | 12 | If you have already downloaded version 0.3.20.1, please either add this to your bitsend.conf file: 13 | 14 | maxsendbuffer=10000 15 | maxreceivebuffer=10000 16 | 17 | ... or download the new version. 18 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.3.23.md: -------------------------------------------------------------------------------- 1 | Win32, Linux, MacOSX and source releases for bitsend v0.3.23 have been uploaded to 2 | https://sourceforge.net/projects/bitsend/files/BitSend/bitsend-0.3.23/ 3 | 4 | This is another quick bugfix release, trying to deal with the influx of new bitsend users. 5 | 6 | Main items of note: 7 | 8 | * P2P connect-to-node logic changed to reduce timeout a bit. The network saw a huge influx of new users, who do not permit incoming connections. This change is a short-term hack, to more quickly hunt for useful P2P connections. Better "leaf node" logic is in the works, but this should let us limp along until then. One may use -upnp to properly forward ports, and help the network. 9 | * Transaction fee reduced to 0.0005 for new transactions 10 | * Client will relay transactions with fees as low as 0.0001 BTC 11 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.4.2.md: -------------------------------------------------------------------------------- 1 | Never released or release notes were lost. 2 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.4.5.md: -------------------------------------------------------------------------------- 1 | Never released or release notes were lost. 2 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.6.1.md: -------------------------------------------------------------------------------- 1 | Never released 2 | 3 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-0.8.3.md: -------------------------------------------------------------------------------- 1 | BitSend-Qt version 0.8.3 is now available from: 2 | http://sourceforge.net/projects/bitsend/files/BitSend/bitsend-0.8.3/ 3 | 4 | This is a maintenance release to fix a denial-of-service attack that 5 | can cause nodes to crash. 6 | 7 | Please report bugs using the issue tracker at github: 8 | https://github.com/bitsend/bitsend/issues 9 | 10 | 0.8.3 Release notes 11 | 12 | Truncate over-size messages to prevent a memory exhaustion attack. 13 | 14 | Fix a regression that causes excessive re-writing of the 'peers.dat' file. 15 | 16 | 17 | Thanks to Peter Todd for responsibly disclosing the vulnerability 18 | ( CVE-2013-4627 ) and creating a fix. 19 | -------------------------------------------------------------------------------- /libbitsendconsensus.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 BitSend consensus protocol. 8 | Version: @PACKAGE_VERSION@ 9 | Libs: -L${libdir} -lbitsendconsensus 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /share/pixmaps/bitsend.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/bitsend.ico -------------------------------------------------------------------------------- /share/pixmaps/bitsend128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/bitsend128.png -------------------------------------------------------------------------------- /share/pixmaps/bitsend16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/bitsend16.png -------------------------------------------------------------------------------- /share/pixmaps/bitsend256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/bitsend256.png -------------------------------------------------------------------------------- /share/pixmaps/bitsend32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/bitsend32.png -------------------------------------------------------------------------------- /share/pixmaps/bitsend64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/bitsend64.png -------------------------------------------------------------------------------- /share/pixmaps/nsis-header.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/share/pixmaps/nsis-header.bmp -------------------------------------------------------------------------------- /share/pixmaps/nsis-wizard.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/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 BitSend 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 | LIBTEST_FUZZ=libtest_fuzz.a 6 | 7 | EXTRA_LIBRARIES += \ 8 | $(LIBTEST_FUZZ) 9 | 10 | TEST_FUZZ_H = \ 11 | test/fuzz/fuzz.h \ 12 | test/fuzz/FuzzedDataProvider.h \ 13 | test/fuzz/util.h 14 | 15 | libtest_fuzz_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITSEND_INCLUDES) $(MINIUPNPC_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) 16 | libtest_fuzz_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) 17 | libtest_fuzz_a_SOURCES = \ 18 | test/fuzz/fuzz.cpp \ 19 | $(TEST_FUZZ_H) 20 | 21 | LIBTEST_FUZZ += $(LIBBITSEND_SERVER) 22 | LIBTEST_FUZZ += $(LIBBITSEND_COMMON) 23 | LIBTEST_FUZZ += $(LIBBITSEND_UTIL) 24 | LIBTEST_FUZZ += $(LIBBITSEND_CRYPTO_BASE) 25 | -------------------------------------------------------------------------------- /src/attributes.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The BitSend 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 BITSEND_ATTRIBUTES_H 7 | #define BITSEND_ATTRIBUTES_H 8 | 9 | #if defined(__has_cpp_attribute) 10 | # if __has_cpp_attribute(nodiscard) 11 | # define NODISCARD [[nodiscard]] 12 | # endif 13 | #endif 14 | #ifndef NODISCARD 15 | # if defined(_MSC_VER) && _MSC_VER >= 1700 16 | # define NODISCARD _Check_return_ 17 | # else 18 | # define NODISCARD __attribute__((warn_unused_result)) 19 | # endif 20 | #endif 21 | 22 | #endif // BITSEND_ATTRIBUTES_H 23 | -------------------------------------------------------------------------------- /src/bench/.gitignore: -------------------------------------------------------------------------------- 1 | bench_bitsend 2 | -------------------------------------------------------------------------------- /src/bench/data.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitSend 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 | #include 6 | 7 | namespace benchmark { 8 | namespace data { 9 | 10 | #include 11 | const std::vector block413567{block413567_raw, block413567_raw + sizeof(block413567_raw) / sizeof(block413567_raw[0])}; 12 | 13 | } // namespace data 14 | } // namespace benchmark 15 | -------------------------------------------------------------------------------- /src/bench/data.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitSend 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 BITSEND_BENCH_DATA_H 6 | #define BITSEND_BENCH_DATA_H 7 | 8 | #include 9 | #include 10 | 11 | namespace benchmark { 12 | namespace data { 13 | 14 | extern const std::vector block413567; 15 | 16 | } // namespace data 17 | } // namespace benchmark 18 | 19 | #endif // BITSEND_BENCH_DATA_H 20 | -------------------------------------------------------------------------------- /src/bench/data/block413567.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/bench/data/block413567.raw -------------------------------------------------------------------------------- /src/bench/examples.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2020 The BitSend 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 | #include 6 | 7 | // Extremely fast-running benchmark: 8 | #include 9 | 10 | volatile double sum = 0.0; // volatile, global so not optimized away 11 | 12 | static void Trig(benchmark::Bench& bench) 13 | { 14 | double d = 0.01; 15 | bench.run([&] { 16 | sum += sin(d); 17 | d += 0.000001; 18 | }); 19 | } 20 | 21 | BENCHMARK(Trig); 22 | -------------------------------------------------------------------------------- /src/bench/merkle_root.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2020 The BitSend 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 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | static void MerkleRoot(benchmark::Bench& bench) 12 | { 13 | FastRandomContext rng(true); 14 | std::vector leaves; 15 | leaves.resize(9001); 16 | for (auto& item : leaves) { 17 | item = rng.rand256(); 18 | } 19 | bench.batch(leaves.size()).unit("leaf").run([&] { 20 | bool mutation = false; 21 | uint256 hash = ComputeMerkleRoot(std::vector(leaves), &mutation); 22 | leaves[mutation] = hash; 23 | }); 24 | } 25 | 26 | BENCHMARK(MerkleRoot); 27 | -------------------------------------------------------------------------------- /src/bench/nanobench.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019-2020 The BitSend 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 | #define ANKERL_NANOBENCH_IMPLEMENT 6 | #include 7 | -------------------------------------------------------------------------------- /src/compat/cpuid.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 The BitSend 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 BITSEND_COMPAT_CPUID_H 6 | #define BITSEND_COMPAT_CPUID_H 7 | 8 | #if defined(__x86_64__) || defined(__amd64__) || defined(__i386__) 9 | #define HAVE_GETCPUID 10 | 11 | #include 12 | 13 | // We can't use cpuid.h's __get_cpuid as it does not support subleafs. 14 | void static inline GetCPUID(uint32_t leaf, uint32_t subleaf, uint32_t& a, uint32_t& b, uint32_t& c, uint32_t& d) 15 | { 16 | #ifdef __GNUC__ 17 | __cpuid_count(leaf, subleaf, a, b, c, d); 18 | #else 19 | __asm__ ("cpuid" : "=a"(a), "=b"(b), "=c"(c), "=d"(d) : "0"(leaf), "2"(subleaf)); 20 | #endif 21 | } 22 | 23 | #endif // defined(__x86_64__) || defined(__amd64__) || defined(__i386__) 24 | #endif // BITSEND_COMPAT_CPUID_H 25 | -------------------------------------------------------------------------------- /src/compat/sanity.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2014 The BitSend 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 BITSEND_COMPAT_SANITY_H 6 | #define BITSEND_COMPAT_SANITY_H 7 | 8 | bool glibc_sanity_test(); 9 | bool glibcxx_sanity_test(); 10 | 11 | #endif // BITSEND_COMPAT_SANITY_H 12 | -------------------------------------------------------------------------------- /src/compat/stdin.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The BitSend 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 BITSEND_COMPAT_STDIN_H 6 | #define BITSEND_COMPAT_STDIN_H 7 | 8 | struct NoechoInst { 9 | NoechoInst(); 10 | ~NoechoInst(); 11 | }; 12 | 13 | #define NO_STDIN_ECHO() NoechoInst _no_echo 14 | 15 | bool StdinTerminal(); 16 | bool StdinReady(); 17 | 18 | #endif // BITSEND_COMPAT_STDIN_H 19 | -------------------------------------------------------------------------------- /src/compat/strnlen.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2018 The BitSend 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 | #if defined(HAVE_CONFIG_H) 6 | #include 7 | #endif 8 | 9 | #include 10 | 11 | #if HAVE_DECL_STRNLEN == 0 12 | size_t strnlen( const char *start, size_t max_len) 13 | { 14 | const char *end = (const char *)memchr(start, '\0', max_len); 15 | 16 | return end ? (size_t)(end - start) : max_len; 17 | } 18 | #endif // HAVE_DECL_STRNLEN 19 | -------------------------------------------------------------------------------- /src/config/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/config/.empty -------------------------------------------------------------------------------- /src/consensus/tx_check.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 The BitSend 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 BITSEND_CONSENSUS_TX_CHECK_H 6 | #define BITSEND_CONSENSUS_TX_CHECK_H 7 | 8 | /** 9 | * Context-independent transaction checking code that can be called outside the 10 | * bitsend server and doesn't depend on chain or mempool state. Transaction 11 | * verification code that does call server functions or depend on server state 12 | * belongs in tx_verify.h/cpp instead. 13 | */ 14 | 15 | class CTransaction; 16 | class TxValidationState; 17 | 18 | bool CheckTransaction(const CTransaction& tx, TxValidationState& state); 19 | 20 | #endif // BITSEND_CONSENSUS_TX_CHECK_H 21 | -------------------------------------------------------------------------------- /src/crc32c/.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | Language: Cpp 3 | BasedOnStyle: Google 4 | -------------------------------------------------------------------------------- /src/crc32c/.clang_complete: -------------------------------------------------------------------------------- 1 | -Ibuild/include/ 2 | -Ibuild/third_party/glog/ 3 | -Iinclude/ 4 | -Ithird_party/benchmark/include/ 5 | -Ithird_party/googletest/googletest/include/ 6 | -Ithird_party/googletest/googlemock/include/ 7 | -Ithird_party/glog/src/ 8 | -std=c++11 9 | -------------------------------------------------------------------------------- /src/crc32c/.gitignore: -------------------------------------------------------------------------------- 1 | # Editors. 2 | *.sw* 3 | .DS_Store 4 | /.vscode 5 | 6 | # Build directory. 7 | build/ 8 | out/ 9 | -------------------------------------------------------------------------------- /src/crc32c/.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/crc32c/.gitmodules -------------------------------------------------------------------------------- /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 BitSend 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 | #include 6 | 7 | #include 8 | #include 9 | 10 | CHKDF_HMAC_SHA256_L32::CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt) 11 | { 12 | CHMAC_SHA256((const unsigned char*)salt.data(), salt.size()).Write(ikm, ikmlen).Finalize(m_prk); 13 | } 14 | 15 | void CHKDF_HMAC_SHA256_L32::Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE]) 16 | { 17 | // expand a 32byte key (single round) 18 | assert(info.size() <= 128); 19 | static const unsigned char one[1] = {1}; 20 | CHMAC_SHA256(m_prk, 32).Write((const unsigned char*)info.data(), info.size()).Write(one, 1).Finalize(hash); 21 | } 22 | -------------------------------------------------------------------------------- /src/crypto/hkdf_sha256_32.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The BitSend 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 BITSEND_CRYPTO_HKDF_SHA256_32_H 6 | #define BITSEND_CRYPTO_HKDF_SHA256_32_H 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | /** A rfc5869 HKDF implementation with HMAC_SHA256 and fixed key output length of 32 bytes (L=32) */ 14 | class CHKDF_HMAC_SHA256_L32 15 | { 16 | private: 17 | unsigned char m_prk[32]; 18 | static const size_t OUTPUT_SIZE = 32; 19 | 20 | public: 21 | CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt); 22 | void Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE]); 23 | }; 24 | 25 | #endif // BITSEND_CRYPTO_HKDF_SHA256_32_H 26 | -------------------------------------------------------------------------------- /src/crypto/poly1305.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitSend 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 BITSEND_CRYPTO_POLY1305_H 6 | #define BITSEND_CRYPTO_POLY1305_H 7 | 8 | #include 9 | #include 10 | 11 | #define POLY1305_KEYLEN 32 12 | #define POLY1305_TAGLEN 16 13 | 14 | void poly1305_auth(unsigned char out[POLY1305_TAGLEN], const unsigned char *m, size_t inlen, 15 | const unsigned char key[POLY1305_KEYLEN]); 16 | 17 | #endif // BITSEND_CRYPTO_POLY1305_H 18 | -------------------------------------------------------------------------------- /src/crypto/ripemd160.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2016 The BitSend 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 BITSEND_CRYPTO_RIPEMD160_H 6 | #define BITSEND_CRYPTO_RIPEMD160_H 7 | 8 | #include 9 | #include 10 | 11 | /** A hasher class for RIPEMD-160. */ 12 | class CRIPEMD160 13 | { 14 | private: 15 | uint32_t s[5]; 16 | unsigned char buf[64]; 17 | uint64_t bytes; 18 | 19 | public: 20 | static const size_t OUTPUT_SIZE = 20; 21 | 22 | CRIPEMD160(); 23 | CRIPEMD160& Write(const unsigned char* data, size_t len); 24 | void Finalize(unsigned char hash[OUTPUT_SIZE]); 25 | CRIPEMD160& Reset(); 26 | }; 27 | 28 | #endif // BITSEND_CRYPTO_RIPEMD160_H 29 | -------------------------------------------------------------------------------- /src/crypto/sha1.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2016 The BitSend 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 BITSEND_CRYPTO_SHA1_H 6 | #define BITSEND_CRYPTO_SHA1_H 7 | 8 | #include 9 | #include 10 | 11 | /** A hasher class for SHA1. */ 12 | class CSHA1 13 | { 14 | private: 15 | uint32_t s[5]; 16 | unsigned char buf[64]; 17 | uint64_t bytes; 18 | 19 | public: 20 | static const size_t OUTPUT_SIZE = 20; 21 | 22 | CSHA1(); 23 | CSHA1& Write(const unsigned char* data, size_t len); 24 | void Finalize(unsigned char hash[OUTPUT_SIZE]); 25 | CSHA1& Reset(); 26 | }; 27 | 28 | #endif // BITSEND_CRYPTO_SHA1_H 29 | -------------------------------------------------------------------------------- /src/crypto/sha512.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2019 The BitSend 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 BITSEND_CRYPTO_SHA512_H 6 | #define BITSEND_CRYPTO_SHA512_H 7 | 8 | #include 9 | #include 10 | 11 | /** A hasher class for SHA-512. */ 12 | class CSHA512 13 | { 14 | private: 15 | uint64_t s[8]; 16 | unsigned char buf[128]; 17 | uint64_t bytes; 18 | 19 | public: 20 | static constexpr size_t OUTPUT_SIZE = 64; 21 | 22 | CSHA512(); 23 | CSHA512& Write(const unsigned char* data, size_t len); 24 | void Finalize(unsigned char hash[OUTPUT_SIZE]); 25 | CSHA512& Reset(); 26 | uint64_t Size() const { return bytes; } 27 | }; 28 | 29 | #endif // BITSEND_CRYPTO_SHA512_H 30 | -------------------------------------------------------------------------------- /src/leveldb/.clang-format: -------------------------------------------------------------------------------- 1 | # Run manually to reformat a file: 2 | # clang-format -i --style=file 3 | # find . -iname '*.cc' -o -iname '*.h' -o -iname '*.h.in' | xargs clang-format -i --style=file 4 | BasedOnStyle: Google 5 | DerivePointerAlignment: false 6 | 7 | # Public headers are in a different location in the internal Google repository. 8 | # Order them so that when imported to the authoritative repository they will be 9 | # in correct alphabetical order. 10 | IncludeCategories: 11 | - Regex: '^(<|"(benchmarks|db|helpers)/)' 12 | Priority: 1 13 | - Regex: '^"(leveldb)/' 14 | Priority: 2 15 | - Regex: '^(<|"(issues|port|table|third_party|util)/)' 16 | Priority: 3 17 | - Regex: '.*' 18 | Priority: 4 19 | -------------------------------------------------------------------------------- /src/leveldb/.gitignore: -------------------------------------------------------------------------------- 1 | # Editors. 2 | *.sw* 3 | .vscode 4 | .DS_Store 5 | 6 | # Build directory. 7 | build/ 8 | out/ 9 | -------------------------------------------------------------------------------- /src/leveldb/AUTHORS: -------------------------------------------------------------------------------- 1 | # Names should be added to this file like so: 2 | # Name or Organization 3 | 4 | Google Inc. 5 | 6 | # Initial version authors: 7 | Jeffrey Dean 8 | Sanjay Ghemawat 9 | 10 | # Partial list of contributors: 11 | Kevin Regan 12 | Johan Bilien 13 | -------------------------------------------------------------------------------- /src/leveldb/NEWS: -------------------------------------------------------------------------------- 1 | Release 1.2 2011-05-16 2 | ---------------------- 3 | 4 | Fixes for larger databases (tested up to one billion 100-byte entries, 5 | i.e., ~100GB). 6 | 7 | (1) Place hard limit on number of level-0 files. This fixes errors 8 | of the form "too many open files". 9 | 10 | (2) Fixed memtable management. Before the fix, a heavy write burst 11 | could cause unbounded memory usage. 12 | 13 | A fix for a logging bug where the reader would incorrectly complain 14 | about corruption. 15 | 16 | Allow public access to WriteBatch contents so that users can easily 17 | wrap a DB. 18 | -------------------------------------------------------------------------------- /src/leveldb/TODO: -------------------------------------------------------------------------------- 1 | ss 2 | - Stats 3 | 4 | db 5 | - Maybe implement DB::BulkDeleteForRange(start_key, end_key) 6 | that would blow away files whose ranges are entirely contained 7 | within [start_key..end_key]? For Chrome, deletion of obsolete 8 | object stores, etc. can be done in the background anyway, so 9 | probably not that important. 10 | - There have been requests for MultiGet. 11 | 12 | After a range is completely deleted, what gets rid of the 13 | corresponding files if we do no future changes to that range. Make 14 | the conditions for triggering compactions fire in more situations? 15 | -------------------------------------------------------------------------------- /src/leveldb/cmake/leveldbConfig.cmake: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/leveldbTargets.cmake") 2 | -------------------------------------------------------------------------------- /src/leveldb/helpers/memenv/memenv.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB 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 STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 6 | #define STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 7 | 8 | #include "leveldb/export.h" 9 | 10 | namespace leveldb { 11 | 12 | class Env; 13 | 14 | // Returns a new environment that stores its data in memory and delegates 15 | // all non-file-storage tasks to base_env. The caller must delete the result 16 | // when it is no longer needed. 17 | // *base_env must remain live while the result is in use. 18 | LEVELDB_EXPORT Env* NewMemEnv(Env* base_env); 19 | 20 | } // namespace leveldb 21 | 22 | #endif // STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 23 | -------------------------------------------------------------------------------- /src/leveldb/port/README.md: -------------------------------------------------------------------------------- 1 | This directory contains interfaces and implementations that isolate the 2 | rest of the package from platform details. 3 | 4 | Code in the rest of the package includes "port.h" from this directory. 5 | "port.h" in turn includes a platform specific "port_.h" file 6 | that provides the platform specific implementation. 7 | 8 | See port_stdcxx.h for an example of what must be provided in a platform 9 | specific header file. 10 | 11 | -------------------------------------------------------------------------------- /src/leveldb/port/port.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB 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 STORAGE_LEVELDB_PORT_PORT_H_ 6 | #define STORAGE_LEVELDB_PORT_PORT_H_ 7 | 8 | #include 9 | 10 | // Include the appropriate platform specific file below. If you are 11 | // porting to a new platform, see "port_example.h" for documentation 12 | // of what the new port_.h file must provide. 13 | #if defined(LEVELDB_PLATFORM_POSIX) || defined(LEVELDB_PLATFORM_WINDOWS) 14 | #include "port/port_stdcxx.h" 15 | #elif defined(LEVELDB_PLATFORM_CHROMIUM) 16 | #include "port/port_chromium.h" 17 | #endif 18 | 19 | #endif // STORAGE_LEVELDB_PORT_PORT_H_ 20 | -------------------------------------------------------------------------------- /src/leveldb/util/env_windows_test_helper.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 (c) The LevelDB 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 STORAGE_LEVELDB_UTIL_ENV_WINDOWS_TEST_HELPER_H_ 6 | #define STORAGE_LEVELDB_UTIL_ENV_WINDOWS_TEST_HELPER_H_ 7 | 8 | namespace leveldb { 9 | 10 | class EnvWindowsTest; 11 | 12 | // A helper for the Windows Env to facilitate testing. 13 | class EnvWindowsTestHelper { 14 | private: 15 | friend class CorruptionTest; 16 | friend class EnvWindowsTest; 17 | 18 | // Set the maximum number of read-only files that will be mapped via mmap. 19 | // Must be called before creating an Env. 20 | static void SetReadOnlyMMapLimit(int limit); 21 | }; 22 | 23 | } // namespace leveldb 24 | 25 | #endif // STORAGE_LEVELDB_UTIL_ENV_WINDOWS_TEST_HELPER_H_ 26 | -------------------------------------------------------------------------------- /src/leveldb/util/filter_policy.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The LevelDB 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 "leveldb/filter_policy.h" 6 | 7 | namespace leveldb { 8 | 9 | FilterPolicy::~FilterPolicy() {} 10 | 11 | } // namespace leveldb 12 | -------------------------------------------------------------------------------- /src/leveldb/util/hash.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB 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 | // Simple hash function used for internal data structures 6 | 7 | #ifndef STORAGE_LEVELDB_UTIL_HASH_H_ 8 | #define STORAGE_LEVELDB_UTIL_HASH_H_ 9 | 10 | #include 11 | #include 12 | 13 | namespace leveldb { 14 | 15 | uint32_t Hash(const char* data, size_t n, uint32_t seed); 16 | 17 | } // namespace leveldb 18 | 19 | #endif // STORAGE_LEVELDB_UTIL_HASH_H_ 20 | -------------------------------------------------------------------------------- /src/leveldb/util/options.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The LevelDB 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 "leveldb/options.h" 6 | 7 | #include "leveldb/comparator.h" 8 | #include "leveldb/env.h" 9 | 10 | namespace leveldb { 11 | 12 | Options::Options() : comparator(BytewiseComparator()), env(Env::Default()) {} 13 | 14 | } // namespace leveldb 15 | -------------------------------------------------------------------------------- /src/net_types.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitSend 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 BITSEND_NET_TYPES_H 6 | #define BITSEND_NET_TYPES_H 7 | 8 | #include 9 | 10 | class CBanEntry; 11 | class CSubNet; 12 | 13 | using banmap_t = std::map; 14 | 15 | #endif // BITSEND_NET_TYPES_H 16 | -------------------------------------------------------------------------------- /src/node/coin.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitSend 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 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | void FindCoins(const NodeContext& node, std::map& coins) 12 | { 13 | assert(node.mempool); 14 | LOCK2(cs_main, node.mempool->cs); 15 | CCoinsViewCache& chain_view = ::ChainstateActive().CoinsTip(); 16 | CCoinsViewMemPool mempool_view(&chain_view, *node.mempool); 17 | for (auto& coin : coins) { 18 | if (!mempool_view.GetCoin(coin.first, coin.second)) { 19 | // Either the coin is not in the CCoinsViewCache or is spent. Clear it. 20 | coin.second.Clear(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/node/coin.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitSend 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 BITSEND_NODE_COIN_H 6 | #define BITSEND_NODE_COIN_H 7 | 8 | #include 9 | 10 | class COutPoint; 11 | class Coin; 12 | struct NodeContext; 13 | 14 | /** 15 | * Look up unspent output information. Returns coins in the mempool and in the 16 | * current chain UTXO set. Iterates through all the keys in the map and 17 | * populates the values. 18 | * 19 | * @param[in] node The node context to use for lookup 20 | * @param[in,out] coins map to fill 21 | */ 22 | void FindCoins(const NodeContext& node, std::map& coins); 23 | 24 | #endif // BITSEND_NODE_COIN_H 25 | -------------------------------------------------------------------------------- /src/node/context.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019-2020 The BitSend 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 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | NodeContext::NodeContext() {} 15 | NodeContext::~NodeContext() {} 16 | -------------------------------------------------------------------------------- /src/optional.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 The BitSend 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 BITSEND_OPTIONAL_H 6 | #define BITSEND_OPTIONAL_H 7 | 8 | #include 9 | 10 | #include 11 | 12 | //! Substitute for C++17 std::optional 13 | template 14 | using Optional = boost::optional; 15 | 16 | //! Substitute for C++17 std::make_optional 17 | template 18 | Optional MakeOptional(bool condition, T&& value) 19 | { 20 | return boost::make_optional(condition, std::forward(value)); 21 | } 22 | 23 | //! Substitute for C++17 std::nullopt 24 | static auto& nullopt = boost::none; 25 | 26 | #endif // BITSEND_OPTIONAL_H 27 | -------------------------------------------------------------------------------- /src/policy/settings.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2019 The BitSend 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 | bool fIsBareMultisigStd = DEFAULT_PERMIT_BAREMULTISIG; 12 | CFeeRate incrementalRelayFee = CFeeRate(DEFAULT_INCREMENTAL_RELAY_FEE); 13 | CFeeRate dustRelayFee = CFeeRate(DUST_RELAY_TX_FEE); 14 | unsigned int nBytesPerSigOp = DEFAULT_BYTES_PER_SIGOP; 15 | -------------------------------------------------------------------------------- /src/pow.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The BitSend 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 BITSEND_POW_H 7 | #define BITSEND_POW_H 8 | 9 | #include 10 | 11 | #include 12 | 13 | class CBlockHeader; 14 | class CBlockIndex; 15 | class uint256; 16 | 17 | unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params&); 18 | unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params&); 19 | 20 | /** Check whether a block hash satisfies the proof-of-work requirement specified by nBits */ 21 | bool CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params&); 22 | 23 | #endif // BITSEND_POW_H 24 | -------------------------------------------------------------------------------- /src/qt/coincontroltreewidget.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2020 The BitSend 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 BITSEND_QT_COINCONTROLTREEWIDGET_H 6 | #define BITSEND_QT_COINCONTROLTREEWIDGET_H 7 | 8 | #include 9 | #include 10 | 11 | class CoinControlTreeWidget : public QTreeWidget 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit CoinControlTreeWidget(QWidget *parent = nullptr); 17 | 18 | protected: 19 | virtual void keyPressEvent(QKeyEvent *event) override; 20 | }; 21 | 22 | #endif // BITSEND_QT_COINCONTROLTREEWIDGET_H 23 | -------------------------------------------------------------------------------- /src/qt/macdockiconhandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2018 The BitSend 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 BITSEND_QT_MACDOCKICONHANDLER_H 6 | #define BITSEND_QT_MACDOCKICONHANDLER_H 7 | 8 | #include 9 | 10 | /** macOS-specific Dock icon handler. 11 | */ 12 | class MacDockIconHandler : public QObject 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | static MacDockIconHandler *instance(); 18 | static void cleanup(); 19 | 20 | Q_SIGNALS: 21 | void dockIconClicked(); 22 | 23 | private: 24 | MacDockIconHandler(); 25 | }; 26 | 27 | #endif // BITSEND_QT_MACDOCKICONHANDLER_H 28 | -------------------------------------------------------------------------------- /src/qt/macos_appnap.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2018 The BitSend 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 BITSEND_QT_MACOS_APPNAP_H 6 | #define BITSEND_QT_MACOS_APPNAP_H 7 | 8 | #include 9 | 10 | class CAppNapInhibitor final 11 | { 12 | public: 13 | explicit CAppNapInhibitor(); 14 | ~CAppNapInhibitor(); 15 | 16 | void disableAppNap(); 17 | void enableAppNap(); 18 | 19 | private: 20 | class CAppNapImpl; 21 | std::unique_ptr impl; 22 | }; 23 | 24 | #endif // BITSEND_QT_MACOS_APPNAP_H 25 | -------------------------------------------------------------------------------- /src/qt/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018-2020 The BitSend 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 | #include 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | 12 | #include 13 | #include 14 | 15 | /** Translate string to current locale using Qt. */ 16 | extern const std::function G_TRANSLATION_FUN = [](const char* psz) { 17 | return QCoreApplication::translate("bitsend-core", psz).toStdString(); 18 | }; 19 | UrlDecodeFn* const URL_DECODE = urlDecode; 20 | 21 | int main(int argc, char* argv[]) { return GuiMain(argc, argv); } 22 | -------------------------------------------------------------------------------- /src/qt/openuridialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2019 The BitSend 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 BITSEND_QT_OPENURIDIALOG_H 6 | #define BITSEND_QT_OPENURIDIALOG_H 7 | 8 | #include 9 | 10 | namespace Ui { 11 | class OpenURIDialog; 12 | } 13 | 14 | class OpenURIDialog : public QDialog 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit OpenURIDialog(QWidget *parent); 20 | ~OpenURIDialog(); 21 | 22 | QString getURI(); 23 | 24 | protected Q_SLOTS: 25 | void accept() override; 26 | 27 | private: 28 | Ui::OpenURIDialog *ui; 29 | }; 30 | 31 | #endif // BITSEND_QT_OPENURIDIALOG_H 32 | -------------------------------------------------------------------------------- /src/qt/res/animation/makespinner.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2014-2019 The BitSend 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 | FRAMEDIR=$(dirname $0) 9 | for i in {0..35} 10 | do 11 | frame=$(printf "%03d" $i) 12 | angle=$((i * 10)) 13 | convert $FRAMEDIR/../src/spinner.png -background "rgba(0,0,0,0.0)" -distort SRT $angle $FRAMEDIR/spinner-$frame.png 14 | done 15 | -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-000.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-001.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-002.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-003.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-004.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-005.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-006.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-007.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-008.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-009.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-010.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-011.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-012.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-013.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-014.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-015.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-016.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-017.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-018.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-019.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-020.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-021.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-022.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-022.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-023.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-024.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-025.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-026.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-027.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-028.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-029.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-030.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-031.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-032.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-032.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-033.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-034.png -------------------------------------------------------------------------------- /src/qt/res/animation/spinner-035.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/animation/spinner-035.png -------------------------------------------------------------------------------- /src/qt/res/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/add.png -------------------------------------------------------------------------------- /src/qt/res/icons/address-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/address-book.png -------------------------------------------------------------------------------- /src/qt/res/icons/bitsend-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/bitsend-old.png -------------------------------------------------------------------------------- /src/qt/res/icons/bitsend.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/bitsend.icns -------------------------------------------------------------------------------- /src/qt/res/icons/bitsend.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/bitsend.ico -------------------------------------------------------------------------------- /src/qt/res/icons/bitsend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/bitsend.png -------------------------------------------------------------------------------- /src/qt/res/icons/bitsend_testnet.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/bitsend_testnet.ico -------------------------------------------------------------------------------- /src/qt/res/icons/chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/chevron.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/clock1.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/clock2.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/clock3.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/clock4.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/clock5.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/connect0.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/connect1.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/connect2.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/connect3.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/connect4.png -------------------------------------------------------------------------------- /src/qt/res/icons/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/edit.png -------------------------------------------------------------------------------- /src/qt/res/icons/editcopy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/editcopy.png -------------------------------------------------------------------------------- /src/qt/res/icons/editpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/editpaste.png -------------------------------------------------------------------------------- /src/qt/res/icons/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/export.png -------------------------------------------------------------------------------- /src/qt/res/icons/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/eye.png -------------------------------------------------------------------------------- /src/qt/res/icons/eye_minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/eye_minus.png -------------------------------------------------------------------------------- /src/qt/res/icons/eye_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/eye_plus.png -------------------------------------------------------------------------------- /src/qt/res/icons/fontbigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/fontbigger.png -------------------------------------------------------------------------------- /src/qt/res/icons/fontsmaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/fontsmaller.png -------------------------------------------------------------------------------- /src/qt/res/icons/hd_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/hd_disabled.png -------------------------------------------------------------------------------- /src/qt/res/icons/hd_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/hd_enabled.png -------------------------------------------------------------------------------- /src/qt/res/icons/history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/history.png -------------------------------------------------------------------------------- /src/qt/res/icons/lock_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/lock_closed.png -------------------------------------------------------------------------------- /src/qt/res/icons/lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/lock_open.png -------------------------------------------------------------------------------- /src/qt/res/icons/network_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/network_disabled.png -------------------------------------------------------------------------------- /src/qt/res/icons/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/overview.png -------------------------------------------------------------------------------- /src/qt/res/icons/proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/proxy.png -------------------------------------------------------------------------------- /src/qt/res/icons/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/receive.png -------------------------------------------------------------------------------- /src/qt/res/icons/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/remove.png -------------------------------------------------------------------------------- /src/qt/res/icons/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/send.png -------------------------------------------------------------------------------- /src/qt/res/icons/synced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/synced.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/transaction0.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/transaction2.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction_abandoned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/transaction_abandoned.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction_conflicted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/transaction_conflicted.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_inout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/tx_inout.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/tx_input.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_mined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/tx_mined.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/tx_output.png -------------------------------------------------------------------------------- /src/qt/res/icons/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/icons/warning.png -------------------------------------------------------------------------------- /src/qt/res/src/spinner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/qt/res/src/spinner.png -------------------------------------------------------------------------------- /src/qt/res/src/tx_in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /src/qt/test/addressbooktests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018-2019 The BitSend 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 BITSEND_QT_TEST_ADDRESSBOOKTESTS_H 6 | #define BITSEND_QT_TEST_ADDRESSBOOKTESTS_H 7 | 8 | #include 9 | #include 10 | 11 | namespace interfaces { 12 | class Node; 13 | } // namespace interfaces 14 | 15 | class AddressBookTests : public QObject 16 | { 17 | public: 18 | AddressBookTests(interfaces::Node& node) : m_node(node) {} 19 | interfaces::Node& m_node; 20 | 21 | Q_OBJECT 22 | 23 | private Q_SLOTS: 24 | void addressBookTests(); 25 | }; 26 | 27 | #endif // BITSEND_QT_TEST_ADDRESSBOOKTESTS_H 28 | -------------------------------------------------------------------------------- /src/qt/test/compattests.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2019 The BitSend 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 | #if defined(HAVE_CONFIG_H) 6 | #include 7 | #endif 8 | 9 | #include 10 | 11 | #include 12 | 13 | void CompatTests::bswapTests() 14 | { 15 | // Sibling in bitsend/src/test/bswap_tests.cpp 16 | uint16_t u1 = 0x1234; 17 | uint32_t u2 = 0x56789abc; 18 | uint64_t u3 = 0xdef0123456789abc; 19 | uint16_t e1 = 0x3412; 20 | uint32_t e2 = 0xbc9a7856; 21 | uint64_t e3 = 0xbc9a78563412f0de; 22 | QVERIFY(bswap_16(u1) == e1); 23 | QVERIFY(bswap_32(u2) == e2); 24 | QVERIFY(bswap_64(u3) == e3); 25 | } 26 | -------------------------------------------------------------------------------- /src/qt/test/compattests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2016 The BitSend 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 BITSEND_QT_TEST_COMPATTESTS_H 6 | #define BITSEND_QT_TEST_COMPATTESTS_H 7 | 8 | #include 9 | #include 10 | 11 | class CompatTests : public QObject 12 | { 13 | Q_OBJECT 14 | 15 | private Q_SLOTS: 16 | void bswapTests(); 17 | }; 18 | 19 | #endif // BITSEND_QT_TEST_COMPATTESTS_H 20 | -------------------------------------------------------------------------------- /src/qt/test/rpcnestedtests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2019 The BitSend 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 BITSEND_QT_TEST_RPCNESTEDTESTS_H 6 | #define BITSEND_QT_TEST_RPCNESTEDTESTS_H 7 | 8 | #include 9 | #include 10 | 11 | namespace interfaces { 12 | class Node; 13 | } // namespace interfaces 14 | 15 | class RPCNestedTests : public QObject 16 | { 17 | public: 18 | RPCNestedTests(interfaces::Node& node) : m_node(node) {} 19 | interfaces::Node& m_node; 20 | 21 | Q_OBJECT 22 | 23 | private Q_SLOTS: 24 | void rpcNestedTests(); 25 | }; 26 | 27 | #endif // BITSEND_QT_TEST_RPCNESTEDTESTS_H 28 | -------------------------------------------------------------------------------- /src/qt/test/uritests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2015 The BitSend 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 BITSEND_QT_TEST_URITESTS_H 6 | #define BITSEND_QT_TEST_URITESTS_H 7 | 8 | #include 9 | #include 10 | 11 | class URITests : public QObject 12 | { 13 | Q_OBJECT 14 | 15 | private Q_SLOTS: 16 | void uriTests(); 17 | }; 18 | 19 | #endif // BITSEND_QT_TEST_URITESTS_H 20 | -------------------------------------------------------------------------------- /src/qt/test/util.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018-2019 The BitSend 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 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | void ConfirmMessage(QString* text, int msec) 13 | { 14 | QTimer::singleShot(msec, [text]() { 15 | for (QWidget* widget : QApplication::topLevelWidgets()) { 16 | if (widget->inherits("QMessageBox")) { 17 | QMessageBox* messageBox = qobject_cast(widget); 18 | if (text) *text = messageBox->text(); 19 | messageBox->defaultButton()->click(); 20 | } 21 | } 22 | }); 23 | } 24 | -------------------------------------------------------------------------------- /src/qt/test/util.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018-2019 The BitSend 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 BITSEND_QT_TEST_UTIL_H 6 | #define BITSEND_QT_TEST_UTIL_H 7 | 8 | #include 9 | 10 | /** 11 | * Press "Ok" button in message box dialog. 12 | * 13 | * @param text - Optionally store dialog text. 14 | * @param msec - Number of milliseconds to pause before triggering the callback. 15 | */ 16 | void ConfirmMessage(QString* text = nullptr, int msec = 0); 17 | 18 | #endif // BITSEND_QT_TEST_UTIL_H 19 | -------------------------------------------------------------------------------- /src/qt/test/wallettests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 The BitSend 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 BITSEND_QT_TEST_WALLETTESTS_H 6 | #define BITSEND_QT_TEST_WALLETTESTS_H 7 | 8 | #include 9 | #include 10 | 11 | namespace interfaces { 12 | class Node; 13 | } // namespace interfaces 14 | 15 | class WalletTests : public QObject 16 | { 17 | public: 18 | WalletTests(interfaces::Node& node) : m_node(node) {} 19 | interfaces::Node& m_node; 20 | 21 | Q_OBJECT 22 | 23 | private Q_SLOTS: 24 | void walletTests(); 25 | }; 26 | 27 | #endif // BITSEND_QT_TEST_WALLETTESTS_H 28 | -------------------------------------------------------------------------------- /src/qt/transactiondescdialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2020 The BitSend 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 BITSEND_QT_TRANSACTIONDESCDIALOG_H 6 | #define BITSEND_QT_TRANSACTIONDESCDIALOG_H 7 | 8 | #include 9 | 10 | namespace Ui { 11 | class TransactionDescDialog; 12 | } 13 | 14 | QT_BEGIN_NAMESPACE 15 | class QModelIndex; 16 | QT_END_NAMESPACE 17 | 18 | /** Dialog showing transaction details. */ 19 | class TransactionDescDialog : public QDialog 20 | { 21 | Q_OBJECT 22 | 23 | public: 24 | explicit TransactionDescDialog(const QModelIndex &idx, QWidget *parent = nullptr); 25 | ~TransactionDescDialog(); 26 | 27 | private: 28 | Ui::TransactionDescDialog *ui; 29 | }; 30 | 31 | #endif // BITSEND_QT_TRANSACTIONDESCDIALOG_H 32 | -------------------------------------------------------------------------------- /src/randomenv.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2019 The BitSend 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 BITSEND_RANDOMENV_H 7 | #define BITSEND_RANDOMENV_H 8 | 9 | #include 10 | 11 | /** Gather non-cryptographic environment data that changes over time. */ 12 | void RandAddDynamicEnv(CSHA512& hasher); 13 | 14 | /** Gather non-cryptographic environment data that does not change over time. */ 15 | void RandAddStaticEnv(CSHA512& hasher); 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /src/rpc/mining.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 The BitSend 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 BITSEND_RPC_MINING_H 6 | #define BITSEND_RPC_MINING_H 7 | 8 | /** Default max iterations to try in RPC generatetodescriptor, generatetoaddress, and generateblock. */ 9 | static const uint64_t DEFAULT_MAX_TRIES{1000000}; 10 | 11 | #endif // BITSEND_RPC_MINING_H 12 | -------------------------------------------------------------------------------- /src/secp256k1/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | To report security issues send an email to secp256k1-security@bitsendcore.org (not for support). 6 | 7 | The following keys may be used to communicate sensitive information to developers: 8 | 9 | | Name | Fingerprint | 10 | |------|-------------| 11 | | Pieter Wuille | 133E AC17 9436 F14A 5CF1 B794 860F EB80 4E66 9320 | 12 | | Andrew Poelstra | 699A 63EF C17A D3A9 A34C FFC0 7AD0 A91C 40BD 0091 | 13 | | Tim Ruffing | 09E0 3F87 1092 E40E 106E 902B 33BC 86AB 80FF 5516 | 14 | 15 | You can import a key by running the following command with that individual’s fingerprint: `gpg --recv-keys ""` Ensure that you put quotes around fingerprints containing spaces. 16 | -------------------------------------------------------------------------------- /src/secp256k1/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | autoreconf -if --warnings=all 4 | -------------------------------------------------------------------------------- /src/secp256k1/libsecp256k1.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libsecp256k1 7 | Description: Optimized C library for EC operations on curve secp256k1 8 | URL: https://github.com/bitsend-core/secp256k1 9 | Version: @PACKAGE_VERSION@ 10 | Cflags: -I${includedir} 11 | Libs: -L${libdir} -lsecp256k1 12 | Libs.private: @SECP_LIBS@ 13 | 14 | -------------------------------------------------------------------------------- /src/secp256k1/obj/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/secp256k1/obj/.gitignore -------------------------------------------------------------------------------- /src/secp256k1/src/modules/ecdh/Makefile.am.include: -------------------------------------------------------------------------------- 1 | include_HEADERS += include/secp256k1_ecdh.h 2 | noinst_HEADERS += src/modules/ecdh/main_impl.h 3 | noinst_HEADERS += src/modules/ecdh/tests_impl.h 4 | if USE_BENCHMARK 5 | noinst_PROGRAMS += bench_ecdh 6 | bench_ecdh_SOURCES = src/bench_ecdh.c 7 | bench_ecdh_LDADD = libsecp256k1.la $(SECP_LIBS) $(COMMON_LIB) 8 | endif 9 | -------------------------------------------------------------------------------- /src/secp256k1/src/modules/extrakeys/Makefile.am.include: -------------------------------------------------------------------------------- 1 | include_HEADERS += include/secp256k1_extrakeys.h 2 | noinst_HEADERS += src/modules/extrakeys/tests_impl.h 3 | noinst_HEADERS += src/modules/extrakeys/tests_exhaustive_impl.h 4 | noinst_HEADERS += src/modules/extrakeys/main_impl.h 5 | -------------------------------------------------------------------------------- /src/secp256k1/src/modules/recovery/Makefile.am.include: -------------------------------------------------------------------------------- 1 | include_HEADERS += include/secp256k1_recovery.h 2 | noinst_HEADERS += src/modules/recovery/main_impl.h 3 | noinst_HEADERS += src/modules/recovery/tests_impl.h 4 | noinst_HEADERS += src/modules/recovery/tests_exhaustive_impl.h 5 | if USE_BENCHMARK 6 | noinst_PROGRAMS += bench_recover 7 | bench_recover_SOURCES = src/bench_recover.c 8 | bench_recover_LDADD = libsecp256k1.la $(SECP_LIBS) $(COMMON_LIB) 9 | endif 10 | -------------------------------------------------------------------------------- /src/secp256k1/src/modules/schnorrsig/Makefile.am.include: -------------------------------------------------------------------------------- 1 | include_HEADERS += include/secp256k1_schnorrsig.h 2 | noinst_HEADERS += src/modules/schnorrsig/main_impl.h 3 | noinst_HEADERS += src/modules/schnorrsig/tests_impl.h 4 | noinst_HEADERS += src/modules/schnorrsig/tests_exhaustive_impl.h 5 | if USE_BENCHMARK 6 | noinst_PROGRAMS += bench_schnorrsig 7 | bench_schnorrsig_SOURCES = src/bench_schnorrsig.c 8 | bench_schnorrsig_LDADD = libsecp256k1.la $(SECP_LIBS) $(COMMON_LIB) 9 | endif 10 | -------------------------------------------------------------------------------- /src/secp256k1/src/num_gmp.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * Copyright (c) 2013, 2014 Pieter Wuille * 3 | * Distributed under the MIT software license, see the accompanying * 4 | * file COPYING or http://www.opensource.org/licenses/mit-license.php.* 5 | **********************************************************************/ 6 | 7 | #ifndef SECP256K1_NUM_REPR_H 8 | #define SECP256K1_NUM_REPR_H 9 | 10 | #include 11 | 12 | #define NUM_LIMBS ((256+GMP_NUMB_BITS-1)/GMP_NUMB_BITS) 13 | 14 | typedef struct { 15 | mp_limb_t data[2*NUM_LIMBS]; 16 | int neg; 17 | int limbs; 18 | } secp256k1_num; 19 | 20 | #endif /* SECP256K1_NUM_REPR_H */ 21 | -------------------------------------------------------------------------------- /src/secp256k1/src/num_impl.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * Copyright (c) 2013, 2014 Pieter Wuille * 3 | * Distributed under the MIT software license, see the accompanying * 4 | * file COPYING or http://www.opensource.org/licenses/mit-license.php.* 5 | **********************************************************************/ 6 | 7 | #ifndef SECP256K1_NUM_IMPL_H 8 | #define SECP256K1_NUM_IMPL_H 9 | 10 | #if defined HAVE_CONFIG_H 11 | #include "libsecp256k1-config.h" 12 | #endif 13 | 14 | #include "num.h" 15 | 16 | #if defined(USE_NUM_GMP) 17 | #include "num_gmp_impl.h" 18 | #elif defined(USE_NUM_NONE) 19 | /* Nothing. */ 20 | #else 21 | #error "Please select num implementation" 22 | #endif 23 | 24 | #endif /* SECP256K1_NUM_IMPL_H */ 25 | -------------------------------------------------------------------------------- /src/secp256k1/src/scalar_4x64.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * Copyright (c) 2014 Pieter Wuille * 3 | * Distributed under the MIT software license, see the accompanying * 4 | * file COPYING or http://www.opensource.org/licenses/mit-license.php.* 5 | **********************************************************************/ 6 | 7 | #ifndef SECP256K1_SCALAR_REPR_H 8 | #define SECP256K1_SCALAR_REPR_H 9 | 10 | #include 11 | 12 | /** A scalar modulo the group order of the secp256k1 curve. */ 13 | typedef struct { 14 | uint64_t d[4]; 15 | } secp256k1_scalar; 16 | 17 | #define SECP256K1_SCALAR_CONST(d7, d6, d5, d4, d3, d2, d1, d0) {{((uint64_t)(d1)) << 32 | (d0), ((uint64_t)(d3)) << 32 | (d2), ((uint64_t)(d5)) << 32 | (d4), ((uint64_t)(d7)) << 32 | (d6)}} 18 | 19 | #endif /* SECP256K1_SCALAR_REPR_H */ 20 | -------------------------------------------------------------------------------- /src/secp256k1/src/scalar_8x32.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * Copyright (c) 2014 Pieter Wuille * 3 | * Distributed under the MIT software license, see the accompanying * 4 | * file COPYING or http://www.opensource.org/licenses/mit-license.php.* 5 | **********************************************************************/ 6 | 7 | #ifndef SECP256K1_SCALAR_REPR_H 8 | #define SECP256K1_SCALAR_REPR_H 9 | 10 | #include 11 | 12 | /** A scalar modulo the group order of the secp256k1 curve. */ 13 | typedef struct { 14 | uint32_t d[8]; 15 | } secp256k1_scalar; 16 | 17 | #define SECP256K1_SCALAR_CONST(d7, d6, d5, d4, d3, d2, d1, d0) {{(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)}} 18 | 19 | #endif /* SECP256K1_SCALAR_REPR_H */ 20 | -------------------------------------------------------------------------------- /src/secp256k1/src/scalar_low.h: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | * Copyright (c) 2015 Andrew Poelstra * 3 | * Distributed under the MIT software license, see the accompanying * 4 | * file COPYING or http://www.opensource.org/licenses/mit-license.php.* 5 | **********************************************************************/ 6 | 7 | #ifndef SECP256K1_SCALAR_REPR_H 8 | #define SECP256K1_SCALAR_REPR_H 9 | 10 | #include 11 | 12 | /** A scalar modulo the group order of the secp256k1 curve. */ 13 | typedef uint32_t secp256k1_scalar; 14 | 15 | #define SECP256K1_SCALAR_CONST(d7, d6, d5, d4, d3, d2, d1, d0) (d0) 16 | 17 | #endif /* SECP256K1_SCALAR_REPR_H */ 18 | -------------------------------------------------------------------------------- /src/shutdown.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The BitSend 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 | 10 | static std::atomic fRequestShutdown(false); 11 | 12 | void StartShutdown() 13 | { 14 | fRequestShutdown = true; 15 | } 16 | void AbortShutdown() 17 | { 18 | fRequestShutdown = false; 19 | } 20 | bool ShutdownRequested() 21 | { 22 | return fRequestShutdown; 23 | } 24 | -------------------------------------------------------------------------------- /src/shutdown.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The BitSend 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 BITSEND_SHUTDOWN_H 7 | #define BITSEND_SHUTDOWN_H 8 | 9 | void StartShutdown(); 10 | void AbortShutdown(); 11 | bool ShutdownRequested(); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /src/support/cleanse.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2019 The BitSend 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 BITSEND_SUPPORT_CLEANSE_H 7 | #define BITSEND_SUPPORT_CLEANSE_H 8 | 9 | #include 10 | 11 | /** Secure overwrite a buffer (possibly containing secret data) with zero-bytes. The write 12 | * operation will not be optimized out by the compiler. */ 13 | void memory_cleanse(void *ptr, size_t len); 14 | 15 | #endif // BITSEND_SUPPORT_CLEANSE_H 16 | -------------------------------------------------------------------------------- /src/test/bswap_tests.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2020 The BitSend 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 | #include 6 | #include 7 | 8 | #include 9 | 10 | BOOST_FIXTURE_TEST_SUITE(bswap_tests, BasicTestingSetup) 11 | 12 | BOOST_AUTO_TEST_CASE(bswap_tests) 13 | { 14 | // Sibling in bitsend/src/qt/test/compattests.cpp 15 | uint16_t u1 = 0x1234; 16 | uint32_t u2 = 0x56789abc; 17 | uint64_t u3 = 0xdef0123456789abc; 18 | uint16_t e1 = 0x3412; 19 | uint32_t e2 = 0xbc9a7856; 20 | uint64_t e3 = 0xbc9a78563412f0de; 21 | BOOST_CHECK(bswap_16(u1) == e1); 22 | BOOST_CHECK(bswap_32(u2) == e2); 23 | BOOST_CHECK(bswap_64(u3) == e3); 24 | } 25 | 26 | BOOST_AUTO_TEST_SUITE_END() 27 | -------------------------------------------------------------------------------- /src/test/data/README.md: -------------------------------------------------------------------------------- 1 | Description 2 | ------------ 3 | 4 | This directory contains data-driven tests for various aspects of BitSend. 5 | 6 | License 7 | -------- 8 | 9 | The data files in this directory are distributed under the MIT software 10 | license, see the accompanying file COPYING or 11 | http://www.opensource.org/licenses/mit-license.php. 12 | 13 | -------------------------------------------------------------------------------- /src/test/data/asmap.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LIMXTEC/BitSend/23102048a50646c8929e131fa11395cc7c686c5a/src/test/data/asmap.raw -------------------------------------------------------------------------------- /src/test/fuzz/crypto_poly1305.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 The BitSend 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 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | void test_one_input(const std::vector& buffer) 14 | { 15 | FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; 16 | 17 | const std::vector key = ConsumeFixedLengthByteVector(fuzzed_data_provider, POLY1305_KEYLEN); 18 | const std::vector in = ConsumeRandomLengthByteVector(fuzzed_data_provider); 19 | 20 | std::vector tag_out(POLY1305_TAGLEN); 21 | poly1305_auth(tag_out.data(), in.data(), in.size(), key.data()); 22 | } 23 | -------------------------------------------------------------------------------- /src/test/fuzz/fuzz.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2019 The BitSend 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 BITSEND_TEST_FUZZ_FUZZ_H 6 | #define BITSEND_TEST_FUZZ_FUZZ_H 7 | 8 | #include 9 | #include 10 | 11 | void initialize(); 12 | void test_one_input(const std::vector& buffer); 13 | 14 | #endif // BITSEND_TEST_FUZZ_FUZZ_H 15 | -------------------------------------------------------------------------------- /src/test/fuzz/parse_script.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2019 The BitSend 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 | #include 6 | #include