├── .appveyor.yml ├── .cirrus.yml ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .python-version ├── .style.yapf ├── .travis.yml ├── .travis ├── README.md ├── extended_lint_04_install.sh ├── extended_lint_06_script.sh ├── lint_04_install.sh ├── lint_05_before_script.sh ├── lint_06_script.sh ├── test_03_before_install.sh ├── test_04_install.sh ├── test_05_before_script.sh ├── test_06_script_a.sh └── test_06_script_b.sh ├── .tx └── config ├── CONTRIBUTING.md ├── COPYING ├── INSTALL.md ├── Makefile.am ├── README.md ├── SECURITY.md ├── autogen.sh ├── build-aux └── m4 │ ├── ax_boost_base.m4 │ ├── ax_boost_chrono.m4 │ ├── ax_boost_filesystem.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 │ ├── bitcoin_find_bdb48.m4 │ ├── bitcoin_qt.m4 │ ├── bitcoin_subdir_to_include.m4 │ └── l_atomic.m4 ├── build_msvc ├── .gitignore ├── README.md ├── bitgreen.sln ├── bitgreen_config.h ├── common.init.vcxproj ├── common.vcxproj ├── libbitgreen_cli │ └── libbitgreen_cli.vcxproj.in ├── libbitgreen_common │ └── libbitgreen_common.vcxproj.in ├── libbitgreen_crypto │ └── libbitgreen_crypto.vcxproj.in ├── libbitgreen_server │ └── libbitgreen_server.vcxproj.in ├── libbitgreen_util │ └── libbitgreen_util.vcxproj.in ├── libbitgreen_wallet │ └── libbitgreen_wallet.vcxproj.in ├── libbitgreen_wallet_tool │ └── libbitgreen_wallet_tool.vcxproj.in ├── libbitgreen_zmq │ └── libbitgreen_zmq.vcxproj.in ├── libleveldb │ └── libleveldb.vcxproj ├── libsecp256k1 │ └── libsecp256k1.vcxproj ├── libsecp256k1_config.h ├── libunivalue │ └── libunivalue.vcxproj ├── msbuild │ └── tasks │ │ ├── hexdump.targets │ │ └── replaceinfile.targets ├── msvc-autogen.py └── testconsensus │ ├── testconsensus.cpp │ └── testconsensus.vcxproj ├── configure.ac ├── contrib ├── README.md ├── bitgreen-cli.bash-completion ├── bitgreen-qt.pro ├── bitgreen-tx.bash-completion ├── bitgreend.bash-completion ├── debian │ └── copyright ├── devtools │ ├── README.md │ ├── circular-dependencies.py │ ├── clang-format-diff.py │ ├── copyright_header.py │ ├── gen-manpages.sh │ ├── github-merge.py │ ├── optimize-pngs.py │ ├── security-check.py │ ├── split-debug.sh.in │ ├── symbol-check.py │ ├── test-security-check.py │ ├── test_deterministic_coverage.sh │ └── update-translations.py ├── filter-lcov.py ├── gitian-build.py ├── gitian-descriptors │ ├── 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 │ ├── bitgreend.conf │ ├── bitgreend.init │ ├── bitgreend.openrc │ ├── bitgreend.openrcconf │ └── bitgreend.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 │ ├── fancy.plist │ └── macdeployqtplus ├── qos │ ├── README.md │ └── tc.sh ├── seeds │ ├── README.md │ ├── generate-seeds.py │ ├── makeseeds.py │ ├── nodes_main.txt │ └── nodes_test.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 │ ├── darwin.mk │ ├── default.mk │ ├── linux.mk │ └── mingw32.mk ├── packages.md ├── packages │ ├── bdb.mk │ ├── boost.mk │ ├── chia_bls.mk │ ├── expat.mk │ ├── fontconfig.mk │ ├── freetype.mk │ ├── gmp.mk │ ├── libXau.mk │ ├── libevent.mk │ ├── libxcb.mk │ ├── miniupnpc.mk │ ├── native_biplist.mk │ ├── native_cctools.mk │ ├── native_cdrkit.mk │ ├── native_ds_store.mk │ ├── native_libdmg-hfsplus.mk │ ├── native_mac_alias.mk │ ├── native_protobuf.mk │ ├── openssl.mk │ ├── packages.mk │ ├── protobuf.mk │ ├── qrencode.mk │ ├── qt.mk │ ├── rapidcheck.mk │ ├── xcb_proto.mk │ ├── xproto.mk │ ├── zeromq.mk │ └── zlib.mk └── patches │ ├── native_cdrkit │ └── cdrkit-deterministic.patch │ ├── qt │ ├── fix_configure_mac.patch │ ├── fix_no_printer.patch │ ├── fix_qt_pkgconfig.patch │ ├── fix_rcc_determinism.patch │ ├── fix_riscv64_arch.patch │ ├── mac-qmake.conf │ ├── no-xlib.patch │ └── xkb-default.patch │ └── zeromq │ ├── 0001-fix-build-with-older-mingw64.patch │ └── 0002-disable-pthread_set_name_np.patch ├── doc ├── .gitignore ├── Doxyfile.in ├── JSON-RPC-interface.md ├── README.md ├── README_windows.txt ├── REST-interface.md ├── assets-attribution.md ├── benchmarking.md ├── bips.md ├── bitgreen-conf.md ├── bitgreen_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 │ ├── bitgreen-cli.1 │ ├── bitgreen-qt.1 │ ├── bitgreen-tx.1 │ ├── bitgreen-wallet.1 │ └── bitgreend.1 ├── productivity.md ├── psbt.md ├── reduce-memory.md ├── reduce-traffic.md ├── release-notes-0.18.1-16257.md ├── release-notes-13756.md ├── release-notes-14054.md ├── release-notes-14802.md ├── release-notes-14954.md ├── release-notes-15006.md ├── release-notes-15427.md ├── release-notes-15566.md ├── release-notes-15620.md ├── release-notes-15637.md ├── release-notes-15730.md ├── release-notes-15849.md ├── release-notes-15993.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.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-notes-1.5.0.2.md │ ├── release-notes-1.5.0.3.md │ └── release-notes-16152.md ├── release-process.md ├── shared-libraries.md ├── tor.md ├── translation_process.md ├── translation_strings_policy.md └── zmq.md ├── libbitgreenconsensus.pc.in ├── share ├── examples │ └── bitgreen.conf ├── genbuild.sh ├── pixmaps │ ├── bitcoin.ico │ ├── bitcoin128.png │ ├── bitcoin128.xpm │ ├── bitcoin16.png │ ├── bitcoin16.xpm │ ├── bitcoin256.png │ ├── bitcoin256.xpm │ ├── bitcoin32.png │ ├── bitcoin32.xpm │ ├── bitcoin64.png │ ├── bitcoin64.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.leveldb.include ├── Makefile.qt.include ├── Makefile.qttest.include ├── Makefile.test.include ├── addrdb.cpp ├── addrdb.h ├── addressindex.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 │ ├── base58.cpp │ ├── bech32.cpp │ ├── bench.cpp │ ├── bench.h │ ├── bench_bitgreen.cpp │ ├── block_assemble.cpp │ ├── bls.cpp │ ├── bls_dkg.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 │ ├── lockedpool.cpp │ ├── mempool_eviction.cpp │ ├── merkle_root.cpp │ ├── poly1305.cpp │ ├── prevector.cpp │ ├── rollingbloom.cpp │ ├── rpc_blockchain.cpp │ ├── rpc_mempool.cpp │ ├── util_time.cpp │ ├── verify_script.cpp │ └── wallet_balance.cpp ├── bitgreen-cli-res.rc ├── bitgreen-cli.cpp ├── bitgreen-tx-res.rc ├── bitgreen-tx.cpp ├── bitgreen-wallet-res.rc ├── bitgreen-wallet.cpp ├── bitgreend-res.rc ├── bitgreend.cpp ├── blockencodings.cpp ├── blockencodings.h ├── blockfilter.cpp ├── blockfilter.h ├── bloom.cpp ├── bloom.h ├── bls │ ├── bls.cpp │ ├── bls.h │ ├── bls_batchverifier.h │ ├── bls_ies.cpp │ ├── bls_ies.h │ ├── bls_worker.cpp │ └── bls_worker.h ├── cachemap.h ├── cachemultimap.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 │ ├── endian.h │ ├── glibc_compat.cpp │ ├── glibc_sanity.cpp │ ├── glibcxx_sanity.cpp │ ├── sanity.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 ├── crypto │ ├── aes.cpp │ ├── aes.h │ ├── chacha20.cpp │ ├── chacha20.h │ ├── chacha_poly_aead.cpp │ ├── chacha_poly_aead.h │ ├── common.h │ ├── ctaes │ │ ├── COPYING │ │ ├── README.md │ │ ├── bench.c │ │ ├── ctaes.c │ │ ├── ctaes.h │ │ └── test.c │ ├── hkdf_sha256_32.cpp │ ├── hkdf_sha256_32.h │ ├── hmac_sha256.cpp │ ├── hmac_sha256.h │ ├── hmac_sha512.cpp │ ├── hmac_sha512.h │ ├── 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 │ ├── sha512.cpp │ ├── sha512.h │ ├── siphash.cpp │ └── siphash.h ├── ctpl.h ├── cuckoocache.h ├── cxxtimer.hpp ├── dbwrapper.cpp ├── dbwrapper.h ├── dummywallet.cpp ├── flat-database.h ├── flatfile.cpp ├── flatfile.h ├── fs.cpp ├── fs.h ├── governance │ ├── governance-classes.cpp │ ├── governance-classes.h │ ├── governance-exceptions.h │ ├── governance-object.cpp │ ├── governance-object.h │ ├── governance-validators.cpp │ ├── governance-validators.h │ ├── governance-vote.cpp │ ├── governance-vote.h │ ├── governance-votedb.cpp │ ├── governance-votedb.h │ ├── governance.cpp │ └── governance.h ├── hash.cpp ├── hash.h ├── httprpc.cpp ├── httprpc.h ├── httpserver.cpp ├── httpserver.h ├── immer │ ├── algorithm.hpp │ ├── array.hpp │ ├── array_transient.hpp │ ├── atom.hpp │ ├── box.hpp │ ├── config.hpp │ ├── detail │ │ ├── arrays │ │ │ ├── no_capacity.hpp │ │ │ ├── node.hpp │ │ │ └── with_capacity.hpp │ │ ├── combine_standard_layout.hpp │ │ ├── hamts │ │ │ ├── bits.hpp │ │ │ ├── champ.hpp │ │ │ ├── champ_iterator.hpp │ │ │ └── node.hpp │ │ ├── iterator_facade.hpp │ │ ├── rbts │ │ │ ├── bits.hpp │ │ │ ├── node.hpp │ │ │ ├── operations.hpp │ │ │ ├── position.hpp │ │ │ ├── rbtree.hpp │ │ │ ├── rbtree_iterator.hpp │ │ │ ├── rrbtree.hpp │ │ │ ├── rrbtree_iterator.hpp │ │ │ └── visitor.hpp │ │ ├── ref_count_base.hpp │ │ ├── type_traits.hpp │ │ └── util.hpp │ ├── experimental │ │ ├── detail │ │ │ └── dvektor_impl.hpp │ │ └── dvektor.hpp │ ├── flex_vector.hpp │ ├── flex_vector_transient.hpp │ ├── heap │ │ ├── cpp_heap.hpp │ │ ├── debug_size_heap.hpp │ │ ├── free_list_heap.hpp │ │ ├── free_list_node.hpp │ │ ├── gc_heap.hpp │ │ ├── heap_policy.hpp │ │ ├── identity_heap.hpp │ │ ├── malloc_heap.hpp │ │ ├── split_heap.hpp │ │ ├── tags.hpp │ │ ├── thread_local_free_list_heap.hpp │ │ ├── unsafe_free_list_heap.hpp │ │ └── with_data.hpp │ ├── map.hpp │ ├── map_transient.hpp │ ├── memory_policy.hpp │ ├── refcount │ │ ├── enable_intrusive_ptr.hpp │ │ ├── no_refcount_policy.hpp │ │ ├── refcount_policy.hpp │ │ └── unsafe_refcount_policy.hpp │ ├── set.hpp │ ├── set_transient.hpp │ ├── transience │ │ ├── gc_transience_policy.hpp │ │ └── no_transience_policy.hpp │ ├── vector.hpp │ └── vector_transient.hpp ├── index │ ├── base.cpp │ ├── base.h │ ├── blockfilterindex.cpp │ ├── blockfilterindex.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 │ ├── .gitignore │ ├── .travis.yml │ ├── AUTHORS │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── Makefile │ ├── NEWS │ ├── README.md │ ├── TODO │ ├── WINDOWS.md │ ├── build_detect_platform │ ├── db │ │ ├── autocompact_test.cc │ │ ├── builder.cc │ │ ├── builder.h │ │ ├── c.cc │ │ ├── c_test.c │ │ ├── corruption_test.cc │ │ ├── db_bench.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 │ │ ├── bench │ │ │ ├── db_bench_sqlite3.cc │ │ │ └── db_bench_tree_db.cc │ │ ├── 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 │ │ │ ├── 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 │ ├── port │ │ ├── README │ │ ├── atomic_pointer.h │ │ ├── port.h │ │ ├── port_example.h │ │ ├── port_posix.cc │ │ ├── port_posix.h │ │ ├── port_posix_sse.cc │ │ ├── port_win.cc │ │ ├── port_win.h │ │ ├── thread_annotations.h │ │ └── win │ │ │ └── stdint.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_win.cc │ │ ├── filter_policy.cc │ │ ├── hash.cc │ │ ├── hash.h │ │ ├── hash_test.cc │ │ ├── histogram.cc │ │ ├── histogram.h │ │ ├── logging.cc │ │ ├── logging.h │ │ ├── mutexlock.h │ │ ├── options.cc │ │ ├── posix_logger.h │ │ ├── random.h │ │ ├── status.cc │ │ ├── testharness.cc │ │ ├── testharness.h │ │ ├── testutil.cc │ │ └── testutil.h ├── limitedmap.h ├── llmq │ ├── quorums.cpp │ ├── quorums.h │ ├── quorums_blockprocessor.cpp │ ├── quorums_blockprocessor.h │ ├── quorums_chainlocks.cpp │ ├── quorums_chainlocks.h │ ├── quorums_commitment.cpp │ ├── quorums_commitment.h │ ├── quorums_debug.cpp │ ├── quorums_debug.h │ ├── quorums_dkgsession.cpp │ ├── quorums_dkgsession.h │ ├── quorums_dkgsessionhandler.cpp │ ├── quorums_dkgsessionhandler.h │ ├── quorums_dkgsessionmgr.cpp │ ├── quorums_dkgsessionmgr.h │ ├── quorums_init.cpp │ ├── quorums_init.h │ ├── quorums_instantsend.cpp │ ├── quorums_instantsend.h │ ├── quorums_signing.cpp │ ├── quorums_signing.h │ ├── quorums_signing_shares.cpp │ ├── quorums_signing_shares.h │ ├── quorums_utils.cpp │ └── quorums_utils.h ├── logging.cpp ├── logging.h ├── masternodes │ ├── activemasternode.cpp │ ├── activemasternode.h │ ├── meta.cpp │ ├── meta.h │ ├── notificationinterface.cpp │ ├── notificationinterface.h │ ├── payments.cpp │ ├── payments.h │ ├── sync.cpp │ ├── sync.h │ ├── utils.cpp │ └── utils.h ├── memusage.h ├── merkleblock.cpp ├── merkleblock.h ├── messagesigner.cpp ├── messagesigner.h ├── miner.cpp ├── miner.h ├── net.cpp ├── net.h ├── net_processing.cpp ├── net_processing.h ├── netaddress.cpp ├── netaddress.h ├── netbase.cpp ├── netbase.h ├── netfulfilledman.cpp ├── netfulfilledman.h ├── netmessagemaker.h ├── node │ ├── README.md │ ├── coin.cpp │ ├── coin.h │ ├── psbt.cpp │ ├── psbt.h │ ├── transaction.cpp │ └── transaction.h ├── noui.cpp ├── noui.h ├── obj-test │ └── .gitignore ├── obj │ └── .gitignore ├── 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 ├── pos │ ├── kernel.cpp │ ├── kernel.h │ ├── sign.cpp │ └── sign.h ├── pow.cpp ├── pow.h ├── prevector.h ├── primitives │ ├── block.cpp │ ├── block.h │ ├── transaction.cpp │ └── transaction.h ├── protocol.cpp ├── protocol.h ├── psbt.cpp ├── psbt.h ├── pubkey.cpp ├── pubkey.h ├── qt │ ├── Makefile │ ├── README.md │ ├── addressbookpage.cpp │ ├── addressbookpage.h │ ├── addresstablemodel.cpp │ ├── addresstablemodel.h │ ├── askpassphrasedialog.cpp │ ├── askpassphrasedialog.h │ ├── bantablemodel.cpp │ ├── bantablemodel.h │ ├── bitcoin.cpp │ ├── bitcoin.h │ ├── bitcoinaddressvalidator.cpp │ ├── bitcoinaddressvalidator.h │ ├── bitcoinamountfield.cpp │ ├── bitcoinamountfield.h │ ├── bitcoingui.cpp │ ├── bitcoingui.h │ ├── bitcoinunits.cpp │ ├── bitcoinunits.h │ ├── bitgreen.qrc │ ├── bitgreen_locale.qrc │ ├── bitgreenaddressvalidator.cpp │ ├── bitgreenstrings.cpp │ ├── clientmodel.cpp │ ├── clientmodel.h │ ├── coincontroldialog.cpp │ ├── coincontroldialog.h │ ├── coincontroltreewidget.cpp │ ├── coincontroltreewidget.h │ ├── csvmodelwriter.cpp │ ├── csvmodelwriter.h │ ├── editaddressdialog.cpp │ ├── editaddressdialog.h │ ├── forms │ │ ├── addressbookpage.ui │ │ ├── askpassphrasedialog.ui │ │ ├── coincontroldialog.ui │ │ ├── debugwindow.ui │ │ ├── editaddressdialog.ui │ │ ├── governancedialog.ui │ │ ├── governancelist.ui │ │ ├── helpmessagedialog.ui │ │ ├── intro.ui │ │ ├── masternodelist.ui │ │ ├── modaloverlay.ui │ │ ├── openuridialog.ui │ │ ├── optionsdialog.ui │ │ ├── overviewpage.ui │ │ ├── receivecoinsdialog.ui │ │ ├── receiverequestdialog.ui │ │ ├── sendcoinsdialog.ui │ │ ├── sendcoinsentry.ui │ │ ├── signverifymessagedialog.ui │ │ └── transactiondescdialog.ui │ ├── governancedialog.cpp │ ├── governancedialog.h │ ├── governancelist.cpp │ ├── governancelist.h │ ├── guiconstants.h │ ├── guiutil.cpp │ ├── guiutil.h │ ├── intro.cpp │ ├── intro.h │ ├── locale │ │ ├── bitcoin_af.ts │ │ ├── bitcoin_af_ZA.ts │ │ ├── bitcoin_am.ts │ │ ├── bitcoin_ar.ts │ │ ├── bitcoin_be_BY.ts │ │ ├── bitcoin_bg.ts │ │ ├── bitcoin_bg_BG.ts │ │ ├── bitcoin_ca.ts │ │ ├── bitcoin_ca@valencia.ts │ │ ├── bitcoin_ca_ES.ts │ │ ├── bitcoin_cs.ts │ │ ├── bitcoin_cy.ts │ │ ├── bitcoin_da.ts │ │ ├── bitcoin_de.ts │ │ ├── bitcoin_el.ts │ │ ├── bitcoin_el_GR.ts │ │ ├── bitcoin_en.ts │ │ ├── bitcoin_en_GB.ts │ │ ├── bitcoin_eo.ts │ │ ├── bitcoin_es.ts │ │ ├── bitcoin_es_AR.ts │ │ ├── bitcoin_es_CL.ts │ │ ├── bitcoin_es_CO.ts │ │ ├── bitcoin_es_DO.ts │ │ ├── bitcoin_es_ES.ts │ │ ├── bitcoin_es_MX.ts │ │ ├── bitcoin_es_UY.ts │ │ ├── bitcoin_es_VE.ts │ │ ├── bitcoin_et.ts │ │ ├── bitcoin_et_EE.ts │ │ ├── bitcoin_eu_ES.ts │ │ ├── bitcoin_fa.ts │ │ ├── bitcoin_fa_IR.ts │ │ ├── bitcoin_fi.ts │ │ ├── bitcoin_fr.ts │ │ ├── bitcoin_fr_CA.ts │ │ ├── bitcoin_fr_FR.ts │ │ ├── bitcoin_gl.ts │ │ ├── bitcoin_he.ts │ │ ├── bitcoin_hi_IN.ts │ │ ├── bitcoin_hr.ts │ │ ├── bitcoin_hu.ts │ │ ├── bitcoin_id.ts │ │ ├── bitcoin_id_ID.ts │ │ ├── bitcoin_is.ts │ │ ├── bitcoin_it.ts │ │ ├── bitcoin_it_IT.ts │ │ ├── bitcoin_ja.ts │ │ ├── bitcoin_ka.ts │ │ ├── bitcoin_kk_KZ.ts │ │ ├── bitcoin_ko.ts │ │ ├── bitcoin_ko_KR.ts │ │ ├── bitcoin_ku_IQ.ts │ │ ├── bitcoin_ky.ts │ │ ├── bitcoin_la.ts │ │ ├── bitcoin_lt.ts │ │ ├── bitcoin_lv_LV.ts │ │ ├── bitcoin_mk_MK.ts │ │ ├── bitcoin_ml.ts │ │ ├── bitcoin_mn.ts │ │ ├── bitcoin_ms_MY.ts │ │ ├── bitcoin_nb.ts │ │ ├── bitcoin_ne.ts │ │ ├── bitcoin_nl.ts │ │ ├── bitcoin_pam.ts │ │ ├── bitcoin_pl.ts │ │ ├── bitcoin_pt_BR.ts │ │ ├── bitcoin_pt_PT.ts │ │ ├── bitcoin_ro.ts │ │ ├── bitcoin_ro_RO.ts │ │ ├── bitcoin_ru.ts │ │ ├── bitcoin_ru_RU.ts │ │ ├── bitcoin_sk.ts │ │ ├── bitcoin_sl_SI.ts │ │ ├── bitcoin_sn.ts │ │ ├── bitcoin_sq.ts │ │ ├── bitcoin_sr.ts │ │ ├── bitcoin_sr@latin.ts │ │ ├── bitcoin_sv.ts │ │ ├── bitcoin_szl.ts │ │ ├── bitcoin_ta.ts │ │ ├── bitcoin_th_TH.ts │ │ ├── bitcoin_tr.ts │ │ ├── bitcoin_tr_TR.ts │ │ ├── bitcoin_uk.ts │ │ ├── bitcoin_ur_PK.ts │ │ ├── bitcoin_uz@Cyrl.ts │ │ ├── bitcoin_vi.ts │ │ ├── bitcoin_vi_VN.ts │ │ ├── bitcoin_zh.ts │ │ ├── bitcoin_zh_CN.ts │ │ ├── bitcoin_zh_HK.ts │ │ └── bitcoin_zh_TW.ts │ ├── macdockiconhandler.h │ ├── macdockiconhandler.mm │ ├── macnotificationhandler.h │ ├── macnotificationhandler.mm │ ├── macos_appnap.h │ ├── macos_appnap.mm │ ├── main.cpp │ ├── masternodelist.cpp │ ├── masternodelist.h │ ├── 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 │ ├── paymentrequest.proto │ ├── paymentrequestplus.cpp │ ├── paymentrequestplus.h │ ├── paymentserver.cpp │ ├── paymentserver.h │ ├── peertablemodel.cpp │ ├── peertablemodel.h │ ├── platformstyle.cpp │ ├── platformstyle.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 │ │ ├── bitgreen-qt-res.rc │ │ ├── css │ │ │ └── style.css │ │ ├── icons │ │ │ ├── about.png │ │ │ ├── about_qt.png │ │ │ ├── add.png │ │ │ ├── address-book.png │ │ │ ├── bitgreen.icns │ │ │ ├── bitgreen.ico │ │ │ ├── bitgreen.png │ │ │ ├── bitgreen_testnet.ico │ │ │ ├── chevron.png │ │ │ ├── clock1.png │ │ │ ├── clock2.png │ │ │ ├── clock3.png │ │ │ ├── clock4.png │ │ │ ├── clock5.png │ │ │ ├── configure.png │ │ │ ├── connect0.png │ │ │ ├── connect1.png │ │ │ ├── connect2.png │ │ │ ├── connect3.png │ │ │ ├── connect4.png │ │ │ ├── debugwindow.png │ │ │ ├── edit.png │ │ │ ├── editcopy.png │ │ │ ├── editpaste.png │ │ │ ├── export.png │ │ │ ├── eye.png │ │ │ ├── eye_minus.png │ │ │ ├── eye_plus.png │ │ │ ├── filesave.png │ │ │ ├── fontbigger.png │ │ │ ├── fontsmaller.png │ │ │ ├── governance.png │ │ │ ├── hd_disabled.png │ │ │ ├── hd_enabled.png │ │ │ ├── history.png │ │ │ ├── history_active.png │ │ │ ├── info.png │ │ │ ├── key.png │ │ │ ├── lock_closed.png │ │ │ ├── lock_open.png │ │ │ ├── masternodes.png │ │ │ ├── masternodes_active.png │ │ │ ├── network_disabled.png │ │ │ ├── open.png │ │ │ ├── overview.png │ │ │ ├── overview_active.png │ │ │ ├── proxy.png │ │ │ ├── quit.png │ │ │ ├── receive.png │ │ │ ├── receive_active.png │ │ │ ├── remove.png │ │ │ ├── send.png │ │ │ ├── send_active.png │ │ │ ├── staking_active.png │ │ │ ├── staking_inactive.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 │ │ │ ├── verify.png │ │ │ └── warning.png │ │ ├── images │ │ │ ├── about.png │ │ │ ├── downArrow_small.png │ │ │ ├── downArrow_small_dark.png │ │ │ ├── leftArrow_small_dark.png │ │ │ ├── rightArrow_small_dark.png │ │ │ ├── upArrow_small.png │ │ │ ├── upArrow_small_dark.png │ │ │ └── walletFrame.png │ │ ├── movies │ │ │ ├── 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 │ │ └── src │ │ │ ├── bitgreen.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 │ │ │ └── verify.svg │ ├── rpcconsole.cpp │ ├── rpcconsole.h │ ├── sendcoinsdialog.cpp │ ├── sendcoinsdialog.h │ ├── sendcoinsentry.cpp │ ├── sendcoinsentry.h │ ├── signverifymessagedialog.cpp │ ├── signverifymessagedialog.h │ ├── splashscreen.cpp │ ├── splashscreen.h │ ├── test │ │ ├── Makefile │ │ ├── addressbooktests.cpp │ │ ├── addressbooktests.h │ │ ├── apptests.cpp │ │ ├── apptests.h │ │ ├── compattests.cpp │ │ ├── compattests.h │ │ ├── paymentrequestdata.h │ │ ├── paymentservertests.cpp │ │ ├── paymentservertests.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 │ ├── 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 ├── rest.cpp ├── reverse_iterator.h ├── reverselock.h ├── rpc │ ├── blockchain.cpp │ ├── blockchain.h │ ├── client.cpp │ ├── client.h │ ├── governance.cpp │ ├── masternode.cpp │ ├── mining.cpp │ ├── misc.cpp │ ├── net.cpp │ ├── protocol.h │ ├── quorum.cpp │ ├── rawtransaction.cpp │ ├── rawtransaction_util.cpp │ ├── rawtransaction_util.h │ ├── register.h │ ├── request.cpp │ ├── request.h │ ├── server.cpp │ ├── server.h │ ├── special.cpp │ ├── util.cpp │ └── util.h ├── saltedhasher.cpp ├── saltedhasher.h ├── scheduler.cpp ├── scheduler.h ├── script │ ├── bitgreenconsensus.cpp │ ├── bitgreenconsensus.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 │ ├── TODO │ ├── autogen.sh │ ├── build-aux │ │ └── m4 │ │ │ ├── ax_jni_include_dir.m4 │ │ │ ├── ax_prog_cc_for_build.m4 │ │ │ └── bitcoin_secp.m4 │ ├── configure.ac │ ├── contrib │ │ ├── lax_der_parsing.c │ │ ├── lax_der_parsing.h │ │ ├── lax_der_privatekey_parsing.c │ │ └── lax_der_privatekey_parsing.h │ ├── include │ │ ├── secp256k1.h │ │ ├── secp256k1_ecdh.h │ │ └── secp256k1_recovery.h │ ├── libsecp256k1.pc.in │ ├── obj │ │ └── .gitignore │ ├── sage │ │ ├── group_prover.sage │ │ ├── secp256k1.sage │ │ └── weierstrass_prover.sage │ └── src │ │ ├── asm │ │ └── field_10x26_arm.s │ │ ├── basic-config.h │ │ ├── bench.h │ │ ├── bench_ecdh.c │ │ ├── bench_ecmult.c │ │ ├── bench_internal.c │ │ ├── bench_recover.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 │ │ ├── java │ │ ├── org │ │ │ └── bitcoin │ │ │ │ ├── NativeSecp256k1.java │ │ │ │ ├── NativeSecp256k1Test.java │ │ │ │ ├── NativeSecp256k1Util.java │ │ │ │ └── Secp256k1Context.java │ │ ├── org_bitcoin_NativeSecp256k1.c │ │ ├── org_bitcoin_NativeSecp256k1.h │ │ ├── org_bitcoin_Secp256k1Context.c │ │ └── org_bitcoin_Secp256k1Context.h │ │ ├── modules │ │ ├── ecdh │ │ │ ├── Makefile.am.include │ │ │ ├── main_impl.h │ │ │ └── tests_impl.h │ │ └── recovery │ │ │ ├── Makefile.am.include │ │ │ ├── main_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 │ │ ├── testrand.h │ │ ├── testrand_impl.h │ │ ├── tests.c │ │ ├── tests_exhaustive.c │ │ └── util.h ├── serialize.h ├── shutdown.cpp ├── shutdown.h ├── span.h ├── special │ ├── cbtx.cpp │ ├── cbtx.h │ ├── deterministicmns.cpp │ ├── deterministicmns.h │ ├── mnauth.cpp │ ├── mnauth.h │ ├── providertx.cpp │ ├── providertx.h │ ├── simplifiedmns.cpp │ ├── simplifiedmns.h │ ├── specialdb.cpp │ ├── specialdb.h │ ├── specialtx.cpp │ ├── specialtx.h │ ├── util.cpp │ └── util.h ├── spentindex.h ├── spork.cpp ├── spork.h ├── streams.h ├── support │ ├── allocators │ │ ├── mt_pooled_secure.h │ │ ├── pooled_secure.h │ │ ├── secure.h │ │ └── zeroafterfree.h │ ├── cleanse.cpp │ ├── cleanse.h │ ├── events.h │ ├── lockedpool.cpp │ └── lockedpool.h ├── sync.cpp ├── sync.h ├── test │ ├── Makefile │ ├── README.md │ ├── addrman_tests.cpp │ ├── allocator_tests.cpp │ ├── amount_tests.cpp │ ├── arith_uint256_tests.cpp │ ├── base32_tests.cpp │ ├── base58_tests.cpp │ ├── base64_tests.cpp │ ├── bech32_tests.cpp │ ├── bip32_tests.cpp │ ├── blockchain_tests.cpp │ ├── blockencodings_tests.cpp │ ├── blockfilter_index_tests.cpp │ ├── blockfilter_tests.cpp │ ├── bloom_tests.cpp │ ├── bls_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 │ │ ├── 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 │ │ ├── deserialize.cpp │ │ ├── fuzz.cpp │ │ ├── fuzz.h │ │ └── script_flags.cpp │ ├── gen │ │ ├── crypto_gen.cpp │ │ └── crypto_gen.h │ ├── getarg_tests.cpp │ ├── hash_tests.cpp │ ├── key_io_tests.cpp │ ├── key_properties.cpp │ ├── key_tests.cpp │ ├── limitedmap_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 │ ├── nsubsidy_tests.c │ ├── pmt_tests.cpp │ ├── policyestimator_tests.cpp │ ├── pow_tests.cpp │ ├── prevector_tests.cpp │ ├── raii_event_tests.cpp │ ├── random_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 │ ├── setup_common.cpp │ ├── setup_common.h │ ├── sighash_tests.cpp │ ├── sigopcount_tests.cpp │ ├── skiplist_tests.cpp │ ├── streams_tests.cpp │ ├── sync_tests.cpp │ ├── timedata_tests.cpp │ ├── torcontrol_tests.cpp │ ├── transaction_tests.cpp │ ├── txindex_tests.cpp │ ├── txvalidation_tests.cpp │ ├── txvalidationcache_tests.cpp │ ├── uint256_tests.cpp │ ├── util.cpp │ ├── util.h │ ├── util_tests.cpp │ ├── util_threadnames_tests.cpp │ ├── validation_block_tests.cpp │ ├── validation_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 ├── ui_interface.cpp ├── ui_interface.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 │ ├── gen │ │ └── gen.cpp │ ├── 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 │ │ ├── fail5.json │ │ ├── fail6.json │ │ ├── fail7.json │ │ ├── fail8.json │ │ ├── fail9.json │ │ ├── no_nul.cpp │ │ ├── object.cpp │ │ ├── pass1.json │ │ ├── pass2.json │ │ ├── pass3.json │ │ ├── round1.json │ │ ├── round2.json │ │ ├── round3.json │ │ ├── round4.json │ │ ├── round5.json │ │ ├── round6.json │ │ ├── round7.json │ │ ├── test_json.cpp │ │ └── unitester.cpp ├── unordered_lru_cache.h ├── util │ ├── bip32.cpp │ ├── bip32.h │ ├── bytevectorhash.cpp │ ├── bytevectorhash.h │ ├── error.cpp │ ├── error.h │ ├── fees.cpp │ ├── fees.h │ ├── init.cpp │ ├── init.h │ ├── memory.h │ ├── moneystr.cpp │ ├── moneystr.h │ ├── rbf.cpp │ ├── rbf.h │ ├── strencodings.cpp │ ├── strencodings.h │ ├── system.cpp │ ├── system.h │ ├── threadnames.cpp │ ├── threadnames.h │ ├── time.cpp │ ├── time.h │ ├── translation.h │ ├── url.cpp │ ├── url.h │ ├── validation.cpp │ └── validation.h ├── validation.cpp ├── validation.h ├── validationinterface.cpp ├── validationinterface.h ├── version.h ├── versionbits.cpp ├── versionbits.h ├── versionbitsinfo.cpp ├── versionbitsinfo.h ├── wallet │ ├── coincontrol.cpp │ ├── coincontrol.h │ ├── coinselection.cpp │ ├── coinselection.h │ ├── crypter.cpp │ ├── crypter.h │ ├── db.cpp │ ├── db.h │ ├── feebumper.cpp │ ├── feebumper.h │ ├── fees.cpp │ ├── fees.h │ ├── init.cpp │ ├── ismine.cpp │ ├── ismine.h │ ├── load.cpp │ ├── load.h │ ├── psbtwallet.cpp │ ├── psbtwallet.h │ ├── rpcdump.cpp │ ├── rpcwallet.cpp │ ├── rpcwallet.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 │ │ ├── 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 │ ├── zmqconfig.h │ ├── zmqnotificationinterface.cpp │ ├── zmqnotificationinterface.h │ ├── zmqpublishnotifier.cpp │ ├── zmqpublishnotifier.h │ ├── zmqrpc.cpp │ └── zmqrpc.h └── test ├── README.md ├── config.ini.in ├── functional ├── .gitignore ├── README.md ├── combine_logs.py ├── combined_log_template.html ├── create_cache.py ├── data │ ├── invalid_txs.py │ ├── rpc_getblockstats.json │ └── rpc_psbt.json ├── example_test.py ├── feature_abortnode.py ├── feature_assumevalid.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_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_shutdown.py ├── feature_uacomment.py ├── feature_versionbits_warning.py ├── interface_bitcoin_cli.py ├── interface_http.py ├── interface_rest.py ├── interface_rpc.py ├── interface_zmq.py ├── mempool_accept.py ├── mempool_limit.py ├── mempool_package_onemore.py ├── mempool_packages.py ├── mempool_persist.py ├── mempool_reorg.py ├── mempool_resurrect.py ├── mempool_spend_coinbase.py ├── mining_basic.py ├── mining_getblocktemplate_longpoll.py ├── mining_prioritisetransaction.py ├── p2p_blocksonly.py ├── p2p_compactblocks.py ├── p2p_disconnect_ban.py ├── p2p_feefilter.py ├── p2p_fingerprint.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_mempool.py ├── p2p_node_network_limited.py ├── p2p_segwit.py ├── p2p_sendheaders.py ├── p2p_timeouts.py ├── p2p_unrequested_blocks.py ├── rpc_bind.py ├── rpc_blockchain.py ├── rpc_createmultisig.py ├── rpc_decodescript.py ├── rpc_deprecated.py ├── rpc_deriveaddresses.py ├── rpc_fundrawtransaction.py ├── rpc_getblockfilter.py ├── rpc_getblockstats.py ├── rpc_getchaintips.py ├── rpc_help.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_signmessage.py ├── rpc_signrawtransaction.py ├── rpc_txoutproof.py ├── rpc_uptime.py ├── rpc_users.py ├── test_framework │ ├── __init__.py │ ├── address.py │ ├── authproxy.py │ ├── bignum.py │ ├── blocktools.py │ ├── coverage.py │ ├── descriptors.py │ ├── key.py │ ├── messages.py │ ├── mininode.py │ ├── netutil.py │ ├── script.py │ ├── segwit_addr.py │ ├── siphash.py │ ├── socks5.py │ ├── test_framework.py │ ├── test_node.py │ ├── util.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_bumpfee_totalfee_deprecation.py ├── wallet_coinbase_category.py ├── wallet_create_tx.py ├── wallet_createwallet.py ├── wallet_disable.py ├── wallet_dump.py ├── wallet_encryption.py ├── wallet_fallbackfee.py ├── wallet_groups.py ├── wallet_hd.py ├── wallet_import_rescan.py ├── wallet_import_with_label.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_resendwallettransactions.py ├── wallet_txn_clone.py ├── wallet_txn_doublespend.py └── wallet_zapwallettxes.py ├── fuzz └── test_runner.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-filenames.sh ├── lint-format-strings.py ├── lint-format-strings.sh ├── lint-include-guards.sh ├── lint-includes.sh ├── lint-locale-dependence.sh ├── lint-logs.sh ├── lint-python-dead-code.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-tests.sh └── lint-whitespace.sh ├── sanitizer_suppressions ├── lsan ├── tsan └── ubsan └── util ├── bitcoin-util-test.py ├── data ├── bitcoin-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 ├── txcreatesignv1.hex ├── txcreatesignv1.json └── txcreatesignv2.hex └── rpcauth-test.py /.gitattributes: -------------------------------------------------------------------------------- 1 | src/clientversion.cpp export-subst 2 | -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.5.6 2 | -------------------------------------------------------------------------------- /.travis/README.md: -------------------------------------------------------------------------------- 1 | ## travis build scripts 2 | 3 | The `.travis` directory contains scripts for each build step in each build stage. 4 | Currently the travis build defines two stages `lint` and `test`. Each stage has 5 | it's own [lifecycle](https://docs.travis-ci.com/user/customizing-the-build/#the-build-lifecycle). 6 | Every script in here is named and numbered according to which stage and lifecycle 7 | step it belongs to. 8 | 9 | -------------------------------------------------------------------------------- /.travis/extended_lint_04_install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019 The Bitcoin 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 | CPPCHECK_VERSION=1.86 10 | curl -s https://codeload.github.com/danmar/cppcheck/tar.gz/${CPPCHECK_VERSION} | tar -zxf - --directory /tmp/ 11 | (cd /tmp/cppcheck-${CPPCHECK_VERSION}/ && make CFGDIR=/tmp/cppcheck-${CPPCHECK_VERSION}/cfg/ > /dev/null) 12 | export PATH="$PATH:/tmp/cppcheck-${CPPCHECK_VERSION}/" 13 | -------------------------------------------------------------------------------- /.travis/extended_lint_06_script.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019 The Bitcoin 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 | test/lint/extended-lint-all.sh 10 | -------------------------------------------------------------------------------- /.travis/lint_04_install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | travis_retry pip install codespell==1.15.0 10 | travis_retry pip install flake8==3.5.0 11 | travis_retry pip install vulture==0.29 12 | 13 | SHELLCHECK_VERSION=v0.6.0 14 | curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/ 15 | export PATH="/tmp/shellcheck-${SHELLCHECK_VERSION}:${PATH}" 16 | -------------------------------------------------------------------------------- /.travis/lint_05_before_script.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | -------------------------------------------------------------------------------- /.travis/test_03_before_install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g") 10 | # Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. 11 | PATH=$PATH:/usr/lib/llvm-6.0/bin/ 12 | export PATH 13 | 14 | BEGIN_FOLD () { 15 | echo "" 16 | CURRENT_FOLD_NAME=$1 17 | echo "travis_fold:start:${CURRENT_FOLD_NAME}" 18 | } 19 | 20 | END_FOLD () { 21 | RET=$? 22 | echo "travis_fold:end:${CURRENT_FOLD_NAME}" 23 | if [ $RET != 0 ]; then 24 | echo "${CURRENT_FOLD_NAME} failed with status code ${RET}" 25 | fi 26 | } 27 | 28 | -------------------------------------------------------------------------------- /.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | 4 | [bitgreen.qt-translation-14x] 5 | file_filter = src/qt/locale/bitcoin_.ts 6 | minimum_perc = 0 7 | source_file = src/qt/locale/bitcoin_en.ts 8 | source_lang = en 9 | type = QT 10 | 11 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | Building BitGreen 2 | ================= 3 | 4 | See doc/build-*.md for instructions on building the various 5 | elements of the BitGreen Core reference implementation of BitGreen. 6 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | See our website for versions of Bitcoin Core that are currently supported with 6 | security updates: https://bitcoincore.org/en/lifecycle/#schedule 7 | 8 | ## Reporting a Vulnerability 9 | 10 | To report security issues send an email to security@bitcoincore.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-2016 The Bitcoin 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/bitcoin_subdir_to_include.m4: -------------------------------------------------------------------------------- 1 | dnl Copyright (c) 2013-2014 The Bitcoin 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 BITCOIN_SUBDIR_TO_INCLUDE([CPPFLAGS-VARIABLE-NAME],[SUBDIRECTORY-NAME],[HEADER-FILE]) 6 | dnl SUBDIRECTORY-NAME must end with a path separator 7 | AC_DEFUN([BITCOIN_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 | *.vcxproj 12 | */Win32 13 | -------------------------------------------------------------------------------- /build_msvc/common.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | $(BuildDependsOn);CopyBuildArtifacts 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /build_msvc/libbitgreen_cli/libbitgreen_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/libbitgreen_common/libbitgreen_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/libbitgreen_crypto/libbitgreen_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/libbitgreen_server/libbitgreen_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/libbitgreen_util/libbitgreen_util.vcxproj.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {B53A5535-EE9D-4C6F-9A26-F79EE3BC3754} 6 | 7 | 8 | StaticLibrary 9 | 10 | 11 | @SOURCE_FILES@ 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /build_msvc/libbitgreen_wallet/libbitgreen_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/libbitgreen_wallet_tool/libbitgreen_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/libbitgreen_zmq/libbitgreen_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 | -------------------------------------------------------------------------------- /contrib/bitgreen-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 | 20 | RESOURCES += \ 21 | ../src/qt/bitgreen.qrc 22 | -------------------------------------------------------------------------------- /contrib/devtools/split-debug.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | if [ $# -ne 3 ]; 4 | then echo "usage: $0 " 5 | fi 6 | 7 | @OBJCOPY@ --enable-deterministic-archives -p --only-keep-debug $1 $3 8 | @OBJCOPY@ --enable-deterministic-archives -p --strip-debug $1 $2 9 | @STRIP@ --enable-deterministic-archives -p -s $2 10 | @OBJCOPY@ --enable-deterministic-archives -p --add-gnu-debuglink=$3 $2 11 | -------------------------------------------------------------------------------- /contrib/init/README.md: -------------------------------------------------------------------------------- 1 | Sample configuration files for: 2 | ``` 3 | SystemD: bitgreend.service 4 | Upstart: bitgreend.conf 5 | OpenRC: bitgreend.openrc 6 | bitgreend.openrcconf 7 | CentOS: bitgreend.init 8 | macOS: org.bitg.bitgreend.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/macdeploy/README.md: -------------------------------------------------------------------------------- 1 | ### MacDeploy ### 2 | 3 | For Snow Leopard (which uses [Python 2.6](http://www.python.org/download/releases/2.6/)), you will need the param_parser package: 4 | 5 | sudo easy_install argparse 6 | 7 | This script should not be run manually, instead, after building as usual: 8 | 9 | make deploy 10 | 11 | During the process, the disk image window will pop up briefly where the fancy 12 | settings are applied. This is normal, please do not interfere. 13 | 14 | When finished, it will produce `BitGreen-Core.dmg`. 15 | 16 | -------------------------------------------------------------------------------- /contrib/macdeploy/fancy.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | window_bounds 6 | 7 | 300 8 | 300 9 | 800 10 | 620 11 | 12 | background_picture 13 | background.tiff 14 | icon_size 15 | 96 16 | applications_symlink 17 | 18 | items_position 19 | 20 | Applications 21 | 22 | 370 23 | 156 24 | 25 | Bitcoin-Qt.app 26 | 27 | 128 28 | 156 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /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 BitGreen network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN. 4 | 5 | This means one can have an always-on bitgreend instance running, and another local bitgreend/bitgreen-qt instance which connects to this node and receives blocks from it. 6 | -------------------------------------------------------------------------------- /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://bitcoin.sipa.be/seeds.txt.gz | gzip -dc > seeds_main.txt 14 | python3 makeseeds.py < seeds_main.txt > nodes_main.txt 15 | python3 generate-seeds.py . > ../../src/chainparamsseeds.h 16 | 17 | ## Dependencies 18 | 19 | Ubuntu: 20 | 21 | sudo apt-get install python3-dnspython 22 | -------------------------------------------------------------------------------- /contrib/seeds/nodes_main.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/contrib/seeds/nodes_main.txt -------------------------------------------------------------------------------- /contrib/seeds/nodes_test.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/contrib/seeds/nodes_test.txt -------------------------------------------------------------------------------- /contrib/testgen/README.md: -------------------------------------------------------------------------------- 1 | ### TestGen ### 2 | 3 | Utilities to generate test vectors for the data-driven BitGreen tests. 4 | 5 | Usage: 6 | 7 | PYTHONPATH=../../test/functional/test_framework ./gen_key_io_test_vectors.py valid 50 > ../../src/test/data/key_io_keys_valid.json 8 | PYTHONPATH=../../test/functional/test_framework ./gen_key_io_test_vectors.py invalid 50 > ../../src/test/data/key_io_keys_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-2015 The Bitcoin 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(:|/)bitgreen/bitgreen(.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 | riscv32* 12 | riscv64* 13 | -------------------------------------------------------------------------------- /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/darwin.mk: -------------------------------------------------------------------------------- 1 | OSX_MIN_VERSION=10.10 2 | OSX_SDK_VERSION=10.11 3 | OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk 4 | LD64_VERSION=253.9 5 | darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) 6 | darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++ 7 | 8 | darwin_CFLAGS=-pipe 9 | darwin_CXXFLAGS=$(darwin_CFLAGS) 10 | 11 | darwin_release_CFLAGS=-O2 12 | darwin_release_CXXFLAGS=$(darwin_release_CFLAGS) 13 | 14 | darwin_debug_CFLAGS=-O1 15 | darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS) 16 | 17 | darwin_native_toolchain=native_cctools 18 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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_linux=--with-pic 10 | endef 11 | 12 | define $(package)_config_cmds 13 | $($(package)_autoconf) 14 | endef 15 | 16 | define $(package)_build_cmds 17 | $(MAKE) 18 | endef 19 | 20 | define $(package)_stage_cmds 21 | $(MAKE) DESTDIR=$($(package)_staging_dir) install 22 | endef 23 | 24 | define $(package)_postprocess_cmds 25 | rm lib/*.la 26 | endef 27 | -------------------------------------------------------------------------------- /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_linux=--with-pic 10 | endef 11 | 12 | define $(package)_config_cmds 13 | $($(package)_autoconf) 14 | endef 15 | 16 | define $(package)_build_cmds 17 | $(MAKE) 18 | endef 19 | 20 | define $(package)_stage_cmds 21 | $(MAKE) DESTDIR=$($(package)_staging_dir) install 22 | endef 23 | 24 | define $(package)_postprocess_cmds 25 | rm lib/*.la 26 | endef 27 | -------------------------------------------------------------------------------- /depends/packages/gmp.mk: -------------------------------------------------------------------------------- 1 | package=gmp 2 | $(package)_version=6.1.2 3 | $(package)_download_path=https://gmplib.org/download/gmp 4 | $(package)_file_name=gmp-$($(package)_version).tar.bz2 5 | $(package)_sha256_hash=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2 6 | 7 | define $(package)_set_vars 8 | $(package)_config_opts+=--enable-cxx --enable-fat --with-pic --disable-shared 9 | $(package)_cflags_armv7l_linux+=-march=armv7-a 10 | endef 11 | 12 | define $(package)_config_cmds 13 | $($(package)_autoconf) 14 | endef 15 | 16 | define $(package)_build_cmds 17 | $(MAKE) 18 | endef 19 | 20 | define $(package)_stage_cmds 21 | $(MAKE) DESTDIR=$($(package)_staging_dir) install 22 | endef -------------------------------------------------------------------------------- /depends/packages/libXau.mk: -------------------------------------------------------------------------------- 1 | package=libXau 2 | $(package)_version=1.0.8 3 | $(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/ 4 | $(package)_file_name=$(package)-$($(package)_version).tar.bz2 5 | $(package)_sha256_hash=fdd477320aeb5cdd67272838722d6b7d544887dfe7de46e1e7cc0c27c2bea4f2 6 | $(package)_dependencies=xproto 7 | 8 | define $(package)_set_vars 9 | $(package)_config_opts=--disable-shared 10 | $(package)_config_opts_linux=--with-pic 11 | endef 12 | 13 | define $(package)_preprocess_cmds 14 | cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub . 15 | endef 16 | 17 | define $(package)_config_cmds 18 | $($(package)_autoconf) 19 | endef 20 | 21 | define $(package)_build_cmds 22 | $(MAKE) 23 | endef 24 | 25 | define $(package)_stage_cmds 26 | $(MAKE) DESTDIR=$($(package)_staging_dir) install 27 | endef 28 | 29 | define $(package)_postprocess_cmds 30 | rm lib/*.la 31 | endef 32 | -------------------------------------------------------------------------------- /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_cdrkit.mk: -------------------------------------------------------------------------------- 1 | package=native_cdrkit 2 | $(package)_version=1.1.11 3 | $(package)_download_path=https://distro.ibiblio.org/fatdog/source/600/c 4 | $(package)_file_name=cdrkit-$($(package)_version).tar.bz2 5 | $(package)_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564 6 | $(package)_patches=cdrkit-deterministic.patch 7 | 8 | define $(package)_preprocess_cmds 9 | patch -p1 < $($(package)_patch_dir)/cdrkit-deterministic.patch 10 | endef 11 | 12 | define $(package)_config_cmds 13 | cmake -DCMAKE_INSTALL_PREFIX=$(build_prefix) 14 | endef 15 | 16 | define $(package)_build_cmds 17 | $(MAKE) genisoimage 18 | endef 19 | 20 | define $(package)_stage_cmds 21 | $(MAKE) DESTDIR=$($(package)_staging_dir) -C genisoimage install 22 | endef 23 | 24 | define $(package)_postprocess_cmds 25 | rm bin/isovfy bin/isoinfo bin/isodump bin/isodebug bin/devdump 26 | endef 27 | -------------------------------------------------------------------------------- /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=0.1 3 | $(package)_download_path=https://github.com/theuni/libdmg-hfsplus/archive 4 | $(package)_file_name=libdmg-hfsplus-v$($(package)_version).tar.gz 5 | $(package)_sha256_hash=6569a02eb31c2827080d7d59001869ea14484c281efab0ae7f2b86af5c3120b3 6 | $(package)_build_subdir=build 7 | 8 | define $(package)_preprocess_cmds 9 | mkdir build 10 | endef 11 | 12 | define $(package)_config_cmds 13 | cmake -DCMAKE_INSTALL_PREFIX:PATH=$(build_prefix)/bin .. 14 | endef 15 | 16 | define $(package)_build_cmds 17 | $(MAKE) -C dmg 18 | endef 19 | 20 | define $(package)_stage_cmds 21 | $(MAKE) DESTDIR=$($(package)_staging_dir) -C dmg install 22 | endef 23 | -------------------------------------------------------------------------------- /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/native_protobuf.mk: -------------------------------------------------------------------------------- 1 | package=native_protobuf 2 | $(package)_version=2.6.1 3 | $(package)_download_path=https://github.com/google/protobuf/releases/download/v$($(package)_version) 4 | $(package)_file_name=protobuf-$($(package)_version).tar.bz2 5 | $(package)_sha256_hash=ee445612d544d885ae240ffbcbf9267faa9f593b7b101f21d58beceb92661910 6 | 7 | define $(package)_set_vars 8 | $(package)_config_opts=--disable-shared --without-zlib 9 | endef 10 | 11 | define $(package)_config_cmds 12 | $($(package)_autoconf) 13 | endef 14 | 15 | define $(package)_build_cmds 16 | $(MAKE) -C src protoc 17 | endef 18 | 19 | define $(package)_stage_cmds 20 | $(MAKE) -C src DESTDIR=$($(package)_staging_dir) install-strip 21 | endef 22 | 23 | define $(package)_postprocess_cmds 24 | rm -rf lib include 25 | endef 26 | -------------------------------------------------------------------------------- /depends/packages/packages.mk: -------------------------------------------------------------------------------- 1 | packages:=boost openssl libevent gmp chia_bls 2 | 3 | qt_native_packages = native_protobuf 4 | qt_packages = qrencode protobuf zlib 5 | 6 | qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig 7 | 8 | rapidcheck_packages = rapidcheck 9 | 10 | qt_darwin_packages=qt 11 | qt_mingw32_packages=qt 12 | 13 | wallet_packages=bdb 14 | 15 | zmq_packages=zeromq 16 | 17 | upnp_packages=miniupnpc 18 | 19 | darwin_native_packages = native_biplist native_ds_store native_mac_alias 20 | 21 | ifneq ($(build_os),darwin) 22 | darwin_native_packages += native_cctools native_cdrkit native_libdmg-hfsplus 23 | endif 24 | -------------------------------------------------------------------------------- /depends/packages/qrencode.mk: -------------------------------------------------------------------------------- 1 | package=qrencode 2 | $(package)_version=3.4.4 3 | $(package)_download_path=https://fukuchi.org/works/qrencode/ 4 | $(package)_file_name=$(package)-$($(package)_version).tar.bz2 5 | $(package)_sha256_hash=efe5188b1ddbcbf98763b819b146be6a90481aac30cfc8d858ab78a19cde1fa5 6 | 7 | define $(package)_set_vars 8 | $(package)_config_opts=--disable-shared -without-tools --disable-sdltest 9 | $(package)_config_opts_linux=--with-pic 10 | endef 11 | 12 | define $(package)_preprocess_cmds 13 | cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub use 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 | 28 | define $(package)_postprocess_cmds 29 | rm lib/*.la 30 | endef 31 | -------------------------------------------------------------------------------- /depends/packages/rapidcheck.mk: -------------------------------------------------------------------------------- 1 | package=rapidcheck 2 | $(package)_version=3eb9b4ff69f4ff2d9932e8f852c2b2a61d7c20d3 3 | $(package)_download_path=https://github.com/emil-e/rapidcheck/archive 4 | $(package)_file_name=$($(package)_version).tar.gz 5 | $(package)_sha256_hash=5fbf82755c9a647127e62563be079448ff8b1db9ca80a52a673dd9a88fdb714b 6 | 7 | define $(package)_config_cmds 8 | cmake -DCMAKE_INSTALL_PREFIX=$($(package)_staging_dir)$(host_prefix) -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true -DRC_INSTALL_ALL_EXTRAS=ON 9 | endef 10 | 11 | define $(package)_preprocess_cmds 12 | sed -i.old 's/ -Wall//' CMakeLists.txt 13 | endef 14 | 15 | define $(package)_build_cmds 16 | $(MAKE) rapidcheck 17 | endef 18 | 19 | define $(package)_stage_cmds 20 | $(MAKE) rapidcheck install 21 | endef 22 | -------------------------------------------------------------------------------- /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)_set_vars 8 | $(package)_config_opts=--disable-shared 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) 18 | endef 19 | 20 | define $(package)_stage_cmds 21 | $(MAKE) DESTDIR=$($(package)_staging_dir) install 22 | endef 23 | 24 | define $(package)_postprocess_cmds 25 | find -name "*.pyc" -delete && \ 26 | find -name "*.pyo" -delete 27 | endef 28 | -------------------------------------------------------------------------------- /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=--disable-shared 9 | endef 10 | 11 | define $(package)_preprocess_cmds 12 | cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub . 13 | endef 14 | 15 | define $(package)_config_cmds 16 | $($(package)_autoconf) 17 | endef 18 | 19 | define $(package)_build_cmds 20 | $(MAKE) 21 | endef 22 | 23 | define $(package)_stage_cmds 24 | $(MAKE) DESTDIR=$($(package)_staging_dir) install 25 | endef 26 | -------------------------------------------------------------------------------- /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_qt_pkgconfig.patch: -------------------------------------------------------------------------------- 1 | --- old/qtbase/mkspecs/features/qt_module.prf 2 | +++ new/qtbase/mkspecs/features/qt_module.prf 3 | @@ -245,7 +245,7 @@ 4 | load(qt_targets) 5 | 6 | # this builds on top of qt_common 7 | -!internal_module:!lib_bundle:if(unix|mingw) { 8 | +unix|mingw { 9 | CONFIG += create_pc 10 | QMAKE_PKGCONFIG_DESTDIR = pkgconfig 11 | host_build: \ 12 | -------------------------------------------------------------------------------- /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/README_windows.txt: -------------------------------------------------------------------------------- 1 | Bitcoin Core 2 | ============= 3 | 4 | Intro 5 | ----- 6 | Bitcoin is a free open source peer-to-peer electronic cash system that is 7 | completely decentralized, without the need for a central server or trusted 8 | parties. Users hold the crypto keys to their own money and transact directly 9 | with each other, with the help of a P2P network to check for double-spending. 10 | 11 | 12 | Setup 13 | ----- 14 | Unpack the files into a directory and run bitcoin-qt.exe. 15 | 16 | Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. 17 | However, it downloads and stores the entire history of Bitcoin transactions; 18 | depending on the speed of your computer and network connection, the synchronization 19 | process can take anywhere from a few hours to a day or more. 20 | 21 | See the bitcoin wiki at: 22 | https://en.bitcoin.it/wiki/Main_Page 23 | for more help and information. 24 | -------------------------------------------------------------------------------- /doc/assets-attribution.md: -------------------------------------------------------------------------------- 1 | The list of assets used in the bitcoin source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright). 2 | -------------------------------------------------------------------------------- /doc/bitgreen_logo_doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/doc/bitgreen_logo_doxygen.png -------------------------------------------------------------------------------- /doc/gitian-building.md: -------------------------------------------------------------------------------- 1 | Gitian building 2 | ================ 3 | 4 | This file was moved to [the Bitcoin Core documentation repository](https://github.com/bitcoin-core/docs/blob/master/gitian-building.md) at [https://github.com/bitcoin-core/docs](https://github.com/bitcoin-core/docs). 5 | -------------------------------------------------------------------------------- /doc/man/Makefile.am: -------------------------------------------------------------------------------- 1 | dist_man1_MANS= 2 | 3 | if BUILD_BITCOIND 4 | dist_man1_MANS+=bitgreend.1 5 | endif 6 | 7 | if ENABLE_QT 8 | dist_man1_MANS+=bitgreen-qt.1 9 | endif 10 | 11 | if BUILD_BITCOIN_CLI 12 | dist_man1_MANS+=bitgreen-cli.1 13 | endif 14 | 15 | if BUILD_BITCOIN_TX 16 | dist_man1_MANS+=bitgreen-tx.1 17 | endif 18 | 19 | if ENABLE_WALLET 20 | if BUILD_BITCOIN_WALLET 21 | dist_man1_MANS+=bitgreen-wallet.1 22 | endif 23 | endif 24 | -------------------------------------------------------------------------------- /doc/release-notes-0.18.1-16257.md: -------------------------------------------------------------------------------- 1 | Wallet changes 2 | -------------- 3 | When creating a transaction with a fee above `-maxtxfee` (default 0.1 BTC), 4 | the RPC commands `walletcreatefundedpsbt` and `fundrawtransaction` will now fail 5 | instead of rounding down the fee. Beware that the `feeRate` argument is specified 6 | in BTC per kilobyte, not satoshi per byte. 7 | -------------------------------------------------------------------------------- /doc/release-notes-14054.md: -------------------------------------------------------------------------------- 1 | P2P changes 2 | ----------- 3 | 4 | BIP 61 reject messages were deprecated in v0.18. They are now disabled by 5 | default, but can be enabled by setting the `-enablebip61` command line option. 6 | BIP 61 reject messages will be removed entirely in a future version of 7 | Bitcoin Core. 8 | -------------------------------------------------------------------------------- /doc/release-notes-14802.md: -------------------------------------------------------------------------------- 1 | RPC changes 2 | ----------- 3 | The `getblockstats` RPC is faster for fee calculation by using BlockUndo data. Also, `-txindex` is no longer required and `getblockstats` works for all non-pruned blocks. 4 | -------------------------------------------------------------------------------- /doc/release-notes-14954.md: -------------------------------------------------------------------------------- 1 | Build system changes 2 | -------------------- 3 | Python >=3.5 is now required by all aspects of the project. This includes the build systems, test framework and linters. The previously supported minimum (3.4), was EOL in March 2019. See #14954 for more details. -------------------------------------------------------------------------------- /doc/release-notes-15006.md: -------------------------------------------------------------------------------- 1 | Miscellaneous RPC changes 2 | ------------ 3 | 4 | - `createwallet` can now create encrypted wallets if a non-empty passphrase is specified. 5 | -------------------------------------------------------------------------------- /doc/release-notes-15427.md: -------------------------------------------------------------------------------- 1 | Updated RPCs 2 | ------------ 3 | 4 | The `utxoupdatepsbt` RPC method has been updated to take a `descriptors` 5 | argument. When provided, input and output scripts and keys will be filled in 6 | when known, and P2SH-witness inputs will be filled in from the UTXO set when a 7 | descriptor is provided that shows they're spending segwit outputs. 8 | 9 | See the RPC help text for full details. 10 | -------------------------------------------------------------------------------- /doc/release-notes-15566.md: -------------------------------------------------------------------------------- 1 | Miscellaneous CLI Changes 2 | ------------------------- 3 | - The `testnet` field in `bitcoin-cli -getinfo` has been renamed to `chain` and now returns the current network name as defined in BIP70 (main, test, regtest). -------------------------------------------------------------------------------- /doc/release-notes-15620.md: -------------------------------------------------------------------------------- 1 | Updated RPCs 2 | ------------ 3 | 4 | * The -maxtxfee setting no longer has any effect on non-wallet RPCs. 5 | 6 | The `sendrawtransaction` and `testmempoolaccept` RPC methods previously 7 | accepted an `allowhighfees` parameter to fail the mempool acceptance in case 8 | the transaction's fee would exceed the value of the command line argument 9 | `-maxtxfee`. To uncouple the RPCs from the global option, they now have a 10 | hardcoded default for the maximum transaction fee, that can be changed for 11 | both RPCs on a per-call basis with the `maxfeerate` parameter. The 12 | `allowhighfees` boolean option has been removed and replaced by the 13 | `maxfeerate` numeric option. 14 | -------------------------------------------------------------------------------- /doc/release-notes-15637.md: -------------------------------------------------------------------------------- 1 | RPC changes 2 | ----------- 3 | In getmempoolancestors, getmempooldescendants, getmempoolentry and getrawmempool RPCs, to be consistent with the returned value and other RPCs such as getrawtransaction, vsize has been added and size is now deprecated. size will only be returned if bitcoind is started with `-deprecatedrpc=size`. -------------------------------------------------------------------------------- /doc/release-notes-15730.md: -------------------------------------------------------------------------------- 1 | RPC changes 2 | ----------- 3 | The RPC `getwalletinfo` response now includes the `scanning` key with an object 4 | if there is a scanning in progress or `false` otherwise. Currently the object 5 | has the scanning duration and progress. 6 | -------------------------------------------------------------------------------- /doc/release-notes-15849.md: -------------------------------------------------------------------------------- 1 | Thread names in logs 2 | -------------------- 3 | 4 | On platforms supporting `thread_local`, log lines can be prefixed with the name 5 | of the thread that caused the log. To enable this behavior, use 6 | `-logthreadnames=1`. 7 | -------------------------------------------------------------------------------- /doc/release-notes-15993.md: -------------------------------------------------------------------------------- 1 | Build system changes 2 | -------------------- 3 | The minimum supported miniUPnPc API version is set to 10. This keeps compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` packages. Please note, on Debian this package is still vulnerable to [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) (in jessie only) and [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) (both in jessie and in stretch). 4 | -------------------------------------------------------------------------------- /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.bitcoin.org/smf/index.php?topic=969.0 11 | 12 | Download: 13 | http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-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/bitcoin/files/Bitcoin/bitcoin-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 | * BitcoinMiner 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.bitcoin.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 Bitcoin-v0.3.20.2 Mingw (Windows; Administrator password 'bitcoin development') 7 | ami-30a05259 Bitcoin_0.3.20.2 Linux32 8 | ami-8abc4ee3 Bitcoin_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 bitcoin.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 bitcoin v0.3.23 have been uploaded to 2 | https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/ 3 | 4 | This is another quick bugfix release, trying to deal with the influx of new bitcoin 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 | Bitcoin-Qt version 0.8.3 is now available from: 2 | http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-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/bitcoin/bitcoin/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 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-1.5.0.3.md: -------------------------------------------------------------------------------- 1 | BitGreen Core version 1.5.0.3 is now available from: 2 | 3 | 4 | 5 | This is a new minor version release, including new features, various bug 6 | fixes and performance improvements. 7 | 8 | Please report bugs using the issue tracker at GitHub: 9 | 10 | 11 | 12 | # 1.5.0.3 change log 13 | 14 | ### Network 15 | 16 | - #25cdbb2 net_processing: do not attempt to sync objects unless chain is at a recent state (barrystyle) 17 | - #9d0ea7a validation: make sure everything is written to disk before exiting (barrystyle) 18 | -------------------------------------------------------------------------------- /doc/release-notes/release-notes-16152.md: -------------------------------------------------------------------------------- 1 | P2P Changes 2 | ----------- 3 | - The default value for the -peerbloomfilters configuration option (and, thus, NODE_BLOOM support) has been changed to false. 4 | This resolves well-known DoS vectors in Bitcoin Core, especially for nodes with spinning disks. It is not anticipated that 5 | this will result in a significant lack of availability of NODE_BLOOM-enabled nodes in the coming years, however, clients 6 | which rely on the availability of NODE_BLOOM-supporting nodes on the P2P network should consider the process of migrating 7 | to a more modern (and less trustful and privacy-violating) alternative over the coming years. 8 | -------------------------------------------------------------------------------- /libbitgreenconsensus.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 BitGreen consensus protocol. 8 | Version: @PACKAGE_VERSION@ 9 | Libs: -L${libdir} -lbitgreenconsensus 10 | Cflags: -I${includedir} 11 | Requires.private: libcrypto 12 | -------------------------------------------------------------------------------- /share/pixmaps/bitcoin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/bitcoin.ico -------------------------------------------------------------------------------- /share/pixmaps/bitcoin128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/bitcoin128.png -------------------------------------------------------------------------------- /share/pixmaps/bitcoin16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/bitcoin16.png -------------------------------------------------------------------------------- /share/pixmaps/bitcoin256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/bitcoin256.png -------------------------------------------------------------------------------- /share/pixmaps/bitcoin32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/bitcoin32.png -------------------------------------------------------------------------------- /share/pixmaps/bitcoin64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/bitcoin64.png -------------------------------------------------------------------------------- /share/pixmaps/nsis-header.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/share/pixmaps/nsis-header.bmp -------------------------------------------------------------------------------- /share/pixmaps/nsis-wizard.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/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/attributes.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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 BITGREEN_ATTRIBUTES_H 7 | #define BITGREEN_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 // BITGREEN_ATTRIBUTES_H 23 | -------------------------------------------------------------------------------- /src/bench/.gitignore: -------------------------------------------------------------------------------- 1 | bench_bitgreen 2 | -------------------------------------------------------------------------------- /src/bench/data.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The Bitcoin 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 Bitcoin 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 BITGREEN_BENCH_DATA_H 6 | #define BITGREEN_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 // BITGREEN_BENCH_DATA_H 20 | -------------------------------------------------------------------------------- /src/bench/data/block413567.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/bench/data/block413567.raw -------------------------------------------------------------------------------- /src/bench/examples.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2018 The Bitcoin 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 | // Sanity test: this should loop ten times, and 9 | // min/max/average should be close to 100ms. 10 | static void Sleep100ms(benchmark::State& state) 11 | { 12 | while (state.KeepRunning()) { 13 | MilliSleep(100); 14 | } 15 | } 16 | 17 | BENCHMARK(Sleep100ms, 10); 18 | 19 | // Extremely fast-running benchmark: 20 | #include 21 | 22 | volatile double sum = 0.0; // volatile, global so not optimized away 23 | 24 | static void Trig(benchmark::State& state) 25 | { 26 | double d = 0.01; 27 | while (state.KeepRunning()) { 28 | sum += sin(d); 29 | d += 0.000001; 30 | } 31 | } 32 | 33 | BENCHMARK(Trig, 12 * 1000 * 1000); 34 | -------------------------------------------------------------------------------- /src/bench/merkle_root.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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::State& state) 12 | { 13 | FastRandomContext rng(true); 14 | std::vector leaves; 15 | leaves.resize(9001); 16 | for (auto& item : leaves) { 17 | item = rng.rand256(); 18 | } 19 | while (state.KeepRunning()) { 20 | bool mutation = false; 21 | uint256 hash = ComputeMerkleRoot(std::vector(leaves), &mutation); 22 | leaves[mutation] = hash; 23 | } 24 | } 25 | 26 | BENCHMARK(MerkleRoot, 800); 27 | -------------------------------------------------------------------------------- /src/compat/sanity.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2014 The Bitcoin 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 BITGREEN_COMPAT_SANITY_H 6 | #define BITGREEN_COMPAT_SANITY_H 7 | 8 | bool glibc_sanity_test(); 9 | bool glibcxx_sanity_test(); 10 | 11 | #endif // BITGREEN_COMPAT_SANITY_H 12 | -------------------------------------------------------------------------------- /src/compat/strnlen.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2018 The Bitcoin 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/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/config/.empty -------------------------------------------------------------------------------- /src/consensus/tx_check.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2018 The Bitcoin 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 BITGREEN_CONSENSUS_TX_CHECK_H 6 | #define BITGREEN_CONSENSUS_TX_CHECK_H 7 | 8 | /** 9 | * Context-independent transaction checking code that can be called outside the 10 | * bitgreen 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 CValidationState; 17 | 18 | bool CheckTransaction(const CTransaction& tx, CValidationState& state, bool fCheckDuplicateInputs=true); 19 | 20 | #endif // BITGREEN_CONSENSUS_TX_CHECK_H 21 | -------------------------------------------------------------------------------- /src/crypto/hkdf_sha256_32.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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.c_str(), 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 Bitcoin 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 BITGREEN_CRYPTO_HKDF_SHA256_32_H 6 | #define BITGREEN_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 // BITGREEN_CRYPTO_HKDF_SHA256_32_H 26 | -------------------------------------------------------------------------------- /src/crypto/hmac_sha256.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2018 The Bitcoin 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 BITGREEN_CRYPTO_HMAC_SHA256_H 6 | #define BITGREEN_CRYPTO_HMAC_SHA256_H 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | /** A hasher class for HMAC-SHA-256. */ 14 | class CHMAC_SHA256 15 | { 16 | private: 17 | CSHA256 outer; 18 | CSHA256 inner; 19 | 20 | public: 21 | static const size_t OUTPUT_SIZE = 32; 22 | 23 | CHMAC_SHA256(const unsigned char* key, size_t keylen); 24 | CHMAC_SHA256& Write(const unsigned char* data, size_t len) 25 | { 26 | inner.Write(data, len); 27 | return *this; 28 | } 29 | void Finalize(unsigned char hash[OUTPUT_SIZE]); 30 | }; 31 | 32 | #endif // BITGREEN_CRYPTO_HMAC_SHA256_H 33 | -------------------------------------------------------------------------------- /src/crypto/hmac_sha512.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2018 The Bitcoin 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 BITGREEN_CRYPTO_HMAC_SHA512_H 6 | #define BITGREEN_CRYPTO_HMAC_SHA512_H 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | /** A hasher class for HMAC-SHA-512. */ 14 | class CHMAC_SHA512 15 | { 16 | private: 17 | CSHA512 outer; 18 | CSHA512 inner; 19 | 20 | public: 21 | static const size_t OUTPUT_SIZE = 64; 22 | 23 | CHMAC_SHA512(const unsigned char* key, size_t keylen); 24 | CHMAC_SHA512& Write(const unsigned char* data, size_t len) 25 | { 26 | inner.Write(data, len); 27 | return *this; 28 | } 29 | void Finalize(unsigned char hash[OUTPUT_SIZE]); 30 | }; 31 | 32 | #endif // BITGREEN_CRYPTO_HMAC_SHA512_H 33 | -------------------------------------------------------------------------------- /src/crypto/poly1305.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The Bitcoin 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 BITGREEN_CRYPTO_POLY1305_H 6 | #define BITGREEN_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 // BITGREEN_CRYPTO_POLY1305_H 18 | -------------------------------------------------------------------------------- /src/crypto/ripemd160.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2016 The Bitcoin 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 BITGREEN_CRYPTO_RIPEMD160_H 6 | #define BITGREEN_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 // BITGREEN_CRYPTO_RIPEMD160_H 29 | -------------------------------------------------------------------------------- /src/crypto/sha1.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2016 The Bitcoin 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 BITGREEN_CRYPTO_SHA1_H 6 | #define BITGREEN_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 // BITGREEN_CRYPTO_SHA1_H 29 | -------------------------------------------------------------------------------- /src/crypto/sha512.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2016 The Bitcoin 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 BITGREEN_CRYPTO_SHA512_H 6 | #define BITGREEN_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 | }; 27 | 28 | #endif // BITGREEN_CRYPTO_SHA512_H 29 | -------------------------------------------------------------------------------- /src/immer/detail/rbts/bits.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // immer: immutable data structures for C++ 3 | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente 4 | // 5 | // This software is distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt 7 | // 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | namespace immer { 14 | namespace detail { 15 | namespace rbts { 16 | 17 | using bits_t = std::uint32_t; 18 | using shift_t = std::uint32_t; 19 | using count_t = std::uint32_t; 20 | using size_t = std::size_t; 21 | 22 | template 23 | constexpr T branches = T{1} << B; 24 | 25 | template 26 | constexpr T mask = branches - 1; 27 | 28 | template 29 | constexpr shift_t endshift = shift_t{BL} - shift_t{B}; 30 | 31 | } // namespace rbts 32 | } // namespace detail 33 | } // namespace immer 34 | -------------------------------------------------------------------------------- /src/immer/heap/free_list_node.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // immer: immutable data structures for C++ 3 | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente 4 | // 5 | // This software is distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt 7 | // 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | namespace immer { 14 | 15 | struct free_list_node 16 | { 17 | free_list_node* next; 18 | }; 19 | 20 | template 21 | struct with_free_list_node 22 | : with_data 23 | {}; 24 | 25 | } // namespace immer 26 | -------------------------------------------------------------------------------- /src/immer/heap/identity_heap.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // immer: immutable data structures for C++ 3 | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente 4 | // 5 | // This software is distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt 7 | // 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | namespace immer { 14 | 15 | /*! 16 | * A heap that simply passes on to the parent heap. 17 | */ 18 | template 19 | struct identity_heap : Base 20 | { 21 | template 22 | static void* allocate(std::size_t size, Tags... tags) 23 | { 24 | return Base::allocate(size, tags...); 25 | } 26 | 27 | template 28 | static void deallocate(std::size_t size, void* data, Tags... tags) 29 | { 30 | Base::deallocate(size, data, tags...); 31 | } 32 | }; 33 | 34 | } // namespace immer 35 | -------------------------------------------------------------------------------- /src/immer/heap/tags.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // immer: immutable data structures for C++ 3 | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente 4 | // 5 | // This software is distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt 7 | // 8 | 9 | #pragma once 10 | 11 | namespace immer { 12 | 13 | struct norefs_tag {}; 14 | 15 | } // namespace immer 16 | -------------------------------------------------------------------------------- /src/immer/map_transient.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // immer: immutable data structures for C++ 3 | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente 4 | // 5 | // This software is distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt 7 | // 8 | 9 | #pragma once 10 | 11 | #include 12 | #include 13 | 14 | #include 15 | 16 | namespace immer { 17 | 18 | /*! 19 | * **WORK IN PROGRESS** 20 | */ 21 | template , 24 | typename Equal = std::equal_to, 25 | typename MemoryPolicy = default_memory_policy, 26 | detail::hamts::bits_t B = default_bits> 27 | class map_transient; 28 | 29 | } // namespace immer 30 | -------------------------------------------------------------------------------- /src/immer/set_transient.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // immer: immutable data structures for C++ 3 | // Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente 4 | // 5 | // This software is distributed under the Boost Software License, Version 1.0. 6 | // See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt 7 | // 8 | 9 | #pragma once 10 | 11 | #include 12 | #include 13 | 14 | #include 15 | 16 | namespace immer { 17 | 18 | /*! 19 | * **WORK IN PROGRESS** 20 | */ 21 | template , 23 | typename Equal = std::equal_to, 24 | typename MemoryPolicy = default_memory_policy, 25 | detail::hamts::bits_t B = default_bits> 26 | class set_transient; 27 | 28 | } // namespace immer 29 | -------------------------------------------------------------------------------- /src/interfaces/handler.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 | 9 | #include 10 | #include 11 | 12 | namespace interfaces { 13 | namespace { 14 | 15 | class HandlerImpl : public Handler 16 | { 17 | public: 18 | explicit HandlerImpl(boost::signals2::connection connection) : m_connection(std::move(connection)) {} 19 | 20 | void disconnect() override { m_connection.disconnect(); } 21 | 22 | boost::signals2::scoped_connection m_connection; 23 | }; 24 | 25 | } // namespace 26 | 27 | std::unique_ptr MakeHandler(boost::signals2::connection connection) 28 | { 29 | return MakeUnique(std::move(connection)); 30 | } 31 | 32 | } // namespace interfaces 33 | -------------------------------------------------------------------------------- /src/leveldb/.gitignore: -------------------------------------------------------------------------------- 1 | build_config.mk 2 | *.a 3 | *.o 4 | *.dylib* 5 | *.so 6 | *.so.* 7 | *_test 8 | db_bench 9 | leveldbutil 10 | Release 11 | Debug 12 | Benchmark 13 | vs2010.* 14 | -------------------------------------------------------------------------------- /src/leveldb/.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | compiler: 3 | - clang 4 | - gcc 5 | os: 6 | - linux 7 | - osx 8 | sudo: false 9 | before_install: 10 | - echo $LANG 11 | - echo $LC_ALL 12 | script: 13 | - make -j 4 check 14 | -------------------------------------------------------------------------------- /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/db/db_iter.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_DB_DB_ITER_H_ 6 | #define STORAGE_LEVELDB_DB_DB_ITER_H_ 7 | 8 | #include 9 | #include "leveldb/db.h" 10 | #include "db/dbformat.h" 11 | 12 | namespace leveldb { 13 | 14 | class DBImpl; 15 | 16 | // Return a new iterator that converts internal keys (yielded by 17 | // "*internal_iter") that were live at the specified "sequence" number 18 | // into appropriate user keys. 19 | extern Iterator* NewDBIterator( 20 | DBImpl* db, 21 | const Comparator* user_key_comparator, 22 | Iterator* internal_iter, 23 | SequenceNumber sequence, 24 | uint32_t seed); 25 | 26 | } // namespace leveldb 27 | 28 | #endif // STORAGE_LEVELDB_DB_DB_ITER_H_ 29 | -------------------------------------------------------------------------------- /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 | namespace leveldb { 9 | 10 | class Env; 11 | 12 | // Returns a new environment that stores its data in memory and delegates 13 | // all non-file-storage tasks to base_env. The caller must delete the result 14 | // when it is no longer needed. 15 | // *base_env must remain live while the result is in use. 16 | Env* NewMemEnv(Env* base_env); 17 | 18 | } // namespace leveldb 19 | 20 | #endif // STORAGE_LEVELDB_HELPERS_MEMENV_MEMENV_H_ 21 | -------------------------------------------------------------------------------- /src/leveldb/port/README: -------------------------------------------------------------------------------- 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_posix.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) 14 | # include "port/port_posix.h" 15 | #elif defined(LEVELDB_PLATFORM_CHROMIUM) 16 | # include "port/port_chromium.h" 17 | #elif defined(LEVELDB_PLATFORM_WINDOWS) 18 | # include "port/port_win.h" 19 | #endif 20 | 21 | #endif // STORAGE_LEVELDB_PORT_PORT_H_ 22 | -------------------------------------------------------------------------------- /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 | extern uint32_t Hash(const char* data, size_t n, uint32_t seed); 16 | 17 | } 18 | 19 | #endif // STORAGE_LEVELDB_UTIL_HASH_H_ 20 | -------------------------------------------------------------------------------- /src/node/coin.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The Bitcoin 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 | void FindCoins(std::map& coins) 11 | { 12 | LOCK2(cs_main, ::mempool.cs); 13 | assert(pcoinsTip); 14 | CCoinsViewCache& chain_view = *::pcoinsTip; 15 | CCoinsViewMemPool mempool_view(&chain_view, ::mempool); 16 | for (auto& coin : coins) { 17 | if (!mempool_view.GetCoin(coin.first, coin.second)) { 18 | // Either the coin is not in the CCoinsViewCache or is spent. Clear it. 19 | coin.second.Clear(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/node/coin.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The Bitcoin 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 BITGREEN_NODE_COIN_H 6 | #define BITGREEN_NODE_COIN_H 7 | 8 | #include 9 | 10 | class COutPoint; 11 | class Coin; 12 | 13 | /** 14 | * Look up unspent output information. Returns coins in the mempool and in the 15 | * current chain UTXO set. Iterates through all the keys in the map and 16 | * populates the values. 17 | * 18 | * @param[in,out] coins map to fill 19 | */ 20 | void FindCoins(std::map& coins); 21 | 22 | #endif // BITGREEN_NODE_COIN_H 23 | -------------------------------------------------------------------------------- /src/noui.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013-2018 The Bitcoin 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 BITGREEN_NOUI_H 6 | #define BITGREEN_NOUI_H 7 | 8 | #include 9 | 10 | /** Non-GUI handler, which logs and prints messages. */ 11 | bool noui_ThreadSafeMessageBox(const std::string& message, const std::string& caption, unsigned int style); 12 | /** Non-GUI handler, which logs and prints questions. */ 13 | bool noui_ThreadSafeQuestion(const std::string& /* ignored interactive message */, const std::string& message, const std::string& caption, unsigned int style); 14 | /** Non-GUI handler, which only logs a message. */ 15 | void noui_InitMessage(const std::string& message); 16 | 17 | /** Connect all bitgreend signal handlers */ 18 | void noui_connect(); 19 | 20 | #endif // BITGREEN_NOUI_H 21 | -------------------------------------------------------------------------------- /src/obj-test/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /src/obj/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /src/optional.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 The Bitcoin 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 BITGREEN_OPTIONAL_H 6 | #define BITGREEN_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 // BITGREEN_OPTIONAL_H 27 | -------------------------------------------------------------------------------- /src/policy/rbf.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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 BITGREEN_POLICY_RBF_H 6 | #define BITGREEN_POLICY_RBF_H 7 | 8 | #include 9 | 10 | enum class RBFTransactionState { 11 | UNKNOWN, 12 | REPLACEABLE_BIP125, 13 | FINAL 14 | }; 15 | 16 | // Determine whether an in-mempool transaction is signaling opt-in to RBF 17 | // according to BIP 125 18 | // This involves checking sequence numbers of the transaction, as well 19 | // as the sequence numbers of all in-mempool ancestors. 20 | RBFTransactionState IsRBFOptIn(const CTransaction& tx, const CTxMemPool& pool) EXCLUSIVE_LOCKS_REQUIRED(pool.cs); 21 | 22 | #endif // BITGREEN_POLICY_RBF_H 23 | -------------------------------------------------------------------------------- /src/policy/settings.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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/pos/sign.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012-2019 The Peercoin developers 2 | // Copyright (c) 2019 The BitGreen Core developers 3 | // Distributed under the MIT/X11 software license, see the accompanying 4 | // file COPYING or http://www.opensource.org/licenses/mit-license.php. 5 | #ifndef BITGREEN_POS_SIGN_H 6 | #define BITGREEN_POS_SIGN_H 7 | 8 | #include 9 | 10 | class CBlock; 11 | class CKeyStore; 12 | class CWallet; 13 | 14 | class CBlockSigner { 15 | private: 16 | CBlock& block; 17 | std::shared_ptr wallet; 18 | 19 | public: 20 | CBlockSigner(CBlock& blockIn, std::shared_ptr walletIn) : block(blockIn), wallet(walletIn) {} 21 | bool SignBlock(); 22 | bool CheckBlockSignature(); 23 | }; 24 | 25 | #endif // BITGREEN_POS_SIGN_H -------------------------------------------------------------------------------- /src/qt/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: FORCE 2 | all: FORCE 3 | $(MAKE) -C .. bitcoin_qt test_bitcoin_qt 4 | clean: FORCE 5 | $(MAKE) -C .. bitcoin_qt_clean test_bitcoin_qt_clean 6 | check: FORCE 7 | $(MAKE) -C .. test_bitcoin_qt_check 8 | bitcoin-qt bitcoin-qt.exe: FORCE 9 | $(MAKE) -C .. bitcoin_qt 10 | -------------------------------------------------------------------------------- /src/qt/coincontroltreewidget.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2014 The Bitcoin 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 BITGREEN_QT_COINCONTROLTREEWIDGET_H 6 | #define BITGREEN_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); 20 | }; 21 | 22 | #endif // BITGREEN_QT_COINCONTROLTREEWIDGET_H 23 | -------------------------------------------------------------------------------- /src/qt/macdockiconhandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2018 The Bitcoin 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 BITGREEN_QT_MACDOCKICONHANDLER_H 6 | #define BITGREEN_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 // BITGREEN_QT_MACDOCKICONHANDLER_H 28 | -------------------------------------------------------------------------------- /src/qt/macnotificationhandler.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2018 The Bitcoin 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 BITGREEN_QT_MACNOTIFICATIONHANDLER_H 6 | #define BITGREEN_QT_MACNOTIFICATIONHANDLER_H 7 | 8 | #include 9 | 10 | /** Macintosh-specific notification handler (supports UserNotificationCenter). 11 | */ 12 | class MacNotificationHandler : public QObject 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | /** shows a macOS 10.8+ UserNotification in the UserNotificationCenter 18 | */ 19 | void showNotification(const QString &title, const QString &text); 20 | 21 | /** check if OS can handle UserNotifications */ 22 | bool hasUserNotificationCenterSupport(); 23 | static MacNotificationHandler *instance(); 24 | }; 25 | 26 | 27 | #endif // BITGREEN_QT_MACNOTIFICATIONHANDLER_H 28 | -------------------------------------------------------------------------------- /src/qt/macos_appnap.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2018 The Bitcoin 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 BITGREEN_QT_MACOS_APPNAP_H 6 | #define BITGREEN_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 // BITGREEN_QT_MACOS_APPNAP_H 25 | -------------------------------------------------------------------------------- /src/qt/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 | 9 | #include 10 | 11 | #include 12 | #include 13 | 14 | /** Translate string to current locale using Qt. */ 15 | extern const std::function G_TRANSLATION_FUN = [](const char* psz) { 16 | return QCoreApplication::translate("bitgreen-core", psz).toStdString(); 17 | }; 18 | 19 | int main(int argc, char* argv[]) { return GuiMain(argc, argv); } 20 | -------------------------------------------------------------------------------- /src/qt/openuridialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2015 The Bitcoin 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 BITGREEN_QT_OPENURIDIALOG_H 6 | #define BITGREEN_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(); 26 | 27 | private Q_SLOTS: 28 | void on_selectFileButton_clicked(); 29 | 30 | private: 31 | Ui::OpenURIDialog *ui; 32 | }; 33 | 34 | #endif // BITGREEN_QT_OPENURIDIALOG_H 35 | -------------------------------------------------------------------------------- /src/qt/res/icons/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/about.png -------------------------------------------------------------------------------- /src/qt/res/icons/about_qt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/about_qt.png -------------------------------------------------------------------------------- /src/qt/res/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/add.png -------------------------------------------------------------------------------- /src/qt/res/icons/address-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/address-book.png -------------------------------------------------------------------------------- /src/qt/res/icons/bitgreen.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/bitgreen.icns -------------------------------------------------------------------------------- /src/qt/res/icons/bitgreen.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/bitgreen.ico -------------------------------------------------------------------------------- /src/qt/res/icons/bitgreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/bitgreen.png -------------------------------------------------------------------------------- /src/qt/res/icons/bitgreen_testnet.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/bitgreen_testnet.ico -------------------------------------------------------------------------------- /src/qt/res/icons/chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/chevron.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/clock1.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/clock2.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/clock3.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/clock4.png -------------------------------------------------------------------------------- /src/qt/res/icons/clock5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/clock5.png -------------------------------------------------------------------------------- /src/qt/res/icons/configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/configure.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/connect0.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/connect1.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/connect2.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/connect3.png -------------------------------------------------------------------------------- /src/qt/res/icons/connect4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/connect4.png -------------------------------------------------------------------------------- /src/qt/res/icons/debugwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/debugwindow.png -------------------------------------------------------------------------------- /src/qt/res/icons/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/edit.png -------------------------------------------------------------------------------- /src/qt/res/icons/editcopy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/editcopy.png -------------------------------------------------------------------------------- /src/qt/res/icons/editpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/editpaste.png -------------------------------------------------------------------------------- /src/qt/res/icons/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/export.png -------------------------------------------------------------------------------- /src/qt/res/icons/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/eye.png -------------------------------------------------------------------------------- /src/qt/res/icons/eye_minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/eye_minus.png -------------------------------------------------------------------------------- /src/qt/res/icons/eye_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/eye_plus.png -------------------------------------------------------------------------------- /src/qt/res/icons/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/filesave.png -------------------------------------------------------------------------------- /src/qt/res/icons/fontbigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/fontbigger.png -------------------------------------------------------------------------------- /src/qt/res/icons/fontsmaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/fontsmaller.png -------------------------------------------------------------------------------- /src/qt/res/icons/governance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/governance.png -------------------------------------------------------------------------------- /src/qt/res/icons/hd_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/hd_disabled.png -------------------------------------------------------------------------------- /src/qt/res/icons/hd_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/hd_enabled.png -------------------------------------------------------------------------------- /src/qt/res/icons/history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/history.png -------------------------------------------------------------------------------- /src/qt/res/icons/history_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/history_active.png -------------------------------------------------------------------------------- /src/qt/res/icons/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/info.png -------------------------------------------------------------------------------- /src/qt/res/icons/key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/key.png -------------------------------------------------------------------------------- /src/qt/res/icons/lock_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/lock_closed.png -------------------------------------------------------------------------------- /src/qt/res/icons/lock_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/lock_open.png -------------------------------------------------------------------------------- /src/qt/res/icons/masternodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/masternodes.png -------------------------------------------------------------------------------- /src/qt/res/icons/masternodes_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/masternodes_active.png -------------------------------------------------------------------------------- /src/qt/res/icons/network_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/network_disabled.png -------------------------------------------------------------------------------- /src/qt/res/icons/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/open.png -------------------------------------------------------------------------------- /src/qt/res/icons/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/overview.png -------------------------------------------------------------------------------- /src/qt/res/icons/overview_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/overview_active.png -------------------------------------------------------------------------------- /src/qt/res/icons/proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/proxy.png -------------------------------------------------------------------------------- /src/qt/res/icons/quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/quit.png -------------------------------------------------------------------------------- /src/qt/res/icons/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/receive.png -------------------------------------------------------------------------------- /src/qt/res/icons/receive_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/receive_active.png -------------------------------------------------------------------------------- /src/qt/res/icons/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/remove.png -------------------------------------------------------------------------------- /src/qt/res/icons/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/send.png -------------------------------------------------------------------------------- /src/qt/res/icons/send_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/send_active.png -------------------------------------------------------------------------------- /src/qt/res/icons/staking_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/staking_active.png -------------------------------------------------------------------------------- /src/qt/res/icons/staking_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/staking_inactive.png -------------------------------------------------------------------------------- /src/qt/res/icons/synced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/synced.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/transaction0.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/transaction2.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction_abandoned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/transaction_abandoned.png -------------------------------------------------------------------------------- /src/qt/res/icons/transaction_conflicted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/transaction_conflicted.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_inout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/tx_inout.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/tx_input.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_mined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/tx_mined.png -------------------------------------------------------------------------------- /src/qt/res/icons/tx_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/tx_output.png -------------------------------------------------------------------------------- /src/qt/res/icons/verify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/verify.png -------------------------------------------------------------------------------- /src/qt/res/icons/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/icons/warning.png -------------------------------------------------------------------------------- /src/qt/res/images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/about.png -------------------------------------------------------------------------------- /src/qt/res/images/downArrow_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/downArrow_small.png -------------------------------------------------------------------------------- /src/qt/res/images/downArrow_small_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/downArrow_small_dark.png -------------------------------------------------------------------------------- /src/qt/res/images/leftArrow_small_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/leftArrow_small_dark.png -------------------------------------------------------------------------------- /src/qt/res/images/rightArrow_small_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/rightArrow_small_dark.png -------------------------------------------------------------------------------- /src/qt/res/images/upArrow_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/upArrow_small.png -------------------------------------------------------------------------------- /src/qt/res/images/upArrow_small_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/upArrow_small_dark.png -------------------------------------------------------------------------------- /src/qt/res/images/walletFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/images/walletFrame.png -------------------------------------------------------------------------------- /src/qt/res/movies/makespinner.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2014-2015 The Bitcoin 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/movies/spinner-000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-000.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-001.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-002.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-003.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-004.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-005.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-006.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-007.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-008.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-009.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-010.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-011.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-012.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-013.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-014.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-015.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-016.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-017.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-018.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-019.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-020.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-021.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-022.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-022.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-023.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-024.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-025.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-026.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-027.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-028.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-029.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-030.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-031.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-032.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-032.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-033.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-034.png -------------------------------------------------------------------------------- /src/qt/res/movies/spinner-035.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/movies/spinner-035.png -------------------------------------------------------------------------------- /src/qt/res/src/spinner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/qt/res/src/spinner.png -------------------------------------------------------------------------------- /src/qt/res/src/tx_in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /src/qt/test/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | $(MAKE) -C ../../ test_bitcoin_qt 3 | clean: 4 | $(MAKE) -C ../../ test_bitcoin_qt_clean 5 | check: 6 | $(MAKE) -C ../../ test_bitcoin_qt_check 7 | -------------------------------------------------------------------------------- /src/qt/test/addressbooktests.h: -------------------------------------------------------------------------------- 1 | #ifndef BITGREEN_QT_TEST_ADDRESSBOOKTESTS_H 2 | #define BITGREEN_QT_TEST_ADDRESSBOOKTESTS_H 3 | 4 | #include 5 | #include 6 | 7 | class AddressBookTests : public QObject 8 | { 9 | Q_OBJECT 10 | 11 | private Q_SLOTS: 12 | void addressBookTests(); 13 | }; 14 | 15 | #endif // BITGREEN_QT_TEST_ADDRESSBOOKTESTS_H 16 | -------------------------------------------------------------------------------- /src/qt/test/compattests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2016 The Bitcoin 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 BITGREEN_QT_TEST_COMPATTESTS_H 6 | #define BITGREEN_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 // BITGREEN_QT_TEST_COMPATTESTS_H 20 | -------------------------------------------------------------------------------- /src/qt/test/rpcnestedtests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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 BITGREEN_QT_TEST_RPCNESTEDTESTS_H 6 | #define BITGREEN_QT_TEST_RPCNESTEDTESTS_H 7 | 8 | #include 9 | #include 10 | 11 | class RPCNestedTests : public QObject 12 | { 13 | Q_OBJECT 14 | 15 | private Q_SLOTS: 16 | void rpcNestedTests(); 17 | }; 18 | 19 | #endif // BITGREEN_QT_TEST_RPCNESTEDTESTS_H 20 | -------------------------------------------------------------------------------- /src/qt/test/uritests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2015 The Bitcoin 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 BITGREEN_QT_TEST_URITESTS_H 6 | #define BITGREEN_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 // BITGREEN_QT_TEST_URITESTS_H 20 | -------------------------------------------------------------------------------- /src/qt/test/util.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | void ConfirmMessage(QString* text, int msec) 9 | { 10 | QTimer::singleShot(msec, [text]() { 11 | for (QWidget* widget : QApplication::topLevelWidgets()) { 12 | if (widget->inherits("QMessageBox")) { 13 | QMessageBox* messageBox = qobject_cast(widget); 14 | if (text) *text = messageBox->text(); 15 | messageBox->defaultButton()->click(); 16 | } 17 | } 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /src/qt/test/util.h: -------------------------------------------------------------------------------- 1 | #ifndef BITGREEN_QT_TEST_UTIL_H 2 | #define BITGREEN_QT_TEST_UTIL_H 3 | 4 | #include 5 | 6 | /** 7 | * Press "Ok" button in message box dialog. 8 | * 9 | * @param text - Optionally store dialog text. 10 | * @param msec - Number of milliseconds to pause before triggering the callback. 11 | */ 12 | void ConfirmMessage(QString* text = nullptr, int msec = 0); 13 | 14 | #endif // BITGREEN_QT_TEST_UTIL_H 15 | -------------------------------------------------------------------------------- /src/qt/test/wallettests.h: -------------------------------------------------------------------------------- 1 | #ifndef BITGREEN_QT_TEST_WALLETTESTS_H 2 | #define BITGREEN_QT_TEST_WALLETTESTS_H 3 | 4 | #include 5 | #include 6 | 7 | class WalletTests : public QObject 8 | { 9 | Q_OBJECT 10 | 11 | private Q_SLOTS: 12 | void walletTests(); 13 | }; 14 | 15 | #endif // BITGREEN_QT_TEST_WALLETTESTS_H 16 | -------------------------------------------------------------------------------- /src/qt/transactiondescdialog.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2014 The Bitcoin Core developers 2 | // Copyright (c) 2018-2019 The BitGreen 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 BITGREEN_QT_TRANSACTIONDESCDIALOG_H 7 | #define BITGREEN_QT_TRANSACTIONDESCDIALOG_H 8 | 9 | #include 10 | 11 | namespace Ui { 12 | class TransactionDescDialog; 13 | } 14 | 15 | QT_BEGIN_NAMESPACE 16 | class QModelIndex; 17 | QT_END_NAMESPACE 18 | 19 | /** Dialog showing transaction details. */ 20 | class TransactionDescDialog : public QDialog 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit TransactionDescDialog(const QModelIndex &idx, QWidget *parent = nullptr); 26 | ~TransactionDescDialog(); 27 | 28 | private: 29 | Ui::TransactionDescDialog *ui; 30 | }; 31 | 32 | #endif // BITGREEN_QT_TRANSACTIONDESCDIALOG_H 33 | -------------------------------------------------------------------------------- /src/reverse_iterator.h: -------------------------------------------------------------------------------- 1 | // Taken from https://gist.github.com/arvidsson/7231973 2 | 3 | #ifndef BITGREEN_REVERSE_ITERATOR_H 4 | #define BITGREEN_REVERSE_ITERATOR_H 5 | 6 | /** 7 | * Template used for reverse iteration in C++11 range-based for loops. 8 | * 9 | * std::vector v = {1, 2, 3, 4, 5}; 10 | * for (auto x : reverse_iterate(v)) 11 | * std::cout << x << " "; 12 | */ 13 | 14 | template 15 | class reverse_range 16 | { 17 | T &m_x; 18 | 19 | public: 20 | explicit reverse_range(T &x) : m_x(x) {} 21 | 22 | auto begin() const -> decltype(this->m_x.rbegin()) 23 | { 24 | return m_x.rbegin(); 25 | } 26 | 27 | auto end() const -> decltype(this->m_x.rend()) 28 | { 29 | return m_x.rend(); 30 | } 31 | }; 32 | 33 | template 34 | reverse_range reverse_iterate(T &x) 35 | { 36 | return reverse_range(x); 37 | } 38 | 39 | #endif // BITGREEN_REVERSE_ITERATOR_H 40 | -------------------------------------------------------------------------------- /src/reverselock.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2016 The Bitcoin 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 BITGREEN_REVERSELOCK_H 6 | #define BITGREEN_REVERSELOCK_H 7 | 8 | /** 9 | * An RAII-style reverse lock. Unlocks on construction and locks on destruction. 10 | */ 11 | template 12 | class reverse_lock 13 | { 14 | public: 15 | 16 | explicit reverse_lock(Lock& _lock) : lock(_lock) { 17 | _lock.unlock(); 18 | _lock.swap(templock); 19 | } 20 | 21 | ~reverse_lock() { 22 | templock.lock(); 23 | templock.swap(lock); 24 | } 25 | 26 | private: 27 | reverse_lock(reverse_lock const&); 28 | reverse_lock& operator=(reverse_lock const&); 29 | 30 | Lock& lock; 31 | Lock templock; 32 | }; 33 | 34 | #endif // BITGREEN_REVERSELOCK_H 35 | -------------------------------------------------------------------------------- /src/saltedhasher.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The Dash 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 "saltedhasher.h" 6 | #include "random.h" 7 | 8 | #include 9 | 10 | SaltedHasherBase::SaltedHasherBase() : k0(GetRand(std::numeric_limits::max())), k1(GetRand(std::numeric_limits::max())) {} 11 | 12 | SaltedHasherBase StaticSaltedHasher::s; 13 | -------------------------------------------------------------------------------- /src/secp256k1/TODO: -------------------------------------------------------------------------------- 1 | * Unit tests for fieldelem/groupelem, including ones intended to 2 | trigger fieldelem's boundary cases. 3 | * Complete constant-time operations for signing/keygen 4 | -------------------------------------------------------------------------------- /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/bitcoin-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/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/secp256k1/obj/.gitignore -------------------------------------------------------------------------------- /src/secp256k1/src/ecmult_const.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_ECMULT_CONST_H 8 | #define SECP256K1_ECMULT_CONST_H 9 | 10 | #include "scalar.h" 11 | #include "group.h" 12 | 13 | /* Here `bits` should be set to the maximum bitlength of the _absolute value_ of `q`, plus 14 | * one because we internally sometimes add 2 to the number during the WNAF conversion. */ 15 | static void secp256k1_ecmult_const(secp256k1_gej *r, const secp256k1_ge *a, const secp256k1_scalar *q, int bits); 16 | 17 | #endif /* SECP256K1_ECMULT_CONST_H */ 18 | -------------------------------------------------------------------------------- /src/secp256k1/src/java/org_bitcoin_Secp256k1Context.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "org_bitcoin_Secp256k1Context.h" 4 | #include "include/secp256k1.h" 5 | 6 | SECP256K1_API jlong JNICALL Java_org_bitcoin_Secp256k1Context_secp256k1_1init_1context 7 | (JNIEnv* env, jclass classObject) 8 | { 9 | secp256k1_context *ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); 10 | 11 | (void)classObject;(void)env; 12 | 13 | return (uintptr_t)ctx; 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/secp256k1/src/java/org_bitcoin_Secp256k1Context.h: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | #include "include/secp256k1.h" 4 | /* Header for class org_bitcoin_Secp256k1Context */ 5 | 6 | #ifndef _Included_org_bitcoin_Secp256k1Context 7 | #define _Included_org_bitcoin_Secp256k1Context 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | /* 12 | * Class: org_bitcoin_Secp256k1Context 13 | * Method: secp256k1_init_context 14 | * Signature: ()J 15 | */ 16 | SECP256K1_API jlong JNICALL Java_org_bitcoin_Secp256k1Context_secp256k1_1init_1context 17 | (JNIEnv *, jclass); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | #endif 23 | -------------------------------------------------------------------------------- /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/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 | if USE_BENCHMARK 5 | noinst_PROGRAMS += bench_recover 6 | bench_recover_SOURCES = src/bench_recover.c 7 | bench_recover_LDADD = libsecp256k1.la $(SECP_LIBS) $(COMMON_LIB) 8 | endif 9 | -------------------------------------------------------------------------------- /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 | #endif /* SECP256K1_SCALAR_REPR_H */ 16 | -------------------------------------------------------------------------------- /src/shutdown.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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 Bitcoin 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 BITGREEN_SHUTDOWN_H 7 | #define BITGREEN_SHUTDOWN_H 8 | 9 | void StartShutdown(); 10 | void AbortShutdown(); 11 | bool ShutdownRequested(); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /src/special/util.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Dash Core developers 2 | // Copyright (c) 2019 The BitGreen 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 BITGREEN_SPECIAL_UTIL 7 | #define BITGREEN_SPECIAL_UTIL 8 | 9 | #include 10 | #include 11 | 12 | bool GetUTXOCoin(const COutPoint& outpoint, Coin& coin); 13 | int GetUTXOHeight(const COutPoint& outpoint); 14 | int GetUTXOConfirmations(const COutPoint& outpoint); 15 | 16 | #endif // BITGREEN_SPECIAL_UTIL 17 | -------------------------------------------------------------------------------- /src/support/cleanse.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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 BITGREEN_SUPPORT_CLEANSE_H 7 | #define BITGREEN_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 // BITGREEN_SUPPORT_CLEANSE_H 16 | -------------------------------------------------------------------------------- /src/test/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | $(MAKE) -C .. bitcoin_test 3 | clean: 4 | $(MAKE) -C .. bitcoin_test_clean 5 | check: 6 | $(MAKE) -C .. bitcoin_test_check 7 | -------------------------------------------------------------------------------- /src/test/bswap_tests.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2019 The Bitcoin 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 bitcoin/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 Bitcoin. 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/fuzz/fuzz.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2019 The Bitcoin 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 BITGREEN_TEST_FUZZ_FUZZ_H 6 | #define BITGREEN_TEST_FUZZ_FUZZ_H 7 | 8 | #include 9 | #include 10 | 11 | 12 | void test_one_input(std::vector buffer); 13 | 14 | #endif // BITGREEN_TEST_FUZZ_FUZZ_H 15 | -------------------------------------------------------------------------------- /src/test/gen/crypto_gen.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 | #include 5 | 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | /** Generates 1 to 20 keys for OP_CHECKMULTISIG */ 14 | rc::Gen> MultisigKeys() 15 | { 16 | return rc::gen::suchThat(rc::gen::arbitrary>(), [](const std::vector& keys) { 17 | return keys.size() >= 1 && keys.size() <= 15; 18 | }); 19 | }; 20 | -------------------------------------------------------------------------------- /src/test/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011-2019 The Bitcoin 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 BOOST_TEST_MODULE BitGreen Core Test Suite 6 | 7 | #include 8 | -------------------------------------------------------------------------------- /src/test/sanity_tests.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012-2019 The Bitcoin 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 | 9 | #include 10 | 11 | BOOST_FIXTURE_TEST_SUITE(sanity_tests, BasicTestingSetup) 12 | 13 | BOOST_AUTO_TEST_CASE(basic_sanity) 14 | { 15 | BOOST_CHECK_MESSAGE(glibc_sanity_test() == true, "libc sanity test"); 16 | BOOST_CHECK_MESSAGE(glibcxx_sanity_test() == true, "stdlib sanity test"); 17 | BOOST_CHECK_MESSAGE(ECC_InitSanityCheck() == true, "openssl ECC test"); 18 | } 19 | 20 | BOOST_AUTO_TEST_SUITE_END() 21 | -------------------------------------------------------------------------------- /src/torcontrol.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2018 The Bitcoin 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 | /** 6 | * Functionality for communicating with Tor. 7 | */ 8 | #ifndef BITGREEN_TORCONTROL_H 9 | #define BITGREEN_TORCONTROL_H 10 | 11 | #include 12 | 13 | extern const std::string DEFAULT_TOR_CONTROL; 14 | static const bool DEFAULT_LISTEN_ONION = true; 15 | 16 | void StartTorControl(); 17 | void InterruptTorControl(); 18 | void StopTorControl(); 19 | 20 | #endif /* BITGREEN_TORCONTROL_H */ 21 | -------------------------------------------------------------------------------- /src/univalue/.gitignore: -------------------------------------------------------------------------------- 1 | .deps/ 2 | INSTALL 3 | Makefile 4 | Makefile.in 5 | aclocal.m4 6 | autom4te.cache/ 7 | compile 8 | config.log 9 | config.status 10 | config.guess 11 | config.sub 12 | configure 13 | depcomp 14 | install-sh 15 | missing 16 | stamp-h1 17 | univalue-config.h* 18 | test-driver 19 | libtool 20 | ltmain.sh 21 | test-suite.log 22 | 23 | *.a 24 | *.la 25 | *.lo 26 | *.logs 27 | *.o 28 | *.pc 29 | *.trs 30 | 31 | .dirstamp 32 | .libs 33 | -------------------------------------------------------------------------------- /src/univalue/README.md: -------------------------------------------------------------------------------- 1 | 2 | # UniValue 3 | 4 | ## Summary 5 | 6 | A universal value class, with JSON encoding and decoding. 7 | 8 | UniValue is an abstract data type that may be a null, boolean, string, 9 | number, array container, or a key/value dictionary container, nested to 10 | an arbitrary depth. 11 | 12 | This class is aligned with the JSON standard, [RFC 13 | 7159](https://tools.ietf.org/html/rfc7159.html). 14 | 15 | ## Installation 16 | 17 | This project is a standard GNU 18 | [autotools](https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html) 19 | project. Build and install instructions are available in the `INSTALL` 20 | file provided with GNU autotools. 21 | 22 | ``` 23 | $ ./autogen.sh 24 | $ ./configure 25 | $ make 26 | ``` 27 | 28 | ## Design 29 | 30 | UniValue provides a single dynamic RAII C++ object class, 31 | and minimizes template use (contra json_spirit). 32 | 33 | -------------------------------------------------------------------------------- /src/univalue/TODO: -------------------------------------------------------------------------------- 1 | 2 | Rearrange tree for easier 'git subtree' style use 3 | 4 | Move towards C++11 etc. 5 | 6 | Namespace support - must come up with useful shorthand, avoiding 7 | long Univalue::Univalue::Univalue usages forced upon library users. 8 | 9 | Improve test suite 10 | 11 | -------------------------------------------------------------------------------- /src/univalue/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | srcdir="$(dirname $0)" 4 | cd "$srcdir" 5 | if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="`which glibtoolize 2>/dev/null`"; then 6 | LIBTOOLIZE="${GLIBTOOLIZE}" 7 | export LIBTOOLIZE 8 | fi 9 | autoreconf --install --force 10 | -------------------------------------------------------------------------------- /src/univalue/build-aux/m4/.gitignore: -------------------------------------------------------------------------------- 1 | /*.m4 2 | -------------------------------------------------------------------------------- /src/univalue/lib/.gitignore: -------------------------------------------------------------------------------- 1 | gen 2 | .libs 3 | -------------------------------------------------------------------------------- /src/univalue/pc/libunivalue-uninstalled.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libunivalue 7 | Description: libunivalue, C++ universal value object and JSON library 8 | Version: @VERSION@ 9 | Libs: ${pc_top_builddir}/${pcfiledir}/libunivalue.la 10 | -------------------------------------------------------------------------------- /src/univalue/pc/libunivalue.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libunivalue 7 | Description: libunivalue, C++ universal value object and JSON library 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lunivalue 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /src/univalue/test/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | object 3 | unitester 4 | test_json 5 | no_nul 6 | 7 | *.trs 8 | *.log 9 | -------------------------------------------------------------------------------- /src/univalue/test/fail1.json: -------------------------------------------------------------------------------- 1 | "This is a string that never ends, yes it goes on and on, my friends. 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail10.json: -------------------------------------------------------------------------------- 1 | {"Extra value after close": true} "misplaced quoted value" -------------------------------------------------------------------------------- /src/univalue/test/fail11.json: -------------------------------------------------------------------------------- 1 | {"Illegal expression": 1 + 2} -------------------------------------------------------------------------------- /src/univalue/test/fail12.json: -------------------------------------------------------------------------------- 1 | {"Illegal invocation": alert()} -------------------------------------------------------------------------------- /src/univalue/test/fail13.json: -------------------------------------------------------------------------------- 1 | {"Numbers cannot have leading zeroes": 013} -------------------------------------------------------------------------------- /src/univalue/test/fail14.json: -------------------------------------------------------------------------------- 1 | {"Numbers cannot be hex": 0x14} -------------------------------------------------------------------------------- /src/univalue/test/fail15.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \x15"] -------------------------------------------------------------------------------- /src/univalue/test/fail16.json: -------------------------------------------------------------------------------- 1 | [\naked] -------------------------------------------------------------------------------- /src/univalue/test/fail17.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \017"] -------------------------------------------------------------------------------- /src/univalue/test/fail18.json: -------------------------------------------------------------------------------- 1 | [[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]] -------------------------------------------------------------------------------- /src/univalue/test/fail19.json: -------------------------------------------------------------------------------- 1 | {"Missing colon" null} -------------------------------------------------------------------------------- /src/univalue/test/fail2.json: -------------------------------------------------------------------------------- 1 | ["Unclosed array" -------------------------------------------------------------------------------- /src/univalue/test/fail20.json: -------------------------------------------------------------------------------- 1 | {"Double colon":: null} -------------------------------------------------------------------------------- /src/univalue/test/fail21.json: -------------------------------------------------------------------------------- 1 | {"Comma instead of colon", null} -------------------------------------------------------------------------------- /src/univalue/test/fail22.json: -------------------------------------------------------------------------------- 1 | ["Colon instead of comma": false] -------------------------------------------------------------------------------- /src/univalue/test/fail23.json: -------------------------------------------------------------------------------- 1 | ["Bad value", truth] -------------------------------------------------------------------------------- /src/univalue/test/fail24.json: -------------------------------------------------------------------------------- 1 | ['single quote'] -------------------------------------------------------------------------------- /src/univalue/test/fail25.json: -------------------------------------------------------------------------------- 1 | [" tab character in string "] -------------------------------------------------------------------------------- /src/univalue/test/fail26.json: -------------------------------------------------------------------------------- 1 | ["tab\ character\ in\ string\ "] -------------------------------------------------------------------------------- /src/univalue/test/fail27.json: -------------------------------------------------------------------------------- 1 | ["line 2 | break"] -------------------------------------------------------------------------------- /src/univalue/test/fail28.json: -------------------------------------------------------------------------------- 1 | ["line\ 2 | break"] -------------------------------------------------------------------------------- /src/univalue/test/fail29.json: -------------------------------------------------------------------------------- 1 | [0e] -------------------------------------------------------------------------------- /src/univalue/test/fail3.json: -------------------------------------------------------------------------------- 1 | {unquoted_key: "keys must be quoted"} -------------------------------------------------------------------------------- /src/univalue/test/fail30.json: -------------------------------------------------------------------------------- 1 | [0e+] -------------------------------------------------------------------------------- /src/univalue/test/fail31.json: -------------------------------------------------------------------------------- 1 | [0e+-1] -------------------------------------------------------------------------------- /src/univalue/test/fail32.json: -------------------------------------------------------------------------------- 1 | {"Comma instead if closing brace": true, -------------------------------------------------------------------------------- /src/univalue/test/fail33.json: -------------------------------------------------------------------------------- 1 | ["mismatch"} -------------------------------------------------------------------------------- /src/univalue/test/fail34.json: -------------------------------------------------------------------------------- 1 | {} garbage -------------------------------------------------------------------------------- /src/univalue/test/fail35.json: -------------------------------------------------------------------------------- 1 | [ true true true [] [] [] ] 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail36.json: -------------------------------------------------------------------------------- 1 | {"a":} 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail37.json: -------------------------------------------------------------------------------- 1 | {"a":1 "b":2} 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail38.json: -------------------------------------------------------------------------------- 1 | ["\ud834"] 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail39.json: -------------------------------------------------------------------------------- 1 | ["\udd61"] 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail4.json: -------------------------------------------------------------------------------- 1 | ["extra comma",] -------------------------------------------------------------------------------- /src/univalue/test/fail40.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/univalue/test/fail40.json -------------------------------------------------------------------------------- /src/univalue/test/fail41.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/src/univalue/test/fail41.json -------------------------------------------------------------------------------- /src/univalue/test/fail42.json: -------------------------------------------------------------------------------- 1 | ["before nul byte"]"after nul byte" 2 | -------------------------------------------------------------------------------- /src/univalue/test/fail44.json: -------------------------------------------------------------------------------- 1 | "This file ends without a newline or close-quote. -------------------------------------------------------------------------------- /src/univalue/test/fail5.json: -------------------------------------------------------------------------------- 1 | ["double extra comma",,] -------------------------------------------------------------------------------- /src/univalue/test/fail6.json: -------------------------------------------------------------------------------- 1 | [ , "<-- missing value"] -------------------------------------------------------------------------------- /src/univalue/test/fail7.json: -------------------------------------------------------------------------------- 1 | ["Comma after the close"], -------------------------------------------------------------------------------- /src/univalue/test/fail8.json: -------------------------------------------------------------------------------- 1 | ["Extra close"]] -------------------------------------------------------------------------------- /src/univalue/test/fail9.json: -------------------------------------------------------------------------------- 1 | {"Extra comma": true,} -------------------------------------------------------------------------------- /src/univalue/test/no_nul.cpp: -------------------------------------------------------------------------------- 1 | #include "univalue.h" 2 | 3 | int main (int argc, char *argv[]) 4 | { 5 | char buf[] = "___[1,2,3]___"; 6 | UniValue val; 7 | return val.read(buf + 3, 7) ? 0 : 1; 8 | } 9 | -------------------------------------------------------------------------------- /src/univalue/test/pass2.json: -------------------------------------------------------------------------------- 1 | [[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] -------------------------------------------------------------------------------- /src/univalue/test/pass3.json: -------------------------------------------------------------------------------- 1 | { 2 | "JSON Test Pattern pass3": { 3 | "The outermost value": "must be an object or array.", 4 | "In this test": "It is an object." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/univalue/test/round1.json: -------------------------------------------------------------------------------- 1 | ["\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f"] 2 | -------------------------------------------------------------------------------- /src/univalue/test/round2.json: -------------------------------------------------------------------------------- 1 | ["a§■𐎒𝅘𝅥𝅯"] 2 | -------------------------------------------------------------------------------- /src/univalue/test/round3.json: -------------------------------------------------------------------------------- 1 | "abcdefghijklmnopqrstuvwxyz" 2 | -------------------------------------------------------------------------------- /src/univalue/test/round4.json: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /src/univalue/test/round5.json: -------------------------------------------------------------------------------- 1 | true 2 | -------------------------------------------------------------------------------- /src/univalue/test/round6.json: -------------------------------------------------------------------------------- 1 | false 2 | -------------------------------------------------------------------------------- /src/univalue/test/round7.json: -------------------------------------------------------------------------------- 1 | null 2 | -------------------------------------------------------------------------------- /src/univalue/test/test_json.cpp: -------------------------------------------------------------------------------- 1 | // Test program that can be called by the JSON test suite at 2 | // https://github.com/nst/JSONTestSuite. 3 | // 4 | // It reads JSON input from stdin and exits with code 0 if it can be parsed 5 | // successfully. It also pretty prints the parsed JSON value to stdout. 6 | 7 | #include 8 | #include 9 | #include "univalue.h" 10 | 11 | using namespace std; 12 | 13 | int main (int argc, char *argv[]) 14 | { 15 | UniValue val; 16 | if (val.read(string(istreambuf_iterator(cin), 17 | istreambuf_iterator()))) { 18 | cout << val.write(1 /* prettyIndent */, 4 /* indentLevel */) << endl; 19 | return 0; 20 | } else { 21 | cerr << "JSON Parse Error." << endl; 22 | return 1; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/util/bip32.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The Bitcoin 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 BITGREEN_UTIL_BIP32_H 6 | #define BITGREEN_UTIL_BIP32_H 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | /** Parse an HD keypaths like "m/7/0'/2000". */ 13 | NODISCARD bool ParseHDKeypath(const std::string& keypath_str, std::vector& keypath); 14 | 15 | /** Write HD keypaths as strings */ 16 | std::string WriteHDKeypath(const std::vector& keypath); 17 | std::string FormatHDKeypath(const std::vector& path); 18 | 19 | #endif // BITGREEN_UTIL_BIP32_H 20 | -------------------------------------------------------------------------------- /src/util/bytevectorhash.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 | 9 | ByteVectorHash::ByteVectorHash() 10 | { 11 | GetRandBytes(reinterpret_cast(&m_k0), sizeof(m_k0)); 12 | GetRandBytes(reinterpret_cast(&m_k1), sizeof(m_k1)); 13 | } 14 | 15 | size_t ByteVectorHash::operator()(const std::vector& input) const 16 | { 17 | return CSipHasher(m_k0, m_k1).Write(input.data(), input.size()).Finalize(); 18 | } 19 | -------------------------------------------------------------------------------- /src/util/bytevectorhash.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 BITGREEN_UTIL_BYTEVECTORHASH_H 6 | #define BITGREEN_UTIL_BYTEVECTORHASH_H 7 | 8 | #include 9 | #include 10 | 11 | /** 12 | * Implementation of Hash named requirement for types that internally store a byte array. This may 13 | * be used as the hash function in std::unordered_set or std::unordered_map over such types. 14 | * Internally, this uses a random instance of SipHash-2-4. 15 | */ 16 | class ByteVectorHash final 17 | { 18 | private: 19 | uint64_t m_k0, m_k1; 20 | 21 | public: 22 | ByteVectorHash(); 23 | size_t operator()(const std::vector& input) const; 24 | }; 25 | 26 | #endif // BITGREEN_UTIL_BYTEVECTORHASH_H 27 | -------------------------------------------------------------------------------- /src/util/fees.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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 | #ifndef BITGREEN_UTIL_FEES_H 6 | #define BITGREEN_UTIL_FEES_H 7 | 8 | #include 9 | 10 | enum class FeeEstimateMode; 11 | enum class FeeReason; 12 | 13 | bool FeeModeFromString(const std::string& mode_string, FeeEstimateMode& fee_estimate_mode); 14 | std::string StringForFeeReason(FeeReason reason); 15 | 16 | #endif // BITGREEN_UTIL_FEES_H 17 | -------------------------------------------------------------------------------- /src/util/init.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | /** client act as a masternode */ 5 | bool fMasternodeMode = false; 6 | 7 | /** client disables additional BitGreen features */ 8 | bool fLiteMode = false; 9 | -------------------------------------------------------------------------------- /src/util/init.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 The BitGreen 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 BITGREEN_UTIL_INIT_H 6 | #define BITGREEN_UTIL_INIT_H 7 | 8 | /** client act as a masternode */ 9 | extern bool fMasternodeMode; 10 | 11 | /** client disables additional BitGreen features */ 12 | extern bool fLiteMode; 13 | 14 | #endif // BITGREEN_UTIL_INIT_H 15 | -------------------------------------------------------------------------------- /src/util/memory.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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 BITGREEN_UTIL_MEMORY_H 7 | #define BITGREEN_UTIL_MEMORY_H 8 | 9 | #include 10 | #include 11 | 12 | //! Substitute for C++14 std::make_unique. 13 | template 14 | std::unique_ptr MakeUnique(Args&&... args) 15 | { 16 | return std::unique_ptr(new T(std::forward(args)...)); 17 | } 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /src/util/moneystr.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2018 The Bitcoin 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 | /** 7 | * Money parsing/formatting utilities. 8 | */ 9 | #ifndef BITGREEN_UTIL_MONEYSTR_H 10 | #define BITGREEN_UTIL_MONEYSTR_H 11 | 12 | #include 13 | #include 14 | 15 | #include 16 | #include 17 | 18 | /* Do not use these functions to represent or parse monetary amounts to or from 19 | * JSON but use AmountFromValue and ValueFromAmount for that. 20 | */ 21 | std::string FormatMoney(const CAmount& n); 22 | NODISCARD bool ParseMoney(const std::string& str, CAmount& nRet); 23 | NODISCARD bool ParseMoney(const char* pszIn, CAmount& nRet); 24 | 25 | #endif // BITGREEN_UTIL_MONEYSTR_H 26 | -------------------------------------------------------------------------------- /src/util/rbf.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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 | 9 | bool SignalsOptInRBF(const CTransaction &tx) 10 | { 11 | for (const CTxIn &txin : tx.vin) { 12 | if (txin.nSequence <= MAX_BIP125_RBF_SEQUENCE) { 13 | return true; 14 | } 15 | } 16 | return false; 17 | } 18 | -------------------------------------------------------------------------------- /src/util/rbf.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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 BITGREEN_UTIL_RBF_H 6 | #define BITGREEN_UTIL_RBF_H 7 | 8 | #include 9 | 10 | class CTransaction; 11 | 12 | static const uint32_t MAX_BIP125_RBF_SEQUENCE = 0xfffffffd; 13 | 14 | // Check whether the sequence numbers on this transaction are signaling 15 | // opt-in to replace-by-fee, according to BIP 125 16 | bool SignalsOptInRBF(const CTransaction &tx); 17 | 18 | #endif // BITGREEN_UTIL_RBF_H 19 | -------------------------------------------------------------------------------- /src/util/threadnames.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 BITGREEN_UTIL_THREADNAMES_H 6 | #define BITGREEN_UTIL_THREADNAMES_H 7 | 8 | #include 9 | 10 | namespace util { 11 | //! Rename a thread both in terms of an internal (in-memory) name as well 12 | //! as its system thread name. 13 | void ThreadRename(std::string&&); 14 | 15 | //! Get the thread's internal (in-memory) name; used e.g. for identification in 16 | //! logging. 17 | const std::string& ThreadGetInternalName(); 18 | 19 | } // namespace util 20 | 21 | namespace ctpl { 22 | class thread_pool; 23 | } 24 | void RenameThreadPool(ctpl::thread_pool& tp, const char* baseName); 25 | 26 | #endif // BITGREEN_UTIL_THREADNAMES_H 27 | -------------------------------------------------------------------------------- /src/util/url.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2018 The Bitcoin 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 | std::string urlDecode(const std::string &urlEncoded) { 12 | std::string res; 13 | if (!urlEncoded.empty()) { 14 | char *decoded = evhttp_uridecode(urlEncoded.c_str(), false, nullptr); 15 | if (decoded) { 16 | res = std::string(decoded); 17 | free(decoded); 18 | } 19 | } 20 | return res; 21 | } 22 | -------------------------------------------------------------------------------- /src/util/url.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2018 The Bitcoin 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 BITGREEN_UTIL_URL_H 6 | #define BITGREEN_UTIL_URL_H 7 | 8 | #include 9 | 10 | std::string urlDecode(const std::string &urlEncoded); 11 | 12 | #endif // BITGREEN_UTIL_URL_H 13 | -------------------------------------------------------------------------------- /src/util/validation.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2019 The Bitcoin 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 | /** Convert CValidationState to a human-readable message for logging */ 12 | std::string FormatStateMessage(const CValidationState &state) 13 | { 14 | return strprintf("%s%s (code %i)", 15 | state.GetRejectReason(), 16 | state.GetDebugMessage().empty() ? "" : ", "+state.GetDebugMessage(), 17 | state.GetRejectCode()); 18 | } 19 | 20 | const std::string strMessageMagic = "BitGreen Signed Message:\n"; 21 | -------------------------------------------------------------------------------- /src/util/validation.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2009-2010 Satoshi Nakamoto 2 | // Copyright (c) 2009-2019 The Bitcoin 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 BITGREEN_UTIL_VALIDATION_H 7 | #define BITGREEN_UTIL_VALIDATION_H 8 | 9 | #include 10 | 11 | class CValidationState; 12 | 13 | /** Convert CValidationState to a human-readable message for logging */ 14 | std::string FormatStateMessage(const CValidationState &state); 15 | 16 | extern const std::string strMessageMagic; 17 | 18 | #endif // BITGREEN_UTIL_VALIDATION_H 19 | -------------------------------------------------------------------------------- /src/versionbitsinfo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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 | 9 | const struct VBDeploymentInfo VersionBitsDeploymentInfo[Consensus::MAX_VERSION_BITS_DEPLOYMENTS] = { 10 | { 11 | /*.name =*/ "testdummy", 12 | /*.gbt_force =*/ true, 13 | }, 14 | { 15 | /*.name =*/ "csv", 16 | /*.gbt_force =*/ true, 17 | }, 18 | { 19 | /*.name =*/ "segwit", 20 | /*.gbt_force =*/ true, 21 | } 22 | }; 23 | -------------------------------------------------------------------------------- /src/versionbitsinfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2018 The Bitcoin 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 BITGREEN_VERSIONBITSINFO_H 6 | #define BITGREEN_VERSIONBITSINFO_H 7 | 8 | struct VBDeploymentInfo { 9 | /** Deployment name */ 10 | const char *name; 11 | /** Whether GBT clients can safely ignore this rule in simplified usage */ 12 | bool gbt_force; 13 | }; 14 | 15 | extern const struct VBDeploymentInfo VersionBitsDeploymentInfo[]; 16 | 17 | #endif // BITGREEN_VERSIONBITSINFO_H 18 | -------------------------------------------------------------------------------- /src/wallet/coincontrol.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 | 9 | void CCoinControl::SetNull() 10 | { 11 | destChange = CNoDestination(); 12 | m_change_type.reset(); 13 | fAllowOtherInputs = false; 14 | fAllowWatchOnly = false; 15 | m_avoid_partial_spends = gArgs.GetBoolArg("-avoidpartialspends", DEFAULT_AVOIDPARTIALSPENDS); 16 | m_avoid_address_reuse = false; 17 | setSelected.clear(); 18 | m_feerate.reset(); 19 | fOverrideFeeRate = false; 20 | m_confirm_target.reset(); 21 | m_signal_bip125_rbf.reset(); 22 | m_fee_mode = FeeEstimateMode::UNSET; 23 | fSplitUTXO = false; 24 | nSplitUTXO = 1; 25 | } 26 | 27 | -------------------------------------------------------------------------------- /src/wallet/test/wallet_test_fixture.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016-2019 The Bitcoin 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 | WalletTestingSetup::WalletTestingSetup(const std::string& chainName) 8 | : TestingSetup(chainName), 9 | m_wallet(m_chain.get(), WalletLocation(), WalletDatabase::CreateMock()) 10 | { 11 | bool fFirstRun; 12 | m_wallet.LoadWallet(fFirstRun); 13 | m_wallet.handleNotifications(); 14 | 15 | m_chain_client->registerRpcs(); 16 | } 17 | -------------------------------------------------------------------------------- /src/wallet/wallettool.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016 The Bitcoin 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 BITGREEN_WALLET_WALLETTOOL_H 6 | #define BITGREEN_WALLET_WALLETTOOL_H 7 | 8 | #include 9 | #include 10 | 11 | namespace WalletTool { 12 | 13 | std::shared_ptr CreateWallet(const std::string& name, const fs::path& path); 14 | std::shared_ptr LoadWallet(const std::string& name, const fs::path& path); 15 | void WalletShowInfo(CWallet* wallet_instance); 16 | bool ExecuteWalletToolFunc(const std::string& command, const std::string& file); 17 | 18 | } // namespace WalletTool 19 | 20 | #endif // BITGREEN_WALLET_WALLETTOOL_H 21 | -------------------------------------------------------------------------------- /src/zmq/zmqabstractnotifier.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015-2018 The Bitcoin 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 | const int CZMQAbstractNotifier::DEFAULT_ZMQ_SNDHWM; 8 | 9 | CZMQAbstractNotifier::~CZMQAbstractNotifier() 10 | { 11 | assert(!psocket); 12 | } 13 | 14 | bool CZMQAbstractNotifier::NotifyBlock(const CBlockIndex * /*CBlockIndex*/) 15 | { 16 | return true; 17 | } 18 | 19 | bool CZMQAbstractNotifier::NotifyTransaction(const CTransaction &/*transaction*/) 20 | { 21 | return true; 22 | } 23 | 24 | bool CZMQAbstractNotifier::NotifyTransactionLock(const CTransaction &/*transaction*/) 25 | { 26 | return true; 27 | } 28 | 29 | bool CZMQAbstractNotifier::NotifyChainLock(const CBlockIndex * /*CBlockIndex*/) 30 | { 31 | return true; 32 | } 33 | -------------------------------------------------------------------------------- /src/zmq/zmqconfig.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014-2018 The Bitcoin 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 BITGREEN_ZMQ_ZMQCONFIG_H 6 | #define BITGREEN_ZMQ_ZMQCONFIG_H 7 | 8 | #if defined(HAVE_CONFIG_H) 9 | #include 10 | #endif 11 | 12 | #include 13 | #include 14 | 15 | #if ENABLE_ZMQ 16 | #include 17 | #endif 18 | 19 | #include 20 | #include 21 | 22 | void zmqError(const char *str); 23 | 24 | #endif // BITGREEN_ZMQ_ZMQCONFIG_H 25 | -------------------------------------------------------------------------------- /src/zmq/zmqrpc.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Bitcoin 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 BITGREEN_ZMQ_ZMQRPC_H 6 | #define BITGREEN_ZMQ_ZMQRPC_H 7 | 8 | class CRPCTable; 9 | 10 | void RegisterZMQRPCCommands(CRPCTable& t); 11 | 12 | #endif // BITGREEN_ZMQ_ZMRRPC_H 13 | -------------------------------------------------------------------------------- /test/config.ini.in: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013-2016 The Bitcoin 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 | # These environment variables are set by the build process and read by 6 | # test/functional/test_runner.py and test/util/bitcoin-util-test.py 7 | 8 | [environment] 9 | PACKAGE_NAME=@PACKAGE_NAME@ 10 | SRCDIR=@abs_top_srcdir@ 11 | BUILDDIR=@abs_top_builddir@ 12 | EXEEXT=@EXEEXT@ 13 | RPCAUTH=@abs_top_srcdir@/share/rpcauth/rpcauth.py 14 | 15 | [components] 16 | # Which components are enabled. These are commented out by `configure` if they were disabled when running config. 17 | @ENABLE_WALLET_TRUE@ENABLE_WALLET=true 18 | @BUILD_BITCOIN_CLI_TRUE@ENABLE_CLI=true 19 | @BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=true 20 | @ENABLE_FUZZ_TRUE@ENABLE_FUZZ=true 21 | @ENABLE_ZMQ_TRUE@ENABLE_ZMQ=true 22 | -------------------------------------------------------------------------------- /test/functional/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | cache 3 | -------------------------------------------------------------------------------- /test/functional/test_framework/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitcoin-green/bitcoingreen/d10815721edf3d533d87ba7097c1783deb95dc4b/test/functional/test_framework/__init__.py -------------------------------------------------------------------------------- /test/lint/extended-lint-all.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2019 The Bitcoin 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 | # This script runs all contrib/devtools/extended-lint-*.sh files, and fails if 8 | # any exit with a non-zero status code. 9 | 10 | # This script is intentionally locale dependent by not setting "export LC_ALL=C" 11 | # in order to allow for the executed lint scripts to opt in or opt out of locale 12 | # dependence themselves. 13 | 14 | set -u 15 | 16 | SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") 17 | LINTALL=$(basename "${BASH_SOURCE[0]}") 18 | 19 | for f in "${SCRIPTDIR}"/extended-lint-*.sh; do 20 | if [ "$(basename "$f")" != "$LINTALL" ]; then 21 | if ! "$f"; then 22 | echo "^---- failure generated from $f" 23 | exit 1 24 | fi 25 | fi 26 | done 27 | -------------------------------------------------------------------------------- /test/lint/lint-assertions.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | # Check for assertions with obvious side effects. 8 | 9 | export LC_ALL=C 10 | 11 | EXIT_CODE=0 12 | 13 | # PRE31-C (SEI CERT C Coding Standard): 14 | # "Assertions should not contain assignments, increment, or decrement operators." 15 | OUTPUT=$(git grep -E '[^_]assert\(.*(\+\+|\-\-|[^=!<>]=[^=!<>]).*\);' -- "*.cpp" "*.h") 16 | if [[ ${OUTPUT} != "" ]]; then 17 | echo "Assertions should not have side effects:" 18 | echo 19 | echo "${OUTPUT}" 20 | EXIT_CODE=1 21 | fi 22 | 23 | exit ${EXIT_CODE} 24 | -------------------------------------------------------------------------------- /test/lint/lint-filenames.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | # Make sure only lowercase alphanumerics (a-z0-9), underscores (_), 8 | # hyphens (-) and dots (.) are used in source code filenames. 9 | 10 | export LC_ALL=C 11 | 12 | EXIT_CODE=0 13 | OUTPUT=$(git ls-files --full-name -- "*.[cC][pP][pP]" "*.[hH]" "*.[pP][yY]" "*.[sS][hH]" | \ 14 | grep -vE '^[a-z0-9_./-]+$' | \ 15 | grep -vE '^src/(secp256k1|univalue)/') 16 | 17 | if [[ ${OUTPUT} != "" ]]; then 18 | echo "Use only lowercase alphanumerics (a-z0-9), underscores (_), hyphens (-) and dots (.)" 19 | echo "in source code filenames:" 20 | echo 21 | echo "${OUTPUT}" 22 | EXIT_CODE=1 23 | fi 24 | exit ${EXIT_CODE} 25 | -------------------------------------------------------------------------------- /test/lint/lint-python-dead-code.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | # Find dead Python code. 8 | 9 | export LC_ALL=C 10 | 11 | if ! command -v vulture > /dev/null; then 12 | echo "Skipping Python dead code linting since vulture is not installed. Install by running \"pip3 install vulture\"" 13 | exit 0 14 | fi 15 | 16 | vulture \ 17 | --min-confidence 60 \ 18 | --ignore-names "argtypes,connection_lost,connection_made,converter,data_received,daemon,errcheck,is_compressed,is_valid,verify_ecdsa,msg_generic,on_*,optionxform,restype,profile_with_perf" \ 19 | $(git ls-files -- "*.py" ":(exclude)contrib/" ":(exclude)test/functional/data/invalid_txs.py") 20 | -------------------------------------------------------------------------------- /test/lint/lint-qt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | # Check for SIGNAL/SLOT connect style, removed since Qt4 support drop. 8 | 9 | export LC_ALL=C 10 | 11 | EXIT_CODE=0 12 | 13 | OUTPUT=$(git grep -E '(SIGNAL|, ?SLOT)\(' -- src/qt) 14 | if [[ ${OUTPUT} != "" ]]; then 15 | echo "Use Qt5 connect style in:" 16 | echo "$OUTPUT" 17 | EXIT_CODE=1 18 | fi 19 | 20 | exit ${EXIT_CODE} 21 | -------------------------------------------------------------------------------- /test/lint/lint-rpc-help.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | # Check that all RPC help texts are generated by RPCHelpMan. 8 | 9 | export LC_ALL=C 10 | 11 | EXIT_CODE=0 12 | 13 | # Assume that all multiline strings passed into a runtime_error are help texts. 14 | # This is potentially fragile, but the linter is only temporary and can safely 15 | # be removed early 2019. 16 | 17 | non_autogenerated_help=$(grep --perl-regexp --null-data --only-matching 'runtime_error\(\n\s*".*\\n"\n' $(git ls-files -- "*.cpp")) 18 | if [[ ${non_autogenerated_help} != "" ]]; then 19 | echo "Must use RPCHelpMan to generate the help for the following RPC methods:" 20 | echo "${non_autogenerated_help}" 21 | echo 22 | EXIT_CODE=1 23 | fi 24 | exit ${EXIT_CODE} 25 | -------------------------------------------------------------------------------- /test/lint/lint-shebang.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Assert expected shebang lines 3 | 4 | export LC_ALL=C 5 | EXIT_CODE=0 6 | for PYTHON_FILE in $(git ls-files -- "*.py"); do 7 | if [[ $(head -c 2 "${PYTHON_FILE}") == "#!" && 8 | $(head -n 1 "${PYTHON_FILE}") != "#!/usr/bin/env python3" ]]; then 9 | echo "Missing shebang \"#!/usr/bin/env python3\" in ${PYTHON_FILE} (do not use python or python2)" 10 | EXIT_CODE=1 11 | fi 12 | done 13 | for SHELL_FILE in $(git ls-files -- "*.sh"); do 14 | if [[ $(head -n 1 "${SHELL_FILE}") != "#!/usr/bin/env bash" && 15 | $(head -n 1 "${SHELL_FILE}") != "#!/bin/sh" ]]; then 16 | echo "Missing expected shebang \"#!/usr/bin/env bash\" or \"#!/bin/sh\" in ${SHELL_FILE}" 17 | EXIT_CODE=1 18 | fi 19 | done 20 | exit ${EXIT_CODE} 21 | -------------------------------------------------------------------------------- /test/lint/lint-spelling.ignore-words.txt: -------------------------------------------------------------------------------- 1 | cas 2 | hights 3 | mor 4 | mut 5 | objext 6 | unselect 7 | useable 8 | wit 9 | unparseable 10 | copyable 11 | cachable 12 | errorstring 13 | keyserver 14 | homogenous 15 | -------------------------------------------------------------------------------- /test/lint/lint-spelling.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (c) 2018 The Bitcoin 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 | # Warn in case of spelling errors. 8 | # Note: Will exit successfully regardless of spelling errors. 9 | 10 | export LC_ALL=C 11 | 12 | IGNORE_WORDS_FILE=test/lint/lint-spelling.ignore-words.txt 13 | if ! codespell --check-filenames --disable-colors --quiet-level=7 --ignore-words=${IGNORE_WORDS_FILE} $(git ls-files -- ":(exclude)build-aux/m4/" ":(exclude)contrib/seeds/*.txt" ":(exclude)depends/" ":(exclude)doc/release-notes/" ":(exclude)src/leveldb/" ":(exclude)src/qt/locale/" ":(exclude)src/secp256k1/" ":(exclude)src/univalue/"); then 14 | echo "^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in ${IGNORE_WORDS_FILE}" 15 | fi 16 | -------------------------------------------------------------------------------- /test/sanitizer_suppressions/lsan: -------------------------------------------------------------------------------- 1 | # Suppress warnings triggered in dependencies 2 | leak:libcrypto 3 | leak:libqminimal 4 | leak:libQt5Core 5 | leak:libQt5Gui 6 | leak:libQt5Widgets 7 | 8 | # false-positive due to use of secure_allocator<> 9 | leak:GetRNGState 10 | -------------------------------------------------------------------------------- /test/sanitizer_suppressions/tsan: -------------------------------------------------------------------------------- 1 | # ThreadSanitizer suppressions 2 | # ============================ 3 | 4 | # WalletBatch (unidentified deadlock) 5 | deadlock:WalletBatch 6 | 7 | # Intentional deadlock in tests 8 | deadlock:TestPotentialDeadLockDetected 9 | 10 | # Wildcard for all gui tests, should be replaced with non-wildcard suppressions 11 | race:src/qt/test/* 12 | deadlock:src/qt/test/* 13 | 14 | # External libraries 15 | deadlock:libdb 16 | race:libzmq 17 | -------------------------------------------------------------------------------- /test/util/data/blanktxv1.hex: -------------------------------------------------------------------------------- 1 | 01000000000000000000 2 | -------------------------------------------------------------------------------- /test/util/data/blanktxv1.json: -------------------------------------------------------------------------------- 1 | { 2 | "txid": "d21633ba23f70118185227be58a63527675641ad37967e2aa461559f577aec43", 3 | "hash": "d21633ba23f70118185227be58a63527675641ad37967e2aa461559f577aec43", 4 | "version": 1, 5 | "size": 10, 6 | "vsize": 10, 7 | "weight": 40, 8 | "locktime": 0, 9 | "vin": [ 10 | ], 11 | "vout": [ 12 | ], 13 | "hex": "01000000000000000000" 14 | } 15 | -------------------------------------------------------------------------------- /test/util/data/blanktxv2.hex: -------------------------------------------------------------------------------- 1 | 02000000000000000000 2 | -------------------------------------------------------------------------------- /test/util/data/blanktxv2.json: -------------------------------------------------------------------------------- 1 | { 2 | "txid": "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", 3 | "hash": "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", 4 | "version": 2, 5 | "size": 10, 6 | "vsize": 10, 7 | "weight": 40, 8 | "locktime": 0, 9 | "vin": [ 10 | ], 11 | "vout": [ 12 | ], 13 | "hex": "02000000000000000000" 14 | } 15 | -------------------------------------------------------------------------------- /test/util/data/txcreate1.hex: -------------------------------------------------------------------------------- 1 | 02000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d717000000001976a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreate2.hex: -------------------------------------------------------------------------------- 1 | 02000000000100000000000000000000000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreate2.json: -------------------------------------------------------------------------------- 1 | { 2 | "txid": "0481afb29931341d0d7861d8a2f6f26456fa042abf54a23e96440ed7946e0715", 3 | "hash": "0481afb29931341d0d7861d8a2f6f26456fa042abf54a23e96440ed7946e0715", 4 | "version": 2, 5 | "size": 19, 6 | "vsize": 19, 7 | "weight": 76, 8 | "locktime": 0, 9 | "vin": [ 10 | ], 11 | "vout": [ 12 | { 13 | "value": 0.00000000, 14 | "n": 0, 15 | "scriptPubKey": { 16 | "asm": "", 17 | "hex": "", 18 | "type": "nonstandard" 19 | } 20 | } 21 | ], 22 | "hex": "02000000000100000000000000000000000000" 23 | } 24 | -------------------------------------------------------------------------------- /test/util/data/txcreatedata1.hex: -------------------------------------------------------------------------------- 1 | 02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatedata2.hex: -------------------------------------------------------------------------------- 1 | 02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatedata_seq0.hex: -------------------------------------------------------------------------------- 1 | 02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatedata_seq1.hex: -------------------------------------------------------------------------------- 1 | 01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff1f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatemultisig1.hex: -------------------------------------------------------------------------------- 1 | 01000000000100e1f5050000000069522102a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff39721021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d2102df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb48553ae00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatemultisig2.hex: -------------------------------------------------------------------------------- 1 | 01000000000100e1f5050000000017a9141c6fbaf46d64221e80cbae182c33ddf81b9294ac8700000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatemultisig3.hex: -------------------------------------------------------------------------------- 1 | 01000000000100e1f50500000000220020e15a86a23178f433d514dbbce042e87d72662b8b5edcacfd2e37ab7a2d135f0500000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatemultisig4.hex: -------------------------------------------------------------------------------- 1 | 01000000000100e1f5050000000017a9146edf12858999f0dae74f9c692e6694ee3621b2ac8700000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreateoutpubkey1.hex: -------------------------------------------------------------------------------- 1 | 0100000000010000000000000000232102a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397ac00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreateoutpubkey2.hex: -------------------------------------------------------------------------------- 1 | 0100000000010000000000000000160014a2516e770582864a6a56ed21a102044e388c62e300000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreateoutpubkey3.hex: -------------------------------------------------------------------------------- 1 | 010000000001000000000000000017a914a5ab14c9804d0d8bf02f1aea4e82780733ad0a838700000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatescript1.hex: -------------------------------------------------------------------------------- 1 | 0100000000010000000000000000017500000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatescript1.json: -------------------------------------------------------------------------------- 1 | { 2 | "txid": "f0851b68202f736b792649cfc960259c2374badcb644ab20cac726b5f72f61c9", 3 | "hash": "f0851b68202f736b792649cfc960259c2374badcb644ab20cac726b5f72f61c9", 4 | "version": 1, 5 | "size": 20, 6 | "vsize": 20, 7 | "weight": 80, 8 | "locktime": 0, 9 | "vin": [ 10 | ], 11 | "vout": [ 12 | { 13 | "value": 0.00000000, 14 | "n": 0, 15 | "scriptPubKey": { 16 | "asm": "OP_DROP", 17 | "hex": "75", 18 | "type": "nonstandard" 19 | } 20 | } 21 | ], 22 | "hex": "0100000000010000000000000000017500000000" 23 | } 24 | -------------------------------------------------------------------------------- /test/util/data/txcreatescript2.hex: -------------------------------------------------------------------------------- 1 | 010000000001000000000000000017a91471ed53322d470bb96657deb786b94f97dd46fb158700000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatescript3.hex: -------------------------------------------------------------------------------- 1 | 01000000000100000000000000002200200bfe935e70c321c7ca3afc75ce0d0ca2f98b5422e008bb31c00c6d7f1f1c0ad600000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatescript4.hex: -------------------------------------------------------------------------------- 1 | 010000000001000000000000000017a9146a2c482f4985f57e702f325816c90e3723ca81ae8700000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatesignv1.hex: -------------------------------------------------------------------------------- 1 | 01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008a4730440220131432090a6af42da3e8335ff110831b41a44f4e9d18d88f5d50278380696c7202200fc2e48938f323ad13625890c0ea926c8a189c08b8efc38376b20c8a2188e96e01410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000 2 | -------------------------------------------------------------------------------- /test/util/data/txcreatesignv2.hex: -------------------------------------------------------------------------------- 1 | 02000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008a473044022079c7aa014177a2e973caf6df7c7b8f15399083b91eba370ea1e19c4caed9181e02205f8f8763505ce8e6cbdd2cd28fab3fd407a75003e7d0dc04e6bebb0a3c89e7cb01410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000 2 | --------------------------------------------------------------------------------